diff --git a/admin_ui/src/components/ArrayWidget.vue b/admin_ui/src/components/ArrayWidget.vue
index be14f3bb..3a84cf87 100644
--- a/admin_ui/src/components/ArrayWidget.vue
+++ b/admin_ui/src/components/ArrayWidget.vue
@@ -150,7 +150,7 @@ export default defineComponent({
this.internalArray = newValue ? [...newValue] : []
}
},
- mounted() {
+ created() {
this.internalArray = [...this.array]
}
})
diff --git a/admin_ui/src/components/FilterForm.vue b/admin_ui/src/components/FilterForm.vue
index 4b818d41..01649455 100644
--- a/admin_ui/src/components/FilterForm.vue
+++ b/admin_ui/src/components/FilterForm.vue
@@ -47,7 +47,8 @@
diff --git a/admin_ui/src/components/InputField.vue b/admin_ui/src/components/InputField.vue
index 8f1d8da8..24e8e1e6 100644
--- a/admin_ui/src/components/InputField.vue
+++ b/admin_ui/src/components/InputField.vue
@@ -22,12 +22,13 @@
+
diff --git a/admin_ui/src/components/KeySearch.vue b/admin_ui/src/components/KeySearch.vue
index 6419de80..cca221b2 100644
--- a/admin_ui/src/components/KeySearch.vue
+++ b/admin_ui/src/components/KeySearch.vue
@@ -20,6 +20,7 @@
v-show="showModal"
:isFilter="isFilter"
:tableName="tableName"
+ :initialReferenceID="hiddenSelectedValue"
@close="showModal = false"
@update="handleUpdate($event)"
/>
@@ -84,9 +85,15 @@ export default defineComponent({
this.hiddenSelectedValue = newValue
}
},
- async mounted() {
- this.selectedValue = this.readable
- this.hiddenSelectedValue = this.rowID
+ mounted() {
+ if (this.isFilter) {
+ const queryValue = this.$route.query[this.fieldName]
+ if (queryValue) {
+ // only need FK query value (e.g director=1),
+ // modal will emit readable automatically
+ this.hiddenSelectedValue = queryValue
+ }
+ }
}
})
diff --git a/admin_ui/src/components/KeySearchModal.vue b/admin_ui/src/components/KeySearchModal.vue
index 8eaf45f8..bb616954 100644
--- a/admin_ui/src/components/KeySearchModal.vue
+++ b/admin_ui/src/components/KeySearchModal.vue
@@ -63,6 +63,9 @@ export default defineComponent({
isNullable: {
type: Boolean as PropType,
default: true
+ },
+ initialReferenceID: {
+ type: undefined as unknown as PropType
}
},
data() {
@@ -118,6 +121,21 @@ export default defineComponent({
},
selectResult(id: RowID | null, readable: string) {
this.$emit("update", { id, readable })
+ },
+ async emitInitialReferenceID() {
+ if (!this.initialReferenceID) return
+
+ // Look for readable value in fetched IDs
+ const match = this.ids.find(
+ ([id]) => id === this.initialReferenceID
+ )
+
+ if (match) {
+ this.$emit("update", {
+ id: match[0],
+ readable: match[1]
+ })
+ }
}
},
watch: {
@@ -125,6 +143,7 @@ export default defineComponent({
this.offset = 0
if (value) {
this.ids = await this.fetchData()
+ await this.emitInitialReferenceID()
}
},
async searchTerm() {
@@ -144,6 +163,7 @@ export default defineComponent({
async mounted() {
if (this.tableName) {
this.ids = await this.fetchData()
+ await this.emitInitialReferenceID()
}
}
})
diff --git a/admin_ui/src/components/MatchField.vue b/admin_ui/src/components/MatchField.vue
index b96bdf1b..685944bb 100644
--- a/admin_ui/src/components/MatchField.vue
+++ b/admin_ui/src/components/MatchField.vue
@@ -1,27 +1,39 @@
-
-
+
\ No newline at end of file
diff --git a/admin_ui/src/components/RowFilter.vue b/admin_ui/src/components/RowFilter.vue
index 88552f65..81ce94da 100644
--- a/admin_ui/src/components/RowFilter.vue
+++ b/admin_ui/src/components/RowFilter.vue
@@ -22,7 +22,7 @@
import { defineComponent } from "vue"
import FilterForm from "./FilterForm.vue"
import { type APIResponseMessage, getFormat, getType } from "../interfaces"
-import { secondsToISO8601Duration } from "../utils"
+import { secondsToISO8601Duration, syncQueryParams } from "../utils"
export default defineComponent({
props: {
@@ -87,6 +87,11 @@ export default defineComponent({
}
}
+ // adding filter params to url
+ syncQueryParams(this.$router.path, {
+ ...json
+ })
+
this.$store.commit("updateFilterParams", json)
this.$store.commit("updateCurrentPageNumber", 1)
@@ -108,6 +113,9 @@ export default defineComponent({
form.reset()
+ // cleaning filter params from url
+ syncQueryParams(this.$router.path, {})
+
this.$store.commit("updateFilterParams", {})
this.$store.commit("updateCurrentPageNumber", 1)