mirror of
				https://github.com/simon987/sist2.git
				synced 2025-10-30 23:46:52 +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