adding transaction rules.
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
"admin/" {"" :admin
|
||||
"clients" :admin-clients
|
||||
"users" :admin-users
|
||||
"rules" :admin-rules
|
||||
"accounts" :admin-accounts
|
||||
"reminders" :admin-reminders
|
||||
"vendors" :admin-vendors
|
||||
|
||||
@@ -47,6 +47,12 @@
|
||||
[:i {:class "fa fa-envelope-o"}]]
|
||||
[:span {:class "name"} "Accounts"]]]
|
||||
|
||||
[:li.menu-item
|
||||
[:a {:href (bidi/path-for routes/routes :admin-rules), :class (str "item" (active-when ap = :admin-rules))}
|
||||
[:span {:class "icon"}
|
||||
[:i {:class "fa fa-envelope-o"}]]
|
||||
[:span {:class "name"} "Rules"]]]
|
||||
|
||||
|
||||
[:li.menu-item
|
||||
[:a {:href (bidi/path-for routes/routes :admin-yodlee), :class (str "item" (active-when ap = :admin-yodlee))}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
[auto-ap.views.pages.home :refer [home-page]]
|
||||
[auto-ap.views.pages.admin.clients :refer [admin-clients-page]]
|
||||
[auto-ap.views.pages.admin.accounts :refer [admin-accounts-page]]
|
||||
[auto-ap.views.pages.admin.rules :refer [admin-rules-page]]
|
||||
[auto-ap.views.pages.admin.vendors :refer [admin-vendors-page]]
|
||||
[auto-ap.views.pages.admin.excel-import :refer [admin-excel-import-page]]
|
||||
[auto-ap.views.pages.admin.users :refer [admin-users-page]]
|
||||
@@ -65,6 +66,10 @@
|
||||
(defmethod page :admin-clients [_]
|
||||
(admin-clients-page))
|
||||
|
||||
|
||||
(defmethod page :admin-rules [_]
|
||||
(admin-rules-page))
|
||||
|
||||
(defmethod page :admin-users [_]
|
||||
(admin-users-page))
|
||||
|
||||
|
||||
73
src/cljs/auto_ap/views/pages/admin/rules.cljs
Normal file
73
src/cljs/auto_ap/views/pages/admin/rules.cljs
Normal file
@@ -0,0 +1,73 @@
|
||||
(ns auto-ap.views.pages.admin.rules
|
||||
(: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.components.layouts :refer [appearing-side-bar side-bar-layout]]
|
||||
[auto-ap.views.pages.admin.rules.table :as table]
|
||||
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
||||
[re-frame.core :as re-frame]))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::notification
|
||||
(fn [db]
|
||||
(-> db ::notification)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::page
|
||||
(fn [db]
|
||||
(-> db ::page)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::params
|
||||
(fn [db]
|
||||
(-> db (::params {}))))
|
||||
|
||||
(def rule-read [:description-matches])
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::received
|
||||
(fn [db [_ data]]
|
||||
(-> db
|
||||
(update ::page merge (first (:rule-page data)))
|
||||
(assoc-in [:status :loading] false))))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::params-change
|
||||
[with-user]
|
||||
(fn [{:keys [db user]} [_ params]]
|
||||
{:db (-> db
|
||||
(assoc-in [:status :loading] true)
|
||||
(assoc-in [::params] params))
|
||||
:graphql {:token user
|
||||
:query-obj {:venia/queries [[:rule_page
|
||||
(assoc params :client-id (:id @(re-frame/subscribe [::subs/client])))
|
||||
[[:rules rule-read]
|
||||
:total
|
||||
:start
|
||||
:end]]]}
|
||||
:on-success [::received]}}))
|
||||
|
||||
(def rules-content
|
||||
(with-meta
|
||||
(fn []
|
||||
(let [notification (re-frame/subscribe [::notification])
|
||||
current-client @(re-frame/subscribe [::subs/client])
|
||||
user @(re-frame/subscribe [::subs/user])]
|
||||
[:div
|
||||
[:h1.title "Transaction Rules"]
|
||||
(when (= "admin" (:user/role user))
|
||||
[:div.is-pulled-right
|
||||
[:button.button.is-outlined.is-primary {:on-click (dispatch-event [::create-rule-clicked])} "New Rule"]])
|
||||
[table/table {:id :transactions
|
||||
:params (re-frame/subscribe [::params])
|
||||
:rule-page (re-frame/subscribe [::page])
|
||||
:on-params-change (fn [params]
|
||||
(re-frame/dispatch [::params-change params]))}]
|
||||
]))
|
||||
{:component-will-mount #(re-frame/dispatch-sync [::params-change {}]) }))
|
||||
|
||||
(defn admin-rules-page []
|
||||
(let [{:keys [active?]} @(re-frame/subscribe [::forms/form ::new-client])]
|
||||
[side-bar-layout {:side-bar [admin-side-bar {}]
|
||||
:main [rules-content]
|
||||
:right-side-bar [appearing-side-bar {:visible? active?} [:div]] }]))
|
||||
5
src/cljs/auto_ap/views/pages/admin/rules/table.cljs
Normal file
5
src/cljs/auto_ap/views/pages/admin/rules/table.cljs
Normal file
@@ -0,0 +1,5 @@
|
||||
(ns auto-ap.views.pages.admin.rules.table)
|
||||
|
||||
|
||||
(defn table [x]
|
||||
[:div])
|
||||
@@ -13,7 +13,7 @@
|
||||
[auto-ap.views.components.typeahead :refer [typeahead]]
|
||||
[auto-ap.views.components.paginator :refer [paginator]]
|
||||
[auto-ap.events :as events]
|
||||
[auto-ap.views.utils :refer [dispatch-event date->str bind-field nf]]
|
||||
[auto-ap.views.utils :refer [dispatch-event date->str bind-field nf with-user]]
|
||||
[auto-ap.utils :refer [by]]
|
||||
[auto-ap.views.pages.check :as check]
|
||||
[auto-ap.views.components.invoice-table :refer [invoice-table] :as invoice-table]
|
||||
@@ -34,12 +34,14 @@
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::params-change
|
||||
(fn [cofx [_ params]]
|
||||
|
||||
[with-user]
|
||||
(fn [{:keys [user db]}[_ params]]
|
||||
|
||||
{:db (-> (:db cofx)
|
||||
{:db (-> db
|
||||
(assoc-in [:status :loading] true)
|
||||
(assoc-in [::params] params))
|
||||
:graphql {:token (-> cofx :db :user)
|
||||
:graphql {:token user
|
||||
:query-obj {:venia/queries [[:payment_page
|
||||
(-> params
|
||||
(assoc :client-id (:id @(re-frame/subscribe [::subs/client])))
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
(-> db ::notification)))
|
||||
|
||||
(def transactions-content
|
||||
|
||||
(with-meta
|
||||
(fn []
|
||||
(let [notification (re-frame/subscribe [::notification])
|
||||
|
||||
Reference in New Issue
Block a user