update text depart select

This commit is contained in:
axolotle
2021-08-01 19:39:24 +02:00
parent 2a175d315c
commit f4dc9f3fdb
3 changed files with 80 additions and 11 deletions
@@ -121,6 +121,9 @@ $input-btn-border-width: 2px;
// Dropdowns // Dropdowns
$dropdown-border-color: $border-color; $dropdown-border-color: $border-color;
$dropdown-link-hover-bg: #efebe9;
$dropdown-link-active-color: $white;
$dropdown-link-active-bg: $dark;
// Cards // Cards
$card-spacer-y: .75rem; $card-spacer-y: .75rem;
+69 -11
View File
@@ -87,17 +87,16 @@
<search-input v-if="mode !== 'tree'" v-model="activeSearch" /> <search-input v-if="mode !== 'tree'" v-model="activeSearch" />
<!-- TREE ONLY --> <!-- TREE ONLY -->
<b-form-group <b-form-group v-else id="depart-group" :label="$t('variants.depart')">
v-else <b-dropdown id="text-depart-select" variant="outline-dark" right>
label="Texte de départ:" <template #button-content>
label-for="text-depart-select" <node-view-title :node="activeNode" />
> </template>
<b-form-select
id="text-depart-select" <b-dropdown-item v-for="node in nodesDeparts" :key="node.id" @click="activeNodeId = node.id">
v-model="activeNodeId" <node-view-title :node="node" block />
:options="nodesDepartsOptions" </b-dropdown-item>
class="border" </b-dropdown>
/>
</b-form-group> </b-form-group>
</div> </div>
</template> </template>
@@ -106,11 +105,14 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { MultipleTagsSelect, SearchInput } from '@/components/formItems' import { MultipleTagsSelect, SearchInput } from '@/components/formItems'
import { NodeViewTitle } from '@/components/nodes'
export default { export default {
name: 'LibraryOptions', name: 'LibraryOptions',
components: { components: {
NodeViewTitle,
MultipleTagsSelect, MultipleTagsSelect,
SearchInput SearchInput
}, },
@@ -131,6 +133,8 @@ export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'nodesDepartsOptions', 'nodesDepartsOptions',
'nodesDeparts',
'node',
'orderedTextsDepart', 'orderedTextsDepart',
'tagsOptions', 'tagsOptions',
'nodebook', 'nodebook',
@@ -153,6 +157,10 @@ export default {
} }
}, },
activeNode () {
return this.node(this.nodeDepartId)
},
activeMode: { activeMode: {
get () { return this.mode }, get () { return this.mode },
set (value) { set (value) {
@@ -317,5 +325,55 @@ export default {
} }
} }
} }
#depart-group {
width: 100%;
@include media-breakpoint-up($size-bp) {
max-width: 50%;
}
}
#text-depart-select ::v-deep {
width: 100%;
.dropdown-menu {
max-height: 300px;
min-width: 100%;
overflow-y: auto;
overflow-x: hidden;
margin-left: 0;
}
.dropdown-toggle {
border-radius: 0 !important;
width: 100%;
padding-right: 1rem;
padding-top: .15em;
.node-view-title {
width: 100%;
text-align: left;
display: inline-block;
margin: 0;
line-height: 1.25;
&-container {
text-overflow: ellipsis;
overflow: hidden;
}
}
&::after {
margin-left: 0;
vertical-align: .35em;
}
}
.dropdown-item {
white-space: unset;
}
}
} }
</style> </style>
+8
View File
@@ -221,6 +221,14 @@ export default {
// LibraryOptions options // LibraryOptions options
tagsOptions: state => state.tagsOptions, tagsOptions: state => state.tagsOptions,
nodesDeparts: (state, getters, rootState) => {
const departIds = rootState.ids.depart
if (departIds === undefined) return
const nodes = departIds.map(id => rootState.nodes[id])
if (nodes.some(node => node === undefined)) return
return nodes
},
nodesDepartsOptions: (state, getters, rootState) => { nodesDepartsOptions: (state, getters, rootState) => {
const departIds = rootState.ids.depart const departIds = rootState.ids.depart
if (departIds === undefined) return if (departIds === undefined) return