diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/create.service.js b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/create.service.js
index 70ebbe1..e0f769e 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/create.service.js
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/create.service.js
@@ -39,7 +39,7 @@
];
function createService(
- $location, policy, actionResult, gettext, $qExtensions, wizardModalService, toast, model, events, resourceType, createWorkflow
+ $location, policy, actionResult, gettext, $qExtensions, wizardModalService, toast, model, events, resourceType, workflow
) {
var scope;
@@ -59,7 +59,7 @@
function initScope($scope) {
scope = $scope;
- scope.workflow = createWorkflow;
+ scope.workflow = workflow;
scope.model = model;
scope.$on('$destroy', function() {
});
@@ -71,7 +71,7 @@
scope.selected = selected;
return wizardModalService.modal({
scope: scope,
- workflow: createWorkflow,
+ workflow: workflow,
submit: submit
}).result;
}
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/info.html b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/info.html
index 07532fc..f8f847d 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/info.html
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/info.html
@@ -1,12 +1,8 @@
-
-
-
-
-
-
-
-
+
+
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/{{cookiecutter.panel}}.info.controller.js b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/{{cookiecutter.panel}}.info.controller.js
index aab4dc1..ff46861 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/{{cookiecutter.panel}}.info.controller.js
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/info/{{cookiecutter.panel}}.info.controller.js
@@ -36,5 +36,111 @@
function create{{cookiecutter.panel_func}}InfoController($q, $scope, basePath, api, gettext) {
var ctrl = this;
+
+ var createInfoSchema = {
+ type: 'object',
+ properties: {
+ name: {
+ title: gettext('Name'),
+ type: 'string'
+ },
+ description: {
+ title: gettext('Description'),
+ type: 'string'
+ },
+ enabled: {
+ title: gettext('Enabled'),
+ type: 'boolean',
+ default: true
+ },
+ size: {
+ title: gettext('Size'),
+ type: 'string',
+ default: 'M'
+ },
+ base: {
+ title: gettext('Base'),
+ type: 'string'
+ },
+ flavor: {
+ title: gettext('Flavor'),
+ type: 'string'
+ },
+ topping: {
+ title: gettext('Topping'),
+ type: 'string'
+ }
+
+ },
+ required: ['name', 'base']
+ };
+
+ var createInfoForm = [
+ {
+ type: 'section',
+ htmlClass: 'row',
+ items: [
+ {
+ type: 'section',
+ htmlClass: 'col-sm-12',
+ items: [
+ // info tab
+ {
+ key: 'name',
+ placeholder: gettext('Name of the {{cookiecutter.panel}} to create.')
+ },
+ {
+ key: 'description',
+ type: 'textarea'
+ },
+ {
+ key: 'enabled',
+ type: 'checkboxes',
+ titleMap: [
+ {value: true, name: ''},
+ ]
+ },
+ // spec tab
+ {
+ key: 'size',
+ type: 'radiobuttons'
+ titleMap: [
+ // get options from API
+ {value: 'S', name: gettext('Small')},
+ {value: 'M', name: gettext('Medium')},
+ {value: 'L', name: gettext('Large')},
+ {value: 'XL', name: gettext('Extra Large')}
+ ]
+ },
+ {
+ key: 'base',
+ type: 'select'
+ titleMap: [
+ // get options from API
+ ]
+ },
+ {
+ key: 'flavor',
+ type: 'select'
+ titleMap: [
+ // get options from API
+ ]
+ },
+ {
+ key: 'topping',
+ type: 'checkboxes'
+ titleMap: [
+ // get options from API
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ];
+
+ ctrl.schema = createInfoSchema;
+ ctrl.form = createInfoForm;
+ ctrl.model = model.spec;
}
})();
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/{{cookiecutter.panel}}-model.js b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/{{cookiecutter.panel}}-model.js
index 6ad6647..3fad214 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/{{cookiecutter.panel}}-model.js
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.module_folder}}/static/dashboard/{{cookiecutter.panel_group}}/{{cookiecutter.panel}}s/create/{{cookiecutter.panel}}-model.js
@@ -25,26 +25,32 @@
function {{cookiecutter.panel}}Model(api) {
var model = {
- newSpec: {},
+ spec: {},
// API methods
init: init,
create{{cookiecutter.panel_func}}: create{{cookiecutter.panel_func}}
};
- function initNewSpec() {
- model.newSpec = {
- name: null,
+ function initSpec() {
+ model.spec = {
+ name: null, // text required
+ description: null, // textarea
+ enabled: true, // checkbox
+ size: null, // radio
+ base: "", // select required
+ flavor: "", // select
+ topping: null, // checkboxes
};
}
function init() {
// Reset the new {{cookiecutter.panel_func}} spec
- initNewSpec();
+ initSpec();
}
function create{{cookiecutter.panel_func}}() {
- var finalSpec = angular.copy(model.newSpec);
+ var finalSpec = angular.copy(model.spec);
cleanNullProperties(finalSpec);