[ticket/9590] Support ajax submit of permissions for specific forums

PHPBB3-9590
This commit is contained in:
Marc Alexander 2016-11-26 13:27:24 +01:00
parent ff76a3e433
commit 30b3fbb2cf
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -70,8 +70,16 @@ function submitPermissions() {
var $form = $('form#set-permissions'), var $form = $('form#set-permissions'),
fieldsetList = $form.find('fieldset[id^=perm]'), fieldsetList = $form.find('fieldset[id^=perm]'),
formDataSets = [], formDataSets = [],
$submitAllButton = $form.find('input[type=submit][name^=action]')[0]; $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 = formDataSets.length,
permissionRequestCount = 0,
forumIds = [],
permissionSubmitFailed = false;
if ($submitAllButton === $submitButton) {
$.each(fieldsetList, function (key, value) { $.each(fieldsetList, function (key, value) {
if (key % 5 === 0) { if (key % 5 === 0) {
formDataSets[Math.floor(key / 5)] = $form.find('fieldset#' + value.id).serialize(); formDataSets[Math.floor(key / 5)] = $form.find('fieldset#' + value.id).serialize();
@ -79,12 +87,15 @@ function submitPermissions() {
formDataSets[Math.floor(key / 5)] += '&' + $form.find('fieldset#' + value.id).serialize(); formDataSets[Math.floor(key / 5)] += '&' + $form.find('fieldset#' + value.id).serialize();
} }
}); });
} else {
// Set proper start values for handling refresh of page formDataSets[0] = $form.find('fieldset#' + $submitButton.closest('fieldset.permissions').id).serialize();
var permissionSubmitSize = formDataSets.length, // Add each forum ID to forum ID list to preserve selected forums
permissionRequestCount = 0, $.each($form.find('input[type=hidden][name^=forum_id]'), function (key, value) {
forumIds = [], if (value.name.match(/^forum_id\[([0-9]+)\]$/)) {
permissionSubmitFailed = false; forumIds.push(value.value);
}
});
}
/** /**
* Handler for submitted permissions form chunk * Handler for submitted permissions form chunk
@ -186,6 +197,10 @@ $(function() {
submitPermissions(); submitPermissions();
e.preventDefault(); 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);
});
} }
}); });