Skip to content

Commit 443fe2f

Browse files
authored
Merge pull request #3598 from NationalSecurityAgency/t#3526/store-page-state
Refs/heads/t#3526/store page state
2 parents 16ddc00 + 5af9c13 commit 443fe2f

31 files changed

+90
-63
lines changed

dashboard/src/components/access/RoleManager.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { useUpgradeInProgressErrorChecker } from '@/components/utils/errors/UseU
3131
import QuizService from '@/components/quiz/QuizService.js';
3232
import RemovalValidation from '@/components/utils/modal/RemovalValidation.vue';
3333
import { SkillsReporter } from '@skilltree/skills-client-js'
34+
import {useStorage} from "@vueuse/core";
3435
3536
const dialogMessages = useDialogMessages()
3637
// role constants
@@ -106,7 +107,7 @@ onMounted(() => {
106107
107108
const sortInfo = ref({ sortOrder: 1, sortBy: 'userId' })
108109
const possiblePageSizes = [ 5, 10, 15, 20]
109-
const pageSize = ref(5)
110+
const pageSize = useStorage('roleManager-pageSize', 5)
110111
const isLoading = ref(true)
111112
112113
const expandedRows = ref([])

dashboard/src/components/access/groups/AdminGroupDefinitions.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { useAdminGroupState } from '@/stores/UseAdminGroupState.js';
3232
import { useCommunityLabels } from '@/components/utils/UseCommunityLabels.js';
3333
import Avatar from 'primevue/avatar';
3434
import TableNoRes from "@/components/utils/table/TableNoRes.vue";
35+
import {useStorage} from "@vueuse/core";
3536
3637
const announcer = useSkillsAnnouncer()
3738
const responsive = useResponsiveBreakpoints()
@@ -73,10 +74,10 @@ const options = ref({
7374
server: false,
7475
currentPage: 1,
7576
totalRows: 0,
76-
pageSize: 5,
7777
possiblePageSizes: [5, 10, 15, 20],
7878
},
7979
});
80+
const pageSize = useStorage('adminGroupDefinitions-tablePageSize', 5)
8081
const deleteAdminGroupInfo = ref( {
8182
showDialog: false,
8283
adminGroupDef: {},
@@ -186,7 +187,7 @@ defineExpose({
186187
@filter="onFilter"
187188
v-model:sort-field="sortInfo.sortBy"
188189
v-model:sort-order="sortInfo.sortOrder"
189-
paginator :rows="5" :rowsPerPageOptions="[5, 10, 15, 20]"
190+
paginator :rows="pageSize" :rowsPerPageOptions="[5, 10, 15, 20]"
190191
show-gridlines
191192
striped-rows>
192193
<template #header>

dashboard/src/components/access/invite-only/InviteStatuses.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { useColors } from '@/skills-display/components/utilities/UseColors.js'
2626
import { useSkillsAnnouncer } from '@/common-components/utilities/UseSkillsAnnouncer.js'
2727
import { useDialogMessages } from '@/components/utils/modal/UseDialogMessages.js'
2828
import RemovalValidation from '@/components/utils/modal/RemovalValidation.vue'
29+
import {useStorage} from "@vueuse/core";
2930
3031
const route = useRoute()
3132
const responsive = useResponsiveBreakpoints()
@@ -38,7 +39,7 @@ const recipientFilter = ref('')
3839
const data = ref([])
3940
const loadingData = ref(true)
4041
const busy = ref(false)
41-
const pageSize = ref(5)
42+
const pageSize = useStorage('inviteStatuses-pageSize', 5)
4243
const possiblePageSizes = [5, 10, 15, 20]
4344
const sortInfo = ref({ sortOrder: -1, sortBy: 'expires' })
4445
const totalRows = ref(0)

dashboard/src/components/access/invite-only/RevokeUserAccess.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { useDialogMessages } from '@/components/utils/modal/UseDialogMessages.js
2929
import SkillsDataTable from '@/components/utils/table/SkillsDataTable.vue'
3030
import { FilterMatchMode } from '@primevue/core/api'
3131
import HighlightedValue from '@/components/utils/table/HighlightedValue.vue'
32+
import {useStorage} from "@vueuse/core";
3233
3334
const route = useRoute()
3435
const responsive = useResponsiveBreakpoints()
@@ -52,7 +53,7 @@ const reset = () => {
5253
const tableIsBusy = ref(false)
5354
const data = ref([])
5455
const loadingData = ref(true)
55-
const pageSize = ref(5)
56+
const pageSize = useStorage('revokeUserAccess-pageSize', 5)
5657
const possiblePageSizes = [5, 10, 15, 20]
5758
const sortInfo = ref({ sortOrder: -1, sortBy: 'userId' })
5859
const totalRows = ref(0)

dashboard/src/components/expiration/ExpirationHistory.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import Column from 'primevue/column'
2727
import DateCell from '@/components/utils/table/DateCell.vue'
2828
import { useNumberFormat } from '@/common-components/filter/UseNumberFormat.js'
2929
import TableNoRes from "@/components/utils/table/TableNoRes.vue";
30+
import {useStorage} from "@vueuse/core";
3031
3132
const route = useRoute()
3233
const userInfo = useUserInfo()
@@ -71,11 +72,11 @@ const tableOptions = ref({
7172
server: true,
7273
currentPage: 1,
7374
totalRows: 1,
74-
pageSize: 10,
7575
possiblePageSizes: [10, 25, 50],
7676
},
7777
items: [],
7878
})
79+
const pageSize = useStorage('expirationHistory-tablePageSize', 10)
7980
8081
onMounted(() => {
8182
loadData();
@@ -84,7 +85,7 @@ onMounted(() => {
8485
const loadData = () => {
8586
tableOptions.value.busy = true
8687
const params = {
87-
limit: tableOptions.value.pagination.pageSize,
88+
limit: pageSize.value,
8889
page: tableOptions.value.pagination.currentPage,
8990
orderBy: sortInfo.value.sortBy,
9091
ascending: sortInfo.value.sortOrder === 1,
@@ -107,7 +108,7 @@ const onFilter = (filterEvent) => {
107108
loadData().then(() => filtering.value = true)
108109
}
109110
const pageChanged = (pagingInfo) => {
110-
tableOptions.value.pagination.pageSize = pagingInfo.rows
111+
pageSize.value = pagingInfo.rows
111112
tableOptions.value.pagination.currentPage = pagingInfo.page + 1
112113
loadData()
113114
}
@@ -156,7 +157,7 @@ const calculateClientDisplayRoute = (props) => {
156157
@filter="onFilter"
157158
@page="pageChanged"
158159
@sort="sortField"
159-
:rows="tableOptions.pagination.pageSize"
160+
:rows="pageSize"
160161
:rowsPerPageOptions="tableOptions.pagination.possiblePageSizes"
161162
:total-records="tableOptions.pagination.totalRows"
162163
v-model:sort-field="sortInfo.sortBy"

dashboard/src/components/metrics/common/UserTagTable.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import TableNoRes from "@/components/utils/table/TableNoRes.vue";
2323
import SkillsCalendarInput from "@/components/utils/inputForm/SkillsCalendarInput.vue";
2424
import {useTimeUtils} from "@/common-components/utilities/UseTimeUtils.js";
2525
import {useSkillsAnnouncer} from "@/common-components/utilities/UseSkillsAnnouncer.js";
26+
import {useStorage} from "@vueuse/core";
2627
2728
const props = defineProps({
2829
tagChart: Object
@@ -51,12 +52,12 @@ const table = ref({
5152
server: true,
5253
currentPage: 1,
5354
totalRows: 1,
54-
pageSize: 10,
5555
removePerPage: true,
5656
},
5757
tableDescription: `${props.tagChart.title} Users`,
5858
},
5959
});
60+
const pageSize = useStorage('userTagTable-tablePageSize', 10)
6061
6162
const projectId = computed(() => {
6263
return route.params.projectId;
@@ -67,7 +68,7 @@ const tagKey = computed(() => {
6768
});
6869
6970
const pageChanged = (pagingInfo) => {
70-
table.value.options.pagination.pageSize = pagingInfo.rows
71+
pageSize.value = pagingInfo.rows
7172
table.value.options.pagination.currentPage = pagingInfo.page + 1
7273
loadData()
7374
}
@@ -96,7 +97,7 @@ const loadData = (shouldHighlight = false) => {
9697
const params = {
9798
tagKey: props.tagChart.key,
9899
currentPage: table.value.options.pagination.currentPage,
99-
pageSize: table.value.options.pagination.pageSize,
100+
pageSize: pageSize.value,
100101
sortDesc: table.value.options.sortOrder === -1,
101102
tagFilter: filters.value.tag,
102103
sortBy: table.value.options.sortBy === 'count' ? 'numUsers' : 'tag',
@@ -154,7 +155,7 @@ const filterRange = ref([]);
154155
@sort="sortTable"
155156
v-model:sort-field="table.options.sortBy"
156157
v-model:sort-order="table.options.sortOrder"
157-
:rows="table.options.pagination.pageSize"
158+
:rows="pageSize"
158159
:rowsPerPageOptions="table.options.pagination.possiblePageSizes"
159160
:total-records="table.options.pagination.totalRows"
160161
tableStoredStateId="userTagsTable"

dashboard/src/components/metrics/projectAchievements/AchievementsNavigator.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import Column from 'primevue/column'
2929
import SkillsSpinner from '@/components/utils/SkillsSpinner.vue';
3030
import { useNumberFormat } from '@/common-components/filter/UseNumberFormat.js'
3131
import TableNoRes from "@/components/utils/table/TableNoRes.vue";
32+
import {useStorage} from "@vueuse/core";
3233
3334
const route = useRoute();
3435
const numberFormat = useNumberFormat()
@@ -59,7 +60,7 @@ const sortBy = ref('achievedOn');
5960
const sortOrder = ref(-1);
6061
const currentPage = ref(1);
6162
const totalRows = ref(0);
62-
const pageSize = ref(5);
63+
const pageSize = useStorage('achievementsNavigator-pageSize', 5)
6364
const possiblePageSizes = [5, 10, 15, 20, 50];
6465
const loadingTable = ref(false);
6566
const isExporting = ref(false)

dashboard/src/components/metrics/projectSkills/SkillsUsageMetrics.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { useResponsiveBreakpoints } from '@/components/utils/misc/UseResponsiveB
2525
import Column from 'primevue/column'
2626
import { useNumberFormat } from '@/common-components/filter/UseNumberFormat.js'
2727
import TableNoRes from "@/components/utils/table/TableNoRes.vue";
28+
import {useStorage} from "@vueuse/core";
2829
2930
const route = useRoute();
3031
const numberFormat = useNumberFormat()
@@ -48,7 +49,7 @@ const filters = ref({
4849
const loading = ref(false);
4950
const isExporting = ref(false)
5051
51-
const pageSize = 5;
52+
const pageSize = useStorage('skillUsageMetrics-pageSize', 5)
5253
const possiblePageSizes = [5, 10, 15, 20, 50];
5354
5455
const tableOptions = ref({

dashboard/src/components/metrics/skill/PostAchievementUsersTable.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import SkillsDataTable from "@/components/utils/table/SkillsDataTable.vue";
2525
import SkillsDisplayPathAppendValues from "@/router/SkillsDisplayPathAppendValues.js";
2626
import { useNumberFormat } from '@/common-components/filter/UseNumberFormat.js'
2727
import { useResponsiveBreakpoints } from '@/components/utils/misc/UseResponsiveBreakpoints.js'
28+
import {useStorage} from "@vueuse/core";
2829
2930
defineProps(['skillName']);
3031
const route = useRoute();
@@ -49,7 +50,7 @@ const loading = ref(true);
4950
const hasData = ref(false);
5051
const currentPage = ref(1);
5152
const totalRows = ref(0);
52-
const pageSize = ref(5);
53+
const pageSize = useStorage('postAchievementUsersTable-pageSize', 5)
5354
const sortField = ref('userId');
5455
const sortOrder = ref(-1);
5556
const possiblePageSizes = [5, 10, 15, 20, 50];

dashboard/src/components/myProgress/discover/DiscoverProjectsPage.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import MyProgressTitle from "@/components/myProgress/MyProgressTitle.vue";
3232
import BackToMyProgressBtn from "@/components/myProgress/BackToMyProgressBtn.vue";
3333
import ContactProjectAdminsDialog from "@/components/contact/ContactProjectAdminsDialog.vue";
3434
import {useNumberFormat} from "@/common-components/filter/UseNumberFormat.js";
35+
import {useStorage} from "@vueuse/core";
3536
3637
const responsive = useResponsiveBreakpoints()
3738
const announcer = useSkillsAnnouncer()
@@ -45,7 +46,7 @@ const searchValue = ref('')
4546
const originalProjects = ref([])
4647
const projects = ref([])
4748
const totalRows = ref(0)
48-
const pageSize = ref(5)
49+
const pageSize = useStorage('discoverProjects-pageSize', 5)
4950
const possiblePageSizes = [5, 10, 15, 25, 50]
5051
const filters = ref({
5152
global: {value: null, matchMode: FilterMatchMode.CONTAINS}

0 commit comments

Comments
 (0)