User can set up sales queries on their own now.
This commit is contained in:
@@ -3,9 +3,11 @@
|
||||
[clojure.string :as str]
|
||||
[re-frame.core :as re-frame]
|
||||
[auto-ap.views.pages.admin.clients.form :as form]
|
||||
[auto-ap.views.utils :refer [action-cell-width date->str]]
|
||||
[auto-ap.views.utils :refer [action-cell-width date->str with-user]]
|
||||
[auto-ap.views.components.grid :as grid]
|
||||
[auto-ap.views.components.buttons :as buttons]))
|
||||
[auto-ap.views.components.modal :as modal]
|
||||
[auto-ap.views.components.buttons :as buttons]
|
||||
[auto-ap.status :as status]))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::specific-params
|
||||
@@ -17,6 +19,28 @@
|
||||
(fn [{:keys [db]} [_ p]]
|
||||
{:db (assoc db ::params p)}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::sales-queries-setup
|
||||
(fn [_ [_ results]]
|
||||
{:dispatch [::modal/modal-requested {:title "Sales Queries"
|
||||
:body [:div [:pre (:message (:setup-sales-queries results))]]}]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::setup-sales-queries
|
||||
[with-user]
|
||||
(fn [{:keys [user]} [_ client-id]]
|
||||
{:graphql
|
||||
{:token user
|
||||
:owns-state {:multi ::setup-sales-queries
|
||||
:which client-id}
|
||||
:query-obj {:venia/operation {:operation/type :mutation
|
||||
:operation/name "SetupSalesQueries"}
|
||||
:venia/queries [{:query/data [:setup-sales-queries
|
||||
{:client-id client-id}
|
||||
[:message]]}]}
|
||||
:on-success [::sales-queries-setup]}}
|
||||
))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::params
|
||||
:<- [::specific-params]
|
||||
@@ -26,33 +50,37 @@
|
||||
|
||||
|
||||
(defn clients-table [{:keys [page status]}]
|
||||
[grid/grid {:on-params-change (fn [p]
|
||||
(re-frame/dispatch [::params-changed p]))
|
||||
:status status
|
||||
:params @(re-frame/subscribe [::params])
|
||||
:column-count 5}
|
||||
[grid/controls page]
|
||||
[grid/table {:fullwidth true}
|
||||
[grid/header
|
||||
[grid/row {}
|
||||
[grid/header-cell {} "Name"]
|
||||
[grid/header-cell {:style {:width "20em"}} "Code"]
|
||||
[grid/header-cell {} "Locations"]
|
||||
[grid/header-cell {} "Locked Until"]
|
||||
[grid/header-cell {} "Email"]
|
||||
[grid/header-cell {:style {:width (action-cell-width 1)}}]]
|
||||
]
|
||||
[grid/body
|
||||
(for [{:keys [id name email locked-until code locations] :as c} (:data page)]
|
||||
^{:key (str name "-" id )}
|
||||
[grid/row {:id id}
|
||||
[grid/cell {} name]
|
||||
[grid/cell {} code]
|
||||
[grid/cell {} (str/join ", " locations)]
|
||||
[grid/cell {} [:div.tag (or (some-> locked-until date->str)
|
||||
"Not locked"
|
||||
(let [states @(re-frame/subscribe [::status/multi ::setup-sales-queries])]
|
||||
[grid/grid {:on-params-change (fn [p]
|
||||
(re-frame/dispatch [::params-changed p]))
|
||||
:status status
|
||||
:params @(re-frame/subscribe [::params])
|
||||
:column-count 5}
|
||||
[grid/controls page]
|
||||
[grid/table {:fullwidth true}
|
||||
[grid/header
|
||||
[grid/row {}
|
||||
[grid/header-cell {} "Name"]
|
||||
[grid/header-cell {:style {:width "20em"}} "Code"]
|
||||
[grid/header-cell {} "Locations"]
|
||||
[grid/header-cell {} "Locked Until"]
|
||||
[grid/header-cell {} "Email"]
|
||||
[grid/header-cell {:style {:width (action-cell-width 2)}}]]
|
||||
]
|
||||
[grid/body
|
||||
(for [{:keys [id name email locked-until code locations]} (:data page)]
|
||||
^{:key (str name "-" id )}
|
||||
[grid/row {:id id}
|
||||
[grid/cell {} name]
|
||||
[grid/cell {} code]
|
||||
[grid/cell {} (str/join ", " locations)]
|
||||
[grid/cell {} [:div.tag (or (some-> locked-until date->str)
|
||||
"Not locked"
|
||||
|
||||
)]]
|
||||
[grid/cell {} email]
|
||||
[grid/cell {} [buttons/fa-icon {:event [::form/editing id]
|
||||
:icon :fa-pencil}]]])]]])
|
||||
)]]
|
||||
[grid/cell {} email]
|
||||
[grid/cell {} [:div.buttons [buttons/fa-icon {:event [::setup-sales-queries id]
|
||||
:class (status/class-for (get states id))
|
||||
:icon :fa-dollar}]
|
||||
[buttons/fa-icon {:event [::form/editing id]
|
||||
:icon :fa-pencil}]]]])]]]))
|
||||
|
||||
Reference in New Issue
Block a user