var usersTable = document.getElementById('usersTable'); if (usersTable) { var userSearch = document.getElementById('userSearch'); var userRoleFilter = document.getElementById('userRoleFilter'); var userOrganizationFilter = document.getElementById('userOrganizationFilter'); var userStatusFilter = document.getElementById('userStatusFilter'); var userResetFilterBtn = document.getElementById('userResetFilterBtn'); var userUrlParams = new URLSearchParams(window.location.search); var initialUserSearch = (userUrlParams.get('user_search') || '').trim(); var initialUserRole = (userUrlParams.get('user_role') || 'all').trim(); var initialUserOrganization = (userUrlParams.get('user_organization') || 'all').trim(); var initialUserStatus = (userUrlParams.get('user_status') || 'all').trim(); if (userSearch && initialUserSearch !== '') { userSearch.value = initialUserSearch; } if (userRoleFilter) { userRoleFilter.value = initialUserRole !== '' && userRoleFilter.querySelector('option[value="' + initialUserRole + '"]') ? initialUserRole : 'all'; } if (userOrganizationFilter) { userOrganizationFilter.value = initialUserOrganization !== '' ? initialUserOrganization : 'all'; if (userOrganizationFilter.value !== initialUserOrganization && initialUserOrganization !== 'all') { userOrganizationFilter.value = 'all'; } } if (userStatusFilter) { userStatusFilter.value = ['active', 'inactive', 'removed'].indexOf(initialUserStatus) !== -1 ? initialUserStatus : 'all'; } var userRows = Array.prototype.slice.call(document.querySelectorAll('#usersTable .user-row')); var usersPaginationWrap = document.getElementById('usersPaginationWrap'); var usersPaginationPrev = document.getElementById('usersPaginationPrev'); var usersPaginationNext = document.getElementById('usersPaginationNext'); var usersPageNumbers = document.getElementById('usersPageNumbers'); var usersPage = 1; var usersPerPage = getResponsiveAdminTablePageSize(); var preservedUserState = window.consumeAdminTabUiState('users'); if (preservedUserState) { var preservedUserValues = preservedUserState.values || {}; if (userSearch && Object.prototype.hasOwnProperty.call(preservedUserValues, 'userSearch')) { userSearch.value = preservedUserValues.userSearch; } if (userRoleFilter && Object.prototype.hasOwnProperty.call(preservedUserValues, 'userRoleFilter')) { userRoleFilter.value = preservedUserValues.userRoleFilter; } if (userOrganizationFilter && Object.prototype.hasOwnProperty.call(preservedUserValues, 'userOrganizationFilter')) { userOrganizationFilter.value = preservedUserValues.userOrganizationFilter; } if (userStatusFilter && Object.prototype.hasOwnProperty.call(preservedUserValues, 'userStatusFilter')) { userStatusFilter.value = preservedUserValues.userStatusFilter; } usersPage = Math.max(1, Number(preservedUserState.page) || 1); } function renderUsersPageButtons(totalPages) { window.DocuFlowPagination.render(usersPageNumbers, usersPage, totalPages, function (page) { usersPage = page; applyUserFilter(); }); } var applyUserFilter = function () { var searchValue = (userSearch && userSearch.value ? userSearch.value : '').toLowerCase().trim(); var roleValue = userRoleFilter ? userRoleFilter.value : 'all'; var organizationValue = userOrganizationFilter ? userOrganizationFilter.value : 'all'; var statusValue = userStatusFilter ? userStatusFilter.value : 'all'; var filteredRows = []; userRows.forEach(function (row) { var matchesRole = roleValue === 'all' || row.dataset.role === roleValue; var rowOrganization = row.dataset.organizationName || ''; var matchesOrganization = organizationValue === 'all' || (organizationValue === '__none__' && rowOrganization.trim() === '') || rowOrganization === organizationValue; var matchesStatus = statusValue === 'all' || row.dataset.status === statusValue; var haystack = [ row.dataset.name, row.dataset.email, row.dataset.empid, rowOrganization.toLowerCase() ].join(' '); var matchesSearch = searchValue === '' || haystack.indexOf(searchValue) !== -1; if (matchesRole && matchesOrganization && matchesStatus && matchesSearch) { filteredRows.push(row); } row.style.display = 'none'; }); var totalPages = Math.max(1, Math.ceil(filteredRows.length / usersPerPage)); if (usersPage > totalPages) usersPage = totalPages; var startIndex = (usersPage - 1) * usersPerPage; filteredRows.slice(startIndex, startIndex + usersPerPage).forEach(function (row) { row.style.display = ''; }); var showPagination = filteredRows.length > usersPerPage; if (usersPaginationWrap) usersPaginationWrap.style.display = showPagination ? 'flex' : 'none'; if (showPagination) renderUsersPageButtons(totalPages); if (usersPaginationPrev) usersPaginationPrev.classList.toggle('disabled', usersPage <= 1); if (usersPaginationNext) usersPaginationNext.classList.toggle('disabled', usersPage >= totalPages); }; if (userSearch) { userSearch.addEventListener('input', function () { usersPage = 1; applyUserFilter(); }); } if (userRoleFilter) { userRoleFilter.addEventListener('change', function () { usersPage = 1; applyUserFilter(); }); } if (userOrganizationFilter) { userOrganizationFilter.addEventListener('change', function () { usersPage = 1; applyUserFilter(); }); } if (userStatusFilter) { userStatusFilter.addEventListener('change', function () { usersPage = 1; applyUserFilter(); }); } if (userResetFilterBtn) { userResetFilterBtn.addEventListener('click', function () { if (userSearch) userSearch.value = ''; if (userRoleFilter) userRoleFilter.value = 'all'; if (userOrganizationFilter) userOrganizationFilter.value = 'all'; if (userStatusFilter) userStatusFilter.value = 'all'; usersPage = 1; applyUserFilter(); }); } if (usersPaginationPrev) { usersPaginationPrev.addEventListener('click', function (e) { e.preventDefault(); if (!this.classList.contains('disabled')) { usersPage = Math.max(1, usersPage - 1); applyUserFilter(); } }); } if (usersPaginationNext) { usersPaginationNext.addEventListener('click', function (e) { e.preventDefault(); if (!this.classList.contains('disabled')) { usersPage = usersPage + 1; applyUserFilter(); } }); } window.addEventListener('resize', function () { var nextPerPage = getResponsiveAdminTablePageSize(); if (nextPerPage !== usersPerPage) { usersPerPage = nextPerPage; usersPage = 1; applyUserFilter(); } }); document.addEventListener('dashboard-data-table:sort', function (event) { if (!event.detail || !event.detail.table || event.detail.table.id !== 'usersTable') { return; } event.preventDefault(); event.detail.handled = true; userRows = sortAdminDashboardRows(userRows, event.detail.columnIndex, event.detail.order); usersPage = 1; applyUserFilter(); }); applyUserFilter(); var roleOrganizationOfficerMap = @json($roleOrganizationOfficerMap ?? []); function roleIsOrganizationOfficer(role) { return !!roleOrganizationOfficerMap[(role || '').toString()]; } // Helper function to toggle organization field visibility and filter options function toggleOrganizationField() { var roleSelect = document.getElementById('editUserRole'); var organizationWrapper = document.getElementById('editUserOrganizationWrapper'); var organizationSelect = document.getElementById('editUserOrganization'); var organizationLabel = document.getElementById('editUserOrganizationLabel'); if (roleSelect && organizationWrapper && organizationSelect) { var selectedRole = roleSelect.value; var shouldHide = !roleIsOrganizationOfficer(selectedRole); if (shouldHide) { organizationWrapper.style.display = 'none'; organizationSelect.value = ''; } else { organizationWrapper.style.display = ''; filterOrganizationOptions(organizationSelect, selectedRole); // Update label based on role. if (organizationLabel) { organizationLabel.textContent = '{{ __('Organization') }}'; } var placeholderOption = organizationSelect.querySelector('option[value=""]'); if (placeholderOption) { placeholderOption.textContent = '-- {{ __('Please select an organization') }} --'; } } } } // Helper function to filter organization dropdown options based on role function filterOrganizationOptions(organizationSelect, role) { if (!organizationSelect) return; var options = organizationSelect.querySelectorAll('option'); var currentValue = organizationSelect.value; var hasValidOption = false; options.forEach(function (option) { if (option.value === '') { // Always show the "Please select an organization" option option.style.display = ''; return; } var shouldShow = true; option.style.display = shouldShow ? '' : 'none'; // Track if current value is still valid if (option.value === currentValue && shouldShow) { hasValidOption = true; } }); // Reset value if current selection is no longer valid if (!hasValidOption) { organizationSelect.value = ''; } } // Add event listener to role dropdown to toggle organization field var editUserRoleSelect = document.getElementById('editUserRole'); if (editUserRoleSelect) { editUserRoleSelect.addEventListener('change', function () { toggleOrganizationField(); }); } // Helper function to toggle organization field visibility in Add New User modal function toggleAddUserOrganizationField() { var roleSelect = document.getElementById('addUserRole'); var organizationWrapper = document.getElementById('addUserOrganizationWrapper'); var organizationCheckboxes = document.getElementById('addUserOrganizationCheckboxes'); var organizationSelect = document.getElementById('addUserOrganizationSelect'); var organizationLabel = document.getElementById('addUserOrganizationLabel'); if (roleSelect && organizationWrapper) { var selectedRole = roleSelect.value; var shouldHide = !roleIsOrganizationOfficer(selectedRole); if (shouldHide) { organizationWrapper.style.display = 'none'; if (organizationSelect) organizationSelect.value = ''; if (organizationCheckboxes) { organizationCheckboxes.style.display = 'none'; var checkboxes = organizationCheckboxes.querySelectorAll('input[type="checkbox"]'); checkboxes.forEach(function(cb) { cb.checked = false; }); } } else { organizationWrapper.style.display = ''; if (organizationCheckboxes) organizationCheckboxes.style.display = ''; filterOrganizationOptions(organizationSelect, selectedRole); // Update label based on role. if (organizationLabel) { organizationLabel.textContent = '{{ __('Organization') }}'; } var placeholderOption = organizationSelect.querySelector('option[value=""]'); if (placeholderOption) { placeholderOption.textContent = '-- {{ __('Please select an organization') }} --'; } } } } // Add event listener to Add New User role dropdown var addUserRoleSelect = document.getElementById('addUserRole'); if (addUserRoleSelect) { addUserRoleSelect.addEventListener('change', function () { toggleAddUserOrganizationField(); }); } // Initialize organization field visibility for Add New User modal var addUserModal = document.getElementById('modalCreateUser'); var addUserModalInitialState = ''; var allowAddUserModalClose = false; if (addUserModal) { addUserModal.addEventListener('shown.bs.modal', function () { toggleAddUserOrganizationField(); allowAddUserModalClose = false; addUserModalInitialState = getAddUserSnapshot(); }); addUserModal.addEventListener('hide.bs.modal', function (event) { if (allowAddUserModalClose) { allowAddUserModalClose = false; return; } if (!addUserModalInitialState || getAddUserSnapshot() === addUserModalInitialState) { return; } event.preventDefault(); Swal.fire({ title: '{{ __('Unsaved Changes') }}', text: '{{ __('You have unsaved changes. Save first before leaving.') }}', icon: 'warning', showCancelButton: true, confirmButtonText: '{{ __('Leave Without Saving') }}', cancelButtonText: '{{ __('Stay') }}', customClass: { confirmButton: 'btn btn-primary w-xs me-2 mt-2', cancelButton: 'btn btn-light w-xs mt-2' }, buttonsStyling: false }).then(function (result) { if (result.value) { allowAddUserModalClose = true; var modalInstance = bootstrap.Modal.getInstance(addUserModal); if (modalInstance) { modalInstance.hide(); } } }); }); } // Initialize organization field visibility for Edit User modal var editUserModal = document.getElementById('modalEditUser'); var editUserModalInitialState = ''; var allowEditUserModalClose = false; if (editUserModal) { editUserModal.addEventListener('shown.bs.modal', function () { toggleOrganizationField(); allowEditUserModalClose = false; editUserModalInitialState = getEditUserSnapshot(); }); editUserModal.addEventListener('hide.bs.modal', function (event) { if (allowEditUserModalClose) { allowEditUserModalClose = false; return; } if (!editUserModalInitialState || getEditUserSnapshot() === editUserModalInitialState) { return; } event.preventDefault(); Swal.fire({ title: '{{ __('Unsaved Changes') }}', text: '{{ __('You have unsaved changes. Save first before leaving.') }}', icon: 'warning', showCancelButton: true, confirmButtonText: '{{ __('Leave Without Saving') }}', cancelButtonText: '{{ __('Stay') }}', customClass: { confirmButton: 'btn btn-primary w-xs me-2 mt-2', cancelButton: 'btn btn-light w-xs mt-2' }, buttonsStyling: false }).then(function (result) { if (result.value) { allowEditUserModalClose = true; var modalInstance = bootstrap.Modal.getInstance(editUserModal); if (modalInstance) { modalInstance.hide(); } } }); }); } function getAddUserSnapshot() { var form = document.getElementById('formCreateUser'); if (!form) return ''; var inputs = form.querySelectorAll('input, select, textarea'); var data = {}; inputs.forEach(function (input) { if (input.name) { if (input.type === 'checkbox') { data[input.name] = input.checked ? '1' : '0'; } else { data[input.name] = input.value || ''; } } }); return JSON.stringify(data); } function getEditUserSnapshot() { return JSON.stringify({ first_name: (document.getElementById('editUserFirstName') || {}).value || '', last_name: (document.getElementById('editUserLastName') || {}).value || '', email: (document.getElementById('editUserEmail') || {}).value || '', role: (document.getElementById('editUserRole') || {}).value || '', organization_name: (document.getElementById('editUserOrganization') || {}).value || '' }); } function getFirstValidationError(payload) { if (!payload || typeof payload !== 'object') return ''; if (payload.errors && typeof payload.errors === 'object') { var keys = Object.keys(payload.errors); if (keys.length > 0 && Array.isArray(payload.errors[keys[0]]) && payload.errors[keys[0]].length > 0) { return payload.errors[keys[0]][0]; } } return payload.message || ''; } function submitUserFormWithAlert(formEl, successTitle) { if (!formEl) return; var submitBtn = formEl.querySelector('button[type="submit"]'); if (submitBtn) submitBtn.disabled = true; fetch(formEl.action, { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest', 'Accept': 'application/json' }, body: new FormData(formEl) }) .then(function (response) { return response.json().catch(function () { return {}; }).then(function (payload) { if (!response.ok) { throw new Error(getFirstValidationError(payload) || '{{ __('Unable to save user.') }}'); } return payload; }); }) .then(function (payload) { var modalEl = formEl.closest('.modal'); if (modalEl) { if (formEl.id === 'formCreateUser') { allowAddUserModalClose = true; } else if (formEl.id === 'formEditUser') { allowEditUserModalClose = true; } var modalInstance = bootstrap.Modal.getInstance(modalEl); if (modalInstance) modalInstance.hide(); } return Swal.fire({ title: successTitle, text: payload.message || '{{ __('Saved successfully.') }}', icon: 'success', confirmButtonText: '{{ __('OK') }}', customClass: { confirmButton: 'btn btn-primary w-xs mt-2' }, buttonsStyling: false }); }) .then(function () { // Navigate to the dashboard with users tab instead of just reloading window.refreshAdminTabContent('users', @json(route('role.dashboard', ['admin_tab' => 'users']))); }) .catch(function (error) { var errorMessage = error && error.message ? error.message : '{{ __('Please check your input and try again.') }}'; Swal.fire({ title: '{{ __('Save Failed') }}', text: errorMessage, icon: 'error', confirmButtonText: '{{ __('OK') }}', customClass: { confirmButton: 'btn btn-primary w-xs mt-2' }, buttonsStyling: false }); }) .finally(function () { if (submitBtn) submitBtn.disabled = false; }); } var createUserForm = document.getElementById('formCreateUser'); if (createUserForm) { createUserForm.addEventListener('submit', function (e) { e.preventDefault(); submitUserFormWithAlert(createUserForm, '{{ __('User Created') }}'); }); } var editUserForm = document.getElementById('formEditUser'); if (editUserForm) { editUserForm.addEventListener('submit', function (e) { e.preventDefault(); submitUserFormWithAlert(editUserForm, '{{ __('User Updated') }}'); }); } var resetUserPasswordModal = document.getElementById('modalResetUserPassword'); var resetUserPasswordForm = document.getElementById('formResetUserPassword'); var resetPasswordInput = document.getElementById('resetUserPasswordValue'); var resetPasswordToggle = document.getElementById('toggleResetPasswordVisibility'); var resetPasswordConfirmText = document.getElementById('resetPasswordConfirmText'); var resetPasswordWarning = document.getElementById('resetPasswordWarning'); var resetPasswordResult = document.getElementById('resetPasswordResult'); var resetPasswordSubmitBtn = document.getElementById('resetPasswordSubmitBtn'); var resetPasswordCancelBtn = document.getElementById('resetPasswordCancelBtn'); var resetPasswordCloseBtn = document.getElementById('resetPasswordCloseBtn'); function setResetPasswordModalState(isDone) { if (resetPasswordConfirmText) resetPasswordConfirmText.classList.toggle('d-none', isDone); if (resetPasswordWarning) resetPasswordWarning.classList.toggle('d-none', isDone); if (resetPasswordResult) resetPasswordResult.classList.toggle('d-none', !isDone); if (resetPasswordSubmitBtn) resetPasswordSubmitBtn.classList.toggle('d-none', isDone); if (resetPasswordCancelBtn) resetPasswordCancelBtn.classList.toggle('d-none', isDone); if (resetPasswordCloseBtn) resetPasswordCloseBtn.classList.toggle('d-none', !isDone); } if (resetPasswordToggle && resetPasswordInput) { resetPasswordToggle.addEventListener('click', function () { var isHidden = resetPasswordInput.type === 'password'; resetPasswordInput.type = isHidden ? 'text' : 'password'; resetPasswordToggle.innerHTML = ''; resetPasswordToggle.setAttribute('aria-label', isHidden ? '{{ __('Hide password') }}' : '{{ __('Show password') }}'); }); } if (resetUserPasswordForm) { resetUserPasswordForm.addEventListener('submit', function (e) { e.preventDefault(); if (resetPasswordSubmitBtn) resetPasswordSubmitBtn.disabled = true; fetch(resetUserPasswordForm.action, { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest', 'Accept': 'application/json' }, body: new FormData(resetUserPasswordForm) }) .then(function (response) { return response.json().catch(function () { return {}; }).then(function (payload) { if (!response.ok) { throw new Error(getFirstValidationError(payload) || '{{ __('Unable to reset password.') }}'); } return payload; }); }) .then(function (payload) { if (resetPasswordInput) { resetPasswordInput.type = 'password'; resetPasswordInput.value = payload.password || '12345678'; } if (resetPasswordToggle) { resetPasswordToggle.innerHTML = ''; resetPasswordToggle.setAttribute('aria-label', '{{ __('Show password') }}'); } setResetPasswordModalState(true); }) .catch(function (error) { Swal.fire({ title: '{{ __('Reset Failed') }}', text: error && error.message ? error.message : '{{ __('Unable to reset password.') }}', icon: 'error', confirmButtonText: '{{ __('OK') }}', customClass: { confirmButton: 'btn btn-primary w-xs mt-2' }, buttonsStyling: false }); }) .finally(function () { if (resetPasswordSubmitBtn) resetPasswordSubmitBtn.disabled = false; }); }); } // Edit button usersTable.addEventListener('click', function (e) { var editBtn = e.target.closest('.edit-item-btn'); if (editBtn) { var row = editBtn.closest('tr'); var userId = row.dataset.id; var firstName = (row.dataset.firstName || '').trim(); var lastName = (row.dataset.lastName || '').trim(); if (!firstName && !lastName) { var fallbackFullName = (row.dataset.fullname || '').trim(); if (fallbackFullName) { var parts = fallbackFullName.split(/\s+/); firstName = parts.shift() || ''; lastName = parts.join(' '); } } document.getElementById('editUserFirstName').value = firstName; document.getElementById('editUserLastName').value = lastName; document.getElementById('editUserEmail').value = row.dataset.userEmail; var rawRole = (row.dataset.userRole || '').toLowerCase(); var normalizedRole = row.dataset.userRole; document.getElementById('editUserRole').value = normalizedRole; document.getElementById('editUserOrganization').value = row.dataset.organizationName || ''; document.getElementById('formEditUser').action = '/admin/users/' + userId; var keycloakLink = document.getElementById('editUserKeycloakLink'); if (keycloakLink) { keycloakLink.href = row.dataset.keycloakAdminUrl || keycloakLink.href; } var modal = new bootstrap.Modal(document.getElementById('modalEditUser')); modal.show(); // Toggle organization field visibility based on role toggleOrganizationField(); } var resetPasswordBtn = e.target.closest('.reset-password-btn'); if (resetPasswordBtn) { var row = resetPasswordBtn.closest('tr'); var userId = row.dataset.id; var userName = row.dataset.fullname || ''; var resetUserName = document.getElementById('resetPasswordUserName'); if (resetUserName) { resetUserName.textContent = userName; } if (resetPasswordInput) { resetPasswordInput.type = 'password'; resetPasswordInput.value = '12345678'; } if (resetPasswordToggle) { resetPasswordToggle.innerHTML = ''; resetPasswordToggle.setAttribute('aria-label', '{{ __('Show password') }}'); } if (resetUserPasswordForm) { resetUserPasswordForm.action = '/admin/users/' + userId + '/reset-password'; } setResetPasswordModalState(false); var resetModal = new bootstrap.Modal(resetUserPasswordModal); resetModal.show(); } // Disable / Enable button var disableBtn = e.target.closest('.disable-item-btn'); if (disableBtn) { var row = disableBtn.closest('tr'); var userId = row.dataset.id; var isDisabling = disableBtn.dataset.action === 'disable'; if (isDisabling && String(userId) === '{{ Auth::id() }}') { Swal.fire({ title: '{{ __('Action not allowed') }}', text: '{{ __('You cannot make your own account inactive.') }}', icon: 'warning', customClass: { confirmButton: 'btn btn-primary w-xs mt-2', }, confirmButtonText: '{{ __('OK') }}', buttonsStyling: false, showCloseButton: true }); return; } Swal.fire({ title: isDisabling ? '{{ __('Make this user inactive?') }}' : '{{ __('Make this user active?') }}', text: isDisabling ? '{{ __('They will not be able to log in until re-enabled.') }}' : '{{ __('This user will be able to log in again.') }}', icon: 'warning', showCancelButton: true, customClass: { confirmButton: 'btn btn-primary w-xs me-2 mt-2', cancelButton: 'btn btn-danger w-xs mt-2', }, confirmButtonText: isDisabling ? '{{ __('Yes, make inactive') }}' : '{{ __('Yes, make active') }}', cancelButtonText: '{{ __('Cancel') }}', buttonsStyling: false, showCloseButton: true }).then(function (result) { if (result.value) { var form = document.getElementById('formToggleUser'); form.action = '/admin/users/' + userId + '/status'; window.captureAdminTabUiState('users'); form.submit(); } }); } }); } if (!window.__adminUserDeleteHandlerBound) { window.__adminUserDeleteHandlerBound = true; document.addEventListener('click', function (event) { var deleteBtn = event.target.closest('.delete-item-btn'); if (!deleteBtn || !deleteBtn.closest('#usersTable')) { return; } event.preventDefault(); var deleteRow = deleteBtn.closest('tr'); var deleteUserId = deleteRow ? deleteRow.dataset.id : ''; var deleteUserName = deleteRow ? (deleteRow.dataset.fullname || '{{ __('this user') }}') : '{{ __('this user') }}'; if (!deleteUserId) { return; } if (String(deleteUserId) === '{{ Auth::id() }}') { Swal.fire({ title: '{{ __('Action not allowed') }}', text: '{{ __('You cannot delete your own account.') }}', icon: 'warning', customClass: { confirmButton: 'btn btn-primary w-xs mt-2' }, confirmButtonText: '{{ __('OK') }}', buttonsStyling: false, showCloseButton: true }); return; } var confirmationText = @json(__('Delete')) + ' "' + deleteUserName + '"? ' + @json(__('This action cannot be undone.')); Swal.fire({ title: '{{ __('Delete this user?') }}', text: confirmationText, icon: 'warning', showCancelButton: true, customClass: { confirmButton: 'btn btn-primary w-xs me-2 mt-2', cancelButton: 'btn btn-danger w-xs mt-2' }, confirmButtonText: '{{ __('Yes, delete it!') }}', cancelButtonText: '{{ __('Cancel') }}', buttonsStyling: false, showCloseButton: true }).then(function (result) { if (!(result.isConfirmed || result.value)) { return; } var form = document.getElementById('formDeleteUser'); if (!form) { return; } form.action = '/admin/users/' + encodeURIComponent(deleteUserId); window.submitAdminActionWithoutReload(form, 'users', '{{ __('User Deleted') }}'); }); }); }