aboutsummaryrefslogtreecommitdiffstats
path: root/moon_dashboard/moon/static/moon/model
diff options
context:
space:
mode:
authorAsteroide <thomas.duval@orange.com>2018-10-05 15:01:17 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-10-05 15:01:17 +0000
commitcbea4e360e9bfaa9698cf7c61c83c96a1ba89b8c (patch)
treea8bf6a7bfb06605ed5bfab77570afbe1e46cff4b /moon_dashboard/moon/static/moon/model
parenta3f68df52836676b23ac0f5e3d8c40c957ee80a7 (diff)
parent2e35a7e46f0929438c1c206e3116caa829f07dc6 (diff)
Merge "Update code to 4.6 official version"
Diffstat (limited to 'moon_dashboard/moon/static/moon/model')
-rw-r--r--moon_dashboard/moon/static/moon/model/model.controller.js150
-rw-r--r--moon_dashboard/moon/static/moon/model/model.html10
-rwxr-xr-xmoon_dashboard/moon/static/moon/model/model.service.js5
3 files changed, 119 insertions, 46 deletions
diff --git a/moon_dashboard/moon/static/moon/model/model.controller.js b/moon_dashboard/moon/static/moon/model/model.controller.js
index d6a7503b..99a7c7ed 100644
--- a/moon_dashboard/moon/static/moon/model/model.controller.js
+++ b/moon_dashboard/moon/static/moon/model/model.controller.js
@@ -17,13 +17,13 @@
link: function (scope, element, attrs) {
element.bind('change', function (e) {
- var onFileReadFn = $parse(attrs.onReadFile);
+ var onFileRead = $parse(attrs.onReadFile);
var reader = new FileReader();
reader.onload = function () {
var fileContents = reader.result;
scope.$apply(function () {
- onFileReadFn(scope, {
+ onFileRead(scope, {
'contents': fileContents
});
});
@@ -65,8 +65,10 @@
modelService.initialize();
self.importData = function importData(text) {
+ horizon.modals.modal_spinner(gettext("Loading"))
importService.importData(JSON.parse(text)).then(function () {
modelService.initialize();
+ horizon.modals.spinner.modal('hide');
})
}
@@ -76,7 +78,8 @@
properties: {
name: { type: "string", minLength: 2, title: gettext("Name") },
description: { type: "string", minLength: 2, title: gettext("Description") }
- }
+ },
+ required: ['name', 'description']
};
var model = { name: '', description: '' };
var config = {
@@ -98,7 +101,8 @@
properties: {
name: { type: "string", minLength: 2, title: gettext("Name") },
description: { type: "string", minLength: 2, title: gettext("Description") }
- }
+ },
+ required: ['name', 'description']
};
var config = {
title: gettext('Update Model'),
@@ -118,37 +122,73 @@
modelService.removeModel(model);
}
+ self.createMetaRuleFunction = function createMetaRuleFunction(model, titleMap) {
+ return function () {
+ var schema = {
+ type: "object",
+ properties: {
+ name: { type: "string", minLength: 2, title: gettext("Name") },
+ description: { type: "string", minLength: 2, title: gettext("Description") },
+ },
+ required: ['name', 'description']
+ };
+ var metaRule = { name: '', description: '' };
+ var config = {
+ title: gettext('Create Meta Rule'),
+ schema: schema,
+ form: [
+ 'name',
+ { key: 'description', type: 'textarea' }
+ ],
+ model: metaRule
+ };
+ ModalFormService.open(config).then(submit);
+
+ function submit(form) {
+ modelService.createMetaRule(form.model).then(function (metaRule) {
+ titleMap.push({ value: metaRule.id, name: metaRule.name })
+ model.id = metaRule.id
+ })
+ }
+ }
+ }
+
self.addMetaRule = function addMetaRule(model) {
var schema = {
type: "object",
properties: {
- name: { type: "string", minLength: 2, title: gettext("Name") },
- description: { type: "string", minLength: 2, title: gettext("Description") },
id: { type: "string", title: gettext("Select a Meta Rule:") }
- }
+ },
+ required: ['id']
};
- var metaRule = { name: '', description: '' };
var titleMap = util.arrayToTitleMap(modelService.metaRules)
+ var formModel = { id: null }
var config = {
title: gettext('Add Meta Rule'),
schema: schema,
- form: [{ key: 'id', type: 'select', titleMap: titleMap }, { type: 'help', helpvalue: gettext("Or create a new one:") }, 'name', { key: 'description', type: 'textarea' }],
- model: metaRule
+ form: [
+ { key: 'id', type: 'select', titleMap: titleMap },
+ {
+ key: 'createButton',
+ type: 'button',
+ title: gettext('Create Meta Rule'),
+ icon: 'fa fa-plus',
+ onClick: self.createMetaRuleFunction(formModel, titleMap)
+ }
+ ],
+ model: formModel
};
+ if (modelService.metaRules.length == 1) {
+ formModel.id = modelService.metaRules[0].id
+ }
+
ModalFormService.open(config).then(submit);
function submit(form) {
- function addMetaRuleToModel(metaRule) {
- var modelCopy = angular.copy(model);
- modelCopy.meta_rules.push(metaRule);
- modelService.updateModel(modelCopy);
- }
-
- if (form.model.name) {
- modelService.createMetaRule(form.model).then(addMetaRuleToModel)
- } else if (form.model.id) {
- addMetaRuleToModel(modelService.getMetaRule(form.model.id));
- }
+ var metaRule = modelService.getMetaRule(form.model.id);
+ var modelCopy = angular.copy(model);
+ modelCopy.meta_rules.push(metaRule);
+ modelService.updateModel(modelCopy);
}
}
@@ -158,7 +198,8 @@
properties: {
name: { type: "string", minLength: 2, title: gettext("Name") },
description: { type: "string", minLength: 2, title: gettext("Description") }
- }
+ },
+ required: ['name', 'description']
};
var metaRuleCopy = angular.copy(metaRule);
var config = {
@@ -188,38 +229,69 @@
}
}
+ self.createCategoryFunction = function createCategoryFunction(type, formModel, titleMap) {
+ return function () {
+ var schema = {
+ type: "object",
+ properties: {
+ name: { type: "string", minLength: 2, title: gettext("Name") },
+ description: { type: "string", minLength: 2, title: gettext("Description") },
+ },
+ required: ['name', 'description']
+ };
+ var metaRule = { name: '', description: '' };
+ var config = {
+ title: gettext('Create Category'),
+ schema: schema,
+ form: [
+ 'name',
+ { key: 'description', type: 'textarea' }
+ ],
+ model: metaRule
+ };
+ ModalFormService.open(config).then(submit);
+
+ function submit(form) {
+ modelService.createCategory(type, form.model).then(function (category) {
+ titleMap.push({ value: category.id, name: category.name })
+ formModel.id = category.id
+ })
+ }
+ }
+ }
+
self.addCategory = function addCategory(type, metaRule) {
var typeValue = categoryMap[type];
var schema = {
type: "object",
properties: {
- name: { type: "string", minLength: 2, title: gettext("Name") },
- description: { type: "string", minLength: 2, title: gettext("Description") },
id: { type: "string", title: gettext("Select a Category:") }
- }
+ },
+ required: ['id']
};
- var category = { name: '', description: '' };
var titleMap = util.arrayToTitleMap(modelService[typeValue.serviceListName])
+ var formModel = { id: null }
var config = {
title: gettext(typeValue.addTitle),
schema: schema,
- form: [{ key: 'id', type: 'select', titleMap: titleMap }, { type: 'help', helpvalue: gettext("Or create a new one:") }, 'name', { key: 'description', type: 'textarea' }],
- model: category
+ form: [
+ { key: 'id', type: 'select', titleMap: titleMap },
+ {
+ key: 'createButton',
+ type: 'button',
+ title: gettext('Create Category'),
+ icon: 'fa fa-plus',
+ onClick: self.createCategoryFunction(type, formModel, titleMap)
+ }],
+ model: formModel
};
ModalFormService.open(config).then(submit);
function submit(form) {
- function addCategoryToMetaRule(category) {
- var metaRuleCopy = angular.copy(metaRule);
- metaRuleCopy[typeValue.listName].push(category);
- modelService.updateMetaRule(metaRuleCopy)
- }
-
- if (form.model.name) {
- modelService.createCategory(type, form.model).then(addCategoryToMetaRule)
- } else if (form.model.id) {
- addCategoryToMetaRule(modelService.getCategory(type, form.model.id));
- }
+ var category = modelService.getCategory(type, form.model.id);
+ var metaRuleCopy = angular.copy(metaRule);
+ metaRuleCopy[typeValue.listName].push(category);
+ modelService.updateMetaRule(metaRuleCopy)
}
}
diff --git a/moon_dashboard/moon/static/moon/model/model.html b/moon_dashboard/moon/static/moon/model/model.html
index 98d64c75..97f08910 100644
--- a/moon_dashboard/moon/static/moon/model/model.html
+++ b/moon_dashboard/moon/static/moon/model/model.html
@@ -62,10 +62,6 @@
<translate>Import</translate>
</label>
<input id="file" class="input-file" type="file" on-read-file="ctrl.importData(contents)" accept="application/json,.json"/>
- <!--button type="button" class="btn btn-primary" ng-click="ctrl.createModel()">
- <span class="fa fa-upload"></span>
- <translate>Import</translate>
- </button-->
</div>
</div>
@@ -115,19 +111,19 @@
<tr>
<td>
<p ng-repeat="category in metaRule.subject_categories">
- <span>{$ category.name $}</span>
+ <span title="{$ category.description $}">{$ category.name $}</span>
<button type="button" class="fa fa-trash pull-right" ng-click="ctrl.removeCategoryFromMetaRule('subject', metaRule, category)" title="{$ 'Remove Subject' | translate $}"></button>
</p>
</td>
<td>
<p ng-repeat="category in metaRule.object_categories">
- <span>{$ category.name $}</span>
+ <span title="{$ category.description $}">{$ category.name $}</span>
<button type="button" class="fa fa-trash pull-right" ng-click="ctrl.removeCategoryFromMetaRule('object', metaRule, category)" title="{$ 'Remove Object' | translate $}"></button>
</p>
</td>
<td>
<p ng-repeat="category in metaRule.action_categories">
- <span>{$ category.name $}</span>
+ <span title="{$ category.description $}">{$ category.name $}</span>
<button type="button" class="fa fa-trash pull-right" ng-click="ctrl.removeCategoryFromMetaRule('action', metaRule, category)" title="{$ 'Remove Action' | translate $}"></button>
</p>
</td>
diff --git a/moon_dashboard/moon/static/moon/model/model.service.js b/moon_dashboard/moon/static/moon/model/model.service.js
index 76c3da01..986eb6b1 100755
--- a/moon_dashboard/moon/static/moon/model/model.service.js
+++ b/moon_dashboard/moon/static/moon/model/model.service.js
@@ -205,6 +205,7 @@
return modelsMap[id];
},
createModel: function createModel(model) {
+ model.meta_rules = [];
modelResource.create(null, model, success, util.displayErrorFunction('Unable to create model'));
function success(data) {
@@ -235,6 +236,10 @@
return metaRulesMap[id];
},
createMetaRule: function createMetaRule(metaRule) {
+ metaRule.subject_categories = [];
+ metaRule.object_categories = [];
+ metaRule.action_categories = [];
+
return metaRuleResource.create(null, metaRule).$promise.then(function (data) {
util.displaySuccess('Meta Rule created');
return createMetaRuleInternal(data.meta_rules)[0];