fix: broken simple queries

close #8900
This commit is contained in:
Tienson Qin
2023-03-27 15:26:17 +08:00
parent 0ae6fd4673
commit 3b959f349f
3 changed files with 40 additions and 10 deletions

View File

@@ -270,8 +270,12 @@
(page-ref/->page-ref (second clause))
(= (keyword f) :page-tags)
(if (string? (second clause))
(cond
(string? (second clause))
(str "#" (second clause))
(symbol? (second clause))
(str "#" (str (second clause)))
:else
(str "#" (second (second clause))))
(contains? #{:property :page-property} (keyword f))
@@ -287,7 +291,15 @@
(last clause)))
(= (keyword f) :between)
(str "between: " (second (second clause)) " - " (second (last clause)))
(let [start (if (or (keyword? (second clause))
(symbol? (second clause)))
(name (second clause))
(second (second clause)))
end (if (or (keyword? (last clause))
(symbol? (last clause)))
(name (last clause))
(second (last clause)))]
(str "between: " start " ~ " end))
(contains? #{:task :priority} (keyword f))
(str (name f) ": "
@@ -312,7 +324,7 @@
[:a.flex.text-sm.query-clause {:on-click toggle-fn}
clause]
[:div.flex.flex-row.items-center.gap-2.p-1.rounded.border
[:div.flex.flex-row.items-center.gap-2.p-1.rounded.border.query-clause-btn
[:a.flex.query-clause {:on-click toggle-fn}
(dsl-human-output clause)]]))
(fn [{:keys [toggle-fn]}]
@@ -368,9 +380,9 @@
(let [kind (keyword (first clause))]
(if (query-builder/operators-set kind)
[:div.operator-clause.flex.flex-row.items-center {:data-level (count loc)}
[:div.text-4xl.mr-1.font-thin "("]
[:div.clause-bracket "("]
(clauses-group *tree *find (conj loc 0) kind (rest clause))
[:div.text-4xl.ml-1.font-thin ")"]]
[:div.clause-bracket ")"]]
(clause-inner *tree loc clause)))]))
(rum/defc clauses-group
@@ -378,7 +390,7 @@
(let [parens? (and (= loc [0])
(> (count clauses) 1))]
[:div.clauses-group
(when parens? [:div.text-4xl.mr-1.font-thin "("])
(when parens? [:div.clause-bracket "("])
(when-not (and (= loc [0])
(= kind :and)
(<= (count clauses) 1))
@@ -390,7 +402,7 @@
(clause *tree *find (update loc (dec (count loc)) #(+ % i 1)) item))
clauses)
(when parens? [:div.text-4xl.ml-1.font-thin ")"])
(when parens? [:div.clause-bracket ")"])
(when (not= loc [0])
(add-filter *find *tree loc []))]))

View File

@@ -29,7 +29,7 @@
}
.clauses-group {
@apply flex flex-row gap-1 flex-wrap items-center text-sm;
@apply flex flex-row gap-2 flex-wrap items-center text-sm;
}
a.query-clause, a.add-filter {
@@ -43,4 +43,13 @@
.filter-item select {
border: none;
}
.clause-bracket {
@apply text-4xl ml-1 font-thin opacity-30;
font-family: "Inter";
}
.query-clause-btn {
border-color: var(--ls-border-color);
}
}

View File

@@ -3,6 +3,8 @@
(:require [clojure.string :as string]
[frontend.date :as date]
[frontend.state :as state]
[frontend.db.utils :as db-utils]
[frontend.util :as util]
[logseq.graph-parser.util.page-ref :as page-ref]))
(defn- variable-rules
@@ -11,8 +13,15 @@
"yesterday" (page-ref/->page-ref (date/yesterday))
"tomorrow" (page-ref/->page-ref (date/tomorrow))
"time" (date/get-current-time)
"current page" (page-ref/->page-ref (or (state/get-current-page)
(date/today)))})
"current page" (when-let [current-page (or
(state/get-current-page)
(date/today))]
(let [block-uuid (parse-uuid current-page)
page (if block-uuid
(:block/page (db-utils/entity [:block/uuid block-uuid]))
(db-utils/entity [:block/name (util/page-name-sanity-lc current-page)]))
current-page' (:block/original-name page)]
(page-ref/->page-ref current-page')))})
;; TODO: programmable
;; context information, date, current page