index.php | ●●●●● patch | view | raw | blame | history | |
program/js/app.js | ●●●●● patch | view | raw | blame | history | |
program/localization/en_US/messages.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/addressbook/groups.inc | ●●●●● patch | view | raw | blame | history |
index.php
@@ -221,8 +221,8 @@ 'group-create' => 'groups.inc', 'group-rename' => 'groups.inc', 'group-delete' => 'groups.inc', 'group-addmember' => 'groups.inc', 'group-delmenber' => 'groups.inc', 'group-addmembers' => 'groups.inc', 'group-delmembers' => 'groups.inc', ), 'settings' => array( program/js/app.js
@@ -3238,11 +3238,9 @@ var insert = ''; // insert all members of a group if (typeof this.env.contacts[id] == 'object' && this.env.contacts[id].id) { insert += this.env.contacts[id].name + ', '; this.group2expand = $.extend({}, this.env.contacts[id]); this.group2expand.input = this.ksearch_input; this.http_request('group-expand', '_source='+urlencode(this.env.contacts[id].source)+'&_gid='+urlencode(this.env.contacts[id].id), false); if (typeof this.env.contacts[id] == 'object' && this.env.contacts[id].members) { for (var i=0; i < this.env.contacts[id].members.length; i++) insert += this.env.contacts[id].members[i] + ', '; } else if (typeof this.env.contacts[id] == 'string') insert = this.env.contacts[id] + ', '; @@ -3253,14 +3251,6 @@ cpos = p+insert.length; if (this.ksearch_input.setSelectionRange) this.ksearch_input.setSelectionRange(cpos, cpos); }; this.replace_group_recipients = function(id, recipients) { if (this.group2expand && this.group2expand.id == id) { this.group2expand.input.value = this.group2expand.input.value.replace(this.group2expand.name, recipients); this.group2expand = null; } }; // address search processor @@ -3519,7 +3509,7 @@ cid = this.contact_list.get_selection().join(','); if (to.type == 'group') this.http_post('group-addmember', '_cid='+urlencode(cid)+'&_source='+urlencode(this.env.source)+'&_gid='+urlencode(to.id)); this.http_post('group-addmembers', '_cid='+urlencode(cid)+'&_source='+urlencode(this.env.source)+'&_gid='+urlencode(to.id)); else if (to.id != this.env.source && cid && this.env.address_sources[to.id] && !this.env.address_sources[to.id].readonly) this.http_post('copy', '_cid='+urlencode(cid)+'&_source='+urlencode(this.env.source)+'&_to='+urlencode(to.id)); }; @@ -3558,7 +3548,7 @@ // send request to server if (this.env.group) this.http_post('group-delmember', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source)+'&_gid='+urlencode(this.env.group)+qs); this.http_post('group-delmembers', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source)+'&_gid='+urlencode(this.env.group)+qs); else this.http_post('delete', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source)+'&_from='+(this.env.action ? this.env.action : '')+qs); program/localization/en_US/messages.inc
@@ -97,6 +97,7 @@ $messages['addresswriterror'] = 'The selected address book is not writeable'; $messages['contactaddedtogroup'] = 'Successfully added the contacts to this group'; $messages['contactremovedfromgroup'] = 'Successfully remove 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, $skipped existing entries skipped</b>:<p><em>$names</em></p>'; program/steps/addressbook/groups.inc
@@ -25,54 +25,70 @@ $OUTPUT->send(); } if ($RCMAIL->action == 'group-addmember') { if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = get_input_value('_cid', RCUBE_INPUT_POST))) if ($CONTACTS->add_to_group($gid, $ids)) $source = get_input_value('_source', RCUBE_INPUT_GPC); if ($RCMAIL->action == 'group-addmembers') { if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = get_input_value('_cid', RCUBE_INPUT_POST))) { $plugin = $RCMAIL->plugins->exec_hook('group_addmember', array('group_id' => $gid, 'ids' => $ids, 'source' => $source)); if (!$plugin['abort'] && $CONTACTS->add_to_group($gid, $plugin['ids'])) $OUTPUT->show_message('contactaddedtogroup'); //else // $OUTPUT->show_message('erroraddingcontact', 'warning'); else if ($plugin['message']) $OUTPUT->show_message($plugin['message'], 'warning'); } } else if ($RCMAIL->action == 'group-delmember') { if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = get_input_value('_cid', RCUBE_INPUT_POST))) if ($CONTACTS->remove_from_group($gid, $ids)) 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)) $OUTPUT->show_message('contactremovedfromgroup'); //else // $OUTPUT->show_message('erroraddingcontact', 'warning'); else if ($plugin['message']) $OUTPUT->show_message($plugin['message'], 'warning'); } } else if ($RCMAIL->action == 'group-create') { if (!empty($_POST['_name'])) { $name = trim(get_input_value('_name', RCUBE_INPUT_POST)); $created = $CONTACTS->create_group($name); if ($name = trim(get_input_value('_name', RCUBE_INPUT_POST))) { $plugin = $RCMAIL->plugins->exec_hook('group_create', array('name' => $name, 'source' => $source)); if (!$plugin['abort']) $created = $CONTACTS->create_group($plugin['name']); } if ($created && $OUTPUT->ajax_call) { $OUTPUT->command('insert_contact_group', $created); } else if (!$create) { $OUTPUT->show_message('errorsaving', 'error'); else if (!$created) { $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error'); } } else if ($RCMAIL->action == 'group-rename') { if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($name = trim(get_input_value('_name', RCUBE_INPUT_POST)))) $newname = $CONTACTS->rename_group($gid, $name); if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($name = trim(get_input_value('_name', RCUBE_INPUT_POST)))) { $plugin = $RCMAIL->plugins->exec_hook('group_rename', array('group_id' => $gid, 'name' => $name, 'source' => $source)); if (!$plugin['abort']) $newname = $CONTACTS->rename_group($gid, $plugin['name']); } if ($newname && $OUTPUT->ajax_call) $OUTPUT->command('update_contact_group', $gid, $newname); else if (!$newname) $OUTPUT->show_message('errorsaving', 'error'); $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error'); } else if ($RCMAIL->action == 'group-delete') { if ($gid = get_input_value('_gid', RCUBE_INPUT_POST)) if ($gid = get_input_value('_gid', RCUBE_INPUT_POST)) { $plugin = $RCMAIL->plugins->exec_hook('group_delete', array('group_id' => $gid, 'source' => $source)); if (!$plugin['abort']) $deleted = $CONTACTS->delete_group($gid); } if ($deleted) $OUTPUT->command('remove_group_item', $gid); else $OUTPUT->show_message('errorsaving', 'error'); $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error'); } // send response