Repository: ambari
Updated Branches:
  refs/heads/trunk 875f1efb6 -> e2e8c1386


AMBARI-15059 - UI for user home directory creation fix1 (rzang)


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

Branch: refs/heads/trunk
Commit: e2e8c138649fca25a6c164c51bc439ef19219f43
Parents: 875f1ef
Author: Richard Zang <rz...@apache.org>
Authored: Tue Sep 20 17:21:04 2016 -0700
Committer: Richard Zang <rz...@apache.org>
Committed: Tue Sep 20 17:21:04 2016 -0700

----------------------------------------------------------------------
 .../loginActivities/HomeDirectoryCtrl.js        | 73 +++++++++++++-------
 .../views/loginActivities/homeDirectory.html    |  2 +-
 2 files changed, 49 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e2e8c138/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/loginActivities/HomeDirectoryCtrl.js
----------------------------------------------------------------------
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/loginActivities/HomeDirectoryCtrl.js
 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/loginActivities/HomeDirectoryCtrl.js
index 582b68b..42f9367 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/loginActivities/HomeDirectoryCtrl.js
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/loginActivities/HomeDirectoryCtrl.js
@@ -1,31 +1,54 @@
-/**
- * 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.
- */
-'use strict';
-
-angular.module('ambariAdminConsole')
-  .controller('HomeDirectoryCtrl',['$scope', function($scope) {
+  /**
+   * 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.
+   */
+  'use strict';
+  
+  angular.module('ambariAdminConsole')
+    .controller('HomeDirectoryCtrl', ['$scope', '$location', 'UnsavedDialog', 
function($scope, $location, UnsavedDialog) {
 
       $scope.TEMPLATE_PLACEHOLER = '/user/{{username}}';
-
       $scope.autoCreate = false;
       $scope.template = '';
       $scope.group = '';
       $scope.permissions = '';
-
-      $scope.save = function () {}
-  }]);
+  
+      $scope.save = function (targetUrl) {
+        targetUrl ? $location.path(targetUrl) : "";
+      }
+  
+      $scope.$on('$locationChangeStart', function(event, __targetUrl) {
+        if( $scope.form.$dirty ){
+          UnsavedDialog().then(function(action) {
+            var targetUrl = __targetUrl.split('#').pop();
+            switch(action){
+              case 'save':
+                $scope.save(targetUrl);
+                $scope.form.$setPristine();
+                break;
+              case 'discard':
+                $scope.form.$setPristine();
+                $location.path(targetUrl);
+                break;
+              case 'cancel':
+                targetUrl = '/homeDirectory';
+                break;
+            }
+          });
+          event.preventDefault();
+        }
+      });
+    }]);

http://git-wip-us.apache.org/repos/asf/ambari/blob/e2e8c138/ambari-admin/src/main/resources/ui/admin-web/app/views/loginActivities/homeDirectory.html
----------------------------------------------------------------------
diff --git 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/loginActivities/homeDirectory.html
 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/loginActivities/homeDirectory.html
index ee5d860..913bc0f 100644
--- 
a/ambari-admin/src/main/resources/ui/admin-web/app/views/loginActivities/homeDirectory.html
+++ 
b/ambari-admin/src/main/resources/ui/admin-web/app/views/loginActivities/homeDirectory.html
@@ -71,7 +71,7 @@
         </div>
           <button
               class="btn btn-primary pull-right"
-              ng-click="save()">
+              ng-click="save()" ng-disabled="!(autoCreate && form.$dirty)">
             {{'common.controls.save' | translate}}
           </button>
       </fieldset>

Reply via email to