able to find by vendor.
This commit is contained in:
@@ -47,6 +47,11 @@
|
||||
:where ['[?e :transaction-rule/client ?client-id]]}
|
||||
:args [(:client-id args)]})
|
||||
|
||||
(:vendor-id args)
|
||||
(merge-query {:query {:in ['?vendor-id]
|
||||
:where ['[?e :transaction-rule/vendor ?vendor-id]]}
|
||||
:args [(:vendor-id args)]})
|
||||
|
||||
true
|
||||
(merge-query {:query {:find ['?e]
|
||||
:where ['[?e :transaction-rule/transaction-approval-status]]}}))]
|
||||
|
||||
@@ -472,6 +472,7 @@
|
||||
|
||||
:transaction_rule_page {:type :transaction_rule_page
|
||||
:args {:client_id {:type :id}
|
||||
:vendor_id {:type :id}
|
||||
:start {:type 'Int}
|
||||
:sort {:type '(list :sort_item)}
|
||||
:asc {:type 'Boolean}}
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
(:require [auto-ap.forms :as forms]
|
||||
[auto-ap.subs :as subs]
|
||||
[auto-ap.views.components.admin.side-bar :refer [admin-side-bar]]
|
||||
[auto-ap.views.pages.admin.rules.side-bar :as side-bar]
|
||||
[auto-ap.views.components.layouts :refer [appearing-side-bar side-bar-layout]]
|
||||
[auto-ap.views.pages.admin.rules.table :as table]
|
||||
[auto-ap.views.pages.admin.rules.results-modal :as results-modal]
|
||||
[auto-ap.views.pages.admin.rules.form :as form]
|
||||
[auto-ap.views.pages.admin.rules.common :refer [default-read]]
|
||||
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
||||
[vimsical.re-frame.cofx.inject :as inject]
|
||||
[auto-ap.events :as events]
|
||||
[auto-ap.utils :refer [replace-by]]
|
||||
[re-frame.core :as re-frame]))
|
||||
@@ -24,10 +26,6 @@
|
||||
(fn [db]
|
||||
(-> db ::page)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::params
|
||||
(fn [db]
|
||||
(-> db (::params {}))))
|
||||
|
||||
;; EVENTS
|
||||
|
||||
@@ -59,21 +57,41 @@
|
||||
(mapv ungraphql-transaction-rule rules)))))
|
||||
(assoc-in [:status :loading] false))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::last-params
|
||||
(fn [db]
|
||||
(-> db ::last-params)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::params
|
||||
:<- [::last-params]
|
||||
:<- [::subs/client]
|
||||
:<- [::side-bar/filter-params]
|
||||
(fn [[last-params client filter-params table-params]]
|
||||
(let [params (cond-> {}
|
||||
client (assoc :client-id (:id client))
|
||||
(seq filter-params) (merge filter-params))]
|
||||
(when (not= params last-params)
|
||||
(re-frame/dispatch [::params-change]))
|
||||
params)))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::params-change
|
||||
[with-user]
|
||||
(fn [{:keys [db user]} [_ params]]
|
||||
[with-user (re-frame/inject-cofx ::inject/sub [::params])]
|
||||
(fn [{:keys [db user] ::keys [params] :as cofx} _]
|
||||
{:db (-> db
|
||||
(assoc-in [:status :loading] true)
|
||||
(assoc-in [::params] params))
|
||||
(assoc-in [::last-params] params))
|
||||
:graphql {:token user
|
||||
:query-obj {:venia/queries [[:transaction_rule_page
|
||||
(assoc params :client-id (:id @(re-frame/subscribe [::subs/client])))
|
||||
(or params {})
|
||||
[[:transaction-rules default-read]
|
||||
:total
|
||||
:start
|
||||
:end]]]}
|
||||
:on-success [::received]}}))
|
||||
:on-success [::received]}
|
||||
:set-uri-params (dissoc params
|
||||
:client-id)}))
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
@@ -105,8 +123,12 @@
|
||||
(re-frame/dispatch [::events/yodlee-merchants-needed])) }))
|
||||
|
||||
(defn admin-rules-page []
|
||||
(let [{:keys [active?]} @(re-frame/subscribe [::forms/form ::form/form])]
|
||||
[side-bar-layout {:side-bar [admin-side-bar {}]
|
||||
(let [{:keys [active?]} @(re-frame/subscribe [::forms/form ::form/form])
|
||||
params @(re-frame/subscribe [::params])]
|
||||
[side-bar-layout {:side-bar [admin-side-bar {}
|
||||
[:<>
|
||||
[side-bar/rule-side-bar]
|
||||
]]
|
||||
:main [rules-content]
|
||||
:right-side-bar [appearing-side-bar {:visible? active?}
|
||||
[form/form {:rule-saved [::edit-completed]}]]
|
||||
|
||||
58
src/cljs/auto_ap/views/pages/admin/rules/side_bar.cljs
Normal file
58
src/cljs/auto_ap/views/pages/admin/rules/side_bar.cljs
Normal file
@@ -0,0 +1,58 @@
|
||||
(ns auto-ap.views.pages.admin.rules.side-bar
|
||||
(:require
|
||||
[re-frame.core :as re-frame]
|
||||
[auto-ap.subs :as subs]
|
||||
[auto-ap.views.components.typeahead :refer [typeahead-entity]]))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::specific-filters
|
||||
(fn [db ]
|
||||
(::filters db nil)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::filters
|
||||
:<- [::specific-filters]
|
||||
:<- [::subs/vendors-by-id]
|
||||
:<- [::subs/query-params]
|
||||
(fn [[specific-filters vendors-by-id query-params] ]
|
||||
(let [url-filters (-> query-params
|
||||
(select-keys #{:vendor-id}))
|
||||
url-filters {:vendor (when-let [vendor-id (:vendor-id url-filters)]
|
||||
{:id (str vendor-id)
|
||||
:name (get-in vendors-by-id [(str vendor-id) :name] "Loading...")})}]
|
||||
(merge url-filters specific-filters ))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::filter
|
||||
:<- [::filters]
|
||||
(fn [filters [_ which]]
|
||||
(get filters which)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::filter-params
|
||||
:<- [::filters]
|
||||
:<- [::subs/active-page]
|
||||
(fn [[filters ap ]]
|
||||
{:vendor-id (:id (:vendor filters))}))
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::filter-changed
|
||||
(fn [{:keys [db]} [_ & params]]
|
||||
(let [[a b c] params
|
||||
[which val] (if (= 3 (count params))
|
||||
[(into [a] b) c]
|
||||
[[a] b])]
|
||||
{:db (assoc-in db (into [::filters] which) val)})))
|
||||
|
||||
|
||||
(defn rule-side-bar []
|
||||
[:div
|
||||
[:p.menu-label "Vendor"]
|
||||
[:div
|
||||
[typeahead-entity {:matches @(re-frame/subscribe [::subs/vendors])
|
||||
:on-change #(re-frame/dispatch [::filter-changed :vendor %])
|
||||
:match->text :name
|
||||
:type "typeahead-entity"
|
||||
:value @(re-frame/subscribe [::filter :vendor])}]]])
|
||||
|
||||
Reference in New Issue
Block a user