Incorporate the permanent user deletion sprinkle
This commit is contained in:
32
assets/uf-tweaks/js/pages/deleted-users.js
Normal file
32
assets/uf-tweaks/js/pages/deleted-users.js
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
/**
|
||||
* Page-specific Javascript file. Should generally be included as a separate asset bundle in your page template.
|
||||
* example: {{ assets.js('js/pages/sign-in-or-register') | raw }}
|
||||
*
|
||||
* This script depends on widgets/deleted-users.js, uf-table.js, moment.js, handlebars-helpers.js
|
||||
*
|
||||
* Target page: /deleted-users
|
||||
*/
|
||||
|
||||
$(document).ready(function() {
|
||||
/**
|
||||
* Navigation buttons
|
||||
*/
|
||||
// Return from the deleted organisations page
|
||||
$("#widget-deletedUsers").find('.js-deletedUsers-return').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
window.location.href = site.uri.public + '/users';
|
||||
});
|
||||
|
||||
// Deleted users table
|
||||
$("#widget-deletedUsers").ufTable({
|
||||
dataUrl: site.uri.public + "/api/users/deleted",
|
||||
useLoadingTransition: site.uf_table.use_loading_transition
|
||||
});
|
||||
|
||||
// Bind table buttons
|
||||
$("#widget-deletedUsers").on("pagerComplete.ufTable", function () {
|
||||
bindDeletedUsersButtons($(this));
|
||||
});
|
||||
});
|
||||
20
assets/uf-tweaks/js/pages/users.js
Normal file
20
assets/uf-tweaks/js/pages/users.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Page-specific Javascript file. Should generally be included as a separate asset bundle in your page template.
|
||||
* example: {{ assets.js('js/pages/sign-in-or-register') | raw }}
|
||||
*
|
||||
* This script depends on widgets/users.js, uf-table.js, moment.js, handlebars-helpers.js
|
||||
*
|
||||
* Target page: /users
|
||||
*/
|
||||
|
||||
$(document).ready(function() {
|
||||
/**
|
||||
* Navigation buttons
|
||||
*/
|
||||
// View the deleted organisations page
|
||||
$("#widget-users").find('.js-user-viewDeleted').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
window.location.href = site.uri.public + '/users/deleted';
|
||||
});
|
||||
});
|
||||
82
assets/uf-tweaks/js/widgets/deleted-users.js
Normal file
82
assets/uf-tweaks/js/widgets/deleted-users.js
Normal file
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
* Users widget. Sets up dropdowns, modals, etc for a table of deleted users.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Link delete user action buttons, for example in a table or on a specific users's page.
|
||||
* @param {module:jQuery} el jQuery wrapped element to target.
|
||||
* @param {{delete_redirect: string}} options Options used to modify behaviour of button actions.
|
||||
*/
|
||||
function bindDeletedUsersButtons(el, options) {
|
||||
if (!options) options = {};
|
||||
|
||||
/**
|
||||
* Buttons that launch a modal dialog
|
||||
*/
|
||||
|
||||
// Permenetly delete user button
|
||||
el.find('.js-user-permanentDelete').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$("body").ufModal({
|
||||
sourceUrl: site.uri.public + "/modals/users/confirm-permanent-delete",
|
||||
ajaxParams: {
|
||||
user_name: $(this).data('user_name')
|
||||
},
|
||||
msgTarget: $("#alerts-page")
|
||||
});
|
||||
|
||||
$("body").on('renderSuccess.ufModal', function() {
|
||||
var modal = $(this).ufModal('getModal');
|
||||
var form = modal.find('.js-form');
|
||||
|
||||
form.ufForm()
|
||||
.on("submitSuccess.ufForm", function() {
|
||||
// Navigate or reload page on success
|
||||
if (options.delete_redirect) window.location.href = options.delete_redirect;
|
||||
else window.location.reload();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Restore user button
|
||||
el.find('.js-user-restore').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var data = {};
|
||||
data[site.csrf.keys.name] = site.csrf.name;
|
||||
data[site.csrf.keys.value] = site.csrf.value;
|
||||
|
||||
var url = site.uri.public + '/api/users/u/' + $(this).data('user_name') + '/restore';
|
||||
var debugAjax = (typeof site !== "undefined") && site.debug.ajax;
|
||||
|
||||
return $.ajax({
|
||||
type: "POST",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType: debugAjax ? 'html' : 'json',
|
||||
}).fail(function(jqXHR) {
|
||||
// Error messages
|
||||
if (debugAjax && jqXHR.responseText) {
|
||||
document.write(jqXHR.responseText);
|
||||
document.close();
|
||||
} else {
|
||||
console.log("Error (" + jqXHR.status + "): " + jqXHR.responseText);
|
||||
|
||||
// Display errors on failure
|
||||
// TODO: ufAlerts widget should have a 'destroy' method
|
||||
if (!$("#alerts-page").data('ufAlerts')) {
|
||||
$("#alerts-page").ufAlerts();
|
||||
} else {
|
||||
$("#alerts-page").ufAlerts('clear');
|
||||
}
|
||||
|
||||
$("#alerts-page").ufAlerts('fetch').ufAlerts('render');
|
||||
}
|
||||
|
||||
return jqXHR;
|
||||
}).done(function(response) {
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user