Changes of Revision 12

roundcubemail-plugin-contextmenu.spec Changed
x
 
1
@@ -14,7 +14,7 @@
2
 
3
 Name:           roundcubemail-plugin-contextmenu
4
 Version:        %{rc_version}
5
-Release:        2%{?dot_rel_suffix}%{?dist}
6
+Release:        5%{?dot_rel_suffix}%{?dist}
7
 Summary:        Contextmenu plugin for Roundcube Webmail
8
 
9
 Group:          Applications/Internet
10
@@ -144,6 +144,9 @@
11
 %{datadir}/public_html/assets/plugins/contextmenu/
12
 
13
 %changelog
14
+* Tue May  7 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 3.0-5.beta1
15
+- Rebuild against core updates with fixes
16
+
17
 * Sat Jan 19 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 3.0-4.beta1
18
 - Rebuild against core updates
19
 
20
debian.changelog Changed
11
 
1
@@ -1,3 +1,9 @@
2
+roundcubemail-plugin-contextmenu (3.0-0~kolab7) unstable; urgency=low
3
+
4
+  * Rebuild against core updates with fixes
5
+
6
+ -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>  Tue,  7 May 2019 18:41:13 +0200
7
+
8
 roundcubemail-plugin-contextmenu (3.0-0~kolab6) unstable; urgency=low
9
 
10
   * Rebuild against core updates
11
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/README.md Changed
15
 
1
@@ -30,6 +30,12 @@
2
 directory called contextmenu and place the files in there, ignoring the root
3
 directory in the downloaded archive.
4
 
5
+Contextmenu manual
6
+------------------
7
+The MANUAL.md file shipped with this plugin contains information for plugin and
8
+skin developers. The Contextmenu plugin can be extended by other plugins; new
9
+menus can be created and existing menus manipulated.
10
+
11
 [rcplugrepo]: https://plugins.roundcube.net/packages/johndoh/contextmenu
12
 [releases]: https://github.com/johndoh/roundcube-contextmenu/releases
13
 [gpl]: https://www.gnu.org/licenses/gpl.html
14
\ No newline at end of file
15
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/contextmenu.js Changed
34
 
1
@@ -344,7 +344,7 @@
2
         }, events));
3
 
