From 2c77f553c85393d2006b42908647c31c352f6b81 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 03 Aug 2011 08:31:38 -0400
Subject: [PATCH] - Add "loading" messages for contacts copying and groups assignment
---
program/localization/en_US/messages.inc | 7 +++++--
program/steps/addressbook/func.inc | 4 ++--
program/steps/addressbook/show.inc | 1 +
program/js/app.js | 31 +++++++++++++++++++------------
4 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/program/js/app.js b/program/js/app.js
index 88f51a1..f002dca 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -309,11 +309,8 @@
this.enable_command('show', 'edit', true);
// register handlers for group assignment via checkboxes
if (this.gui_objects.editform) {
- $('input.groupmember').change(function(){
- var cmd = this.checked ? 'group-addmembers' : 'group-delmembers';
- ref.http_post(cmd, '_cid='+urlencode(ref.env.cid)
- + '&_source='+urlencode(ref.env.source)
- + '&_gid='+urlencode(this.value));
+ $('input.groupmember').change(function() {
+ ref.group_member_change(this.checked ? 'add' : 'del', ref.env.cid, ref.env.source, this.value);
});
}
}
@@ -3916,29 +3913,39 @@
return true;
};
+ // add/delete member to/from the group
+ this.group_member_change = function(what, cid, source, gid)
+ {
+ what = what == 'add' ? 'add' : 'del';
+ var lock = this.display_message(this.get_label(what == 'add' ? 'addingmember' : 'removingmember'), 'loading');
+
+ this.http_post('group-'+what+'members', '_cid='+urlencode(cid)
+ + '&_source='+urlencode(source)
+ + '&_gid='+urlencode(gid), lock);
+ };
+
// copy a contact to the specified target (group or directory)
this.copy_contact = function(cid, to)
{
if (!cid)
cid = this.contact_list.get_selection().join(',');
- if (to.type == 'group' && to.source == this.env.source) {
- this.http_post('group-addmembers', '_cid='+urlencode(cid)
- + '&_source='+urlencode(this.env.source)
- + '&_gid='+urlencode(to.id));
- }
+ if (to.type == 'group' && to.source == this.env.source)
+ this.group_member_change('add', cid, to.source, to.id);
else if (to.type == 'group' && !this.env.address_sources[to.source].readonly) {
+ var lock = this.display_message(this.get_label('copyingcontact'), 'loading');
this.http_post('copy', '_cid='+urlencode(cid)
+ '&_source='+urlencode(this.env.source)
+ '&_to='+urlencode(to.source)
+ '&_togid='+urlencode(to.id)
- + (this.env.group ? '&_gid='+urlencode(this.env.group) : ''));
+ + (this.env.group ? '&_gid='+urlencode(this.env.group) : ''), lock);
}
else if (to.id != this.env.source && cid && this.env.address_sources[to.id] && !this.env.address_sources[to.id].readonly) {
+ var lock = this.display_message(this.get_label('copyingcontact'), 'loading');
this.http_post('copy', '_cid='+urlencode(cid)
+ '&_source='+urlencode(this.env.source)
+ '&_to='+urlencode(to.id)
- + (this.env.group ? '&_gid='+urlencode(this.env.group) : ''));
+ + (this.env.group ? '&_gid='+urlencode(this.env.group) : ''), lock);
}
};
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index c45aa15..f86ba54 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -100,8 +100,11 @@
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Successfully sent a read receipt.';
$messages['errorsendingreceipt'] = 'Could not send the receipt.';
$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
@@ -112,8 +115,8 @@
$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
$messages['importwait'] = 'Importing, please wait...';
$messages['importerror'] = 'Import failed! The uploaded file is not a valid vCard file.';
-$messages['importconfirm'] = '<b>Successfully imported $inserted contacts.</b>';
-$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries.</b>';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 7fb1e2c..4de4637 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -224,7 +224,7 @@
$OUTPUT->set_env('contactgroups', $jsdata);
$OUTPUT->add_gui_object('folderlist', $attrib['id']);
// add some labels to client
- $OUTPUT->add_label('deletegroupconfirm', 'groupdeleting');
+ $OUTPUT->add_label('deletegroupconfirm', 'groupdeleting', 'addingmember', 'removingmember');
return html::tag('ul', $attrib, $out, html::$common_attrib);
}
@@ -281,7 +281,7 @@
$OUTPUT->include_script('list.js');
// add some labels to client
- $OUTPUT->add_label('deletecontactconfirm');
+ $OUTPUT->add_label('deletecontactconfirm', 'copyingcontact');
return $out;
}
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index 729cb34..9ef83e9 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -201,6 +201,7 @@
$form_end = '</form>';
$RCMAIL->output->add_gui_object('editform', 'form');
+ $RCMAIL->output->add_label('addingmember', 'removingmember');
return $form_start . $table->show() . $form_end;
}
--
Gitblit v1.9.1