consistent user experience with new client
This commit is contained in:
@@ -246,32 +246,35 @@
|
||||
|
||||
;; TODO decide when cursors are used. other cases it's not, some are
|
||||
(defn client-override* [override]
|
||||
[:div.flex.gap-2.mb-2.client-override (-> {:x-ref "p"
|
||||
:data-key "show"
|
||||
:x-data (hx/json {:show (boolean (not (:new? override)))})}
|
||||
hx/alpine-mount-then-appear)
|
||||
[:div.w-96
|
||||
(fc/with-field :db/id
|
||||
(com/hidden {:name (fc/field-name)
|
||||
:value (fc/field-value)}))
|
||||
(fc/with-field :account-client-override/client
|
||||
(com/validated-field {:errors (fc/field-errors)}
|
||||
(com/typeahead-2 {:name (fc/field-name)
|
||||
:placeholder "Search..."
|
||||
:url (bidi/path-for ssr-routes/only-routes
|
||||
:company-search)
|
||||
:value (fc/field-value)
|
||||
:value-fn (some-fn :db/id identity) ;; TODO better hydration
|
||||
:content-fn (fn [value]
|
||||
(:client/name (cond->> value
|
||||
(nat-int? value) (dc/pull (dc/db conn) [:client/name]))))})))]
|
||||
(fc/with-field :account-client-override/name
|
||||
[:div.w-96
|
||||
(com/validated-field {:errors (fc/field-errors)}
|
||||
(com/text-input {:name (fc/field-name)
|
||||
:class "w-full"
|
||||
:value (fc/field-value)}))])
|
||||
[:div (com/a-icon-button {"@click.prevent.stop" "show=false; setTimeout(() => $refs.p.remove(), 500)"} svg/x)]])
|
||||
(com/data-grid-row (-> {:x-ref "p"
|
||||
:data-key "show"
|
||||
:x-data (hx/json {:show (boolean (not (:new? override)))})}
|
||||
hx/alpine-mount-then-appear)
|
||||
(fc/with-field :db/id
|
||||
(com/hidden {:name (fc/field-name)
|
||||
:value (fc/field-value)}))
|
||||
(fc/with-field :account-client-override/client
|
||||
(com/data-grid-cell {}
|
||||
(com/validated-field {:errors (fc/field-errors)}
|
||||
(com/typeahead-2 {:name (fc/field-name)
|
||||
:placeholder "Search..."
|
||||
:class "w-96"
|
||||
:url (bidi/path-for ssr-routes/only-routes
|
||||
:company-search)
|
||||
:value (fc/field-value)
|
||||
:value-fn (some-fn :db/id identity) ;; TODO better hydration
|
||||
:content-fn (fn [value]
|
||||
(:client/name (cond->> value
|
||||
(nat-int? value) (dc/pull (dc/db conn) [:client/name]))))}))))
|
||||
(fc/with-field :account-client-override/name
|
||||
(com/data-grid-cell
|
||||
{}
|
||||
(com/validated-field {:errors (fc/field-errors)}
|
||||
(com/text-input {:name (fc/field-name)
|
||||
:class "w-96"
|
||||
:value (fc/field-value)}))))
|
||||
(com/data-grid-cell {:class "align-top"}
|
||||
(com/a-icon-button {"@click.prevent.stop" "show=false; setTimeout(() => $refs.p.remove(), 500)"} svg/x))))
|
||||
|
||||
;; TODO each form:
|
||||
;; elimante typeahead1
|
||||
@@ -366,18 +369,32 @@
|
||||
:options (ref->select-options "account-applicability")})))
|
||||
|
||||
(fc/with-field :account/client-overrides
|
||||
|
||||
(com/field {:label "Client Overrides" :id "client-overrides"}
|
||||
(when (fc/field-value)
|
||||
(doall
|
||||
(for [override fc/*current*]
|
||||
(fc/with-cursor override
|
||||
(client-override* override)))))))
|
||||
(com/a-button {:hx-get (bidi/path-for ssr-routes/only-routes
|
||||
:admin-account-client-override-new)
|
||||
:hx-vals (hiccup/raw "js:{index: document.getElementById('client-overrides').children.length - 1}")
|
||||
:hx-target "#client-overrides"
|
||||
:hx-swap "beforeend"}
|
||||
"New override")
|
||||
|
||||
(com/data-grid {:headers [(com/data-grid-header {} "Client")
|
||||
(com/data-grid-header {} "Account name")
|
||||
(com/data-grid-header {})]
|
||||
:id "client-override-table"}
|
||||
(when (fc/field-value)
|
||||
(doall
|
||||
(for [override fc/*current*]
|
||||
(fc/with-cursor override
|
||||
(client-override* override)))))
|
||||
(com/data-grid-row
|
||||
{:class "new-row"}
|
||||
(com/data-grid-cell {:colspan 3
|
||||
:class "bg-gray-100"}
|
||||
[:div.flex.justify-center
|
||||
(com/a-button {:hx-get (bidi/path-for ssr-routes/only-routes
|
||||
:admin-account-client-override-new)
|
||||
:color :secondary
|
||||
:hx-include "#edit-form"
|
||||
:hx-vals (hiccup/raw "js:{index: countRows(\"#client-override-table\")}")
|
||||
:hx-target "#edit-form .new-row"
|
||||
:hx-swap "beforebegin"}
|
||||
"New override")])))))
|
||||
|
||||
]
|
||||
[:div
|
||||
[:div [:div#form-errors (when (:errors fc/*form-errors*)
|
||||
|
||||
@@ -549,7 +549,7 @@
|
||||
(com/data-grid-header {:class "w-16"} "%")
|
||||
(com/data-grid-header {:class "w-16"})]
|
||||
:id "transaction-rule-account-table"}
|
||||
(when @fc/*current*
|
||||
(when (fc/field-value)
|
||||
(doall (for [tra fc/*current*]
|
||||
(fc/with-cursor tra
|
||||
(transaction-rule-account-row* entity tra)))))
|
||||
|
||||
Reference in New Issue
Block a user