-
+
Username | Role | Operation |
-
+
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 26aa15024..cbd343255 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
@@ -9,9 +9,9 @@
function mockupProjectMembers() {
var projectMembers = [
- {'id': '1', 'username': 'user1', 'roleId': '1'},
- {'id': '2', 'username': 'user2', 'roleId': '3'},
- {'id': '3', 'username': 'user3', 'roleId': '2'}
+ {'id': '1', 'username': 'user1', 'roleId': '1', 'project_id': '5'},
+ {'id': '2', 'username': 'user2', 'roleId': '3', 'project_id': '5'},
+ {'id': '3', 'username': 'user3', 'roleId': '2', 'project_id': '5'}
];
return projectMembers;
}
@@ -22,9 +22,16 @@
var vm = this;
vm.isOpen = false;
- vm.addMember = addMember;
+ vm.username = "";
- function addMember() {
+ vm.search = search;
+ vm.addProjectMember = addProjectMember;
+
+ function search(e) {
+ console.log("search for:" + e.username);
+ }
+
+ function addProjectMember() {
if(vm.isOpen) {
vm.isOpen = false;
}else{
diff --git a/static/ng/resources/js/components/project-member/project-member.config.js b/static/ng/resources/js/components/project-member/project-member.config.js
new file mode 100644
index 000000000..d94b671ab
--- /dev/null
+++ b/static/ng/resources/js/components/project-member/project-member.config.js
@@ -0,0 +1,33 @@
+(function() {
+
+ 'use strict';
+
+ angular
+ .module('harbor.project.member')
+ .constant('roles', roles)
+ .factory('getRoleById', getRoleById);
+
+ function roles() {
+ return [
+ {'id': '1', 'name': 'Project Admin'},
+ {'id': '2', 'name': 'Developer'},
+ {'id': '3', 'name': 'Guest'}
+ ];
+ }
+
+ getRoleById.$inject = ['roles'];
+
+ function getRoleById(roles) {
+ var r = roles();
+ return getRole;
+ function getRole(roleId) {
+
+ for(var i = 0; i < r.length; i++) {
+ var role = r[i];
+ if(role.id == roleId) {
+ return role;
+ }
+ }
+ }
+ }
+})();
\ No newline at end of file
diff --git a/static/ng/resources/js/components/details/switch-roles.directive.html b/static/ng/resources/js/components/project-member/switch-role.directive.html
similarity index 100%
rename from static/ng/resources/js/components/details/switch-roles.directive.html
rename to static/ng/resources/js/components/project-member/switch-role.directive.html
diff --git a/static/ng/resources/js/components/project-member/switch-role.directive.js b/static/ng/resources/js/components/project-member/switch-role.directive.js
new file mode 100644
index 000000000..e62f486a3
--- /dev/null
+++ b/static/ng/resources/js/components/project-member/switch-role.directive.js
@@ -0,0 +1,41 @@
+(function() {
+
+ 'use strict';
+
+ angular
+ .module('harbor.project.member')
+ .directive('switchRole', switchRole);
+
+ SwitchRoleController.$inject = ['getRoleById'];
+
+ function SwitchRoleController(getRoleById) {
+ var vm = this;
+
+ vm.currentRole = getRoleById(vm.roleId);
+ vm.selectRole = selectRole;
+
+ function selectRole(role) {
+ vm.currentRole = getRoleById(role.id);
+ vm.roleId = role.id;
+ }
+
+ }
+
+ function switchRole() {
+ var directive = {
+ 'restrict': 'E',
+ 'templateUrl': '/static/ng/resources/js/components/project-member/switch-role.directive.html',
+ 'scope': {
+ 'roles': '=',
+ 'editMode': '=',
+ 'userId': '=',
+ 'roleId': '='
+ },
+ 'controller' : SwitchRoleController,
+ 'controllerAs': 'vm',
+ 'bindToController': true
+ };
+ return directive;
+ }
+
+})();
\ No newline at end of file
diff --git a/views/ng/sections/headerInclude.htm b/views/ng/sections/headerInclude.htm
index eeba4e8f7..911f08903 100644
--- a/views/ng/sections/headerInclude.htm
+++ b/views/ng/sections/headerInclude.htm
@@ -56,8 +56,10 @@
+
+
@@ -73,18 +75,21 @@
-
-
+
+
+
+
+