You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/08/28 19:49:38 UTC
[03/45] git commit: AMBARI-7037. Slider View: Create Slider app
wizard should show configs in sections (alexantonenko)
AMBARI-7037. Slider View: Create Slider app wizard should show configs in sections (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/eb08925c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/eb08925c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/eb08925c
Branch: refs/heads/branch-alerts-dev
Commit: eb08925ca4290ad26e90a5f353d97f1aed298422
Parents: c79fad2
Author: Alex Antonenko <hi...@gmail.com>
Authored: Wed Aug 27 17:39:02 2014 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Wed Aug 27 17:39:02 2014 +0300
----------------------------------------------------------------------
.../ui/app/components/configSection.js | 48 ++++++++++++++++++++
.../createAppWizard/step3_controller.js | 45 ++++++++++++++----
.../src/main/resources/ui/app/helpers/helper.js | 5 +-
.../app/templates/components/configSection.hbs | 30 ++++++++++++
.../ui/app/templates/createAppWizard/step3.hbs | 4 +-
5 files changed, 122 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/eb08925c/contrib/views/slider/src/main/resources/ui/app/components/configSection.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/components/configSection.js b/contrib/views/slider/src/main/resources/ui/app/components/configSection.js
new file mode 100644
index 0000000..7b2481d
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/components/configSection.js
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+App.ConfigSectionComponent = Em.Component.extend({
+ layoutName:'components/configSection',
+ config:null,
+ section:'',
+
+ /**
+ * label for current section
+ * @return {String}
+ */
+ sectionLabel: function () {
+ return this.get('section').classify();
+ }.property(),
+
+ /**
+ * Return True is section name equals 'general'
+ * @type {Boolean}
+ */
+ isGeneral:Ember.computed.equal('section', 'general'),
+
+ /**
+ * Filtered configs for current section
+ */
+ sectionConfigs: Ember.computed.filter('config', function(item) {
+ if (this.get('isGeneral')) {
+ return !item.name.match('^site.');
+ } else {
+ return !!item.name.match('^site.'+this.get('section')) ;
+ }
+ })
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/eb08925c/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step3_controller.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step3_controller.js b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step3_controller.js
index 2c34592..b98afb4 100644
--- a/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step3_controller.js
+++ b/contrib/views/slider/src/main/resources/ui/app/controllers/createAppWizard/step3_controller.js
@@ -22,11 +22,30 @@ App.CreateAppWizardStep3Controller = Ember.ObjectController.extend({
appWizardController: Ember.computed.alias("controllers.createAppWizard"),
+ newAppConfigs: Ember.computed.alias("appWizardController.newApp.configs"),
+
/**
- * Configs entered in TextArea
- * @type {String}
+ * Configs entered in TextFields
+ * @type Array
*/
- configs: '',
+ configs: Em.A(),
+
+ /**
+ * Convert configs to array of uniq section names
+ * @return {Array}
+ */
+ sectionKeys:function () {
+ var configs = this.get('newAppConfigs') || {},
+ k = ["general"];
+
+ Object.keys(configs).forEach(function (key) {
+ if (key.split('.')[0] == "site") {
+ k.push(key.split('.')[1])
+ }
+ });
+
+ return k.uniq();
+ }.property('newAppConfigs'),
/**
* Defines if <code>configs</code> are properly key-value formatted
@@ -54,10 +73,16 @@ App.CreateAppWizardStep3Controller = Ember.ObjectController.extend({
* @method initConfigs
*/
initConfigs: function() {
- var c = JSON.stringify(this.get('appWizardController.newApp.configs')).replace(/",/g, '",\n');
- c = c.substr(1, c.length - 2);
+ var configs = this.get('newAppConfigs') || {},
+ c = Em.A();
+
+ Object.keys(configs).forEach(function (key) {
+ var label = (!!key.match('^site.'))?key.substr(5):key;
+ c.push({name:key,value:configs[key],label:label})
+ });
+
this.set('configs', c);
- },
+ }.observes('newAppConfigs'),
/**
* Clear all initial data
@@ -76,8 +101,12 @@ App.CreateAppWizardStep3Controller = Ember.ObjectController.extend({
var self = this;
var result = true;
var configs = this.get('configs');
+ var configsObject = {};
+
try {
- var configsObject = JSON.parse('{' + configs + '}');
+ configs.forEach(function (item) {
+ configsObject[item.name] = item.value;
+ })
self.set('configsObject', configsObject);
} catch (e) {
self.set('isError', true);
@@ -91,7 +120,7 @@ App.CreateAppWizardStep3Controller = Ember.ObjectController.extend({
* @method saveConfigs
*/
saveConfigs: function () {
- this.set('appWizardController.newApp.configs', this.get('configsObject'));
+ this.set('newAppConfigs', this.get('configsObject'));
},
actions: {
http://git-wip-us.apache.org/repos/asf/ambari/blob/eb08925c/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js b/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
index bfa0a68..664328c 100644
--- a/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
+++ b/contrib/views/slider/src/main/resources/ui/app/helpers/helper.js
@@ -58,11 +58,14 @@ App.registerBoundHelper = function(name, view) {
App.registerBoundHelper('formatWordBreak', Em.View.extend({
tagName: 'span',
template: Ember.Handlebars.compile('{{{view.result}}}'),
+ devider:'/',
/**
* @type {string}
*/
result: function() {
- return this.get('content') && this.get('content').replace(/\//g, '/<wbr />');
+ var d = this.get('devider');
+ var r = new RegExp('\\'+d,"g");
+ return this.get('content') && this.get('content').replace(r, d+'<wbr />');
}.property('content')
}));
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/eb08925c/contrib/views/slider/src/main/resources/ui/app/templates/components/configSection.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/components/configSection.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/components/configSection.hbs
new file mode 100644
index 0000000..9b47650
--- /dev/null
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/components/configSection.hbs
@@ -0,0 +1,30 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+
+{{#bs-panel heading=sectionLabel collapsible=true dismiss=false open=isGeneral }}
+ <form class="form-horizontal" role="form">
+ {{#each sectionConfigs}}
+ <div class="form-group">
+ <label class="col-sm-4 control-label">{{formatWordBreak label devider='.'}}</label>
+ <div class="col-sm-6">
+ {{input value=value class="form-control"}}
+ </div>
+ </div>
+ {{/each}}
+ </form>
+{{/bs-panel}}
http://git-wip-us.apache.org/repos/asf/ambari/blob/eb08925c/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step3.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step3.hbs b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step3.hbs
index 6b81a1e..181e93e 100644
--- a/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step3.hbs
+++ b/contrib/views/slider/src/main/resources/ui/app/templates/createAppWizard/step3.hbs
@@ -20,7 +20,9 @@
{{t wizard.step3.header}}
</p>
<div {{bind-attr class="controller.isError:has-error :form-group"}}>
- {{view Ember.TextArea id="configs-text-area" valueBinding="controller.configs" classNames="form-control"}}
+ {{#each controller.sectionKeys}}
+ {{config-section section=this config=controller.configs}}
+ {{/each}}
{{#if controller.isError}}
<div class="alert alert-danger">{{t wizard.step3.error}}</div>
{{/if}}