| /** * Handler for submitting permissions form in chunks * This call will submit permissions forms in chunks of 5 fieldsets. */ function submitPermissions() { var $form = $('form#set-permissions'), fieldsetList = $form.find('fieldset[id^=perm]'), formDataSets = [], $submitAllButton = $form.find('input[type=submit][name^=action]')[0], $submitButton = $form.find('input[type=submit][data-clicked=true]')[0];
|
| // Set proper start values for handling refresh of page var permissionSubmitSize = 0, permissionRequestCount = 0, forumIds = [], permissionSubmitFailed = false;
if ($submitAllButton !== $submitButton) { fieldsetList = $form.find('fieldset#' + $submitButton.closest('fieldset.permissions').id); }
$.each(fieldsetList, function (key, value) { if (key % 5 === 0) { formDataSets[Math.floor(key / 5)] = $form.find('fieldset#' + value.id).serialize(); } else { formDataSets[Math.floor(key / 5)] += '&' + $form.find('fieldset#' + value.id).serialize(); } });
permissionSubmitSize = formDataSets.length;
// Add each forum ID to forum ID list to preserve selected forums $.each($form.find('input[type=hidden][name^=forum_id]'), function (key, value) { if (value.name.match(/^forum_id\[([0-9]+)\]$/)) { forumIds.push(value.value); } });
/** * Handler for submitted permissions form chunk * * @param {object} res Object returned by AJAX call */ function handlePermissionReturn(res) { permissionRequestCount++; var $dark = $('#darkenwrapper');
if (res.S_USER_WARNING) { phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); permissionSubmitFailed = true; } else if (!permissionSubmitFailed && res.S_USER_NOTICE) { // Display success message at the end of submitting the form if (permissionRequestCount >= permissionSubmitSize) { var $alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); var $alertBoxLink = $alert.find('p.alert_text > a');
// Create form to submit instead of normal "Back to previous page" link if ($alertBoxLink) { // Remove forum_id[] from URL $alertBoxLink.attr('href', $alertBoxLink.attr('href').replace(/(&forum_id\[\]=[0-9]+)/g, '')); var previousPageForm = '<form action="' + $alertBoxLink.attr('href') + '" method="post">'; $.each(forumIds, function (key, value) { previousPageForm += '<input type="text" name="forum_id[]" value="' + value + '" />'; }); previousPageForm += '</form>';
$alertBoxLink.on('click', function (e) { var $previousPageForm = $(previousPageForm); $('body').append($previousPageForm); e.preventDefault(); $previousPageForm.submit(); }); }
// Do not allow closing alert $dark.off('click'); $alert.find('.alert_close').hide();
if (typeof res.REFRESH_DATA !== 'undefined') { setTimeout(function () { // Create forum to submit using POST. This will prevent // exceeding the maximum length of URLs var form = '<form action="' + res.REFRESH_DATA.url.replace(/(&forum_id\[\]=[0-9]+)/g, '') + '" method="post">'; $.each(forumIds, function (key, value) { form += '<input type="text" name="forum_id[]" value="' + value + '" />'; }); form += '</form>'; $form = $(form); $('body').append($form);
// Hide the alert even if we refresh the page, in case the user // presses the back button. $dark.fadeOut(phpbb.alertTime, function () { if (typeof $alert !== 'undefined') { $alert.hide(); } });
// Submit form $form.submit(); }, res.REFRESH_DATA.time * 1000); // Server specifies time in seconds } } } }
// Create AJAX request for each form data set $.each(formDataSets, function (key, formData) { $.ajax({ url: $form.action, type: 'POST', data: formData + '&' + $submitButton.name + '=' + encodeURIComponent($submitButton.value) + '&creation_time=' + $form.find('input[type=hidden][name=creation_time]')[0].value + '&form_token=' + $form.find('input[type=hidden][name=form_token]')[0].value + '&' + $form.children('input[type=hidden]').serialize() + '&' + $form.find('input[type=checkbox][name^=inherit]').serialize(), success: handlePermissionReturn, error: handlePermissionReturn }); }); }
|
$('[data-ajax]').each(function() { var $this = $(this),
| $('[data-ajax]').each(function() { var $this = $(this),
|
*/ $(function() { phpbb.resizeTextArea($('textarea:not(.no-auto-resize)'), {minHeight: 75});
|
*/ $(function() { phpbb.resizeTextArea($('textarea:not(.no-auto-resize)'), {minHeight: 75});
|
| var $setPermissionsForm = $('form#set-permissions'); if ($setPermissionsForm.length) { $setPermissionsForm.on('submit', function (e) { submitPermissions(); e.preventDefault(); }); $setPermissionsForm.find('input[type=submit]').click(function() { $('input[type=submit]', $(this).parents($('form#set-permissions'))).removeAttr('data-clicked'); $(this).attr('data-clicked', true); }); }
|