This commit is contained in:
Bryce
2023-06-08 21:38:25 -07:00
5 changed files with 71 additions and 28 deletions

View File

@@ -144,8 +144,7 @@
[com.bhauman/rebel-readline-cljs "0.1.4" :exclusions [org.clojure/clojurescript]]
[javax.servlet/servlet-api "2.5"]]
:plugins [[lein-pdo "0.1.1"]]
:jvm-opts ["-Dconfig=config/dev.edn" "-Dlogback.configurationFile=logback.xml" "-Xms4G" "-Xmx20G" #_#_"-Ddatomic.valcachePath=/mnt/data/datomic-cache" "-Ddatomic.valcacheMaxGb=50"]}
:jvm-opts ["-Dconfig=config/dev.edn" "-Dlogback.configurationFile=logback.xml" "-Xms4G" "-Xmx20G" ]}
:uberjar
{:java-cmd "/usr/lib/jvm/java-11-openjdk/bin/java"

View File

@@ -85,7 +85,6 @@
:tip (fmt-amount tip)}]
:total (fmt-amount (+ food-total
tax
tip
(or adjustments 0.0)))
:discount (fmt-amount (or adjustments 0.0))
:service-charge (fmt-amount (+ fee commission))

View File

@@ -136,7 +136,7 @@
(index-documents-raw [this index xs]
(client/post
(str (assoc (url/url solr-uri "solr" index "update")
:query {"commitWithin" 60000}))
:query {"commitWithin" 5000}))
{:headers {"Content-Type" "application/json"}
:socket-timeout 30000
@@ -147,7 +147,7 @@
(index-documents [this index xs]
(client/post
(str (assoc (url/url solr-uri "solr" index "update")
:query {"commitWithin" 60000}))
:query {"commitWithin" 5000}))
{:headers {"Content-Type" "application/json"}
:socket-timeout 30000
:connection-timeout 30000

View File

@@ -13,7 +13,9 @@
[clojure.set :as set]
[re-frame.core :as re-frame]
[reagent.core :as reagent]
[vimsical.re-frame.fx.track :as track]))
[vimsical.re-frame.fx.track :as track]
[vimsical.re-frame.cofx.inject :as inject]
[auto-ap.views.components.buttons :as buttons]))
(defn data-params->query-params [params]
{:start (:start params 0)
@@ -61,6 +63,29 @@
[::data-page/received ::page (set/rename-keys (:ledger-page result)
{:journal-entries :data})])}}))
(re-frame/reg-sub
::csv-content
(fn [db]
(::csv-content db)))
(re-frame/reg-event-fx
::csv-exported
(fn [{:keys [db]} [_ csv]]
{:db (assoc db ::csv-content csv)}))
(re-frame/reg-event-fx
::export-csv
[with-user (re-frame/inject-cofx ::inject/sub [::data-page/params ::page])]
(fn [{:keys [user db] ::data-page/keys [params]}]
{:graphql {:token user
:owns-state {:single [::data-page/page ::page]}
:query-obj {:venia/queries [[:ledger-csv
{:filters (data-params->query-params params)}
[:csv_content_b64]]]}
:on-success (fn [result]
[::csv-exported (:csv-content-b64 (:ledger-csv result))])}}))
(re-frame/reg-event-fx
::unmounted
(fn [_ _]
@@ -101,31 +126,51 @@
:on-success (fn [result]
[::delete-successful result params])}})))
(defn action-buttons []
(println "HERE?")
(let [params @(re-frame/subscribe [::data-page/params ::page])
csv-content @(re-frame/subscribe [::csv-content])
is-admin? @(re-frame/subscribe [::subs/is-admin?])
status @(re-frame/subscribe [::status/single [::data-page/page ::page]])
checked @(re-frame/subscribe [::data-page/checked ::page])]
[:div.buttons
(into [:div.tags] (map (fn [[z {:keys [id external-id]}]]
(if (= "header" z)
[:span.tag.is-medium {:on-click
(dispatch-event [::data-page/remove-check ::page "header"])}
"All visible ledger entries"]
[:span.tag.is-medium external-id
[:button.delete.is-small {:on-click
(dispatch-event [::data-page/remove-check ::page id])}]]))
checked))
[: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]))
(not (seq checked)))}
"Delete selected"]
(when is-admin?
(if csv-content
[:a {:href (str "data:attachment/csv;base64," csv-content)
:target "_blank"
:download (str "ledger.csv")}
"Click here to download"]
[buttons/event-button {:event [::export-csv]
:name "Export"
:class (status/class-for status)
:disabled (status/disabled-for status)}]))]))
(defn ledger-content []
(let [_ @(re-frame/subscribe [::subs/client])
params @(re-frame/subscribe [::data-page/params ::page])
checked @(re-frame/subscribe [::data-page/checked ::page])]
]
[:div
[:h1.title "External Ledger"]
[status/status-notification {:statuses [[::status/single ::delete-selected]]}]
[:div.is-pulled-right
[:div.buttons
(into [:div.tags ] (map (fn [[z {:keys [id external-id]}]]
(if (= "header" z)
[:span.tag.is-medium {:on-click
(dispatch-event [::data-page/remove-check ::page "header"])}
"All visible ledger entries"]
[:span.tag.is-medium external-id
[:button.delete.is-small {:on-click
(dispatch-event [::data-page/remove-check ::page id])}]]))
checked))
[: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]))
(not (seq checked)))}
"Delete selected"]]]
]
[table/table {:id :ledger
:data-page ::page}]]))
:data-page ::page
:action-buttons [action-buttons]}]]))
(defn external-ledger-page []

View File

@@ -42,16 +42,16 @@
[grid/cell {:class "has-text-right"} (when debit (nf debit ))]
[grid/cell {:class "has-text-right"} (when credit (nf credit ))]])]])
(defn table [{:keys [data-page]}]
(defn table [{:keys [data-page action-buttons]}]
(let [{:keys [data params]} @(re-frame/subscribe [::data-page/page data-page])
selected-client @(re-frame/subscribe [::subs/client])
bank-accounts-by-id @(re-frame/subscribe [::subs/bank-accounts-by-id])]
[grid/grid {:data-page data-page
:check-boxes? true
:column-count (if selected-client 7 8)}
[grid/controls data]
[grid/controls (assoc data :action-buttons action-buttons)]
[grid/table {:fullwidth true :class ["wrappable"]}
[grid/header
[grid/header
[grid/row {:id "header"
:entity params}
(when-not selected-client
@@ -67,6 +67,6 @@
(for [{:keys [id] :as i} (:data data)]
^{:key id}
[external-ledger-row {:row i
:selected-client selected-client
:bank-accounts-by-id bank-accounts-by-id}])]]]))
:selected-client selected-client
:bank-accounts-by-id bank-accounts-by-id}])]]]))