Skip to content

Commit 47ae141

Browse files
committed
chore: status filter saved options
Signed-off-by: Crisciany Souza <[email protected]>
1 parent 363577b commit 47ae141

File tree

2 files changed

+75
-8
lines changed

2 files changed

+75
-8
lines changed

src/store/filters.js

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ export const useFiltersStore = defineStore('filter', {
2222
activeChips(state) {
2323
return Object.values(state.chips).flat()
2424
},
25+
filterStatusArray(state) {
26+
try {
27+
return state.filter_status ? JSON.parse(state.filter_status) : []
28+
} catch (e) {
29+
console.error('Erro ao converter filter_status:', e)
30+
return []
31+
}
32+
},
2533
},
2634

2735
actions: {
@@ -31,23 +39,48 @@ export const useFiltersStore = defineStore('filter', {
3139
emit('libresign:filters:update')
3240
logger.debug('File list filter chips updated', { chips: event.detail })
3341

42+
3443
console.log('onFilterUpdateChips')
44+
45+
46+
console.log(this.chips)
47+
console.log(event.id)
3548
},
3649

3750
async onFilterUpdateChipsAndSave(event) {
3851
this.chips = { ...this.chips, [event.id]: [...event.detail] }
39-
let value = this.chips['modified'][0]?.id || '';
4052

41-
await axios.put(generateOcsUrl('/apps/libresign/api/v1/account/config/{key}', { key: 'filter_modified' }), {
42-
value,
43-
})
4453

45-
console.log(loadState('libresign', 'filters', {}))
54+
if(event.id == 'modified'){
55+
let value = this.chips['modified'][0]?.id || '';
56+
57+
await axios.put(generateOcsUrl('/apps/libresign/api/v1/account/config/{key}', { key: 'filter_modified' }), {
58+
value,
59+
})
60+
61+
emit('libresign:filters:update')
62+
}
63+
64+
if(event.id == 'status'){
65+
//let value = this.chips['status'][0]?.id || '';
66+
67+
const value = event.detail != "" ? JSON.stringify(event.detail) : '';
68+
69+
console.log(this.chips)
70+
console.log(event.detail)
71+
72+
await axios.put(generateOcsUrl('/apps/libresign/api/v1/account/config/{key}', { key: 'filter_status' }), {
73+
value,
74+
})
75+
76+
emit('libresign:filters:update')
77+
}
78+
4679

47-
emit('libresign:filters:update')
4880
logger.debug('File list filter chips updated', { chips: event.detail })
4981

5082
console.log('onFilterUpdateChipsAndSave')
83+
console.log(event.id)
5184
},
5285
},
5386
})

src/views/FilesList/FileListFilter/FileListFilterStatus.vue

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
<FileListFilter class="file-list-filter-status"
77
:is-active="isActive"
88
:filter-name="t('libresign', 'Status')"
9-
@reset-filter="resetFilter">
9+
@reset-filter="resetFilter"
10+
@set-marked-filter="setMarkedFilter">
1011
<template #icon>
1112
<NcIconSvgWrapper :path="mdiListStatus" />
1213
</template>
@@ -50,7 +51,7 @@ export default {
5051
},
5152
data() {
5253
return {
53-
selectedOptions: [],
54+
selectedOptions: this.filtersStore.filterStatusArray || [],
5455
}
5556
},
5657
computed: {
@@ -61,6 +62,11 @@ export default {
6162
return fileStatus.filter(item => [0, 1, 2, 3].includes(item.id))
6263
},
6364
},
65+
mounted() {
66+
if (this.selectedOptions.length > 0) {
67+
this.setPreset(this.selectedOptions)
68+
}
69+
},
6470
watch: {
6571
selectedOptions(newValue, oldValue) {
6672
if (newValue.length === 0) {
@@ -91,6 +97,7 @@ export default {
9197
if (this.selectedOptions.length > 0) {
9298
this.selectedOptions = []
9399
}
100+
this.filtersStore.onFilterUpdateChipsAndSave({ detail: '', id: 'status' })
94101
},
95102
toggleOption(option) {
96103
const idx = this.selectedOptions.indexOf(option)
@@ -99,7 +106,34 @@ export default {
99106
} else {
100107
this.selectedOptions.push(option)
101108
}
109+
110+
console.log('toggleOption')
111+
console.log(this.selectedOptions)
102112
},
113+
setMarkedFilter(){
114+
115+
const chips = []
116+
117+
let presets = this.selectedOptions
118+
119+
if (presets && presets.length > 0) {
120+
for (const preset of presets) {
121+
chips.push({
122+
id: preset.id,
123+
icon: preset.icon,
124+
text: preset.label,
125+
onclick: () => this.setPreset(presets.filter(({ id }) => id !== preset.id)),
126+
})
127+
}
128+
} else {
129+
this.resetFilter()
130+
}
131+
132+
console.log('setMarkedFilter')
133+
console.log(presets)
134+
135+
this.filtersStore.onFilterUpdateChipsAndSave({ detail: chips, id: 'status' })
136+
}
103137
},
104138
}
105139
</script>

0 commit comments

Comments
 (0)