|
|
@@ -11,64 +11,15 @@
|
|
|
[promesa.core :as p]
|
|
|
[frontend.handler.page :as page-handler]
|
|
|
[frontend.handler.notification :as notification]
|
|
|
- [clojure.string :as string]
|
|
|
[frontend.ui :as ui]
|
|
|
[frontend.components.svg :as svg]
|
|
|
[frontend.handler.project :as project-handler]))
|
|
|
|
|
|
-(defn get-published-pages
|
|
|
- []
|
|
|
- (when-let [repo (state/get-current-repo)]
|
|
|
- (when (db/get-conn repo)
|
|
|
- (->> (db/q repo [:page/published] {:use-cache? false}
|
|
|
- '[:find (pull ?page [*])
|
|
|
- :in $
|
|
|
- :where
|
|
|
- [?page :page/properties ?properties]
|
|
|
- [(get ?properties :published) ?publish]
|
|
|
- [(= "true" ?publish)]])
|
|
|
- db/react))))
|
|
|
-
|
|
|
-(defn delete-page-from-logseq
|
|
|
- [project permalink]
|
|
|
- (let [url (util/format "%s%s/%s" config/api project permalink)]
|
|
|
- (js/Promise.
|
|
|
- (fn [resolve reject]
|
|
|
- (util/delete url
|
|
|
- (fn [result]
|
|
|
- (resolve result))
|
|
|
- (fn [error]
|
|
|
- (log/error :page/http-delete-failed error)
|
|
|
- (reject error)))))))
|
|
|
-
|
|
|
(defn update-state-and-notify
|
|
|
[page-name]
|
|
|
(page-handler/page-add-properties! page-name {:published false})
|
|
|
(notification/show! (util/format "Remove Page \"%s\" from Logseq server success" page-name) :success))
|
|
|
|
|
|
-(defn update-project
|
|
|
- [project-name data]
|
|
|
- (let [url (util/format "%sprojects/%s" config/api project-name)]
|
|
|
- (js/Promise.
|
|
|
- (fn [resolve reject]
|
|
|
- (util/post url data
|
|
|
- (fn [result]
|
|
|
- (resolve result))
|
|
|
- (fn [error]
|
|
|
- (log/error :project/http-update-failed error)
|
|
|
- (reject error)))))))
|
|
|
-
|
|
|
-(defn delete-project
|
|
|
- [project-name]
|
|
|
- (let [url (util/format "%sprojects/%s" config/api project-name)]
|
|
|
- (js/Promise.
|
|
|
- (fn [resolve reject]
|
|
|
- (util/delete url
|
|
|
- (fn [result]
|
|
|
- (resolve result))
|
|
|
- (fn [error]
|
|
|
- (log/error :project/http-delete-failed error)
|
|
|
- (reject error)))))))
|
|
|
|
|
|
(defn project
|
|
|
[editor-state current-project pages]
|
|
|
@@ -94,14 +45,14 @@
|
|
|
(let [editor (.getElementById js/document "cp__publishing-project-input")
|
|
|
v (.-value editor)
|
|
|
data {:name v}]
|
|
|
- (-> (p/let [result (update-project current-project data)]
|
|
|
+ (-> (p/let [result (project-handler/update-project current-project data)]
|
|
|
(when (:result result)
|
|
|
(state/update-current-project :name v)
|
|
|
(notification/show! "Updated project name successfully." :success)
|
|
|
(reset! editor-state :display)))
|
|
|
(p/catch
|
|
|
(fn [error]
|
|
|
- (notification/show! "Failed to updated project name." :failed))))))
|
|
|
+ (notification/show! "Failed to update project name." :failed))))))
|
|
|
:background "green")]
|
|
|
|
|
|
[:div.cp__publishing-pj-bt
|
|
|
@@ -111,10 +62,10 @@
|
|
|
(util/stop e)
|
|
|
(let [confirm-message
|
|
|
(util/format
|
|
|
- "This operation will also delete all publishing under project \"%s\", continue?"
|
|
|
+ "This operation will delete all the published pages under the project \"%s\", are you sure?"
|
|
|
current-project)]
|
|
|
(when (.confirm js/window confirm-message)
|
|
|
- (p/let [result (delete-project current-project)]
|
|
|
+ (p/let [result (project-handler/delete-project current-project)]
|
|
|
(when (:result result)
|
|
|
(reset! editor-state :display)
|
|
|
(doseq [page pages]
|
|
|
@@ -122,7 +73,7 @@
|
|
|
page-name (:page/name page)]
|
|
|
(page-handler/page-add-properties! page-name {:published false})))
|
|
|
(state/remove-current-project)
|
|
|
- (notification/show! "Delete project successful." :success))))))
|
|
|
+ (notification/show! "The project was deleted successfully." :success))))))
|
|
|
:background "pink")]
|
|
|
|
|
|
[:div.cp__publishing-pj-bt
|
|
|
@@ -138,7 +89,7 @@
|
|
|
[state]
|
|
|
(let [current-repo (state/sub :git/current-repo)
|
|
|
projects (state/sub [:me :projects])
|
|
|
- pages (get-published-pages)
|
|
|
+ pages (db/get-published-pages)
|
|
|
editor-state (get state ::project-state)
|
|
|
current-project (project-handler/get-current-project current-repo projects)]
|
|
|
(rum/with-context [[t] i18n/*tongue-context*]
|
|
|
@@ -173,7 +124,7 @@
|
|
|
[:a {:on-click
|
|
|
(fn [e]
|
|
|
(util/stop e)
|
|
|
- (-> (p/let [_ (delete-page-from-logseq current-project permalink)]
|
|
|
+ (-> (p/let [_ (page-handler/delete-page-from-logseq current-project permalink)]
|
|
|
(update-state-and-notify page-name))
|
|
|
(p/catch
|
|
|
(fn [error]
|
|
|
@@ -181,7 +132,7 @@
|
|
|
not-found-on-server 404]
|
|
|
(if (= not-found-on-server status)
|
|
|
(update-state-and-notify page-name)
|
|
|
- (let [message (util/format "Remove Page \"%s\" from Logseq server failed."
|
|
|
+ (let [message (util/format "Failed to remove the page \"%s\" from Logseq"
|
|
|
page-name)]
|
|
|
(notification/show! message :failed))))))))}
|
|
|
(t :publishing/delete)]]]]))]]])])))
|