From 86ed52f44c39b535239537f36c74c1a1eac9cb43 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Mon, 30 Mar 2020 08:18:28 -0700 Subject: [PATCH] Unapproving a collection works --- src/clj/auto_ap/datomic/transactions.clj | 9 ++++---- .../auto_ap/views/pages/transactions.cljs | 23 +++++++++++++++---- .../views/pages/transactions/table.cljs | 12 +++++----- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/clj/auto_ap/datomic/transactions.clj b/src/clj/auto_ap/datomic/transactions.clj index 888d01ea..83004760 100644 --- a/src/clj/auto_ap/datomic/transactions.clj +++ b/src/clj/auto_ap/datomic/transactions.clj @@ -166,8 +166,7 @@ (defn unapprove [ids] (doseq [x (partition-all 1000 ids)] @(d/transact (d/connect uri) - (doto (mapv (fn [i] - {:db/id i - :transaction/approval-status :transaction-approval-status/unapproved}) - x) - println)))) + (mapv (fn [i] + {:db/id i + :transaction/approval-status :transaction-approval-status/unapproved}) + x)))) diff --git a/src/cljs/auto_ap/views/pages/transactions.cljs b/src/cljs/auto_ap/views/pages/transactions.cljs index a1b417e6..17ae8531 100644 --- a/src/cljs/auto_ap/views/pages/transactions.cljs +++ b/src/cljs/auto_ap/views/pages/transactions.cljs @@ -34,7 +34,7 @@ (re-frame/reg-event-fx ::manual-import-completed (fn [{:keys [db]} [_ {:keys [imported errors]}]] - {:dispatch [::params-change {}] + {:dispatch [::params-change (::params db)] :db (-> db (assoc-in [::notification :message] (str "Successfully imported " imported " transactions")) (assoc-in [::notification :errors] errors))})) @@ -65,13 +65,25 @@ :end]]]} :on-success [::received]}})) +(re-frame/reg-event-fx + ::transactions-mounted + (fn [{:keys [db]} [_ params]] + (let [already-mounted? (and (db ::params) + (db ::transaction-page)) + params-changed? (not= (db ::params) + (update db ::params merge params))] + + + (if (and already-mounted? (not params-changed?)) + {} + {:dispatch [::params-change (merge (::params db ) params) ]})))) + (re-frame/reg-event-fx ::unapprove-all (fn [cofx [_ params]] {:db (-> (:db cofx) - (assoc-in [:status :loading] true) - (assoc-in [::params] params)) + (assoc-in [:status :loading] true)) :graphql {:token (-> cofx :db :user) :query-obj {:venia/operation {:operation/type :mutation @@ -90,7 +102,8 @@ ::received (fn [db [_ data]] (-> db - (update ::transaction-page merge (first (:transaction-page data))) + (update ::transaction-page merge (or (first (:transaction-page data)) + (first (:unapprove-transactions data)))) (assoc-in [:status :loading] false)))) (re-frame/reg-event-db @@ -192,7 +205,7 @@ :on-params-change (fn [params] (re-frame/dispatch [::params-change params]))}] ])) - {:component-will-mount #(re-frame/dispatch-sync [::params-change {:approval-status approval-status}]) })) + {:component-will-mount #(re-frame/dispatch-sync [::transactions-mounted {:approval-status approval-status}]) })) (def main-content {nil (content {:approval-status nil}) :unapproved (content {:approval-status :unapproved}) diff --git a/src/cljs/auto_ap/views/pages/transactions/table.cljs b/src/cljs/auto_ap/views/pages/transactions/table.cljs index 150fe545..499dd8d5 100644 --- a/src/cljs/auto_ap/views/pages/transactions/table.cljs +++ b/src/cljs/auto_ap/views/pages/transactions/table.cljs @@ -93,18 +93,18 @@ [:tr [:td {:col-span 5} [:i.fa.fa-spin.fa-spinner]]] - (for [{:keys [client account vendor payment status bank-account description-original date amount id yodlee-merchant ] :as i} (:transactions @transaction-page)] + (for [{:keys [client account vendor approval-status payment status bank-account description-original date amount id yodlee-merchant ] :as i} (:transactions @transaction-page)] ^{:key id} [:tr {:class (:class i)} (when-not selected-client [:td (:name client)]) [:td (cond vendor - (:name vendor) - yodlee-merchant - [:i.has-text-grey (str "Merchant '" (:name yodlee-merchant) "'")] + (:name vendor) + yodlee-merchant + [:i.has-text-grey (str "Merchant '" (:name yodlee-merchant) "'")] - :else - [:i.has-text-grey (str description-original)])] + :else + [:i.has-text-grey (str description-original)])] #_[:td description-original] [:td (date->str date) ] [:td.has-text-right (nf amount )]