merged.
This commit is contained in:
@@ -5,10 +5,12 @@
|
||||
[clojure.string :as str]
|
||||
[auto-ap.subs :as subs]
|
||||
[auto-ap.events :as main-events]
|
||||
[auto-ap.forms :as forms]
|
||||
[auto-ap.events.admin.vendors :as events]
|
||||
[auto-ap.entities.vendors :as entity]
|
||||
[auto-ap.views.components.address :refer [address-field]]
|
||||
[auto-ap.views.components.modal :refer [modal]]
|
||||
[auto-ap.views.components.vendor-dialog :refer [vendor-dialog]]
|
||||
[auto-ap.views.components.modal :refer [modal action-modal]]
|
||||
[auto-ap.views.components.admin.side-bar :refer [admin-side-bar]]
|
||||
[auto-ap.views.components.layouts :refer [side-bar-layout]]
|
||||
[clojure.spec.alpha :as s]
|
||||
@@ -55,6 +57,72 @@
|
||||
keys (dissoc keys :field :subscription)]
|
||||
(vec (concat [dom keys] rest))))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::merge-clicked
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (forms/start-form db ::merge-vendors {})
|
||||
:dispatch [::main-events/modal-status ::merge-vendors {:visible? true :saving? false}]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::merge-vendors-complete
|
||||
(fn [{:keys [db]} _]
|
||||
{:db (forms/stop-form db ::merge-vendors)
|
||||
:dispatch-n (list [::main-events/modal-status ::merge-vendors {:visible? false}]
|
||||
[::events/mounted])}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::merge-submit-clicked
|
||||
[(forms/in-form ::merge-vendors)]
|
||||
(fn [{{{:keys [from-id to-id]} :data :as merge-vendors-form} :db :as g} _]
|
||||
(let [user @(re-frame/subscribe [::subs/token])]
|
||||
(if (and from-id to-id)
|
||||
{:db (-> merge-vendors-form
|
||||
(assoc :status :loading)
|
||||
(assoc :error nil))
|
||||
:graphql
|
||||
{:token user
|
||||
:query-obj {:venia/operation {:operation/type :mutation
|
||||
:operation/name "MergeVendors"}
|
||||
:venia/queries [{:query/data [:merge-vendors
|
||||
{:from from-id :to to-id}
|
||||
[]]}]}
|
||||
:on-success [::merge-vendors-complete]
|
||||
:on-error [::forms/save-error ::merge-vendors]}}
|
||||
{:db merge-vendors-form}))))
|
||||
|
||||
(defn merge-vendors-dialog []
|
||||
(let [{:keys [data active? error id]} @(re-frame/subscribe [::forms/form ::merge-vendors])
|
||||
change-event [::forms/change ::merge-vendors]]
|
||||
|
||||
[action-modal {:id ::merge-vendors
|
||||
:title "Merge Vendors"
|
||||
:action-text "Merge"
|
||||
:save-event [::merge-submit-clicked]
|
||||
:status-from ::merge-vendors}
|
||||
[:div.field
|
||||
[:label.label
|
||||
"From Vendor (will be deleted)"]
|
||||
[:div.control
|
||||
[bind-field
|
||||
[typeahead {:matches (map (fn [x] [(:id x) (:name x)]) @(re-frame/subscribe [::subs/vendors]))
|
||||
:type "typeahead"
|
||||
:auto-focus true
|
||||
:field [:from-id]
|
||||
:text-field [:from-name]
|
||||
:event change-event
|
||||
:subscription data}]]]]
|
||||
[:div.field
|
||||
[:label.label
|
||||
"To Vendor"]
|
||||
[:div.control
|
||||
[bind-field
|
||||
[typeahead {:matches (map (fn [x] [(:id x) (:name x)]) @(re-frame/subscribe [::subs/vendors]))
|
||||
:type "typeahead"
|
||||
:field [:to-id]
|
||||
:text-field [:to-name]
|
||||
:event change-event
|
||||
:subscription data}]]]]]))
|
||||
|
||||
|
||||
(defn admin-vendors-content []
|
||||
[(with-meta
|
||||
@@ -64,16 +132,18 @@
|
||||
[:div.notification banner])
|
||||
(let [vendors (re-frame/subscribe [::subs/vendors])
|
||||
editing-vendor (:vendor @(re-frame/subscribe [::subs/admin]))]
|
||||
|
||||
|
||||
[:div
|
||||
[:h1.title "Vendors"]
|
||||
[:a.button.is-primary.is-large {:on-click (dispatch-event [::merge-clicked])} "Merge vendors"]
|
||||
[vendors-table]
|
||||
|
||||
[:div.is-pulled-right
|
||||
[:a.button.is-primary.is-large {:on-click (dispatch-event [::main-events/modal-status :auto-ap.views.main/user-editing-vendor {:visible? true}])} "New vendor"]]
|
||||
|
||||
])])
|
||||
[merge-vendors-dialog]
|
||||
[vendor-dialog {:vendor editing-vendor
|
||||
:save-event [::events/save]
|
||||
:change-event ::events/change
|
||||
:id ::admin-vendor}]])])
|
||||
{:component-did-mount (fn []
|
||||
(re-frame/dispatch [::events/mounted]))})])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user