From 5a138fe0664509e8ee4079084adfe2af908f8d1a Mon Sep 17 00:00:00 2001 From: Timur Sufiev Date: Tue, 3 Mar 2015 17:21:27 +0300 Subject: [PATCH] Remove hard-coded sample Workflow panel Among other things are: * finally port yaqllist field to new models * support YAML dynamic updates Change-Id: I109e2d4ae50ebf5cf60dd838ec074740d64360a9 --- .../static/mistral/js/mistral.directives.js | 36 --- .../js/mistral.workbook.controllers.js | 2 +- .../mistral/js/mistral.workbook.models.js | 37 +++- .../mistral/templates/fields/yaqllist.html | 27 ++- .../templates/yaql-field-combined.html | 16 -- .../mistral/templates/mistral/create.html | 208 +----------------- .../static/merlin/js/merlin.panel.models.js | 1 - 7 files changed, 55 insertions(+), 272 deletions(-) delete mode 100644 extensions/mistral/static/mistral/js/mistral.directives.js delete mode 100644 extensions/mistral/static/mistral/templates/yaql-field-combined.html diff --git a/extensions/mistral/static/mistral/js/mistral.directives.js b/extensions/mistral/static/mistral/js/mistral.directives.js deleted file mode 100644 index 432ca10..0000000 --- a/extensions/mistral/static/mistral/js/mistral.directives.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Created by tsufiev on 12/29/14. - */ - -(function() { - angular.module('hz') - - .directive('yaqlFieldCombined', function() { - return { - restrict: 'E', - templateUrl: '/static/mistral/templates/yaql-field-combined.html', - scope: { - yaqlExpression: '@', - value: '@' - }, - link: function(scope, element) { - angular.element(element).find('span.yaql-condition') - .on('click', function() { - var $elt = $(this), - $inputColumn = $elt.closest('.three-columns').children(':first-child'), - $input; - - $elt.hide(); - $input = $inputColumn.show().find('textarea'); - $input.focus().on('blur', function() { - $inputColumn.hide(); - $elt.toggleClass('fa-lock', $input.val() !== ''); - $elt.toggleClass('fa-unlock', $input.val() === ''); - $elt.show(); - }); - }); - } - } - }) - -})(); diff --git a/extensions/mistral/static/mistral/js/mistral.workbook.controllers.js b/extensions/mistral/static/mistral/js/mistral.workbook.controllers.js index f26387e..194c871 100644 --- a/extensions/mistral/static/mistral/js/mistral.workbook.controllers.js +++ b/extensions/mistral/static/mistral/js/mistral.workbook.controllers.js @@ -6,7 +6,7 @@ .controller('workbookCtrl', ['$scope', 'mistral.workbook.models', function($scope, models) { - var workbook = models.Workbook.create(); + var workbook = models.Workbook.create({name: 'My Workbook'}); $scope.workbook = workbook; function getNextIDSuffix(container, regexp) { diff --git a/extensions/mistral/static/mistral/js/mistral.workbook.models.js b/extensions/mistral/static/mistral/js/mistral.workbook.models.js index dad238d..8d2b810 100644 --- a/extensions/mistral/static/mistral/js/mistral.workbook.models.js +++ b/extensions/mistral/static/mistral/js/mistral.workbook.models.js @@ -78,6 +78,25 @@ } }); + models.yaqllist = fields.list.extend({ + create: function(json, parameters) { + var self = fields.list.create.call(this, json, parameters); + self.setType('yaqllist'); + return self; + } + }, { + '*': { + '@class': fields.frozendict.extend({}, { + 'yaql': { + '@class': fields.string + }, + 'action': { + '@class': fields.string + } + }) + } + }); + models.Action = fields.frozendict.extend({}, { 'name': { '@class': fields.string.extend({}, { @@ -326,35 +345,26 @@ 'additive': false }, 'onError': { - '@class': fields.list.extend({}, { + '@class': models.yaqllist.extend({}, { '@meta': { 'title': 'On error', 'index': 0 - }, - '*': { - '@class': fields.string } }) }, 'onSuccess': { - '@class': fields.list.extend({}, { + '@class': models.yaqllist.extend({}, { '@meta': { 'title': 'On success', 'index': 1 - }, - '*': { - '@class': fields.string } }) }, 'onComplete': { - '@class': fields.list.extend({}, { + '@class': models.yaqllist.extend({}, { '@meta': { 'title': 'On complete', 'index': 2 - }, - '*': { - '@class': fields.string } }) } @@ -378,6 +388,9 @@ create: function(json, parameters) { var self = fields.frozendict.create.call(this, json, parameters); return panel.panelmixin.call(self); + }, + toYAML: function() { + return jsyaml.dump(this.toJSON()); } }, { 'version': { diff --git a/extensions/mistral/static/mistral/templates/fields/yaqllist.html b/extensions/mistral/static/mistral/templates/fields/yaqllist.html index 89a81f1..1323426 100644 --- a/extensions/mistral/static/mistral/templates/fields/yaqllist.html +++ b/extensions/mistral/static/mistral/templates/fields/yaqllist.html @@ -1,16 +1,29 @@ - -
-