|
5 | 5 | v-icon event_note |
6 | 6 | v-toolbar-title {{ $t('Notes') }} |
7 | 7 | v-spacer |
8 | | - v-toolbar-actions |
9 | | - v-tooltip(bottom) |
10 | | - v-btn(icon, :to="{name:'export-data'}", slot="activator") |
11 | | - v-icon archive |
12 | | - span {{ $t('Import your data manually') }} |
13 | | - v-tooltip(bottom) |
14 | | - v-btn(icon, :to="{name:'import-data'}", slot="activator") |
15 | | - v-icon unarchive |
16 | | - span {{ $t('Export your data manually') }} |
| 8 | + v-tooltip(bottom) |
| 9 | + v-btn(icon, :to="{name:'export-data'}", slot="activator") |
| 10 | + v-icon archive |
| 11 | + span {{ $t('Import your data manually') }} |
| 12 | + v-tooltip(bottom) |
| 13 | + v-btn(icon, :to="{name:'import-data'}", slot="activator") |
| 14 | + v-icon unarchive |
| 15 | + span {{ $t('Export your data manually') }} |
17 | 16 | v-alert(type="info", :value="notes.length <= 0") |
18 | 17 | span {{ $t('There is no notes') }}. |
19 | 18 | br |
20 | 19 | router-link(style="color:white;", :to="{name: 'edit-note', params: {id: 1}}") {{ $t('Create a note') }} |
21 | 20 | v-autocomplete( |
22 | 21 | v-model="subjectsFilters", |
23 | | - :items="Object.keys($store.state.subjects)", |
| 22 | + :items="availableSubjects", |
24 | 23 | :label="$t('Filter')", |
25 | 24 | class="mb-2 mx-1", |
26 | 25 | prepend-inner-icon="filter_list", |
@@ -53,27 +52,42 @@ export default { |
53 | 52 | }, |
54 | 53 | }, |
55 | 54 | computed: { |
56 | | - filtered_notes () { |
| 55 | + filtered_notes() { |
57 | 56 | return this.notes.filter((note) => { |
58 | 57 | let result = !(this.subjectsFilters.length > 0); |
59 | 58 |
|
60 | 59 | if(typeof(note.subjects) !== 'undefined') { |
61 | | - for (let i = 0; i < note.subjects.length; i++) { |
62 | | - if(this.subjectsFilters.includes(note.subjects[i])) { |
63 | | - result = true; |
64 | | - break; |
| 60 | + if(this.subjectsFilters.includes('*' + this.$t('no subject') + '*') && note.subjects.length === 0) { |
| 61 | + result = true; |
| 62 | + } else { |
| 63 | + for (let i = 0; i < note.subjects.length; i++) { |
| 64 | + if(this.subjectsFilters.includes(note.subjects[i])) { |
| 65 | + result = true; |
| 66 | + break; |
| 67 | + } |
65 | 68 | } |
66 | 69 | } |
| 70 | + } else { |
| 71 | + if(this.subjectsFilters.includes('*' + this.$t('no subject') + '*')) { |
| 72 | + result = true; |
| 73 | + } |
67 | 74 | } |
68 | 75 |
|
69 | 76 | return result; |
70 | 77 | }); |
71 | 78 | }, |
72 | | - notes () { |
| 79 | + notes() { |
73 | 80 | return Object.keys(this.$store.state.notes).map((key) => { |
74 | 81 | return this.$store.state.notes[key]; |
75 | 82 | }); |
76 | 83 | }, |
| 84 | + availableSubjects() { |
| 85 | + let result = ['*' + this.$t('no subject') + '*']; |
| 86 | +
|
| 87 | + result = result.concat(Object.keys(this.$store.state.subjects)); |
| 88 | +
|
| 89 | + return result; |
| 90 | + } |
77 | 91 | }, |
78 | 92 | methods: { |
79 | 93 | saveFilter() { |
|
0 commit comments