Compare commits

..

12 Commits

Author SHA1 Message Date
Alejandro
6d3baaae47 Merge pull request #3109 from penpot/niwinz-bugfixes-5
🐛 Add missing storage dependency to dbg routes module
2023-04-05 06:59:27 +02:00
Andrey Antukh
30e1c7d54e 🐛 Add missing storage dependency to dbg routes module 2023-04-04 19:20:10 +02:00
Andrey Antukh
28d3402793 Merge branch 'leonekmi-patch-1' into staging 2023-04-04 19:10:38 +02:00
Leon
e9daaa2eb8 🐛 Fix default port for penpot-exporter on nginx entrypoint
By default, penpot-frontend will try to reach penpot-export on port 80,
this is wrong, the exporter listens by default to port 6061.
2023-04-04 19:09:44 +02:00
Alejandro
dc7e62245d Merge pull request #3102 from penpot/alotor-bugfixing-16
SVG Uploading fixes
2023-04-04 10:14:10 +02:00
alonso.torres
da953f0bc0 🐛 Fix problems with imported SVG embedded images and transforms 2023-04-04 09:52:15 +02:00
alonso.torres
4b086ab2bc 🐛 Fix problems with imported SVG shadows 2023-04-04 09:52:15 +02:00
Alejandro
cd9bc1d8d7 Merge pull request #3104 from penpot/niwinz-bugfixes-4
🐛 Enable by default mattermost webhook error reporter
2023-04-04 08:45:10 +02:00
Andrey Antukh
cdaf63afa0 🐛 Enable by default mattermost webhook error reporter 2023-04-04 08:38:05 +02:00
Alejandro
7ebc185b3a Merge pull request #3103 from penpot/niwinz-bugfixes-3
🐛 Fix incorrect metrics reference on rpc methods middleware
2023-04-04 06:46:22 +02:00
Andrey Antukh
3222583a69 🐛 Fix incorrect metrics reference on rpc methods middleware 2023-04-03 23:09:39 +02:00
elhombretecla
1afecf23aa 🐛 Fix onboarding slides typo 2023-04-03 12:52:53 +02:00
14 changed files with 63 additions and 32 deletions

View File

