mirror of
https://github.com/logseq/logseq.git
synced 2026-05-20 19:02:23 +00:00
fix: keep old reference view for file graphs
This commit is contained in:
@@ -721,6 +721,7 @@
|
||||
(hierarchy/structures (:block/title page))))
|
||||
|
||||
(when-not (or whiteboard? unlinked-refs?
|
||||
db-based?
|
||||
sidebar?
|
||||
home?
|
||||
(or class-page? property-page?)
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
(views/view
|
||||
{:title-key :views.table/live-query-title
|
||||
:view-entity view-entity
|
||||
:view-identity :query-result
|
||||
:data result'
|
||||
:set-data! set-data!
|
||||
:columns columns'
|
||||
|
||||
@@ -68,57 +68,58 @@
|
||||
|
||||
(rum/defc references-cp
|
||||
[page-entity *filters total filter-n filtered-ref-blocks *ref-pages]
|
||||
;; (let [filters @*filters
|
||||
;; threshold (state/get-linked-references-collapsed-threshold)
|
||||
;; default-collapsed? (or (>= total threshold) (ldb/class? page-entity))
|
||||
;; *collapsed? (atom nil)]
|
||||
;; (ui/foldable
|
||||
;; [:div.flex.flex-row.flex-1.justify-between.items-center
|
||||
;; [:div.font-medium.opacity-50
|
||||
;; (t :linked-references/reference-count (when (or (seq (:included filters))
|
||||
;; (seq (:excluded filters))) filter-n) total)]
|
||||
;; [:a.filter.fade-link
|
||||
;; {:title (t :linked-references/filter-heading)
|
||||
;; :on-mouse-over (fn [_e]
|
||||
;; (when @*collapsed? ; collapsed
|
||||
;; ;; expand
|
||||
;; (reset! @*collapsed? false)))
|
||||
;; :on-pointer-down (fn [e]
|
||||
;; (util/stop-propagation e)
|
||||
;; (shui/popup-show! (.-target e)
|
||||
;; (fn []
|
||||
;; [:div.p-4
|
||||
;; (filters/filter-dialog page-entity *filters *ref-pages)])
|
||||
;; {:align "end"}))}
|
||||
;; (ui/icon "filter" {:class (cond
|
||||
;; (and (empty? (:included filters)) (empty? (:excluded filters)))
|
||||
;; "opacity-60 hover:opacity-100"
|
||||
(if (config/db-based-graph?)
|
||||
(let [blocks (->> (mapcat second filtered-ref-blocks)
|
||||
(map (fn [b] (assoc (db/entity (:db/id b)) :id (:db/id b)))))
|
||||
columns' (columns {} blocks)]
|
||||
(when (seq blocks)
|
||||
(views/view
|
||||
{:view-parent page-entity
|
||||
:view-identity :linked-references
|
||||
:data blocks
|
||||
:columns columns'})))
|
||||
(let [filters @*filters
|
||||
threshold (state/get-linked-references-collapsed-threshold)
|
||||
default-collapsed? (or (>= total threshold) (ldb/class? page-entity))
|
||||
*collapsed? (atom nil)]
|
||||
(ui/foldable
|
||||
[:div.flex.flex-row.flex-1.justify-between.items-center
|
||||
[:div.font-medium.opacity-50
|
||||
(t :linked-references/reference-count (when (or (seq (:included filters))
|
||||
(seq (:excluded filters))) filter-n) total)]
|
||||
[:a.filter.fade-link
|
||||
{:title (t :linked-references/filter-heading)
|
||||
:on-mouse-over (fn [_e]
|
||||
(when @*collapsed? ; collapsed
|
||||
;; expand
|
||||
(reset! @*collapsed? false)))
|
||||
:on-pointer-down (fn [e]
|
||||
(util/stop-propagation e)
|
||||
(shui/popup-show! (.-target e)
|
||||
(fn []
|
||||
[:div.p-4
|
||||
(filters/filter-dialog page-entity *filters *ref-pages)])
|
||||
{:align "end"}))}
|
||||
(ui/icon "filter" {:class (cond
|
||||
(and (empty? (:included filters)) (empty? (:excluded filters)))
|
||||
"opacity-60 hover:opacity-100"
|
||||
|
||||
;; (and (seq (:included filters)) (empty? (:excluded filters)))
|
||||
;; "text-success"
|
||||
(and (seq (:included filters)) (empty? (:excluded filters)))
|
||||
"text-success"
|
||||
|
||||
;; (and (empty? (:included filters)) (seq (:excluded filters)))
|
||||
;; "text-error"
|
||||
;; :else
|
||||
;; "text-warning")
|
||||
;; :size 22})]]
|
||||
(and (empty? (:included filters)) (seq (:excluded filters)))
|
||||
"text-error"
|
||||
:else
|
||||
"text-warning")
|
||||
:size 22})]]
|
||||
|
||||
;; (fn []
|
||||
;; (references-inner page-entity filters filtered-ref-blocks))
|
||||
(fn []
|
||||
(references-inner page-entity filters filtered-ref-blocks))
|
||||
|
||||
;; {:default-collapsed? default-collapsed?
|
||||
;; :title-trigger? true
|
||||
;; :init-collapsed (fn [collapsed-atom]
|
||||
;; (reset! *collapsed? collapsed-atom))}))
|
||||
(let [blocks (->> (mapcat second filtered-ref-blocks)
|
||||
(map (fn [b] (assoc (db/entity (:db/id b)) :id (:db/id b)))))
|
||||
columns' (columns {} blocks)]
|
||||
(when (seq blocks)
|
||||
(views/view
|
||||
{:view-parent page-entity
|
||||
:view-identity :linked-references
|
||||
:data blocks
|
||||
:columns columns'}))))
|
||||
{:default-collapsed? default-collapsed?
|
||||
:title-trigger? true
|
||||
:init-collapsed (fn [collapsed-atom]
|
||||
(reset! *collapsed? collapsed-atom))}))))
|
||||
|
||||
(defn- get-filtered-children
|
||||
[block parent->blocks]
|
||||
|
||||
@@ -333,7 +333,7 @@
|
||||
{:variant "ghost"
|
||||
:class "text-muted-foreground !px-1"
|
||||
:size :sm}
|
||||
(ui/icon "dots")))
|
||||
(ui/icon "dots" {:size 15})))
|
||||
(shui/dropdown-menu-content
|
||||
{:align "end"}
|
||||
(shui/dropdown-menu-group
|
||||
@@ -650,7 +650,7 @@
|
||||
:class "text-muted-foreground !px-1"
|
||||
:size :sm
|
||||
:on-click #(set-show-input! true)}
|
||||
(ui/icon "search")))))
|
||||
(ui/icon "search" {:size 15})))))
|
||||
|
||||
(defn- get-property-values
|
||||
[rows property]
|
||||
@@ -1459,15 +1459,15 @@
|
||||
(db/entity [:block/uuid (:block/uuid result)]))))
|
||||
|
||||
(rum/defc views-tab < rum/reactive db-mixins/query
|
||||
[view-parent current-view {:keys [views set-view-entity! set-views! view-identity]}]
|
||||
[:div.views.flex.flex-row.items-center.flex-wrap.gap-1
|
||||
[view-parent current-view {:keys [views set-view-entity! set-views! view-identity]} hover?]
|
||||
[:div.views.flex.flex-row.items-center.flex-wrap.gap-2
|
||||
(for [view* views]
|
||||
(let [view (db/sub-block (:db/id view*))
|
||||
current-view? (= (:db/id current-view) (:db/id view))]
|
||||
(shui/button
|
||||
{:variant :ghost
|
||||
{:variant :text
|
||||
:size :sm
|
||||
:class (str "text-sm px-2 py-0 h-6 " (when-not current-view? "text-muted-foreground"))
|
||||
:class (str "text-sm px-0 py-0 h-6 " (when-not current-view? "text-muted-foreground"))
|
||||
:on-click (fn [e]
|
||||
(if (and current-view? (not= (:db/id view) (:db/id view-parent)))
|
||||
(shui/popup-show!
|
||||
@@ -1497,7 +1497,8 @@
|
||||
(let [display-type (or (:db/ident (get view :logseq.property.view/type))
|
||||
:logseq.property.view/type.table)]
|
||||
(when-let [icon (:logseq.property/icon (db/entity display-type))]
|
||||
(icon-component/icon icon {:color? true})))
|
||||
(icon-component/icon icon {:color? true
|
||||
:size 15})))
|
||||
(let [title (:block/title view)]
|
||||
(if (= title "")
|
||||
"New view"
|
||||
@@ -1505,11 +1506,46 @@
|
||||
(shui/button
|
||||
{:variant :text
|
||||
:size :sm
|
||||
:class "!px-1 text-muted-foreground hover:text-foreground"
|
||||
:title "Add new view"
|
||||
:class (str "!px-1 -ml-1 text-muted-foreground hover:text-foreground transition-opacity ease-in duration-300 "
|
||||
(if hover? "opacity-100" "opacity-0"))
|
||||
:on-click (fn []
|
||||
(p/let [view (create-view! view-parent view-identity)]
|
||||
(set-views! (concat views [view]))))}
|
||||
(ui/icon "plus" {}))])
|
||||
(ui/icon "plus" {:size 15}))])
|
||||
|
||||
(rum/defc view-head < rum/static
|
||||
[view-parent view-entity table columns input sorting
|
||||
set-input! add-new-object!
|
||||
{:keys [view-identity title-key]
|
||||
:as option}]
|
||||
(let [[hover? set-hover?] (hooks/use-state nil)]
|
||||
[:div.flex.flex-1.flex-wrap.items-center.justify-between.gap-1
|
||||
{:on-mouse-over #(set-hover? true)
|
||||
:on-mouse-out #(set-hover? false)}
|
||||
[:div.flex.flex-row.items-center.gap-2
|
||||
(if (= view-identity :query-result)
|
||||
[:div.font-medium.opacity-50.text-sm
|
||||
(t (or title-key :views.table/default-title)
|
||||
(count (:rows table)))]
|
||||
(views-tab view-parent view-entity option hover?))]
|
||||
[:div.view-actions.flex.items-center.gap-1.transition-opacity.ease-in.duration-300
|
||||
{:class (if hover? "opacity-100" "opacity-0")}
|
||||
|
||||
(when (seq sorting)
|
||||
(view-sorting table columns sorting))
|
||||
|
||||
(filter-properties columns table)
|
||||
|
||||
(search input {:on-change set-input!
|
||||
:set-input! set-input!})
|
||||
|
||||
[:div.text-muted-foreground.text-sm
|
||||
(pv/property-value view-entity (db/entity :logseq.property.view/type) {})]
|
||||
|
||||
(more-actions view-entity columns table)
|
||||
|
||||
(when add-new-object! (new-record-button table view-entity))]]))
|
||||
|
||||
(rum/defc ^:large-vars/cleanup-todo view-inner < rum/static
|
||||
[view-entity {:keys [view-parent data set-data! columns add-new-object!] :as option}
|
||||
@@ -1594,25 +1630,7 @@
|
||||
[:div.flex.flex-col.gap-2.grid
|
||||
{:ref *view-ref}
|
||||
(ui/foldable
|
||||
[:div.flex.flex-1.flex-wrap.items-center.justify-between.gap-1
|
||||
[:div.flex.flex-row.items-center.gap-2
|
||||
(views-tab view-parent view-entity option)]
|
||||
[:div.view-actions.flex.items-center.gap-1
|
||||
|
||||
(when (seq sorting)
|
||||
(view-sorting table columns sorting))
|
||||
|
||||
(filter-properties columns table)
|
||||
|
||||
(search input {:on-change set-input!
|
||||
:set-input! set-input!})
|
||||
|
||||
[:div.text-muted-foreground.text-sm
|
||||
(pv/property-value view-entity (db/entity :logseq.property.view/type) {})]
|
||||
|
||||
(more-actions view-entity columns table)
|
||||
|
||||
(when add-new-object! (new-record-button table view-entity))]]
|
||||
(view-head view-parent view-entity table columns input sorting set-input! add-new-object! option)
|
||||
[:div.ls-view-body.flex.flex-col.gap-2.grid.mt-1
|
||||
(filters-row table)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user