summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-04-01 06:52:48 +0000
committerthomascube <thomas@roundcube.net>2010-04-01 06:52:48 +0000
commit65c8764b19d16ebdcd270f5c9bf0162e686c56bd (patch)
tree0045c7f69779d5b791141d00613a166eb7a9a59c
parent1d773d71414316e0b9836a15c35576593427ee21 (diff)
Add client-side events when adding/removing groups
-rw-r--r--program/js/app.js6
-rw-r--r--program/steps/addressbook/groups.inc3
2 files changed, 7 insertions, 2 deletions
diff --git a/program/js/app.js b/program/js/app.js
index ae55cc424..2bc8808f7 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3659,10 +3659,14 @@ function rcube_webmail()
{
var li, key = 'G'+id;
if ((li = this.get_folder_li(key))) {
+ this.triggerEvent('removegroup', { id:id, li:li });
+
li.parentNode.removeChild(li);
delete this.env.contactfolders[key];
delete this.env.contactgroups[key];
}
+
+ this.list_contacts(null, 0);
};
// handler for keyboard events on the input field
@@ -3716,6 +3720,8 @@ function rcube_webmail()
var link = $('<a>').attr('href', '#').attr('onclick', "return rcmail.command('listgroup','"+prop.id+"',this)").html(prop.name);
var li = $('<li>').attr('id', 'rcmli'+key).addClass('contactgroup').append(link);
$(this.gui_objects.folderlist).append(li);
+
+ this.triggerEvent('insertgroup', { id:prop.id, name:prop.name, li:li[0] });
};
// callback for renaming a contact group
diff --git a/program/steps/addressbook/groups.inc b/program/steps/addressbook/groups.inc
index c853cedaf..df44703a9 100644
--- a/program/steps/addressbook/groups.inc
+++ b/program/steps/addressbook/groups.inc
@@ -41,9 +41,8 @@ if ($RCMAIL->action == 'group-addmembers') {
else if ($RCMAIL->action == 'group-delmembers') {
if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = get_input_value('_cid', RCUBE_INPUT_POST))) {
$plugin = $RCMAIL->plugins->exec_hook('group_delmembers', array('group_id' => $gid, 'ids' => $ids, 'source' => $source));
- $ids = $plugin['ids'];
- if (!$plugin['abort'] && $CONTACTS->remove_from_group($gid, $ids))
+ if (!$plugin['abort'] && $CONTACTS->remove_from_group($gid, $plugin['ids']))
$OUTPUT->show_message('contactremovedfromgroup');
else if ($plugin['message'])
$OUTPUT->show_message($plugin['message'], 'warning');