From 489da28dab1c574fd5543f7373eba0170ae44c62 Mon Sep 17 00:00:00 2001 From: PhilW Date: Wed, 10 Jan 2018 17:36:02 +0000 Subject: [PATCH] add move/copy contact widget --- program/js/app.js | 190 ++++++++++++++++++----- program/localization/en_GB/labels.inc | 3 + program/localization/en_US/labels.inc | 3 + skins/classic/addressbook.css | 55 ++++++- skins/classic/images/contactactions.png | Bin 0 -> 929 bytes skins/classic/templates/addressbook.html | 14 +- skins/larry/addressbook.css | 34 ++++ skins/larry/images/listicons.png | Bin 10409 -> 15745 bytes skins/larry/templates/addressbook.html | 15 +- 9 files changed, 272 insertions(+), 42 deletions(-) create mode 100644 skins/classic/images/contactactions.png diff --git a/program/js/app.js b/program/js/app.js index da7e7f920..c3012fc7b 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -47,6 +47,7 @@ function rcube_webmail() this.group2expand = {}; this.http_request_jobs = {}; this.menu_stack = []; + this.entity_selectors = []; // webmail client settings this.dblclick_time = 500; @@ -979,14 +980,14 @@ function rcube_webmail() if (this.task == 'mail') this.move_messages(props, event); else if (this.task == 'addressbook') - this.move_contacts(props); + this.move_contacts(props, event); break; case 'copy': if (this.task == 'mail') this.copy_messages(props, event); else if (this.task == 'addressbook') - this.copy_contacts(props); + this.copy_contacts(props, event); break; case 'mark': @@ -5903,10 +5904,15 @@ function rcube_webmail() } this.env.selection_sources = $.unique(this.env.selection_sources); + + var groupcount = 0; + if (source.groups) + $.each(this.env.contactgroups, function(){ if (this.source === ref.env.source) groupcount++ }); } // if a group is currently selected, and there is at least one contact selected // thend we can enable the group-remove-selected command + this.enable_command('group-assign-selected', groupcount > 0 && selected && writable); this.enable_command('group-remove-selected', this.env.group && selected && writable); this.enable_command('print', selected == 1); this.enable_command('export-selected', 'copy', selected > 0); @@ -5953,6 +5959,9 @@ function rcube_webmail() this.env.address_group_stack = index < 0 ? [] : this.env.address_group_stack.slice(0, index); + // remove cached contact group selector + this.destroy_entity_selector('contactgroup-selector'); + // make sure the current group is on top of the stack if (this.env.group) { if (!search) search = {}; @@ -6130,8 +6139,15 @@ function rcube_webmail() }; // copy contact(s) to the specified target (group or directory) - this.copy_contacts = function(to) + this.copy_contacts = function(to, event) { + if (!to) { + return this.addressbook_selector(event, function(to, obj) { + var to = $(obj).data('source') ? ref.env.contactgroups['G' + $(obj).data('source') + $(obj).data('gid')] : ref.env.address_sources[to]; + ref.command('copy', to); + }); + } + var dest = to.type == 'group' ? to.source : to.id, source = this.env.source, group = this.env.group ? this.env.group : '', @@ -6164,8 +6180,15 @@ function rcube_webmail() }; // move contact(s) to the specified target (group or directory) - this.move_contacts = function(to) + this.move_contacts = function(to, event) { + if (!to) { + return this.addressbook_selector(event, function(to, obj) { + var to = $(obj).data('source') ? ref.env.contactgroups['G' + $(obj).data('source') + $(obj).data('gid')] : ref.env.address_sources[to]; + ref.command('move', to); + }); + } + var dest = to.type == 'group' ? to.source : to.id, source = this.env.source, group = this.env.group ? this.env.group : ''; @@ -6392,6 +6415,10 @@ function rcube_webmail() var key = 'G'+prop.source+prop.id; if (this.treelist.remove(key)) { + // make sure there is no cached address book or contact group selectors + this.destroy_entity_selector('addressbook-selector'); + this.destroy_entity_selector('contactgroup-selector'); + this.triggerEvent('group_delete', { source:prop.source, id:prop.id }); delete this.env.contactfolders[key]; delete this.env.contactgroups[key]; @@ -6401,6 +6428,12 @@ function rcube_webmail() this.list_contacts(prop.source, 0); }; + //assign selected contacts to a group + this.group_assign_selected = function(props, obj, event) + { + this.contactgroup_selector(event, function(to) { ref.group_member_change('add', ref.contact_list.get_selection(), ref.env.source, to); }); + }; + //remove selected contacts from current active group this.group_remove_selected = function() { @@ -6416,6 +6449,7 @@ function rcube_webmail() for (n=0; n'); - if (!container) { - var rows = [], - delim = this.env.delimiter, - ul = $(' +
+
    + + + + + + + +
+
+
@@ -107,7 +120,6 @@
  • -
  • diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css index da4ef193f..4f5d385ee 100644 --- a/skins/larry/addressbook.css +++ b/skins/larry/addressbook.css @@ -403,3 +403,37 @@ a.deletebutton { #import-box .propform { max-width: 50em; } + +ul.toolbarmenu li span.assigngroup { + background-position: 0 -2358px; +} + +ul.toolbarmenu li span.removegroup { + background-position: 0 -2384px; +} + +#addressbook-selector li a, +#contactgroup-selector li a { + padding-left: 2px; +} + +#addressbook-selector li a span, +#contactgroup-selector li a span { + background: url(images/listicons.png) 4px 20px no-repeat; + display: block; + height: 17px; + min-height: 14px; + padding: 4px 4px 1px 28px; + overflow: hidden; + max-width: 120px; + text-overflow: ellipsis; +} + +#addressbook-selector li a.addressbook span { + background-position: 4px -2222px; +} + +#addressbook-selector li a.contactgroup span, +#contactgroup-selector li a.contactgroup span { + background-position: 4px -2245px; +} diff --git a/skins/larry/images/listicons.png b/skins/larry/images/listicons.png index 29b38265334487c96c9406660e9bf347147704e6..8995af19b7074d1c49309d39a0da3e0a1f52bcb7 100644 GIT binary patch literal 15745 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 afbDGJuo{cx=h#=Pf!fV`H;R=}&;LIPQQ<@Y literal 10409 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

    c8Aa2 z?}n}4DA`h|hRRyvZf!ppiw5-vfO=@+N@q39sf@Scz4^Li6gWVWe80F|J(ssq zT^~ktO1Zuk)d^_O=OkQ$Nwb=FEY&~P-!a|wA|U^6PU4Eh@QK*EJJj0v2mF(8$9{bY zF%Ms>q>eWS({kr&V)PjRMf(%nA!J`SGlimebt_6hzGR>nb5J{hSgqz6kIXnhDgk2D zmZO#B7BxCesJiA6AFsUB3mVV+D||rXIH;xfSzC9@^{MUgjo~i82cvF-suZiz^@X2( zBsol)o0fQFbf5p1^DIs=B~eS9{7OcWiJ&K8h+-E%IxZfgLV4(PDu0dTO*|chArX|) z(uZV4r#NEq$YDs=J#bDetUlqK`9*gFg{8YKxV*#T{hcn&nfC+ga}|{~(w{09;>h(X zMGUw0Rh;k*DbJ2{2bt;foVuzLG1&^E3K^g7{;4CZA!^&)o!_;Xb0l*>3p}U=i*%yv z-#$aJ+Ej)SiG*hT_qdEMA(t-27$e62!X@%lpQQo1PX|t3!B-wn;D88v=s&(9wlamJ zejdu}a +

+
@@ -103,7 +116,7 @@
- +