You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2014/12/16 15:37:07 UTC

ambari git commit: AMBARI-8720 Admin > Stack Versions tweaks. (ababiichuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk f85260bed -> 523b0ca6c


AMBARI-8720 Admin > Stack Versions tweaks. (ababiichuk)


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

Branch: refs/heads/trunk
Commit: 523b0ca6cff89b08fc2c2eaa80eb823e43f613db
Parents: f85260b
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Tue Dec 16 15:27:27 2014 +0200
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Tue Dec 16 16:14:01 2014 +0200

----------------------------------------------------------------------
 .../data/stack_versions/repo_versions_all.json  | 41 ++++++++++++++
 .../stack_versions/repo_versions_controller.js  | 21 ++++----
 .../stack_versions/stack_versions_controller.js |  7 ++-
 ambari-web/app/messages.js                      |  3 ++
 ambari-web/app/styles/application.less          |  3 ++
 .../stack_versions/os_for_repo_versions.hbs     | 28 ++++++++++
 .../main/admin/stack_versions/repo_versions.hbs |  9 +---
 .../admin/stack_versions/stack_versions.hbs     |  9 +---
 ambari-web/app/views.js                         |  1 +
 .../app/views/main/admin/stack_versions/menu.js | 21 ++++++--
 .../admin/stack_versions/operating_systems.js   | 56 ++++++++++++++++++++
 .../admin/stack_versions/repo_version_view.js   | 13 +----
 .../repo_versions_controller_test.js            |  7 ++-
 .../stack_versions_controller_test.js           |  3 ++
 14 files changed, 174 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/assets/data/stack_versions/repo_versions_all.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/stack_versions/repo_versions_all.json b/ambari-web/app/assets/data/stack_versions/repo_versions_all.json
index a96993c..28c25aa 100644
--- a/ambari-web/app/assets/data/stack_versions/repo_versions_all.json
+++ b/ambari-web/app/assets/data/stack_versions/repo_versions_all.json
@@ -442,6 +442,47 @@
               }
             }
           ]
