mirror of https://github.com/logseq/logseq
bug fix
parent
4c11e451ea
commit
2a4e557b38
|
@ -181,7 +181,7 @@
|
|||
(defn delete-pages!
|
||||
[repo ids]
|
||||
(when-let [db (get-db repo)]
|
||||
(let [sql (str "DELETE from blocks WHERE id IN " (clj-list->sql ids))
|
||||
(let [sql (str "DELETE from pages WHERE id IN " (clj-list->sql ids))
|
||||
stmt (prepare db sql)]
|
||||
(.run ^object stmt))))
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
[frontend.util.property :as property]
|
||||
[goog.object :as gobj]
|
||||
[promesa.core :as p]
|
||||
[clojure.set :as set]))
|
||||
[clojure.set :as set]
|
||||
[frontend.modules.datascript-report.core :as db-report]))
|
||||
|
||||
(defn get-engine
|
||||
[repo]
|
||||
|
@ -111,7 +112,7 @@
|
|||
(protocol/transact-blocks! engine data)))
|
||||
|
||||
(defn- transact-pages!
|
||||
[repo data]
|
||||
[repo data]
|
||||
(when-let [engine (get-engine repo)]
|
||||
(protocol/transact-pages! engine data)))
|
||||
|
||||
|
@ -268,11 +269,11 @@
|
|||
(map :db/id)
|
||||
set))
|
||||
|
||||
(defn- verify-pull
|
||||
"Confirm that the page id & name of a page entity are up-to-date
|
||||
Return a full page entity"
|
||||
[page-id]
|
||||
(when-let [page-entity (db/entity page-id)]
|
||||
(defn- pull-page
|
||||
"Return a page entity of the latest state from tx-report"
|
||||
[tx-report page-id]
|
||||
(when-let [page-entity (db-report/safe-pull (:db-after tx-report) '[:db/id :block/name :block/uuid
|
||||
{:block/file [:db/id :file/content]}] page-id)]
|
||||
(when (:block/name page-entity) ;; confirm it's a page entity
|
||||
page-entity)))
|
||||
|
||||
|
@ -306,7 +307,7 @@
|
|||
;; update page indice
|
||||
(when (or (seq pages-to-add-id-set) (seq pages-to-remove-id-set) (seq updated-pages-id-set)) ;; when move op happens, no :block/content provided
|
||||
(let [pages-to-add-id-set (set/union updated-pages-id-set pages-to-add-id-set)
|
||||
verified-pages (map verify-pull pages-to-add-id-set)
|
||||
verified-pages (map (partial pull-page tx-report) pages-to-add-id-set)
|
||||
indice-pages (map #(when % (search-db/page->index %)) verified-pages)
|
||||
invalid-set (->> (map (fn [updated indiced] ;; get id of pages without valid page index
|
||||
(if indiced nil (:db/id updated)))
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
[frontend.db :as db]
|
||||
[frontend.state :as state]
|
||||
[frontend.util :as util]
|
||||
["fuse.js" :as fuse]))
|
||||
["fuse.js" :as fuse]
|
||||
[frontend.db.utils :as db-util]))
|
||||
|
||||
;; Notice: When breaking changes happen, bump version in src/electron/electron/search.cljs
|
||||
|
||||
|
@ -30,12 +31,13 @@
|
|||
(defn page->index
|
||||
"Convert a page name to the index for searching (page content level)
|
||||
Generate index based on the DB content AT THE POINT OF TIME"
|
||||
[{:block/keys [uuid name file] :as page}]
|
||||
(when-let [content (:file/content file)]
|
||||
[{:block/keys [uuid _name] :as page}]
|
||||
(when-let [content (some-> (:block/file page)
|
||||
(:file/content))]
|
||||
(prn "content: " content)
|
||||
(when-not (> (count content) (* (max-len) 10))
|
||||
{:id (:db/id page)
|
||||
:uuid (str uuid)
|
||||
:name name
|
||||
:content (sanitize content)})))
|
||||
|
||||
(defn build-blocks-indice
|
||||
|
@ -50,6 +52,7 @@
|
|||
(defn build-pages-indice
|
||||
[repo]
|
||||
(->> (db/get-all-pages repo)
|
||||
(map #(db/entity (:db/id %))) ;; get full file-content
|
||||
(map page->index)
|
||||
(remove nil?)
|
||||
(bean/->js)))
|
||||
|
|
Loading…
Reference in New Issue