|
@@ -767,7 +767,7 @@
|
|
|
s (if (and tag? (not (:hide-tag-symbol? config))) (str "#" s) s)]
|
|
|
(if (ldb/page? page-entity)
|
|
|
s
|
|
|
- (block-title config page-entity))))]
|
|
|
+ (block-title config page-entity {}))))]
|
|
|
page-component))]]))
|
|
|
|
|
|
(rum/defc popup-preview-impl
|
|
@@ -1262,7 +1262,8 @@
|
|
|
(if (and block (:block/title block))
|
|
|
(let [content-cp (block-content (assoc config :block-ref? true :stop-events? stop-inner-events?)
|
|
|
block nil (:block/uuid block)
|
|
|
- (:slide? config))
|
|
|
+ (:slide? config)
|
|
|
+ nil)
|
|
|
display-type (:logseq.property.node/display-type block)]
|
|
|
(if (and display-type (not (contains? #{:quote :math} display-type)))
|
|
|
content-cp
|
|
@@ -2357,60 +2358,53 @@
|
|
|
[:div "Practice cards"])])))))))
|
|
|
|
|
|
(rum/defc block-title-aux
|
|
|
- [config block {:keys [query? advanced-query? query-cp]}]
|
|
|
- (let [[show-query? set-show-query?] (rum/use-state false)
|
|
|
- [hover? set-hover?] (rum/use-state false)
|
|
|
+ [config block {:keys [query? *show-query?]}]
|
|
|
+ (let [[hover? set-hover?] (rum/use-state false)
|
|
|
blank? (string/blank? (:block/title block))
|
|
|
- opacity (if hover? "opacity-100" "opacity-0")]
|
|
|
- [:div.inline.w-full
|
|
|
+ opacity (if hover? "opacity-100" "opacity-0")
|
|
|
+ query (:logseq.property/query block)
|
|
|
+ advanced-query? (and query? (= :code (:logseq.property.node/display-type query)))
|
|
|
+ show-query? (and *show-query? @*show-query?)]
|
|
|
+ [:div.flex.flex-row.w-full
|
|
|
{:on-mouse-over #(set-hover? true)
|
|
|
:on-mouse-out #(set-hover? false)}
|
|
|
- [:span.w-full
|
|
|
- (cond
|
|
|
- (or (not blank?) (not query?))
|
|
|
- (text-block-title config block)
|
|
|
- advanced-query?
|
|
|
- [:span.opacity-75.hover:opacity-100 "Untitled query"]
|
|
|
- :else
|
|
|
- [:div.inline-flex (query-cp)])
|
|
|
- (when (and query?
|
|
|
- (not (and blank? (not advanced-query?))))
|
|
|
- (ui/tooltip
|
|
|
- (shui/button
|
|
|
- {:size :sm
|
|
|
- :variant :ghost
|
|
|
- :class (str "ls-small-icon text-muted-foreground p-1 h-4 ml-1 transition-opacity ease-in duration-300 " opacity)
|
|
|
- :on-pointer-down (fn [e]
|
|
|
- (util/stop e)
|
|
|
- (set-show-query? (not show-query?)))}
|
|
|
- (ui/icon "settings"))
|
|
|
- [:div.opacity-75 "Set query"]))
|
|
|
- (when-let [property (:logseq.property/created-from-property block)]
|
|
|
- (when-let [message (when (= :url (:logseq.property/type property))
|
|
|
- (first (outliner-property/validate-property-value (db/get-db) property (:db/id block))))]
|
|
|
- (ui/tooltip
|
|
|
- (shui/button
|
|
|
- {:size :sm
|
|
|
- :variant :ghost
|
|
|
- :class "ls-type-warning ls-small-icon px-1 !py-0 h-4 ml-1"}
|
|
|
- (ui/icon "alert-triangle"))
|
|
|
- [:div.opacity-75 message])))]
|
|
|
- (when show-query?
|
|
|
- [:div.py-1.flex.flex-1
|
|
|
- (query-cp)])]))
|
|
|
+ (cond
|
|
|
+ (and query? (and blank? (or advanced-query? show-query?)))
|
|
|
+ [:span.opacity-75.hover:opacity-100 "Untitled query"]
|
|
|
+ (and query? blank?)
|
|
|
+ (query-builder-component/builder query {})
|
|
|
+ :else
|
|
|
+ (text-block-title config block))
|
|
|
+ (when query?
|
|
|
+ (ui/tooltip
|
|
|
+ (shui/button
|
|
|
+ {:size :sm
|
|
|
+ :variant :ghost
|
|
|
+ :class (str "ls-small-icon text-muted-foreground ml-2 w-6 h-6 transition-opacity ease-in duration-300 " opacity)
|
|
|
+ :on-pointer-down (fn [e]
|
|
|
+ (util/stop e)
|
|
|
+ (when *show-query? (swap! *show-query? not)))}
|
|
|
+ (ui/icon "settings"))
|
|
|
+ [:div.opacity-75 (if show-query?
|
|
|
+ "Hide query"
|
|
|
+ "Set query")]))
|
|
|
+ (when-let [property (:logseq.property/created-from-property block)]
|
|
|
+ (when-let [message (when (= :url (:logseq.property/type property))
|
|
|
+ (first (outliner-property/validate-property-value (db/get-db) property (:db/id block))))]
|
|
|
+ (ui/tooltip
|
|
|
+ (shui/button
|
|
|
+ {:size :sm
|
|
|
+ :variant :ghost
|
|
|
+ :class "ls-type-warning ls-small-icon px-1 !py-0 h-4 ml-1"}
|
|
|
+ (ui/icon "alert-triangle"))
|
|
|
+ [:div.opacity-75 message])))]))
|
|
|
|
|
|
(rum/defc block-title < rum/reactive db-mixins/query
|
|
|
- [config block]
|
|
|
+ [config block {:keys [*show-query?]}]
|
|
|
(let [block' (db/entity (:db/id block))
|
|
|
node-display-type (:logseq.property.node/display-type block')
|
|
|
db (db/get-db)
|
|
|
- query? (ldb/class-instance? (entity-plus/entity-memoized db :logseq.class/Query) block')
|
|
|
- query (:logseq.property/query block')
|
|
|
- advanced-query? (and query? (= :code (:logseq.property.node/display-type query)))
|
|
|
- query-cp (fn []
|
|
|
- (if advanced-query?
|
|
|
- (src-cp (assoc config :code-block query) {:language "clojure"})
|
|
|
- (query-builder-component/builder query {})))]
|
|
|
+ query? (ldb/class-instance? (entity-plus/entity-memoized db :logseq.class/Query) block')]
|
|
|
(cond
|
|
|
(:raw-title? config)
|
|
|
(text-block-title (dissoc config :raw-title?) block)
|
|
@@ -2435,8 +2429,7 @@
|
|
|
|
|
|
:else
|
|
|
(block-title-aux config block {:query? query?
|
|
|
- :query-cp query-cp
|
|
|
- :advanced-query? advanced-query?}))))
|
|
|
+ :*show-query? *show-query?}))))
|
|
|
|
|
|
(rum/defc span-comma
|
|
|
[]
|
|
@@ -2856,7 +2849,7 @@
|
|
|
(clock/seconds->days:hours:minutes:seconds time-spent))]))))
|
|
|
|
|
|
(rum/defc ^:large-vars/cleanup-todo block-content < rum/reactive
|
|
|
- [config {:block/keys [uuid] :as block} edit-input-id block-id slide?]
|
|
|
+ [config {:block/keys [uuid] :as block} edit-input-id block-id slide? *show-query?]
|
|
|
(let [repo (state/get-current-repo)
|
|
|
db-based? (config/db-based-graph? (state/get-current-repo))
|
|
|
scheduled (when-not db-based? (:block/scheduled block))
|
|
@@ -2935,7 +2928,7 @@
|
|
|
[:div.flex.flex-row.justify-between.block-content-inner
|
|
|
(when-not plugin-slotted?
|
|
|
[:div.block-head-wrap
|
|
|
- (block-title config block)])
|
|
|
+ (block-title config block {:*show-query? *show-query?})])
|
|
|
|
|
|
(if db-based?
|
|
|
(task-spent-time-cp block)
|
|
@@ -3004,7 +2997,7 @@
|
|
|
|
|
|
(rum/defcs ^:large-vars/cleanup-todo block-content-or-editor < rum/reactive
|
|
|
(rum/local false ::hover?)
|
|
|
- [state config {:block/keys [uuid] :as block} {:keys [edit-input-id block-id edit? hide-block-refs-count? refs-count *hide-block-refs?]}]
|
|
|
+ [state config {:block/keys [uuid] :as block} {:keys [edit-input-id block-id edit? hide-block-refs-count? refs-count *hide-block-refs? *show-query?]}]
|
|
|
(let [format (if (config/db-based-graph? (state/get-current-repo))
|
|
|
:markdown
|
|
|
(or (:block/format block) :markdown))
|
|
@@ -3052,7 +3045,7 @@
|
|
|
(editor-handler/unhighlight-blocks!)
|
|
|
(state/set-editing! edit-input-id content block "" {:db (db/get-db)
|
|
|
:container-id (:container-id config)}))}})
|
|
|
- (block-content config block edit-input-id block-id slide?))
|
|
|
+ (block-content config block edit-input-id block-id slide? *show-query?))
|
|
|
|
|
|
(when (and (not hide-block-refs-count?)
|
|
|
(not named?))
|
|
@@ -3427,10 +3420,14 @@
|
|
|
(assoc state
|
|
|
::ref *ref
|
|
|
::hide-block-refs? (atom default-hide?)
|
|
|
+ ::show-query? (atom false)
|
|
|
::refs-count *refs-count)))}
|
|
|
[state container-state repo config* block {:keys [navigating-block navigated? editing? selected?] :as opts}]
|
|
|
(let [*ref (::ref state)
|
|
|
*hide-block-refs? (get state ::hide-block-refs?)
|
|
|
+ *show-query? (get state ::show-query?)
|
|
|
+ show-query? (rum/react *show-query?)
|
|
|
+ _ (prn :debug :show-query? show-query?)
|
|
|
*refs-count (get state ::refs-count)
|
|
|
hide-block-refs? (rum/react *hide-block-refs?)
|
|
|
refs-count (if (seq (:block/_refs block))
|
|
@@ -3615,7 +3612,8 @@
|
|
|
:edit? editing?
|
|
|
:refs-count refs-count
|
|
|
:*hide-block-refs? *hide-block-refs?
|
|
|
- :hide-block-refs-count? hide-block-refs-count?}))])]
|
|
|
+ :hide-block-refs-count? hide-block-refs-count?
|
|
|
+ :*show-query? *show-query?}))])]
|
|
|
|
|
|
(when (and db-based? (not collapsed?) (not (or table? property?)))
|
|
|
(block-positioned-properties config block :block-below))]
|
|
@@ -3623,15 +3621,23 @@
|
|
|
(when (and @*show-right-menu? (not in-whiteboard?) (not (or table? property?)))
|
|
|
(block-right-menu config block editing?))])
|
|
|
|
|
|
- ;; (when-not (:table? config)
|
|
|
- ;; (query-property-cp block config collapsed?))
|
|
|
-
|
|
|
(when (and db-based?
|
|
|
(or sidebar? (not collapsed?))
|
|
|
(not (or table? property?)))
|
|
|
[:div (when-not (:page-title? config) {:style {:padding-left 45}})
|
|
|
(db-properties-cp config block {:in-block-container? true})])
|
|
|
|
|
|
+ (when (and db-based? show-query? (not (:table? config)))
|
|
|
+ (let [query? (ldb/class-instance? (entity-plus/entity-memoized (db/get-db) :logseq.class/Query) block)
|
|
|
+ query (:logseq.property/query block)
|
|
|
+ advanced-query? (and query? (= :code (:logseq.property.node/display-type query)))]
|
|
|
+ [:div.ml-6.my-1
|
|
|
+ (if advanced-query?
|
|
|
+ (src-cp (assoc config :code-block query) {:language "clojure"})
|
|
|
+ [:div
|
|
|
+ [:div.opacity-75.ml-5.text-sm.mb-1 "Set query:"]
|
|
|
+ (block-container config query)])]))
|
|
|
+
|
|
|
(when (and (not (or (:table? config) (:property? config)))
|
|
|
(not hide-block-refs?)
|
|
|
(> refs-count 0)
|