Fix the Workbook schema to conform the one expected by Mistral

Override toJSON() method for some classes inside Workbook since it
makes things simpler.

Change-Id: Ia92597b3739e2e58e2e7d15c01bd143336c49e72
Closes-Bug: #1428768
This commit is contained in:
Timur Sufiev 2015-03-24 14:08:34 +03:00
parent 1454a2792d
commit c00a281adb
2 changed files with 67 additions and 23 deletions

View File

@ -6,7 +6,8 @@
angular.module('mistral')
.factory('mistral.workbook.models',
['merlin.field.models', 'merlin.panel.models', function(fields, panel) {
['merlin.field.models', 'merlin.panel.models', 'merlin.utils',
function(fields, panel, utils) {
var models = {};
var varlistValueFactory = function(json, parameters) {
@ -63,6 +64,10 @@
}
});
return self;
},
toJSON: function() {
var json = fields.frozendict.toJSON.apply(this, arguments);
return json.value;
}
}, {
'type': {
@ -98,7 +103,13 @@
}
});
models.Action = fields.frozendict.extend({}, {
models.Action = fields.frozendict.extend({
toJSON: function() {
var json = fields.frozendict.toJSON.apply(this, arguments);
delete json.name;
return json;
}
}, {
'name': {
'@class': fields.string.extend({}, {
'@meta': {
@ -115,7 +126,7 @@
}
})
},
'baseInput': {
'base-input': {
'@class': fields.frozendict.extend({}, {
'@required': false,
'@meta': {
@ -142,7 +153,13 @@
}
});
models.Task = fields.frozendict.extend({}, {
models.Task = fields.frozendict.extend({
toJSON: function() {
var json = fields.frozendict.toJSON.apply(this, arguments);
delete json.name;
return json;
}
}, {
'@meta': {
'baseKey': 'task',
'baseName': 'Task ',
@ -194,7 +211,7 @@
}
})
},
'onError': {
'on-error': {
'@class': fields.list.extend({}, {
'@meta': {
'title': 'On error',
@ -205,7 +222,7 @@
}
})
},
'onSuccess': {
'on-success': {
'@class': fields.list.extend({}, {
'@meta': {
'title': 'On success',
@ -216,7 +233,7 @@
}
})
},
'onComplete': {
'on-complete': {
'@class': fields.list.extend({}, {
'@meta': {
'title': 'On complete',
@ -228,12 +245,22 @@
})
},
'policies': {
'@class': fields.frozendict.extend({}, {
'@class': fields.frozendict.extend({
toJSON: function() {
var json = fields.frozendict.toJSON.apply(this, arguments);
json.retry = {
count: utils.pop(json, 'retry-count'),
delay: utils.pop(json, 'retry-delay'),
'break-on': utils.pop(json, 'retry-break-on')
};
return json;
}
}, {
'@meta': {
'index': 8
},
'@required': false,
'waitBefore': {
'wait-before': {
'@class': fields.number.extend({}, {
'@required': false,
'@meta': {
@ -243,7 +270,7 @@
}
})
},
'waitAfter': {
'wait-after': {
'@class': fields.number.extend({}, {
'@required': false,
'@meta': {
@ -262,7 +289,7 @@
}
})
},
'retryCount': {
'retry-count': {
'@class': fields.number.extend({}, {
'@required': false,
'@meta': {
@ -272,7 +299,7 @@
}
})
},
'retryDelay': {
'retry-delay': {
'@class': fields.number.extend({}, {
'@required': false,
'@meta': {
@ -282,7 +309,7 @@
}
})
},
'retryBreakOn': {
'retry-break-on': {
'@class': fields.number.extend({}, {
'@required': false,
'@meta': {
@ -296,7 +323,13 @@
}
});
models.Workflow = fields.frozendict.extend({}, {
models.Workflow = fields.frozendict.extend({
toJSON: function() {
var json = fields.frozendict.toJSON.apply(this, arguments);
delete json.name;
return json;
}
}, {
'name': {
'@class': fields.string.extend({}, {
'@meta': {
@ -337,7 +370,7 @@
}
})
},
'taskDefaults': {
'task-defaults': {
'@class': fields.frozendict.extend({}, {
'@required': false,
'@meta': {
@ -345,7 +378,7 @@
'group': true,
'additive': false
},
'onError': {
'on-error': {
'@class': models.yaqllist.extend({}, {
'@meta': {
'title': 'On error',
@ -353,7 +386,7 @@
}
})
},
'onSuccess': {
'on-success': {
'@class': models.yaqllist.extend({}, {
'@meta': {
'title': 'On success',
@ -361,7 +394,7 @@
}
})
},
'onComplete': {
'on-complete': {
'@class': models.yaqllist.extend({}, {
'@meta': {
'title': 'On complete',
@ -396,13 +429,13 @@
}, {
'version': {
'@class': fields.number.extend({}, {
'@enum': [2],
'@enum': [2.0],
'@meta': {
'index': 2,
'panelIndex': 0,
'row': 1
},
'@default': 2
'@default': 2.0
})
},
'name': {
@ -451,4 +484,4 @@
return models;
}])
})();
})();

View File

@ -72,14 +72,25 @@
return item;
}
function pop(obj, key) {
if ( obj.hasOwnProperty(key) ) {
var value = obj[key];
delete obj[key];
return value;
} else {
return undefined;
}
}
return {
getMeta: getMeta,
getNewId: getNewId,
groupByMetaKey: groupByMetaKey,
makeTitle: makeTitle,
getNextIDSuffix: getNextIDSuffix,
enhanceItemWithID: enhanceItemWithID
enhanceItemWithID: enhanceItemWithID,
pop: pop
}
})
})();
})();