Skip to content

Commit 589c1e3

Browse files
#932 Implemented redirect on deletion option for user, role, and group pages
1 parent 38c8605 commit 589c1e3

12 files changed

Lines changed: 44 additions & 24 deletions

File tree

app/sprinkles/admin/assets/userfrosting/js/pages/group.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
$(document).ready(function() {
1111
// Control buttons
12-
bindGroupButtons($("#view-group"));
12+
bindGroupButtons($("#view-group"), { delete_redirect: page.delete_redirect });
1313

1414
// Table of users in this group
1515
$("#widget-group-users").ufTable({

app/sprinkles/admin/assets/userfrosting/js/pages/role.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
$(document).ready(function() {
1111
// Control buttons
12-
bindRoleButtons($("#view-role"));
12+
bindRoleButtons($("#view-role"), { delete_redirect: page.delete_redirect });
1313

1414
$("#widget-role-permissions").ufTable({
1515
dataUrl: site.uri.public + '/api/roles/r/' + page.role_slug + '/permissions',

app/sprinkles/admin/assets/userfrosting/js/pages/user.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
$(document).ready(function() {
1111
// Control buttons
12-
bindUserButtons($("#view-user"));
12+
bindUserButtons($("#view-user"), { delete_redirect: page.delete_redirect });
1313

1414
// Table of activities
1515
$("#widget-user-activities").ufTable({

app/sprinkles/admin/assets/userfrosting/js/widgets/groups.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,12 @@ function attachGroupForm() {
5353

5454
/**
5555
* Link group action buttons, for example in a table or on a specific group's page.
56+
* @param {module:jQuery} el jQuery wrapped element to target.
57+
* @param {{delete_redirect: string}} options Options used to modify behaviour of button actions.
5658
*/
57-
function bindGroupButtons(el) {
59+
function bindGroupButtons(el, options) {
60+
if (!options) options = {};
61+
5862
/**
5963
* Link row buttons after table is loaded.
6064
*/
@@ -95,8 +99,9 @@ function bindGroupButtons(el) {
9599

96100
form.ufForm()
97101
.on("submitSuccess.ufForm", function() {
98-
// Reload page on success
99-
window.location.reload();
102+
// Navigate or reload page on success
103+
if (options.delete_redirect) window.location.href = options.delete_redirect;
104+
else window.location.reload();
100105
});
101106
});
102107
});

app/sprinkles/admin/assets/userfrosting/js/widgets/roles.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,12 @@ function attachRoleForm() {
4444

4545
/**
4646
* Link role action buttons, for example in a table or on a specific role's page.
47+
* @param {module:jQuery} el jQuery wrapped element to target.
48+
* @param {{delete_redirect: string}} options Options used to modify behaviour of button actions.
4749
*/
48-
function bindRoleButtons(el) {
50+
function bindRoleButtons(el, options) {
51+
if (!options) options = {};
52+
4953
/**
5054
* Link row buttons after table is loaded.
5155
*/
@@ -134,8 +138,9 @@ function bindRoleButtons(el) {
134138

135139
form.ufForm()
136140
.on("submitSuccess.ufForm", function() {
137-
// Reload page on success
138-
window.location.reload();
141+
// Navigate or reload page on success
142+
if (options.delete_redirect) window.location.href = options.delete_redirect;
143+
else window.location.reload();
139144
});
140145
});
141146
});

app/sprinkles/admin/assets/userfrosting/js/widgets/users.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,11 @@ function updateUser(userName, fieldName, fieldValue) {
125125

126126
/**
127127
* Link user action buttons, for example in a table or on a specific user's page.
128+
* @param {module:jQuery} el jQuery wrapped element to target.
129+
* @param {{delete_redirect: string}} options Options used to modify behaviour of button actions.
128130
*/
129-
function bindUserButtons(el) {
131+
function bindUserButtons(el, options) {
132+
if (!options) options = {};
130133

131134
/**
132135
* Buttons that launch a modal dialog
@@ -243,14 +246,15 @@ function updateUser(userName, fieldName, fieldValue) {
243246
msgTarget: $("#alerts-page")
244247
});
245248

246-
$("body").on('renderSuccess.ufModal', function (data) {
249+
$("body").on('renderSuccess.ufModal', function () {
247250
var modal = $(this).ufModal('getModal');
248251
var form = modal.find('.js-form');
249252

250253
form.ufForm()
251254
.on("submitSuccess.ufForm", function() {
252-
// Reload page on success
253-
window.location.reload();
255+
// Navigate or reload page on success
256+
if (options.delete_redirect) window.location.href = options.delete_redirect;
257+
else window.location.reload();
254258
});
255259
});
256260
});

app/sprinkles/admin/src/Controller/GroupController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,8 @@ public function pageInfo(Request $request, Response $response, $args)
601601
return $this->ci->view->render($response, 'pages/group.html.twig', [
602602
'group' => $group,
603603
'fields' => $fields,
604-
'tools' => $editButtons
604+
'tools' => $editButtons,
605+
'delete_redirect' => $this->ci->router->pathFor('uri_groups')
605606
]);
606607
}
607608

app/sprinkles/admin/src/Controller/RoleController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,8 @@ public function pageInfo(Request $request, Response $response, $args)
707707
return $this->ci->view->render($response, 'pages/role.html.twig', [
708708
'role' => $role,
709709
'fields' => $fields,
710-
'tools' => $editButtons
710+
'tools' => $editButtons,
711+
'delete_redirect' => $this->ci->router->pathFor('uri_roles')
711712
]);
712713
}
713714

app/sprinkles/admin/src/Controller/UserController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1020,7 +1020,8 @@ public function pageInfo(Request $request, Response $response, $args)
10201020
'locales' => $locales,
10211021
'fields' => $fields,
10221022
'tools' => $editButtons,
1023-
'widgets' => $widgets
1023+
'widgets' => $widgets,
1024+
'delete_redirect' => $this->ci->router->pathFor('uri_users')
10241025
]);
10251026
}
10261027

app/sprinkles/admin/templates/pages/group.html.twig

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,12 @@
8888
<script>
8989
{% include "pages/partials/page.js.twig" %}
9090
91-
// Add user name
91+
// Add group slug
9292
page = $.extend(
93-
true, // deep extend
93+
true, // deep extend
9494
{
95-
"group_slug": "{{group.slug}}"
95+
group_slug: "{{group.slug}}",
96+
delete_redirect: "{{delete_redirect}}"
9697
},
9798
page
9899
);

0 commit comments

Comments
 (0)