diff --git a/core/js/contactsmenu/jquery_entry.handlebars b/core/js/contactsmenu/jquery_entry.handlebars new file mode 100644 index 0000000000000000000000000000000000000000..cbd97056e5ce8ea16b973f7600550d62a82f0715 --- /dev/null +++ b/core/js/contactsmenu/jquery_entry.handlebars @@ -0,0 +1,6 @@ +<li> + <a href="{{hyperlink}}"> + {{#if icon}}<img src="{{icon}}">{{/if}} + <span>{{title}}</span> + </a> +</li> diff --git a/core/js/contactsmenu_templates.js b/core/js/contactsmenu_templates.js index 973d93a74f0e8210d7eab4c7874d01400702fe9f..af96a133ece643eccf3deee77ea526358490af77 100644 --- a/core/js/contactsmenu_templates.js +++ b/core/js/contactsmenu_templates.js @@ -74,6 +74,23 @@ templates['error'] = template({"compiler":[7,">= 4.0.0"],"main":function(contain + container.escapeExpression(((helper = (helper = helpers.couldNotLoadText || (depth0 != null ? depth0.couldNotLoadText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"couldNotLoadText","hash":{},"data":data}) : helper))) + "</h2>\n</div>\n"; },"useData":true}); +templates['jquery_entry'] = template({"1":function(container,depth0,helpers,partials,data) { + var helper; + + return "<img 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))) + + "\">"; +},"compiler":[7,">= 4.0.0"],"main":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=\"" + + alias4(((helper = (helper = helpers.hyperlink || (depth0 != null ? depth0.hyperlink : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"hyperlink","hash":{},"data":data}) : helper))) + + "\">\n " + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.icon : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + "\n <span>" + + alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data}) : helper))) + + "</span>\n </a>\n</li>\n"; +},"useData":true}); templates['list'] = template({"1":function(container,depth0,helpers,partials,data) { var helper; diff --git a/core/js/jquery.contactsmenu.js b/core/js/jquery.contactsmenu.js index e3f24dfff524166d6025d672593ccf200eb2e912..4b443d5e3b3322baf9dab4d506b6ff08963475b2 100644 --- a/core/js/jquery.contactsmenu.js +++ b/core/js/jquery.contactsmenu.js @@ -6,13 +6,6 @@ */ (function ($) { - var ENTRY = '' - + '<li>' - + ' <a href="{{hyperlink}}">' - + ' {{#if icon}}<img src="{{icon}}">{{/if}}' - + ' <span>{{title}}</span>' - + ' </a>' - + '</li>'; var LIST = '' + '<div class="menu popovermenu menu-left hidden contactsmenu-popover">' @@ -71,7 +64,7 @@ } actions.forEach(function(action) { - var template = Handlebars.compile(ENTRY); + var template = OC.ContactsMenu.Templates['jquery_entry']; $list.find('ul').append(template(action)); }); @@ -88,7 +81,7 @@ title = t('core', 'Error fetching contact actions'); } - var template = Handlebars.compile(ENTRY); + var template = OC.ContactsMenu.Templates['jquery_entry']; $list.find('ul').append(template({ hyperlink: '#', title: title diff --git a/core/js/tests/specs/jquery.contactsmenuSpec.js b/core/js/tests/specs/jquery.contactsmenuSpec.js index 80d08150c3fa37512346b08dedbd0e007b671720..9cad302a998c011731165d2864542899e0a878b0 100644 --- a/core/js/tests/specs/jquery.contactsmenuSpec.js +++ b/core/js/tests/specs/jquery.contactsmenuSpec.js @@ -45,7 +45,7 @@ describe('jquery.contactsMenu tests', function() { it('append list if shareType supported', function() { $selector1.contactsMenu('user', 0, $appendTo); expect($appendTo.children().length).toEqual(1); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left hidden contactsmenu-popover"> <ul> <li> <a> <span class="icon-loading-small"></span> </a> </li> </ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left hidden contactsmenu-popover"><ul><li><a><span class="icon-loading-small"></span></a></li></ul></div>'); }); }); @@ -120,7 +120,7 @@ describe('jquery.contactsMenu tests', function() { expect(fakeServer.requests[0].method).toEqual('POST'); expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne'); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"> <ul> <li class="hidden"> <a> <span class="icon-loading-small"></span> </a> </li> <li> <a href="mailto:bar%40baz.wtf"> <img src="foo.svg"> <span>bar@baz.wtf</span> </a></li></ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="mailto:bar%40baz.wtf"><img src="foo.svg"><span>bar@baz.wtf</span></a></li></ul></div>'); }); it('load topaction and more actions', function() { @@ -147,7 +147,7 @@ describe('jquery.contactsMenu tests', function() { expect(fakeServer.requests[0].method).toEqual('POST'); expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne'); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"> <ul> <li class="hidden"> <a> <span class="icon-loading-small"></span> </a> </li> <li> <a href="mailto:bar%40baz.wtf"> <img src="foo.svg"> <span>bar@baz.wtf</span> </a></li><li> <a href="http://localhost/index.php/apps/contacts"> <img src="details.svg"> <span>Details</span> </a></li></ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="mailto:bar%40baz.wtf"><img src="foo.svg"><span>bar@baz.wtf</span></a></li><li><a href="http://localhost/index.php/apps/contacts"><img src="details.svg"><span>Details</span></a></li></ul></div>'); }); it('load no actions', function() { @@ -167,7 +167,7 @@ describe('jquery.contactsMenu tests', function() { expect(fakeServer.requests[0].method).toEqual('POST'); expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne'); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"> <ul> <li class="hidden"> <a> <span class="icon-loading-small"></span> </a> </li> <li> <a href="#"> <span>No action available</span> </a></li></ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>No action available</span></a></li></ul></div>'); }); it('should throw an error', function() { @@ -182,7 +182,7 @@ describe('jquery.contactsMenu tests', function() { expect(fakeServer.requests[0].method).toEqual('POST'); expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne'); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"> <ul> <li class="hidden"> <a> <span class="icon-loading-small"></span> </a> </li> <li> <a href="#"> <span>Error fetching contact actions</span> </a></li></ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>Error fetching contact actions</span></a></li></ul></div>'); }); it('should handle 404', function() { @@ -197,7 +197,7 @@ describe('jquery.contactsMenu tests', function() { expect(fakeServer.requests[0].method).toEqual('POST'); expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne'); - expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"> <ul> <li class="hidden"> <a> <span class="icon-loading-small"></span> </a> </li> <li> <a href="#"> <span>No action available</span> </a></li></ul></div>'); + expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>No action available</span></a></li></ul></div>'); }); });