summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/workflowengine/js/admin.js41
-rw-r--r--apps/workflowengine/js/templates.js109
-rw-r--r--apps/workflowengine/js/templates/operation.handlebars45
-rw-r--r--apps/workflowengine/js/templates/operations.handlebars2
-rw-r--r--apps/workflowengine/lib/AppInfo/Application.php1
-rw-r--r--apps/workflowengine/templates/admin.php53
-rwxr-xr-xbuild/compile-handlebars-templates.sh2
7 files changed, 181 insertions, 72 deletions
diff --git a/apps/workflowengine/js/admin.js b/apps/workflowengine/js/admin.js
index 66e98205db6..d986c5a494a 100644
--- a/apps/workflowengine/js/admin.js
+++ b/apps/workflowengine/js/admin.js
@@ -108,29 +108,12 @@
*/
/**
- * @class OCA.WorkflowEngine.TemplateView
- *
- * a generic template that handles the Handlebars template compile step
- * in a method called "template()"
- */
- OCA.WorkflowEngine.TemplateView =
- OC.Backbone.View.extend({
- _template: null,
- template: function(vars) {
- if (!this._template) {
- this._template = Handlebars.compile($(this.templateId).html());
- }
- return this._template(vars);
- }
- });
-
- /**
* @class OCA.WorkflowEngine.OperationView
*
* this creates the view for a single operation
*/
OCA.WorkflowEngine.OperationView =
- OCA.WorkflowEngine.TemplateView.extend({
+ OC.Backbone.View.extend({
templateId: '#operation-template',
events: {
'change .check-class': 'checkChanged',
@@ -150,6 +133,18 @@
errorMessage: '',
saving: false,
groups: [],
+ template: function(vars) {
+ return OCA.WorkflowEngine.Templates['operation'](_.extend(
+ {
+ shortRuleDescTXT: t('workflowengine', 'Short rule description'),
+ addRuleTXT: t('workflowengine', 'Add rule'),
+ resetTXT: t('workflowengine', 'Reset'),
+ saveTXT: t('workflowengine', 'Save'),
+ savingTXT: t('workflowengine', 'Saving…')
+ },
+ vars
+ ));
+ },
initialize: function() {
// this creates a new copy of the object to definitely have a new reference and being able to reset the model
this.originalModel = JSON.parse(JSON.stringify(this.model));
@@ -354,13 +349,21 @@
* this creates the view for configured operations
*/
OCA.WorkflowEngine.OperationsView =
- OCA.WorkflowEngine.TemplateView.extend({
+ OC.Backbone.View.extend({
templateId: '#operations-template',
collection: null,
$el: null,
events: {
'click .button-add-operation': 'add'
},
+ template: function(vars) {
+ return OCA.WorkflowEngine.Templates['operations'](_.extend(
+ {
+ addRuleGroupTXT: t('workflowengine', 'Add rule group')
+ },
+ vars
+ ));
+ },
initialize: function(classname) {
if (!OCA.WorkflowEngine.availablePlugins.length) {
OCA.WorkflowEngine.availablePlugins = OC.Plugins.getPlugins('OCA.WorkflowEngine.CheckPlugins');
diff --git a/apps/workflowengine/js/templates.js b/apps/workflowengine/js/templates.js
new file mode 100644
index 00000000000..157d396357d
--- /dev/null
+++ b/apps/workflowengine/js/templates.js
@@ -0,0 +1,109 @@
+(function() {
+ var template = Handlebars.template, templates = OCA.WorkflowEngine.Templates = OCA.WorkflowEngine.Templates || {};
+templates['operation'] = template({"1":function(container,depth0,helpers,partials,data) {
+ return " modified";
+},"3":function(container,depth0,helpers,partials,data) {
+ return " <span class=\"button-delete icon-delete\"></span>\n";
+},"5":function(container,depth0,helpers,partials,data,blockParams,depths) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
+
+ return " <div class=\"check\" data-id=\""
+ + alias4(((helper = (helper = helpers.index || (data && data.index)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"index","hash":{},"data":data}) : helper)))
+ + "\">\n <select class=\"check-class\">\n"
+ + ((stack1 = helpers.each.call(alias1,(depths[1] != null ? depths[1].classes : depths[1]),{"name":"each","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + " </select>\n <select class=\"check-operator\">\n"
+ + ((stack1 = helpers.each.call(alias1,(helpers.getOperators || (depth0 && depth0.getOperators) || alias2).call(alias1,(depth0 != null ? depth0["class"] : depth0),{"name":"getOperators","hash":{},"data":data}),{"name":"each","hash":{},"fn":container.program(8, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + " </select>\n <input type=\"text\" class=\"check-value\" value=\""
+ + alias4(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"value","hash":{},"data":data}) : helper)))
+ + "\">\n <span class=\"button-delete-check icon-delete\"></span>\n </div>\n";
+},"6":function(container,depth0,helpers,partials,data,blockParams,depths) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
+
+ return " <option value=\""
+ + alias4(((helper = (helper = helpers["class"] || (depth0 != null ? depth0["class"] : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"class","hash":{},"data":data}) : helper)))
+ + "\" "
+ + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0["class"] : depth0),(depths[1] != null ? depths[1]["class"] : depths[1]),{"name":"selectItem","hash":{},"data":data})) != null ? stack1 : "")
+ + ">"
+ + 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)))
+ + "</option>\n";
+},"8":function(container,depth0,helpers,partials,data,blockParams,depths) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
+
+ return " <option value=\""
+ + alias4(((helper = (helper = helpers.operator || (depth0 != null ? depth0.operator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"operator","hash":{},"data":data}) : helper)))
+ + "\" "
+ + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0.operator : depth0),(depths[1] != null ? depths[1].operator : depths[1]),{"name":"selectItem","hash":{},"data":data})) != null ? stack1 : "")
+ + ">"
+ + 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)))
+ + "</option>\n";
+},"10":function(container,depth0,helpers,partials,data) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});
+
+ return ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + " <button class=\"button-save pull-right\">"
+ + container.escapeExpression(((helper = (helper = helpers.saveTXT || (depth0 != null ? depth0.saveTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"saveTXT","hash":{},"data":data}) : helper)))
+ + "</button>\n";
+},"11":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return " <button class=\"button-reset pull-right\">"
+ + container.escapeExpression(((helper = (helper = helpers.resetTXT || (depth0 != null ? depth0.resetTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"resetTXT","hash":{},"data":data}) : helper)))
+ + "</button>\n";
+},"13":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return " <span class=\"icon-loading-small pull-right\"></span>\n <span class=\"pull-right\">"
+ + container.escapeExpression(((helper = (helper = helpers.savingTXT || (depth0 != null ? depth0.savingTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"savingTXT","hash":{},"data":data}) : helper)))
+ + "</span>\n ";
+},"15":function(container,depth0,helpers,partials,data) {
+ var stack1;
+
+ return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.message : depth0),{"name":"if","hash":{},"fn":container.program(16, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "");
+},"16":function(container,depth0,helpers,partials,data) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});
+
+ return "\n <span class=\"msg pull-right "
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.program(19, data, 0),"data":data})) != null ? stack1 : "")
+ + "\">\n "
+ + container.escapeExpression(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"message","hash":{},"data":data}) : helper)))
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{"name":"if","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + "\n </span>\n ";
+},"17":function(container,depth0,helpers,partials,data) {
+ return "error";
+},"19":function(container,depth0,helpers,partials,data) {
+ return "success";
+},"21":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return " "
+ + container.escapeExpression(((helper = (helper = helpers.errorMessage || (depth0 != null ? depth0.errorMessage : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"errorMessage","hash":{},"data":data}) : helper)));
+},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) {
+ var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda;
+
+ return "<div class=\"operation"
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + "\">\n <div class=\"operation-header\">\n <input type=\"text\" class=\"operation-name\" placeholder=\""
+ + alias4(((helper = (helper = helpers.shortRuleDescTXT || (depth0 != null ? depth0.shortRuleDescTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"shortRuleDescTXT","hash":{},"data":data}) : helper)))
+ + "\" value=\""
+ + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.name : stack1), depth0))
+ + "\" />\n <input type=\"text\" class=\"operation-operation\" value=\""
+ + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.operation : stack1), depth0))
+ + "\" />\n"
+ + ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{"name":"if","hash":{},"fn":container.program(3, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + " </div>\n\n <div class=\"checks\">\n"
+ + ((stack1 = helpers.each.call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.checks : stack1),{"name":"each","hash":{},"fn":container.program(5, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + " </div>\n <button class=\"button-add\">"
+ + alias4(((helper = (helper = helpers.addRuleTXT || (depth0 != null ? depth0.addRuleTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"addRuleTXT","hash":{},"data":data}) : helper)))
+ + "</button>\n"
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{"name":"if","hash":{},"fn":container.program(10, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.saving : depth0),{"name":"if","hash":{},"fn":container.program(13, data, 0, blockParams, depths),"inverse":container.program(15, data, 0, blockParams, depths),"data":data})) != null ? stack1 : "")
+ + "\n</div>\n";
+},"useData":true,"useDepths":true});
+templates['operations'] = template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
+ var helper;
+
+ return "<div class=\"operations\"></div>\n<button class=\"button-add-operation\">"
+ + container.escapeExpression(((helper = (helper = helpers.addRuleGroupTXT || (depth0 != null ? depth0.addRuleGroupTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"addRuleGroupTXT","hash":{},"data":data}) : helper)))
+ + "</button>\n";
+},"useData":true});
+})(); \ No newline at end of file
diff --git a/apps/workflowengine/js/templates/operation.handlebars b/apps/workflowengine/js/templates/operation.handlebars
new file mode 100644
index 00000000000..0899890cef2
--- /dev/null
+++ b/apps/workflowengine/js/templates/operation.handlebars
@@ -0,0 +1,45 @@
+<div class="operation{{#if hasChanged}} modified{{/if}}">
+ <div class="operation-header">
+ <input type="text" class="operation-name" placeholder="{{shortRuleDescTXT}}" value="{{operation.name}}" />
+ <input type="text" class="operation-operation" value="{{operation.operation}}" />
+ {{! delete only makes sense if the operation is already saved }}
+ {{#if operation.id}}
+ <span class="button-delete icon-delete"></span>
+ {{/if}}
+ </div>
+
+ <div class="checks">
+ {{#each operation.checks}}
+ <div class="check" data-id="{{@index}}">
+ <select class="check-class">
+ {{#each ../classes}}
+ <option value="{{class}}" {{{selectItem class ../class}}}>{{name}}</option>
+ {{/each}}
+ </select>
+ <select class="check-operator">
+ {{#each (getOperators class)}}
+ <option value="{{operator}}" {{{selectItem operator ../operator}}}>{{name}}</option>
+ {{/each}}
+ </select>
+ <input type="text" class="check-value" value="{{value}}">
+ <span class="button-delete-check icon-delete"></span>
+ </div>
+ {{/each}}
+ </div>
+ <button class="button-add">{{addRuleTXT}}</button>
+ {{#if hasChanged}}
+ {{! reset only makes sense if the operation is already saved }}
+ {{#if operation.id}}
+ <button class="button-reset pull-right">{{resetTXT}}</button>
+ {{/if}}
+ <button class="button-save pull-right">{{saveTXT}}</button>
+ {{/if}}
+ {{#if saving}}
+ <span class="icon-loading-small pull-right"></span>
+ <span class="pull-right">{{savingTXT}}</span>
+ {{else}}{{#if message}}
+ <span class="msg pull-right {{#if errorMessage}}error{{else}}success{{/if}}">
+ {{message}}{{#if errorMessage}} {{errorMessage}}{{/if}}
+ </span>
+ {{/if}}{{/if}}
+</div>
diff --git a/apps/workflowengine/js/templates/operations.handlebars b/apps/workflowengine/js/templates/operations.handlebars
new file mode 100644
index 00000000000..14b62ee79a6
--- /dev/null
+++ b/apps/workflowengine/js/templates/operations.handlebars
@@ -0,0 +1,2 @@
+<div class="operations"></div>
+<button class="button-add-operation">{{addRuleGroupTXT}}</button>
diff --git a/apps/workflowengine/lib/AppInfo/Application.php b/apps/workflowengine/lib/AppInfo/Application.php
index 89d342400c2..0b90a4323e2 100644
--- a/apps/workflowengine/lib/AppInfo/Application.php
+++ b/apps/workflowengine/lib/AppInfo/Application.php
@@ -64,6 +64,7 @@ class Application extends \OCP\AppFramework\App {
script('workflowengine', [
'admin',
+ 'templates',
// Check plugins
'filemimetypeplugin',
diff --git a/apps/workflowengine/templates/admin.php b/apps/workflowengine/templates/admin.php
index 26d581aee03..d3faace71f6 100644
--- a/apps/workflowengine/templates/admin.php
+++ b/apps/workflowengine/templates/admin.php
@@ -39,58 +39,5 @@
<p><?php p($_['description']); ?></p>
<?php endif; ?>
- <script type="text/template" id="operations-template">
- <div class="operations"></div>
- <button class="button-add-operation"><?php p($l->t('Add rule group')); ?></button>
- </script>
-
- <script type="text/template" id="operation-template">
- <div class="operation{{#if hasChanged}} modified{{/if}}">
- <div class="operation-header">
- <input type="text" class="operation-name" placeholder="<?php p($l->t('Short rule description')); ?>" value="{{operation.name}}" />
- <input type="text" class="operation-operation" value="{{operation.operation}}" />
- {{! delete only makes sense if the operation is already saved }}
- {{#if operation.id}}
- <span class="button-delete icon-delete"></span>
- {{/if}}
- </div>
-
- <div class="checks">
- {{#each operation.checks}}
- <div class="check" data-id="{{@index}}">
- <select class="check-class">
- {{#each ../classes}}
- <option value="{{class}}" {{{selectItem class ../class}}}>{{name}}</option>
- {{/each}}
- </select>
- <select class="check-operator">
- {{#each (getOperators class)}}
- <option value="{{operator}}" {{{selectItem operator ../operator}}}>{{name}}</option>
- {{/each}}
- </select>
- <input type="text" class="check-value" value="{{value}}">
- <span class="button-delete-check icon-delete"></span>
- </div>
- {{/each}}
- </div>
- <button class="button-add"><?php p($l->t('Add rule')); ?></button>
- {{#if hasChanged}}
- {{! reset only makes sense if the operation is already saved }}
- {{#if operation.id}}
- <button class="button-reset pull-right"><?php p($l->t('Reset')); ?></button>
- {{/if}}
- <button class="button-save pull-right"><?php p($l->t('Save')); ?></button>
- {{/if}}
- {{#if saving}}
- <span class="icon-loading-small pull-right"></span>
- <span class="pull-right"><?php p($l->t('Saving…')); ?></span>
- {{else}}{{#if message}}
- <span class="msg pull-right {{#if errorMessage}}error{{else}}success{{/if}}">
- {{message}}{{#if errorMessage}} {{errorMessage}}{{/if}}
- </span>
- {{/if}}{{/if}}
- </div>
- </script>
-
<div class="rules"><span class="icon-loading-small"></span> <?php p($l->t('Loading…')); ?></div>
</div>
diff --git a/build/compile-handlebars-templates.sh b/build/compile-handlebars-templates.sh
index 2f83dd3956a..1cbdbe4c832 100755
--- a/build/compile-handlebars-templates.sh
+++ b/build/compile-handlebars-templates.sh
@@ -25,6 +25,8 @@ handlebars -n OCA.Comments.Templates apps/comments/js/templates -f apps/comments
# Versions app
handlebars -n OCA.Versions.Templates apps/files_versions/js/templates -f apps/files_versions/js/templates.js
+# Workflowengine
+handlebars -n OCA.WorkflowEngine.Templates apps/workflowengine/js/templates -f apps/workflowengine/js/templates.js
if [[ $(git diff --name-only) ]]; then
echo "Please submit your compiled handlebars templates"