Преглед на файлове

fix: use pu/get-pid for both file && db graphs

Tienson Qin преди 1 година
родител
ревизия
08f492b849

+ 4 - 5
src/main/frontend/components/block.cljs

@@ -87,8 +87,7 @@
             [shadow.loader :as loader]
             [logseq.common.path :as path]
             [electron.ipc :as ipc]
-            [frontend.db.async :as db-async]
-            [datascript.impl.entity :as de]))
+            [frontend.db.async :as db-async]))
 
 ;; local state
 (defonce *dragging?
@@ -581,7 +580,7 @@
       :on-key-up (fn [e] (when (and e (= (.-key e) "Enter"))
                            (open-page-ref page-entity e page-name page-name-in-block contents-page?)))}
      (when-not hide-icon?
-       (when-let [icon (:logseq.property/icon page-entity)]
+       (when-let [icon (get page-entity (pu/get-pid :logseq.property/icon))]
          [:span.mr-1.inline-flex.items-center (icon/icon icon)]))
      [:span
       (if (and (coll? children) (seq children))
@@ -701,7 +700,7 @@
   (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 (if (de/entity? page) page (db/get-page page-name))
+          page-entity (if (e/entity? page) page (db/get-page page-name))
           whiteboard-page? (model/whiteboard-page? page-name)
           inner (page-inner config
                             page-name-in-block
@@ -3604,7 +3603,7 @@
 (defn hidden-page->source-page
   [page]
   (or
-   (:logseq.property/source-page-id page)
+   (get page (pu/get-pid :logseq.property/source-page-id))
    ;; FIXME: what if the source page has been deleted?
    page))
 

+ 14 - 8
src/main/frontend/components/content.cljs

@@ -42,10 +42,11 @@
     [:.menu-links-wrapper
      (ui/menu-background-color #(property-handler/batch-set-block-property! repo
                                                                             (state/get-selection-block-ids)
-                                                                            :logseq.property/background-color %)
+                                                                            (pu/get-pid :logseq.property/background-color)
+                                                                            %)
                                #(property-handler/batch-remove-block-property! repo
                                                                                (state/get-selection-block-ids)
-                                                                               :logseq.property/background-color))
+                                                                               (pu/get-pid :logseq.property/background-color)))
 
      (ui/menu-heading #(editor-handler/batch-set-heading! (state/get-selection-block-ids) %)
                       #(editor-handler/batch-set-heading! (state/get-selection-block-ids) true)
@@ -167,10 +168,12 @@
                                           [:p (t :context-menu/template-exists-warning)]
                                           :error)
                                          (p/do!
-                                           (property-handler/set-block-property! repo block-id :logseq.property/template title)
-                                           (when (false? template-including-parent?)
-                                             (property-handler/set-block-property! repo block-id :logseq.property/template-including-parent false))
-                                           (state/hide-custom-context-menu!))))))))]
+                                          (property-handler/set-block-property! repo block-id (pu/get-pid :logseq.property/template) title)
+                                          (when (false? template-including-parent?)
+                                            (property-handler/set-block-property! repo block-id
+                                                                                  (pu/get-pid :logseq.property/template-including-parent)
+                                                                                  false))
+                                          (state/hide-custom-context-menu!))))))))]
          [:hr.menu-separator]])
       (ui/menu-link
        {:key "Make a Template"
@@ -189,8 +192,11 @@
             heading (or (pu/lookup properties :logseq.property/heading)
                         false)]
         [:.menu-links-wrapper
-         (ui/menu-background-color #(property-handler/set-block-property! repo block-id :logseq.property/background-color %)
-                                   #(property-handler/remove-block-property! repo block-id :logseq.property/background-color))
+         (ui/menu-background-color #(property-handler/set-block-property! repo block-id
+                                                                          (pu/get-pid :logseq.property/background-color)
+                                                                          %)
+                                   #(property-handler/remove-block-property! repo block-id
+                                                                             (pu/get-pid :logseq.property/background-color)))
 
          (ui/menu-heading heading
                           #(editor-handler/set-heading! block-id %)

+ 3 - 2
src/main/frontend/components/icon.cljs

@@ -13,7 +13,8 @@
             [frontend.util :as util]
             [goog.object :as gobj]
             [goog.functions :refer [debounce]]
-            [frontend.config :as config]))
+            [frontend.config :as config]
+            [frontend.handler.property.util :as pu]))
 
 (defn icon
   [icon & [opts]]
@@ -28,7 +29,7 @@
 (defn get-page-icon
   [page-entity opts]
   (let [default-icon (ui/icon "page" (merge opts {:extension? true}))
-        page-icon (:logseq.property/icon page-entity)]
+        page-icon (get page-entity (pu/get-pid :logseq.property/icon))]
     (or
      (when-not (string/blank? page-icon)
        (icon page-icon opts))

+ 5 - 4
src/main/frontend/components/page.cljs

@@ -48,7 +48,8 @@
             [rum.core :as rum]
             [frontend.extensions.graph.pixi :as pixi]
             [frontend.db.async :as db-async]
-            [logseq.db :as ldb]))
+            [logseq.db :as ldb]
+            [frontend.handler.property.util :as pu]))
 
 (defn- get-page-name
   [state]
@@ -308,7 +309,7 @@
     (let [page (db/sub-block (:db/id page))
           title (:block/original-name page)]
       (when title
-        (let [icon (:logseq.property/icon page)
+        (let [icon (get page (pu/get-pid :logseq.property/icon))
               *title-value (get state ::title-value)
               *edit? (get state ::edit?)
               *input-value (get state ::input-value)
@@ -335,7 +336,7 @@
                                                           (db-property-handler/set-block-property!
                                                            repo
                                                            (:db/id page)
-                                                           :logseq.property/icon
+                                                           (pu/get-pid :logseq.property/icon)
                                                            icon
                                                            {}))
                                              :icon-props {:size 38}})
@@ -1315,7 +1316,7 @@
                               {:on-change (fn []
                                             (swap! *checks update idx not))})]
                [:td.icon.w-4.p-0.overflow-hidden
-                (when-let [icon (:logseq.property/icon page)]
+                (when-let [icon (get page (pu/get-pid :logseq.property/icon))]
                   icon)]
                [:td.name [:a {:on-click (fn [e]
                                           (.preventDefault e)

+ 3 - 2
src/main/frontend/components/page_menu.cljs

@@ -17,7 +17,8 @@
             [frontend.config :as config]
             [frontend.handler.user :as user-handler]
             [frontend.handler.file-sync :as file-sync-handler]
-            [logseq.common.path :as path]))
+            [logseq.common.path :as path]
+            [frontend.handler.property.util :as pu]))
 
 (defn- delete-page!
   [page]
@@ -51,7 +52,7 @@
           whiteboard? (contains? (set (:block/type page)) "whiteboard")
           block? (and page (util/uuid-string? page-name) (not whiteboard?))
           contents? (= page-name "contents")
-          public? (:logseq.property/public page)
+          public? (get page (pu/get-pid :logseq.property/public))
           _favorites-updated? (state/sub :favorites/updated?)
           favorited? (page-handler/favorited? page-name)
           developer-mode? (state/sub [:ui/developer-mode?])

+ 5 - 4
src/main/frontend/components/property/value.cljs

@@ -24,7 +24,8 @@
             [logseq.common.util.macro :as macro-util]
             [logseq.db :as ldb]
             [logseq.db.frontend.property :as db-property]
-            [datascript.impl.entity :as de]))
+            [datascript.impl.entity :as de]
+            [frontend.handler.property.util :as pu]))
 
 (defn- select-type?
   [property type]
@@ -399,7 +400,7 @@
             items (if closed-values?
                     (keep (fn [id]
                             (when-let [block (when id (db/entity [:block/uuid id]))]
-                              (let [icon (:logseq.property/icon block)
+                              (let [icon (get block (pu/get-pid :logseq.property/icon))
                                     value (db-property/closed-value-name block)]
                                 {:label (if icon
                                           [:div.flex.flex-row.gap-2
@@ -543,7 +544,7 @@
       [:div.text-sm.opacity-70 "loading"]
       (when-let [block (db/sub-block (:db/id (db/entity [:block/uuid value])))]
         (let [value' (get-in block [:block/schema :value])
-              icon (:logseq.property/icon block)]
+              icon (get block (pu/get-pid :logseq.property/icon))]
           (cond
             (:block/name block)
             (page-cp {:disable-preview? true
@@ -654,7 +655,7 @@
                  :default)
         type (if (= :block type)
                (let [v-block (db/entity value)]
-                 (if (:logseq.property/created-from-template v-block)
+                 (if (get v-block (pu/get-pid :logseq.property/created-from-template))
                    :template
                    type))
                type)

+ 5 - 4
src/main/frontend/components/query.cljs

@@ -13,7 +13,8 @@
             [frontend.ui :as ui]
             [frontend.util :as util]
             [lambdaisland.glogi :as log]
-            [rum.core :as rum]))
+            [rum.core :as rum]
+            [frontend.handler.property.util :as pu]))
 
 (defn built-in-custom-query?
   [title]
@@ -156,7 +157,7 @@
                        collapsed?
                        (:block/collapsed? current-block)))
         built-in-collapsed? (and collapsed? built-in?)
-        query-table? (:logseq.property/query-table current-block)
+        query-table? (get current-block (pu/get-pid :logseq.property/query-table))
         table? (or table-view?
                    query-table?
                    (and (string? query) (string/ends-with? (string/trim query) "table")))
@@ -209,12 +210,12 @@
                  (if table?
                    [:a.flex.ml-1.fade-link {:title "Switch to list view"
                                             :on-click (fn [] (property-handler/set-block-property! (state/get-current-repo) current-block-uuid
-                                                                                                   :logseq.property/query-table
+                                                                                                   (pu/get-pid :logseq.property/query-table)
                                                                                                    false))}
                     (ui/icon "list" {:style {:font-size 20}})]
                    [:a.flex.ml-1.fade-link {:title "Switch to table view"
                                             :on-click (fn [] (property-handler/set-block-property! (state/get-current-repo) current-block-uuid
-                                                                                                   :logseq.property/query-table
+                                                                                                   (pu/get-pid :logseq.property/query-table)
                                                                                                    true))}
                     (ui/icon "table" {:style {:font-size 20}})]))
 

+ 6 - 2
src/main/frontend/components/query_table.cljs

@@ -94,8 +94,12 @@
     [:th.whitespace-nowrap
      [:a {:on-click (fn []
                       (p/do!
-                        (property-handler/set-block-property! repo block-id :logseq.property/query-sort-by (if (uuid? column) column (name column)))
-                        (property-handler/set-block-property! repo block-id :logseq.property/query-sort-desc (not sort-desc?))))}
+                       (property-handler/set-block-property! repo block-id
+                                                             (pu/get-pid :logseq.property/query-sort-by)
+                                                             (if (uuid? column) column (name column)))
+                       (property-handler/set-block-property! repo block-id
+                                                             (pu/get-pid :logseq.property/query-sort-desc)
+                                                             (not sort-desc?))))}
       [:div.flex.items-center
        [:span.mr-1 title]
        (when (= sort-by-column column)

+ 12 - 10
src/main/frontend/extensions/pdf/assets.cljs

@@ -129,10 +129,12 @@
 (defn update-hl-block!
   [highlight]
   (when-let [block (db-model/get-block-by-uuid (:id highlight))]
-    (doseq [[k v] {:logseq.property/hl-stamp (if (area-highlight? highlight)
-                                               (get-in highlight [:content :image])
-                                               (js/Date.now))
-                   :logseq.property/hl-color (get-in highlight [:properties :color])}]
+    (doseq [[k v] {(pu/get-pid :logseq.property/hl-stamp)
+                   (if (area-highlight? highlight)
+                     (get-in highlight [:content :image])
+                     (js/Date.now))
+                   (pu/get-pid :logseq.property/hl-color)
+                   (get-in highlight [:properties :color])}]
       (property-handler/set-block-property! (state/get-current-repo) (:block/uuid block) k v))))
 
 (defn unlink-hl-area-image$
@@ -178,7 +180,7 @@
 
         ;; try to update file path
         (do
-          (property-handler/add-page-property! page-name :logseq.property/file-path url)
+          (property-handler/add-page-property! page-name (pu/get-pid :logseq.property/file-path) url)
           page)))))
 
 (defn ensure-ref-block!
@@ -194,13 +196,13 @@
            (let [text       (:text content)
                  wrap-props #(if-let [stamp (:image content)]
                                (assoc %
-                                      :logseq.property/hl-type :area
-                                      :logseq.property/hl-stamp stamp)
+                                      (pu/get-pid :logseq.property/hl-type) :area
+                                      (pu/get-pid :logseq.property/hl-stamp) stamp)
                                %)
                  props (cond->
-                        {:logseq.property/ls-type  :annotation
-                         :logseq.property/hl-page  page
-                         :logseq.property/hl-color (:color properties)}
+                        {(pu/get-pid :logseq.property/ls-type)  :annotation
+                         (pu/get-pid :logseq.property/hl-page)  page
+                         (pu/get-pid :logseq.property/hl-color) (:color properties)}
                          (not (config/db-based-graph? (state/get-current-repo)))
                           ;; force custom uuid
                          (assoc :id (str id)))

+ 8 - 7
src/main/frontend/extensions/srs.cljs

@@ -30,7 +30,8 @@
             [logseq.graph-parser.property :as gp-property]
             [logseq.common.util.page-ref :as page-ref]
             [medley.core :as medley]
-            [rum.core :as rum]))
+            [rum.core :as rum]
+            [frontend.handler.property.util :as pu]))
 
 ;;; ================================================================
 ;;; Commentary
@@ -46,12 +47,12 @@
 
 (def card-hash-tag "card")
 
-(def card-last-interval-property        :logseq.property/card-last-interval)
-(def card-repeats-property              :logseq.property/card-repeats)
-(def card-last-reviewed-property        :logseq.property/card-last-reviewed)
-(def card-next-schedule-property        :logseq.property/card-next-schedule)
-(def card-last-easiness-factor-property :logseq.property/card-ease-factor)
-(def card-last-score-property           :logseq.property/card-last-score)
+(def card-last-interval-property        :card-last-interval)
+(def card-repeats-property              :card-repeats)
+(def card-last-reviewed-property        :card-last-reviewed)
+(def card-next-schedule-property        :card-next-schedule)
+(def card-last-easiness-factor-property :card-ease-factor)
+(def card-last-score-property           :card-last-score)
 
 (def default-card-properties-map {card-last-interval-property -1
                                   card-repeats-property 0

+ 21 - 18
src/main/frontend/handler/editor.cljs

@@ -88,12 +88,12 @@
 (defn set-block-own-order-list-type!
   [block type]
   (when-let [uuid (:block/uuid block)]
-    (property-handler/set-block-property! (state/get-current-repo) uuid :logseq.property/order-list-type (name type))))
+    (property-handler/set-block-property! (state/get-current-repo) uuid (pu/get-pid :logseq.property/order-list-type) (name type))))
 
 (defn remove-block-own-order-list-type!
   [block]
   (when-let [uuid (:block/uuid block)]
-    (property-handler/remove-block-property! (state/get-current-repo) uuid :logseq.property/order-list-type)))
+    (property-handler/remove-block-property! (state/get-current-repo) uuid (pu/get-pid :logseq.property/order-list-type))))
 
 (defn own-order-number-list?
   [block]
@@ -109,7 +109,7 @@
   (when (seq blocks)
     (let [has-ordered?    (some own-order-number-list? blocks)
           blocks-uuids    (some->> blocks (map :block/uuid) (remove nil?))
-          order-list-prop :logseq.property/order-list-type
+          order-list-prop (pu/get-pid :logseq.property/order-list-type)
           repo (state/get-current-repo)]
       (if has-ordered?
         (property-handler/batch-remove-block-property! repo blocks-uuids order-list-prop)
@@ -540,18 +540,21 @@
                                    ;; FIXME: assert
                                    :else
                                    nil)]
-          (when block-m
-            (p/do!
-             (outliner-insert-block! {} block-m new-block {:sibling? sibling?
-                                                           :keep-uuid? true
-                                                           :ordered-list? ordered-list?
-                                                           :replace-empty-target? replace-empty-target?})
-             (when edit-block?
-               (if (and replace-empty-target?
-                        (string/blank? (:block/content last-block)))
-                 (edit-block! last-block :max nil)
-                 (edit-block! new-block :max nil)))
-             new-block)))))))
+          (let [new-block' (if db-based?
+                             (merge new-block properties)
+                             new-block)]
+            (when block-m
+              (p/do!
+               (outliner-insert-block! {} block-m new-block' {:sibling? sibling?
+                                                              :keep-uuid? true
+                                                              :ordered-list? ordered-list?
+                                                              :replace-empty-target? replace-empty-target?})
+               (when edit-block?
+                 (if (and replace-empty-target?
+                          (string/blank? (:block/content last-block)))
+                   (edit-block! last-block :max nil)
+                   (edit-block! new-block :max nil)))
+               new-block))))))))
 
 (defn insert-first-page-block-if-not-exists!
   ([page-title]
@@ -887,7 +890,7 @@
 (defn set-block-query-properties!
   [block-id all-properties key add?]
   (when-let [block (db/entity [:block/uuid block-id])]
-    (let [query-properties (:logseq.property/query-properties block)
+    (let [query-properties (get block (pu/get-pid :logseq.property/query-properties))
           repo (state/get-current-repo)
           db-based? (config/db-based-graph? repo)
           query-properties (if db-based?
@@ -903,11 +906,11 @@
           query-properties (vec query-properties)]
       (if (seq query-properties)
         (property-handler/set-block-property! repo block-id
-                                              :logseq.property/query-properties
+                                              (pu/get-pid :logseq.property/query-properties)
                                               (if db-based?
                                                 query-properties
                                                 (str query-properties)))
-        (property-handler/remove-block-property! repo block-id :logseq.property/query-properties)))))
+        (property-handler/remove-block-property! repo block-id (pu/get-pid :logseq.property/query-properties))))))
 
 (defn set-block-timestamp!
   [block-id key value]

+ 14 - 13
src/main/frontend/handler/events.cljs

@@ -290,9 +290,9 @@
 
 (defonce *query-properties (atom {}))
 (rum/defc query-properties-settings-inner < rum/reactive
-                                            {:will-unmount (fn [state]
-                                                             (reset! *query-properties {})
-                                                             state)}
+  {:will-unmount (fn [state]
+                   (reset! *query-properties {})
+                   state)}
   [block shown-properties all-properties]
   (let [query-properties (rum/react *query-properties)]
     [:div.p-4
@@ -302,7 +302,8 @@
        :on-click
        (fn []
          (reset! *query-properties {})
-         (property-handler/remove-block-property! (state/get-current-repo) (:block/uuid block) :logseq.property/query-properties))}
+         (let [k (pu/get-pid :logseq.property/query-properties)]
+           (property-handler/remove-block-property! (state/get-current-repo) (:block/uuid block) k)))}
       (ui/icon "refresh")]
      (for [property all-properties]
        (let [property-value (get query-properties property)
@@ -312,15 +313,15 @@
          [:div.flex.flex-row.m-2.justify-between.align-items
           [:div (if (keyword? property) (db-pu/get-property-name property) (name property))]
           [:div.mt-1 (ui/toggle shown?
-                       (fn []
-                         (let [value (not shown?)]
-                           (swap! *query-properties assoc property value)
-                           (editor-handler/set-block-query-properties!
-                             (:block/uuid block)
-                             all-properties
-                             property
-                             value)))
-                       true)]]))]))
+                                (fn []
+                                  (let [value (not shown?)]
+                                    (swap! *query-properties assoc property value)
+                                    (editor-handler/set-block-query-properties!
+                                     (:block/uuid block)
+                                     all-properties
+                                     property
+                                     value)))
+                                true)]]))]))
 
 (defn query-properties-settings
   [block shown-properties all-properties]

+ 12 - 10
src/main/frontend/handler/page.cljs

@@ -40,7 +40,8 @@
             [logseq.db :as ldb]
             [logseq.graph-parser.db :as gp-db]
             [frontend.modules.outliner.ui :as ui-outliner-tx]
-            [frontend.modules.outliner.op :as outliner-op]))
+            [frontend.modules.outliner.op :as outliner-op]
+            [frontend.handler.property.util :as pu]))
 
 (def create! page-common-handler/create!)
 (def <create! page-common-handler/<create!)
