Makes multiple client selection somewhat possible via graphql.

This commit is contained in:
2023-08-31 13:05:06 -07:00
parent 9c472dfc8e
commit 1d82ec29e0
29 changed files with 274 additions and 139 deletions

View File

@@ -93,17 +93,29 @@
(defn client-dropdown []
(let [client (re-frame/subscribe [::subs/client])
matching-clients @(re-frame/subscribe [::matching-clients])]
clients @(re-frame/subscribe [::subs/selected-clients])
matching-clients @(re-frame/subscribe [::matching-clients])
user (re-frame/subscribe [::subs/user])]
[navbar-drop-down {:header (str "Company: " (if @client (:name @client)
"All"))
:id ::select-client}
[navbar-drop-down {:header (str "Company: " (cond @client
(:name @client)
:else
(str (count (or clients [])) " Clients")))
:id ::select-client}
[:div
[:a {:class "navbar-item"
:on-click (fn []
(re-frame/dispatch [::events/toggle-menu ::select-client])
(re-frame/dispatch [::forms/form-closing ::client-search])
(re-frame/dispatch [::events/swap-client nil]))} "All" ]
(re-frame/dispatch [::events/swap-client :all]))} "All" ]
(when (= "admin" (:user/role @user))
[:a {:class "navbar-item"
:on-click (fn []
(re-frame/dispatch [::events/toggle-menu ::select-client])
(re-frame/dispatch [::forms/form-closing ::client-search])
(re-frame/dispatch [::events/swap-client :mine]))} "Mine" ])
[:hr {:class "navbar-divider"}]
[form-builder/builder {:id ::client-search
:submit-event [::client-searched]}

View File

@@ -75,17 +75,18 @@
[:admin "Admin"]]
:allow-nil? false
:keywordize? true}]]
(when (#{:user :manager :power_user} (:role data))
[form-builder/field-v2 {:field :clients}
"Client"
[com/multi-field-v2 {:template [[form-builder/raw-field-v2 {:field :client}
[com/entity-typeahead
{:entities clients
:entity->text :name
:style {:width "13em"}}]]]
:key-fn :id
:schema [:sequential client-schema]
:new-text "Grant access to client"}]])
[form-builder/field-v2 {:field :clients}
(if (= :admin (:role data))
"Client Assignments"
"Client")
[com/multi-field-v2 {:template [[form-builder/raw-field-v2 {:field :client}
[com/entity-typeahead
{:entities clients
:entity->text :name
:style {:width "13em"}}]]]
:key-fn :id
:schema [:sequential client-schema]
:new-text "Grant access to client"}]]
[form-builder/hidden-submit-button]]]))