mirror of https://github.com/logseq/logseq
fix: preserve config.file order when updating
parent
88b37d2d70
commit
bc8463265d
4
deps.edn
4
deps.edn
|
@ -12,6 +12,10 @@
|
|||
datascript-transit/datascript-transit
|
||||
{:mvn/version "0.3.0"
|
||||
:exclusions [datascript]}
|
||||
lread/rewrite-cljc {:git/url "https://github.com/lread/rewrite-cljc-playground"
|
||||
:sha "ba1e4255cd1c1fd09dbe2e90556bfa66d5459234"}
|
||||
borkdude/rewrite-edn {:git/url "https://github.com/tiensonqin/rewrite-edn"
|
||||
:sha "b54f2f7528412979795167b342af6b03ba1a1cde"}
|
||||
funcool/promesa {:mvn/version "4.0.2"}
|
||||
medley/medley {:mvn/version "1.2.0"}
|
||||
metosin/reitit-frontend {:mvn/version "0.3.10"}
|
||||
|
|
|
@ -183,7 +183,7 @@
|
|||
(ui/toggle enable-timetracking?
|
||||
(fn []
|
||||
(let [value (not enable-timetracking?)]
|
||||
(repo-handler/set-config! :feature/enable-timetracking? value))))]]]
|
||||
(config-handler/set-config! :feature/enable-timetracking? value))))]]]
|
||||
|
||||
[:hr]
|
||||
|
||||
|
|
|
@ -1,7 +1,27 @@
|
|||
(ns frontend.handler.config
|
||||
(:require [frontend.state :as state]
|
||||
[frontend.handler.repo :as repo-handler]))
|
||||
[frontend.handler.repo :as repo-handler]
|
||||
[borkdude.rewrite-edn :as rewrite]
|
||||
[frontend.config :as config]
|
||||
[frontend.db :as db]))
|
||||
|
||||
(defn set-config!
|
||||
[k v]
|
||||
(when-let [repo (state/get-current-repo)]
|
||||
(let [path (str config/app-name "/" config/config-file)]
|
||||
(when-let [config (db/get-file-no-sub path)]
|
||||
(let [config (try
|
||||
(rewrite/parse-string config)
|
||||
(catch js/Error e
|
||||
(println "Parsing config file failed: ")
|
||||
(js/console.dir e)
|
||||
{}))
|
||||
ks (if (vector? k) k [k])
|
||||
new-config (rewrite/assoc-in config ks v)]
|
||||
(state/set-config! repo new-config)
|
||||
(let [new-content (str new-config)]
|
||||
(repo-handler/set-config-content! repo path new-content)))))))
|
||||
|
||||
(defn toggle-ui-show-brackets! []
|
||||
(let [show-brackets? (state/show-brackets?)]
|
||||
(repo-handler/set-config! :ui/show-brackets? (not show-brackets?))))
|
||||
(set-config! :ui/show-brackets? (not show-brackets?))))
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
[frontend.handler.common :as common-handler]
|
||||
[frontend.handler.extract :as extract-handler]
|
||||
[frontend.ui :as ui]
|
||||
[cljs.reader :as reader]
|
||||
[clojure.string :as string]
|
||||
[frontend.dicts :as dicts]
|
||||
[frontend.helper :as helper]
|
||||
|
@ -494,26 +493,9 @@
|
|||
(show-install-error! repo-url (util/format "Failed to clone %s." repo-url)))))))
|
||||
|
||||
(defn set-config-content!
|
||||
[repo path new-config]
|
||||
(let [new-content (util/pp-str new-config)]
|
||||
(file-handler/alter-file repo path new-content {:reset? false
|
||||
:re-render-root? false})))
|
||||
|
||||
(defn set-config!
|
||||
[k v]
|
||||
(when-let [repo (state/get-current-repo)]
|
||||
(let [path (str config/app-name "/" config/config-file)]
|
||||
(when-let [config (db/get-file-no-sub path)]
|
||||
(let [config (try
|
||||
(reader/read-string config)
|
||||
(catch js/Error e
|
||||
(println "Parsing config file failed: ")
|
||||
(js/console.dir e)
|
||||
{}))
|
||||
ks (if (vector? k) k [k])
|
||||
new-config (assoc-in config ks v)]
|
||||
(state/set-config! repo new-config)
|
||||
(set-config-content! repo path new-config))))))
|
||||
[repo path new-content]
|
||||
(file-handler/alter-file repo path new-content {:reset? false
|
||||
:re-render-root? false}))
|
||||
|
||||
(defn remove-repo!
|
||||
[{:keys [id url] :as repo}]
|
||||
|
|
Loading…
Reference in New Issue