diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/js/app.js | 5 | ||||
-rw-r--r-- | program/js/list.js | 24 | ||||
-rw-r--r-- | program/localization/en_GB/labels.inc | 2 | ||||
-rw-r--r-- | program/localization/en_US/labels.inc | 2 | ||||
-rw-r--r-- | program/localization/et_EE/labels.inc | 1 | ||||
-rw-r--r-- | program/localization/fi_FI/labels.inc | 1 | ||||
-rw-r--r-- | program/localization/nl_NL/labels.inc | 1 | ||||
-rw-r--r-- | program/localization/pl_PL/labels.inc | 3 | ||||
-rw-r--r-- | skins/default/templates/mail.html | 2 |
10 files changed, 35 insertions, 7 deletions
@@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Added possibility to invert messages selection - After move/delete from 'show' action display next message instead of messages list (#1485887) - Fixed problem with double quote at the end of folder name (#1485884) - Speedup UI by using CSS sprites and etags/expires/deflate in Apache config (#1484858,#1485800) diff --git a/program/js/app.js b/program/js/app.js index 18a4f1ae3..5e323e229 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -826,7 +826,10 @@ function rcube_webmail() break; case 'select-all': - this.message_list.select_all(props); + if (props == 'invert') + this.message_list.invert_selection(); + else + this.message_list.select_all(props); break; case 'select-none': diff --git a/program/js/list.js b/program/js/list.js index addd1e652..51889fa30 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -530,6 +530,30 @@ select_all: function(filter) /** + * Invert selection + */ +invert_selection: function() +{ + if (!this.rows || !this.rows.length) + return false; + + // remember old selection + var select_before = this.selection.join(','); + + for (var n in this.rows) + this.highlight_row(n, true); + + // trigger event if selection changed + if (this.selection.join(',') != select_before) + this.triggerEvent('select'); + + this.focus(); + + return true; +}, + + +/** * Unselect selected row(s) */ clear_selection: function(id) diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc index 26af22993..5f095679d 100644 --- a/program/localization/en_GB/labels.inc +++ b/program/localization/en_GB/labels.inc @@ -116,13 +116,13 @@ $labels['markread'] = 'As read'; $labels['markunread'] = 'As unread'; $labels['markflagged'] = 'As flagged'; $labels['markunflagged'] = 'As unflagged'; -$labels['messagemenu'] = 'Message menu'; $labels['select'] = 'Select'; $labels['all'] = 'All'; $labels['none'] = 'None'; $labels['unread'] = 'Unread'; $labels['flagged'] = 'Flagged'; $labels['unanswered'] = 'Unanswered'; +$labels['invert'] = 'Invert'; $labels['filter'] = 'Filter'; $labels['compact'] = 'Compact'; $labels['empty'] = 'Empty'; diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc index 0e26fc67a..a18bef13b 100644 --- a/program/localization/en_US/labels.inc +++ b/program/localization/en_US/labels.inc @@ -143,7 +143,6 @@ $labels['markunread'] = 'As unread'; $labels['markflagged'] = 'As flagged'; $labels['markunflagged'] = 'As unflagged'; $labels['messageactions'] = 'More actions...'; -$labels['messagemenu'] = 'Message menu'; $labels['select'] = 'Select'; $labels['all'] = 'All'; @@ -151,6 +150,7 @@ $labels['none'] = 'None'; $labels['unread'] = 'Unread'; $labels['flagged'] = 'Flagged'; $labels['unanswered'] = 'Unanswered'; +$labels['invert'] = 'Invert'; $labels['filter'] = 'Filter'; $labels['compact'] = 'Compact'; diff --git a/program/localization/et_EE/labels.inc b/program/localization/et_EE/labels.inc index 08a8a4813..7644ce532 100644 --- a/program/localization/et_EE/labels.inc +++ b/program/localization/et_EE/labels.inc @@ -116,7 +116,6 @@ $labels['markread'] = 'Loetuks'; $labels['markunread'] = 'Mitte loetuks'; $labels['markflagged'] = 'Lisa lipik'; $labels['markunflagged'] = 'Eemalda lipik'; -$labels['messagemenu'] = 'Kirjade menüü'; $labels['select'] = 'Vali'; $labels['all'] = 'kõik'; $labels['none'] = 'mitte midagi'; diff --git a/program/localization/fi_FI/labels.inc b/program/localization/fi_FI/labels.inc index eba03a14c..e783758b3 100644 --- a/program/localization/fi_FI/labels.inc +++ b/program/localization/fi_FI/labels.inc @@ -118,7 +118,6 @@ $labels['markread'] = 'luetuiksi'; $labels['markunread'] = 'ei-luetuiksi'; $labels['markflagged'] = 'korostetuiksi'; $labels['markunflagged'] = 'ei-korostetuiksi'; -$labels['messagemenu'] = 'Viestilista'; $labels['select'] = 'Valitse'; $labels['all'] = 'Kaikki'; $labels['none'] = 'Ei mitään'; diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc index f6c602ee8..1fabaff79 100644 --- a/program/localization/nl_NL/labels.inc +++ b/program/localization/nl_NL/labels.inc @@ -119,7 +119,6 @@ $labels['markunread'] = 'Ongelezen'; $labels['markflagged'] = 'Selecteren'; $labels['markunflagged'] = 'Niet selecteren'; $labels['messageactions'] = 'Meer acties...'; -$labels['messagemenu'] = 'Berichtenmenu'; $labels['select'] = 'Selecteer'; $labels['all'] = 'Allemaal'; $labels['none'] = 'Geen'; diff --git a/program/localization/pl_PL/labels.inc b/program/localization/pl_PL/labels.inc index 41910d68f..1f2a0d249 100644 --- a/program/localization/pl_PL/labels.inc +++ b/program/localization/pl_PL/labels.inc @@ -127,13 +127,14 @@ $labels['markread'] = 'Jako przeczytane'; $labels['markunread'] = 'Jako nieprzeczytane'; $labels['markflagged'] = 'Jako oflagowane'; $labels['markunflagged'] = 'Jako nieoflagowane'; -$labels['messagemenu'] = 'Menu wiadomości'; +$labels['messageactions'] = 'Więcej akcji...'; $labels['select'] = 'Zaznacz'; $labels['all'] = 'Wszystkie'; $labels['none'] = 'Anuluj'; $labels['unread'] = 'Nieprzeczytane'; $labels['flagged'] = 'Oznaczone'; $labels['unanswered'] = 'Bez odpowiedzi'; +$labels['invert'] = 'Odwróć'; $labels['filter'] = 'Filtr'; $labels['compact'] = 'Porządkuj'; $labels['empty'] = 'Opróżnij'; diff --git a/skins/default/templates/mail.html b/skins/default/templates/mail.html index d3d8e232e..29116f7f6 100644 --- a/skins/default/templates/mail.html +++ b/skins/default/templates/mail.html @@ -88,7 +88,9 @@ <roundcube:label name="select" />: <roundcube:button command="select-all" label="all" classAct="active" /> <roundcube:button command="select-all" prop="unread" label="unread" classAct="active" /> +<roundcube:button command="select-all" prop="invert" label="invert" classAct="active" /> <roundcube:button command="select-none" label="none" classAct="active" /> +<roundcube:container name="listcontrols" id="listcontrols" /> </span> <roundcube:if condition="env:quota" /> <span id="quotabox"> |