瀏覽代碼

AMBARI-11190. Admin View: edit on cluster config'd view prompts for masked props on edit (alexantonenko)

Alex Antonenko 10 年之前
父節點
當前提交
e205bd15d6

+ 21 - 8
ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js

@@ -88,6 +88,17 @@ angular.module('ambariAdminConsole')
     }
   }
 
+  function filterClusterConfigs() {
+    $scope.configurationMeta.forEach(function (element) {
+      if (element.masked && !$scope.editConfigurationDisabled && element.clusterConfig && !$scope.isLocalCluster) {
+        $scope.configuration[element.name] = '';
+      }
+      if(!element.clusterConfig) {
+        delete $scope.configurationBeforeEdit[element.name];
+      }
+    });
+  }
+
   // Get META for properties
   View.getMeta($routeParams.viewId, $routeParams.version).then(function(data) {
     $scope.configurationMeta = data.data.ViewVersionInfo.parameters;
@@ -137,6 +148,15 @@ angular.module('ambariAdminConsole')
   $scope.numberOfClusterConfigs = 0;
   $scope.numberOfSettingsConfigs = 0;
 
+  $scope.enableLocalCluster = function() {
+    angular.extend($scope.configuration, $scope.configurationBeforeEdit);
+    $scope.propertiesForm.$setPristine();
+  };
+
+  $scope.disableLocalCluster = function() {
+    filterClusterConfigs();
+  };
+
   $scope.toggleSettingsEdit = function() {
     $scope.editSettingsDisabled = !$scope.editSettingsDisabled;
     $scope.settingsBeforeEdit = angular.copy($scope.configuration);
@@ -247,14 +267,7 @@ angular.module('ambariAdminConsole')
   $scope.togglePropertiesEditing = function () {
     $scope.editConfigurationDisabled = !$scope.editConfigurationDisabled;
     $scope.configurationBeforeEdit = angular.copy($scope.configuration);
-    $scope.configurationMeta.forEach(function (element) {
-      if (element.masked && !$scope.editConfigurationDisabled && element.clusterConfig) {
-        $scope.configuration[element.name] = '';
-      }
-      if(!element.clusterConfig) {
-        delete $scope.configurationBeforeEdit[element.name];
-      }
-    });
+    filterClusterConfigs();
   };
   $scope.saveConfiguration = function() {
     if( $scope.propertiesForm.$valid ){

+ 8 - 2
ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html

@@ -182,7 +182,7 @@
   <div class="panel-body property-form" popover="{{clusterConfigurableErrorMsg}}" popover-trigger="mouseenter">
     <div class="checkbox">
       <label>
-        <input type="radio" ng-model="$parent.isLocalCluster" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noClusterAvailible" ng-value="true" class="visibilityCheckbox"> Local Ambari Managed Cluster
+        <input type="radio" ng-model="$parent.isLocalCluster" ng-change="enableLocalCluster()" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noClusterAvailible" ng-value="true" class="visibilityCheckbox"> Local Ambari Managed Cluster
       </label>
     </div>
     <div class="form-horizontal property-form">
@@ -198,7 +198,13 @@
     <p>&nbsp</p>
     <div class="checkbox">
       <label>
-        <input type="radio" ng-model="$parent.isLocalCluster" ng-disabled="editConfigurationDisabled" ng-value="false" class="visibilityCheckbox"> Custom
+        <input type="radio" 
+         ng-model="$parent.isLocalCluster"
+         ng-disabled="editConfigurationDisabled"
+         ng-value="false"
+         ng-change="disableLocalCluster()"
+         class="visibilityCheckbox">
+        Custom
       </label>
     </div>
   </div>