浏览代码

enhance: add built-in pages such as TODO keywords and priorities

Tienson Qin 4 年之前
父节点
当前提交
4e75eb67b4
共有 3 个文件被更改,包括 18 次插入2 次删除
  1. 6 2
      src/main/frontend/db.cljs
  2. 3 0
      src/main/frontend/db/conn.cljs
  3. 9 0
      src/main/frontend/db/default.cljs

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

@@ -10,6 +10,7 @@
             [frontend.state :as state]
             [promesa.core :as p]
             [frontend.db-schema :as db-schema]
+            [frontend.db.default :as default-db]
             [clojure.core.async :as async]
             [frontend.idb :as idb]))
 
@@ -147,7 +148,8 @@
          (p/let [stored (idb/get-item db-name)
                  _ (when stored
                      (let [stored-db (string->db stored)
-                           attached-db (d/db-with stored-db [(me-tx stored-db me)])]
+                           attached-db (d/db-with stored-db
+                                                  [(me-tx stored-db me)])]
                        (conn/reset-conn! db-conn attached-db)))
                  db-name (datascript-db repo)
                  db-conn (d/create-conn db-schema/schema)
@@ -156,7 +158,9 @@
                  stored (idb/get-item db-name)
                  _ (if stored
                      (let [stored-db (string->db stored)
-                           attached-db (d/db-with stored-db [(me-tx stored-db me)])]
+                           attached-db (d/db-with stored-db (concat
+                                                             [(me-tx stored-db me)]
+                                                             default-db/built-in-pages))]
                        (conn/reset-conn! db-conn attached-db))
                      (when logged?
                        (d/transact! db-conn [(me-tx (d/db db-conn) me)])))]

+ 3 - 0
src/main/frontend/db/conn.cljs

@@ -2,6 +2,7 @@
   "Contains db connections."
   (:require [clojure.string :as string]
             [frontend.db-schema :as db-schema]
+            [frontend.db.default :as default-db]
             [frontend.util :as util]
             [frontend.state :as state]
             [frontend.config :as config]
@@ -85,6 +86,8 @@
      (when me
        (d/transact! db-conn [(me-tx (d/db db-conn) me)]))
 
+     (d/transact! db-conn default-db/built-in-pages)
+
      (when listen-handler (listen-handler repo)))))
 
 (defn destroy-all!

+ 9 - 0
src/main/frontend/db/default.cljs

@@ -0,0 +1,9 @@
+(ns frontend.db.default
+  (:require [clojure.string :as string]))
+
+(def built-in-pages
+  (mapv (fn [p]
+          {:page/name (string/lower-case p)
+           :page/original-name p
+           :page/journal? false})
+        #{"NOW" "LATER" "DOING" "DONE" "IN-PROGRESS" "TODO" "WAIT" "WAITING" "A" "B" "C"}))