standardizing vendors.

This commit is contained in:
Bryce Covert
2020-08-04 06:56:36 -07:00
parent c67daaf676
commit 79e9e3e1b0
5 changed files with 83 additions and 69 deletions

View File

@@ -17,7 +17,8 @@
:<- [::subs/query-params]
(fn [[specific-filters vendors-by-id query-params] ]
(let [url-filters (-> query-params
(select-keys #{:name}))]
(select-keys #{:name-like})
(update :name-like #(some-> % str)))]
(merge url-filters specific-filters ))))
(re-frame/reg-sub
@@ -34,9 +35,11 @@
(re-frame/reg-sub
::filter-params
:<- [::settled-filters]
:<- [::filters]
:<- [::subs/active-page]
(fn [[filters ap ]]
{:name (:name filters)}))
(fn [[settled-filters filters ap ]]
(let [filters (or settled-filters filters)]
{:name-like (:name-like filters)})))
(re-frame/reg-event-fx
::filters-settled
@@ -62,7 +65,7 @@
[:div.field
[:div.control [:input.input {:placeholder "Harry's Food Products"
:value @(re-frame/subscribe [::filter :name])
:on-change (dispatch-value-change [::filter-changed :name])} ]]]])
:value @(re-frame/subscribe [::filter :name-like])
:on-change (dispatch-value-change [::filter-changed :name-like])} ]]]])

View File

@@ -0,0 +1,48 @@
(ns auto-ap.views.pages.admin.vendors.table
(:require
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[auto-ap.subs :as subs]
[auto-ap.status :as status]
[auto-ap.views.components.vendor-dialog :refer [vendor-dialog] :as vendor-dialog]
[auto-ap.views.components.grid :as grid]
[auto-ap.views.utils :refer [login-url dispatch-value-change dispatch-event bind-field horizontal-field action-cell-width]]
[auto-ap.views.components.buttons :as buttons]))
(re-frame/reg-event-fx
::params-changed
(fn [{:keys [db]} [_ p]]
{:db (assoc db ::params p)}))
(re-frame/reg-sub
::params
(fn [db]
(-> db ::params)))
(defn vendors-table [{:keys [status page]}]
(let [params @(re-frame/subscribe [::params])
accounts @(re-frame/subscribe [::subs/all-accounts-by-id])]
[grid/grid {:status status
:on-params-change (fn [p]
(re-frame/dispatch [::params-changed p]))
:params params
:column-count 4}
[grid/controls page]
[grid/table {:fullwidth true}
[grid/header
[grid/row {}
[grid/header-cell {} "Name"]
[grid/header-cell {} "Email"]
[grid/header-cell {} "Default Account"]
[grid/header-cell {:style {:width (action-cell-width 1)}}]]]
[grid/body
(for [v (:data page)]
^{:key (str (:id v))}
[grid/row {:class (:class v)}
[grid/cell {} (:name v)]
[grid/cell {} (:email (:primary-contact v))]
[grid/cell {} (-> v :default-account :id accounts :name)]
[grid/cell {}
[buttons/fa-icon {:event [::vendor-dialog/started v]
:icon "fa-pencil"}]]])]]]))