mirror of
https://github.com/simon987/sist2.git
synced 2025-04-16 00:46:43 +00:00
Add configuration option to use a date picker instead of date slider
This commit is contained in:
parent
b799a2e976
commit
cf56bdfb74
2
sist2-vue/dist/js/index.js
vendored
2
sist2-vue/dist/js/index.js
vendored
File diff suppressed because one or more lines are too long
@ -1,5 +1,31 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="dateSlider"></div>
|
<div v-if="$store.state.optUseDatePicker">
|
||||||
|
<b-row>
|
||||||
|
<b-col sm="6">
|
||||||
|
<b-form-datepicker
|
||||||
|
value-as-date
|
||||||
|
:date-format-options="{ year: 'numeric', month: '2-digit', day: '2-digit' }"
|
||||||
|
:locale="$store.state.optLang"
|
||||||
|
class="mb-2"
|
||||||
|
:value="dateMin" @input="setDateMin"></b-form-datepicker>
|
||||||
|
</b-col>
|
||||||
|
<b-col sm="6">
|
||||||
|
<b-form-datepicker
|
||||||
|
value-as-date
|
||||||
|
:date-format-options="{ year: 'numeric', month: '2-digit', day: '2-digit' }"
|
||||||
|
:locale="$store.state.optLang"
|
||||||
|
class="mb-2"
|
||||||
|
:value="dateMax" @input="setDateMax"></b-form-datepicker>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<b-row>
|
||||||
|
<b-col style="height: 70px;">
|
||||||
|
<div id="dateSlider"></div>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -10,11 +36,36 @@ import {mergeTooltips} from "@/util-js";
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "DateSlider",
|
name: "DateSlider",
|
||||||
|
methods: {
|
||||||
|
setDateMin(val) {
|
||||||
|
const epochDate = Math.ceil(+val / 1000);
|
||||||
|
this.$store.commit("setDateMin", epochDate);
|
||||||
|
},
|
||||||
|
setDateMax(val) {
|
||||||
|
const epochDate = Math.ceil(+val / 1000);
|
||||||
|
this.$store.commit("setDateMax", epochDate);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
dateMin() {
|
||||||
|
const dateMin = this.$store.state.dateMin ? this.$store.state.dateMin : this.$store.state.dateBoundsMin;
|
||||||
|
return new Date(dateMin * 1000)
|
||||||
|
},
|
||||||
|
dateMax() {
|
||||||
|
const dateMax = this.$store.state.dateMax ? this.$store.state.dateMax : this.$store.state.dateBoundsMax;
|
||||||
|
return new Date(dateMax * 1000)
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$store.subscribe((mutation) => {
|
this.$store.subscribe((mutation) => {
|
||||||
if (mutation.type === "setDateBoundsMax") {
|
if (mutation.type === "setDateBoundsMax") {
|
||||||
const elem = document.getElementById("dateSlider");
|
const elem = document.getElementById("dateSlider");
|
||||||
|
|
||||||
|
if (elem === null) {
|
||||||
|
// Using b-form-datepicker, skip initialisation of slider
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (elem.children.length > 0) {
|
if (elem.children.length > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,8 @@ export default {
|
|||||||
tagOrOperator: "Use OR operator when specifying multiple tags.",
|
tagOrOperator: "Use OR operator when specifying multiple tags.",
|
||||||
hideDuplicates: "Hide duplicate results based on checksum",
|
hideDuplicates: "Hide duplicate results based on checksum",
|
||||||
hideLegacy: "Hide the 'legacyES' Elasticsearch notice",
|
hideLegacy: "Hide the 'legacyES' Elasticsearch notice",
|
||||||
updateMimeMap: "Update the Media Types tree in real time"
|
updateMimeMap: "Update the Media Types tree in real time",
|
||||||
|
useDatePicker: "Use a Date Picker component rather than a slider"
|
||||||
},
|
},
|
||||||
queryMode: {
|
queryMode: {
|
||||||
simple: "Simple",
|
simple: "Simple",
|
||||||
@ -229,7 +230,8 @@ export default {
|
|||||||
tagOrOperator: "Utiliser l'opérateur OU lors de la spécification de plusieurs tags",
|
tagOrOperator: "Utiliser l'opérateur OU lors de la spécification de plusieurs tags",
|
||||||
hideDuplicates: "Masquer les résultats en double",
|
hideDuplicates: "Masquer les résultats en double",
|
||||||
hideLegacy: "Masquer la notice 'legacyES' Elasticsearch",
|
hideLegacy: "Masquer la notice 'legacyES' Elasticsearch",
|
||||||
updateMimeMap: "Mettre à jour l'arbre de Types de médias en temps réel"
|
updateMimeMap: "Mettre à jour l'arbre de Types de médias en temps réel",
|
||||||
|
useDatePicker: "Afficher un composant « Date Picker » plutôt qu'un slider"
|
||||||
},
|
},
|
||||||
queryMode: {
|
queryMode: {
|
||||||
simple: "Simple",
|
simple: "Simple",
|
||||||
@ -391,7 +393,8 @@ export default {
|
|||||||
tagOrOperator: "使用或操作(OR)匹配多个标签。",
|
tagOrOperator: "使用或操作(OR)匹配多个标签。",
|
||||||
hideDuplicates: "使用校验码隐藏重复结果",
|
hideDuplicates: "使用校验码隐藏重复结果",
|
||||||
hideLegacy: "隐藏'legacyES' Elasticsearch 通知",
|
hideLegacy: "隐藏'legacyES' Elasticsearch 通知",
|
||||||
updateMimeMap: "媒体类型树的实时更新"
|
updateMimeMap: "媒体类型树的实时更新",
|
||||||
|
useDatePicker: "使用日期选择器组件而不是滑块"
|
||||||
},
|
},
|
||||||
queryMode: {
|
queryMode: {
|
||||||
simple: "简单",
|
simple: "简单",
|
||||||
|
@ -49,6 +49,7 @@ export default new Vuex.Store({
|
|||||||
optLightboxSlideDuration: 15,
|
optLightboxSlideDuration: 15,
|
||||||
optHideLegacy: false,
|
optHideLegacy: false,
|
||||||
optUpdateMimeMap: true,
|
optUpdateMimeMap: true,
|
||||||
|
optUseDatePicker: false,
|
||||||
|
|
||||||
_onLoadSelectedIndices: [] as string[],
|
_onLoadSelectedIndices: [] as string[],
|
||||||
_onLoadSelectedMimeTypes: [] as string[],
|
_onLoadSelectedMimeTypes: [] as string[],
|
||||||
@ -157,6 +158,7 @@ export default new Vuex.Store({
|
|||||||
setOptTreemapColor: (state, val) => state.optTreemapColor = val,
|
setOptTreemapColor: (state, val) => state.optTreemapColor = val,
|
||||||
setOptHideLegacy: (state, val) => state.optHideLegacy = val,
|
setOptHideLegacy: (state, val) => state.optHideLegacy = val,
|
||||||
setOptUpdateMimeMap: (state, val) => state.optUpdateMimeMap = val,
|
setOptUpdateMimeMap: (state, val) => state.optUpdateMimeMap = val,
|
||||||
|
setOptUseDatePicker: (state, val) => state.optUseDatePicker = val,
|
||||||
|
|
||||||
setOptLightboxLoadOnlyCurrent: (state, val) => state.optLightboxLoadOnlyCurrent = val,
|
setOptLightboxLoadOnlyCurrent: (state, val) => state.optLightboxLoadOnlyCurrent = val,
|
||||||
setOptLightboxSlideDuration: (state, val) => state.optLightboxSlideDuration = val,
|
setOptLightboxSlideDuration: (state, val) => state.optLightboxSlideDuration = val,
|
||||||
@ -366,5 +368,6 @@ export default new Vuex.Store({
|
|||||||
optResultSize: state => state.size,
|
optResultSize: state => state.size,
|
||||||
optHideLegacy: state => state.optHideLegacy,
|
optHideLegacy: state => state.optHideLegacy,
|
||||||
optUpdateMimeMap: state => state.optUpdateMimeMap,
|
optUpdateMimeMap: state => state.optUpdateMimeMap,
|
||||||
|
optUseDatePicker: state => state.optUseDatePicker,
|
||||||
}
|
}
|
||||||
})
|
})
|
@ -41,6 +41,10 @@
|
|||||||
<b-form-checkbox :checked="optUpdateMimeMap" @input="setOptUpdateMimeMap">
|
<b-form-checkbox :checked="optUpdateMimeMap" @input="setOptUpdateMimeMap">
|
||||||
{{ $t("opt.updateMimeMap") }}
|
{{ $t("opt.updateMimeMap") }}
|
||||||
</b-form-checkbox>
|
</b-form-checkbox>
|
||||||
|
|
||||||
|
<b-form-checkbox :checked="optUseDatePicker" @input="setOptUseDatePicker">
|
||||||
|
{{ $t("opt.useDatePicker") }}
|
||||||
|
</b-form-checkbox>
|
||||||
</b-card>
|
</b-card>
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
@ -229,6 +233,7 @@ export default {
|
|||||||
"optHideDuplicates",
|
"optHideDuplicates",
|
||||||
"optHideLegacy",
|
"optHideLegacy",
|
||||||
"optUpdateMimeMap",
|
"optUpdateMimeMap",
|
||||||
|
"optUseDatePicker",
|
||||||
]),
|
]),
|
||||||
clientWidth() {
|
clientWidth() {
|
||||||
return window.innerWidth;
|
return window.innerWidth;
|
||||||
@ -272,7 +277,8 @@ export default {
|
|||||||
"setOptLang",
|
"setOptLang",
|
||||||
"setOptHideDuplicates",
|
"setOptHideDuplicates",
|
||||||
"setOptHideLegacy",
|
"setOptHideLegacy",
|
||||||
"setOptUpdateMimeMap"
|
"setOptUpdateMimeMap",
|
||||||
|
"setOptUseDatePicker",
|
||||||
]),
|
]),
|
||||||
onResetClick() {
|
onResetClick() {
|
||||||
localStorage.removeItem("sist2_configuration");
|
localStorage.removeItem("sist2_configuration");
|
||||||
|
@ -19,11 +19,7 @@
|
|||||||
</b-row>
|
</b-row>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col sm="6">
|
<b-col sm="6">
|
||||||
<b-row>
|
<DateSlider></DateSlider>
|
||||||
<b-col style="height: 70px;">
|
|
||||||
<DateSlider></DateSlider>
|
|
||||||
</b-col>
|
|
||||||
</b-row>
|
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col>
|
<b-col>
|
||||||
<IndexPicker></IndexPicker>
|
<IndexPicker></IndexPicker>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user