summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2018-10-15 21:22:07 +0200
committerGitHub <noreply@github.com>2018-10-15 21:22:07 +0200
commit353fddfbb9f226666e351f78ea9ec33df15c318d (patch)
tree5abb5d324756d869c291387f45de8286e3635c05
parentf5a495bc3e97ec7992b3cb8b064471b1031fec55 (diff)
parentc316eb6b978b53ac51672dff49a528efac073d08 (diff)
downloadnextcloud-server-353fddfbb9f226666e351f78ea9ec33df15c318d.tar.gz
nextcloud-server-353fddfbb9f226666e351f78ea9ec33df15c318d.zip
Merge pull request #11849 from nextcloud/csp/fileactionsmenu
Move fileactionsmenu to compiled handlebars
-rw-r--r--apps/files/js/fileactionsmenu.js23
-rw-r--r--apps/files/js/templates.js37
-rw-r--r--apps/files/js/templates/fileactionsmenu.handlebars17
-rw-r--r--apps/files/tests/js/fileactionsmenuSpec.js2
4 files changed, 56 insertions, 23 deletions
diff --git a/apps/files/js/fileactionsmenu.js b/apps/files/js/fileactionsmenu.js
index b8022f13734..c3cd8bf8b70 100644
--- a/apps/files/js/fileactionsmenu.js
+++ b/apps/files/js/fileactionsmenu.js
@@ -10,24 +10,6 @@
(function() {
- var TEMPLATE_MENU =
- '<ul>' +
- '{{#each items}}' +
- '<li>' +
- '<a href="#" class="menuitem action action-{{nameLowerCase}} permanent" data-action="{{name}}">' +
- '{{#if icon}}<img class="icon" src="{{icon}}"/>' +
- '{{else}}'+
- '{{#if iconClass}}' +
- '<span class="icon {{iconClass}}"></span>' +
- '{{else}}' +
- '<span class="no-icon"></span>' +
- '{{/if}}' +
- '{{/if}}' +
- '<span>{{displayName}}</span></a>' +
- '</li>' +
- '{{/each}}' +
- '</ul>';
-
/**
* Construct a new FileActionsMenu instance
* @constructs FileActionsMenu
@@ -49,10 +31,7 @@
},
template: function(data) {
- if (!OCA.Files.FileActionsMenu._TEMPLATE) {
- OCA.Files.FileActionsMenu._TEMPLATE = Handlebars.compile(TEMPLATE_MENU);
- }
- return OCA.Files.FileActionsMenu._TEMPLATE(data);
+ return OCA.Files.Templates['fileactionsmenu'](data);
},
/**
diff --git a/apps/files/js/templates.js b/apps/files/js/templates.js
index f05959ff985..0511873c8fb 100644
--- a/apps/files/js/templates.js
+++ b/apps/files/js/templates.js
@@ -81,6 +81,43 @@ templates['file_action_trigger'] = template({"1":function(container,depth0,helpe
+ ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.displayName : depth0),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ "\n</a>\n";
},"useData":true});
+templates['fileactionsmenu'] = template({"1":function(container,depth0,helpers,partials,data) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
+
+ return " <li>\n <a href=\"#\" class=\"menuitem action action-"
+ + alias4(((helper = (helper = helpers.nameLowerCase || (depth0 != null ? depth0.nameLowerCase : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"nameLowerCase","hash":{},"data":data}) : helper)))
+ + " permanent\" data-action=\""
+ + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper)))
+ + "\">\n "
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.icon : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data})) != null ? stack1 : "")
+ + " <span>"
+ + alias4(((helper = (helper = helpers.displayName || (depth0 != null ? depth0.displayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"displayName","hash":{},"data":data}) : helper)))
+ + "</span>\n </a>\n </li>\n";
+},"2":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return "<img class=\"icon\" src=\""
+ + container.escapeExpression(((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"icon","hash":{},"data":data}) : helper)))
+ + "\"/>\n";
+},"4":function(container,depth0,helpers,partials,data) {
+ var stack1;
+
+ return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.iconClass : depth0),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.program(7, data, 0),"data":data})) != null ? stack1 : "");
+},"5":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return " <span class=\"icon "
+ + container.escapeExpression(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"iconClass","hash":{},"data":data}) : helper)))
+ + "\"></span>\n";
+},"7":function(container,depth0,helpers,partials,data) {
+ return " <span class=\"no-icon\"></span>\n";
+},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
+ var stack1;
+
+ return "<ul>\n"
+ + ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.items : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + "</ul>\n";
+},"useData":true});
templates['filemultiselectmenu'] = template({"1":function(container,depth0,helpers,partials,data) {
var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
diff --git a/apps/files/js/templates/fileactionsmenu.handlebars b/apps/files/js/templates/fileactionsmenu.handlebars
new file mode 100644
index 00000000000..d8d1b78fd86
--- /dev/null
+++ b/apps/files/js/templates/fileactionsmenu.handlebars
@@ -0,0 +1,17 @@
+<ul>
+ {{#each items}}
+ <li>
+ <a href="#" class="menuitem action action-{{nameLowerCase}} permanent" data-action="{{name}}">
+ {{#if icon}}<img class="icon" src="{{icon}}"/>
+ {{else}}
+ {{#if iconClass}}
+ <span class="icon {{iconClass}}"></span>
+ {{else}}
+ <span class="no-icon"></span>
+ {{/if}}
+ {{/if}}
+ <span>{{displayName}}</span>
+ </a>
+ </li>
+ {{/each}}
+</ul>
diff --git a/apps/files/tests/js/fileactionsmenuSpec.js b/apps/files/tests/js/fileactionsmenuSpec.js
index f171f2848f8..2d31f24a1b3 100644
--- a/apps/files/tests/js/fileactionsmenuSpec.js
+++ b/apps/files/tests/js/fileactionsmenuSpec.js
@@ -203,7 +203,7 @@ describe('OCA.Files.FileActionsMenu tests', function() {
expect(displayNameStub.calledOnce).toEqual(true);
expect(displayNameStub.calledWith(menuContext)).toEqual(true);
- expect(menu.$el.find('a[data-action=Something]').text()).toEqual('Test');
+ expect(menu.$el.find('a[data-action=Something] span:not(.icon)').text()).toEqual('Test');
});
it('uses plain iconClass', function() {
fileActions.registerAction({