simplified form works, too.

This commit is contained in:
Bryce Covert
2020-08-04 08:36:10 -07:00
parent c7fd0aafc0
commit f1dab06330
4 changed files with 60 additions and 59 deletions

View File

@@ -106,6 +106,8 @@
(defn ^:deprecated side-bar-form [{:keys [form]} children]
[:div [:a.delete.is-pulled-right {:on-click (dispatch-event [::form-closing form])}] [:div children]])
;; TODO ^:deprecated
(defn loading [db id]
(-> db
(assoc-in [::forms id :status] :loading)

View File

@@ -121,8 +121,8 @@
[:div.buttons
(when confirm
[:button.button.is-danger {:class (status/class-for status)
:on-click (:on-click confirm)}
[:button.button {:class (conj (status/class-for status) (:class confirm) )
:on-click (:on-click confirm)}
(:value confirm)])
(when cancel?
[:button.button {:on-click (dispatch-event [::modal-closed] )} "Cancel"])]]]))]])))))

View File

@@ -93,6 +93,7 @@
:body [:div "Are you sure you want to delete transaction rule '" (:description which) "'? Any previously transactions will remain updated, but the rule association will be lost."]
:cancel? true
:confirm {:value "Delete Transaction Rule"
:class "is-danger"
:status-from [::status/single ::delete-transaction-rule]
:on-click (dispatch-event [::delete-transaction-rule (:id which)] )}
:close-event [::status/completed ::delete-transaction-rule]}]}))

View File

@@ -9,7 +9,7 @@
[auto-ap.views.components.admin.side-bar :refer [admin-side-bar]]
[auto-ap.views.components.layouts :refer [side-bar-layout]]
[auto-ap.views.utils :refer [login-url dispatch-value-change bind-field horizontal-field dispatch-event with-user]]
[auto-ap.views.components.modal :refer [modal action-modal]]
[auto-ap.views.components.modal :refer [modal action-modal] :as modal]
[auto-ap.views.components.grid :as grid]
[auto-ap.utils :refer [by replace-if]]
[cljs.reader :as edn]
@@ -29,12 +29,7 @@
(fn [data field value]
[])))
(re-frame/reg-event-db
::editing
(fn [db [_ d]]
(re-frame/dispatch [::events/modal-status ::edit-user {:visible? true}])
(-> db
(forms/start-form ::form d))))
(re-frame/reg-event-db
::add-client
@@ -52,10 +47,11 @@
(re-frame/reg-event-fx
::saving
[with-user (forms/triggers-loading ::form) (forms/in-form ::form)]
[with-user (forms/in-form ::form)]
(fn [{:keys [db user]} [_]]
{:graphql
{:token user
:owns-state {:single ::form}
:query-obj {:venia/operation {:operation/type :mutation
:operation/name "EditUser"}
:venia/queries [{:query/data [:edit-user
@@ -69,7 +65,7 @@
::saved
(forms/triggers-stop ::form)
(fn [{:keys [db]} [_ {:keys [edit-user]}]]
(re-frame/dispatch [::events/modal-completed ::edit-user])))
{:dispatch [::modal/modal-closed]}))
(def user-form (forms/vertical-form {:submit-event [::saving]
:change-event [::changed]
@@ -79,52 +75,54 @@
(defn form []
(let [{:keys [data active? error id]} @(re-frame/subscribe [::forms/form ::form])
{:keys [form-inline field raw-field error-notification submit-button]} user-form]
[action-modal {:title (str "Edit " (:name data))
:id ::edit-user
:action-text "Save"
:save-event [::saving]
:status-from ::form}
(form-inline {}
[:<>
(field "Name"
[:input.input {:type "text"
:field [:name]
:spec ::entity/name}])
(form-inline {}
[:<>
(field "Name"
[:input.input {:type "text"
:field [:name]
:spec ::entity/name}])
[:div.field
[:p.help "Role"]
[:div.control
[:div.select
[raw-field
[:select {:type "select"
:field [:role]}
[:option {:value ":none"} "None"]
[:option {:value ":user"} "User"]
[:option {:value ":manager"} "Manager"]
[:option {:value ":admin"} "Admin"]]]]]]
(when (#{":user" ":manager"} (:role data))
[:div.field
[:p.help "Clients"]
[:div.control
[:div.field.has-addons
[:div.control
[:div.select
[raw-field
[:select {:type "select"
:field [:adding-client]}
[:option]
(let [used-clients (set (map :id (:clients data)))]
(for [{:keys [id name] :as client} @(re-frame/subscribe [::subs/clients])
:when (not (used-clients id))]
^{:key id} [:option {:value id} name]))]]]]
[:p.control
[:button.button.is-primary {:on-click (dispatch-event [::add-client])} "Add"]]]
[:div.field
[:p.help "Role"]
[:div.control
[:div.select
[raw-field
[:select {:type "select"
:field [:role]}
[:option {:value ":none"} "None"]
[:option {:value ":user"} "User"]
[:option {:value ":manager"} "Manager"]
[:option {:value ":admin"} "Admin"]]]]]]])
(when (#{":user" ":manager"} (:role data))
[:div.field
[:p.help "Clients"]
[:div.control
[:div.field.has-addons
[:div.control
[:div.select
[raw-field
[:select {:type "select"
:field [:adding-client]}
[:option]
(let [used-clients (set (map :id (:clients data)))]
(for [{:keys [id name] :as client} @(re-frame/subscribe [::subs/clients])
:when (not (used-clients id))]
^{:key id} [:option {:value id} name]))]]]]
[:p.control
[:button.button.is-primary {:on-click (dispatch-event [::add-client])} "Add"]]]
[:ul
(for [{:keys [id name]} (:clients data)]
^{:key id} [:li name [:a.icon {:on-click (dispatch-event [::remove-client id])} [:i.fa.fa-times ]]])]]])]))
[:ul
(for [{:keys [id name]} (:clients data)]
^{:key id} [:li name [:a.icon {:on-click (dispatch-event [::remove-client id])} [:i.fa.fa-times ]]])]]])])))
(re-frame/reg-event-fx
::editing
(fn [{:keys [db]} [_ d]]
{:db (-> db
(forms/start-form ::form d))
:dispatch [::modal/modal-requested {:title (str "Edit user " (:name d))
:body [form]
:cancel? false
:confirm {:value "Save"
:status-from [::status/single ::form]
:class "is-primary"
:on-click (dispatch-event [::saving])
:close-event [::status/completed ::form]}}]}))