Parcourir la source

fix: don't fix pages for whiteboards and hidden pages

Tienson Qin il y a 1 an
Parent
commit
9f66e6d7e7

+ 15 - 34
deps/db/src/logseq/db.cljs

@@ -66,52 +66,33 @@
        (let [f (or @*transact-fn d/transact!)]
          (f conn tx-data tx-meta))))))
 
+(defn build-default-pages-tx
+  []
+  (let [time (tc/to-long (t/now))]
+    (map
+     (fn [m]
+       (-> m
+           (assoc :block/created-at time)
+           (assoc :block/updated-at time)
+           (assoc :block/format :markdown)))
+     default-db/built-in-pages)))
+
 (defn create-default-pages!
   "Creates default pages if one of the default pages does not exist. This
    fn is idempotent"
-  [db-conn {:keys [db-graph?]}]
+  [db-conn _opts]
   (when-not (d/entity @db-conn [:block/name "card"])
-    (let [time (tc/to-long (t/now))
-          built-in-pages (map
-                          (fn [m]
-                            (cond-> (-> m
-                                        (assoc :block/created-at time)
-                                        (assoc :block/updated-at time))
-                              db-graph?
-                              (assoc :block/format :markdown)))
-                          default-db/built-in-pages)]
+    (let [built-in-pages (build-default-pages-tx)]
       (transact! db-conn built-in-pages))))
 
-(defn create-built-in-properties!
-  [conn]
-  (let [txs (mapcat
-             (fn [[k-keyword {:keys [schema original-name] :as property-config}]]
-               (let [k-name (name k-keyword)]
-                 (if (:closed-values property-config)
-                   (db-property-util/build-closed-values
-                    (or original-name k-name)
-                    (assoc property-config :block/uuid (d/squuid))
-                    {})
-                   [(sqlite-util/build-new-property
-                     {:block/schema schema
-                      :block/original-name (or original-name k-name)
-                      :block/name (string/lower-case k-name)
-                      :block/uuid (d/squuid)})])))
-             db-property/built-in-properties)]
-    (when (seq txs)
-      (d/transact! conn txs))))
-
 (defn start-conn
   "Create datascript conn with schema and default data"
-  [& {:keys [create-default-pages? schema file-based?]
+  [& {:keys [create-default-pages? schema]
       :or {create-default-pages? true
            schema db-schema/schema}}]
-  (let [db-conn (d/create-conn schema)
-        file-based? (or (= schema db-schema/schema) file-based?)]
+  (let [db-conn (d/create-conn schema)]
     (when create-default-pages?
       (create-default-pages! db-conn {}))
-    (when-not file-based?
-      (create-built-in-properties! db-conn))
     db-conn))
 
 (defn sort-by-left

+ 1 - 1
deps/db/src/logseq/db/frontend/property/util.cljs

@@ -19,7 +19,7 @@
   "Builds a closed value block to be transacted"
   [block-uuid block-value page-id property {:keys [icon-id icon description]}]
   (cond->
-   (closed-value-new-block page-id (or block-uuid (d/squuid)) block-value property)
+    (closed-value-new-block page-id (or block-uuid (d/squuid)) block-value property)
     icon
     (assoc :block/properties {icon-id icon})
 

+ 6 - 3
deps/db/src/logseq/db/sqlite/create_graph.cljs

@@ -4,7 +4,8 @@
             [logseq.db.frontend.schema :as db-schema]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.util :as db-property-util]
-            [datascript.core :as d]))
+            [datascript.core :as d]
+            [logseq.db :as ldb]))
 
 (defn build-db-initial-data
   [config-content]
@@ -22,6 +23,7 @@
                         :file/path (str "logseq/" "custom.js")
                         :file/content ""
                         :file/last-modified-at (js/Date.)}]
+        default-pages (ldb/build-default-pages-tx)
         default-properties (mapcat
                             (fn [[k-keyword {:keys [schema original-name closed-values]}]]
                               (let [k-name (name k-keyword)]
@@ -35,5 +37,6 @@
                                      :block/original-name (or original-name k-name)
                                      :block/name (sqlite-util/sanitize-page-name k-name)
                                      :block/uuid (d/squuid)})])))
