Transformations list: Persist & restore last search query (#3404)
Persistence was never implemented for the search box for transformations. This was part of the TODO-V3.1 updates required. Signed-off-by: Jeff James <jeff@james-online.com>pull/3370/merge
							parent
							
								
									58b8a71f85
								
							
						
					
					
						commit
						c058c1989f
					
				| 
						 | 
				
			
			@ -9,6 +9,7 @@ export const useLastSearchQueryStore = defineStore('lastSearchQuery', () => {
 | 
			
		|||
  const lastScheduleSearchQuery = ref<string>('')
 | 
			
		||||
  const lastModelSearchQuery = ref<string>('')
 | 
			
		||||
  const lastRulesSearchQuery = ref<object>({})
 | 
			
		||||
  const lastTransformationSearchQuery = ref<string>('')
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    lastItemSearchQuery,
 | 
			
		||||
| 
						 | 
				
			
			@ -16,6 +17,7 @@ export const useLastSearchQueryStore = defineStore('lastSearchQuery', () => {
 | 
			
		|||
    lastPagesSearchQuery,
 | 
			
		||||
    lastScheduleSearchQuery,
 | 
			
		||||
    lastModelSearchQuery,
 | 
			
		||||
    lastRulesSearchQuery
 | 
			
		||||
    lastRulesSearchQuery,
 | 
			
		||||
    lastTransformationSearchQuery
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <f7-page @page:afterin="onPageAfterIn">
 | 
			
		||||
  <f7-page @page:afterin="onPageAfterIn" @page:beforeout="onPageBeforeOut">
 | 
			
		||||
    <f7-navbar>
 | 
			
		||||
      <oh-nav-content title="Transformations" back-link="Settings" back-link-url="/settings/">
 | 
			
		||||
        <template #right>
 | 
			
		||||
| 
						 | 
				
			
			@ -169,6 +169,9 @@ import ClipboardIcon from '@/components/util/clipboard-icon.vue'
 | 
			
		|||
import EmptyStatePlaceholder from '@/components/empty-state-placeholder.vue'
 | 
			
		||||
 | 
			
		||||
import { useRuntimeStore } from '@/js/stores/useRuntimeStore'
 | 
			
		||||
import { useLastSearchQueryStore } from '@/js/stores/useLastSearchQueryStore'
 | 
			
		||||
 | 
			
		||||
const lastSearchQueryStore = useLastSearchQueryStore()
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
| 
						 | 
				
			
			@ -189,8 +192,7 @@ export default {
 | 
			
		|||
      initSearchbar: false,
 | 
			
		||||
      selectedTransformations: [],
 | 
			
		||||
      groupBy: 'alphabetical',
 | 
			
		||||
      showCheckboxes: false,
 | 
			
		||||
      searchQuery: ''    // TODO-V3.1 - this was never implemented in exisitng UI
 | 
			
		||||
      showCheckboxes: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
| 
						 | 
				
			
			@ -228,18 +230,28 @@ export default {
 | 
			
		|||
    onPageAfterIn () {
 | 
			
		||||
      this.load()
 | 
			
		||||
    },
 | 
			
		||||
    onPageBeforeOut (event) {
 | 
			
		||||
      lastSearchQueryStore.lastTransformationSearchQuery = this.$refs.searchbar?.$el.f7Searchbar.query
 | 
			
		||||
    },
 | 
			
		||||
    load () {
 | 
			
		||||
      if (this.loading) return
 | 
			
		||||
      this.loading = true
 | 
			
		||||
      this.loading = true
 | 
			
		||||
 | 
			
		||||
      if (this.initSearchbar) {
 | 
			
		||||
        lastSearchQueryStore.lastTransformationSearchQuery = this.$refs.searchbar?.$el.f7Searchbar.query
 | 
			
		||||
      }
 | 
			
		||||
      this.initSearchbar = false
 | 
			
		||||
 | 
			
		||||
      this.$oh.api.get('/rest/transformations').then((data) => {
 | 
			
		||||
        this.transformations = data.sort((a, b) => (a.label || a.uid).localeCompare(b.label || a.uid))
 | 
			
		||||
        this.loading = false
 | 
			
		||||
        this.ready = true
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
          this.initSearchbar = true
 | 
			
		||||
        this.initSearchbar = true
 | 
			
		||||
 | 
			
		||||
        nextTick(() => {
 | 
			
		||||
          if (this.$refs.listIndex) this.$refs.listIndex.update()
 | 
			
		||||
          if (this.$device.desktop && this.$refs.searchbar) this.$refs.searchbar.$el.f7Searchbar.$inputEl[0].focus()
 | 
			
		||||
          this.$refs.searchbar?.$el.f7Searchbar.search(lastSearchQueryStore.lastTransformationSearchQuery || '')
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue