function surroundObjectPropWithDiv(object){ for(var prop in object){ if(object[prop] instanceof Date)continue; if(object[prop].length === 0)object[prop] = "-"; if(object[prop] === '123')object[prop] = ""; if(Array.isArray(object[prop]) && object[prop].length > 0){ var variable = ""; for(var i = 0; i < object[prop].length; i++){ if(i===object[prop].length-1){ variable += object[prop][i]; }else{ variable += object[prop][i] + ", "; } } object[prop] = variable; } object[prop] = '
' + object[prop] + '
'; } return object; } function AJAX_CALL_POST(theData, callBack){ $.ajax( { url: loginURL, type: 'post', datatype:'json', data: theData, success: function(data){ callBack(data); removeArrowFromFirstTableColumn(); // hideTeamManagementToolbar(); hidePreloader(); }, error: function (xhr, ajaxOptions, thrownError) { $('div.modal.fade').modal('hide'); hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); // alert(xhr.status); // alert(thrownError); } } ); } function dataToBeSendViaAJAX(fieldName, value, theObject){ var returnObject; if(typeof theObject === "object"){ returnObject = theObject; }else { returnObject = {}; } returnObject[nameSpace + fieldName] = value; return returnObject; } function fetchAllCurrentUsers(mode, deleteUsers, usersUUIDs, roles, teams, deleteRoles, reqIDs, sendEmail, typeOfChangesUpponUserMode){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("currentUsersTable", true, theData); theData = dataToBeSendViaAJAX("deleteUsersFromCurrentUsersTable", deleteUsers, theData); theData = dataToBeSendViaAJAX("sendDismissalEmail", sendEmail, theData); theData = dataToBeSendViaAJAX("selectedUsers", usersUUIDs, theData); theData = dataToBeSendViaAJAX("usersRoles", roles, theData); theData = dataToBeSendViaAJAX("usersTeams", teams, theData); theData = dataToBeSendViaAJAX("modeCurrentUsersTable", mode, theData); theData = dataToBeSendViaAJAX("deletePreviousRoles", deleteRoles, theData); theData = dataToBeSendViaAJAX("membershipRequestsIDs", reqIDs, theData); theData = dataToBeSendViaAJAX("typeOfChangesUpponUserMode", typeOfChangesUpponUserMode, theData); var callBack = function(data){ var content= JSON.parse(data); currentUsers = []; currentUsers = content.currentUsers; if(!$.isEmptyObject(content)){ for(var i = 0; i < currentUsers.length; i++){ currentUsers[i] = new currentUsersObjectForDataTable( '', currentUsers[i].userName, currentUsers[i].userEmail, currentUsers[i].userFullName, currentUsers[i].userSiteRoles, currentUsers[i].userTeams, currentUsers[i].userId, currentUsers[i].requestDate, currentUsers[i].validationDate, currentUsers[i].reqID, currentUsers[i].isSelf, currentUsers[i].RequestDateObject, currentUsers[i].ValidationDateObject ); currentUsers[i] = surroundObjectPropWithDiv(currentUsers[i]); } $('table#CurrentUsersTable').DataTable().clear(); for(var i = 0; i < currentUsers.length; i++){ $('table#CurrentUsersTable').dataTable().fnAddData(currentUsers[i]); } $('table#CurrentUsersTable th:first').removeClass('none'); if(CurrentUsersTablePages <= 1){ $('#CurrentUsersTable_paginate').addClass('hidden'); }else{ $('#CurrentUsersTable_paginate').removeClass('hidden'); } var isDataTable = $.fn.DataTable.isDataTable( '#GroupTeamsTable' ); // var siteTeamsTableDataLenght = $('#GroupTeamsTable').dataTable().fnGetData().length; if(mode !== 2 && isDataTable){//refresh fetchAllSiteTeamsForTheCurrentGroup(); }else if(mode !== 2 && !isDataTable){ initializeGroupTeamsTable(); fetchAllSiteTeamsForTheCurrentGroup(); searchInputFixForSiteTeamsEditTable(); siteTeamsTableEvents(); constructToolbarForSiteTeamsTable(); initializeSiteTeamUsersTable(); searchInputFixForSiteTeamsUsersTable(); setTimeout(function(){//If you don't add some time interval, the table won't redraw when you press the tab $('table#GroupTeamsTable').DataTable().columns.adjust().draw(); $('table#GroupTeamsTable').DataTable().columns.adjust().responsive.recalc(); removeArrowFromFirstTableColumn(); },200); $('.unhit').removeClass('unhit').addClass('redraw'); $('li.redraw').on('click', function(){ setTimeout(function(){//If you don't add some time interval, the table won't redraw when you press the tab $('table#GroupTeamsTable').DataTable().columns.adjust().draw(); $('table#GroupTeamsTable').DataTable().columns.adjust().responsive.recalc(); removeArrowFromFirstTableColumn(); },200); $(this).removeClass('redraw'); }); } } else { hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } }; AJAX_CALL_POST(theData, callBack); } function fetchAllUsersRequests(mode, reqIDs, replyUserId, sendCustomRejectionEmail, CustomRejectionEmailBody){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchUsersRequests", true, theData); theData = dataToBeSendViaAJAX("modeMembershipRequestsTable", mode, theData); theData = dataToBeSendViaAJAX("membershipRequestsIds", reqIDs, theData); theData = dataToBeSendViaAJAX("managerId", replyUserId, theData); theData = dataToBeSendViaAJAX("CustomRejectionEmailFromAdmin", sendCustomRejectionEmail, theData); theData = dataToBeSendViaAJAX("CustomRejectionEmailBodyFromAdmin", CustomRejectionEmailBody, theData); var callBack = function(data){ var content= JSON.parse(data); currentUsersRequests = []; currentUsersRequests = content.currentUsersRequests; if(!$.isEmptyObject(content) && content !== null && content.currentUsersRequests.length!== 0){ for(var i = 0; i < currentUsersRequests.length; i++){ currentUsersRequests[i] = new usersRequestObjectForDataTable( '', currentUsersRequests[i].userName, currentUsersRequests[i].userEmail, currentUsersRequests[i].userFullName, currentUsersRequests[i].requestComments, currentUsersRequests[i].userId, currentUsersRequests[i].requestId, currentUsersRequests[i].requestDate, currentUsersRequests[i].requestDateObject ); currentUsersRequests[i] = surroundObjectPropWithDiv(currentUsersRequests[i]); } $('table#usersRequestsTable').DataTable().clear(); for(var i = 0; i < currentUsersRequests.length; i++){ $('table#usersRequestsTable').dataTable().fnAddData(currentUsersRequests[i]); } $('table#usersRequestsTable th:first').removeClass('none'); $('div#usersRequestsTableToolbarContainer').animate({height:'hide'}); $('div#usersRequestsTableToolbarContainer').removeClass('openToolbar'); if(UsersRequestsTablePages <= 1){ $('#usersRequestsTable_paginate').addClass('hidden'); }else{ $('#usersRequestsTable_paginate').removeClass('hidden'); } countUsersMembershipRequests(); // $('div#usersRequestsTableToolbarContainer').addClass('hiddenToolbar').removeClass('shownToolbar'); $('span#numOfSelectedRowsUserReqs').text(''); } else if(content.currentUsersRequests.length === 0) { $('#notificationsNumberPlaceHolder').text(0); $('#notificationsNumberPlaceHolderTabletView').text(0); } else if(content === null) { hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } fetchAllCurrentUsers(2, false, [], [], [], false, [], false); } AJAX_CALL_POST(theData, callBack); } function fetchAllRejectedUsersRequests() { var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchUsersRejectedRequests", true, theData); // theData = dataToBeSendViaAJAX("membershipRequestsIds", reqIDs, theData); var callback = function(data){ var content= JSON.parse(data); var rejectedUsersRequests = []; rejectedUsersRequests = content.currentUsersRequests; if(!$.isEmptyObject(content) && content !== null && content.currentUsersRequests.length!== 0){ for(var i = 0; i < rejectedUsersRequests.length; i++){ rejectedUsersRequests[i] = new rejectedUsersRequestObjectForDataTable( '', rejectedUsersRequests[i].userName, rejectedUsersRequests[i].userEmail, rejectedUsersRequests[i].userFullName, rejectedUsersRequests[i].requestComments, rejectedUsersRequests[i].userId, rejectedUsersRequests[i].requestId, rejectedUsersRequests[i].requestDate, rejectedUsersRequests[i].rejectionDate, rejectedUsersRequests[i].requestDateObject, rejectedUsersRequests[i].rejectionDateObject ); rejectedUsersRequests[i] = surroundObjectPropWithDiv(rejectedUsersRequests[i]); } $('table#rejectedUsersRequestsTable').DataTable().clear(); for(var i = 0; i < rejectedUsersRequests.length; i++){ $('table#rejectedUsersRequestsTable').dataTable().fnAddData(rejectedUsersRequests[i]); } // $('table#rejectedUsersRequestsTable th:first').removeClass('none'); // $('div#usersRequestsTableToolbarContainer').animate({height:'hide'}); // $('div#usersRequestsTableToolbarContainer').removeClass('openToolbar'); var numOfTablePages = $('#rejectedUsersRequestsTable').DataTable().page.info().pages; if(numOfTablePages <= 1){ $('#rejectedUsersRequestsTable_paginate').addClass('hidden'); }else{ $('#rejectedUsersRequestsTable_paginate').removeClass('hidden'); } countUsersMembershipRequests(); // $('div#usersRequestsTableToolbarContainer').addClass('hiddenToolbar').removeClass('shownToolbar'); // $('span#numOfSelectedRowsUserReqs').text(''); } else if(content.currentUsersRequests.length === 0) { // $('#notificationsNumberPlaceHolder').text(0); // $('#notificationsNumberPlaceHolderTabletView').text(0); } else if(content === null) { hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } // fetchAllCurrentUsers(2, false, [], [], [], false, [], false); } AJAX_CALL_POST(theData, callback); } function countUsersMembershipRequests(){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("countUsersMembershipRequests", true, theData); var callBack = function(data){ var content= JSON.parse(data); if(!$.isEmptyObject(content) && content !== null){ $('#notificationsNumberPlaceHolder').text(content.countUsersMembershipRequests[0]); $('#notificationsNumberPlaceHolderTabletView').text(content.countUsersMembershipRequests[0]); portalName = content.countUsersMembershipRequests[1];//retrieving the portal name from the backend via ajax }else if(content === null) { hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } }; AJAX_CALL_POST(theData, callBack); } function fetchAllSiteTeamsForTheCurrentGroup(){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchAllSiteTeamsForTheCurrentGroup", true, theData); theData = dataToBeSendViaAJAX("modeSiteTeams", SITE_TEAMS_TABLE_REFRESH, theData); var callBack = function(data){ var content= JSON.parse(data); var siteTeams = []; siteTeams = content.siteTeams; if(!$.isEmptyObject(content) && content !== null && siteTeams.length!== 0){ var teams = []; for(var i = 0; i < siteTeams.length; i++){ siteTeams[i] = new siteTeamsObjectForDataTable( '', siteTeams[i].Name, siteTeams[i].TeamID, siteTeams[i].Description, siteTeams[i].NumberOfUsers, siteTeams[i].CreationDate, siteTeams[i].LastModificationDate, siteTeams[i].CreatorName, siteTeams[i].siteTeamUsers, siteTeams[i].CreationDateObject, siteTeams[i].LastModificationDateObject ); teams.push(siteTeams[i].Name); siteTeams[i].siteTeamUsers = formatSiteTeamUsers(siteTeams[i].siteTeamUsers); siteTeams[i] = surroundObjectPropWithDiv(siteTeams[i]); } teamEditedOrDeleted(teams); $('table#GroupTeamsTable').DataTable().clear(); for(var i = 0; i < siteTeams.length; i++){ $('table#GroupTeamsTable').dataTable().fnAddData(siteTeams[i]); } if(GroupTeamsTablePages <= 1){ $('#GroupTeamsTable_paginate').addClass('hidden'); } else if(siteTeams.length === 0){ $('#GroupTeamsTable_paginate').addClass('hidden'); } }else if(content === null) { hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); }else if(siteTeams.length === 0){ $('#GroupTeamsTable_paginate').removeClass('hidden'); } if(!handlersAppliedToToolbarForFirstTime){ siteTeamsToolbarEvents(); } }; AJAX_CALL_POST(theData, callBack); } function EditSiteTeamsForTheCurrentGroup(siteTeamName, siteTeamDescription, TeamID){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchAllSiteTeamsForTheCurrentGroup", true, theData); theData = dataToBeSendViaAJAX("modeSiteTeams", SITE_TEAMS_TABLE_EDIT_GROUP, theData); theData = dataToBeSendViaAJAX("siteTeamName", siteTeamName, theData); theData = dataToBeSendViaAJAX("siteTeamDescription", siteTeamDescription, theData); theData = dataToBeSendViaAJAX("siteTeamID", TeamID, theData); var callBack = function(data){ var content= JSON.parse(data); var siteTeams = []; siteTeams = content.siteTeams; if(!$.isEmptyObject(content) && content !== null && siteTeams.length!== 0){ var teams = []; for(var i = 0; i < siteTeams.length; i++){ siteTeams[i] = new siteTeamsObjectForDataTable( '', siteTeams[i].Name, siteTeams[i].TeamID, siteTeams[i].Description, siteTeams[i].NumberOfUsers, siteTeams[i].CreationDate, siteTeams[i].LastModificationDate, siteTeams[i].CreatorName, siteTeams[i].siteTeamUsers, siteTeams[i].CreationDateObject, siteTeams[i].LastModificationDateObject ); teams.push(siteTeams[i].Name); siteTeams[i].siteTeamUsers = formatSiteTeamUsers(siteTeams[i].siteTeamUsers); siteTeams[i] = surroundObjectPropWithDiv(siteTeams[i]); } teamEditedOrDeleted(teams); $('table#GroupTeamsTable').DataTable().clear(); for(var i = 0; i < siteTeams.length; i++){ $('table#GroupTeamsTable').dataTable().fnAddData(siteTeams[i]); } $('#groupTeamsTableToolbarContainer').animate({height:'hide'}); $('#groupTeamsTableToolbarContainer').removeClass('opened'); fetchAllCurrentUsers(2, false, [], [], false, [], false); }else if(content === null) { $('div.modal.fade').modal('hide'); hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } $('#editGroupTeamModal').modal('hide'); }; showPreloader(); AJAX_CALL_POST(theData, callBack); } function CreateSiteTeamsForTheCurrentGroup(siteTeamName, siteTeamDescription){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchAllSiteTeamsForTheCurrentGroup", true, theData); theData = dataToBeSendViaAJAX("modeSiteTeams", SITE_TEAMS_TABLE_CREATE_GROUP, theData); theData = dataToBeSendViaAJAX("siteTeamName", siteTeamName, theData); theData = dataToBeSendViaAJAX("siteTeamDescription", siteTeamDescription, theData); var callBack = function(data){ var content= JSON.parse(data); var siteTeams = []; siteTeams = content.siteTeams; if(!$.isEmptyObject(content) && content !== null && siteTeams.length!== 0){ var teams = []; for(var i = 0; i < siteTeams.length; i++){ siteTeams[i] = new siteTeamsObjectForDataTable( '', siteTeams[i].Name, siteTeams[i].TeamID, siteTeams[i].Description, siteTeams[i].NumberOfUsers, siteTeams[i].CreationDate, siteTeams[i].LastModificationDate, siteTeams[i].CreatorName, siteTeams[i].siteTeamUsers, siteTeams[i].CreationDateObject, siteTeams[i].LastModificationDateObject ); teams.push(siteTeams[i].Name); siteTeams[i].siteTeamUsers = formatSiteTeamUsers(siteTeams[i].siteTeamUsers); siteTeams[i] = surroundObjectPropWithDiv(siteTeams[i]); } teamEditedOrDeleted(teams); $('table#GroupTeamsTable').DataTable().clear(); for(var i = 0; i < siteTeams.length; i++){ $('table#GroupTeamsTable').dataTable().fnAddData(siteTeams[i]); } fetchAllCurrentUsers(2, false, [], [], false, [], false); }else if(content === null) { $('div.modal.fade').modal('hide'); hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } $('#newGroupTeamModal').modal('hide'); }; $('div.modal.fade').modal('hide'); showPreloader(); AJAX_CALL_POST(theData, callBack); } function DeleteSiteTeamsForTheCurrentGroup(teamID){ var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("fetchAllSiteTeamsForTheCurrentGroup", true, theData); theData = dataToBeSendViaAJAX("modeSiteTeams", SITE_TEAMS_TABLE_DELETE_GROUP, theData); theData = dataToBeSendViaAJAX("siteTeamID", teamID, theData); var callBack = function(data){ var content= JSON.parse(data); var siteTeams = []; siteTeams = content.siteTeams; if(!$.isEmptyObject(content) && content !== null){ var teams = []; for(var i = 0; i < siteTeams.length; i++){ siteTeams[i] = new siteTeamsObjectForDataTable( '', siteTeams[i].Name, siteTeams[i].TeamID, siteTeams[i].Description, siteTeams[i].NumberOfUsers, siteTeams[i].CreationDate, siteTeams[i].LastModificationDate, siteTeams[i].CreatorName, siteTeams[i].siteTeamUsers, siteTeams[i].CreationDateObject, siteTeams[i].LastModificationDateObject ); teams.push(siteTeams[i].Name); siteTeams[i].siteTeamUsers = formatSiteTeamUsers(siteTeams[i].siteTeamUsers); siteTeams[i] = surroundObjectPropWithDiv(siteTeams[i]); } teamEditedOrDeleted(teams); if(siteTeams.length!== 0){ $('table#GroupTeamsTable').DataTable().clear(); } else { $('table#GroupTeamsTable').DataTable().clear().draw(); } for(var i = 0; i < siteTeams.length; i++){ $('table#GroupTeamsTable').dataTable().fnAddData(siteTeams[i]); } $('#groupTeamsTableToolbarContainer').animate({height:'hide'}); $('#groupTeamsTableToolbarContainer').removeClass('opened'); fetchAllCurrentUsers(2, false, [], [], false, [], false); }else if(content === null) { $('div.modal.fade').modal('hide'); hidePreloader(); $('#usersManagementPortletContainer #InternalServerErrorModal').modal('show'); } $('#deleteGroupTeamModal').modal('hide'); }; showPreloader(); AJAX_CALL_POST(theData, callBack); } function fetchUserRequestRejectionEmailSubject() { var theData = dataToBeSendViaAJAX("groupId", theGroupId); theData = dataToBeSendViaAJAX("userRequestRejectionEmailSubject", true, theData); var callback = function(data){ var objectFromJSON = JSON.parse(data); rejectRequestEmailSubject = objectFromJSON.userRequestRejectionEmailSubject; userRequestRejectionEmailAdminsMailsCC = eval(objectFromJSON.userRequestRejectionEmailAdminsMailsCC); $('.emailSubject').text(rejectRequestEmailSubject); $('textarea#BCCAdminsEmails').textext()[0].tags().addTags( userRequestRejectionEmailAdminsMailsCC); }; AJAX_CALL_POST(theData, callback); } function fetchRolesInitial() { var theData = dataToBeSendViaAJAX("rolesInitial", true, theData); var callback = function(data){ theList = JSON.parse(data).roleNames; fetchTeamsInitial(); }; AJAX_CALL_POST(theData, callback); } function fetchTeamsInitial() { var theData = dataToBeSendViaAJAX("teamsInitial", true, theData); var callback = function(data){ teamList = JSON.parse(data).teamNames; $.each(teamList, function(index, value){ teamList[index] = value.replace("'", "'"); }); tagEvents(theList, teamList); tableEvents(); fetchUserRequestRejectionEmailSubject(); hidePreloader(); }; AJAX_CALL_POST(theData, callback); }