Kaynağa Gözat

fix: can't create new page with command + k if same name page

with different tag exists.
Tienson Qin 7 ay önce
ebeveyn
işleme
221e49581b

+ 1 - 2
src/main/frontend/handler/db_based/page.cljs

@@ -83,8 +83,7 @@
 (defn <create-class!
   "Creates a class page and provides class-specific error handling"
   [title options]
-  (-> (page-common-handler/<create! title (assoc options :class? true
-                                                 :skip-existing-page-check? false))
+  (-> (page-common-handler/<create! title (assoc options :class? true))
       (p/catch (fn [e]
                  (when (= :notification (:type (ex-data e)))
                    (notification/show! (get-in (ex-data e) [:payload :message])

+ 10 - 10
src/main/frontend/worker/handler/page/db_based/page.cljs

@@ -6,10 +6,10 @@
             [logseq.common.util :as common-util]
             [logseq.common.util.namespace :as ns-util]
             [logseq.db :as ldb]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.common.order :as db-order]
             [logseq.db.common.property-util :as db-property-util]
             [logseq.db.frontend.class :as db-class]
-            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.property.build :as db-property-build]
@@ -168,13 +168,12 @@
 (defn create
   "Pure function without side effects"
   [db title*
-   {:keys [create-first-block? properties uuid persist-op? whiteboard?
-           class? today-journal? split-namespace? skip-existing-page-check?]
+   {:keys [create-first-block? tags properties uuid persist-op? whiteboard?
+           class? today-journal? split-namespace?]
     :or   {create-first-block?      true
            properties               nil
            uuid                     nil
-           persist-op?              true
-           skip-existing-page-check? false}
+           persist-op?              true}
     :as options}]
   (let [date-formatter (:logseq.property.journal/title-format (entity-plus/entity-memoized db :logseq.class/Journal))
         title (sanitize-title title*)
@@ -184,9 +183,12 @@
                     #{:logseq.class/Whiteboard}
                     today-journal?
                     #{:logseq.class/Journal}
+                    (seq tags)
+                    (set (map :db/ident tags))
                     :else
-                    #{:logseq.class/Page})]
-    (if-let [existing-page-id (first (ldb/page-exists? db title types))]
+                    #{:logseq.class/Page})
+        existing-page-id (first (ldb/page-exists? db title types))]
+    (if existing-page-id
       (let [existing-page (d/entity db existing-page-id)
             tx-meta {:persist-op? persist-op?
                      :outliner-op :save-block}]
@@ -202,9 +204,7 @@
       (let [page      (gp-block/page-name->map title db true date-formatter
                                                {:class? class?
                                                 :page-uuid (when (uuid? uuid) uuid)
-                                                :skip-existing-page-check? (if (some? skip-existing-page-check?)
-                                                                             skip-existing-page-check?
-                                                                             true)})
+                                                :skip-existing-page-check? true})
             [page parents] (if (and (text/namespace-page? title) split-namespace?)
                              (let [pages (split-namespace-pages db page date-formatter)]
                                [(last pages) (butlast pages)])