+        },
+        {
+          "href" : "http://162.216.149.241:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/9/operating_systems/redhat6",
+          "OperatingSystems" : {
+            "os_type" : "suse11",
+            "repository_version_id" : 9,
+            "stack_name" : "HDP",
+            "stack_version" : "2.2"
+          },
+          "repositories" : [
+            {
+              "href" : "http://162.216.149.241:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/9/operating_systems/redhat6/repositories/HDP-2.2",
+              "Repositories" : {
+                "base_url" : "http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0",
+                "default_base_url" : "",
+                "latest_base_url" : "",
+                "mirrors_list" : "",
+                "os_type" : "redhat6",
+                "repo_id" : "HDP-2.2",
+                "repo_name" : "HDP",
+                "repository_version_id" : 9,
+                "stack_name" : "HDP",
+                "stack_version" : "2.2"
+              }
+            },
+            {
+              "href" : "http://162.216.149.241:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/9/operating_systems/redhat6/repositories/HDP-UTILS-1.1.0.20",
+              "Repositories" : {
+                "base_url" : "http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0",
+                "default_base_url" : "",
+                "latest_base_url" : "",
+                "mirrors_list" : "",
+                "os_type" : "redhat6",
+                "repo_id" : "HDP-UTILS-1.1.0.20",
+                "repo_name" : "HDP-UTILS",
+                "repository_version_id" : 9,
+                "stack_name" : "HDP",
+                "stack_version" : "2.2"
+              }
+            }
+          ]
         }
       ]
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js b/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js
index 002bcbe..2e4a3c8 100644
--- a/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js
@@ -54,9 +54,12 @@ App.RepoVersionsController = Em.ArrayController.extend({
     this.set('dataIsLoaded', false);
     var dfd = $.Deferred();
     var self = this;
-    this.loadRepoVersionsToModel().done(function () {
-      self.set('dataIsLoaded', true);
-      dfd.resolve();
+
+    App.get('router.mainStackVersionsController').loadStackVersionsToModel().done(function () {
+      self.loadRepoVersionsToModel().done(function () {
+        self.set('dataIsLoaded', true);
+        dfd.resolve();
+      });
     });
     return dfd.promise();
   },
@@ -69,15 +72,11 @@ App.RepoVersionsController = Em.ArrayController.extend({
    */
   loadRepoVersionsToModel: function () {
     var dfd = $.Deferred();
-    var self = this;
-    App.get('router.mainStackVersionsController').loadStackVersionsToModel().done(function () {
-      App.HttpClient.get(self.getUrl(), App.repoVersionMapper, {
-        complete: function () {
-          dfd.resolve();
-        }
-      });
+    App.HttpClient.get(this.getUrl(), App.repoVersionMapper, {
+      complete: function () {
+        dfd.resolve();
+      }
     });
-
     return dfd.promise();
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/controllers/main/admin/stack_versions/stack_versions_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/stack_versions/stack_versions_controller.js b/ambari-web/app/controllers/main/admin/stack_versions/stack_versions_controller.js
index 6d294ee..1cc8bdc 100644
--- a/ambari-web/app/controllers/main/admin/stack_versions/stack_versions_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_versions/stack_versions_controller.js
@@ -72,8 +72,11 @@ App.MainStackVersionsController = Em.ArrayController.extend({
     var dfd = $.Deferred();
     var self = this;
     this.loadStackVersionsToModel().done(function () {
-      self.set('dataIsLoaded', true);
-      dfd.resolve();
+      App.get('router.repoVersionsController').loadRepoVersionsToModel().done(function() {
+        self.set('dataIsLoaded', true);
+        dfd.resolve();
+      });
+
     });
     return dfd.promise();
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 83eacf6..9dbcb75 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1299,6 +1299,9 @@ Em.I18n.translations = {
   'admin.stackVersions.hosts.popup.title': "{0} Version is {1} on {2} hosts:",
   'admin.stackVersions.hosts.popup.primary': "Go to Hosts",
 
+  'admin.stackVersions.updateTab.title.available': "Updates Available ({0})",
+  'admin.stackVersions.updateTab.title.not.available': "No Updates Available",
+
   'admin.stackUpgrade.title': "Stack and upgrade",
   'admin.stackUpgrade.hostsOnline': "{0}/{1} hosts online",
   'admin.stackUpgrade.state.available': "Upgrade Available",

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 162dff2..abf5630 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -5016,6 +5016,9 @@ ul.inline li {
     color: #999;
     cursor: default;
   }
+  .black {
+    color: black;
+  }
 }
 
 #stack_versions, #repository_versions {

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/templates/main/admin/stack_versions/os_for_repo_versions.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_versions/os_for_repo_versions.hbs b/ambari-web/app/templates/main/admin/stack_versions/os_for_repo_versions.hbs
new file mode 100644
index 0000000..44c2b38
--- /dev/null
+++ b/ambari-web/app/templates/main/admin/stack_versions/os_for_repo_versions.hbs
@@ -0,0 +1,28 @@
+{{!
+* 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.
+}}
+<span {{bindAttr class="view.hasMoreOs::not-active-link"}} >
+  <a href="#" {{bindAttr class="view.hasMoreOs:os-expander :black"}} {{action toggleOs target="view"}}>
+    <span {{bindAttr class="view.isOsCollapsed:icon-caret-right:icon-caret-down view.hasMoreOs::hide"}}></span>
+    {{view.osText}}
+  </a>
+  {{#if view.hasMoreOs}}
+    <div id="stack-{{view.content.repositoryVersion}}" class="operating-systems">
+      {{{view.labels}}}
+    </div>
+  {{/if}}
+</span>

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/templates/main/admin/stack_versions/repo_versions.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_versions/repo_versions.hbs b/ambari-web/app/templates/main/admin/stack_versions/repo_versions.hbs
index a49b813..4b1d6cf 100644
--- a/ambari-web/app/templates/main/admin/stack_versions/repo_versions.hbs
+++ b/ambari-web/app/templates/main/admin/stack_versions/repo_versions.hbs
@@ -44,14 +44,7 @@
               <span>{{view.content.displayName}}</span>
             </td>
             <td class="os-types">
-              <a href="#" class="os-expander" {{action toggleOs target="view"}}>
-                <span {{bindAttr class="view.isOsCollapsed:icon-caret-right:icon-caret-down"}}></span>
-                {{view.content.operatingSystems.length}} {{pluralize view.content.operatingSystems.length singular="t:common.os" plural="t:common.oss"}}
-              </a>
-
-              <div id="stack-{{view.content.repositoryVersion}}" class="operating-systems">
-                {{{view.labels}}}
-              </div>
+              {{view App.OperatingSystemsView contentBinding="view.content"}}
             </td>
             <td class="repo-version-install">
               <a href="#" class="btn btn-success" {{action installRepoVersion view.content target="controller"}}>{{t common.install}}</a>

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs b/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs
index facc623..ac6822d 100644
--- a/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs
+++ b/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs
@@ -46,14 +46,7 @@
               <a href="#/main/admin/versions/{{unbound view.content.id}}">{{view.content.repositoryVersion.displayName}}</a>
             </td>
             <td class="os-types">
-              <a href="#" class="os-expander" {{action toggleOs target="view"}}>
-                <span {{bindAttr class="view.isOsCollapsed:icon-caret-right:icon-caret-down"}}></span>
-                {{view.content.repositoryVersion.operatingSystems.length}} {{pluralize view.content.repositoryVersion.operatingSystems.length singular="t:common.os" plural="t:common.oss"}}
-              </a>
-
-              <div id="stack-{{view.content.name}}" class="operating-systems">
-                {{{view.labels}}}
-              </div>
+              {{view App.OperatingSystemsView contentBinding="view.content.repositoryVersion"}}
             </td>
             <td class="installed-hosts-count">
               <span  {{bindAttr class="view.content.noInstalledHosts:not-active-link"}}>

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index efb354a..cf384d9 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -110,6 +110,7 @@ require('views/main/admin/stack_upgrade/upgrade_group_view');
 require('views/main/admin/stack_upgrade/upgrade_task_view');
 require('views/main/admin/stack_and_upgrade_view');
 require('views/main/admin/stack_versions/menu');
+require('views/main/admin/stack_versions/operating_systems');
 require('views/main/admin/stack_versions/repo_version_view');
 require('views/main/admin/stack_versions/stack_version_view');
 require('views/main/admin/stack_versions/stack_version_details_view');

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/views/main/admin/stack_versions/menu.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_versions/menu.js b/ambari-web/app/views/main/admin/stack_versions/menu.js
index 7117a1a..e4567cf 100644
--- a/ambari-web/app/views/main/admin/stack_versions/menu.js
+++ b/ambari-web/app/views/main/admin/stack_versions/menu.js
@@ -23,8 +23,8 @@ App.StackVersionMenuView = Em.CollectionView.extend({
   classNames: ["nav", "nav-tabs"],
   content:function(){
     var menuItems = [
-      { label: 'Installed', routing:'versions', url:"versions", active:"active"},
-      { label: 'Updates', routing:'updates', url:"versions/updates"}
+      { label: Em.I18n.t('common.installed'), routing:'versions', url:"versions", active:"active"},
+      { label: Em.I18n.t('admin.stackVersions.updateTab.title.not.available'), routing:'updates', url:"versions/updates"}
     ];
     return menuItems;
   }.property(),
@@ -46,6 +46,21 @@ App.StackVersionMenuView = Em.CollectionView.extend({
   itemViewClass: Em.View.extend({
     classNameBindings: ["active"],
     active: "",
-    template: Ember.Handlebars.compile('<a href="#/main/admin/{{unbound view.content.url}}"> {{unbound view.content.label}}</a>')
+    newRepoCount: function() {
+      return App.RepositoryVersion.find().filterProperty('stackVersion', null).get('length');
+    }.property('controller.dataIsLoaded'),
+    label: function() {
+      if (this.get('content.routing') == 'updates') {
+        if (this.get('newRepoCount') > 0) {
+          this.set("active", "");
+          return  Em.I18n.t('admin.stackVersions.updateTab.title.available').format(this.get('newRepoCount'))
+        } else {
+          this.set("active", 'not-active-link');
+        }
+      }
+      return this.get('content.label')
+    }.property('view.content.label', 'newRepoCount'),
+
+    template: Ember.Handlebars.compile('<a href="#/main/admin/{{unbound view.content.url}}"> {{view.label}}</a>')
   })
 });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/views/main/admin/stack_versions/operating_systems.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_versions/operating_systems.js b/ambari-web/app/views/main/admin/stack_versions/operating_systems.js
new file mode 100644
index 0000000..03cef25
--- /dev/null
+++ b/ambari-web/app/views/main/admin/stack_versions/operating_systems.js
@@ -0,0 +1,56 @@
+/** 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.
+ */
+
+var App = require('app');
+
+App.OperatingSystemsView = Em.View.extend({
+
+  templateName: require('templates/main/admin/stack_versions/os_for_repo_versions'),
+
+  didInsertElement: function () {
+    this.set('isOsCollapsed', true);
+  },
+
+  toggleOs: function(event) {
+    if (this.get('hasMoreOs')) {
+      this.set('isOsCollapsed', !this.get('isOsCollapsed'));
+      this.$('.operating-systems').toggle();
+    }
+  },
+
+  hasMoreOs: function() {
+    return this.get('content.operatingSystems.length') > 1;
+  }.property('content.operatingSystems.length'),
+
+  osText: function() {
+    switch (this.get('content.operatingSystems.length')) {
+      case 0:
+        return Em.I18n.t("none");
+        break;
+      case 1:
+        return this.get('content.operatingSystems').getEach('osType');
+        break;
+      default :
+        return this.get('content.operatingSystems.length') + Em.I18n.t("common.oss");
+    }
+  }.property('content.operatingSystems.length'),
+
+  labels: function() {
+    return this.get('content.operatingSystems') &&
+      this.get('content.operatingSystems').getEach('osType').join("<br/>");
+  }.property('content.operatingSystems.length')
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js b/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js
index 1031c9e..9d874ec 100644
--- a/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js
+++ b/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js
@@ -127,18 +127,7 @@ App.RepoVersionsView = App.TableView.extend({
     tagName: 'tr',
     didInsertElement: function () {
       App.tooltip(this.$("[rel='Tooltip']"));
-      this.set('isOsCollapsed', true);
-    },
-
-    toggleOs: function(event) {
-      this.set('isOsCollapsed', !this.get('isOsCollapsed'));
-      this.$('.operating-systems').toggle();
-    },
-
-    labels: function() {
-      return this.get('content.operatingSystems') &&
-        this.get('content.operatingSystems').getEach('osType').join("<br/>");
-    }.property('content.operatingSystems.length')
+    }
   })
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/test/controllers/main/admin/stack_version/repo_versions_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/stack_version/repo_versions_controller_test.js b/ambari-web/test/controllers/main/admin/stack_version/repo_versions_controller_test.js
index 1fef683..19678bc 100644
--- a/ambari-web/test/controllers/main/admin/stack_version/repo_versions_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/stack_version/repo_versions_controller_test.js
@@ -52,24 +52,23 @@ describe('App.RepoVersionsController', function () {
   describe('#load', function () {
     it('loads data by running loadRepoVersionsToModel', function () {
       sinon.stub(repoVersionsController, 'loadRepoVersionsToModel').returns({done: Em.K});
+      sinon.stub(App.get('router.mainStackVersionsController'), 'loadStackVersionsToModel', function() { return $.Deferred().resolve()});
       repoVersionsController.load();
       expect(repoVersionsController.loadRepoVersionsToModel.calledOnce).to.be.true;
+      expect(App.get('router.mainStackVersionsController').loadStackVersionsToModel.calledOnce).to.be.true;
       repoVersionsController.loadRepoVersionsToModel.restore();
+      App.get('router.mainStackVersionsController').loadStackVersionsToModel.restore();
     });
   });
   describe('#loadRepoVersionsToModel()', function () {
     it('loads data to model', function () {
       sinon.stub(App.HttpClient, 'get', Em.K);
       sinon.stub(repoVersionsController, 'getUrl', Em.K);
-      sinon.stub(App.get('router.mainStackVersionsController'), 'loadStackVersionsToModel', function() { return $.Deferred().resolve()});
 
       repoVersionsController.loadRepoVersionsToModel();
       expect(App.HttpClient.get.calledOnce).to.be.true;
       expect(repoVersionsController.getUrl.calledOnce).to.be.true;
-      expect(App.get('router.mainStackVersionsController').loadStackVersionsToModel.calledOnce).to.be.true;
-
 
-      App.get('router.mainStackVersionsController').loadStackVersionsToModel.restore();
       repoVersionsController.getUrl.restore();
       App.HttpClient.get.restore();
     });

http://git-wip-us.apache.org/repos/asf/ambari/blob/523b0ca6/ambari-web/test/controllers/main/admin/stack_version/stack_versions_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/stack_version/stack_versions_controller_test.js b/ambari-web/test/controllers/main/admin/stack_version/stack_versions_controller_test.js
index b05c40c..9eb4f92 100644
--- a/ambari-web/test/controllers/main/admin/stack_version/stack_versions_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/stack_version/stack_versions_controller_test.js
@@ -30,11 +30,14 @@ describe('App.MainStackVersionsController', function () {
   describe('#load()', function () {
     it('loads data to model by running loadStackVersionsToModel', function () {
       sinon.stub(controller, 'loadStackVersionsToModel').returns({done: Em.K});
+      sinon.stub(App.get('router.repoVersionsController'), 'loadRepoVersionsToModel').returns({done: Em.K});
 
       controller.load();
       expect(controller.loadStackVersionsToModel.calledOnce).to.be.true;
+      expect(App.get('router.repoVersionsController').loadRepoVersionsToModel.calledOnce).to.be.true;
 
       controller.loadConfigVersionsToModel.restore();
+      App.get('router.repoVersionsController').loadRepoVersionsToModel.restore();
     });
   });