First cut at bulk coding
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
(:require [auto-ap.effects.forward :as forward]
|
||||
[auto-ap.forms :as forms]
|
||||
[auto-ap.subs :as subs]
|
||||
[auto-ap.utils :refer [replace-by]]
|
||||
[auto-ap.views.components.modal :as modal]
|
||||
[auto-ap.views.components.layouts
|
||||
:refer
|
||||
[appearing-side-bar side-bar-layout]]
|
||||
[auto-ap.views.pages.data-page :as data-page]
|
||||
[auto-ap.views.pages.transactions.common :refer [transaction-read]]
|
||||
[auto-ap.views.pages.transactions.common :refer [transaction-read data-params->query-params]]
|
||||
[auto-ap.views.pages.transactions.form :as edit]
|
||||
[auto-ap.views.pages.transactions.manual :as manual]
|
||||
[auto-ap.views.pages.transactions.bulk-updates :as bulk]
|
||||
[auto-ap.views.pages.transactions.side-bar :as side-bar]
|
||||
[auto-ap.views.pages.transactions.table :as table]
|
||||
[auto-ap.views.utils :refer [dispatch-event with-user]]
|
||||
[clojure.set :as set]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[vimsical.re-frame.fx.track :as track]
|
||||
@@ -22,34 +22,10 @@
|
||||
|
||||
|
||||
|
||||
(defn data-params->query-params [params]
|
||||
{:start (:start params 0)
|
||||
:per-page (:per-page params)
|
||||
:sort (:sort params)
|
||||
:client-id (:id @(re-frame/subscribe [::subs/client]))
|
||||
:vendor-id (:id (:vendor params))
|
||||
:date-range (:date-range params)
|
||||
:account-id (:id (:account params))
|
||||
:bank-account-id (:id (:bank-account params))
|
||||
:amount-gte (:amount-gte (:amount-range params))
|
||||
:exact-match-id (some-> (:exact-match-id params) str)
|
||||
:unresolved (:unresolved params)
|
||||
:potential-duplicates (:potential-duplicates params)
|
||||
:location (:location params)
|
||||
:import-batch-id (some-> (:import-batch-id params) str)
|
||||
:amount-lte (:amount-lte (:amount-range params))
|
||||
:description (:description params)
|
||||
:approval-status (condp = @(re-frame/subscribe [::subs/active-page])
|
||||
:transactions nil
|
||||
:unapproved-transactions :unapproved
|
||||
:requires-feedback-transactions :requires-feedback
|
||||
:excluded-transactions :excluded
|
||||
:approved-transactions :approved)})
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::params-change
|
||||
[with-user]
|
||||
(fn [{:keys [user db ]} [_ params]]
|
||||
(fn [{:keys [user]} [_ params]]
|
||||
(try
|
||||
{:graphql {:token user
|
||||
:owns-state {:single [::data-page/page ::page]}
|
||||
@@ -61,8 +37,6 @@
|
||||
:end]]
|
||||
:query/alias :result}]}
|
||||
:on-success (fn [result]
|
||||
|
||||
|
||||
[::data-page/received ::page (:result result)])}}
|
||||
(catch js/Error e
|
||||
;; this catches an error where you choose a parameter, change to invoices page, then change to voided invoices
|
||||
@@ -88,7 +62,7 @@
|
||||
:status status
|
||||
:ids specific-transactions}
|
||||
[:message]]}]}
|
||||
:on-success (fn [result]
|
||||
:on-success (fn [_]
|
||||
[::params-change params])}})))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
@@ -110,13 +84,32 @@
|
||||
:ids specific-transactions
|
||||
:suppress suppress}
|
||||
[:message]]}]}
|
||||
:on-success (fn [result]
|
||||
:on-success (fn [_]
|
||||
[::params-change params])}
|
||||
:dispatch [::data-page/reset-checked ::page]})))
|
||||
:dispatch-n [[::data-page/reset-checked ::page]
|
||||
[::modal/modal-closed]]})))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::delete-selected-requested
|
||||
(fn [_ [_ params suppress]]
|
||||
(let [checked @(re-frame/subscribe [::data-page/checked ::page])
|
||||
to-delete (if (get checked "header")
|
||||
"all visible transactions"
|
||||
(str (count checked) " transactions"))]
|
||||
{:dispatch [::modal/modal-requested {:title "Confirmation"
|
||||
:body [:div (str "Are you sure you want to delete " to-delete "?")]
|
||||
:cancel? true
|
||||
:confirm {:value "Delete"
|
||||
:class "is-danger"
|
||||
:status-from [::status/single ::delete-selected]
|
||||
:on-click (dispatch-event [::delete-selected params suppress] )}
|
||||
:close-event [::status/completed ::delete-selected]}]})))
|
||||
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::unmounted
|
||||
(fn [{:keys [db]} _]
|
||||
(fn [{:keys []} _]
|
||||
{:dispatch-n [[::data-page/dispose ::page]
|
||||
[::status/dispose-single ::manual-import]]
|
||||
::track/dispose {:id ::params}
|
||||
@@ -125,7 +118,7 @@
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::mounted
|
||||
(fn [{:keys [db]} _]
|
||||
(fn [{:keys []} _]
|
||||
{::track/register {:id ::params
|
||||
:subscription [::data-page/params ::page]
|
||||
:event-fn (fn [params]
|
||||
@@ -136,7 +129,7 @@
|
||||
[::data-page/updated-entity ::page edited-transaction])}
|
||||
{:id ::manual-import
|
||||
:events #{::manual/import-completed}
|
||||
:event-fn (fn [[_ {:keys [imported errors] :as result}]]
|
||||
:event-fn (fn [[_ result]]
|
||||
(println result)
|
||||
[::status/info ::manual-import
|
||||
(str "Successfully "
|
||||
@@ -182,28 +175,28 @@
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
(not (seq checked)))}
|
||||
"Unapprove selected"]
|
||||
"Unapprove"]
|
||||
|
||||
[:button.button.is-warning {:on-click (dispatch-event [::bulk-change-transaction-status :excluded params])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
(not (seq checked)))}
|
||||
"Exclude selected"]
|
||||
"Exclude"]
|
||||
[:button.button.is-warning {:on-click (dispatch-event [::bulk-change-transaction-status :requires-feedback params])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::bulk-change-transaction-status]))
|
||||
(not (seq checked)))}
|
||||
"Client Review"]
|
||||
[:button.button.is-danger {:on-click (dispatch-event [::delete-selected params false])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
(not (seq checked)))}
|
||||
"Delete selected"]
|
||||
[:button.button.is-danger {:on-click (dispatch-event [::delete-selected params true])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
(not (seq checked)))}
|
||||
"Suppress selected"]]])
|
||||
(when (:client-id params)
|
||||
[:button.button.is-warning {:on-click (dispatch-event [::bulk/code-requested checked params])
|
||||
:disabled (not (seq checked))}
|
||||
"Code"])
|
||||
[:button.button.is-danger {:on-click (dispatch-event [::delete-selected-requested params false])
|
||||
:disabled (not (seq checked))}
|
||||
"Delete"]
|
||||
[:button.button.is-danger {:on-click (dispatch-event [::delete-selected-requested params true])
|
||||
:disabled (not (seq checked))}
|
||||
"Suppress"]]])
|
||||
[table/table {:id :transactions
|
||||
:check-boxes? is-admin?
|
||||
:data-page ::page}]]))
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
(ns auto-ap.views.pages.transactions.common)
|
||||
(ns auto-ap.views.pages.transactions.common
|
||||
(:require
|
||||
[auto-ap.subs :as subs]
|
||||
[re-frame.core :as re-frame]))
|
||||
|
||||
(def transaction-read
|
||||
[:id
|
||||
@@ -18,3 +21,27 @@
|
||||
[:payment [:check_number :s3_url :id :date]]
|
||||
[:client [:name :id]]
|
||||
[:bank-account [:name :yodlee-account-id :current-balance]]])
|
||||
|
||||
(defn data-params->query-params [params]
|
||||
{:start (:start params 0)
|
||||
:per-page (:per-page params)
|
||||
:sort (:sort params)
|
||||
:client-id (:id @(re-frame/subscribe [::subs/client]))
|
||||
:vendor-id (:id (:vendor params))
|
||||
:date-range (:date-range params)
|
||||
:account-id (:id (:account params))
|
||||
:bank-account-id (:id (:bank-account params))
|
||||
:amount-gte (:amount-gte (:amount-range params))
|
||||
:exact-match-id (some-> (:exact-match-id params) str)
|
||||
:unresolved (:unresolved params)
|
||||
:potential-duplicates (:potential-duplicates params)
|
||||
:location (:location params)
|
||||
:import-batch-id (some-> (:import-batch-id params) str)
|
||||
:amount-lte (:amount-lte (:amount-range params))
|
||||
:description (:description params)
|
||||
:approval-status (condp = @(re-frame/subscribe [::subs/active-page])
|
||||
:transactions nil
|
||||
:unapproved-transactions :unapproved
|
||||
:requires-feedback-transactions :requires-feedback
|
||||
:excluded-transactions :excluded
|
||||
:approved-transactions :approved)})
|
||||
|
||||
Reference in New Issue
Block a user