Making investigate improvements.
This commit is contained in:
@@ -106,23 +106,27 @@
|
||||
"desc")))
|
||||
s)))
|
||||
|
||||
|
||||
(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)
|
||||
:pqp (:parsed-query-params request)
|
||||
:sort sort)
|
||||
(let [start (or start 0)
|
||||
:pqp (:parsed-query-params request))
|
||||
(let [sort (or (and (not (string? (:sort (:parsed-query-params request)))) (:sort (:parsed-query-params request)))
|
||||
(:sort (:query-params request)))
|
||||
start (or start 0)
|
||||
per-page (or per-page 25)
|
||||
[entities total :as page-results] ((:fetch-page grid-spec)
|
||||
request)
|
||||
request)
|
||||
request (assoc request :page-results page-results)]
|
||||
|
||||
(com/data-grid-card {:id (:id grid-spec)
|
||||
:raw? (:raw? grid-spec)
|
||||
:title [:div.flex.gap-2 (if (string? (:title grid-spec))
|
||||
(:title grid-spec)
|
||||
((:title grid-spec) request)) ]
|
||||
(:title grid-spec)
|
||||
((:title grid-spec) request)) ]
|
||||
:route (:route grid-spec)
|
||||
:root-params {:x-data (hx/json {:sort (sort->query sort)})
|
||||
"x-hx-val:sort" "sort"}
|
||||
:start start
|
||||
:per-page per-page
|
||||
:total total
|
||||
@@ -154,7 +158,7 @@
|
||||
(let [break-table-fn (some-> grid-spec :break-table ( create-break-table-fn grid-spec))]
|
||||
(for [entity entities
|
||||
row (if-let [break-table-row (when break-table-fn (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))
|
||||
@@ -258,24 +262,27 @@
|
||||
(handler (assoc request :trimmed-clients valid-clients)))))
|
||||
|
||||
|
||||
(defn table-route [grid-spec & {:keys [parse-query-params?] :or {parse-query-params? true}}]
|
||||
(defn table-route [grid-spec & {:keys [parse-query-params? push-url?] :or {parse-query-params? true push-url? true}}]
|
||||
(cond-> (fn table [{:keys [identity] :as request}]
|
||||
|
||||
|
||||
(println "SORT IS")
|
||||
(clojure.pprint/pprint (sort->query (:sort (:query-params request))))
|
||||
(let [unparse-query-params (or (:unparse-query grid-spec)
|
||||
default-unparse-query-params)]
|
||||
(html-response (table*
|
||||
grid-spec
|
||||
identity
|
||||
request)
|
||||
:headers {"hx-push-url" (str "?" (url/map->query
|
||||
(dissoc (if (:query-schema grid-spec)
|
||||
(update (filter-vals #(not (nil? %))
|
||||
(m/encode (:query-schema grid-spec)
|
||||
(:query-params request)
|
||||
main-transformer))
|
||||
"sort" sort->query)
|
||||
(unparse-query-params (:parsed-query-params request)))
|
||||
"selected" "all-selected")))} ;; TODO seems hacky to special case selected and all-selected here
|
||||
:headers (when push-url?
|
||||
{"hx-push-url" (str "?" (url/map->query
|
||||
(dissoc (if (:query-schema grid-spec)
|
||||
(update (filter-vals #(not (nil? %))
|
||||
(m/encode (:query-schema grid-spec)
|
||||
(:query-params request)
|
||||
main-transformer))
|
||||
"sort" sort->query)
|
||||
(unparse-query-params (:parsed-query-params request)))
|
||||
"selected" "all-selected")))}) ;; TODO seems hacky to special case selected and all-selected here
|
||||
:oob (when-let [oob-render (:oob-render grid-spec)]
|
||||
(oob-render request)))))
|
||||
true (wrap-trim-client-ids)
|
||||
|
||||
Reference in New Issue
Block a user