@@ -173,7 +174,7 @@
 
 (defn update-public-attribute!
   [page value]
-  (property-handler/add-page-property! page :logseq.property/public value))
+  (property-handler/add-page-property! page (pu/get-pid :logseq.property/public) value))
 
 (defn get-page-ref-text
   [page]
@@ -246,17 +247,18 @@
 
 (defn get-filters
   [page]
-  (if (config/db-based-graph? (state/get-current-repo))
-    (:logseq.property/filters page)
-    (let [properties (:block/properties page)
-          properties-str (or (:filters properties) "{}")]
-      (try (reader/read-string properties-str)
-           (catch :default e
-             (log/error :syntax/filters e))))))
+  (let [k (pu/get-pid :logseq.property/filters)]
+    (if (config/db-based-graph? (state/get-current-repo))
+      (get page k)
+      (let [properties (:block/properties page)
+            properties-str (or (get properties k) "{}")]
+        (try (reader/read-string properties-str)
+             (catch :default e
+               (log/error :syntax/filters e)))))))
 
 (defn save-filter!
   [page filter-state]
-  (property-handler/add-page-property! page :logseq.property/filters filter-state))
+  (property-handler/add-page-property! page (pu/get-pid :logseq.property/filters) filter-state))
 
 ;; Editor
 (defn page-not-exists-handler

+ 7 - 5
src/main/logseq/api.cljs

@@ -50,7 +50,8 @@
             [frontend.handler.code :as code-handler]
             [frontend.handler.search :as search-handler]
             [logseq.api.block :as api-block]
-            [logseq.db :as ldb]))
+            [logseq.db :as ldb]
+            [logseq.db.frontend.property :as db-property]))
 
 ;; Alert: this namespace shouldn't invoke any reactive queries
 
@@ -1021,7 +1022,8 @@
             repo (state/get-current-repo)]
       (if (or (not block) (true? overwrite))
         (do (when-let [old-target block]
-              (property-handler/remove-block-property! repo (:block/uuid old-target) :logseq.property/template))
+              (let [k (db-property/get-pid repo :logseq.property/template)]
+                (property-handler/remove-block-property! repo (:block/uuid old-target) k)))
             (property-handler/set-block-property! repo target-uuid :logseq.property/template template-name))
         (throw (js/Error. "Template already exists!"))))))
 
@@ -1029,9 +1031,9 @@
   [name]
   (p/let [block (when name (db-async/<get-template-by-name name))]
     (when block
-      (property-handler/remove-block-property!
-       (state/get-current-repo)
-       (:block/uuid block) :logseq.property/template))))
+      (let [repo (state/get-current-repo)
+            k (db-property/get-pid repo :logseq.property/template)]
+        (property-handler/remove-block-property! repo (:block/uuid block) k)))))
 
 ;; search
 (defn ^:export search