incorporating UI feedback

This commit is contained in:
Bryce Covert
2019-08-22 07:34:17 -07:00
parent c9fab1de9f
commit c88840c719
2 changed files with 50 additions and 32 deletions

View File

@@ -63,6 +63,7 @@
existing-set (set (map :external-id (:existing (:import-ledger result))))] existing-set (set (map :external-id (:existing (:import-ledger result))))]
{:db (-> (forms/save-succeeded db ::form ) {:db (-> (forms/save-succeeded db ::form )
(assoc-in [::forms/forms ::form :result] {:errors error-set :success successful-set :existing existing-set})
(update-in [::forms/forms ::form :data :line-items] (update-in [::forms/forms ::form :data :line-items]
(fn [lis] (fn [lis]
(mapv (mapv
@@ -107,6 +108,7 @@
(defn textarea->table [{:keys [headings value on-change read-only-headings]} & children] (defn textarea->table [{:keys [headings value on-change read-only-headings]} & children]
(let [text-form (r/atom "") (let [text-form (r/atom "")
include-headers (r/atom false)
table-form (r/atom nil)] table-form (r/atom nil)]
(fn [{:keys [headings value on-change]}] (fn [{:keys [headings value on-change]}]
[:form.form [:form.form
@@ -139,26 +141,42 @@
(get row k)]))]))] (get row k)]))]))]
children] children]
[:div [:div
[:h1.title.is-2 "External Import"]
[:div.field [:div.field
[:p.help "Paste manual ledger entries below."] [:p.help "Paste manual ledger entries below."]
[:textarea.textarea {:on-change #(reset! text-form (.. % -target -value))} @text-form]] [:textarea.textarea {:on-change #(reset! text-form (.. % -target -value))} @text-form]]
[:button.button.is-primary.is-pulled-right.is-large {:on-click (fn [e] [:div.field
[:label.checkbox
[:input {:type "checkbox" :checked @include-headers :on-change #(swap! include-headers (fn [x] (not x)))}
]
" Contains Header Row"]]
[:button.button.is-medium {:on-click (fn [e]
(.preventDefault e) (.preventDefault e)
(on-change (on-change
(->> (str/split @text-form #"\n") (cond->> (str/split @text-form #"\n")
(drop 1) @include-headers (drop 1)
(mapv #(->> (str/split % "\t") true (mapv #(->> (str/split % "\t")
(map (fn [[_ k] v] [k v]) headings) (map (fn [[_ k] v] [k v]) headings)
(into {}))))))} (into {}))))))}
"Evaluate"]])]))) "Parse"]
])])))
(def balance-sheet-content (def balance-sheet-content
(with-meta (with-meta
(fn [] (fn []
(let [current-client @(re-frame/subscribe [::subs/client]) (let [current-client @(re-frame/subscribe [::subs/client])
user @(re-frame/subscribe [::subs/user]) user @(re-frame/subscribe [::subs/user])
{:keys [data active? error id]} @(re-frame/subscribe [::forms/form ::form]) ] {:keys [data result active? error id]} @(re-frame/subscribe [::forms/form ::form]) ]
[:div
[:div.level
[:div.level-left
[:h1.title "Eternal Import"]]
[:div.level-right
[:button.button.is-primary.is-pulled-right.is-large {:disabled (not data)
:on-click (dispatch-event [::importing])} "Import"]]]
(when result
[:div.notification
"Imported with " (count (:errors result)) " errors, " (count (:success result)) " successful."])
(if @(re-frame/subscribe [::forms/is-loading? ::form]) (if @(re-frame/subscribe [::forms/is-loading? ::form])
[:div [:i.icon.fa.fa-spin.fa-spinner]] [:div [:i.icon.fa.fa-spin.fa-spinner]]
[:div [:div
@@ -180,7 +198,7 @@
:event [::forms/change ::form] :event [::forms/change ::form]
:subscription data} :subscription data}
[:button.button.is-primary.is-pulled-right.is-large {:on-click (dispatch-event [::importing])} "Import"]]]]))) ]]])]))
{})) {}))
(defn external-import-page [] (defn external-import-page []

View File

@@ -21,7 +21,7 @@
::report ::report
:comparable-balance-sheet-accounts :comparable-balance-sheet-accounts
(map :location))) (map :location)))
(filter #(not= "A" %)) #_(filter #(not= "A" %))
(filter identity) (filter identity)
(set) (set)