diff --git a/src/clj/auto_ap/ssr/components/date_range.clj b/src/clj/auto_ap/ssr/components/date_range.clj index ff1306f1..fe694c35 100644 --- a/src/clj/auto_ap/ssr/components/date_range.clj +++ b/src/clj/auto_ap/ssr/components/date_range.clj @@ -1,11 +1,13 @@ (ns auto-ap.ssr.components.date-range (:require [auto-ap.ssr.components :as com] + [auto-ap.ssr.components.buttons :as but] + [auto-ap.ssr.svg :as svg] [auto-ap.time :as atime] [clj-time.coerce :as c] [clj-time.core :as t] [clj-time.periodic :as per])) -(defn date-range-field [{:keys [value id]}] +(defn date-range-field [{:keys [value id apply-button?]}] [:div {:id id} (com/field {:label "Date Range"} [:div.space-y-4 @@ -21,11 +23,17 @@ (atime/unparse-local atime/normal-date)) :placeholder "Date" :size :small - :class "shrink"}) + :class "shrink date-filter-input"}) (com/date-input {:name "end-date" :value (some-> (:end value) (atime/unparse-local atime/normal-date)) :placeholder "Date" :size :small - :class "shrink"})]])]) + :class "shrink date-filter-input"}) + (when apply-button? + (but/button- {:color :secondary + :size :small + :type "button" + "x-on:click" "$dispatch('datesApplied')"} + "Apply"))]])]) diff --git a/src/clj/auto_ap/ssr/invoices.clj b/src/clj/auto_ap/ssr/invoices.clj index 92b95c15..4028ebe1 100644 --- a/src/clj/auto_ap/ssr/invoices.clj +++ b/src/clj/auto_ap/ssr/invoices.clj @@ -37,7 +37,7 @@ [auto-ap.ssr.invoice.common :refer [default-read]] [auto-ap.ssr.invoice.import :as invoice-import] [auto-ap.ssr.invoice.new-invoice-wizard :as new-invoice-wizard :refer [location-select*]] - [auto-ap.ssr.pos.common :refer [date-range-field*]] + [auto-ap.ssr.components.date-range :as dr] [auto-ap.ssr.svg :as svg] [auto-ap.ssr.utils :refer [apply-middleware-to-all-handlers assert-schema @@ -77,7 +77,7 @@ [:div {:id "exact-match-id-tag"}])) (defn filters [request] - [:form#invoice-filters {"hx-trigger" "change delay:500ms, keyup changed from:.hot-filter delay:1000ms" + [:form#invoice-filters {"hx-trigger" "datesApplied, change delay:500ms from:.filter-trigger, keyup changed from:.hot-filter delay:1000ms" "hx-get" (bidi/path-for ssr-routes/only-routes ::route/table) "hx-target" "#entity-table" @@ -92,7 +92,8 @@ :url (bidi/path-for ssr-routes/only-routes :vendor-search) :value (:vendor (:query-params request)) :value-fn :db/id - :content-fn :vendor/name})) + :content-fn :vendor/name + :class "filter-trigger"})) (com/field {:label "Account"} (com/typeahead {:name "account" :id "account" @@ -100,8 +101,12 @@ :value (:account (:query-params request)) :value-fn :db/id :content-fn #(:account/name (d-accounts/clientize (dc/pull (dc/db conn) d-accounts/default-read (:db/id %)) - (:db/id (:client request))))})) - (date-range-field* request) + (:db/id (:client request)))) + :class "filter-trigger"})) + (dr/date-range-field {:value {:start (:start-date (:query-params request)) + :end (:end-date (:query-params request))} + :id "date-range" + :apply-button? true}) (com/field {:label "Check #"} (com/text-input {:name "check-number" :id "check-number" @@ -486,7 +491,10 @@ :fetch-page fetch-page :oob-render (fn [request] - [(assoc-in (date-range-field* request) [1 :hx-swap-oob] true) + [(assoc-in (dr/date-range-field {:value {:start (:start-date (:query-params request)) + :end (:end-date (:query-params request))} + :id "date-range" + :apply-button? true}) [1 :hx-swap-oob] true) (assoc-in (exact-match-id* request) [1 :hx-swap-oob] true)]) :query-schema query-schema :parse-query-params (fn [p]