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

pull/1302/head
Tienson Qin 2021-02-09 21:21:23 +08:00
parent a7c41eb12c
commit 4e75eb67b4
3 changed files with 18 additions and 2 deletions

View File

@ -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)])))]

View File

@ -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!

View File

@ -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"}))