diff --git a/backend/handlers/loads/handler.go b/backend/handlers/loads/handler.go index c8895c1..6dd0bf0 100644 --- a/backend/handlers/loads/handler.go +++ b/backend/handlers/loads/handler.go @@ -339,7 +339,7 @@ func getQuery(c echo.Context, countOnly bool) postgres.SelectStatement { if c.QueryParam("bullet_manufacturer_id") != "" { ids := strings.Split(c.QueryParam("bullet_manufacturer_id"), ",") if len(ids) > 0 { - expressions = append(expressions, ctg.ID.IN(getUuidExpr(ids)...)) + expressions = append(expressions, bm.ID.IN(getUuidExpr(ids)...)) } } @@ -420,7 +420,7 @@ func getQuery(c echo.Context, countOnly bool) postgres.SelectStatement { sort = p.Name case "powder_manufacturer_name": sort = pwdm.Name - case "powder_namd": + case "powder_name": sort = pwd.Name case "powder_grs": sort = l.PowderGr @@ -428,7 +428,7 @@ func getQuery(c echo.Context, countOnly bool) postgres.SelectStatement { sort = ctg.Name } - if c.QueryParam("sortOrder") == "-1" { + if c.QueryParam("sortOrder") == "desc" { q.ORDER_BY(sort.DESC()) } else { q.ORDER_BY(sort.ASC()) diff --git a/frontend/src/pages/loads/Search.vue b/frontend/src/pages/loads/Search.vue index e1ca2af..0afb9ed 100644 --- a/frontend/src/pages/loads/Search.vue +++ b/frontend/src/pages/loads/Search.vue @@ -153,29 +153,33 @@ const loads = ref([]) const total = ref(0) const loading = ref(true) -const sortField = ref('cartridge_name') -const sortOrder = ref(-1) +// use local storage to store the selected filters +const localStorageKey = 'load-filters' +const localStorageFilters = JSON.parse(localStorage.getItem(localStorageKey) ?? "{}") + +const sortField = ref(localStorageFilters.sortField ?? 'cartridge_name') +const sortOrder = ref(localStorageFilters.sortOrder ?? -1) const cartridgeOptions = ref([]) -const cartridgeSelected = ref([]) +const cartridgeSelected = ref(localStorageFilters.cartridgeSelected ?? []) const bulletManufacturerOptions = ref([]) -const bulletManufacturerSelected = ref([]) +const bulletManufacturerSelected = ref(localStorageFilters.bulletManufacturerSelected ?? []) const bulletOptions = ref([]) -const bulletSelected = ref([]) +const bulletSelected = ref(localStorageFilters.bulletSelected ?? []) const primerManufacturerOptions = ref([]) -const primerManufacturerSelected = ref([]) +const primerManufacturerSelected = ref(localStorageFilters.primerManufacturerSelected ?? []) const primerOptions = ref([]) -const primerSelected = ref([]) +const primerSelected = ref(localStorageFilters.primerSelected ?? []) const powderManufacturerOptions = ref([]) -const powderManufacturerSelected = ref([]) +const powderManufacturerSelected = ref(localStorageFilters.powderManufacturerSelected ?? []) const powderOptions = ref([]) -const powderSelected = ref([]) +const powderSelected = ref(localStorageFilters.powderSelected ?? []) const fetchLoads = async () => { loading.value = true @@ -185,7 +189,7 @@ const fetchLoads = async () => { searchParams.unshift(`sortField=${sortField.value}`) if (sortOrder.value) { - searchParams.unshift(`sortOrder=${sortOrder.value}`) + searchParams.unshift(`sortOrder=${sortOrder.value === 1 ? 'asc' : 'desc'}`) } if (cartridgeSelected.value.length > 0) { @@ -216,6 +220,18 @@ const fetchLoads = async () => { searchParams.unshift(`powder_id=${powderSelected.value.join(',')}`) } + localStorage.setItem(localStorageKey, JSON.stringify({ + cartridgeSelected: cartridgeSelected.value, + bulletManufacturerSelected: bulletManufacturerSelected.value, + bulletSelected: bulletSelected.value, + primerManufacturerSelected: primerManufacturerSelected.value, + primerSelected: primerSelected.value, + powderManufacturerSelected: powderManufacturerSelected.value, + powderSelected: powderSelected.value, + sortField: sortField.value, + sortOrder: sortOrder.value, + })) + const resp = await axios.get>( `${import.meta.env.VITE_API}/load?${searchParams.join('&')}`)