fixes problems in the ui.

This commit is contained in:
2024-08-09 22:21:29 -07:00
parent 1bb8387051
commit ddf358379a
5 changed files with 48 additions and 4 deletions

View File

@@ -4,7 +4,7 @@
[auto-ap.query-params :as query-params]
[auto-ap.routes.utils
:refer [wrap-client-redirect-unauthenticated wrap-secure]]
[auto-ap.ssr-routes :as ssr-routes]
[auto-ap.ssr-routes :as ssr-routes]
[auto-ap.ssr.components :as com]
[auto-ap.ssr.hiccup-helper :as hh]
[auto-ap.ssr.hx :as hx]
@@ -86,6 +86,17 @@
[:div.h-4.w-4 svg/x]]]]))
"default sort"))
(defn create-break-table-fn [break-table grid-spec ]
(let [last (atom nil)]
(fn [request entity]
(let [break-table-value (break-table request entity)]
(when (not= break-table-value @last)
(reset! last break-table-value)
(com/data-grid-row {}
(com/data-grid-cell {:colspan (cond-> (inc (count (:headers grid-spec)))
(:check-boxes? grid-spec) inc)}
[:span.font-bold.text-gray-600.text-lg break-table-value])))))))
(defn table* [grid-spec user {{:keys [start per-page flash-id sort]} :parsed-query-params :as request}]
(alog/info ::TABLE-QP
:qp (:query-params request)
@@ -120,8 +131,14 @@
[:div.w-3.h-3
(com/link {"@click" "selected=[]; all_selected=false"}
svg/x)]])]))
:rows (for [entity entities]
(row* grid-spec user entity {:flash? (= flash-id ((:id-fn grid-spec) entity)) :request request}))
:rows
(let [break-table-fn (some-> grid-spec :break-table ( create-break-table-fn grid-spec))]
(for [entity entities
row (if-let [break-table-row (break-table-fn request entity)]
[break-table-row (row* grid-spec user entity {:flash? (= flash-id ((:id-fn grid-spec) entity)) :request request})]
[(row* grid-spec user entity {:flash? (= flash-id ((:id-fn grid-spec) entity)) :request request})])]
row))
:thead-params {:hx-get (bidi/path-for ssr-routes/only-routes
(:route grid-spec))
:hx-target (str "#" (:id grid-spec))