fix: alias always redirect to the source page

No matter whether the alias page has content or not.
Clicking the alias page in its source page's properties redirect to
the alias page though.
pull/11102/head
Tienson Qin 2024-02-28 00:52:28 +08:00
parent 38f3cef2c5
commit 94ce77e509
3 changed files with 16 additions and 26 deletions

View File

@ -508,11 +508,16 @@
(declare page-reference)
(defn open-page-ref
[e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?]
[e config page-name page-name-in-block contents-page? whiteboard-page?]
(util/stop e)
(when (not (util/right-click? e))
(p/let [redirect-page-name (or redirect-page-name
(model/get-redirect-page-name page-name (:block/alias? config)))
(p/let [redirect-page-name (model/get-redirect-page-name page-name (:block/alias? config))
redirect-page-name (if (or (= (util/page-name-sanity-lc (str (:id config)))
(util/page-name-sanity-lc redirect-page-name))
(= (some-> (state/get-current-page) util/page-name-sanity-lc)
(some-> redirect-page-name util/page-name-sanity-lc)))
page-name
redirect-page-name)
page (when redirect-page-name
(db-async/<pull (state/get-current-repo) [:block/name (util/page-name-sanity-lc redirect-page-name)]))]
(cond
@ -549,7 +554,7 @@
page-name-in-block is the overridable name of the page (legacy)
All page-names are sanitized except page-name-in-block"
[state config page-name-in-block page-name redirect-page-name page-entity contents-page? children html-export? label whiteboard-page?]
[state config page-name-in-block page-name page-entity contents-page? children html-export? label whiteboard-page?]
(let [*hover? (::hover? state)
*mouse-down? (::mouse-down? state)
tag? (:tag? config)
@ -580,10 +585,10 @@
(reset! *mouse-down? true))))
:on-mouse-up (fn [e]
(when @*mouse-down?
(open-page-ref e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)
(open-page-ref e config page-name page-name-in-block contents-page? whiteboard-page?)
(reset! *mouse-down? false)))
:on-key-up (fn [e] (when (and e (= (.-key e) "Enter"))
(open-page-ref e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)))}
(open-page-ref e config page-name page-name-in-block contents-page? whiteboard-page?)))}
(when-not hide-icon?
(when-let [icon (pu/get-block-property-value page-entity :icon)]
[:span.mr-1 (icon/icon icon)]))
@ -700,19 +705,16 @@
"Component for a page. `page` argument contains :block/name which can be (un)sanitized page name.
Keys for `config`:
- `:preview?`: Is this component under preview mode? (If true, `page-preview-trigger` won't be registered to this `page-cp`)"
[{:keys [html-export? redirect-page-name label children contents-page? preview? disable-preview?] :as config} page]
[{:keys [html-export? label children contents-page? preview? disable-preview?] :as config} page]
(when-let [page-name-in-block (:block/name page)]
(let [page-name-in-block (common-util/remove-boundary-slashes page-name-in-block)
page-name (util/page-name-sanity-lc page-name-in-block)
page-entity (db/entity [:block/name page-name])
whiteboard-page? (model/whiteboard-page? page-name)
redirect-page-name (and (= :org (state/get-preferred-format))
(:org-mode/insert-file-link? (state/get-config))
redirect-page-name)
inner (page-inner config
page-name-in-block
page-name
redirect-page-name page-entity contents-page? children html-export? label whiteboard-page?)
page-entity contents-page? children html-export? label whiteboard-page?)
modal? (:modal/show? @state/state)]
(if (and (not (util/mobile?))
(not preview?)

View File

@ -42,7 +42,7 @@
get-page-referenced-blocks get-page-referenced-blocks-full get-page-referenced-pages
get-all-pages get-pages-relation get-pages-that-mentioned-page get-tag-pages
journal-page? page-alias-set sub-block
set-file-last-modified-at! page-empty? page-exists? page-empty-or-dummy? get-alias-source-page
set-file-last-modified-at! page-empty? page-exists? get-alias-source-page
set-file-content! has-children? get-namespace-pages get-all-namespace-relation]
[frontend.db.react

View File

@ -465,15 +465,6 @@ independent of format as format specific heading characters are stripped"
(when-let [db (conn/get-db repo)]
(ldb/page-empty? db page-id)))
(defn page-empty-or-dummy?
[repo page-id]
(or
(page-empty? repo page-id)
(when-let [db (conn/get-db repo)]
(let [datoms (d/datoms db :avet :block/page page-id)]
(and (= (count datoms) 1)
(= "" (:block/content (db-utils/pull (:e (first datoms))))))))))
(defn parents-collapsed?
[repo block-uuid]
(when-let [block (:block/parent (get-block-parents-v2 repo block-uuid))]
@ -585,13 +576,10 @@ independent of format as format specific heading characters are stripped"
(util/page-name-sanity-lc journal-name)
page-name)
(page-empty-or-dummy? (state/get-current-repo) (:db/id page-entity))
:else
(let [source-page (get-alias-source-page (state/get-current-repo) page-name')]
(or (when source-page (:block/name source-page))
page-name'))
:else
page-name')))))
page-name')))))))
(defn get-page-original-name
[page-name]