Bug 790666 - Comma in Full Name breaks meeting organizer validity check
This commit is contained in:
@ -408,7 +408,8 @@ ecep_general_attendee_added_cb (EMeetingListView *meeting_list_view,
|
||||
static gboolean
|
||||
ecep_general_get_organizer (ECompEditorPageGeneral *page_general,
|
||||
gchar **out_name,
|
||||
gchar **out_mailto)
|
||||
gchar **out_mailto,
|
||||
const gchar **out_error_message)
|
||||
{
|
||||
gchar *organizer_text;
|
||||
gboolean valid = FALSE;
|
||||
@ -429,6 +430,8 @@ ecep_general_get_organizer (ECompEditorPageGeneral *page_general,
|
||||
*out_name = g_strdup (str_name);
|
||||
if (out_mailto)
|
||||
*out_mailto = g_strconcat ("MAILTO:", itip_strip_mailto (str_address), NULL);
|
||||
} else if (out_error_message) {
|
||||
*out_error_message = _("Organizer address is not a valid user mail address");
|
||||
}
|
||||
|
||||
g_object_unref (address);
|
||||
@ -820,7 +823,7 @@ ecep_general_fill_widgets (ECompEditorPage *page,
|
||||
|
||||
cn = icalparameter_get_cn (param);
|
||||
if (cn && *cn) {
|
||||
value = g_strdup_printf ("%s <%s>", cn, itip_strip_mailto (organizer));
|
||||
value = camel_internet_address_format_address (cn, itip_strip_mailto (organizer));
|
||||
}
|
||||
}
|
||||
|
||||
@ -932,15 +935,16 @@ ecep_general_fill_component (ECompEditorPage *page,
|
||||
gchar *organizer_name = NULL, *organizer_mailto = NULL;
|
||||
guint32 flags;
|
||||
gint ii, added_attendees = 0;
|
||||
const gchar *error_message = NULL;
|
||||
|
||||
comp_editor = e_comp_editor_page_ref_editor (page);
|
||||
flags = e_comp_editor_get_flags (comp_editor);
|
||||
|
||||
if ((flags & (E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER)) != 0 &&
|
||||
!ecep_general_get_organizer (page_general, NULL, NULL)) {
|
||||
!ecep_general_get_organizer (page_general, NULL, NULL, &error_message)) {
|
||||
e_comp_editor_set_validation_error (comp_editor, page,
|
||||
page_general->priv->organizer_combo_box,
|
||||
_("An organizer is required."));
|
||||
error_message ? error_message : _("An organizer is required."));
|
||||
|
||||
g_clear_object (&comp_editor);
|
||||
|
||||
@ -959,7 +963,7 @@ ecep_general_fill_component (ECompEditorPage *page,
|
||||
|
||||
/* Organizer */
|
||||
if ((flags & (E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER)) != 0 &&
|
||||
ecep_general_get_organizer (page_general, &organizer_name, &organizer_mailto)) {
|
||||
ecep_general_get_organizer (page_general, &organizer_name, &organizer_mailto, NULL)) {
|
||||
const gchar *cal_email_address;
|
||||
icalparameter *param;
|
||||
|
||||
|
||||
@ -185,12 +185,8 @@ itip_get_user_identities (ESourceRegistry *registry)
|
||||
name = e_source_mail_identity_get_name (extension);
|
||||
address = e_source_mail_identity_get_address (extension);
|
||||
|
||||
if (address) {
|
||||
if (name && *name)
|
||||
g_ptr_array_add (identities, g_strdup_printf ("%s <%s>", name, address));
|
||||
else
|
||||
g_ptr_array_add (identities, g_strdup_printf ("%s", address));
|
||||
}
|
||||
if (address)
|
||||
g_ptr_array_add (identities, camel_internet_address_format_address (name, address));
|
||||
|
||||
aliases = e_source_mail_identity_dup_aliases (extension);
|
||||
if (aliases && *aliases) {
|
||||
@ -208,10 +204,7 @@ itip_get_user_identities (ESourceRegistry *registry)
|
||||
if (!alias_name || !*alias_name)
|
||||
alias_name = name;
|
||||
|
||||
if (alias_name && *alias_name)
|
||||
g_ptr_array_add (identities, g_strdup_printf ("%s <%s>", alias_name, alias_address));
|
||||
else
|
||||
g_ptr_array_add (identities, g_strdup_printf ("%s", alias_address));
|
||||
g_ptr_array_add (identities, camel_internet_address_format_address (alias_name, alias_address));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -269,12 +262,8 @@ itip_get_fallback_identity (ESourceRegistry *registry)
|
||||
name = e_source_mail_identity_get_name (mail_identity);
|
||||
address = e_source_mail_identity_get_address (mail_identity);
|
||||
|
||||
if (address != NULL) {
|
||||
if (name && *name)
|
||||
identity = g_strdup_printf ("%s <%s>", name, address);
|
||||
else
|
||||
identity = g_strdup_printf ("%s", address);
|
||||
}
|
||||
if (address)
|
||||
identity = camel_internet_address_format_address (name, address);
|
||||
|
||||
g_object_unref (source);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user