You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by xi...@apache.org on 2015/05/13 02:40:43 UTC
ambari git commit: AMBARI-11005-PART2. Widgets: UI changes v4.(xiwang)
Repository: ambari
Updated Branches:
refs/heads/trunk 449818c67 -> af0debf52
AMBARI-11005-PART2. Widgets: UI changes v4.(xiwang)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/af0debf5
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/af0debf5
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/af0debf5
Branch: refs/heads/trunk
Commit: af0debf52f576bb9736c0f73f5dae5ee36ca07a4
Parents: 449818c
Author: Xi Wang <xi...@apache.org>
Authored: Tue May 12 14:42:07 2015 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Tue May 12 17:40:18 2015 -0700
----------------------------------------------------------------------
.../app/styles/enhanced_service_dashboard.less | 26 +++++++++++
.../main/service/widgets/create/expression.hbs | 7 +++
.../service/widgets/create/expression_view.js | 47 ++++++++++++++++++++
3 files changed, 80 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/af0debf5/ambari-web/app/styles/enhanced_service_dashboard.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/enhanced_service_dashboard.less b/ambari-web/app/styles/enhanced_service_dashboard.less
index f95bdec..5ea0c08 100644
--- a/ambari-web/app/styles/enhanced_service_dashboard.less
+++ b/ambari-web/app/styles/enhanced_service_dashboard.less
@@ -377,6 +377,32 @@
.controls.is-invalid {
border-color: red;
}
+ .add-item-input {
+ display: inline-block!important;
+ .ember-text-field{
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ position: relative;
+ font-weight: bold;
+ margin: 8px 0 10px 10px;
+ padding: 5px;
+ border: 1px solid #dddddd;
+ width: 50px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+ -webkit-border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none;
+ }
+ .ember-text-field.is-invalid {
+ border: 1px solid red;
+ }
+ }
}
.template {
margin-bottom: 10px;
http://git-wip-us.apache.org/repos/asf/ambari/blob/af0debf5/ambari-web/app/templates/main/service/widgets/create/expression.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/widgets/create/expression.hbs b/ambari-web/app/templates/main/service/widgets/create/expression.hbs
index 353ddff..3398725 100644
--- a/ambari-web/app/templates/main/service/widgets/create/expression.hbs
+++ b/ambari-web/app/templates/main/service/widgets/create/expression.hbs
@@ -40,8 +40,15 @@
<a href="#" {{action removeElement element target="view"}}><i class="icon-remove"></i></a>
</div>
{{/each}}
+ <div class="add-item-input">
+ {{view App.InputCursorTextfieldView parentViewBinding="view"}}
+ </div>
{{else}}
+ <div class="add-item-input">
+ {{view App.InputCursorTextfieldView parentViewBinding="view"}}
+ </div>
<div class="placeholder">{{t dashboard.widgets.wizard.step2.addMetrics}}</div>
{{/if}}
+
</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/af0debf5/ambari-web/app/views/main/service/widgets/create/expression_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/widgets/create/expression_view.js b/ambari-web/app/views/main/service/widgets/create/expression_view.js
index 1a11577..079d420 100644
--- a/ambari-web/app/views/main/service/widgets/create/expression_view.js
+++ b/ambari-web/app/views/main/service/widgets/create/expression_view.js
@@ -334,3 +334,50 @@ App.AddMetricExpressionView = Em.View.extend({
return result;
}.property('controller.filteredMetrics')
});
+
+App.InputCursorTextfieldView = Ember.TextField.extend({
+ placeholder: "",
+ classNameBindings: ['isInvalid'],
+ isInvalid: false,
+
+ didInsertElement: function () {
+ this.focusCursor();
+ },
+
+ focusCursor: function () {
+ Em.run.next( function() { $('.add-item-input .ember-text-field').focus(); });
+ }.observes('parentView.expression.data.length'),
+
+ validateInput: function () {
+ var value = this.get('value');
+ var parentView = this.get('parentView');
+ this.set('isInvalid', false);
+ if (value && parentView.get('OPERATORS').contains(value)) {
+ // add operator
+ var data = parentView.get('expression.data');
+ var lastId = (data.length > 0) ? Math.max.apply(parentView, data.mapProperty('id')) : 0;
+ data.pushObject(Em.Object.create({
+ id: ++lastId,
+ name: value,
+ isOperator: true
+ }));
+ this.set('value', '');
+ } else if (value && value == 'm') {
+ // open add metric menu
+ $('#add-metric-menu > div > a').click();
+ this.set('value', '');
+ } else if (value) {
+ // invalid operator
+ this.set('isInvalid', true);
+ }
+ }.observes('value'),
+
+ keyDown: function (event) {
+ if ((event.keyCode == 8 || event.which == 8) && !this.get('value')) { // backspace
+ var data = this.get('parentView.expression.data');
+ if (data.length >= 1) {
+ data.removeObject(data[data.length - 1]);
+ }
+ }
+ }
+});