From 09db2d04d0bfd47da6eae8aab39649e63558bbe3 Mon Sep 17 00:00:00 2001 From: kunw Date: Fri, 20 May 2016 17:43:47 +0800 Subject: [PATCH] updates for cookies storage processing, and other refinements. --- .../details/retrieve-projects.directive.js | 7 +--- .../optional-menu.directive.html | 23 ++++++----- .../optional-menu/optional-menu.directive.js | 29 +++++++------- .../edit-project-member.directive.js | 5 --- .../list-project-member.directive.html | 2 +- .../list-project-member.directive.js | 21 +++------- .../repository/list-repository.directive.js | 7 +--- .../components/sign-in/sign-in.directive.html | 6 +-- static/ng/resources/js/harbor.data.js | 38 ++++++++++--------- .../js/layout/details/details.controller.js | 16 +++----- .../navigation/navigation-header.directive.js | 24 ++++++------ .../project-member.controller.js | 4 +- .../js/layout/project/project.controller.js | 8 ++-- .../js/session/session.current-user.js | 24 +++++++----- views/ng/project.htm | 2 +- views/ng/sections/header-content.htm | 2 +- views/ng/sections/header-include.htm | 12 +++--- 17 files changed, 103 insertions(+), 127 deletions(-) diff --git a/static/ng/resources/js/components/details/retrieve-projects.directive.js b/static/ng/resources/js/components/details/retrieve-projects.directive.js index 5c9779a3d..8d41385a6 100644 --- a/static/ng/resources/js/components/details/retrieve-projects.directive.js +++ b/static/ng/resources/js/components/details/retrieve-projects.directive.js @@ -20,8 +20,6 @@ } vm.retrieve = retrieve; - vm.retrieve(); - vm.checkProjectMember = checkProjectMember; $scope.$watch('vm.selectedProject', function(current, origin) { @@ -34,7 +32,7 @@ vm.selectItem = selectItem; $scope.$watch('vm.publicity', function(current, origin) { - vm.publicity = current ? 1 : 0; + vm.publicity = current ? true : false; vm.isPublic = vm.publicity ? 1 : 0; vm.projectType = (vm.isPublic === 1) ? 'public_projects' : 'my_projects'; vm.retrieve(); @@ -65,9 +63,8 @@ } }); } - - $location.search('project_id', vm.selectedProject.ProjectId); vm.checkProjectMember(vm.selectedProject.ProjectId); + $location.search('project_id', vm.selectedProject.ProjectId); vm.resultCount = vm.projects.length; $scope.$watch('vm.filterInput', function(current, origin) { diff --git a/static/ng/resources/js/components/optional-menu/optional-menu.directive.html b/static/ng/resources/js/components/optional-menu/optional-menu.directive.html index 287b607c2..4f88d21b5 100644 --- a/static/ng/resources/js/components/optional-menu/optional-menu.directive.html +++ b/static/ng/resources/js/components/optional-menu/optional-menu.directive.html @@ -1,16 +1,6 @@ - - + \ No newline at end of file diff --git a/static/ng/resources/js/components/optional-menu/optional-menu.directive.js b/static/ng/resources/js/components/optional-menu/optional-menu.directive.js index a490b5e8d..e3583afb8 100644 --- a/static/ng/resources/js/components/optional-menu/optional-menu.directive.js +++ b/static/ng/resources/js/components/optional-menu/optional-menu.directive.js @@ -6,15 +6,24 @@ .module('harbor.optional.menu') .directive('optionalMenu', optionalMenu); - OptionalMenuController.$inject = ['$scope', '$window', '$cookies', 'I18nService', 'LogOutService']; + OptionalMenuController.$inject = ['$window', 'I18nService', 'LogOutService', 'currentUser', '$timeout']; - function OptionalMenuController($scope, $window, $cookies, I18nService, LogOutService) { + function OptionalMenuController($window, I18nService, LogOutService, currentUser, $timeout) { var vm = this; + vm.currentLanguage = I18nService().getCurrentLanguage(); - vm.setLanguage = setLanguage; vm.languageName = I18nService().getLanguageName(vm.currentLanguage); console.log('current language:' + I18nService().getCurrentLanguage()); - + + vm.isLoggedIn = false; + $timeout(function() { + vm.user = currentUser.get(); + if(angular.isDefined(vm.user)) { + vm.isLoggedIn = true; + } + }); + + vm.setLanguage = setLanguage; vm.logOut = logOut; function setLanguage(name) { @@ -28,6 +37,7 @@ .error(logOutFailed); } function logOutSuccess(data, status) { + currentUser.unset(); $window.location.href= '/ng'; } function logOutFailed(data, status) { @@ -39,23 +49,12 @@ var directive = { 'restrict': 'E', 'templateUrl': '/static/ng/resources/js/components/optional-menu/optional-menu.directive.html', - 'link': link, 'scope': true, 'controller': OptionalMenuController, 'controllerAs': 'vm', 'bindToController': true }; return directive; - function link(scope, element, attrs, ctrl) { - ctrl.isLoggedIn = false; - scope.$on('currentUser', function(e, val) { - if(val != null) { - ctrl.isLoggedIn = true; - ctrl.username = val.username; - } - scope.$apply(); - }); - } } })(); \ No newline at end of file diff --git a/static/ng/resources/js/components/project-member/edit-project-member.directive.js b/static/ng/resources/js/components/project-member/edit-project-member.directive.js index 752a9db6e..fc1a1626d 100644 --- a/static/ng/resources/js/components/project-member/edit-project-member.directive.js +++ b/static/ng/resources/js/components/project-member/edit-project-member.directive.js @@ -74,16 +74,11 @@ 'projectId': '=', 'reload': '&' }, - 'link': link, 'controller': EditProjectMemberController, 'controllerAs': 'vm', 'bindToController': true }; return directive; - - function link(scope, element, attrs, ctrl) { - - } } })(); \ No newline at end of file diff --git a/static/ng/resources/js/components/project-member/list-project-member.directive.html b/static/ng/resources/js/components/project-member/list-project-member.directive.html index 857dbe71d..e126cdc90 100644 --- a/static/ng/resources/js/components/project-member/list-project-member.directive.html +++ b/static/ng/resources/js/components/project-member/list-project-member.directive.html @@ -18,7 +18,7 @@ // 'username' | tr //// 'role' | tr //// 'operation' | tr // - + diff --git a/static/ng/resources/js/components/project-member/list-project-member.directive.js b/static/ng/resources/js/components/project-member/list-project-member.directive.js index 42bb95485..c07c666c1 100644 --- a/static/ng/resources/js/components/project-member/list-project-member.directive.js +++ b/static/ng/resources/js/components/project-member/list-project-member.directive.js @@ -10,24 +10,19 @@ function ListProjectMemberController($scope, ListProjectMemberService, $routeParams, currentUser) { var vm = this; - - - vm.isOpen = false; - + + vm.isOpen = false; vm.search = search; vm.addProjectMember = addProjectMember; vm.retrieve = retrieve; - vm.projectId = $routeParams.project_id; vm.username = ""; - vm.currentUser = {}; - + vm.retrieve(); function search(e) { vm.projectId = e.projectId; vm.username = e.username; - console.log('project_id:' + e.projectId); retrieve(); } @@ -46,7 +41,7 @@ } function getProjectMemberComplete(response) { - vm.currentUser = currentUser.get(); + vm.user = currentUser.get(); vm.projectMembers = response.data; } @@ -62,17 +57,11 @@ templateUrl: '/static/ng/resources/js/components/project-member/list-project-member.directive.html', replace: true, scope: true, - link: link, controller: ListProjectMemberController, controllerAs: 'vm', bindToController: true - } - + } return directive; - - function link(scope, element, attrs, ctrl) { - - } } })(); \ No newline at end of file diff --git a/static/ng/resources/js/components/repository/list-repository.directive.js b/static/ng/resources/js/components/repository/list-repository.directive.js index cc010bf70..e3362117c 100644 --- a/static/ng/resources/js/components/repository/list-repository.directive.js +++ b/static/ng/resources/js/components/repository/list-repository.directive.js @@ -95,18 +95,13 @@ restrict: 'E', templateUrl: '/static/ng/resources/js/components/repository/list-repository.directive.html', replace: true, - link: 'link', controller: ListRepositoryController, controllerAs: 'vm', bindToController: true } return directive; - - function link(scope, element, attrs, ctrl) { - - } - + } })(); \ No newline at end of file diff --git a/static/ng/resources/js/components/sign-in/sign-in.directive.html b/static/ng/resources/js/components/sign-in/sign-in.directive.html index f7e49a24b..4b62997ab 100644 --- a/static/ng/resources/js/components/sign-in/sign-in.directive.html +++ b/static/ng/resources/js/components/sign-in/sign-in.directive.html @@ -1,7 +1,7 @@
- +
// 'username_is_required' | tr // @@ -11,7 +11,7 @@
- +
// 'password_is_required' | tr // @@ -23,7 +23,7 @@
- +
diff --git a/static/ng/resources/js/harbor.data.js b/static/ng/resources/js/harbor.data.js index e06481ea6..30f977df7 100644 --- a/static/ng/resources/js/harbor.data.js +++ b/static/ng/resources/js/harbor.data.js @@ -1,36 +1,40 @@ (function() { + 'use strict'; + angular - .module('harbor.app') + .module('harbor.app') .factory('currentUser', currentUser) - .factory('projectMember', projectMember); - - function currentUser() { - var currentUser; + .factory('currentProjectMember', currentProjectMember); + + currentUser.$inject = ['$cookies', '$timeout']; + + function currentUser($cookies, $timeout) { return { set: function(user) { - currentUser = user; - console.log('set currentUser:' + currentUser); + $cookies.putObject('user', user, {'path': '/'}); }, get: function() { - console.log('get currentUser:' + currentUser); - return currentUser; + return $cookies.getObject('user'); + }, + unset: function() { + $cookies.remove('user', {'path': '/'}); } } } - function projectMember() { - var projectMember; + currentProjectMember.$inject = ['$cookies']; + + function currentProjectMember($cookies) { return { set: function(member) { - projectMember = member; - console.log('set projectMember:'); - console.log(projectMember); + $cookies.putObject('member', member, {'path': '/'}); }, get: function() { - console.log('get projectMember:'); - console.log(projectMember); - return projectMember; + return $cookies.getObject('member'); + }, + unset: function() { + $cookies.remove('member', {'path': '/'}); } } } diff --git a/static/ng/resources/js/layout/details/details.controller.js b/static/ng/resources/js/layout/details/details.controller.js index c414a4ad0..096e009f0 100644 --- a/static/ng/resources/js/layout/details/details.controller.js +++ b/static/ng/resources/js/layout/details/details.controller.js @@ -5,23 +5,17 @@ angular .module('harbor.details') .controller('DetailsController', DetailsController); - - DetailsController.$inject = ['$scope', '$location', '$routeParams']; - - function DetailsController($scope, $location, $routeParams) { + + function DetailsController() { var vm = this; - vm.isOpen = false; + vm.publicity = false; - vm.isProjectMember = true; - vm.closeRetrievePane = closeRetrievePane; + vm.isProjectMember = false; + vm.togglePublicity = togglePublicity; - function closeRetrievePane() { - $scope.$broadcast('isOpen', false); - } function togglePublicity(e) { vm.publicity = e.publicity; - console.log('current project publicity:' + vm.publicity); } } diff --git a/static/ng/resources/js/layout/navigation/navigation-header.directive.js b/static/ng/resources/js/layout/navigation/navigation-header.directive.js index ccf371a27..34a1b7d0b 100644 --- a/static/ng/resources/js/layout/navigation/navigation-header.directive.js +++ b/static/ng/resources/js/layout/navigation/navigation-header.directive.js @@ -6,22 +6,24 @@ .module('harbor.layout.navigation') .directive('navigationHeader', navigationHeader); - NavigationHeaderController.$inject = ['$window', '$scope']; + NavigationHeaderController.$inject = ['$window', '$scope', 'currentUser', '$timeout']; - function NavigationHeaderController($window, $scope) { + function NavigationHeaderController($window, $scope, currentUser, $timeout) { var vm = this; - vm.url = $window.location.pathname; - vm.isAdmin = false; + vm.isShow = false; - $scope.$on('currentUser', function(e, val) { - if(val) { - vm.isShow = true; + vm.isAdmin = false; + + $timeout(function() { + vm.user = currentUser.get(); + if(angular.isDefined(vm.user)) { + vm.isShow = true; + if(vm.user.HasAdminRole === 1) { + vm.isAdmin = true; + } } - if(val.HasAdminRole === 1) { - vm.isAdmin = true; - } - $scope.$apply(); }); + vm.url = $window.location.pathname; } function navigationHeader() { diff --git a/static/ng/resources/js/layout/project-member/project-member.controller.js b/static/ng/resources/js/layout/project-member/project-member.controller.js index 9d55143ae..ec977697d 100644 --- a/static/ng/resources/js/layout/project-member/project-member.controller.js +++ b/static/ng/resources/js/layout/project-member/project-member.controller.js @@ -5,9 +5,7 @@ angular .module('harbor.layout.project.member') .controller('ProjectMemberController', ProjectMemberController); - - ProjectMemberController.$inject = ['$scope']; - + function ProjectMemberController($scope) { } diff --git a/static/ng/resources/js/layout/project/project.controller.js b/static/ng/resources/js/layout/project/project.controller.js index d6f8334ba..3ed2d3df4 100644 --- a/static/ng/resources/js/layout/project/project.controller.js +++ b/static/ng/resources/js/layout/project/project.controller.js @@ -6,9 +6,9 @@ .module('harbor.layout.project') .controller('ProjectController', ProjectController); - ProjectController.$inject = ['$scope', 'ListProjectService']; + ProjectController.$inject = ['$scope', 'ListProjectService', '$timeout', 'currentUser']; - function ProjectController($scope, ListProjectService) { + function ProjectController($scope, ListProjectService, $timeout, currentUser) { var vm = this; vm.isOpen = false; @@ -21,8 +21,8 @@ vm.showAddButton = showAddButton; vm.togglePublicity = togglePublicity; - $scope.$on('currentUser', function(e, val) { - vm.currentUser = val; + $timeout(function() { + vm.user = currentUser.get(); }); vm.retrieve(); diff --git a/static/ng/resources/js/session/session.current-user.js b/static/ng/resources/js/session/session.current-user.js index 6eca53aa0..9f92b6751 100644 --- a/static/ng/resources/js/session/session.current-user.js +++ b/static/ng/resources/js/session/session.current-user.js @@ -12,28 +12,32 @@ var vm = this; - CurrentUserService() - .then(getCurrentUserComplete) - .catch(getCurrentUserFailed); + if(!angular.isDefined(currentUser.get())) { + CurrentUserService() + .then(getCurrentUserComplete) + .catch(getCurrentUserFailed); + } function getCurrentUserComplete(response) { - console.log('Successful logged in.'); - $timeout(function(){ - $scope.$broadcast('currentUser', response.data); - currentUser.set(response.data); - }, 50); + currentUser.set(response.data); } function getCurrentUserFailed(e){ var url = location.pathname; - var exclusions = ['/ng', '/ng/forgot_password', '/ng/sign_up', '/ng/reset_password', '/ng/search', '/ng/repository']; + var exclusions = [ + '/ng', + '/ng/forgot_password', + '/ng/sign_up', + '/ng/reset_password', + '/ng/search' + ]; for(var i = 0; i < exclusions.length; i++) { if(exclusions[i]===url) { return; } } $window.location.href = '/ng'; - } + } } })(); \ No newline at end of file diff --git a/views/ng/project.htm b/views/ng/project.htm index 9612f9096..1b2639680 100644 --- a/views/ng/project.htm +++ b/views/ng/project.htm @@ -35,7 +35,7 @@ N/A N/A //p.CreationTime | dateL : 'YYYY-MM-DD HH:mm:ss'// - + diff --git a/views/ng/sections/header-content.htm b/views/ng/sections/header-content.htm index d58076dec..e0392623f 100644 --- a/views/ng/sections/header-content.htm +++ b/views/ng/sections/header-content.htm @@ -10,7 +10,7 @@