4
         $(el).on('contextmenu', function(e) {
5
-            var source = $(this).find('a:first');
6
+            var source = $(this).find('a').first();
7
             source.blur(); // remove focus (and keyboard nav highlighting) from source element
8
 
9
             if (props.menu_name == 'settingslist') {
10
@@ -643,10 +643,10 @@
11
                             }
12
                         }
13
                         else if ($(src_elem).is('span') && $(src_elem).children().length == 2) {
14
-                            elem = $(src_elem).children(':first').clone();
15
+                            elem = $(src_elem).children().first().clone();
16
 
17
-                            if ($(src_elem).children(':last').attr(rcmail.contextmenu.settings.popup_attrib).match(rcmail.contextmenu.settings.popup_pattern)) {
18
-                                $(elem).attr(rcmail.contextmenu.settings.popup_attrib, $(src_elem).children(':last').attr(rcmail.contextmenu.settings.popup_attrib));
19
+                            if ($(src_elem).children().last().attr(rcmail.contextmenu.settings.popup_attrib).match(rcmail.contextmenu.settings.popup_pattern)) {
20
+                                $(elem).attr(rcmail.contextmenu.settings.popup_attrib, $(src_elem).children().last().attr(rcmail.contextmenu.settings.popup_attrib));
21
                                 $(elem).addClass('rcm-uidropdown');
22
                             }
23
                         }
24
@@ -823,7 +823,8 @@
25
 
26
         var callback = this.parent_menu.triggerEvent('beforeactivate', {ref: this, source: obj, originalEvent: e});
27
         if (!callback || !callback.abort) {
28
-            if (obj) {
29
+            // don't add source class when selected row is part of current selection, current selection is styled already (#113)
30
+            if (obj && !(this.list_object && rcmail[this.list_object].in_selection(rcmail.env.context_menu_source_id))) {
31
                 $(obj).addClass(this.classes.source);
32
             }
33
 
34
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/elastic/contextmenu.less Changed
113
 
1
@@ -8,6 +8,7 @@
2
 @contextmenu-placeholder-icon: "\00a0";
3
 
4
 .contextmenu-source-highlight(@background-color) {
5
+  .listing:not(.treelist) li.context-source:not(.selected), // e.g. Settings actions list
6
   .listing tbody tr.context-source:not(.selected) > td {
7
     background-color: darken(@background-color, 2.5%);
8
   }
9
@@ -27,29 +28,19 @@
10
 }
11
 
12
 // default content set here to prevent overriding Elastic icons
13
-.toolbar a.rcmbutton::before {
14
+.toolbarmenu a.rcmbutton::before {
15
   content: @contextmenu-placeholder-icon;
16
 }
17
 
18
-div.contextmenu ul.toolbar {
19
+div.contextmenu ul.menu {
20
   > li {
21
-    display: block;
22
-    border-bottom: 1px solid @color-list-border;
23
-
24
     > a {
25
       outline: 0;
26
       cursor: default !important;
27
-      padding: 0 0.5em;
28
-      font-size: 0.875rem;
29
     }
30
 
31
     > a.button {
32
-      height: @listing-line-height;
33
-      line-height: @listing-line-height;
34
-      width: 100%;
35
       min-width: 160px;
36
-      max-width: none;
37
-      text-align: left;
38
       display: flex;
39
     }
40
   }
41
@@ -59,12 +50,6 @@
42
   }
43
 
44
   a.rcmbutton {
45
-    &::before {
46
-      line-height: inherit;
47
-      margin: 0 0.25rem 0 0;
48
-      width: 1.18em;
49
-    }
50
-
51
     &::after {
52
       .font-icon-class;
53
       content: @contextmenu-placeholder-icon;
54
@@ -84,7 +69,6 @@
55
 
56
     > span.icon {
57
       flex-grow: 1;
58
-      font-size: 0.875rem;
59
     }
60
   }
61
 }
62
@@ -114,26 +98,21 @@
63
 // replace :hover with :active on phones to prevent missleading highlighting of menu items
64
 html.layout-phone {
65
   div.contextmenu {
66
-    .toolbarmenu.listing li:hover a.active {
67
+    .menu.listing li:hover a.active {
68
       color: @color-list;
69
       background-color: transparent;
70
     }
71
 
72
-    .toolbarmenu.listing li:active a.active {
73
-      color: @color-toolbarmenu-hover;
74
-      background-color: @color-toolbarmenu-hover-background;
75
+    .menu.listing li:active a.active {
76
+      color: @color-menu-hover;
77
+      background-color: @color-menu-hover-background;
78
     }
79
   }
80
 }
81
 
82
 html.touch {
83
   div.contextmenu {
84
-    ul.toolbar {
85
-      > li > a {
86
-        height: @listing-touch-line-height;
87
-        line-height: @listing-touch-line-height;
88
-      }
89
-
90
+    ul.menu {
91
       a.rcmbutton {
92
         &::before,
93
         &::after {
94
@@ -142,7 +121,6 @@
95
 
96
         > span.icon {
97
           .overflow-ellipsis;
98
-          font-size: 1.2rem;
99
         }
100
       }
101
     }
102
@@ -167,9 +145,5 @@
103
     &.cmd_plugin-contextmenu-openinline::before {
104
       .font-icon-regular(@fa-var-folder-open);
105
     }
106
-
107
-    &.cmd_search-delete::before {
108
-      content: @fa-var-trash-alt !important;
109
-    }
110
   }
111
 }
112
\ No newline at end of file
113
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/elastic/contextmenu.min.css Changed
6
 
1
@@ -1,1 +1,1 @@
2
-.listing tbody tr.context-source:not(.selected)>td{background-color:#f9f9f9}ul.treelist li.context-source:not(.selected)>div>a,ul.treelist li.context-source:not(.selected)>a{background-color:#f9f9f9}body>#layout>div.sidebar .listing tbody tr.context-source:not(.selected)>td{background-color:#f9f9f9}body>#layout>div.sidebar ul.treelist li.context-source:not(.selected)>div>a,body>#layout>div.sidebar ul.treelist li.context-source:not(.selected)>a{background-color:#f9f9f9}.toolbar a.rcmbutton::before{content:"\00a0"}div.contextmenu ul.toolbar>li{display:block;border-bottom:1px solid #f1f3f4}div.contextmenu ul.toolbar>li>a{outline:0;cursor:default !important;padding:0 .5em;font-size:.875rem}div.contextmenu ul.toolbar>li>a.button{height:2.5rem;line-height:2.5rem;width:100%;min-width:160px;max-width:none;text-align:left;display:flex}div.contextmenu ul.toolbar>li:last-child{border-bottom:none}div.contextmenu ul.toolbar a.rcmbutton::before{line-height:inherit;margin:0 .25rem 0 0;width:1.18em}div.contextmenu ul.toolbar a.rcmbutton::after{font-size:1.25em;display:block;float:left;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:'Icons';font-style:normal;font-weight:900;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;content:"\00a0";padding:0 .5em;font-size:100%}div.contextmenu ul.toolbar a.rcmbutton.rcmsubbutton.disabled{pointer-events:auto}div.contextmenu ul.toolbar a.rcmbutton.rcmsubbutton::after{content:"\f105"}div.contextmenu ul.toolbar a.rcmbutton>span.icon{flex-grow:1;font-size:.875rem}.contextmenu_content{display:block !important;flex:0 !important;min-width:0 !important;width:0}.contextmenu_content #toolbar-menu{display:block !important}html.layout-small div.contextmenu,html.layout-phone div.contextmenu{top:0 !important}html.layout-small div.contextmenu a.rcmsubbutton:not(.rcm-uidropdown)::after,html.layout-phone div.contextmenu a.rcmsubbutton:not(.rcm-uidropdown)::after{display:none}html.layout-phone div.contextmenu .toolbarmenu.listing li:hover a.active{color:#2c363a;background-color:transparent}html.layout-phone div.contextmenu .toolbarmenu.listing li:active a.active{color:#fff;background-color:#37beff}html.touch div.contextmenu ul.toolbar>li>a{height:3.4rem;line-height:3.4rem}html.touch div.contextmenu ul.toolbar a.rcmbutton::before,html.touch div.contextmenu ul.toolbar a.rcmbutton::after{margin-right:.5rem}html.touch div.contextmenu ul.toolbar a.rcmbutton>span.icon{overflow:hidden;text-overflow:ellipsis;font-size:1.2rem}div.contextmenu a.cmd_plugin-contextmenu-collapseall::before{content:"\f146";font-weight:400}div.contextmenu a.cmd_plugin-contextmenu-expandall::before{content:"\f0fe";font-weight:400}div.contextmenu a.cmd_plugin-contextmenu-openextwin::before{content:"\f360"}div.contextmenu a.cmd_plugin-contextmenu-openinline::before{content:"\f07c";font-weight:400}div.contextmenu a.cmd_search-delete::before{content:"\f2ed" !important}
3
\ No newline at end of file
4
+.listing tbody tr.context-source:not(.selected)>td{background-color:#f9f9f9}ul.treelist li.context-source:not(.selected)>div>a,ul.treelist li.context-source:not(.selected)>a{background-color:#f9f9f9}body>#layout>div.sidebar .listing tbody tr.context-source:not(.selected)>td{background-color:#f9f9f9}body>#layout>div.sidebar ul.treelist li.context-source:not(.selected)>div>a,body>#layout>div.sidebar ul.treelist li.context-source:not(.selected)>a{background-color:#f9f9f9}.toolbarmenu a.rcmbutton::before{content:"\00a0"}div.contextmenu ul.toolbarmenu>li>a{outline:0;cursor:default !important}div.contextmenu ul.toolbarmenu>li>a.button{min-width:160px;display:flex}div.contextmenu ul.toolbarmenu>li:last-child{border-bottom:none}div.contextmenu ul.toolbarmenu a.rcmbutton::after{font-size:1.25em;display:block;float:left;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:'Icons';font-style:normal;font-weight:900;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;content:"\00a0";padding:0 .5em;font-size:100%}div.contextmenu ul.toolbarmenu a.rcmbutton.rcmsubbutton.disabled{pointer-events:auto}div.contextmenu ul.toolbarmenu a.rcmbutton.rcmsubbutton::after{content:"\f105"}div.contextmenu ul.toolbarmenu a.rcmbutton>span.icon{flex-grow:1}.contextmenu_content{display:block !important;flex:0 !important;min-width:0 !important;width:0}.contextmenu_content #toolbar-menu{display:block !important}html.layout-small div.contextmenu,html.layout-phone div.contextmenu{top:0 !important}html.layout-small div.contextmenu a.rcmsubbutton:not(.rcm-uidropdown)::after,html.layout-phone div.contextmenu a.rcmsubbutton:not(.rcm-uidropdown)::after{display:none}html.layout-phone div.contextmenu .toolbarmenu.listing li:hover a.active{color:#2c363a;background-color:transparent}html.layout-phone div.contextmenu .toolbarmenu.listing li:active a.active{color:#fff;background-color:#37beff}html.touch div.contextmenu ul.toolbarmenu a.rcmbutton::before,html.touch div.contextmenu ul.toolbarmenu a.rcmbutton::after{margin-right:.5rem}html.touch div.contextmenu ul.toolbarmenu a.rcmbutton>span.icon{overflow:hidden;text-overflow:ellipsis}div.contextmenu a.cmd_plugin-contextmenu-collapseall::before{content:"\f146";font-weight:400}div.contextmenu a.cmd_plugin-contextmenu-expandall::before{content:"\f0fe";font-weight:400}div.contextmenu a.cmd_plugin-contextmenu-openextwin::before{content:"\f360"}div.contextmenu a.cmd_plugin-contextmenu-openinline::before{content:"\f07c";font-weight:400}
5
\ No newline at end of file
6
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/elastic/functions.js Changed
50
 
1
@@ -25,7 +25,7 @@
2
             menu_defaults: {
3
                 modal: true,
4
                 classes: {
5
-                    ul: 'toolbarmenu toolbar listing',
6
+                    ul: 'menu listing',
7
                     a: 'button rcmbutton',
8
                     sub_button_a: 'rcmsubbutton',
9
                     sub_button_span: null
10
@@ -41,7 +41,7 @@
11
                         var header = $('<h3>').addClass('popover-header')
12
                             .append($('<a>').attr('class', class_name).text(title))
13
                             .on('click', function(e) {
14
-                                rcmail.contextmenu.hide_all(e, $('div.contextmenu:visible').length >= 1);
15
+                                rcmail.contextmenu.hide_all(e, $('div.contextmenu').filter(':visible').length >= 1);
16
                             });
17
 
18
                         $(p.ref.container).addClass('popover').prepend(header).children('ul').wrap($('<div>').addClass('popover-body'));
19
@@ -58,14 +58,14 @@
20
                 },
21
                 '+beforeactivate': function(p) {
22
                     // force toolbar display on small screens while the contextmenu renders
23
-                    if (!$('#layout > .content').is(':visible'))
24
-                        $('#layout > .content').addClass('contextmenu_content');
25
+                    if (!$('#layout-content').is(':visible'))
26
+                        $('#layout-content').addClass('contextmenu_content');
27
 
28
                     // do not show submenus on mouseover for small screens
29
                     p.ref.mouseover_timeout = $('html').is('.layout-small,.layout-phone') ? -1 : rcmail.env.contextmenu_mouseover_timeout;
30
                 },
31
                 '+afteractivate': function() {
32
-                    $('#layout > .content').removeClass('contextmenu_content');
33
+                    $('#layout-content').removeClass('contextmenu_content');
34
                 },
35
                 'submenu_toggle': function(p) {
36
                     var matches;
37
@@ -103,6 +103,12 @@
38
         // Remove any tooltips added to menu elements by Elastic UI JS
39
         rcmail.addEventListener('enable-command', function() { $('div.contextmenu').find('a.rcmbutton').removeAttr('title'); });
40
 
41
+        // Hack to fix menu hiding when switching between BS popovers and JQUI dialogs (#114)
42
+        // TODO: find a more general solution
43
+        rcmail.addEventListener('afterqrcode', function(p) {
44
+            rcmail.contextmenu.hide_all(p.originalEvent, false, true);
45
+        });
46
+
47
         if (rcmail.env.task == 'mail' && rcmail.env.action == '') {
48
             rcmail.addEventListener('insertrow', function(props) { rcmail.contextmenu.init_list(props.row.id, {'menu_name': 'messagelist', 'menu_source': '#toolbar-menu > li'}); } );
49
             rcmail.add_onload("rcmail.contextmenu.init_folder('#mailboxlist li', {'menu_source': ['#rcmfolder-menu > ul', '#mailboxoptions-menu > ul > li']})");
50
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/elastic/includes/mail.html Changed
17
 
1
@@ -1,10 +1,10 @@
2
 <roundcube:if condition="env:action == ''" />
3
 <div id="rcmfolder-menu" class="popupmenu">
4
     <h3 id="aria-label-rcmfolder-menu" class="voice"><roundcube:label name="arialabelmailboxmenu" /></h3>
5
-    <ul class="toolbarmenu listing" role="menu" aria-labelledby="aria-label-rcmfolder-menu">
6
-        <roundcube:button type="link-menuitem" command="plugin.contextmenu.collapseall" label="contextmenu.collapseall" class="collapseall" classAct="collapseall active" />
7
-        <roundcube:button type="link-menuitem" command="plugin.contextmenu.expandall" label="contextmenu.expandall" class="expandall" classAct="expandall active" />
8
-        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openextwin" label="openinextwin" class="openextwin rcm-active" classAct="openextwin rcm_active active" />
9
+    <ul class="menu listing" role="menu" aria-labelledby="aria-label-rcmfolder-menu">
10
+        <roundcube:button type="link-menuitem" command="plugin.contextmenu.collapseall" label="contextmenu.collapseall" class="collapseall disabled" classAct="collapseall active" />
11
+        <roundcube:button type="link-menuitem" command="plugin.contextmenu.expandall" label="contextmenu.expandall" class="expandall disabled" classAct="expandall active" />
12
+        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openextwin" label="openinextwin" class="openextwin rcm-active disabled" classAct="openextwin rcm_active active" />
13
     </ul>
14
 </div>
15
 <roundcube:endif />
16
\ No newline at end of file
17
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/elastic/includes/settings.html Changed
13
 
1
@@ -1,7 +1,7 @@
2
 <div id="rcmsettings-menu" class="popupmenu">
3
     <h3 id="aria-label-rcmsettings-menu" class="voice"><roundcube:label name="arialabellistselectmenu" /></h3>
4
-    <ul class="toolbarmenu listing" role="menu" aria-labelledby="aria-label-rcmsettings-menu">
5
-        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openinline" label="open" class="openinline rcm-active" classAct="openinline rcm-active active" />
6
-        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openextwin" label="openinextwin" class="openextwin rcm-active" classAct="openextwin rcm-active active" />
7
+    <ul class="menu listing" role="menu" aria-labelledby="aria-label-rcmsettings-menu">
8
+        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openinline" label="open" class="openinline rcm-active disabled" classAct="openinline rcm-active active" />
9
+        <roundcube:button type="link-menuitem" command="plugin.contextmenu.openextwin" label="openinextwin" class="openextwin rcm-active disabled" classAct="openextwin rcm-active active" />
10
     </ul>
11
 </div>
12
\ No newline at end of file
13
roundcubemail-plugin-contextmenu-3.0-beta1.tar.gz/skins/larry/functions.js Changed
10
 
1
@@ -24,7 +24,7 @@
2
 
3
 rcube_webmail.prototype.contextmenu.skin_funcs.reorder_contact_menu = function(p) {
4
     // put export and more submenus last
5
-    var ul = p.ref.container.find('ul:first');
6
+    var ul = p.ref.container.find('ul').first();
7
     p.ref.container.find('a.export').parent('li').appendTo(ul);
8
     p.ref.container.find('a.more').parent('li').appendTo(ul);
9
 };
10
roundcubemail-plugin-contextmenu.dsc Changed
10
 
1
@@ -2,7 +2,7 @@
2
 Source: roundcubemail-plugin-contextmenu
3
 Binary: roundcubemail-plugin-contextmenu
4
 Architecture: all
5
-Version: 3.0-0~kolab6
6
+Version: 3.0-0~kolab7
7
 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
8
 Uploaders: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
9
 Standards-Version: 3.9.3
10