You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/04/17 10:30:09 UTC
[04/16] stratos git commit: add application editor general section
with JSON Schema
add application editor general section with JSON Schema
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/9458c739
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/9458c739
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/9458c739
Branch: refs/heads/master
Commit: 9458c739eb5f9fd80733457c92c5898a7b9f22a6
Parents: f3e3225
Author: Dakshika Jayathilaka <si...@gmail.com>
Authored: Wed Mar 18 06:52:43 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri Apr 17 13:59:55 2015 +0530
----------------------------------------------------------------------
.../theme0/css/custom/application_editor.css | 4 +
.../theme0/js/custom/applications-editor.js | 141 ++++++++++++++++---
.../theme0/partials/applications_editor.hbs | 30 ----
3 files changed, 123 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/9458c739/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom/application_editor.css
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom/application_editor.css b/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom/application_editor.css
index 31d6c86..873d3b1 100644
--- a/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom/application_editor.css
+++ b/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom/application_editor.css
@@ -184,4 +184,8 @@
padding-left: 4px;
color: rgb(93, 170, 254);
padding-top: 2px;
+}
+
+div#general>div>h3 {
+ display: none;
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/9458c739/components/org.apache.stratos.manager.console/console/themes/theme0/js/custom/applications-editor.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/js/custom/applications-editor.js b/components/org.apache.stratos.manager.console/console/themes/theme0/js/custom/applications-editor.js
index 0f3b310..656a9d0 100644
--- a/components/org.apache.stratos.manager.console/console/themes/theme0/js/custom/applications-editor.js
+++ b/components/org.apache.stratos.manager.console/console/themes/theme0/js/custom/applications-editor.js
@@ -357,31 +357,14 @@ function generateGroupPreview(data) {
var applicationJson = {};
//Definition JSON builder
-function generateJsplumbTree(collector, connections){
+function generateJsplumbTree(collector, connections, appeditor){
- //get general data
- $('input.level-root').each(function(){
- var inputId = $(this).attr('id');
- collector[inputId] = $(this).val();
- });
+ collector = appeditor.getValue();
collector['components']={};
- collector['components']['dependencies']={};
collector['components']['groups']=[];
collector['components']['cartridges']=[];
- collector['components']['dependencies']['startupOrders']=[];
- collector['components']['dependencies']['scalingDependents']=[];
- var startupOrders = $('input#startupOrders').val().split(' ').join('').split(/["][,]+/g);
- for (var i = 0; i < startupOrders.length; i++) {
- startupOrders[i] = startupOrders[i].replace(/"/g, "");
- }
- var scalingDependents = $('input#scalingDependents').val().split(' ').join('').split(/["][,]+/g);
- for (var i = 0; i < scalingDependents.length; i++) {
- scalingDependents[i] = scalingDependents[i].replace(/"/g, "");
- }
- collector['components']['dependencies']['startupOrders'] = startupOrders;
- collector['components']['dependencies']['scalingDependents'] = scalingDependents;
- collector['components']['dependencies']['terminationBehaviour']=$('select#terminationBehaviour').val();
+ console.log(collector)
//generate raw data tree from connections
var rawtree = [];
@@ -456,6 +439,17 @@ function generateJsplumbTree(collector, connections){
return collector;
}
+//UUID generator
+function uuid() {
+ function s4() {
+ return Math.floor((1 + Math.random()) * 0x10000)
+ .toString(16)
+ .substring(1);
+ }
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
+ s4() + '-' + s4() + s4() + s4();
+}
+
//setting up schema and defaults
var cartridgeBlockTemplate = {
"type":"object",
@@ -610,6 +604,97 @@ var groupBlockDefault = {
"groupScalingEnabled":"false"
};
+var applicationBlockTemplate = {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "root",
+ "type": "object",
+ "title":" ",
+ "options":{
+ "disable_properties":true,
+ "disable_collapse": true
+ },
+ "properties": {
+ "applicationId": {
+ "id": "root/applicationId",
+ "type": "string",
+ "options": {
+ "hidden": true
+ }
+ },
+ "alias": {
+ "id": "root/alias",
+ "type": "string",
+ "title": "Application Alias",
+ "name": "Application Alias"
+ },
+ "multiTenant": {
+ "id": "root/multiTenant",
+ "type": "boolean",
+ "title": "Application Multi Tenancy",
+ "name": "Application Multi Tenancy"
+ },
+ "dependencies": {
+ "id": "root/dependencies",
+ "type": "object",
+ "title": "Dependencies",
+ "name": "Dependencies",
+ "options": {
+ "hidden": false,
+ "disable_properties":true,
+ "collapsed": true
+ },
+ "properties": {
+ "startupOrders": {
+ "id": "root/dependencies/startupOrders",
+ "type": "array",
+ "title": "Startup Orders",
+ "name": "Startup Orders",
+ "items": {
+ "id": "root/dependencies/startupOrders/0",
+ "type": "string",
+ "title": "Startup Order",
+ "name": "Startup Order"
+ }
+ },
+ "scalingDependents": {
+ "id": "root/dependencies/scalingDependents",
+ "type": "array",
+ "title": "Scaling Dependents",
+ "name": "Scaling Dependents",
+ "items": {
+ "id": "root/dependencies/scalingDependents/0",
+ "type": "string",
+ "title": "Scaling Dependent",
+ "name": "Scaling Dependent"
+ }
+ },
+ "terminationBehaviour": {
+ "id": "root/dependencies/terminationBehaviour",
+ "type": "string",
+ "title": "Termination Behaviour",
+ "name": "Termination Behaviour",
+ "enum": ["terminate-none","terminate-dependents","terminate-all"],
+ }
+ }
+ }
+ }
+};
+
+var applicationBlockDefault = {
+ "applicationId": "",
+ "alias": "",
+ "multiTenant": false,
+ "dependencies": {
+ "startupOrders": [
+ "group.my-group1,cartridge.my-c4"
+ ],
+ "scalingDependents": [
+ "group.my-group1,cartridge.my-c4"
+ ],
+ "terminationBehaviour": "terminate-dependents"
+ }
+};
+
//create cartridge list
var cartridgeListHtml='';
function generateCartridges(data){
@@ -685,7 +770,7 @@ $(document).ready(function(){
$('#deploy').attr('disabled','disabled');
$('#deploy').on('click', function(){
- var appJSON = generateJsplumbTree(applicationJson, jsPlumb.getConnections());
+ var appJSON = generateJsplumbTree(applicationJson, jsPlumb.getConnections(), appeditor);
var btn = $(this);
var formtype = 'applications';
btn.html("<i class='fa fa-spinner fa-spin'></i> Adding...");
@@ -717,7 +802,19 @@ $(document).ready(function(){
JSONEditor.defaults.theme = 'bootstrap3';
JSONEditor.defaults.iconlib = 'fontawesome4';
JSONEditor.defaults.show_errors = "always";
- var editor, blockId;
+ var editor, blockId, appeditor;
+
+ //set hidden UUID
+ applicationBlockDefault.applicationId = uuid();
+
+ // Initialize the editor for main section
+ appeditor = new JSONEditor(document.getElementById('general'), {
+ ajax: false,
+ disable_edit_json: true,
+ schema: applicationBlockTemplate,
+ format: "grid",
+ startval: applicationBlockDefault
+ });
DragEl(".stepnode");
http://git-wip-us.apache.org/repos/asf/stratos/blob/9458c739/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_editor.hbs
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_editor.hbs b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_editor.hbs
index 77025e3..aa51d13 100644
--- a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_editor.hbs
+++ b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_editor.hbs
@@ -96,36 +96,6 @@
<div class="tab-content app-details-tab-content">
<div role="tabpanel" class="tab-pane active" id="general">
- <div class="form-group">
- <label class="control-label" for="applicationId">Application Id:</label>
- <input type="text" class="form-control level-root" placeholder="" id="applicationId">
- </div>
- <div class="form-group">
- <label class="control-label" for="alias">Alias:</label>
- <input type="text" class="form-control level-root" placeholder="" id="alias">
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">Dependencies</div>
- <div class="panel-body">
- <div class="form-group">
- <label class="control-label" for="alias">Startup Orders:</label>
- <input type="text" class="form-control level-components" placeholder="" id="startupOrders">
- </div>
- <div class="form-group">
- <label class="control-label" for="alias">Scaling Dependents:</label>
- <input type="text" class="form-control level-components" placeholder="" id="scalingDependents">
- </div>
- <div class="form-group">
- <label class="control-label" for="alias">Termination Behaviour:</label>
- <select class="form-control level-components" id="terminationBehaviour">
- <option value="terminate-none">terminate-none</option>
- <option value="terminate-dependents">terminate-dependents</option>
- <option value="terminate-all">terminate-all</option>
- </select>
- </div>
- </div>
- </div>
-
</div>
<div role="tabpanel" class="tab-pane components" id="components">
<button type="button" class="btn btn-primary" id="component-info-update" disabled="disabled">Update</button>