mirror of
https://github.com/logseq/logseq.git
synced 2026-05-03 18:36:43 +00:00
* chore: remove slide feature and reveal mentions Will remove reveal js dep in later commit * chore: remove built-in property that was only for slides
74 lines
2.3 KiB
Clojure
74 lines
2.3 KiB
Clojure
(ns frontend.db
|
|
"Main entry ns for db related fns"
|
|
(:require [frontend.config :as config]
|
|
[frontend.db.conn :as conn]
|
|
[frontend.db.model]
|
|
[frontend.db.utils]
|
|
[frontend.modules.outliner.op :as outliner-op]
|
|
[frontend.modules.outliner.ui :as ui-outliner-tx]
|
|
[frontend.namespaces :refer [import-vars]]
|
|
[frontend.state :as state]
|
|
[logseq.db :as ldb]
|
|
[logseq.outliner.op]))
|
|
|
|
(import-vars
|
|
[frontend.db.conn
|
|
;; TODO: remove later
|
|
get-repo-path
|
|
get-repo-name
|
|
get-short-repo-name
|
|
get-db
|
|
remove-conn!]
|
|
|
|
[frontend.db.utils
|
|
entity pull pull-many]
|
|
|
|
[frontend.db.model
|
|
delete-files get-block-and-children get-block-by-uuid get-block-children sort-by-order
|
|
get-block-parent get-block-parents parents-collapsed?
|
|
get-block-immediate-children get-block-page
|
|
get-file file-exists? get-files-full
|
|
get-latest-journals get-page get-case-page get-page-alias-names
|
|
get-page-format journal-page? page? sub-block
|
|
page-empty? page-exists? get-alias-source-page
|
|
has-children? whiteboard-page?])
|
|
|
|
(defn start-db-conn!
|
|
([repo]
|
|
(start-db-conn! repo {}))
|
|
([repo option]
|
|
(conn/start! repo option)))
|
|
|
|
(def new-block-id ldb/new-block-id)
|
|
|
|
(defn transact!
|
|
([tx-data]
|
|
(transact! (state/get-current-repo) tx-data nil))
|
|
([repo tx-data]
|
|
(transact! repo tx-data nil))
|
|
([repo tx-data tx-meta]
|
|
(if config/publishing?
|
|
;; :save-block is for query-table actions like sorting and choosing columns
|
|
(when (or (#{:collapse-expand-blocks :save-block} (:outliner-op tx-meta))
|
|
(:init-db? tx-meta))
|
|
(conn/transact! repo tx-data tx-meta))
|
|
(ui-outliner-tx/transact! tx-meta
|
|
(outliner-op/transact! tx-data tx-meta)))))
|
|
|
|
(defn set-file-last-modified-at!
|
|
"Refresh file timestamps to DB"
|
|
[repo path last-modified-at]
|
|
(when (and repo (not (config/db-based-graph? repo)) path last-modified-at)
|
|
(transact! repo
|
|
[{:file/path path
|
|
:file/last-modified-at last-modified-at}] {})))
|
|
|
|
(defn set-file-content!
|
|
([repo path content]
|
|
(set-file-content! repo path content {}))
|
|
([repo path content opts]
|
|
(when (and repo path)
|
|
(let [tx-data {:file/path path
|
|
:file/content content}]
|
|
(transact! repo [tx-data] opts)))))
|