Browse Source

AMBARI-6196 js errors occur when refreshing service page. (ababiichuk)

aBabiichuk 11 years ago
parent
commit
ce09149dc5

+ 4 - 1
ambari-web/app/controllers/main/service/info/configs.js

@@ -158,6 +158,9 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
   },
 
   getHash: function() {
+    if (!this.get('stepConfigs')[0]) {
+      return "";
+    }
     var hash = {};
     this.get('stepConfigs')[0].configs.forEach(function(config) {
       hash[config.get('name')] = {value: config.get('value'), overrides: []};
@@ -593,7 +596,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
               var defaultValueFromStack = advancedConfigs.findProperty('name', name);
               // If property default value is not declared on client, fetch it from stack definition
               // If it's not declared with any valid value in both server stack and client, then js reference error is expected to be thrown
-              recommendedDefaults[name] = defaultValueFromStack.value
+              recommendedDefaults[name] = defaultValueFromStack && defaultValueFromStack.value
             }
           }
         });

+ 9 - 6
ambari-web/app/mappers/service_metrics_mapper.js

@@ -188,7 +188,9 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
       json.items.forEach(function (component) {
         var serviceName = component.ServiceComponentInfo.service_name;
         var service = services.findProperty('ServiceInfo.service_name', serviceName);
-        service.components.push(component);
+        if (service) {
+          service.components.push(component);
+        }
         component.host_components.forEach(function (host_component) {
           host_component.id = host_component.HostRoles.component_name + "_" + host_component.HostRoles.host_name;
           previousComponentStatuses[host_component.id] = host_component.HostRoles.state;
@@ -332,11 +334,12 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
             hostComponent.display_name_advanced = null;
           }
         }
-
-        if (hostComponent.display_name_advanced) {
-          service.tool_tip_content += hostComponent.display_name_advanced + " " + App.HostComponentStatus.getTextStatus(hostComponent.work_status) + "<br/>";
-        } else {
-          service.tool_tip_content += App.format.role(hostComponent.component_name) + " " + App.HostComponentStatus.getTextStatus(hostComponent.work_status) + "<br/>";
+        if (service) {
+          if (hostComponent.display_name_advanced) {
+            service.tool_tip_content += hostComponent.display_name_advanced + " " + App.HostComponentStatus.getTextStatus(hostComponent.work_status) + "<br/>";
+          } else {
+            service.tool_tip_content += App.format.role(hostComponent.component_name) + " " + App.HostComponentStatus.getTextStatus(hostComponent.work_status) + "<br/>";
+          }
         }
       }
     }, this)