diff --git a/pom.xml b/pom.xml
index 8874ea7..d2876c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
org.gcube.portlets.admin
- UsersManagementPortlet
+ UsersManagementPortlet-portlet
war
UsersManagement Portlet
UsersManagementPortlet portlet
diff --git a/src/main/webapp/css/Tags.css b/src/main/webapp/css/Tags.css
index 3381338..fa7054f 100644
--- a/src/main/webapp/css/Tags.css
+++ b/src/main/webapp/css/Tags.css
@@ -85,6 +85,7 @@ div#usersManagementPortletContainer textarea#userNamesList {
display : none !important;
}
div#usersManagementPortletContainer textarea#userNamesListInAssignRolesModal,
+div#usersManagementPortletContainer textarea#userNamesListInRemoveRolesModal,
div#usersManagementPortletContainer textarea#userNamesListInAssignUsersToGroupsModal {
width :100% !important;
display : none !important;
diff --git a/src/main/webapp/css/modal.css b/src/main/webapp/css/modal.css
index d490328..9357797 100644
--- a/src/main/webapp/css/modal.css
+++ b/src/main/webapp/css/modal.css
@@ -49,6 +49,7 @@ div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body div
}
div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body label:not(#deleteTheRolesLabel),
div#usersManagementPortletContainer div#assignUsersRolesModal div.modal-body label:not(#deleteTheRolesLabelInAssignRolesModal),
+ div#usersManagementPortletContainer div#removeUsersRolesModal div.modal-body label:not(#deleteTheRolesLabelInAssignRolesModal),
div#usersManagementPortletContainer div#assignUsersToGroupsModal div.modal-body label:not(#deleteTheRolesLabelInAssignUsersToGroupsModal),
#addGroupTeamAttributes label,
#groupTeamAttributes label {
@@ -73,6 +74,7 @@ div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body div
}
div#usersManagementPortletContainer span#textAboveTagsInput div.row,
div#assignUsersRolesModal span#textAboveTagsInputInAssignRolesModal div.row,
+div#removeUsersRolesModal span#textAboveTagsInputInAssignRolesModal div.row,
div#assignUsersToGroupsModal span#textAboveTagsInputInAssignUsersToGroupsModal div.row {
margin-left : 0px;
}
@@ -91,6 +93,7 @@ div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body spa
}
div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body span#textAboveTagsInput div.row:nth-last-child(-n+2) div.text-core.span9,
div#usersManagementPortletContainer div#assignUsersRolesModal div.modal-body span#textAboveTagsInputInAssignRolesModal div.row:last-of-type div.text-core.span9,
+ div#usersManagementPortletContainer div#removeUsersRolesModal div.modal-body span#textAboveTagsInputInAssignRolesModal div.row:last-of-type div.text-core.span9,
div#usersManagementPortletContainer div#assignUsersToGroupsModal div.modal-body span#textAboveTagsInputInAssignUsersToGroupsModal div.row:last-of-type div.text-core.span9 {
border-radius: 0.2em;
border: 1px solid #d1d1d1;
@@ -98,6 +101,7 @@ div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body spa
}
div#usersManagementPortletContainer div#changeUsersRolesModal div.modal-body span#textAboveTagsInput div.row:nth-last-child(-n+2),
div#usersManagementPortletContainer div#assignUsersRolesModal div.modal-body span#textAboveTagsInputInAssignRolesModal div.row:last-of-type,
+div#usersManagementPortletContainer div#removeUsersRolesModal div.modal-body span#textAboveTagsInputInAssignRolesModal div.row:last-of-type,
div#usersManagementPortletContainer div#assignUsersToGroupsModal div.modal-body span#textAboveTagsInputInAssignUsersToGroupsModal div.row:last-of-type {
margin-top: 1.2em;
}
@@ -130,7 +134,8 @@ div#usersManagementPortletContainer textarea#roleList {
display : none !important;
}
-div#usersManagementPortletContainer textarea#roleListInAssignRolesModal {
+div#usersManagementPortletContainer textarea#roleListInAssignRolesModal,
+div#usersManagementPortletContainer textarea#roleListInRemoveRolesModal {
/* margin-left : 10px; */
width : 100% !important;
border-radius : 7px;
diff --git a/src/main/webapp/css/table.css b/src/main/webapp/css/table.css
index c7c434d..82f4b60 100644
--- a/src/main/webapp/css/table.css
+++ b/src/main/webapp/css/table.css
@@ -38,7 +38,7 @@ div#usersManagementPortletContainer table#CurrentUsersTable thead > tr th,
text-transform: capitalize;
}
div#usersManagementPortletContainerSiteTeamsEditMode table#GroupTeamsTableUsers thead > tr th:after
- table#rejectedUsersRequestsTable thead > tr th:after,{
+ table#rejectedUsersRequestsTable thead > tr th:after {
font-weight: normal;
}
div#usersManagementPortletContainer table#CurrentUsersTable thead > tr th:first-of-type,
@@ -84,7 +84,7 @@ div#usersManagementPortletContainer table#CurrentUsersTable,
div#usersManagementPortletContainer table#CurrentUsersTable tr td:first-of-type,
div#usersManagementPortletContainerSiteTeamsEditMode table#GroupTeamsTable tr td:first-of-type,
table#tr:not(.selected):hover td div tr td:first-of-type {
- :white;
+ color:white;
}
.dataTable:not(#GroupTeamsTableUsers) tr td {
cursor: pointer;
@@ -201,7 +201,7 @@ div#usersManagementPortletContainer div.dataTables_info, div.dataTables_length l
div#usersManagementPortletContainerSiteTeamsEditMode div.dataTables_info, div.dataTables_length label, table#GroupTeamsTable > thead > tr > th,
div#usersManagementPortletContainerSiteTeamsEditMode div.dataTables_info, table#GroupTeamsTableUsers > thead > tr > th,
table#rejectedUsersRequestsTable > thead > tr> th {
- color : #0271be; !important
+ color : #0271be !important;
font-weight: normal !important;
padding-left: 3px;
margin-bottom: 0px;
diff --git a/src/main/webapp/css/toolbar.css b/src/main/webapp/css/toolbar.css
index 04a92aa..2226d69 100644
--- a/src/main/webapp/css/toolbar.css
+++ b/src/main/webapp/css/toolbar.css
@@ -44,7 +44,7 @@ div#usersManagementPortletContainer div#userRequestsNotificationsTabletView.noti
div#usersManagementPortletContainer div#userRequestsNotifications:after {
/* content: 'No pending requests'; */
color:#808080;
- font-size 0.8em;
+ font-size: 0.8 em;
}
div#usersManagementPortletContainer div#userRequestsNotifications.notificationsShown {
font-size: 14px;
@@ -257,7 +257,7 @@ div#notificationsNumberPlaceHolder:before {
margin-left: -135px;
position: absolute;
color:#808080;
- font-size 0.8em;
+ font-size: 0.8em;
}
div#notificationsNumberPlaceHolder:hover:before {
cursor: default;
@@ -267,20 +267,20 @@ div#notificationsNumberPlaceHolder:hover:before {
margin-top: 8px;
padding-left: 2px;
color:#808080;
- font-size 0.8em;
+ font-size: 0.8em;
}
#notificationsTextDivTabletView{
padding-top: 3px;
padding-left: 2px;
color:#808080;
- font-size 0.8em;
+ font-size: 0.8em;
}
#notificationsTextDivTabletView{
float: left;
margin-top: 0.9em;
padding-left: 13px;
color:#808080;
- font-size 0.8em;
+ font-size: 0.8em;
}
div#addSiteTeam {
display: inline-block;
diff --git a/src/main/webapp/js/Toolbar.js b/src/main/webapp/js/Toolbar.js
index 3cca78f..17f7bca 100644
--- a/src/main/webapp/js/Toolbar.js
+++ b/src/main/webapp/js/Toolbar.js
@@ -76,14 +76,18 @@ function constructToolbarForCurrentUsersTable(){
id : 'deselectAll',
class: 'insideToolbar',
text : 'Deselect All'
- })).append($('
', {
- id : 'editSelected',
- class: 'insideToolbar',
- text : 'Edit Selected'
+// })).append($('', {
+// id : 'editSelected',
+// class: 'insideToolbar',
+// text : 'Edit Selected'
})).append($('', {
id : 'assignRolesToUser',
class: 'insideToolbar',
text : 'Assign Roles'
+ })).append($('', {
+ id : 'removeRolesToUser',
+ class: 'insideToolbar',
+ text : 'Remove Roles'
})).append($('', {
id : 'assignUsersToGroup',
class: 'insideToolbar',
diff --git a/src/main/webapp/js/tableEvents.js b/src/main/webapp/js/tableEvents.js
index e9088a4..036c283 100644
--- a/src/main/webapp/js/tableEvents.js
+++ b/src/main/webapp/js/tableEvents.js
@@ -153,6 +153,12 @@ function tableEvents() {
$('#userNamesListInAssignRolesModal').textext({
plugins : ' tags'
});
+ $('#userNamesListInRemoveRolesModal').textext({
+ plugins : ' tags'
+ });
+ $('#roleListInRemoveRolesModal').textext({
+ plugins : ' tags'
+ });
$('#userNamesListInAssignUsersToGroupsModal').textext({
plugins : ' tags'
});
@@ -188,6 +194,21 @@ function tableEvents() {
$('#userNamesListInAssignRolesModal').parent().find('a.text-remove').html('')
.removeClass('text-remove').addClass('tag-remove');
});
+
+ $('#userNamesListInRemoveRolesModal').parent().find('div.text-tags').unbind().bind(
+ 'DOMNodeInserted',
+ function(event) {
+ var element = event.target;
+ var tagName = $(element).prop("tagName");
+ if (tagName !== 'DIV')
+ return;
+ // $('#userNamesList').parent().find('div.text-tag').addClass('span4');
+ $('#userNamesListInRemoveRolesModal').parent().find('div.text-button').addClass(
+ 'span12');
+ $('#userNamesListInRemoveRolesModal').parent().find('a.text-remove').html('')
+ .removeClass('text-remove').addClass('tag-remove');
+ });
+
$('#userNamesList').parent().find('div.text-tags').unbind().bind(
'DOMNodeInserted',
function(event) {
@@ -302,7 +323,6 @@ function tableEvents() {
'click', function() {
$(this).closest('.text-tag').remove();
});
- var matched = false;
var tagsTextt = $('#roleListInAssignRolesModal').parent().find(
'div.text-tag.span5');
for (var i = 0; i < tagsTextt.length; i++) {
@@ -313,6 +333,33 @@ function tableEvents() {
}
}
});
+
+ $('#roleListInRemoveRolesModal').parent().find('div.text-tags').off().bind(
+ 'DOMNodeInserted',
+ function(event) {
+ var element = event.target;
+ var tagName = $(element).prop("tagName");
+ if (tagName !== 'DIV')
+ return;
+ // $('#roleList').parent().find('div.text-tag').addClass('span5');
+ $('#roleListInRemoveRolesModal').parent().find('div.text-button').addClass(
+ 'span12');
+ $('#roleListInRemoveRolesModal').parent().find('a.text-remove').html('')
+ .removeClass('text-remove').addClass('tag-remove');
+ $('textarea#roleListInRemoveRolesModal').parent().find('a.tag-remove').off().on(
+ 'click', function() {
+ $(this).closest('.text-tag').remove();
+ });
+ var tagsTextt = $('#roleListInRemoveRolesModal').parent().find(
+ 'div.text-tag.span5');
+ for (var i = 0; i < tagsTextt.length; i++) {
+ for (var j = i + 1; j < tagsTextt.length; j++) {
+ if ($(tagsTextt[i]).text() === $(tagsTextt[j]).text()) {
+ tagsTextt[j].remove();
+ }
+ }
+ }
+ });
displaySiteRolesOnHover();
@@ -486,6 +533,7 @@ function tableEvents() {
usersEmails.push(email.substring(5, email.length - 6));
var userUuid = usersTableDataForEditing[i][0].UserId;
userTableUUIDsForEditing.push(userUuid);
+ console.log(usersEmails);
}
var tags = $('textarea#userNamesListInAssignRolesModal').parent().find(
'div.text-tags div.text-tag');
@@ -505,6 +553,41 @@ function tableEvents() {
$(this).closest('.text-tag').remove();
showCheckBoxForSingleTagInAssignRolesModal();
});
+
+
+ }).on('click', 'div#toolbar.shownToolbar div#removeRolesToUser',
+ function() {
+ $('#removeUsersRolesModal').modal('show');
+ //remove previous tags
+ $('#roleListInRemoveRolesModal').parent().find('.text-tag').remove();
+ currentUsersTableRows = [];
+ var usersEmails = [];
+ for (var i = 0; i < usersTableDataForEditing.length; i++) {
+ var email = usersTableDataForEditing[i][0].Email;
+ currentUsersTableRows
+ .push(usersTableDataForEditing[i].rowIndex);
+ usersEmails.push(email.substring(5, email.length - 6));
+ var userUuid = usersTableDataForEditing[i][0].UserId;
+ userTableUUIDsForEditing.push(userUuid);
+ }
+ var tags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
+ 'div.text-tags div.text-tag');
+ if (tags.length > 0)
+ tags.remove();// Remove previous tags
+ $('textarea#userNamesListInRemoveRolesModal').textext()[0].tags().addTags(
+ usersEmails);
+
+ for (var j = 0; j < userTableUUIDsForEditing.length; j++) {
+ var value = userTableUUIDsForEditing[j].toString();
+ $($('#userNamesListInRemoveRolesModal').parent().find('.text-tag')[j]).data(
+ 'userUUID', value.substring(5, value.length - 6));
+ }
+ showCheckBoxForSingleTagInRemoveRolesModal();
+ $('textarea#userNamesListInRemoveRolesModal').parent().find('a.tag-remove').off()
+ .on('click', function() {
+ $(this).closest('.text-tag').remove();
+ showCheckBoxForSingleTagInAssignRolesModal();
+ });
}).on('click', 'div#toolbar.shownToolbar div#assignUsersToGroup',
function() {
@@ -652,6 +735,27 @@ function tableEvents() {
deletePreviousRoles = false;
}
}
+
+ function showCheckBoxForSingleTagInRemoveRolesModal() {
+ var currentTags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
+ 'div.text-tags div.text-tag');
+ // appendCheckboxHere.append($('
')).append(labelForSingleTag).append(checkBoxForSingleTag);
+ if (currentTags.length == 1) {
+ $('div#singleTagSectionInAssignRolesModal').removeClass('hiddenSection');
+ $('div#multipleTagsSectionInAssignRolesModal').addClass('hiddenSection');
+ displayRolesForSingleUserInRemoveRolesModal();
+ } else {
+ $('div#singleTagSectionInAssignRolesModal').addClass('hiddenSection');
+ $('div#multipleTagsSectionInAssignRolesModal').removeClass('hiddenSection');
+ }
+ if (!$('#singleTagSectionInAssignRolesModal').hasClass('hiddenSection')) {
+ deletePreviousRoles = $('#singleTagInAssignRolesModal').prop('checked');
+ $('#singleTagInAssignRolesModal').prop('checked', false);
+ } else {
+ deletePreviousRoles = false;
+ }
+ }
+
function displayRolesForSingleUserInAssignRolesModal() {
@@ -666,6 +770,21 @@ function tableEvents() {
$('textarea#roleListInAssignRolesModal').textext()[0].tags().addTags(rolesArray);
}
}
+
+ function displayRolesForSingleUserInRemoveRolesModal() {
+
+ var singleRow = $('table#CurrentUsersTable tbody tr.selected')[0];
+ var table = $('table#CurrentUsersTable');
+ var roles = table.dataTable().fnGetData(singleRow).Roles;
+ var teams = table.dataTable().fnGetData(singleRow).Teams;
+ var teamsText = $(teams).text();
+ var rolesText = $(roles).text();//roles is an HTML element, not a jquery one
+ if(rolesText !== "-"){//"-" means no role
+ var rolesArray = rolesText.split(",");
+ $('textarea#roleListInRemoveRolesModal').textext()[0].tags().addTags(rolesArray);
+ }
+ }
+
function showCheckBoxForSingleTagInAssignUsersToGroupsModal() {
var currentTags = $('textarea#userNamesListInAssignUsersToGroupsModal').parent().find(
@@ -1040,6 +1159,7 @@ function tableEvents() {
fetchAllCurrentUsers(mode, deleteUsers, ajaxData, roles, teams, deletePreviousRoles2, [], false, ASSIGN_ROLES_TO_USERS);
$('table#CurrentUsersTable tr.selected').removeClass('selected');
$('#assignUsersRolesModal').modal('hide');
+ $('#removeUsersRolesModal').modal('hide');
// $('div#toolbar').addClass('hiddenToolbar').removeClass('shownToolbar');
$('span#numOfSelLectedRows').text('');
$('#CurrentUsersTable th:first').removeClass('none');
diff --git a/src/main/webapp/views/usersManagement.jsp b/src/main/webapp/views/usersManagement.jsp
index cf0e098..05ac888 100644
--- a/src/main/webapp/views/usersManagement.jsp
+++ b/src/main/webapp/views/usersManagement.jsp
@@ -206,13 +206,13 @@
-
+