From 17ccf1cc81c33718780dc05e96150ee926e238ab Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Fri, 31 Jul 2015 19:02:44 +0200 Subject: [PATCH] - added codemirror symlinks + missing files from previous commit --- assets/css/lib/codemirror/codemirror.css | 1 + assets/css/lib/codemirror/theme_neo.css | 1 + assets/js/handlebars_helpers.js | 140 ++++++++++++++++++ assets/js/lib/codemirror/codemirror.js | 1 + assets/js/lib/codemirror/syntax_css.js | 1 + assets/js/lib/codemirror/syntax_php.js | 1 + lib/renderer/handlebars.php | 61 ++++++++ views/form/templates/preview.hbs | 8 + .../form/templates/settings/date_default.hbs | 23 +++ .../form/templates/settings/date_formats.hbs | 23 +++ views/form/templates/settings/date_types.hbs | 26 ++++ views/form/templates/settings/field.hbs | 74 +++++++++ views/form/templates/settings/field_new.hbs | 121 +++++++++++++++ .../form/templates/settings/label_within.hbs | 11 ++ .../templates/settings/list_selection.hbs | 117 +++++++++++++++ .../settings/list_selection_item.hbs | 13 ++ views/form/templates/settings/required.hbs | 20 +++ views/form/templates/settings/submit.hbs | 3 + views/form/templates/settings/validate.hbs | 29 ++++ views/form/templates/settings/values.hbs | 71 +++++++++ views/form/templates/settings/values_item.hbs | 15 ++ views/form/templates/toolbar/exports.hbs | 3 + 22 files changed, 763 insertions(+) create mode 120000 assets/css/lib/codemirror/codemirror.css create mode 120000 assets/css/lib/codemirror/theme_neo.css create mode 100644 assets/js/handlebars_helpers.js create mode 120000 assets/js/lib/codemirror/codemirror.js create mode 120000 assets/js/lib/codemirror/syntax_css.js create mode 120000 assets/js/lib/codemirror/syntax_php.js create mode 100644 lib/renderer/handlebars.php create mode 100644 views/form/templates/preview.hbs create mode 100644 views/form/templates/settings/date_default.hbs create mode 100644 views/form/templates/settings/date_formats.hbs create mode 100644 views/form/templates/settings/date_types.hbs create mode 100644 views/form/templates/settings/field.hbs create mode 100644 views/form/templates/settings/field_new.hbs create mode 100644 views/form/templates/settings/label_within.hbs create mode 100644 views/form/templates/settings/list_selection.hbs create mode 100644 views/form/templates/settings/list_selection_item.hbs create mode 100644 views/form/templates/settings/required.hbs create mode 100644 views/form/templates/settings/submit.hbs create mode 100644 views/form/templates/settings/validate.hbs create mode 100644 views/form/templates/settings/values.hbs create mode 100644 views/form/templates/settings/values_item.hbs create mode 100644 views/form/templates/toolbar/exports.hbs diff --git a/assets/css/lib/codemirror/codemirror.css b/assets/css/lib/codemirror/codemirror.css new file mode 120000 index 0000000000..92a0885038 --- /dev/null +++ b/assets/css/lib/codemirror/codemirror.css @@ -0,0 +1 @@ +../../../../node_modules/codemirror/lib/codemirror.css \ No newline at end of file diff --git a/assets/css/lib/codemirror/theme_neo.css b/assets/css/lib/codemirror/theme_neo.css new file mode 120000 index 0000000000..9089a89082 --- /dev/null +++ b/assets/css/lib/codemirror/theme_neo.css @@ -0,0 +1 @@ +../../../../node_modules/codemirror/theme/neo.css \ No newline at end of file diff --git a/assets/js/handlebars_helpers.js b/assets/js/handlebars_helpers.js new file mode 100644 index 0000000000..ad1e6266a4 --- /dev/null +++ b/assets/js/handlebars_helpers.js @@ -0,0 +1,140 @@ +// Handlebars helpers +Handlebars.registerHelper('concat', function() { + var size = (arguments.length - 1), + output = ''; + for(var i = 0; i < size; i++) { + output += arguments[i]; + }; + return output; +}); + +Handlebars.registerHelper('number_format', function(value, block) { + return Number(value).toLocaleString(); +}); +Handlebars.registerHelper('date_format', function(timestamp, block) { + if(window.moment) { + if(timestamp === undefined || isNaN(timestamp) || timestamp <= 0) { + return; + } + + // set date format + var f = block.hash.format || "MMM Do, YYYY"; + // check if we passed a timestamp + if(parseInt(timestamp, 10) == timestamp) { + return moment.unix(timestamp).format(f); + } else { + return moment.utc(timestamp).format(f); + } + } else { + return timestamp; + }; +}); + +Handlebars.registerHelper('cycle', function(value, block) { + var values = value.split(' '); + return values[block.data.index % (values.length + 1)]; +}); + +Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { + switch (operator) { + case '==': + return (v1 == v2) ? options.fn(this) : options.inverse(this); + case '===': + return (v1 === v2) ? options.fn(this) : options.inverse(this); + case '!=': + return (v1 != v2) ? options.fn(this) : options.inverse(this); + case '!==': + return (v1 !== v2) ? options.fn(this) : options.inverse(this); + case '<': + return (v1 < v2) ? options.fn(this) : options.inverse(this); + case '<=': + return (v1 <= v2) ? options.fn(this) : options.inverse(this); + case '>': + return (v1 > v2) ? options.fn(this) : options.inverse(this); + case '>=': + return (v1 >= v2) ? options.fn(this) : options.inverse(this); + case '&&': + return (v1 && v2) ? options.fn(this) : options.inverse(this); + case '||': + return (v1 || v2) ? options.fn(this) : options.inverse(this); + case 'in': + var values = v2.split(','); + return (v2.indexOf(v1) !== -1) ? options.fn(this) : options.inverse(this); + default: + return options.inverse(this); + } +}); + +Handlebars.registerHelper('nl2br', function(value, block) { + return value.gsub("\n", "
"); +}); + +Handlebars.registerHelper('json_encode', function(value, block) { + return JSON.stringify(value); +}); + +Handlebars.registerHelper('json_decode', function(value, block) { + return JSON.parse(value); +}); +Handlebars.registerHelper('url', function(value, block) { + var url = window.location.protocol + "//" + window.location.host + window.location.pathname; + + return url + value; +}); +Handlebars.registerHelper('emailFromMailto', function(value) { + var mailtoMatchingRegex = /^mailto\:/i; + if (typeof value === 'string' && value.match(mailtoMatchingRegex)) { + return value.replace(mailtoMatchingRegex, ''); + } else { + return value; + } +}); +Handlebars.registerHelper('lookup', function(obj, field, options) { + return obj && obj[field]; +}); + + +Handlebars.registerHelper('rsa_key', function(value, block) { + // extract all lines into an array + if(value === undefined) return ''; + + var lines = value.trim().split("\n"); + + // remove header & footer + lines.shift(); + lines.pop(); + + // return concatenated lines + return lines.join(''); +}); + +Handlebars.registerHelper('trim', function(value, block) { + if(value === null || value === undefined) return ''; + return value.trim(); +}); + +/** + * {{ellipsis}} + * From: https://github.com/assemble/handlebars-helpers + * @author: Jon Schlinkert + * Truncate the input string and removes all HTML tags + * @param {String} str The input string. + * @param {Number} limit The number of characters to limit the string. + * @param {String} append The string to append if charaters are omitted. + * @return {String} The truncated string. + */ +Handlebars.registerHelper('ellipsis', function (str, limit, append) { + if (append === undefined) { + append = ''; + } + var sanitized = str.replace(/(<([^>]+)>)/g, ''); + if (sanitized.length > limit) { + return sanitized.substr(0, limit - append.length) + append; + } else { + return sanitized; + } +}); + +Handlebars.registerHelper('getNumber', function (string) { + return parseInt(string, 10); +}); diff --git a/assets/js/lib/codemirror/codemirror.js b/assets/js/lib/codemirror/codemirror.js new file mode 120000 index 0000000000..244e07162b --- /dev/null +++ b/assets/js/lib/codemirror/codemirror.js @@ -0,0 +1 @@ +../../../../node_modules/codemirror/lib/codemirror.js \ No newline at end of file diff --git a/assets/js/lib/codemirror/syntax_css.js b/assets/js/lib/codemirror/syntax_css.js new file mode 120000 index 0000000000..0f8d4ef66d --- /dev/null +++ b/assets/js/lib/codemirror/syntax_css.js @@ -0,0 +1 @@ +../../../../node_modules/codemirror/mode/css/css.js \ No newline at end of file diff --git a/assets/js/lib/codemirror/syntax_php.js b/assets/js/lib/codemirror/syntax_php.js new file mode 120000 index 0000000000..11c175d581 --- /dev/null +++ b/assets/js/lib/codemirror/syntax_php.js @@ -0,0 +1 @@ +../../../../node_modules/codemirror/mode/php/php.js \ No newline at end of file diff --git a/lib/renderer/handlebars.php b/lib/renderer/handlebars.php new file mode 100644 index 0000000000..ae4d1f4f55 --- /dev/null +++ b/lib/renderer/handlebars.php @@ -0,0 +1,61 @@ + true, + 'needs_context' => true, + 'is_safe' => array('all')) + ) + ); + } + + public function generatePartial($env, $context) { + // get arguments (minus env & $context) + $args = array_slice(func_get_args(), 2); + $args_count = count($args); + + // default values + $alias = null; + + switch($args_count) { + case 2: + list($id, $file) = $args; + break; + case 3: + list($id, $file, $alias) = $args; + break; + default: + return; + break; + } + + $output = array(); + + $output[] = ''; + + if($alias !== null) { + $output[] = ''; + } + return join("\n", $output); + } +} \ No newline at end of file diff --git a/views/form/templates/preview.hbs b/views/form/templates/preview.hbs new file mode 100644 index 0000000000..66e54cdda0 --- /dev/null +++ b/views/form/templates/preview.hbs @@ -0,0 +1,8 @@ + +
+
+

