mirror of
https://github.com/penpot/penpot.git
synced 2025-01-21 14:12:36 -05:00
🐛 Add migration to fix invalid pages
This commit is contained in:
parent
24268bbf33
commit
3334fb0e99
4 changed files with 36 additions and 3 deletions
|
@ -467,7 +467,7 @@
|
||||||
#?(:clj (validate-shapes! data result items))
|
#?(:clj (validate-shapes! data result items))
|
||||||
result))))
|
result))))
|
||||||
|
|
||||||
;; DEPRECATED: remove before 2.3 release
|
;; DEPRECATED: remove after 2.3 release
|
||||||
(defmethod process-change :set-option
|
(defmethod process-change :set-option
|
||||||
[data _]
|
[data _]
|
||||||
data)
|
data)
|
||||||
|
|
|
@ -6,4 +6,4 @@
|
||||||
|
|
||||||
(ns app.common.files.defaults)
|
(ns app.common.files.defaults)
|
||||||
|
|
||||||
(def version 56)
|
(def version 57)
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
[app.common.files.defaults :as cfd]
|
[app.common.files.defaults :as cfd]
|
||||||
[app.common.files.helpers :as cfh]
|
[app.common.files.helpers :as cfh]
|
||||||
[app.common.geom.matrix :as gmt]
|
[app.common.geom.matrix :as gmt]
|
||||||
|
[app.common.geom.point :as gpt]
|
||||||
[app.common.geom.rect :as grc]
|
[app.common.geom.rect :as grc]
|
||||||
[app.common.geom.shapes :as gsh]
|
[app.common.geom.shapes :as gsh]
|
||||||
[app.common.geom.shapes.path :as gsp]
|
[app.common.geom.shapes.path :as gsp]
|
||||||
|
@ -1102,6 +1103,33 @@
|
||||||
(update :pages-index update-vals update-container)
|
(update :pages-index update-vals update-container)
|
||||||
(update :components update-vals update-container))))
|
(update :components update-vals update-container))))
|
||||||
|
|
||||||
|
|
||||||
|
(defn migrate-up-57
|
||||||
|
[data]
|
||||||
|
(letfn [(fix-thread-positions [positions]
|
||||||
|
(reduce-kv (fn [result id {:keys [position] :as data}]
|
||||||
|
(let [data (cond
|
||||||
|
(gpt/point? position)
|
||||||
|
data
|
||||||
|
|
||||||
|
(and (map? position)
|
||||||
|
(gpt/valid-point-attrs? position))
|
||||||
|
(assoc data :position (gpt/point position))
|
||||||
|
|
||||||
|
:else
|
||||||
|
(assoc data :position (gpt/point 0 0)))]
|
||||||
|
(assoc result id data)))
|
||||||
|
positions
|
||||||
|
positions))
|
||||||
|
|
||||||
|
(update-page [page]
|
||||||
|
(d/update-when page :comment-thread-positions fix-thread-positions))]
|
||||||
|
|
||||||
|
(-> data
|
||||||
|
(update :pages (fn [pages] (into [] (remove nil?) pages)))
|
||||||
|
(update :pages-index dissoc nil)
|
||||||
|
(update :pages-index update-vals update-page))))
|
||||||
|
|
||||||
(def migrations
|
(def migrations
|
||||||
"A vector of all applicable migrations"
|
"A vector of all applicable migrations"
|
||||||
[{:id 2 :migrate-up migrate-up-2}
|
[{:id 2 :migrate-up migrate-up-2}
|
||||||
|
@ -1149,4 +1177,6 @@
|
||||||
{:id 53 :migrate-up migrate-up-26}
|
{:id 53 :migrate-up migrate-up-26}
|
||||||
{:id 54 :migrate-up migrate-up-54}
|
{:id 54 :migrate-up migrate-up-54}
|
||||||
{:id 55 :migrate-up migrate-up-55}
|
{:id 55 :migrate-up migrate-up-55}
|
||||||
{:id 56 :migrate-up migrate-up-56}])
|
{:id 56 :migrate-up migrate-up-56}
|
||||||
|
{:id 57 :migrate-up migrate-up-57}])
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,9 @@
|
||||||
[:x ::sm/safe-number]
|
[:x ::sm/safe-number]
|
||||||
[:y ::sm/safe-number]])
|
[:y ::sm/safe-number]])
|
||||||
|
|
||||||
|
(def valid-point-attrs?
|
||||||
|
(sm/validator schema:point-attrs))
|
||||||
|
|
||||||
(def valid-point?
|
(def valid-point?
|
||||||
(sm/validator
|
(sm/validator
|
||||||
[:and [:fn point?] schema:point-attrs]))
|
[:and [:fn point?] schema:point-attrs]))
|
||||||
|
|
Loading…
Add table
Reference in a new issue