you can change statuses in bulk!
This commit is contained in:
@@ -831,10 +831,11 @@
|
||||
:args {:invoices {:type '(list :id)}}
|
||||
:resolve :mutation/approve-invoices}
|
||||
|
||||
:unapprove_transactions {:type :message
|
||||
:args {:filters {:type :transaction_filters}
|
||||
:ids {:type '(list :id)}}
|
||||
:resolve :mutation/unapprove-transactions}
|
||||
:bulk_change_transaction_status {:type :message
|
||||
:args {:filters {:type :transaction_filters}
|
||||
:status {:type :transaction_approval_status}
|
||||
:ids {:type '(list :id)}}
|
||||
:resolve :mutation/bulk-change-transaction-status}
|
||||
|
||||
:delete_external_ledger {:type :message
|
||||
:args {:filters {:type :ledger_filters}
|
||||
@@ -1190,7 +1191,7 @@
|
||||
:mutation/edit-invoice gq-invoices/edit-invoice
|
||||
:mutation/edit-transaction gq-transactions/edit-transaction
|
||||
:mutation/unlink-transaction gq-transactions/unlink-transaction
|
||||
:mutation/unapprove-transactions gq-transactions/unapprove-transactions
|
||||
:mutation/bulk-change-transaction-status gq-transactions/bulk-change-status
|
||||
:mutation/delete-external-ledger gq-ledger/delete-external-ledger
|
||||
:mutation/delete-transactions gq-transactions/delete-transactions
|
||||
:mutation/upsert-transaction-rule gq-transaction-rules/upsert-transaction-rule
|
||||
|
||||
@@ -36,10 +36,11 @@
|
||||
:start (:start args 0)
|
||||
:end (+ (:start args 0) (count transactions))}))
|
||||
|
||||
(defn unapprove-transactions [context args value]
|
||||
(defn bulk-change-status [context args value]
|
||||
(let [_ (assert-admin (:id context))
|
||||
args (assoc args :id (:id context))
|
||||
ids (some-> (:filters args)
|
||||
(assoc :id (:id context))
|
||||
(<-graphql)
|
||||
(update :approval-status enum->keyword "transaction-approval-status")
|
||||
(assoc :per-page Integer/MAX_VALUE)
|
||||
@@ -53,10 +54,10 @@
|
||||
(audit-transact-batch
|
||||
(mapv (fn [i]
|
||||
{:db/id i
|
||||
:transaction/approval-status :transaction-approval-status/unapproved})
|
||||
:transaction/approval-status (enum->keyword (:status args) "transaction-approval-status")})
|
||||
all-ids)
|
||||
(:id context))
|
||||
{:message (str "Succesfully unapproved " (count all-ids) " transactions.")}))
|
||||
{:message (str "Succesfully changed " (count all-ids) " transactions to be " (name (:status args) ) ".")}))
|
||||
|
||||
|
||||
(defn delete-transactions [context args value]
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
[::data-page/received ::page (:result result)])}}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::unapprove-selected
|
||||
(fn [cofx [_ params]]
|
||||
::bulk-change-transaction-status
|
||||
(fn [cofx [_ status params]]
|
||||
(let [checked @(re-frame/subscribe [::data-page/checked ::page])
|
||||
checked-params (get checked "header")
|
||||
specific-transactions (map :id (vals (dissoc checked "header")))]
|
||||
@@ -69,18 +69,18 @@
|
||||
{:db (-> (:db cofx)
|
||||
(assoc-in [:status :loading] true))
|
||||
:graphql {:token (-> cofx :db :user)
|
||||
:owns-state {:single ::unapprove-selected}
|
||||
:owns-state {:single ::bulk-change-transaction-status}
|
||||
:query-obj
|
||||
{:venia/operation {:operation/type :mutation
|
||||
:operation/name "UnapproveTransactions"}
|
||||
:operation/name "BulkChangeTransactionStatus"}
|
||||
:venia/queries [{:query/data
|
||||
[:unapprove-transactions
|
||||
[:bulk-change-transaction-status
|
||||
{:filters (some-> checked-params data-params->query-params)
|
||||
:status status
|
||||
:ids specific-transactions}
|
||||
[:message]]}]}
|
||||
:on-success (fn [result]
|
||||
[::params-change params]
|
||||
#_[::data-page/received ::page (:result result)])}})))
|
||||
[::params-change params])}})))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::delete-selected
|
||||
@@ -136,7 +136,7 @@
|
||||
checked @(re-frame/subscribe [::data-page/checked ::page])]
|
||||
[:div
|
||||
[:h1.title "Transactions"]
|
||||
[status/status-notification {:statuses [[::status/single ::unapprove-selected]
|
||||
[status/status-notification {:statuses [[::status/single ::bulk-change-transaction-status]
|
||||
[::status/single ::delete-selected]
|
||||
[::status/single ::manual-import]]}]
|
||||
(when is-admin?
|
||||
@@ -154,11 +154,16 @@
|
||||
checked))
|
||||
[:button.button.is-outlined.is-primary {:on-click (dispatch-event [::manual/opening])}
|
||||
"Manual Yodlee Import"]
|
||||
[:button.button.is-warning {:on-click (dispatch-event [::unapprove-selected params])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::unapprove-selected]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::unapprove-selected]))
|
||||
[:button.button.is-warning {:on-click (dispatch-event [::bulk-change-transaction-status :unapproved 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)))}
|
||||
"Unapprove selected"]
|
||||
[: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])
|
||||
:class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected]))
|
||||
|
||||
Reference in New Issue
Block a user