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/branch-dev-patch-upgrade 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>