mirror of
https://github.com/penpot/penpot.git
synced 2026-09-10 22:19:19 +00:00
🐛 Use page name for multi-export downloads (#8874)
* 🐛 Use page name for multi-export downloads * ♻️ Refactor parameter formatting in asset export function * ✨ Use page name for multi-export ZIP/PDF downloads [Github #8773] --------- Co-authored-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
parent
9e4c8981be
commit
240e8ce50c
@ -26,6 +26,7 @@
|
|||||||
- Save and restore selection state in undo/redo (by @eureka928) [Github #6007](https://github.com/penpot/penpot/issues/6007)
|
- Save and restore selection state in undo/redo (by @eureka928) [Github #6007](https://github.com/penpot/penpot/issues/6007)
|
||||||
- Fix warnings for unsupported token $type (by @Dexterity104) [Github #8790](https://github.com/penpot/penpot/issues/8790)
|
- Fix warnings for unsupported token $type (by @Dexterity104) [Github #8790](https://github.com/penpot/penpot/issues/8790)
|
||||||
- Add per-group add button for typographies (by @eureka928) [Github #5275](https://github.com/penpot/penpot/issues/5275)
|
- Add per-group add button for typographies (by @eureka928) [Github #5275](https://github.com/penpot/penpot/issues/5275)
|
||||||
|
- Use page name for multi-export ZIP/PDF downloads (by @Dexterity104) [Github #8773](https://github.com/penpot/penpot/issues/8773)
|
||||||
|
|
||||||
### :bug: Bugs fixed
|
### :bug: Bugs fixed
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,9 @@
|
|||||||
(dsh/lookup-shapes state selected)
|
(dsh/lookup-shapes state selected)
|
||||||
(reverse (dsh/filter-shapes state #(pos? (count (:exports %))))))
|
(reverse (dsh/filter-shapes state #(pos? (count (:exports %))))))
|
||||||
|
|
||||||
|
page (dsh/lookup-page state)
|
||||||
|
page-name (:name page)
|
||||||
|
|
||||||
exports (for [shape shapes
|
exports (for [shape shapes
|
||||||
export (:exports shape)]
|
export (:exports shape)]
|
||||||
(-> export
|
(-> export
|
||||||
@ -76,10 +79,12 @@
|
|||||||
(assoc :name (:name shape))))]
|
(assoc :name (:name shape))))]
|
||||||
|
|
||||||
(rx/of (modal/show :export-shapes
|
(rx/of (modal/show :export-shapes
|
||||||
{:exports (vec exports) :origin origin}))))))
|
{:exports (vec exports)
|
||||||
|
:origin origin
|
||||||
|
:name page-name}))))))
|
||||||
|
|
||||||
(defn show-viewer-export-dialog
|
(defn show-viewer-export-dialog
|
||||||
[{:keys [shapes page-id file-id share-id exports]}]
|
[{:keys [shapes page-id file-id share-id exports name]}]
|
||||||
(ptk/reify ::show-viewer-export-dialog
|
(ptk/reify ::show-viewer-export-dialog
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ _ _]
|
(watch [_ _ _]
|
||||||
@ -93,27 +98,32 @@
|
|||||||
(assoc :shape (dissoc shape :exports))
|
(assoc :shape (dissoc shape :exports))
|
||||||
(assoc :name (:name shape))
|
(assoc :name (:name shape))
|
||||||
(cond-> share-id (assoc :share-id share-id))))]
|
(cond-> share-id (assoc :share-id share-id))))]
|
||||||
(rx/of (modal/show :export-shapes {:exports (vec exports) :origin "viewer"})))))) #_TODO
|
(rx/of (modal/show :export-shapes {:exports (vec exports)
|
||||||
|
:origin "viewer"
|
||||||
|
:name name})))))) #_TODO
|
||||||
|
|
||||||
(defn show-workspace-export-frames-dialog
|
(defn show-workspace-export-frames-dialog
|
||||||
[frames]
|
[frames]
|
||||||
(ptk/reify ::show-workspace-export-frames-dialog
|
(ptk/reify ::show-workspace-export-frames-dialog
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state _]
|
(watch [_ state _]
|
||||||
(let [file-id (:current-file-id state)
|
(let [file-id (:current-file-id state)
|
||||||
page-id (:current-page-id state)
|
page-id (:current-page-id state)
|
||||||
exports (mapv (fn [frame]
|
page (dsh/lookup-page state)
|
||||||
{:enabled true
|
page-name (:name page)
|
||||||
:page-id page-id
|
exports (mapv (fn [frame]
|
||||||
:file-id file-id
|
{:enabled true
|
||||||
:object-id (:id frame)
|
:page-id page-id
|
||||||
:shape frame
|
:file-id file-id
|
||||||
:name (:name frame)})
|
:object-id (:id frame)
|
||||||
frames)]
|
:shape frame
|
||||||
|
:name (:name frame)})
|
||||||
|
frames)]
|
||||||
|
|
||||||
(rx/of (modal/show :export-frames
|
(rx/of (modal/show :export-frames
|
||||||
{:exports exports
|
{:exports exports
|
||||||
:origin "workspace:menu"}))))))
|
:origin "workspace:menu"
|
||||||
|
:name page-name}))))))
|
||||||
|
|
||||||
(defn- initialize-export-status
|
(defn- initialize-export-status
|
||||||
[exports cmd resource]
|
[exports cmd resource]
|
||||||
@ -197,7 +207,7 @@
|
|||||||
(rx/throw cause)))))))))))
|
(rx/throw cause)))))))))))
|
||||||
|
|
||||||
(defn request-multiple-export
|
(defn request-multiple-export
|
||||||
[{:keys [exports cmd]
|
[{:keys [exports cmd name]
|
||||||
:or {cmd :export-shapes}
|
:or {cmd :export-shapes}
|
||||||
:as params}]
|
:as params}]
|
||||||
(ptk/reify ::request-multiple-export
|
(ptk/reify ::request-multiple-export
|
||||||
@ -206,14 +216,17 @@
|
|||||||
(let [resource-id (volatile! nil)
|
(let [resource-id (volatile! nil)
|
||||||
profile-id (:profile-id state)
|
profile-id (:profile-id state)
|
||||||
ws-conn (:ws-conn state)
|
ws-conn (:ws-conn state)
|
||||||
params {:exports exports
|
params (cond->
|
||||||
:cmd cmd
|
{:exports exports
|
||||||
:profile-id profile-id
|
:cmd cmd
|
||||||
:force-multiple true
|
:profile-id profile-id
|
||||||
:is-wasm
|
:force-multiple true
|
||||||
(and
|
:is-wasm
|
||||||
(features/active-feature? state "render-wasm/v1")
|
(and
|
||||||
(contains? cf/flags :wasm-export))}
|
(features/active-feature? state "render-wasm/v1")
|
||||||
|
(contains? cf/flags :wasm-export))}
|
||||||
|
(some? name)
|
||||||
|
(assoc :name name))
|
||||||
|
|
||||||
progress-stream
|
progress-stream
|
||||||
(->> (ws/get-rcv-stream ws-conn)
|
(->> (ws/get-rcv-stream ws-conn)
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
(mf/defc export-multiple-dialog*
|
(mf/defc export-multiple-dialog*
|
||||||
{::mf/private true}
|
{::mf/private true}
|
||||||
[{:keys [exports title cmd no-selection origin]}]
|
[{:keys [exports title cmd no-selection origin name]}]
|
||||||
(let [lstate (mf/deref refs/export)
|
(let [lstate (mf/deref refs/export)
|
||||||
in-progress? (:in-progress lstate)
|
in-progress? (:in-progress lstate)
|
||||||
exports (mf/use-state exports)
|
exports (mf/use-state exports)
|
||||||
@ -59,7 +59,7 @@
|
|||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
(st/emit! (modal/hide)
|
(st/emit! (modal/hide)
|
||||||
(de/request-multiple-export {:exports enabled-exports :cmd cmd})
|
(de/request-multiple-export {:exports enabled-exports :cmd cmd :name name})
|
||||||
(de/export-shapes-event enabled-exports origin)))
|
(de/export-shapes-event enabled-exports origin)))
|
||||||
|
|
||||||
on-toggle-enabled
|
on-toggle-enabled
|
||||||
@ -185,25 +185,27 @@
|
|||||||
(mf/defc export-shapes-dialog
|
(mf/defc export-shapes-dialog
|
||||||
{::mf/register modal/components
|
{::mf/register modal/components
|
||||||
::mf/register-as :export-shapes}
|
::mf/register-as :export-shapes}
|
||||||
[{:keys [exports origin]}]
|
[{:keys [exports origin name]}]
|
||||||
(let [title (tr "dashboard.export-shapes.title")]
|
(let [title (tr "dashboard.export-shapes.title")]
|
||||||
[:> export-multiple-dialog*
|
[:> export-multiple-dialog*
|
||||||
{:exports exports
|
{:exports exports
|
||||||
:title title
|
:title title
|
||||||
:cmd :export-shapes
|
:cmd :export-shapes
|
||||||
:no-selection shapes-no-selection
|
:no-selection shapes-no-selection
|
||||||
:origin origin}]))
|
:origin origin
|
||||||
|
:name name}]))
|
||||||
|
|
||||||
(mf/defc export-frames
|
(mf/defc export-frames
|
||||||
{::mf/register modal/components
|
{::mf/register modal/components
|
||||||
::mf/register-as :export-frames}
|
::mf/register-as :export-frames}
|
||||||
[{:keys [exports origin]}]
|
[{:keys [exports origin name]}]
|
||||||
(let [title (tr "dashboard.export-frames.title")]
|
(let [title (tr "dashboard.export-frames.title")]
|
||||||
[:> export-multiple-dialog*
|
[:> export-multiple-dialog*
|
||||||
{:exports exports
|
{:exports exports
|
||||||
:title title
|
:title title
|
||||||
:cmd :export-frames
|
:cmd :export-frames
|
||||||
:origin origin}]))
|
:origin origin
|
||||||
|
:name name}]))
|
||||||
|
|
||||||
;; FIXME: deprecated, should be refactored in two components and use
|
;; FIXME: deprecated, should be refactored in two components and use
|
||||||
;; the generic progress reporter
|
;; the generic progress reporter
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
(if (= :multiple type)
|
(if (= :multiple type)
|
||||||
(st/emit! (de/show-viewer-export-dialog {:shapes shapes
|
(st/emit! (de/show-viewer-export-dialog {:shapes shapes
|
||||||
:exports @exports
|
:exports @exports
|
||||||
:filename filename
|
:name filename
|
||||||
:page-id page-id
|
:page-id page-id
|
||||||
:file-id file-id
|
:file-id file-id
|
||||||
:share-id share-id}))
|
:share-id share-id}))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user