<%= __('This is a success message') %>

+

<%= __('This is an error message') %>

+
+ {{{ html }}} +
\ No newline at end of file diff --git a/views/form/templates/settings/date_default.hbs b/views/form/templates/settings/date_default.hbs new file mode 100644 index 0000000000..b85242bb3e --- /dev/null +++ b/views/form/templates/settings/date_default.hbs @@ -0,0 +1,23 @@ +

+ + + + + +

\ No newline at end of file diff --git a/views/form/templates/settings/date_formats.hbs b/views/form/templates/settings/date_formats.hbs new file mode 100644 index 0000000000..f8f57272d6 --- /dev/null +++ b/views/form/templates/settings/date_formats.hbs @@ -0,0 +1,23 @@ +<% for date_type, formats in date_formats %> + {{#ifCond params.date_type "===" "<%= date_type %>"}} + <% if formats.count == 1 %> + + + <% else %> + +

+ + // display all possible date formats + +

+ <% endif %> + {{/ifCond}} +<% endfor %> \ No newline at end of file diff --git a/views/form/templates/settings/date_types.hbs b/views/form/templates/settings/date_types.hbs new file mode 100644 index 0000000000..d86eadb4ae --- /dev/null +++ b/views/form/templates/settings/date_types.hbs @@ -0,0 +1,26 @@ +

+ + + +

+ +