From 508d7481838cbd1015dcaf4e3b532e42517f2cf4 Mon Sep 17 00:00:00 2001 From: kushthedude Date: Thu, 29 Aug 2019 00:41:55 +0530 Subject: [PATCH 1/4] Enable sorting in admin users table --- app/controllers/admin/users/list.js | 31 +++++++++++++++++++---------- app/routes/admin/users/list.js | 2 +- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/controllers/admin/users/list.js b/app/controllers/admin/users/list.js index d843bd58697..dc0a9b6b586 100644 --- a/app/controllers/admin/users/list.js +++ b/app/controllers/admin/users/list.js @@ -16,6 +16,8 @@ export default class extends Controller.extend(EmberTableControllerMixin) { extraValuePaths : ['firstName', 'deletedAt'], cellComponent : 'ui-table/cell/admin/users/cell-first-name', width : 155, + isSortable : true, + headerComponent : 'tables/headers/sort', options : { hasRestorePrivileges: this.hasRestorePrivileges }, @@ -27,9 +29,11 @@ export default class extends Controller.extend(EmberTableControllerMixin) { } }, { - name : 'Email', - valuePath : 'email', - width : 160 + name : 'Email', + valuePath : 'email', + width : 175, + isSortable : true, + headerComponent : 'tables/headers/sort' }, { name : 'Status', @@ -59,15 +63,19 @@ export default class extends Controller.extend(EmberTableControllerMixin) { cellComponent : 'ui-table/cell/admin/users/cell-user-links' }, { - name : 'Member Since', - valuePath : 'createdAt', - cellComponent : 'ui-table/cell/admin/users/cell-created-at' + name : 'Member Since', + valuePath : 'createdAt', + cellComponent : 'ui-table/cell/admin/users/cell-created-at', + isSortable : true, + headerComponent : 'tables/headers/sort' }, { - name : 'Last Accessed', - valuePath : 'lastAccessedAt', - cellComponent : 'ui-table/cell/cell-simple-date', - options : { + name : 'Last Accessed', + valuePath : 'lastAccessedAt', + isSortable : true, + headerComponent : 'tables/headers/sort', + cellComponent : 'ui-table/cell/cell-simple-date', + options : { dateFormat: 'MMMM DD, YYYY - hh:mm A' } } @@ -78,6 +86,7 @@ export default class extends Controller.extend(EmberTableControllerMixin) { moveToUserDetails(id) { this.transitionToRoute('admin.users.view', id); } + @action async deleteUser(user_id) { this.set('isLoading', true); @@ -89,6 +98,7 @@ export default class extends Controller.extend(EmberTableControllerMixin) { } catch (e) { this.notify.error(this.l10n.t('An unexpected error has occurred.')); } + this.set('isLoading', false); } @@ -113,6 +123,7 @@ export default class extends Controller.extend(EmberTableControllerMixin) { this.notify.error(this.l10n.t('An unexpected error has occurred.')); console.warn(e); } + this.set('isLoading', false); } } diff --git a/app/routes/admin/users/list.js b/app/routes/admin/users/list.js index 0d310a5f145..1b0ea428c25 100644 --- a/app/routes/admin/users/list.js +++ b/app/routes/admin/users/list.js @@ -27,7 +27,7 @@ export default class extends Route.extend(EmberTableRouteMixin) { async model(params) { this.set('params', params); let filterOptions = []; - const searchField = 'firstName'; + const searchField = 'email'; if (params.users_status === 'active') { filterOptions = [ { From b1d5abf1b3a9c889d7ac5e7a3bf2c304efdc2185 Mon Sep 17 00:00:00 2001 From: Kush Trivedi Date: Fri, 30 Aug 2019 11:37:53 +0530 Subject: [PATCH 2/4] Update list.js --- app/routes/admin/users/list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routes/admin/users/list.js b/app/routes/admin/users/list.js index 1b0ea428c25..0d310a5f145 100644 --- a/app/routes/admin/users/list.js +++ b/app/routes/admin/users/list.js @@ -27,7 +27,7 @@ export default class extends Route.extend(EmberTableRouteMixin) { async model(params) { this.set('params', params); let filterOptions = []; - const searchField = 'email'; + const searchField = 'firstName'; if (params.users_status === 'active') { filterOptions = [ { From 41fe6ae46827830759a4d3840601ca2403e2b35d Mon Sep 17 00:00:00 2001 From: kushthedude Date: Sun, 1 Sep 2019 10:11:19 +0530 Subject: [PATCH 3/4] Sorting through name --- app/controllers/admin/users/list.js | 4 ++-- .../ui-table/cell/admin/users/cell-first-name.hbs | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/users/list.js b/app/controllers/admin/users/list.js index dc0a9b6b586..927e80e84e9 100644 --- a/app/controllers/admin/users/list.js +++ b/app/controllers/admin/users/list.js @@ -12,8 +12,8 @@ export default class extends Controller.extend(EmberTableControllerMixin) { return [ { name : 'Name', - valuePath : 'id', - extraValuePaths : ['firstName', 'deletedAt'], + valuePath : 'firstName', + extraValuePaths : ['deletedAt', 'id'], cellComponent : 'ui-table/cell/admin/users/cell-first-name', width : 155, isSortable : true, diff --git a/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs b/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs index aabac0fa433..718a07c8fcb 100644 --- a/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs +++ b/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs @@ -1,21 +1,21 @@ -{{extraRecords.firstName}} +{{record}}
- {{#ui-popup tagName='a' click=(action props.actions.moveToUserDetails record) content=(t 'View') class='ui icon button'}} + {{#ui-popup tagName='a' click=(action props.actions.moveToUserDetails extraRecords.id) content=(t 'View') class='ui icon button'}} {{/ui-popup}} - {{#unless record.isSuperAdmin}} - {{#if (not record.deletedAt)}} - {{#ui-popup content=(t 'Edit') click=(action props.actions.openEditModal record) class='ui icon button'}} + {{#unless extraRecords.id.isSuperAdmin}} + {{#if (not extraRecords.id.deletedAt)}} + {{#ui-popup content=(t 'Edit') click=(action props.actions.openEditModal extraRecords.id) class='ui icon button'}} {{/ui-popup}} {{/if}} {{#if (and props.options.hasRestorePrivileges extraRecords.deletedAt)}} - {{#ui-popup content=(t 'Restore') click=(action props.actions.restoreUser record) class='ui icon button' position='left center'}} + {{#ui-popup content=(t 'Restore') click=(action props.actions.restoreUser extraRecords.id) class='ui icon button' position='left center'}} {{/ui-popup}} {{else}} - {{#ui-popup content=(t 'Delete') click=(action (confirm (t 'Are you sure you would like to delete this user?') (action props.actions.deleteUser record))) class='ui icon button'}} + {{#ui-popup content=(t 'Delete') click=(action (confirm (t 'Are you sure you would like to delete this user?') (action props.actions.deleteUser extraRecords.id))) class='ui icon button'}} {{/ui-popup}} {{/if}} From a2798e47727bf169adf69fa682810df739eb9fb4 Mon Sep 17 00:00:00 2001 From: kushthedude Date: Thu, 5 Sep 2019 16:44:53 +0530 Subject: [PATCH 4/4] Fix: extraRecords used wrongly --- app/controllers/admin/users/list.js | 2 +- .../components/ui-table/cell/admin/users/cell-first-name.hbs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/users/list.js b/app/controllers/admin/users/list.js index 927e80e84e9..358feebaf90 100644 --- a/app/controllers/admin/users/list.js +++ b/app/controllers/admin/users/list.js @@ -13,7 +13,7 @@ export default class extends Controller.extend(EmberTableControllerMixin) { { name : 'Name', valuePath : 'firstName', - extraValuePaths : ['deletedAt', 'id'], + extraValuePaths : ['deletedAt', 'id', 'isSuperAdmin'], cellComponent : 'ui-table/cell/admin/users/cell-first-name', width : 155, isSortable : true, diff --git a/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs b/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs index 718a07c8fcb..61f1b2565d5 100644 --- a/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs +++ b/app/templates/components/ui-table/cell/admin/users/cell-first-name.hbs @@ -4,8 +4,8 @@ {{#ui-popup tagName='a' click=(action props.actions.moveToUserDetails extraRecords.id) content=(t 'View') class='ui icon button'}} {{/ui-popup}} - {{#unless extraRecords.id.isSuperAdmin}} - {{#if (not extraRecords.id.deletedAt)}} + {{#unless extraRecords.isSuperAdmin}} + {{#if (not extraRecords.deletedAt)}} {{#ui-popup content=(t 'Edit') click=(action props.actions.openEditModal extraRecords.id) class='ui icon button'}} {{/ui-popup}}