-                            db-property/built-in-properties)]
-    (concat initial-data initial-files default-properties)))
+                            db-property/built-in-properties)
+        ]
+    (concat initial-data initial-files default-pages default-properties)))

+ 2 - 6
src/main/frontend/db/conn.cljs

@@ -90,16 +90,12 @@
 (defn start!
   ([repo]
    (start! repo {}))
-  ([repo {:keys [listen-handler db-graph?]}]
+  ([repo {:keys [listen-handler]}]
    (let [db-name (datascript-db repo)
          db-conn (ldb/start-conn :schema (get-schema repo) :create-default-pages? false)]
      (swap! conns assoc db-name db-conn)
      (when listen-handler
-       (listen-handler repo))
-     (when db-graph?
-       (transact! db-name [(kv :db/type "db")])
-       (transact! db-name [(kv :schema/version db-schema/version)]))
-     (ldb/create-default-pages! db-conn {:db-graph? db-graph?}))))
+       (listen-handler repo)))))
 
 (defn destroy-all!
   []

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

@@ -738,6 +738,7 @@
           page (get-property-hidden-page property)
           page-tx (when-not (e/entity? page) page)
           page-id (:block/uuid page)
+          values' (remove string/blank? values)
           closed-value-blocks (map (fn [value]
                                      (db-property-util/build-closed-value-block
                                       (db/new-block-id)
@@ -745,7 +746,7 @@
                                       [:block/uuid page-id]
                                       property
                                       {}))
-                                   (remove string/blank? values))
+                                values')
           value->block-id (zipmap
                            (map #(get-in % [:block/schema :value]) closed-value-blocks)
                            (map :block/uuid closed-value-blocks))

+ 0 - 1
src/main/frontend/handler/draw.cljs

@@ -29,7 +29,6 @@
         (->
          (p/do!
           (create-draws-directory! repo)
-          (fs/write-file! repo repo-dir path data nil)
           (db/transact! repo
                         [{:file/path path
                           :block/name (util/page-name-sanity-lc file)

+ 15 - 12
src/main/frontend/worker/db/fix.cljs

@@ -158,15 +158,18 @@
                       replace-tx? false}
                  :as _opts}]
   (let [db @conn
-        transact-opts (if replace-tx? {:replace? true} {})
-        *fix-tx-data (atom [])]
-    (when fix-parent-left?
-      (loop-fix-conflicts conn page-id transact-opts *fix-tx-data))
-    (when fix-broken-chain?
-      (let [db' @conn
-            parent-left->es' (build-parent-left->es db page-id)
-            fix-broken-chain-tx (fix-broken-chain db' parent-left->es')]
-        (when (seq fix-broken-chain-tx)
-          (let [tx-data (:tx-data (ldb/transact! conn fix-broken-chain-tx transact-opts))]
-            (swap! *fix-tx-data (fn [old-data] (concat old-data tx-data)))))))
-    @*fix-tx-data))
+        page (d/entity db page-id)]
+    (when-not (or (ldb/whiteboard-page? db page)
+                  (ldb/hidden-page? page))
+      (let [transact-opts (if replace-tx? {:replace? true} {})
+            *fix-tx-data (atom [])]
+        (when fix-parent-left?
+          (loop-fix-conflicts conn page-id transact-opts *fix-tx-data))
+        (when fix-broken-chain?
+          (let [db' @conn
+                parent-left->es' (build-parent-left->es db page-id)
+                fix-broken-chain-tx (fix-broken-chain db' parent-left->es')]
+            (when (seq fix-broken-chain-tx)
+              (let [tx-data (:tx-data (ldb/transact! conn fix-broken-chain-tx transact-opts))]
+                (swap! *fix-tx-data (fn [old-data] (concat old-data tx-data)))))))
+        @*fix-tx-data))))