Don't perform assets filtering if term is empty

This commit is contained in:
Andrey Antukh 2023-08-29 14:01:08 +02:00
parent 8ff18a2a9e
commit 937d3b4954

View file

@ -34,20 +34,23 @@
(defn apply-filters (defn apply-filters
[coll {:keys [ordering term] :as filters}] [coll {:keys [ordering term] :as filters}]
(let [reverse? (= :desc ordering) (let [reverse? (= :desc ordering)]
comp-fn (if ^boolean reverse? > <)] (cond->> coll
(->> coll (not ^boolean (str/empty? term))
(filter (fn [item] (filter (fn [item]
(or (matches-search (:name item "!$!") term) (or (matches-search (:name item "!$!") term)
(matches-search (:path item "!$!") term) (matches-search (:path item "!$!") term)
(matches-search (:value item "!$!") term)))) (matches-search (:value item "!$!") term))))
;; Sort by folder order, but putting all "root" items always ;; Sort by folder order, but putting all "root" items always
;; first, independently of sort order. ;; first, independently of sort order.
(sort-by #(str/lower (cph/merge-path-item (if (empty? (:path %)) :always
(sort-by (fn [{:keys [path name] :as item}]
(let [path (if (str/empty? path)
(if reverse? "z" "a") (if reverse? "z" "a")
(:path %)) path)]
(:name %))) (str/lower (cph/merge-path-item path name))))
comp-fn)))) (if ^boolean reverse? > <)))))
(defn add-group (defn add-group
[asset group-name] [asset group-name]