supports date filter.
This commit is contained in:
@@ -3,36 +3,62 @@
|
||||
[clojure.spec.alpha :as s]
|
||||
[auto-ap.entities.invoice :as invoice]
|
||||
[auto-ap.views.components.typeahead :refer [typeahead]]
|
||||
[auto-ap.views.utils :refer [bind-field date-picker]]))
|
||||
[auto-ap.views.utils :refer [bind-field date-picker date->str local-now standard]]
|
||||
[cljs-time.core :as t]
|
||||
[re-frame.core :as re-frame]))
|
||||
|
||||
(defn dispatch-change [on-change-event start end]
|
||||
(fn [_]
|
||||
(re-frame/dispatch (into on-change-event [[:start] start]) )
|
||||
(re-frame/dispatch (into on-change-event [[:end] end]))))
|
||||
|
||||
(defn date-range-filter [{:keys [value on-change-event]}]
|
||||
[:div.field
|
||||
[:div.control
|
||||
[:div.columns.is-variable.is-1
|
||||
[:div.column
|
||||
[bind-field
|
||||
[date-picker {:class-name "input is-fullwidth"
|
||||
:class "input"
|
||||
:format-week-number (fn [] "")
|
||||
:previous-month-button-label ""
|
||||
:placeholder "Start Date mm/dd/yyyy"
|
||||
:next-month-button-label ""
|
||||
:next-month-label ""
|
||||
:event on-change-event
|
||||
:type "date"
|
||||
:field [:start]
|
||||
:subscription value}]]]
|
||||
[:div.column.is-narrow " to "]
|
||||
[:div.column
|
||||
[bind-field
|
||||
[date-picker {:class-name "input is-fullwidth"
|
||||
:class "input"
|
||||
:format-week-number (fn [] "")
|
||||
:previous-month-button-label ""
|
||||
:placeholder "Start Date mm/dd/yyyy"
|
||||
:next-month-button-label ""
|
||||
:event on-change-event
|
||||
:next-month-label ""
|
||||
:type "date"
|
||||
:field [:end]
|
||||
:subscription value}]]]]]])
|
||||
[:div
|
||||
[:div.field.has-addons
|
||||
[:p.control [:a.button.is-small {:on-click
|
||||
(dispatch-change on-change-event
|
||||
(date->str (t/minus (local-now) (t/period :days 7)) standard)
|
||||
(date->str (local-now) standard))}
|
||||
"Week" ]]
|
||||
[:p.control [:a.button.is-small {:on-click
|
||||
(dispatch-change on-change-event
|
||||
(date->str (t/minus (local-now) (t/period :months 1)) standard)
|
||||
(date->str (local-now) standard))}
|
||||
"Month" ]]
|
||||
[:p.control [:a.button.is-small {:on-click
|
||||
(dispatch-change on-change-event
|
||||
(date->str (t/minus (local-now) (t/period :years 1)) standard)
|
||||
(date->str (local-now) standard))}
|
||||
"Year"]]
|
||||
[:p.control [:a.button.is-small {:on-click
|
||||
(dispatch-change on-change-event
|
||||
nil
|
||||
nil)}
|
||||
"All"]]]
|
||||
[:div.field.has-addons
|
||||
[:div.control
|
||||
[bind-field
|
||||
[date-picker {:class-name "input is-fullwidth"
|
||||
:class "input"
|
||||
:format-week-number (fn [] "")
|
||||
:previous-month-button-label ""
|
||||
:placeholder-text "Start"
|
||||
:next-month-button-label ""
|
||||
:next-month-label ""
|
||||
:event on-change-event
|
||||
:type "date"
|
||||
:field [:start]
|
||||
:subscription value}]]]
|
||||
[:div.control
|
||||
[bind-field
|
||||
[date-picker {:class-name "input is-fullwidth"
|
||||
:class "input"
|
||||
:format-week-number (fn [] "")
|
||||
:previous-month-button-label ""
|
||||
:placeholder-text "End"
|
||||
:next-month-button-label ""
|
||||
:event on-change-event
|
||||
:next-month-label ""
|
||||
:type "date"
|
||||
:field [:end]
|
||||
:subscription value}]]]]])
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
[auto-ap.subs :as subs]
|
||||
[cljs-time.format :as format]
|
||||
[goog.i18n.NumberFormat.Format]
|
||||
[cljs-time.core :as t])
|
||||
[cljs-time.core :as t]
|
||||
[clojure.string :as str])
|
||||
(:import
|
||||
(goog.i18n NumberFormat)
|
||||
(goog.i18n.NumberFormat Format)))
|
||||
@@ -76,7 +77,10 @@
|
||||
|
||||
(defn dispatch-date-change [event]
|
||||
(fn [e g]
|
||||
(re-frame/dispatch (conj event (date->str (time/from-default-time-zone (c/from-date e)) standard)))))
|
||||
(re-frame/dispatch (conj event
|
||||
(if (str/blank? e)
|
||||
e
|
||||
(date->str (time/from-default-time-zone (c/from-date e)) standard))))))
|
||||
|
||||
(defmulti do-bind (fn [a {:keys [type] :as x}]
|
||||
type))
|
||||
@@ -163,7 +167,9 @@
|
||||
event (if (keyword? event) [event] event)
|
||||
selected (get-in subscription field)
|
||||
x (str->date selected standard)
|
||||
selected (if (string? selected) (c/to-date (time/to-default-time-zone (time/from-default-time-zone x))) selected )
|
||||
selected (if (string? selected)
|
||||
(c/to-date (time/to-default-time-zone (time/from-default-time-zone x)))
|
||||
selected )
|
||||
keys (assoc keys
|
||||
:on-change (dispatch-date-change (conj event field))
|
||||
:selected selected
|
||||
|
||||
Reference in New Issue
Block a user