You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2014/11/21 14:36:32 UTC

ambari git commit: AMBARI-8409. Alerts UI: Alert Definition details page throws exception on page reload (onechiporenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk eeac84a52 -> 15ffd2ece


AMBARI-8409. Alerts UI: Alert Definition details page throws exception on page reload (onechiporenko)


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

Branch: refs/heads/trunk
Commit: 15ffd2ece6b20712ca505cd1f06361f224ac2c20
Parents: eeac84a
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Fri Nov 21 14:22:58 2014 +0200
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Fri Nov 21 14:22:58 2014 +0200

----------------------------------------------------------------------
 .../alerts/definition_details_controller.js     | 10 +++++++
 .../app/mappers/alert_definitions_mapper.js     |  1 +
 ambari-web/app/routes/main.js                   | 11 ++++----
 .../main/alerts/definition_details.hbs          |  5 ++++
 .../main/alerts/definition_details_view.js      | 28 ++++++++++++++++++++
 5 files changed, 50 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/15ffd2ec/ambari-web/app/controllers/main/alerts/definition_details_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/alerts/definition_details_controller.js b/ambari-web/app/controllers/main/alerts/definition_details_controller.js
index 247c5d8..05d2ad0 100644
--- a/ambari-web/app/controllers/main/alerts/definition_details_controller.js
+++ b/ambari-web/app/controllers/main/alerts/definition_details_controller.js
@@ -60,6 +60,16 @@ App.MainAlertDefinitionDetailsController = Em.Controller.extend({
   }.observes('editing.description.value'),
 
   /**
+   * Load alert instances for current alertDefinition
+   * Start updating loaded data
+   * @method loadAlertInstances
+   */
+  loadAlertInstances: function() {
+    App.router.get('mainAlertInstancesController').loadAlertInstancesByAlertDefinition(this.get('content.id'));
+    App.router.set('mainAlertInstancesController.isUpdating', true);
+  },
+
+  /**
    * Edit button handler
    * @param event
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/15ffd2ec/ambari-web/app/mappers/alert_definitions_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/alert_definitions_mapper.js b/ambari-web/app/mappers/alert_definitions_mapper.js
index 7ca8c41..7d38621 100644
--- a/ambari-web/app/mappers/alert_definitions_mapper.js
+++ b/ambari-web/app/mappers/alert_definitions_mapper.js
@@ -181,6 +181,7 @@ App.alertDefinitionsMapper = App.QuickDataMapper.create({
       if (App.router.get('mainAlertDefinitionsController')) {
         App.router.set('mainAlertDefinitionsController.mapperTimestamp', (new Date()).getTime());
       }
+      App.store.commit();
     }
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/15ffd2ec/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 361312b..86c01eb 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -331,12 +331,13 @@ module.exports = Em.Route.extend({
     }),
 
     alertDetails: Em.Route.extend({
-      route: '/:alert_id',
-      connectOutlets: function (router, alert) {
-        router.get('mainAlertInstancesController').loadAlertInstancesByAlertDefinition(alert.get('id'));
-        router.set('mainAlertInstancesController.isUpdating', true);
-        router.get('mainController').connectOutlet('mainAlertDefinitionDetails', alert);
+
+      route: '/:alert_definition_id',
+
+      connectOutlets: function (router, alertDefinition) {
+        router.get('mainController').connectOutlet('mainAlertDefinitionDetails', alertDefinition);
       },
+
       exit: function(router) {
         router.set('mainAlertInstancesController.isUpdating', false);
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/15ffd2ec/ambari-web/app/templates/main/alerts/definition_details.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/alerts/definition_details.hbs b/ambari-web/app/templates/main/alerts/definition_details.hbs
index ab58561..298ea56 100644
--- a/ambari-web/app/templates/main/alerts/definition_details.hbs
+++ b/ambari-web/app/templates/main/alerts/definition_details.hbs
@@ -16,6 +16,8 @@
 * limitations under the License.
 }}
 
+{{#if view.isLoaded}}
+
 <div id="alert-definition-details">
   <div class="row-fluid">
     <div class="span9">
@@ -164,3 +166,6 @@
     </div>
   </div>
 </div>
+{{else}}
+  <div class="spinner"></div>
+{{/if}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/15ffd2ec/ambari-web/app/views/main/alerts/definition_details_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/alerts/definition_details_view.js b/ambari-web/app/views/main/alerts/definition_details_view.js
index 4ad474f..8490755 100644
--- a/ambari-web/app/views/main/alerts/definition_details_view.js
+++ b/ambari-web/app/views/main/alerts/definition_details_view.js
@@ -22,6 +22,34 @@ App.MainAlertDefinitionDetailsView = App.TableView.extend({
 
   templateName: require('templates/main/alerts/definition_details'),
 
+  /**
+   * Determines if <code>controller.content</code> is loaded
+   * @type {bool}
+   */
+  isLoaded: false,
+
+  willInsertElement: function () {
+    var self = this,
+      updater = App.router.get('updateController');
+    if (self.get('controller.content.isLoaded')) {
+      self.set('isLoaded', true);
+      self.get('controller').loadAlertInstances();
+    }
+    else {
+      updater.updateAlertGroups(function () {
+        updater.updateAlertDefinitions(function () {
+          updater.updateAlertDefinitionSummary(function () {
+            self.set('isLoaded', true);
+            // App.AlertDefinition doesn't represents real models
+            // Real model (see AlertDefinition types) should be used
+            self.set('controller.content', App.AlertDefinition.getAllDefinitions().findProperty('id', parseInt(self.get('controller.content.id'))));
+            self.get('controller').loadAlertInstances();
+          });
+        });
+      });
+    }
+  },
+
   didInsertElement: function () {
     this.filter();
   },