aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/meeting-page.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs/meeting-page.c')
-rw-r--r--calendar/gui/dialogs/meeting-page.c99
1 files changed, 91 insertions, 8 deletions
diff --git a/calendar/gui/dialogs/meeting-page.c b/calendar/gui/dialogs/meeting-page.c
index fddaab1900..2ef94bafff 100644
--- a/calendar/gui/dialogs/meeting-page.c
+++ b/calendar/gui/dialogs/meeting-page.c
@@ -52,18 +52,30 @@
"<ETableSpecification click-to-add=\"true\" " \
" _click-to-add-message=\"Click here to add an attendee\" " \
" draw-grid=\"true\">" \
- " <ETableColumn model_col= \"0\" _title=\"Attendee\" " \
+ " <ETableColumn model_col= \"0\" _title=\"Attendee\" " \
" expansion=\"1.0\" minimum_width=\"10\" resizable=\"true\" " \
- " cell=\"string\" compare=\"string\"/>" \
- " <ETableColumn model_col= \"1\" _title=\"Role\" " \
+ " cell=\"string\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"1\" _title=\"Member\" " \
+ " expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
+ " cell=\"text\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"2\" _title=\"Type\" " \
+ " expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
+ " cell=\"typeedit\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"3\" _title=\"Role\" " \
" expansion=\"1.0\" minimum_width=\"10\" resizable=\"true\" " \
- " cell=\"roleedit\" compare=\"string\"/>" \
- " <ETableColumn model_col= \"2\" _title=\"RSVP\" " \
+ " cell=\"roleedit\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"4\" _title=\"RSVP\" " \
+ " expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
+ " cell=\"rsvpedit\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"5\" _title=\"Status\" " \
" expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
- " cell=\"rsvpedit\" compare=\"string\"/>" \
- " <ETableColumn model_col= \"3\" _title=\"Status\" " \
+ " cell=\"statusedit\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"6\" _title=\"Common Name\" " \
" expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
- " cell=\"statusedit\" compare=\"string\"/>" \
+ " cell=\"text\" compare=\"string\"/>" \
+ " <ETableColumn model_col= \"7\" _title=\"Language\" " \
+ " expansion=\"2.0\" minimum_width=\"10\" resizable=\"true\" " \
+ " cell=\"text\" compare=\"string\"/>" \
" <ETableState>" \
" <column source=\"0\"/>" \
" <column source=\"1\"/>" \
@@ -75,9 +87,13 @@
enum columns {
MEETING_ATTENDEE_COL,
+ MEETING_MEMBER_COL,
+ MEETING_TYPE_COL,
MEETING_ROLE_COL,
MEETING_RSVP_COL,
MEETING_STATUS_COL,
+ MEETING_CN_COL,
+ MEETING_LANG_COL,
MEETING_COLUMN_COUNT
};
@@ -518,6 +534,41 @@ init_widgets (MeetingPage *mpage)
GTK_SIGNAL_FUNC (invite_cb), mpage);
}
+static CalComponentCUType
+text_to_type (const char *type)
+{
+ if (!g_strcasecmp (type, "Individual"))
+ return CAL_COMPONENT_CUTYPE_INDIVIDUAL;
+ else if (!g_strcasecmp (type, "Group"))
+ return CAL_COMPONENT_CUTYPE_GROUP;
+ else if (!g_strcasecmp (type, "Resource"))
+ return CAL_COMPONENT_CUTYPE_RESOURCE;
+ else if (!g_strcasecmp (type, "Room"))
+ return CAL_COMPONENT_CUTYPE_ROOM;
+ else
+ return CAL_COMPONENT_ROLE_UNKNOWN;
+}
+
+static char *
+type_to_text (CalComponentCUType type)
+{
+ switch (type) {
+ case CAL_COMPONENT_CUTYPE_INDIVIDUAL:
+ return "Individual";
+ case CAL_COMPONENT_CUTYPE_GROUP:
+ return "Group";
+ case CAL_COMPONENT_CUTYPE_RESOURCE:
+ return "Resource";
+ case CAL_COMPONENT_CUTYPE_ROOM:
+ return "Room";
+ default:
+ return "Unknown";
+ }
+
+ return NULL;
+
+}
+
static CalComponentRole
text_to_role (const char *role)
{
@@ -649,9 +700,13 @@ append_row (ETableModel *etm, ETableModel *model, int row, void *data)
attendee = g_new0 (struct attendee, 1);
attendee->address = g_strdup (e_table_model_value_at (model, MEETING_ATTENDEE_COL, row));
+ attendee->member = g_strdup (e_table_model_value_at (model, MEETING_MEMBER_COL, row));
+ attendee->cutype = text_to_type (e_table_model_value_at (model, MEETING_TYPE_COL, row));
attendee->role = text_to_role (e_table_model_value_at (model, MEETING_ROLE_COL, row));
attendee->rsvp = text_to_boolean (e_table_model_value_at (model, MEETING_RSVP_COL, row));
attendee->status = text_to_partstat (e_table_model_value_at (model, MEETING_STATUS_COL, row));
+ attendee->cn = g_strdup (e_table_model_value_at (model, MEETING_CN_COL, row));
+ attendee->language = g_strdup (e_table_model_value_at (model, MEETING_LANG_COL, row));
priv->attendees = g_slist_append (priv->attendees, attendee);
@@ -677,12 +732,20 @@ value_at (ETableModel *etm, int col, int row, void *data)
switch (col) {
case MEETING_ATTENDEE_COL:
return attendee->address;
+ case MEETING_MEMBER_COL:
+ return attendee->member;
+ case MEETING_TYPE_COL:
+ return type_to_text (attendee->cutype);
case MEETING_ROLE_COL:
return role_to_text (attendee->role);
case MEETING_RSVP_COL:
return boolean_to_text (attendee->rsvp);
case MEETING_STATUS_COL:
return partstat_to_text (attendee->status);
+ case MEETING_CN_COL:
+ return attendee->cn;
+ case MEETING_LANG_COL:
+ return attendee->language;
}
return NULL;
@@ -704,6 +767,12 @@ set_value_at (ETableModel *etm, int col, int row, const void *val, void *data)
case MEETING_ATTENDEE_COL:
attendee->address = g_strdup (val);
break;
+ case MEETING_MEMBER_COL:
+ attendee->member = g_strdup (val);
+ break;
+ case MEETING_TYPE_COL:
+ attendee->cutype = text_to_type (val);
+ break;
case MEETING_ROLE_COL:
attendee->role = text_to_role (val);
break;
@@ -713,6 +782,12 @@ set_value_at (ETableModel *etm, int col, int row, const void *val, void *data)
case MEETING_STATUS_COL:
attendee->status = text_to_partstat (val);
break;
+ case MEETING_CN_COL:
+ attendee->cn = g_strdup (val);
+ break;
+ case MEETING_LANG_COL:
+ attendee->language = g_strdup (val);
+ break;
}
if (!priv->updating) {
@@ -745,12 +820,20 @@ init_value (ETableModel *etm, int col, void *data)
switch (col) {
case MEETING_ATTENDEE_COL:
return g_strdup ("");
+ case MEETING_MEMBER_COL:
+ return g_strdup ("");
+ case MEETING_TYPE_COL:
+ return g_strdup ("Individual");
case MEETING_ROLE_COL:
return g_strdup ("Required Participant");
case MEETING_RSVP_COL:
return g_strdup ("Yes");
case MEETING_STATUS_COL:
return g_strdup ("Needs Action");
+ case MEETING_CN_COL:
+ return g_strdup ("");
+ case MEETING_LANG_COL:
+ return g_strdup ("English");
}
return g_strdup ("");