From 6faef577e167a6fdef20976ddaa8a972f2463a45 Mon Sep 17 00:00:00 2001 From: Dmitriy Simushev Date: Tue, 11 Mar 2014 14:24:55 +0000 Subject: [PATCH] Add "ifEven"/"ifOdd" helpers to Handlebars.js --- .../js/compiled/default/handlebars_helpers.js | 6 +-- src/mibew/js/compiled/default_app.js | 6 +-- .../js/source/default/handlebars_helpers.js | 40 +++++++++++++++++++ 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/mibew/js/compiled/default/handlebars_helpers.js b/src/mibew/js/compiled/default/handlebars_helpers.js index 7538dfae..9e3abb02 100644 --- a/src/mibew/js/compiled/default/handlebars_helpers.js +++ b/src/mibew/js/compiled/default/handlebars_helpers.js @@ -5,6 +5,6 @@ You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ -(function(e,b){b.registerHelper("apply",function(a,c){var f=a,e=/^[0-9A-z_]+$/;c=c.split(/\s*,\s*/);for(var d in c)if(c.hasOwnProperty(d)&&e.test(c[d])){if("function"!=typeof b.helpers[c[d]])throw Error("Unregistered helper '"+c[d]+"'!");f=b.helpers[c[d]](f).toString()}return new b.SafeString(f)});b.registerHelper("allowTags",function(a){a=a.replace(/<(span|strong)>(.*?)<\/\1>/g,"<$1>$2");a=a.replace(/<span class="(.*?)">(.*?)<\/span>/g,'$2'); -return new b.SafeString(a)});b.registerHelper("formatTime",function(a){var c=new Date(1E3*a);a=c.getHours().toString();var b=c.getMinutes().toString(),c=c.getSeconds().toString();return(10>a?"0"+a:a)+":"+(10>b?"0"+b:b)+":"+(10>c?"0"+c:c)});b.registerHelper("urlReplace",function(a){return new b.SafeString(a.replace(/((?:https?|ftp):\/\/\S*)/g,'$1'))});b.registerHelper("nl2br",function(a){return new b.SafeString(a.replace(/\n/g,"
"))});b.registerHelper("l10n",function(a){return e.Localization.get(a)|| -""})})(Mibew,Handlebars); +(function(e,c){c.registerHelper("apply",function(a,b){var f=a,e=/^[0-9A-z_]+$/;b=b.split(/\s*,\s*/);for(var d in b)if(b.hasOwnProperty(d)&&e.test(b[d])){if("function"!=typeof c.helpers[b[d]])throw Error("Unregistered helper '"+b[d]+"'!");f=c.helpers[b[d]](f).toString()}return new c.SafeString(f)});c.registerHelper("allowTags",function(a){a=a.replace(/<(span|strong)>(.*?)<\/\1>/g,"<$1>$2");a=a.replace(/<span class="(.*?)">(.*?)<\/span>/g,'$2'); +return new c.SafeString(a)});c.registerHelper("formatTime",function(a){var b=new Date(1E3*a);a=b.getHours().toString();var c=b.getMinutes().toString(),b=b.getSeconds().toString();return(10>a?"0"+a:a)+":"+(10>c?"0"+c:c)+":"+(10>b?"0"+b:b)});c.registerHelper("urlReplace",function(a){return new c.SafeString(a.replace(/((?:https?|ftp):\/\/\S*)/g,'$1'))});c.registerHelper("nl2br",function(a){return new c.SafeString(a.replace(/\n/g,"
"))});c.registerHelper("l10n",function(a){return e.Localization.get(a)|| +""});c.registerHelper("ifEven",function(a,b){return 0===a%2?b.fn(this):b.inverse(this)});c.registerHelper("ifOdd",function(a,b){return 0!==a%2?b.fn(this):b.inverse(this)})})(Mibew,Handlebars); diff --git a/src/mibew/js/compiled/default_app.js b/src/mibew/js/compiled/default_app.js index 8ffbef33..cf3f06d8 100644 --- a/src/mibew/js/compiled/default_app.js +++ b/src/mibew/js/compiled/default_app.js @@ -11,9 +11,9 @@ var Mibew={};(function(a,d,b){d.Marionette.TemplateCache.prototype.compileTempla You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ -(function(e,b){b.registerHelper("apply",function(a,c){var f=a,e=/^[0-9A-z_]+$/;c=c.split(/\s*,\s*/);for(var d in c)if(c.hasOwnProperty(d)&&e.test(c[d])){if("function"!=typeof b.helpers[c[d]])throw Error("Unregistered helper '"+c[d]+"'!");f=b.helpers[c[d]](f).toString()}return new b.SafeString(f)});b.registerHelper("allowTags",function(a){a=a.replace(/<(span|strong)>(.*?)<\/\1>/g,"<$1>$2");a=a.replace(/<span class="(.*?)">(.*?)<\/span>/g,'$2'); -return new b.SafeString(a)});b.registerHelper("formatTime",function(a){var c=new Date(1E3*a);a=c.getHours().toString();var b=c.getMinutes().toString(),c=c.getSeconds().toString();return(10>a?"0"+a:a)+":"+(10>b?"0"+b:b)+":"+(10>c?"0"+c:c)});b.registerHelper("urlReplace",function(a){return new b.SafeString(a.replace(/((?:https?|ftp):\/\/\S*)/g,'$1'))});b.registerHelper("nl2br",function(a){return new b.SafeString(a.replace(/\n/g,"
"))});b.registerHelper("l10n",function(a){return e.Localization.get(a)|| -""})})(Mibew,Handlebars); +(function(e,c){c.registerHelper("apply",function(a,b){var f=a,e=/^[0-9A-z_]+$/;b=b.split(/\s*,\s*/);for(var d in b)if(b.hasOwnProperty(d)&&e.test(b[d])){if("function"!=typeof c.helpers[b[d]])throw Error("Unregistered helper '"+b[d]+"'!");f=c.helpers[b[d]](f).toString()}return new c.SafeString(f)});c.registerHelper("allowTags",function(a){a=a.replace(/<(span|strong)>(.*?)<\/\1>/g,"<$1>$2");a=a.replace(/<span class="(.*?)">(.*?)<\/span>/g,'$2'); +return new c.SafeString(a)});c.registerHelper("formatTime",function(a){var b=new Date(1E3*a);a=b.getHours().toString();var c=b.getMinutes().toString(),b=b.getSeconds().toString();return(10>a?"0"+a:a)+":"+(10>c?"0"+c:c)+":"+(10>b?"0"+b:b)});c.registerHelper("urlReplace",function(a){return new c.SafeString(a.replace(/((?:https?|ftp):\/\/\S*)/g,'$1'))});c.registerHelper("nl2br",function(a){return new c.SafeString(a.replace(/\n/g,"
"))});c.registerHelper("l10n",function(a){return e.Localization.get(a)|| +""});c.registerHelper("ifEven",function(a,b){return 0===a%2?b.fn(this):b.inverse(this)});c.registerHelper("ifOdd",function(a,b){return 0!==a%2?b.fn(this):b.inverse(this)})})(Mibew,Handlebars); /* Copyright 2005-2014 the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"). diff --git a/src/mibew/js/source/default/handlebars_helpers.js b/src/mibew/js/source/default/handlebars_helpers.js index eabe9c0e..893bbc65 100644 --- a/src/mibew/js/source/default/handlebars_helpers.js +++ b/src/mibew/js/source/default/handlebars_helpers.js @@ -110,4 +110,44 @@ Handlebars.registerHelper('l10n', function(key) { return (Mibew.Localization.get(key) || ''); }); + + /** + * Register "ifEven" helper. + * + * This helper checks if specified value is even or not. Example of usage: + * + * {{#ifEven value}} + * The value is even. + * {{else}} + * The value is odd. + * {{/ifEven}} + * + */ + Handlebars.registerHelper('ifEven', function(value, options) { + if ((value % 2) === 0) { + return options.fn(this); + } else { + return options.inverse(this); + } + }); + + /** + * Register "ifOdd" helper. + * + * This helper checks if specified value is odd or not. Example of usage: + * + * {{#ifOdd value}} + * The value is odd. + * {{else}} + * The value is even. + * {{/ifOdd}} + * + */ + Handlebars.registerHelper('ifOdd', function(value, options) { + if ((value % 2) !== 0) { + return options.fn(this); + } else { + return options.inverse(this); + } + }); })(Mibew, Handlebars); \ No newline at end of file