@@ -1,5 +1,12 @@
# CHANGELOG
## 1.18.1
### :bug: Bugs fixed
- Fix problems with imported SVG shadows [Taiga #4922](https://tree.taiga.io/project/penpot/issue/4922)
- Fix problems with imported SVG embedded images and transforms [Taiga #4639](https://tree.taiga.io/project/penpot/issue/4639)
## 1.18.0
### :sparkles: New features

View File

@@ -18,6 +18,7 @@
[app.rpc.commands.binfile :as binf]
[app.rpc.commands.files-create :refer [create-file]]
[app.rpc.commands.profile :as profile]
[app.storage :as-alias sto]
[app.util.blob :as blob]
[app.util.template :as tmpl]
[app.util.time :as dt]
@@ -389,6 +390,7 @@
(defmethod ig/pre-init-spec ::routes [_]
(s/keys :req [::db/pool
::wrk/executor
::sto/storage
::session/manager]))
(defmethod ig/init-key ::routes

View File

@@ -19,7 +19,7 @@
[promesa.exec :as px]
[promesa.exec.csp :as sp]))
(defonce enabled (atom false))
(defonce enabled (atom true))
(defn- send-mattermost-notification!
[cfg {:keys [id public-uri] :as report}]

View File

@@ -300,7 +300,8 @@
:app.http.debug/routes
{::db/pool (ig/ref ::db/pool)
::wrk/executor (ig/ref ::wrk/executor)
::session/manager (ig/ref ::session/manager)}
::session/manager (ig/ref ::session/manager)
::sto/storage (ig/ref ::sto/storage)}
:app.http.websocket/routes
{::db/pool (ig/ref ::db/pool)

View File

@@ -149,7 +149,7 @@
(defn- wrap-metrics
"Wrap service method with metrics measurement."
[{:keys [metrics ::metrics-id]} f mdata]
[{:keys [::mtx/metrics ::metrics-id]} f mdata]
(let [labels (into-array String [(::sv/name mdata)])]
(fn [cfg params]
(let [tp (dt/tpoint)]

View File

@@ -20,7 +20,7 @@ update_flags /var/www/app/js/config.js
#########################################
export PENPOT_BACKEND_URI=${PENPOT_BACKEND_URI:-http://penpot-backend:6060};
export PENPOT_EXPORTER_URI=${PENPOT_EXPORTER_URI:-http://penpot-exporter};
export PENPOT_EXPORTER_URI=${PENPOT_EXPORTER_URI:-http://penpot-exporter:6061};
envsubst "\$PENPOT_BACKEND_URI,\$PENPOT_EXPORTER_URI" < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf

View File

@@ -181,7 +181,7 @@
(-> (update-in [:svg-attrs :style] dissoc :mix-blend-mode)
(assoc :blend-mode (-> (get-in shape [:svg-attrs :style :mix-blend-mode]) keyword)))))
(defn create-raw-svg [name frame-id svg-data {:keys [attrs] :as data}]
(defn create-raw-svg [name frame-id svg-data {:keys [tag attrs] :as data}]
(let [{:keys [x y width height offset-x offset-y]} svg-data]
(-> {:id (uuid/next)
:type :svg-raw
@@ -191,6 +191,7 @@
:height height
:x x
:y y
:hidden (= tag :defs)
:content (cond-> data
(map? data) (update :attrs usvg/clean-attrs))}
(assoc :svg-attrs attrs)
@@ -388,7 +389,7 @@
disp-matrix (str (gmt/translate-matrix displacement))
element-data (-> element-data
(assoc :tag :g)
(update :attrs dissoc :x :y :width :height :href :xlink:href)
(update :attrs dissoc :x :y :width :height :href :xlink:href :transform)
(update :attrs usvg/add-transform disp-matrix)
(assoc :content [use-data]))]
(parse-svg-element frame-id svg-data element-data unames))
@@ -419,7 +420,7 @@
hidden (assoc :hidden true))
children (cond->> (:content element-data)
(or (= tag :g) (= tag :svg))
(contains? usvg/parent-tags tag)
(mapv #(usvg/inherit-attributes attrs %)))]
[shape children]))))))
@@ -469,12 +470,12 @@
(rx/map (fn [uri]
(merge
{:file-id file-id
:is-local true}
:is-local true
:url uri}
(if (str/starts-with? uri "data:")
{:name "image"
:content (data-uri->blob uri)}
{:name (extract-name uri)
:url uri}))))
{:name (extract-name uri)}))))
(rx/mapcat (fn [uri-data]
(->> (rp/command! (if (contains? uri-data :content)
:upload-file-media-object
@@ -577,12 +578,9 @@
(pcb/add-object new-shape))
changes
(reduce (fn [changes [index new-child]]
(-> changes
(pcb/add-object new-child)
(pcb/change-parent (:parent-id new-child) [new-child] index)))
changes
(d/enumerate new-children))
(reduce (fn [changes new-child]
(-> changes (pcb/add-object new-child)))
changes new-children)
changes (pcb/resize-parents changes
(->> changes

View File

@@ -39,7 +39,7 @@
[:img {:src "images/features/1.18-spacing.gif" :border "0" :alt "Spacing management"}]]
[:div.modal-right
[:div.modal-title
[:h2 "Spacing management for Flex layoutFlex-Layout"]]
[:h2 "Spacing management for Flex layout"]]
[:div.modal-content
[:p "Managing Flex Layout spacing is much more intuitive now. Visualize paddings, margins and gaps and drag to resize them."]
[:p "And not only that, when creating Flex layouts, the spacing is predicted, helping you to maintain your design composition."]]

View File

@@ -67,6 +67,14 @@
shape-without-blur (dissoc shape :blur)
shape-without-shadows (assoc shape :shadow [])
filter-str
(when (and (or (cph/group-shape? shape)
(cph/frame-shape? shape)
(cph/svg-raw-shape? shape))
(not disable-shadows?))
(filters/filter-str filter-id shape))
wrapper-props
(-> (obj/clone props)
(obj/without ["shape" "children" "disable-shadows?"])
@@ -79,11 +87,8 @@
(= :group type)
(attrs/add-style-attrs shape render-id)
(and (or (cph/group-shape? shape)
(cph/frame-shape? shape)
(cph/svg-raw-shape? shape))
(not disable-shadows?))
(obj/set! "filter" (filters/filter-str filter-id shape)))
(some? filter-str)
(obj/set! "filter" filter-str))
svg-group? (and (contains? shape :svg-attrs) (= :group type))

View File

@@ -64,6 +64,16 @@
(or transform-filter?
transform-mask?) (merge bounds)))
;; Fixes race condition with dynamic modifiers forcing redraw this properties before
;; the effect triggers
attrs
(cond-> attrs
(or (= tag :filter) (= tag :mask))
(merge {:data-old-x (:x attrs)
:data-old-y (:y attrs)
:data-old-width (:width attrs)
:data-old-height (:height attrs)}))
[wrapper wrapper-props] (if (= tag :mask)
["g" #js {:className "svg-mask-wrapper"
:transform (str transform)}]

View File

@@ -100,10 +100,8 @@
opts #js {:shape shape :thumbnail? thumbnail?}
svg-leaf? (and (= :svg-raw (:type shape)) (string? (:content shape)))
[wrapper wrapper-props]
(if svg-leaf?
(if (= :svg-raw (:type shape))
[mf/Fragment nil]
["g" #js {:className "workspace-shape-wrapper"}])]

View File

@@ -181,11 +181,14 @@
(or (= (dom/get-tag-name node) "mask")
(= (dom/get-tag-name node) "filter"))
(do
(dom/set-attribute! node "x" (dom/get-attribute node "data-old-x"))
(dom/set-attribute! node "y" (dom/get-attribute node "data-old-y"))
(dom/set-attribute! node "width" (dom/get-attribute node "data-old-width"))
(dom/set-attribute! node "height" (dom/get-attribute node "data-old-height"))
(let [old-x (dom/get-attribute node "data-old-x")
old-y (dom/get-attribute node "data-old-y")
old-width (dom/get-attribute node "data-old-width")
old-height (dom/get-attribute node "data-old-height")]
(dom/set-attribute! node "x" old-x)
(dom/set-attribute! node "y" old-y)
(dom/set-attribute! node "width" old-width)
(dom/set-attribute! node "height" old-height)
(dom/remove-attribute! node "data-old-x")
(dom/remove-attribute! node "data-old-y")

View File

@@ -389,7 +389,8 @@
:mask-type})
(defonce inheritable-props
[:clip-rule
[:style
:clip-rule
:color
:color-interpolation
:color-interpolation-filters
@@ -458,6 +459,12 @@
:feTile
:feTurbulence})
(def parent-tags
#{:g
:svg
:text
:tspan})
;; By spec: https://www.w3.org/TR/SVG11/single-page.html#struct-GElement
(defonce svg-group-safe-tags
#{:animate

View File

@@ -1 +1 @@
1.18.0
1.18.1