qdadm 0.26.0 → 0.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -165,6 +165,14 @@ export function useListPageBuilder(config = {}) {
|
|
|
165
165
|
// Get HookRegistry for list:alter hook (optional, may not exist in tests)
|
|
166
166
|
const hooks = useHooks()
|
|
167
167
|
|
|
168
|
+
// ============ SESSION RESTORE ============
|
|
169
|
+
// Load saved filters + search from session storage (used by filterValues and searchQuery)
|
|
170
|
+
const savedSession = persistFilters ? getSessionFilters(filterSessionKey) : null
|
|
171
|
+
const savedSearch = savedSession?._search || ''
|
|
172
|
+
// Clone and remove _search from filters
|
|
173
|
+
const savedFilters = savedSession ? { ...savedSession } : null
|
|
174
|
+
if (savedFilters) delete savedFilters._search
|
|
175
|
+
|
|
168
176
|
// ============ STATE ============
|
|
169
177
|
const items = ref([])
|
|
170
178
|
const loading = ref(false)
|
|
@@ -181,8 +189,8 @@ export function useListPageBuilder(config = {}) {
|
|
|
181
189
|
const sortField = ref(defaultSort)
|
|
182
190
|
const sortOrder = ref(defaultSortOrder)
|
|
183
191
|
|
|
184
|
-
// Search
|
|
185
|
-
const searchQuery = ref(
|
|
192
|
+
// Search (initialized from session storage)
|
|
193
|
+
const searchQuery = ref(savedSearch)
|
|
186
194
|
const searchConfig = ref({
|
|
187
195
|
placeholder: 'Search...',
|
|
188
196
|
fields: [],
|
|
@@ -472,8 +480,7 @@ export function useListPageBuilder(config = {}) {
|
|
|
472
480
|
|
|
473
481
|
// ============ FILTERS ============
|
|
474
482
|
const filtersMap = ref(new Map())
|
|
475
|
-
//
|
|
476
|
-
const savedFilters = persistFilters ? getSessionFilters(filterSessionKey) : null
|
|
483
|
+
// filterValues initialized from savedFilters (loaded in SESSION RESTORE section)
|
|
477
484
|
const filterValues = ref(savedFilters || {})
|
|
478
485
|
|
|
479
486
|
function addFilter(name, filterConfig) {
|
|
@@ -896,48 +903,24 @@ export function useListPageBuilder(config = {}) {
|
|
|
896
903
|
}
|
|
897
904
|
|
|
898
905
|
/**
|
|
899
|
-
*
|
|
906
|
+
* Apply URL query params as overrides (session already loaded at init)
|
|
900
907
|
*/
|
|
901
908
|
function restoreFilters() {
|
|
902
|
-
//
|
|
903
|
-
const urlFilters = {}
|
|
909
|
+
// URL params override session values
|
|
904
910
|
for (const key of filtersMap.value.keys()) {
|
|
905
911
|
if (route.query[key] !== undefined) {
|
|
906
|
-
// Parse value (handle booleans, numbers, etc.)
|
|
907
912
|
let value = route.query[key]
|
|
908
913
|
if (value === 'true') value = true
|
|
909
914
|
else if (value === 'false') value = false
|
|
910
915
|
else if (value === 'null') value = null
|
|
911
916
|
else if (!isNaN(Number(value)) && value !== '') value = Number(value)
|
|
912
|
-
|
|
917
|
+
filterValues.value[key] = value
|
|
913
918
|
}
|
|
914
919
|
}
|
|
915
|
-
//
|
|
920
|
+
// URL search overrides session search
|
|
916
921
|
if (route.query.search) {
|
|
917
922
|
searchQuery.value = route.query.search
|
|
918
923
|
}
|
|
919
|
-
|
|
920
|
-
// Priority 2: Session storage (only for filters/search not in URL)
|
|
921
|
-
const sessionData = persistFilters ? getSessionFilters(filterSessionKey) : null
|
|
922
|
-
|
|
923
|
-
// Extract search from session (stored as _search)
|
|
924
|
-
if (sessionData?._search && !route.query.search) {
|
|
925
|
-
searchQuery.value = sessionData._search
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
// Remove _search from session data before merging with filters
|
|
929
|
-
const sessionFilters = sessionData ? { ...sessionData } : null
|
|
930
|
-
if (sessionFilters) delete sessionFilters._search
|
|
931
|
-
|
|
932
|
-
// Merge: URL takes priority over session
|
|
933
|
-
const restoredFilters = { ...sessionFilters, ...urlFilters }
|
|
934
|
-
|
|
935
|
-
// Apply restored values
|
|
936
|
-
for (const [name, value] of Object.entries(restoredFilters)) {
|
|
937
|
-
if (filtersMap.value.has(name)) {
|
|
938
|
-
filterValues.value[name] = value
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
924
|
}
|
|
942
925
|
|
|
943
926
|
// ============ ACTIONS ============
|