From fef1d91606c026fc16e41d80fe33750321a7b549 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Mon, 30 Mar 2020 17:33:20 -0700 Subject: [PATCH 01/13] New service for storing user settings --- ui/app/services/user-settings.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ui/app/services/user-settings.js diff --git a/ui/app/services/user-settings.js b/ui/app/services/user-settings.js new file mode 100644 index 000000000..f9841ad57 --- /dev/null +++ b/ui/app/services/user-settings.js @@ -0,0 +1,6 @@ +import Service from '@ember/service'; +import localStorageProperty from 'nomad-ui/utils/properties/local-storage'; + +export default Service.extend({ + pageSize: localStorageProperty('nomadPageSize', 25), +}); From 90794c1cce5aee7e80962db28a264a2f58558313 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Mon, 30 Mar 2020 21:12:46 -0700 Subject: [PATCH 02/13] Page size select component --- ui/app/components/page-size-select.js | 10 ++++++++++ ui/app/templates/components/page-size-select.hbs | 11 +++++++++++ 2 files changed, 21 insertions(+) create mode 100644 ui/app/components/page-size-select.js create mode 100644 ui/app/templates/components/page-size-select.hbs diff --git a/ui/app/components/page-size-select.js b/ui/app/components/page-size-select.js new file mode 100644 index 000000000..0bde78aec --- /dev/null +++ b/ui/app/components/page-size-select.js @@ -0,0 +1,10 @@ +import Component from '@ember/component'; +import { inject as service } from '@ember/service'; + +export default Component.extend({ + tagName: '', + + userSettings: service(), + + pageSizeOptions: Object.freeze([10, 25, 50]), +}); diff --git a/ui/app/templates/components/page-size-select.hbs b/ui/app/templates/components/page-size-select.hbs new file mode 100644 index 000000000..c2e87cf3c --- /dev/null +++ b/ui/app/templates/components/page-size-select.hbs @@ -0,0 +1,11 @@ +
+ Per page + + {{option}} + +
From 7d14e581dac2bf063a996adc5b5040517348c05b Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Mon, 30 Mar 2020 21:13:32 -0700 Subject: [PATCH 03/13] Add page size select to the jobs list page --- ui/app/controllers/jobs/index.js | 5 +++-- ui/app/templates/jobs/index.hbs | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/app/controllers/jobs/index.js b/ui/app/controllers/jobs/index.js index 279b69434..7052e773a 100644 --- a/ui/app/controllers/jobs/index.js +++ b/ui/app/controllers/jobs/index.js @@ -1,5 +1,5 @@ import { inject as service } from '@ember/service'; -import { alias } from '@ember/object/computed'; +import { alias, readOnly } from '@ember/object/computed'; import Controller, { inject as controller } from '@ember/controller'; import { computed } from '@ember/object'; import { scheduleOnce } from '@ember/runloop'; @@ -10,6 +10,7 @@ import { serialize, deserializedQueryParam as selection } from 'nomad-ui/utils/q export default Controller.extend(Sortable, Searchable, { system: service(), + userSettings: service(), jobsController: controller('jobs'), isForbidden: alias('jobsController.isForbidden'), @@ -26,7 +27,7 @@ export default Controller.extend(Sortable, Searchable, { }, currentPage: 1, - pageSize: 10, + pageSize: readOnly('userSettings.pageSize'), sortProperty: 'modifyIndex', sortDescending: true, diff --git a/ui/app/templates/jobs/index.hbs b/ui/app/templates/jobs/index.hbs index 714d82c53..a3ebe6003 100644 --- a/ui/app/templates/jobs/index.hbs +++ b/ui/app/templates/jobs/index.hbs @@ -93,6 +93,7 @@ {{/t.body}} {{/list-table}}
+ {{page-size-select}}
From 498ca211596b25b8d29de5484b5060699c42bf3c Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Mon, 30 Mar 2020 21:20:58 -0700 Subject: [PATCH 06/13] Reset current page when changing page size --- ui/app/components/page-size-select.js | 5 +++-- ui/app/templates/components/page-size-select.hbs | 5 ++++- ui/app/templates/jobs/index.hbs | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ui/app/components/page-size-select.js b/ui/app/components/page-size-select.js index 0bde78aec..0776d7084 100644 --- a/ui/app/components/page-size-select.js +++ b/ui/app/components/page-size-select.js @@ -2,9 +2,10 @@ import Component from '@ember/component'; import { inject as service } from '@ember/service'; export default Component.extend({ - tagName: '', - userSettings: service(), + tagName: '', pageSizeOptions: Object.freeze([10, 25, 50]), + + onChange() {}, }); diff --git a/ui/app/templates/components/page-size-select.hbs b/ui/app/templates/components/page-size-select.hbs index c2e87cf3c..42e389b75 100644 --- a/ui/app/templates/components/page-size-select.hbs +++ b/ui/app/templates/components/page-size-select.hbs @@ -5,7 +5,10 @@ class="field-body" @options={{pageSizeOptions}} @selected={{userSettings.pageSize}} - @onChange={{action (mut userSettings.pageSize)}} as |option|> + @onChange={{action (queue + (action (mut userSettings.pageSize)) + (action onChange) + )}} as |option|> {{option}} diff --git a/ui/app/templates/jobs/index.hbs b/ui/app/templates/jobs/index.hbs index 51ee08736..bcbc76767 100644 --- a/ui/app/templates/jobs/index.hbs +++ b/ui/app/templates/jobs/index.hbs @@ -93,7 +93,7 @@ {{/t.body}} {{/list-table}}
- {{page-size-select}} + {{page-size-select onChange=(action resetPagination)}}