function displaySiteRolesOnHover(){ $('#usersManagementPortletContainer #CurrentUsersTable_wrapper').on('mouseover', function(e){ var tagName = $(e.target).prop('tagName').toLowerCase(); var parentTagName = $(e.target).parent().prop('tagName').toLowerCase(); var className = $(e.target).attr('class'); if(tagName === "td" || parentTagName === "td" || tagName === "span" || tagName === "ul" || tagName === "li"){ return; }else { destroyBubble(); } }); $('#usersManagementPortletContainer table#CurrentUsersTable, table#usersRequestsTable, table#rejectedUsersRequestsTable') .off('mouseover').on('mouseover', 'tr td:not(:first) div', function(e){ destroyBubble(); var tagName = $(e.target).prop('tagName').toLowerCase(); if(isEllipsisActive($(this))){ $(this).closest('td').addClass('relative'); var one = $('', { id : 'rolesArrow' }); var two = $('', { id : 'onHoverUser', 'class' : 'rolesBubbletittle' }); var three = $('', { id : 'elementBubbletittle' // text : 'Roles of' }); var four = $('', { id : 'roles' }); var five = $('', { id : 'rolesContainer' }); four.append(three).append(two).append(one); five.append(four); $(this).closest('td').append(five); var text = $(this).text(); var splitted = text.split(','); var theUl = $('', { id : 'rolesList' }); $('#roles').append(theUl); for(var string in splitted){ $('#rolesList').append($('
  • ', { text : splitted[string] })); } var thIndex = $(this).closest('td').index() + 1; var tableId = $(this).closest('table').attr('id'); var title = $('#' + tableId.toString() + ' th:nth-child(' + thIndex + ')').text(); $('#onHoverUser').text(title); } }).on('click', 'tr td:not(:first-of-type) div', function(){ var table = $(this).closest('table'); var tr = $(this).closest('tr'); var index = $(this).closest('td').index() + 1; var data = table.dataTable().fnGetData(tr[0]); $('#userDetailsModal .modal-body').html(''); $('span#userName').text(''); var tableId = table.attr('id'); if(tableId === 'CurrentUsersTable'){ $('#openEditModal').removeClass('hidden'); passUsersDetailsToModalFromCurrentUsersTable(tableId, data); }else if(tableId === 'usersRequestsTable'){ $('#openEditModal').addClass('hidden'); passUsersDetailsToModalFromUsersRequestsTable(tableId, data); } if($(this).closest('table').attr('id') === 'CurrentUsersTable'){ // console.log('The index of the row is: ' + ); var thisTrIndex = $('#CurrentUsersTable tbody tr').index($(this).closest('tr')); keepTrackOfUsersTableRow = thisTrIndex; } }); } function destroyBubble(){ $('#rolesList').remove(); $('#usersManagementPortletContainer .relative').removeClass('relative'); $('#rolesContainer').remove(); } function isEllipsisActive(element) { return_val = false; var text = element.text(); var html = $('',{ text : text, id : "tmpsmp" }); $('body').append(html); if(element.width() < html.width()) { return_val = true; } $('#tmpsmp').remove(); return return_val; } function removeDivTag(element){ var text = $($.parseHTML(element)).text(); return text; } function passUsersDetailsToModalFromCurrentUsersTable(tableId, data){ var i=0; $('span#userName').text(removeDivTag(data.UserName)); for(var field in data){ if(i === 0 || i === 6 || i === 9 || i === 11) { i++; continue; } else { i++; } injectDetailsToModal(tableId, i, removeDivTag(data[field])); } usersRequestsDetailModaWasOpen = false; $('#userDetailsModal').modal('show'); } function passUsersDetailsToModalFromUsersRequestsTable(tableId, data){ var i=0; $('span#userName').text(removeDivTag(data.UserName)); for(var field in data){ if(i === 0 || i === 5 || i === 7) { i++; continue; } else { i++; } injectDetailsToModal(tableId, i, removeDivTag(data[field])); } $('#usersRequestsModal').modal('hide'); usersRequestsDetailModaWasOpen = true; $('#userDetailsModal').modal('show'); } function injectDetailsToModal(tableId, thNumber, text){ if(thNumber === 8){ thNumber = 7; }else if(thNumber === 9){ thNumber = 8; }else if(thNumber === 11){ thNumber = 9; }else if(thNumber === 7){ thNumber = 6; } var properTitle = $('#' + tableId + ' th:nth-child(' + thNumber + ')').text(); buildRowsForModal(properTitle, text); } function buildRowsForModal(properTitle, text){ //Label for attribute must equal the div id var randomNumber = Math.floor(Math.random() * 2323614) + 1; var row = $('
    ', { 'class' : 'row-fluid' }); var theId = 'randomId'+randomNumber; var userField = $('
    ', { id : theId, text : text, 'class' : 'span9' }); var label = $('', { 'for' : theId, 'class' : 'span3', text : properTitle + ':' }); row.append(label).append(userField); $('#userDetailsModal .modal-body').append(row); }