Skip to content

Commit 5b5eb86

Browse files
committed
chore: adjustment in the filters modified and status
Signed-off-by: Crisciany Souza <[email protected]>
1 parent f85331a commit 5b5eb86

File tree

5 files changed

+39
-7
lines changed

5 files changed

+39
-7
lines changed

lib/Controller/PageController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public function __construct(
8383
#[FrontpageRoute(verb: 'GET', url: '/')]
8484
public function index(): TemplateResponse {
8585
$this->initialState->provideInitialState('config', $this->accountService->getConfig($this->userSession->getUser()));
86+
$this->initialState->provideInitialState('filters', $this->accountService->getConfigFilters($this->userSession->getUser()));
8687
$this->initialState->provideInitialState('certificate_engine', $this->accountService->getCertificateEngineName());
8788

8889
try {

lib/Service/AccountService.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,20 @@ public function getConfig(?IUser $user = null): array {
233233
$info['hasSignatureFile'] = $this->hasSignatureFile($user);
234234
$info['phoneNumber'] = $this->getPhoneNumber($user);
235235
$info['isApprover'] = $this->validateHelper->userCanApproveValidationDocuments($user, false);
236-
$info['grid_view'] = $this->getUserConfigGridView($user);
236+
$info['grid_view'] = $this->getUserConfigByKey($user, 'grid_view') === '1';;
237237

238238
return $info;
239239
}
240240

241+
/**
242+
* @return array[]
243+
*/
244+
public function getConfigFilters(?IUser $user = null): array {
245+
$info['filter_modified'] = $this->getUserConfigByKey($user, 'filter_modified');
246+
$info['filter_status'] = $this->getUserConfigByKey($user, 'filter_status');
241247

248+
return $info;
249+
}
242250

243251
private function getPhoneNumber(?IUser $user): string {
244252
if (!$user) {
@@ -260,12 +268,12 @@ public function hasSignatureFile(?IUser $user = null): bool {
260268
}
261269
}
262270

263-
private function getUserConfigGridView(?IUser $user = null): bool {
271+
private function getUserConfigByKey(?IUser $user = null, string $key): string {
264272
if (!$user) {
265-
return false;
273+
return '';
266274
}
267275

268-
return $this->config->getUserValue($user->getUID(), Application::APP_ID, 'grid_view', false) === '1';
276+
return $this->config->getUserValue($user->getUID(), Application::APP_ID, $key);
269277
}
270278

271279
/**

src/store/filters.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
import { defineStore } from 'pinia'
77

88
import { emit } from '@nextcloud/event-bus'
9-
9+
import { loadState } from '@nextcloud/initial-state'
10+
import axios from '@nextcloud/axios'
11+
import { generateOcsUrl } from '@nextcloud/router'
1012
import logger from '../helpers/logger.js'
1113

1214
export const useFiltersStore = defineStore('filter', {
1315
state: () => ({
1416
chips: {},
17+
filter_modified: loadState('libresign', 'filters', { filter_modified: '' }).filter_modified,
18+
filter_status: loadState('libresign', 'filters', { filter_status: '' }).filter_status,
1519
}),
1620

1721
getters: {
@@ -21,8 +25,16 @@ export const useFiltersStore = defineStore('filter', {
2125
},
2226

2327
actions: {
24-
onFilterUpdateChips(event) {
28+
async onFilterUpdateChips(event) {
2529
this.chips = { ...this.chips, [event.id]: [...event.detail] }
30+
let value = this.chips['modified'][0]?.id;
31+
32+
await axios.put(generateOcsUrl('/apps/libresign/api/v1/account/config/{key}', { key: 'filter_modified' }), {
33+
value,
34+
})
35+
36+
console.log(loadState('libresign', 'filters', {}))
37+
2638
emit('libresign:filters:update')
2739
logger.debug('File list filter chips updated', { chips: event.detail })
2840
},

src/views/FilesList/FileListFilter/FileListFilter.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
@click="$emit('reset-filter')">
1919
{{ t('files', 'Clear filter') }}
2020
</NcActionButton>
21+
<NcActionButton class="files-list-filter__clear-button"
22+
close-after-click
23+
@click="$emit('reset-filter')">
24+
{{ t('files', 'Set marked filter') }}
25+
</NcActionButton>
2126
</template>
2227
</NcActions>
2328
</template>

src/views/FilesList/FileListFilter/FileListFilterModified.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default {
5151
},
5252
data() {
5353
return {
54-
selectedOption: null,
54+
selectedOption: this.filtersStore.filter_modified || null,
5555
timePresets: [
5656
{
5757
id: 'today',
@@ -94,6 +94,11 @@ export default {
9494
return this.timePresets.find(({ id }) => id === this.selectedOption) ?? null
9595
},
9696
},
97+
mounted() {
98+
if (this.selectedOption) {
99+
this.setPreset(this.currentPreset)
100+
}
101+
},
97102
watch: {
98103
selectedOption() {
99104
if (this.selectedOption === null) {
@@ -114,6 +119,7 @@ export default {
114119
end: preset.end,
115120
icon: calendarSvg,
116121
text: preset.label,
122+
id: preset.id,
117123
onclick: () => this.setPreset(),
118124
})
119125
} else {

0 commit comments

Comments
 (0)