Repository: ambari
Updated Branches:
  refs/heads/trunk d4b0b31f8 -> 03e108a8a


AMBARI-6137 Bulk operations confirmation popup. (ababiichuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/03e108a8
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/03e108a8
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/03e108a8

Branch: refs/heads/trunk
Commit: 03e108a8ae4595f48a1f13b8c530a12d976d15f9
Parents: d4b0b31
Author: aBabiichuk <ababiic...@cybervisiontech.com>
Authored: Mon Jun 16 19:00:24 2014 +0300
Committer: aBabiichuk <ababiic...@cybervisiontech.com>
Committed: Mon Jun 16 19:00:42 2014 +0300

----------------------------------------------------------------------
 .../app/controllers/wizard/step8_controller.js  |  2 +-
 ambari-web/app/messages.js                      |  2 +-
 ambari-web/app/styles/application.less          |  5 ++++
 .../main/host/bulk_operation_confirm_popup.hbs  | 18 ++++++------
 ambari-web/app/views/main/host.js               | 30 +++++++++++++++++++-
 .../test/controllers/wizard/step8_test.js       |  2 +-
 6 files changed, 47 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js 
b/ambari-web/app/controllers/wizard/step8_controller.js
index 6ae3fb8..40ae764 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -720,7 +720,7 @@ App.WizardStep8Controller = Em.Controller.extend({
     if (hbaseHostName.length == 1) {
       hbaseMaster.set('component_value', hbaseHostName[0].hostName);
     } else {
-      hbaseMaster.set('component_value', hbaseHostName[0].hostName + 
Em.I18n.t('installer.step8.other').format(hbaseHostName.length - 1));
+      hbaseMaster.set('component_value', hbaseHostName[0].hostName + " " + 
Em.I18n.t('installer.step8.other').format(hbaseHostName.length - 1));
     }
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 4e67fc8..4b4caab 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -627,7 +627,7 @@ Em.I18n.translations = {
   'installer.step8.deployPopup.message':'Preparing to Deploy: {0} of {1} tasks 
completed.',
   'installer.step8.hosts':' hosts',
   'installer.step8.host':' host',
-  'installer.step8.other':' and {0} other hosts',
+  'installer.step8.other':'and {0} other hosts',
   'installer.step8.repoInfo.osType.redhat6':'RHEL 6/CentOS 6/Oracle Linux 6',
   'installer.step8.repoInfo.osType.redhat5':'RHEL 5/CentOS 5/Oracle Linux 5',
   'installer.step8.repoInfo.osType.sles11':'SLES 11/SUSE 11',

http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less 
b/ambari-web/app/styles/application.less
index 00bacb5..6dfdb92 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -2049,6 +2049,11 @@ width:100%;
   }
 }
 
+.limited-height {
+  max-height: 150px;
+  overflow-y: auto;
+}
+
 .task-detail-info {
   .task-detail-log-info {
     max-height: 340px;

http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/app/templates/main/host/bulk_operation_confirm_popup.hbs
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/templates/main/host/bulk_operation_confirm_popup.hbs 
b/ambari-web/app/templates/main/host/bulk_operation_confirm_popup.hbs
index 6b8cc55..1d0cab3 100644
--- a/ambari-web/app/templates/main/host/bulk_operation_confirm_popup.hbs
+++ b/ambari-web/app/templates/main/host/bulk_operation_confirm_popup.hbs
@@ -17,7 +17,6 @@
 }}
 
 <p>{{{view.message}}}</p>
-
 <div class="task-top-wrap">
   <div class="task-detail-ico-wrap">
     <a href="#" title="Click to Copy" {{action "textTrigger"}} 
class="task-detail-copy"><i class="icon-copy"></i> {{t common.copy}}</a>
@@ -29,13 +28,16 @@
       <textarea class="task-detail-log-clipboard"></textarea>
     </div>
     <div {{bindAttr class="view.textareaVisible:hidden 
:task-detail-log-maintext"}}>
-      <pre>{{hostNames}}</pre>
+      <pre class="limited-height">{{visibleHosts}}</pre>
     </div>
+    {{#unless expanded}}
+      <a href="#" {{action "showAll"}}>{{t tableView.filters.showAll}}</a>
+    {{/unless}}
   </div>
+  {{#if hostNamesSkipped}}
+    <div class="alert alert-warning">
+      {{view.warningInfo}}<br />
+      <pre class="limited-height alert 
alert-warning"><strong>{{hostNamesSkippedVisible}}</strong></pre>
+    </div>
+  {{/if}}
 </div>
-{{#if hostNamesSkipped}}
-  <div class="alert alert-warning">
-    {{view.warningInfo}}<br />
-      <strong>{{hostNamesSkipped}}</strong>
-  </div>
-{{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/app/views/main/host.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host.js 
b/ambari-web/app/views/main/host.js
index 8a4d01e..544361e 100644
--- a/ambari-web/app/views/main/host.js
+++ b/ambari-web/app/views/main/host.js
@@ -238,6 +238,23 @@ App.MainHostView = 
App.TableView.extend(App.TableServerProvider, {
   },
 
   /**
+   * Returs all hostNames if amount is less than {minShown} or
+   * first elements of array (number of elements - {minShown}) converted to 
string
+   * @param {Array} hostNames - array of all listed hostNames
+   * @param {String} divider - string to separate hostNames
+   * @param {Number} minShown - min amount of hostName to be shown
+   * @returns {String} hostNames
+   * @method showHostNames
+   */
+  showHostNames: function(hostNames, divider, minShown) {
+    if (hostNames.length > minShown) {
+      return hostNames.slice(0, minShown).join(divider) + divider + 
Em.I18n.t("installer.step8.other").format(hostNames.length - minShown);
+    } else {
+      return hostNames.join(divider);
+    }
+  },
+
+  /**
    * Confirmation Popup for bulk Operations
    */
   bulkOperationConfirm: function(operationData, selection) {
@@ -280,12 +297,18 @@ App.MainHostView = 
App.TableView.extend(App.TableServerProvider, {
     App.ModalPopup.show({
       header: Em.I18n.t('hosts.bulkOperation.confirmation.header'),
       hostNames: hostNames.join("\n"),
+      visibleHosts: self.showHostNames(hostNames, "\n", 3),
+      hostNamesSkippedVisible: self.showHostNames(hostNamesSkipped, "\n", 3),
       hostNamesSkipped: function() {
         if (hostNamesSkipped.length) {
-          return hostNamesSkipped.join("<br/>");
+          return hostNamesSkipped.join("\n");
         }
         return false;
       }.property(),
+      expanded: false,
+      didInsertElement: function() {
+        this.set('expanded', hostNames.length <= 3);
+      },
       onPrimary: function() {
         self.get('controller').bulkOperation(operationData, hosts);
         this._super();
@@ -298,6 +321,11 @@ App.MainHostView = 
App.TableView.extend(App.TableServerProvider, {
         textTrigger: function() {
           this.set('textareaVisible', !this.get('textareaVisible'));
         },
+        showAll: function() {
+          this.set('parentView.visibleHosts', 
this.get('parentView.hostNames'));
+          this.set('parentView.hostNamesSkippedVisible', 
this.get('parentView.hostNamesSkipped'));
+          this.set('parentView.expanded', true);
+        },
         putHostNamesToTextarea: function() {
           var hostNames = this.get('parentView.hostNames');
           if (this.get('textareaVisible')) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/03e108a8/ambari-web/test/controllers/wizard/step8_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard/step8_test.js 
b/ambari-web/test/controllers/wizard/step8_test.js
index 3e88799..aa147d4 100644
--- a/ambari-web/test/controllers/wizard/step8_test.js
+++ b/ambari-web/test/controllers/wizard/step8_test.js
@@ -864,7 +864,7 @@ describe('App.WizardStep8Controller', function () {
           masterComponentHosts: [{component: 'HBASE_MASTER', hostName: 'h1'}, 
{component: 'HBASE_MASTER', hostName: 'h2'}, {component: 'HBASE_MASTER', 
hostName: 'h3'}],
           component: Em.Object.create({component_name: 'HBASE_MASTER'}),
           m: 'many hosts',
-          e: 'h1' + Em.I18n.t('installer.step8.other').format(2)
+          e: 'h1 ' + Em.I18n.t('installer.step8.other').format(2)
         }
       ]).forEach(function (test) {
         it(test.m, function() {

Reply via email to