adds integration statuses to bank account pages.

This commit is contained in:
2022-07-08 11:59:59 -07:00
parent 2f2d582a4b
commit 789914b3f7
13 changed files with 234 additions and 58 deletions

View File

@@ -49,6 +49,32 @@
(merge (select-keys query-params #{:start :sort}) specific-params )))
(defn integration-status-badge [name status]
(condp = (:state status)
:success
[:div.tag.has-tooltip-right.has-tooltip-arrow {:data-tooltip (str "Last updated:" (date->str (:last-updated status))
"\n"
"Last Attempted:" (date->str (:last-attempt status)))} [:span.icon [:i.has-text-success.fa.fa-check]] [:span name]]
:failed
[:div.tag.is-danger.is-light.has-tooltip-right.has-tooltip-arrow {:data-tooltip (str "Last updated:" (date->str (:last-updated status))
"\n"
"Last Attempted:" (date->str (:last-attempt status))
"\n"
(:message status))
} [:span.icon [:i.has-text-danger.fa.fa-warning]] [:span name]]
:unauthorized
[:div.tag.is-danger.is-light.has-tooltip-right.has-tooltip-arrow {:data-tooltip (str "Last updated:" (date->str (:last-updated status))
"\n"
"Last Attempted:" (date->str (:last-attempt status))
"\n"
"Your user is unauthorized. Detail:\n"
(:message status))
} [:span.icon [:i.has-text-danger.fa.fa-warning]] [:span name]]
nil
))
(defn clients-table [{:keys [page status]}]
(let [states @(re-frame/subscribe [::status/multi ::setup-sales-queries])]
[grid/grid {:on-params-change (fn [p]
@@ -63,21 +89,27 @@
[grid/header-cell {} "Name"]
[grid/header-cell {:style {:width "20em"}} "Code"]
[grid/header-cell {} "Locations"]
[grid/header-cell {} "Locked Until"]
[grid/header-cell {} "Status"]
[grid/header-cell {} "Email"]
[grid/header-cell {:style {:width (action-cell-width 2)}}]]
]
[grid/body
(for [{:keys [id name email locked-until code locations]} (:data page)]
(for [{:keys [id name email square-integration-status locked-until code locations bank-accounts]} (:data page)]
^{:key (str name "-" id )}
[grid/row {:id id}
[grid/cell {} name]
[grid/cell {} code]
[grid/cell {} (str/join ", " locations)]
[grid/cell {} [:div.tag (or (some-> locked-until date->str)
"Not locked"
)]]
[grid/cell {} [:div.tags
[:div.tag (or (some-> locked-until date->str (#(str "Locked " %))) "Not locked")]
[integration-status-badge "Square" square-integration-status]
[:<>
(for [bank-account bank-accounts
:let [code (:code bank-account)
integration-status (:integration-status bank-account)]
:when integration-status]
[integration-status-badge code integration-status])]]]
[grid/cell {} email]
[grid/cell {} [:div.buttons [buttons/fa-icon {:event [::setup-sales-queries id]
:class (status/class-for (get states id))