From 6b7fc6729d23e273f4e5a9cbbd2f6cd7ec8b9ba8 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 11 Sep 2014 15:54:15 +0200 Subject: [PATCH] Added 'actions' bar and new icons for groupware folders as suggested by the product feature description --- plugins/calendar/calendar_ui.js | 5 ++ plugins/calendar/lib/calendar_ui.php | 7 +- plugins/calendar/localization/en_US.inc | 2 +- plugins/calendar/skins/larry/calendar.css | 71 +++++++++++++----- .../calendar/skins/larry/images/calendars.png | Bin 3664 -> 5798 bytes .../skins/larry/templates/calendar.html | 2 +- .../skins/larry/folder_icons.png | Bin 1328 -> 1611 bytes .../skins/larry/kolab_addressbook.css | 6 +- plugins/kolab_notes/kolab_notes_ui.php | 12 ++- plugins/kolab_notes/localization/en_US.inc | 2 +- plugins/kolab_notes/notes.js | 5 ++ plugins/kolab_notes/skins/larry/notes.css | 60 +++++++++++++-- plugins/kolab_notes/skins/larry/sprites.png | Bin 5282 -> 5503 bytes plugins/libkolab/js/folderlist.js | 25 +++++- plugins/tasklist/localization/en_US.inc | 2 +- plugins/tasklist/skins/larry/sprites.png | Bin 6500 -> 5169 bytes plugins/tasklist/skins/larry/tasklist.css | 66 +++++++++++----- plugins/tasklist/tasklist.js | 5 ++ plugins/tasklist/tasklist_ui.php | 9 ++- 19 files changed, 212 insertions(+), 67 deletions(-) diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js index ef409380..381e7e8b 100644 --- a/plugins/calendar/calendar_ui.js +++ b/plugins/calendar/calendar_ui.js @@ -3411,6 +3411,11 @@ function rcube_calendar_ui(settings) rcmail.http_post('calendar', { action:'subscribe', c:{ id:p.id, active:cal.active?1:0, permanent:cal.subscribed?1:0 } }); } }); + calendars_list.addEventListener('remove', function(p) { + if (me.calendars[p.id] && me.calendars[p.id].removable) { + me.calendar_remove(me.calendars[p.id]); + } + }); calendars_list.addEventListener('search-complete', function(data) { if (data.length) rcmail.display_message(rcmail.gettext('nrcalendarsfound','calendar').replace('$nr', data.length), 'voice'); diff --git a/plugins/calendar/lib/calendar_ui.php b/plugins/calendar/lib/calendar_ui.php index 26936423..f80cce1f 100644 --- a/plugins/calendar/lib/calendar_ui.php +++ b/plugins/calendar/lib/calendar_ui.php @@ -310,8 +310,11 @@ class calendar_ui html::span(array('class' => 'calname', 'id' => $label_id, 'title' => $title), $prop['editname'] ? Q($prop['editname']) : $prop['listname']) . ($prop['virtual'] ? '' : html::tag('input', array('type' => 'checkbox', 'name' => '_cal[]', 'value' => $id, 'checked' => $prop['active'], 'aria-labelledby' => $label_id), '') . - html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->cal->gettext('quickview'), 'role' => 'button'), '') . - (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->cal->gettext('calendarsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') . + html::span('actions', + ($prop['removable'] ? html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->cal->gettext('removelist')), ' ') : '') . + html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->cal->gettext('quickview'), 'role' => 'button'), '') . + (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->cal->gettext('calendarsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') + ) . html::span(array('class' => 'handle', 'style' => "background-color: #" . ($prop['color'] ?: 'f00')), ' ') ) ); diff --git a/plugins/calendar/localization/en_US.inc b/plugins/calendar/localization/en_US.inc index 6023366e..76fbceec 100644 --- a/plugins/calendar/localization/en_US.inc +++ b/plugins/calendar/localization/en_US.inc @@ -51,7 +51,7 @@ $labels['new_event'] = 'New event'; $labels['edit_event'] = 'Edit event'; $labels['edit'] = 'Edit'; $labels['save'] = 'Save'; -$labels['remove'] = 'Remove'; +$labels['removelist'] = 'Remove from list'; $labels['cancel'] = 'Cancel'; $labels['select'] = 'Select'; $labels['print'] = 'Print'; diff --git a/plugins/calendar/skins/larry/calendar.css b/plugins/calendar/skins/larry/calendar.css index e33f01ad..54e0141d 100644 --- a/plugins/calendar/skins/larry/calendar.css +++ b/plugins/calendar/skins/larry/calendar.css @@ -218,7 +218,7 @@ pre { position: absolute; top: 7px; left: 38px; - right: 60px; + right: 45px; cursor: default; background: url(images/calendars.png) right 20px no-repeat; overflow: hidden; @@ -259,11 +259,36 @@ pre { box-shadow: inset 0px 0 1px 1px rgba(0, 0, 0, 0.3); } +#calendars .treelist div span.actions { + display: inline-block; + position: absolute; + top: 2px; + right: 22px; + padding: 5px 20px 0 6px; + min-width: 40px; + height: 19px; + text-align: right; +} + +#calendars .treelist div:hover span.actions { + top: 1px; + right: 21px; + border: 1px solid #c6c6c6; + border-radius: 4px; + background: #f7f7f7; + background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6)); + background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0); +} + #calendars .treelist li a.subscribed { display: inline-block; position: absolute; - top: 7px; - right: 24px; + top: 5px; + right: 3px; height: 16px; width: 16px; padding: 0; @@ -273,14 +298,8 @@ pre { cursor: pointer; } -#calendars .treelist div > a.quickview:focus, -#calendars .treelist div > a.subscribed:focus { - border-radius: 3px; - outline: 2px solid rgba(30,150,192, 0.5); -} - -#calendars .treelist div:hover > a.subscribed, -#calendars .treelist div > a.subscribed:focus { +#calendars .treelist div:hover a.subscribed, +#calendars .treelist div a.subscribed:focus { background-position: 0 -110px; } @@ -294,13 +313,19 @@ pre { background-position: -16px -148px; } -#calendars .treelist li a.quickview { +#calendars .treelist div a.remove:focus, +#calendars .treelist div a.quickview:focus, +#calendars .treelist div a.subscribed:focus { + border-radius: 3px; + outline: 2px solid rgba(30,150,192, 0.5); +} + +#calendars .treelist div a.remove, +#calendars .treelist div a.quickview { display: inline-block; - position: absolute; - top: 6px; - right: 42px; width: 16px; height: 16px; + margin-right: 4px; padding: 0; background: url(images/calendars.png) -100px 0 no-repeat; overflow: hidden; @@ -308,14 +333,20 @@ pre { cursor: pointer; } -#calendars .treelist div > a.quickview:focus, -#calendars .treelist li div:hover > a.quickview { - background-position: 0 -128px; +#calendars .treelist div a.quickview:focus, +#calendars .treelist div:hover a.quickview { + background-position: 0 -148px; background-color: transparent !important; } -#calendars .treelist li div.focusview > a.quickview { - background-position: -18px -128px; +#calendars .treelist div a.remove:focus, +#calendars .treelist div:hover a.remove { + background-position: -16px -168px; + background-color: transparent !important; +} + +#calendars .searchresults .treelist div a.remove { + display: none; } #calendars .treelist li input { diff --git a/plugins/calendar/skins/larry/images/calendars.png b/plugins/calendar/skins/larry/images/calendars.png index 88eba63fd06cf035209f98d12bd703852d2e92c1..17e259ae63da9cdc2d530a8f9a77e0ec53770fe1 100644 GIT binary patch literal 5798 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 UoBwp_&!1x*O?^a}x^3ux0rxY0h5!Hn literal 3664 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 i{>BBtQ#&__5#+xmwNj9-LmMyv0000
  • -
  • +
  • diff --git a/plugins/kolab_addressbook/skins/larry/folder_icons.png b/plugins/kolab_addressbook/skins/larry/folder_icons.png index 07674ab098f0d4d545a3a72a9b35364704d3aa6a..b9c59b5a0acb6bc758bcdc4715e7caf542a63b1f 100644 GIT binary patch delta 1607 zcmV-N2DtgK3d;000IONklr@RbOltCZEOIs?XrGQuqTwYpU<<%An0tJdifvUqe=e97T6P86y zG?*wV-JV$>t<04e-WP)5^+Q!L@F~`RJxAgH9}Abq8Uik8$OX2n3>geiQT++ zpOxC3EGgf__9v%*B#MEwqH>-3WD}d5d6EbK(uaRcXW+B0yhbjHf#lMYEWM_Q0YE4| z^XvPnY6~+owtr>^z4-nV^?OQQOvPs$snUh*lqH5mrt88Km5nUV(q`BzDBcaK0cAm{ z6lbq#Y-0(AViuE;AQ&n3T z#)E61cVM@Q7uC0(StcCEc+gis!Dp(oIhIKw#tK-ReSf=CD^D>^Q`a)#IL3o&;OWA` zHutk<%>C^7GU52b^XJ=wY5)M<;R;zrnDs*fh#wLw~mfKW_I@q57J`VOCQ+!Mz<%nzsm`-Mx}@$6$U-1#dB z=lB3vA-rvJP#M5ClOG)cd2}ANBsI_eZ@y>itpg zkAENtf*=TjAP9mW2!bF8f*MxTu%d<)HLR#%MGY%zSP=w45dPBF*C%j=NjAv#gR#P= zU&e%Ow78UO&MT>8oqQITAl-9B3A^NJ|LlmCNjGW$xY$Na*n0bAhm0mb?Neyx(ZqTU z3~_b5_EC(j$3%RN@z<2fQ;^l%1qp@a>wh!ho%Nj+K9cY?|LH+cu)}=jr9A_1)M^J+ z{b_EZ0wU5hup=fue5In=SF`pO3VkDf$15iB!Or+3?XJY+p}onf4%smVx>N0t-Qswe zVeJI|S_kP3ZJw1-7nRvpDvnDWg+<<6YOksDSR9Qlo3T7q8=GZ-#C$UdCDo8+ZGVTt zuKxcr`SNRR4$w4rL!Ij~xUSuVnZIYtSKINz3P*9wTi7SpZ{4ZVHJpa5mL89E9yvhQ z+QW4Q3hZZL-tE2)08792`DFsf{5b&tARV9jb3VUo0P;HfA*bUUWViK#p6gh<6CO@Z zP5LhEd$#b(1TH&D;si_@K7}#N!Q6lw;Io^n zsHgxATTPgQxdAs|wOZ$JvuQLMCYQ^73S*dqxdAsYI5;?lvojivpx5ht3S*dqxdAsY zJ3Cw6(9i(&_4QC&TkBI8!yL>F#?SH4+qZAK*E$85gSo+anGnXu$3Vg5axMEFz%h(r zPO#r-!nuZ~r>9|JV!|W5$1#ja#KQY77w(l*LJ)5={{!O{@17m~^#A|>002ovPDHLk FV1mab3@88q delta 1322 zcmV+_1=ae?46q827k{t_1^@s6ZX9g4000E{Nkl+wy2~D zi$)D@>SPzuYzsoUCCBF>F9gf|($^TzFZt(f-}997f1dX|Z-3u%A|eQaAP9mW2!bF8 zB22t~{Qbz7;~zw^<8z`We&fBQsJN2~S$tX+B&amNk8v`EOf&22L5OKxMW9OD^H> z+3_W1r3G|#&40OJPkuBd{lzqvOvz>(uhc{zK9Lw5uhK*-%IhHCV%Hs!DP9PxfwUrn zl+Ql1&JG{yO5h#!>BVDuwGHGKE&{8MSHo(+>b?}KGB<+O<^pwX3-H(csA+5mWn}~K zcz6wT^~5S!(wyebRpRG)JnSo=U^CUQ6$q6=j1{oBy??Rt@_NX$wyhFB&*Nb=@YnS8 z!Kq*nrh+qTCr9- zh-yG~PJdQa$)1ic+CW)W3(Ar*m8b@?YMP+fGXQ$;6)5cJ1(VaAFRFpOCKs6cK7|YY zpMn0;RevaKcAXQ|fT_c`Y{1|fg#4!V^P(E)9vUt%^b9Vq!1a+)aaZ8Z*xh%}yZaYc z!PxDGAAY%iSX2Xp!?*T-`}2M1xN#fC#vkhHT%P@+B!2UwlTpXy8HW-JiVM_ctFHap z7g>BeCh3ZG{5+3`D{kLY zrv{R8&%TmUQUSTPHYj5Io);jmetsV?`aW5F&(HHXAIHbitpgk9vR9`=j0; z^?&{df*=TjAP9mW2!bF8g7{aVh7~oes9{A7D{5F#!-^VK1VIpl*XxyV?e_1OOeUFL zub1q^KrfSHH_6RrvqW2Lz}D8*f}PC%9#deKtEf^KtFXoG`E9!&lrdEcO4zZ1%l;8{ zogFLN+-S4eB-=6IV3G>j(Pe08XpmI5b$=pzo4I;#`xG( zzZFdtRZo(0@{voHTY#Cy3e;L!@r=`p+18IStGotN@{4e3OdjZQrGX(~xh0#_g+nm3 zYTVS+)U#V70X)r;vIkg9uWdmsn|&TLkZbS4Op62AlQk+TEa)7#iW3tP7@8oP7k?dJ z_BE1Ag;@3mk8{yXfj^%i_RU2mBa_@xNF5eZ8lv(*Cp{O0XIM!f?yyZ{Ad+gxbt z8NlxDZpl`vKW6DZAiQ2SwiU|lZGW?>T053`{rKzS3G5mE3NstqQB%{j>2BajK}Z}e zD6n*HE6JTsXF^709lEa%6kh*b-*P3xf7 zf2HfoZvr?wJIj-23w0q~SXdZ+@aQqRe0{jl3P^Vn3)zmPd^hl span.subscribed:focus, -#directorylistbox ul.treelist div:hover > span.subscribed { - background-position: 2px -160px; +#directorylistbox ul.treelist div span.subscribed:focus, +#directorylistbox ul.treelist div:hover span.subscribed { + background-position: 0px -160px; } #directorylistbox ul.treelist div.subscribed span.subscribed { diff --git a/plugins/kolab_notes/kolab_notes_ui.php b/plugins/kolab_notes/kolab_notes_ui.php index 527e89bf..817a228e 100644 --- a/plugins/kolab_notes/kolab_notes_ui.php +++ b/plugins/kolab_notes/kolab_notes_ui.php @@ -217,9 +217,15 @@ class kolab_notes_ui '' ) . html::span('handle', '') . - (isset($prop['subscribed']) ? - html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('foldersubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : - '' + html::span('actions', + (!$prop['default'] ? + html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->plugin->gettext('removelist')), ' ') : + '' + ) . + (isset($prop['subscribed']) ? + html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('foldersubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : + '' + ) ) ) ); diff --git a/plugins/kolab_notes/localization/en_US.inc b/plugins/kolab_notes/localization/en_US.inc index 21e6e1a7..939946ca 100644 --- a/plugins/kolab_notes/localization/en_US.inc +++ b/plugins/kolab_notes/localization/en_US.inc @@ -33,7 +33,7 @@ $labels['findnotebooks'] = 'Find notebooks...'; $labels['listsearchresults'] = 'Additional notebooks'; $labels['nrnotebooksfound'] = '$nr notebooks found'; $labels['nonotebooksfound'] = 'No notebooks found'; -$labels['removelist'] = 'Remove'; +$labels['removelist'] = 'Remove from list'; $labels['savingdata'] = 'Saving data...'; $labels['recordnotfound'] = 'Record not found'; diff --git a/plugins/kolab_notes/notes.js b/plugins/kolab_notes/notes.js index 5f514c14..911e8a7c 100644 --- a/plugins/kolab_notes/notes.js +++ b/plugins/kolab_notes/notes.js @@ -130,6 +130,11 @@ function rcube_kolab_notes_ui(settings) rcmail.http_post('list', { _do:'subscribe', _list:{ id:p.id, permanent:list.subscribed?1:0 } }); } }); + notebookslist.addEventListener('remove', function(p) { + if (me.notebooks[p.id] && !me.notebooks[p.id].default) { + list_remove(p.id); + } + }); notebookslist.addEventListener('insert-item', function(p) { var list = p.data; if (list && list.id && !list.virtual) { diff --git a/plugins/kolab_notes/skins/larry/notes.css b/plugins/kolab_notes/skins/larry/notes.css index b5efa37f..24daa9d5 100644 --- a/plugins/kolab_notes/skins/larry/notes.css +++ b/plugins/kolab_notes/skins/larry/notes.css @@ -325,7 +325,8 @@ position: relative; } -.notesview #notebooks li > div.folder { +.notesview #notebooks li > div.folder, +.notesview #notebooksbox .searchresults li > div.folder { position: relative; padding: 0; height: 28px; @@ -354,11 +355,37 @@ padding-top: 3px; } -.notesview #notebooksbox .treelist li a.subscribed { +.notesview #notebooksbox .treelist div span.actions { display: inline-block; position: absolute; - top: 6px; - right: 5px; + top: 2px; + right: 2px; + padding: 5px 20px 0 6px; + min-width: 20px; + height: 19px; + text-align: right; +} + +.notesview #notebooksbox .treelist div:hover span.actions { + top: 1px; + right: 1px; + border: 1px solid #c6c6c6; + border-radius: 4px; + background: #f7f7f7; + background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6)); + background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0); +} + +.notesview #notebooksbox .treelist div a.remove, +.notesview #notebooksbox .treelist div a.subscribed { + display: inline-block; + position: absolute; + top: 5px; + right: 4px; height: 16px; width: 16px; padding: 0; @@ -368,20 +395,37 @@ cursor: pointer; } -.notesview #notebooksbox .treelist div > a.subscribed:focus, -.notesview #notebooksbox .treelist div:hover > a.subscribed { - background-position: 2px -266px; +.notesview #notebooksbox .treelist div a.subscribed:focus, +.notesview #notebooksbox .treelist div:hover a.subscribed { + background-position: 0 -266px; } .notesview #notebooksbox .treelist div.subscribed a.subscribed { background-position: -16px -266px; } -.notesview #notebooksbox .treelist li a.subscribed:focus { +.notesview #notebooksbox .treelist div a.remove { + position: relative; + top: 0; + left: 0; + margin-right: 4px; +} + +.notesview #notebooksbox .treelist div a.remove:focus, +.notesview #notebooksbox .treelist div:hover a.remove { + background-position: 0 -284px; +} + +.notesview #notebooksbox .treelist div a.remove:focus, +.notesview #notebooksbox .treelist div a.subscribed:focus { border-radius: 3px; outline: 2px solid rgba(30,150,192, 0.5); } +.notesview #notebooksbox .searchresults .treelist div a.remove { + display: none; +} + .notesview #notebooksbox .treelist input { position: absolute; top: 4px; diff --git a/plugins/kolab_notes/skins/larry/sprites.png b/plugins/kolab_notes/skins/larry/sprites.png index ceead25098d092fb44bdfbd3acf05a58db16cd1e..99ac3a240de293b06ed8c0f7eb280b19ff35e0a2 100644 GIT binary patch literal 5503 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 Bxzqpv literal 5282 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 diff --git a/plugins/libkolab/js/folderlist.js b/plugins/libkolab/js/folderlist.js index 617dc450..62a60ef2 100644 --- a/plugins/libkolab/js/folderlist.js +++ b/plugins/libkolab/js/folderlist.js @@ -290,16 +290,16 @@ function kolab_folderlist(node, p) } }); - this.container.on('click', 'a.subscribed, span.subscribed', function(e){ + this.container.on('click', 'a.subscribed, span.subscribed', function(e) { var li = $(this).closest('li'), id = li.attr('id').replace(new RegExp('^'+p.id_prefix), ''), div = li.children().first(), is_subscribed; if (me.is_search()) { - id = id.replace(/--xsR$/, ''); - li = $(me.get_item(id, true)); - div = $(div).add(li.children().first()); + id = id.replace(/--xsR$/, ''); + li = $(me.get_item(id, true)); + div = $(div).add(li.children().first()); } if (p.id_decode) @@ -327,6 +327,23 @@ function kolab_folderlist(node, p) return false; }); + this.container.on('click', 'a.remove', function(e) { + var li = $(this).closest('li'), + id = li.attr('id').replace(new RegExp('^'+p.id_prefix), ''); + + if (me.is_search()) { + id = id.replace(/--xsR$/, ''); + li = $(me.get_item(id, true)); + } + + if (p.id_decode) + id = p.id_decode(id); + + me.triggerEvent('remove', { id: id, item: li }); + + e.stopPropagation(); + return false; + }); } // link prototype from base class diff --git a/plugins/tasklist/localization/en_US.inc b/plugins/tasklist/localization/en_US.inc index 288bd711..72759959 100644 --- a/plugins/tasklist/localization/en_US.inc +++ b/plugins/tasklist/localization/en_US.inc @@ -19,7 +19,7 @@ $labels['findlists'] = 'Find tasklists...'; $labels['searchterms'] = 'Search terms'; $labels['notasklistsfound'] = 'No tasklists found'; $labels['nrtasklistsfound'] = '$nr tasklists found'; -$labels['removelist'] = 'Remove'; +$labels['removelist'] = 'Remove from list'; $labels['newtask'] = 'New Task'; $labels['createtask'] = 'Create Task '; diff --git a/plugins/tasklist/skins/larry/sprites.png b/plugins/tasklist/skins/larry/sprites.png index fecbd58909f52b287e4524dc3e8fd13a62546cc0..36b48f5388b7d162e99845b8cd2dc26bb03dc600 100644 GIT binary patch literal 5169 zcmZX2cQhPK)c5MWCweD%5JUt~S6flDtO%k+^pX%=tg?D1qOH|Mjry>J)f2tMB4ouX zQCAOEOYlmb?~m`i@0>Yj=A7TTcV_NA_s+e)IIy8M4JA7z005xTd8BE4vkC$L1d-&V zH#=*$@Lm9b=}bpc%_LxMH;)Qz@-$~a@gAb+g=^;Av`}TvF!M9GzJr`%<+!22%mYcN zgG@;{aUiATDyDEkDQbP0fP{d7c=ZmyC_OkZmYt`Ozfec&9wp<0GTnm~l!Vu%v)rpWy zx4Nu9e=?^hzs{i`QD<15z%@<((^96eK#dg?1T*m@wdu^=W_V8zrdqrW@=OX6A`dZM)Dg%l~L)t^VCSjv!SA!OvG(p@o3ee5D8)>N7ayFs*WiOzYbc0<*YM$Xh!_sR469V$dFZ0 zjT_rnAo_O}aOmC&n=G}{uEDV9b5}Z~SvJ54Jr*~DCAt1+QBIqK;ic?fF)jU+?+^vV zQ@?YmYg^@82*S!6U@BaT?62SQ9~}%NAUm${!%Lb{295Tf%d?Hz1AFriNdb*X6f(aU zXkFt+!PUk1ko02YHXc(F3?CYkd#c#tV%yaDE^S`_Sst3~G;DTq9OW_2&DG)6;I}$* zK`QR8CAKFwEeEy_;O%MK^)E@n(@Yz5z^~;9i9r$PZC%9~Daq=J^+_}t=<}Gx6Xa#f z!n%R4WJ#WnS`@$n>aXW@KZ$KiC_d*~ObVun1RZd`eOQ_&Q>(uW*q$qm|M;y@!&@9- zM+v+RYo6?WlqNXz=wBofX^nKvm>V0T8Ei6i2#+u`Hy_&F*%6P3i1;ooE#3b(Ux~ur zqFlPFL^hnD6@`j0t|abfbzf*_OG``pBa)-wD!`hmTN-}%Su@blQONy!a}vKsnXl;7 zv@OSS*xcM)VPm7WF@%GUjw5q>w$39yC8c1(MEj+^x~RA~^^YGvgk-)BMKXiJ`$r@D z6_#NqI~bzCz`)dkf;u+?wiyb#$ZN~Iyu2E+&smiuWWz&4Ms}y01V(=lpUsJ)lj>@5 zWnR$|g&tUZLc;cIrwTGn2NPis<;c>|ig42f)ZN|9 zJR0*H+vZ#U2JdQAB!cuUn{TVHPo@1gJ=!OB#(%hod+4c+v%|tE)>EZk9j^fk3A8 zv@be>PUB|{h~MSpD1;m=^(^duZ_&`wiu#C+v?3xQA!*WzBh#Ryq#W+)`BjKSW~2qq zaPZP97XP&=q<`Iik`j%7AI1_<=!ZvH;r-n1#j4m%IFGRQf#z=CMLJi z)6=^%#GdBUCSJwfsDRg2CT>xa#3v_5M@AAq($kw-HOrE)lIHvmW`ocCb8I39DdY+L zjrQcdAfmkA!N4|)FSc{eS`NgH_A_=61dB@Jy9l0D?G@%XB~T|bMrFGXa!kI8Xa>#8 z9|Il5w>&N)3HMmblNl{8zSjSFAv}Fu(QCdye!uLo(xq)&4A1W&EX%qg>S@*=aZlH({l7G|N0vl z60P2`N`;gguF1*DuJfpdShBeHtZF+u`Ja~)EC+v(d#|p)>~!!6j{wgeTWOo`R-U}_ z^;qnY>>_xz!dy=g9~o%4r}eJ8{p5V3z-dCYrlw|WABP+A@bFlS9J1m!%yC@W$(2a| z{#nW}x7E&h+Mpo)W$M2zq@>Z>3NH@*c29u-xx{o0d#H`u0KVp_LTyB-g~T^v?H+B~ zSM$VDlAI5{1kE`z&}g&)9*w|?fsv*UM z?aKD5X1*bThg7*Q_-yHaWjUf&~?kYF<<{g4x~+5Wn@_M9Jj zg%3QtvJfT~Dvg>G5xBs5PBi8@gy|OW!h?1%@Y`(w^ywZJvb>*k_*!ZTP`(+gZx_eo zL~M8Zel%4v0?eSO+ru&Njw6}liJ`5YEA9$(`tkiULnDqJt^q^WbAnACPFJ|#r(8X7 z8$zCT$80ClS389pTYa}=5G{`owOZRdIl*V-%hO!3ku2qsMjU`& zT?R1r;HEe^Ik_Wn`#HhmZUB8TmlH(IyfA@O8&rrqBDKVQB*^n`Blv3AO}hF+vIy%r zRbD&!v92x!$VhSKB016^_+^zkycigfdFu8j+v(&)QzqxhYI{4E*(DG6g*AXaprv46 zO(X@WW1?NMnFvA2q=&5^xaxmtmPi0P%Dk}Btqrg$G;j~c!|PV$TzPkjq)Jwnz7P)> z<`~~1aJ>siRk@|h0wQFrANkBP{lnwr$3APHs!wdFXGRDMzfRhF+@`>@ferDOd83}^ z)!CdfWA4qLu`!K@H1;zgYKfV8@;rtzyjk>Ld9W{-%niTVo_zJs!t`4?j6M*8U1C1% z8yJPPucU?lZdv^ofmN0O@Oo^wb!1wT-6?I2BaA$nAC2(wY~WbCl^0g6zFr;gB# zgAZ3)ACR9v7YsktJKhlhMgBW-B6+Bb=_m9$-GmP}Seq5Xii%oDV`4B%2eJ8;P-pwq zyG5b2%2Y39;|enVWMY;H;oKHz>lcf03x+|o7sbY9Sq0GYI9jC3WM1vnm{a_!ep&3} z6Q=MX&Xm&74x#{VUMf{r^7vxJLqDdjH6=m-0Kj^Z$A`!LoWKAZDU;_d6VZc|=Q`a&z|-j6Llxm{lDRmDQN z+Uj6^m9VQ}GU{e0N;NL=Vw+OeJV1>iK}6h+uN9U3w3iu#pH80RxIOqlX3O`>*_gOY zC|yF|B`uBfT${6MI@mYY8q!*pKW7wFLb$8o89=)iv{^8fiPwZEBTG&|BWha&zZ3P-1RFLeNCsJH3WRU*+Q~rk!C{H$`apF8Y0#(j{||8g zzX0N|#Qy?H6OASp?OvQxUj(W&FxeznDPO;YpIYedNW~bRNqG6O_$N0sw64(&aCF%| z8?MTBQfK!jPbgX)x9#jmfQtYZ?s2R?$*pK11kg%`y@^n3B-?HMu1Y5HAFsl^{FzSMP->J{|1PWJv!XR-?vLSbv%^1Vt-Q<$m>8tOW$ zMv%yMdrnEtqh&4M%$pi3TC>v%y1ALw2~*pc8Apf*e5YNH7pC?rGRh1lA{tjSKT~kk zI97Lp3Dt2%2xR#28I7vQC>(YVO)z`(3%R(-=M63kkD+{MjW>&o`H+Oic5qt8M)0wP<5EBi$|7BI*z!X<8*Db=Bb@e6* zkL58N(=emFNDprx))lDqS)P3ueAn17WZC$03^j6?; z-TOrFP4aQRzPjX`Q8>@Gsn~gqbf6oPOPwRqXA28G;Cx0Sp z%1~K#9h%Jqal?56-rH zI^Cx2xyN&dsq+ICoA9rW_b$7K>0J45#{*%w)`;j{5hNOo6Ad{k=*&DP75SM<)!F9b zP~V6uS8e{t*z1?6aeRWMqlVopu>W1}vhQ!HJcccnqYlP+QGhuu7G9%JHc`N}&`Okp zb7XaBTufrfCAO3x9L)uBevlKFxjFKu=KDK^W+zMaLOa|s(vlYJ6a4|b1C`>vPVGKL zZdsBxwWoPX8Ae>lqGol$C*D6{E>@kLomREAwW`%-4ZYUSw6{$_z5%~lC0xZ!%2>SC zN8z;(+-7{11@5;UU=X-Joldm?t7OsCCakwydvmu*2#@~5Y)h?h!nm}pi;0Mc zD6C~M>euQ16hvpPVP2h+Q$;sGY{M35QA0pUNB1}_PW(Q!ZIvP(tfxoC!}S*F`c*XM z?OO&Fg)+XQ!NEZ<6$POZIfwsey7zFMYc;wbL})hBJEyy66EDWo!(=E_gnsX44|@p_ zX}XB7&w8HjSrI~Bz+1C{>8p@*XPwTJ?V@4;dWbJC#mL%V!)0x44bRNXOpO?2AlY30 z6cd&LGFlN>OZmy0>3rX)pI&8AJL&PIYM5jORFhs)5EnM+AjC)b_OJ6o1$ragv1exi zT-@i|`Xrkht*-9?y@OyCO<5XV{R!v8Tz7V0+dtK;D^a$Yk5;1EVvE(KZm!V_!U*{I z`+ur=)-q_~I1dZCX%ekIYT*ct>}8~UW_lzk632l{LFs6ih&r)W*-s5LA0WJFUxnPn z4Juys8g?d_kIM~qJ+iw?AU=#8AkrLvv5-SSC4j& z*RX3NS>GLm`1hRj{xe-PmD9;J*U=9DsOYtk59=tSlWoZKsPGj9}R_M0MWe408o5ypm%wOT~wi-S67vDqRf3q+jG6 z`39|(P=!+kl*AK2+vdTF4+;tjd*s+BUw%|h7$uTB7u6$HH;std{r&t5mr%OkU}Fg6 zsFe0r5=XbBwQIxP6Zj(w6CMCb{~sPt}v7Nk)EEO+w0Vn?{jmt<$Ib5 zwRBnH=4o*wp_%YRa?pQ|VzfRB3Xx*V-rRKNMG&VmM`l_i(3X%eDjQ41*{7Y|-To=D zGTXN;%?+IW;m1}e1Y@{8+(g>gS0 z_umi$Cc+|#9UaQr0MQIeMkXe{J9nb=w@u1mH$*~rwPow1Wu*zNkf0#Y)RcL3ZA~pC zLKbFz2OIpI9%O)cy}`Wej^_)8Ke|8G`v=a{E2c9 zS?}XILqkK-TZqx==s9*S5n*9%g9sLn?7sQ=`M;9xZcyI#B2&fSH@b2f>gxY#6Z@Q! zl_q`vKA(U9(d5*W@ZTfEG#A{GThv%{UByadr%mfo7M3VKnyRX*;}eaWv=MF-)UUc! zvUlUZ2@Iz4UJZopYh2(Kzc657vQM~pJCxwXE;^Vfdsgj+3IynA8EV$5KM(&O0*?4X literal 6500 zcmV-q8Jp&bP)g1VH7$q5yIp0~EnzvZb;Br^rxc2#8VB zQUm~C(mh>-QiH_-IKJQCDswmL0!A_j%E;J~r?eUJde&72Pn^%#$$AEy$3o$}Dn?QX zT(~`gLOUu!X+fc7jBQ$w2*4ztW=3O&HsQVQg8jQwEJL0-bDQM(xJKE{?( z7!?^^j-k8HVpO{ss|J4>wKqUZ7#B~60!!GenS1gwr_rK2SFzOg`BV&xd$GKM4x!X8A}z7D65a`7`jqZ#Z>3SJy)@kk>k1U3zcwm2QdtF@?NJ-8npo4;kH`0=^eE4o`;G75b?IO7?>%5tEp_e{f3q&7G1wJLT%BT&x2DtQ&v{i5{X2T7Z?~w(^tFQ zZZwoMDI7(N z$2hO4O(v7k>0R#jgU2`rgav!yNyHOS)&a%E#TmT;!eg8RG8&E54u_-5e%y!027q6e)wTNCj`w~TD5AGQms~hrBo`Df$Wo8 zw{GQp@WBW9{&f3ZNeBpk25{AcQpaw|7ysPAw%Ju&&ws69P37kpBBOp-EW9jMX z1U#!vB9Y+OkGHu5(}h#RvY39e$h=?WvV5LX^Nf)P!~^nonl^13-Tmj6r~_{XO-7l? zWa@GZ8(bi2xSDeG=+W*v&dc6-;|=WN*4=yWy*_u4dIa>%H{TGv*`-UDJa*{~A3mHs z_uO;cR;CCXufKNfn)c+$lf~!HpVy5ZJ-SC=-d=I)&YnH1!<%_Jo|cxT!*ja3F-p-1 z_{xgu!? zFJ3IJsHo5ZSI7I5_yh=_058HPb3Q4mYu2n;I)C(0L-gDGP#T{A#f(qJ1d0Uhps$T6 zUO#^PcpcocLuI{+T=60Zdvqvf+{U5Gy^)TyFjO6jM_Ef(}1_&jQ-%Yy#*PcQ&hKztwEs{B_~KbiP(}MMXtZVR0YiIG5dc z{ihij89#XKAL;J*wCcwiVldQ`X3PzSjU_w(`F3|t z3P4n_SnC9W<4ADmMpIK0vEcyQJLzKpb=WJQxvL-3hN?72LNyVJnCNKo@Vr^%#%;s( z8bgC)_V}^kCoWu8>@EJ9G}YfG4Yf7-Uw-sKju$X-VBF8by(QS{j~h3RG&eUJT3cJG z#Kc6oUayxxgY7*17=SA10%-249Hk~Yra}=hD0;}?IP%m3_g~*qu(R~$?fR^CP?yDI zYTEqkoIE&t{a^NcN`BPqN&QWIPRWk^d^a#Mfk3bcRIEg)q^71CjvYHz)zZ>3p7BES zlqpk=!tvRsPoH*5s{lY9>txhnnuzTRO=NUT^dPc!@w{_#Nzgcb-K{KHXebF*h7nOv zkmB`id1QEeZ2CiK)7lg&6$y`we0O@*%7ji{A`m==U{ErXCr`csYI?;9hOsfpnKNf_ z^vzqqwXDoFD;O337f?b{;&eF_ETHVxV5tPVevJ~joX8bQA`1>7Xip=CBqF~lF*G#% z1&p0YL&Id#Cr#=!&QT(f45htAC~ODb{3finxvMlREDY`Hvejy(i61(0XGeyFK?DMY0XNsNghn{t+;r@7PGI5655Ag*(6{{S}Q zXl!g8jP`=yfPL-(HD;jt(9UMen1P=5u_w3B{`SJd5kq}F8ZwEAP@fAARkT)o ze+5dQN(mqqzzaRV>>!2m1^VDRl823Lhe+Fys&^&fF02l<4$5f2&3Blw5 zD8CHy?y(*MFxlkJTzh3Vwf8>eJa&y53ehr>A>)U}6S3P6X57a8Ov+=3p^Tb$k?}sPr7YL=YiT3B7dP?|we(^^g@fkhAb*GbeU{!To$q z?P@cac71iKLw#bQkW)Y%b&IRbG@HzwY|7L5YysNrT&b?B?_@Jho5KB`&S$NrW-7cq zAFjpPI={aFdaS9LLb{76aQ{+&fbqF4mQHJsYttvBtcT?a&eF(0ej;phl5zn=Bm&0|Ca9w5bG+7iHS{)h#Q=6 z|Gc^6w`-pu_ok*2OzB`PokfaVnv>=t0A9w6RbmCc$B0*@3_|r6D2oc70Q`Sff%6httYAlhC-4 zBQ!WSS11l5;Ze~fDsc$C6ia0^sHqdjM{;XJP-S4Hg6@tWIvdNK4tZ_?G4I*DO`Ibh z>OfWjImjJAb}xV&g!0Z9*{G>o+S*3L^$&TT<4xhccgrM_3eK7ixHryi7Ikxq74GkF z1tetGrUP*PX|Lv>@_dK~#5!a2M_QQuE3GgnNQ>Dy_Y)TV-+PsuGsfQb6ZVHO`UI%A{e-MC#=i6u_J=X{D51Xe z6MABd6*cFQv0?2uW9&;mVSgB7&oU1{_$=JCn`I9>_mL^jho-D zoHOgY=T`rcL<|}PZJ1QM?70_=D`wC5E=;8&>d2_+b5`X@IH`wh6uIw{l5ZyeD)+Vc zi{D@U_xh~GR+T0K318aZKHm4m%(0`|MKZZi9T9miCx9M#Ff(BEsF6e(stnrk`Jwq0 z-(B53bL{ALZ0#>!*Qbt7h&vSk;Ze9+ox&=h=}UhpnX`IL>dEsLetdexFX|RdOT{^A z;#~*-lQLuM$P*Z&NhH$Y_r%AZPzKA$poj(`e3 zr}RupScp7cr40S|f=MaUDav7I!YUl~SHmhGS-AQh;L+fv0;~ul5~HL3weg_`Qeq?2 z2Arn|AWGmgGvmo`JKdf&Ky#){CgnHk=nuO^gai{t68TO^c>B5mYxNM^cZu0*)#B|X zVo?nM`>PMvu>P7{%#d*_L)!Wei0{(l0sSNa6&4mMG55Ey*Is)q`}e>9z0w~N!Xfcn z`vYd{)~(9hHb-7eOw8JT0b(ShCI6jX+NTs37q_xi2&_>mU)Ns=;V^idE>QyD`abn0 zNV-O>P!glf5wmUEHf4VR;lEo8nB1qoCBOgv`%1mBX*_nz+-Pbe8jWV9PjMMYAe*rj z*BQUYtgNi1%yIX5XQ;-Fa6G@0@xJ+|hD$ZKl+LCHJFSFD6%olph{e=KsAeN+HPjQE zjh_EcB17avBbTH<`|PtN?yWtl=1~UFW+;xBJN(Q)*c$odN{;6LJ$}2CEy(h{D z#AC!R76WCK&|O>DS80_ih)5Vj0_}D(WkeFmNS#R3YPI*)9tzyR0LuXoI=5raNpS^m z%-feO5+Lt0G&XAYm!2gT^)+2i2$Rdm^63*voJQ3o5{VvlKA1-vVhYM3o@c-mGeEoh z%tjUDlNlA@zZ0L(a7DR*bo_>?6cD#rc9`}{@slzZ}A zg|5zE?C3b9GpOqL+4E%g?%hin@IHANdQ<@bNrNSRP^*|(KhPU*J9Y8$Cj{%hCQ`A~eu;h9}vv@{I3dsc3Nu|<~ zsIbtqc(sxgd|pg!0fB4awD-EOH1`amOoL28&h>C?D|1Zi=~~yk@6*qAetoKpvREt> z^SxQzuWfH{FTYt+OKsn~pX%<{m+l2?`*O@Rx3;#v4$Cs;Uoo!7@CT%MCX6vf8{q~vd+qWYP#Y_W|%jL@;lhvzN z<9G7#BP4(4LPE~8thBUr>y8~e=>KtI!f#5iSg`^>GlyS?+r^1dyQE!EFx}S#DkF@_ zSOw!X406lM^m_eG%((7Lw9%jJE6I0yTLs(o5Fd5$fOtSWARZ78sK2d!f4|AeiiDt$ zY^wW|$EnKZ%$ak=WHOn(QG}&SmmcSg4>3uyXV0E5Y&IJOY_TKb_L(zhE)tiXe1G#H zZ$@q2vSrKLC?)(UI({D*m)Ik}Z{NP%r2C##RwP7AY4`5kU$nHeP>qd^6ht3XMMcFm z()lA>oJok5(i?BQ@wUZcF*`?_7ZemAm#$*f@4Jx@Eu~$%c71^oDlaeZA|0+JL`w-m z<$vH`k|0K7UphWW2$S;p=bzu{Njhvus0+#WQd8r{iz>OOsrjgb2gC#70r7x%K>dw6 z20HQ(bW;e<_sZs6M4l)Bv!4Q{h~)knaO>>e-h(ZIhA9E#u%@P_YYhzztV_%z{XiRH z0zx|4aEm;ughJsvz#{WyGMUleHstdVcpS=(KmP!*$Q)k*aCq&ToVz_rD=;vS27?^C zsHo^ja&q!p3WegE0WoU3-A>)UeY;`XwrvL!5)yLBozYbiwv4)4Kn8=M0b(;81c$>2 zQ{91Z3djYBwl7ll>$?u7rbZw-u4`&O>fizKfOtSWpq}W5Cq500Y%%sTVkHW#embW$ zwHH8CJM&ixu~;0yCLrHFW@EQ|{O$*5VUPz2(V*@cKu!s9(GYjBA=t)Y@0*+;oJ&vZ zn1Jk;goTBrv*z}vPoGZk0Fnkk$4x-?og5pY4^mrO8^uW|jRj-Ib?1v0+{Q6PLYF_| zw6wIat1Is@)k6@mQf9N6R+Cz-X0;yjsp)Wu zMD7l^N6FALy@kTN1CU;?uR^2d;zu>UzI<`*^~mSLARZ78hzInuh&udH3;Ux^`)R1m zWHOCvYirB1TCJgeN7T)T29F7NQ6TUm9RR`+Gk@@OFScJTbV@dx?RlWFv9 a.subscribed:focus, -#tasklistsbox .treelist div:hover > a.subscribed { +#tasklistsbox .treelist div a.subscribed:focus, +#tasklistsbox .treelist div:hover a.subscribed { background-position: -2px -215px; } @@ -339,20 +357,28 @@ body.tasklist.attachmentwin #mainscreen { background-position: -20px -215px; } -#tasklistsbox .treelist div > a.quickview:focus, -#tasklistsbox .treelist li div:hover > a.quickview { +#tasklistsbox .treelist div a.quickview:focus, +#tasklistsbox .treelist div:hover a.quickview { background-position: -20px -101px; background-color: transparent !important; } -#tasklistsbox .treelist li div.focusview > a.quickview { +#tasklistsbox .treelist div a.remove:focus, +#tasklistsbox .treelist div:hover a.remove { + background-position: -2px -371px; + background-color: transparent !important; +} + +#tasklistsbox .treelist div.focusview a.quickview { background-position: -2px -101px; } -#tasklistsbox .searchresults .treelist li a.quickview { +#tasklistsbox .searchresults .treelist div a.remove, +#tasklistsbox .searchresults .treelist div a.quickview { display: none; } +#tasklistsbox .treelist div a.remove:focus, #tasklistsbox .treelist div a.quickview:focus, #tasklistsbox .treelist div a.subscribed:focus { border-radius: 3px; diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 7743b847..218b8db0 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -166,6 +166,11 @@ function rcube_tasklist_ui(settings) rcmail.http_post('tasklist', { action:'subscribe', l:{ id:p.id, active:list.active?1:0, permanent:list.subscribed?1:0 } }); } }); + tasklists_widget.addEventListener('remove', function(p) { + if (me.tasklists[p.id] && me.tasklists[p.id].removable) { + list_remove(p.id); + } + }); tasklists_widget.addEventListener('insert-item', function(p) { var list = p.data; if (list && list.id && !list.virtual) { diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php index 8d4170af..b7bb4d43 100644 --- a/plugins/tasklist/tasklist_ui.php +++ b/plugins/tasklist/tasklist_ui.php @@ -248,9 +248,12 @@ class tasklist_ui return html::div(join(' ', $classes), html::span(array('class' => 'listname', 'title' => $title, 'id' => $label_id), $prop['listname'] ?: $prop['name']) . ($prop['virtual'] ? '' : - html::tag('input', array('type' => 'checkbox', 'name' => '_list[]', 'value' => $id, 'checked' => $prop['active'], 'aria-labelledby' => $label_id)) . - html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->plugin->gettext('focusview'), 'role' => 'checkbox', 'aria-checked' => 'false'), ' ') . - (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('tasklistsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') + html::tag('input', array('type' => 'checkbox', 'name' => '_list[]', 'value' => $id, 'checked' => $prop['active'], 'aria-labelledby' => $label_id)) . + html::span('actions', + ($prop['removable'] ? html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->plugin->gettext('removelist')), ' ') : '') . + html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->plugin->gettext('focusview'), 'role' => 'checkbox', 'aria-checked' => 'false'), ' ') . + (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('tasklistsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') + ) ) ); }