feat: add support to export to zip

Resolved #779
This commit is contained in:
Tienson Qin
2020-11-29 22:11:48 +08:00
parent dc0406ff38
commit 5248444157
10 changed files with 88 additions and 8 deletions

View File

@@ -7,7 +7,9 @@
[goog.dom :as gdom]
[frontend.publishing.html :as html]
[frontend.text :as text]
[frontend.handler.common :as common-handler]))
[frontend.handler.common :as common-handler]
[frontend.extensions.zip :as zip]
[promesa.core :as p]))
(defn copy-block!
[block-id]
@@ -75,3 +77,15 @@
(.setAttribute anchor "href" html-str)
(.setAttribute anchor "download" "index.html")
(.click anchor)))))
(defn export-repo-as-zip!
[repo]
(let [files (db/get-file-contents repo)
[owner repo-name] (util/get-git-owner-and-repo repo)
repo-name (str owner "-" repo-name)]
(when (seq files)
(p/let [zipfile (zip/make-zip repo-name files)]
(when-let [anchor (gdom/getElement "download-as-zip")]
(.setAttribute anchor "href" (js/window.URL.createObjectURL zipfile))
(.setAttribute anchor "download" (.-name zipfile))
(.click anchor))))))

View File

@@ -563,12 +563,11 @@
(db/remove-conn! url)
(db/clear-query-state!)
(-> (p/let [_ (db/remove-db! url)
_ (db/remove-files-db! url)]
(fs/rmdir (util/get-repo-dir url)))
_ (db/remove-files-db! url)
_ (fs/rmdir (util/get-repo-dir url))]
(clone-and-pull url))
(p/catch (fn [error]
(prn "Delete repo failed, error: " error)))
(p/finally (fn []
(clone-and-pull url)))))
(prn "Delete repo failed, error: " error)))))
(defn git-commit-and-push!
[commit-message]