Newer
Older
<div class="filters-container">
<div class="ui styled accordion">
<div class="title collapsible-filters">
FILTRES
<i
:class="isFiltersVisible ? 'caret down' : 'caret right'"
class="ui icon"
/>
</div>
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<div
:class="isFiltersVisible ? '' : 'hidden'"
class="ui menu filters"
>
<div class="item">
<label>
Niveau d'autorisation requis
</label>
<DropdownMenuItem
:options="accessLevelOptions"
v-on="$listeners"
/>
</div>
<div class="item">
<label>
Mon niveau d'autorisation
</label>
<DropdownMenuItem
:options="userAccessLevelOptions"
v-on="$listeners"
/>
</div>
<div class="item">
<label>
Modération
</label>
<DropdownMenuItem
:options="moderationOptions"
v-on="$listeners"
/>
</div>
<div class="right item">
<label>
Rechercher un projet
</label>
<search-projects
:search-function="SEARCH_PROJECTS"
/>
</div>
import { mapActions } from 'vuex';
import DropdownMenuItem from '@/components/Projects/DropdownMenuItem.vue';
import SearchProjects from '@/components/Projects/SearchProjects.vue';
DropdownMenuItem,
SearchProjects,
},
data() {
return {
label: 'Tous',
filter: 'moderation',
value: null
label: 'Projet modéré',
filter: 'moderation',
value: 'true'
label: 'Projet non modéré',
filter: 'moderation',
value: 'false'
label: 'Tous',
filter: 'access_level',
value: null
label: 'Utilisateur connecté',
filter: 'access_level',
value: 'logged_user'
label: 'Contributeur',
filter: 'access_level',
value: 'contributor'
label: 'Modérateur',
filter: 'access_level',
value: 'moderator'
label: 'Administrateur projet',
filter: 'access_level',
value: 'admin'
label: 'Tous',
filter: 'user_access_level',
value: null
label: 'Utilisateur connecté',
filter: 'user_access_level',
label: 'Contributeur',
filter: 'user_access_level',
label: 'Modérateur',
filter: 'user_access_level',
label: 'Administrateur projet',
filter: 'user_access_level',
mounted() {
const el = document.getElementsByClassName('collapsible-filters');
el[0].addEventListener('click', function() {
const content = document.getElementsByClassName('filters');
content[0].classList.toggle('hidden');
if (content[0].style.maxHeight){
content[0].style.maxHeight = null;
} else {
content[0].style.maxHeight = content[0].scrollHeight + 5 + "px";
}
});
},
methods: {
...mapActions('projects', [
'SEARCH_PROJECTS'
])
.transition-properties(...) {
-webkit-transition: @arguments;
-moz-transition: @arguments;
-o-transition: @arguments;
transition: @arguments;
}
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
.filters-container {
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
.accordion {
width: fit-content;
.collapsible-filters {
cursor: pointer;
font-size: 1.25em;
padding-right: 0;
}
}
.filters {
width: 100%;
height:auto;
min-height: 0;
max-height:75px;
margin: 0 0 1em 0;
.transition-properties(max-height 0.2s ease-out;);
.item {
display: flex;
flex-direction: column;
align-items: flex-start !important;
padding: 0.4em 0.6em;
label {
margin-bottom: 0.2em;
font-size: 0.9em;
font-weight: 600;
}
}
.item {
width: 25%;
}
.right.item::before {
width: 0;
.filters.hidden {
max-height: 0;
overflow: hidden;
border: none;