Makes company pages work great

This commit is contained in:
Bryce
2023-05-31 16:58:29 -07:00
parent 721bbaea53
commit 0eb91b9ad8
15 changed files with 389 additions and 412 deletions

View File

@@ -1,7 +1,8 @@
(ns auto-ap.ssr.company-dropdown
(:require
[auto-ap.datomic :refer [conn]]
[auto-ap.graphql.utils :refer [assert-can-see-client]]
[auto-ap.datomic :refer [conn pull-many]]
[auto-ap.graphql.utils :refer [assert-can-see-client cleanse-query]]
[auto-ap.solr :as solr]
[auto-ap.ssr-routes :as ssr-routes]
[auto-ap.ssr.svg :as svg]
[auto-ap.ssr.utils :refer [html-response]]
@@ -12,24 +13,30 @@
(defn dropdown-search-results* [{:keys [options]}]
[:ul
(for [[id company-name]options]
(for [{:keys [id name]} options]
[:li
[:div {:class "flex items-center pl-2 rounded hover:bg-green-100 dark:hover:bg-green-600"}
[:a {:href "#" :class "w-full py-2 ml-2 text-sm font-medium text-gray-900 rounded dark:text-gray-300"
"_" (hiccup/raw "on click set value of <#company-search-value/> to @data-value then send selected to #company-dropdown")
:data-value id}
company-name]]])])
name]]])])
(defn get-clients [identity query]
(dc/q '[:find ?c ?n
:in $ ?user ?q
:where [?c :client/name ?n]
[(clojure.string/includes? ?n ?q)]
[(iol-ion.query/can-see-client? ?user ?c)]]
(dc/db conn)
identity
(or query "")))
(if-let [query (not-empty (cleanse-query query))]
(let [search-query (str "name:(" query ")")]
(for [n (pull-many (dc/db conn) [:client/name :db/id]
(for [{:keys [id name]} (solr/query solr/impl "clients" {"query" search-query
"fields" "id, name"})
:let [client-id (Long/parseLong id)]
:when (can-see-client? identity client-id)]
client-id))]
{:id (:db/id n)
:name (:client/name n)}))
[]))
(defn dropdown-search-results [{:keys [identity] :as request}]
(html-response