1function getValidPermissionsData() { 2 const validPermissionsJson = $('#valid-permissions-data')?.text()?.trim() || '[]'; 3 return JSON.parse(validPermissionsJson); 4} 5 6function getValidPermissionsControllerActionData() { 7 const validatePermissionsData = getValidPermissionsData(); 8 9 if(validatePermissionsData.constructor.name !== 'Array') return []; 10 11 return $.unique(validatePermissionsData?.map(permission => { 12 const { controller,action } = permission; 13 14 return { controller,action } 15 })); 16} 17 18function removeNotAllowedActionByPermission() { 19 const validControllerActionData = getValidPermissionsControllerActionData(); 20 21 $('[data-validate-menu-permission]').each(function(){ 22 const menuParam = $(this).data('validateMenuPermission'); 23 const menuParamIsInvalid = menuParam.length == 0 || !menuParam.includes('/') || menuParam.startsWith('/'); 24 25 if(menuParamIsInvalid) return; 26 27 const [ controller, action ] = menuParam.split('/'); 28 29 const menuExistsInData = validControllerActionData.some(item => { 30 return item.controller?.toLowerCase() == controller?.toLowerCase() 31 && item.action?.toLowerCase() == action?.toLowerCase() ; 32 }); 33 34 if(menuExistsInData) return; 35 36 $(this).remove(); 37 }); 38} 39 40$(document).ready(function(){ 41 /*** Datatable first index menu ***/ 42 $(document).on('mouseover', '.btnOpcoes,.ocultos,.ocultos a', function(event) { 43 $('.btnOpcoes').removeClass('bg-verde text-white'); 44 $(this).prev().addClass('bg-verde text-white'); 45 }); 46 47 $(document).on('click', '#acoesDatatable', function(event) { 48 if(window.matchMedia("(min-width: 765px)").matches) { 49 if($(this).find('.ocultos a').length) { 50 $('.ocultos').removeClass('d-grid'); 51 if($(this).find('.ocultos').hasClass('d-grid')){ 52 $('.ocultos').removeClass('d-grid'); 53 }else{ 54 $(this).find('.ocultos').addClass('d-grid'); 55 } 56 } else { 57 toastError({ 58 message: 'Não existem opções de menu disponÃveis para esse registro' 59 }); 60 } 61 } 62 }); 63 /*** Datatable first index menu ***/ 64});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.