Changes of Revision 12
roundcubemail-plugin-contextmenu.spec
Changed
x
1
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
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
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
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
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
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
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
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
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
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
55
56
> span.icon {
57
flex-grow: 1;
58
- font-size: 0.875rem;
59
}
60
}
61
}
62
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
95
96
> span.icon {
97
.overflow-ellipsis;
98
- font-size: 1.2rem;
99
}
100
}
101
}
102
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
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
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
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
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
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
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
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
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
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