feat(product,dashboard): Allow re-ordering images (#10187)

* migration

* fix snapshot

* primarykey

* init work on dnd

* progress

* dnd

* undo changes

* undo changes

* undo changes

* undo changes

* fix firefox issue

* lint

* lint

* lint

* add changeset

* undo changes to product module

* set activator node

* init work on service layer

* alternative

* switch to OneToMany

* add tests

* progress

* update migration

* update approach and remove all references to images in product.ts tests

* handle delete images on empty array

* fix config and order type

* update changeset

* rm flag

* export type and fix type in test

* fix type

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Kasper Fabricius Kristensen
2024-11-25 09:03:10 +01:00
committed by GitHub
co-authored by Oli Juhl
parent b12408dbd8
commit 1659c9be5d
32 changed files with 1257 additions and 617 deletions
@@ -1578,6 +1578,12 @@
"create": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"header": {
"type": "string"
},
@@ -1742,6 +1748,8 @@
}
},
"required": [
"title",
"description",
"header",
"tabs",
"errors",
@@ -1990,6 +1998,9 @@
"action"
],
"additionalProperties": false
},
"successToast": {
"type": "string"
}
},
"required": [
@@ -2008,7 +2019,8 @@
"galleryLabel",
"downloadImageLabel",
"deleteImageLabel",
"emptyState"
"emptyState",
"successToast"
],
"additionalProperties": false
},
@@ -386,6 +386,8 @@
"successToast": "Produkz {{title}} angepasst."
},
"create": {
"title": "Produkt erstellen",
"description": "Erstellen Sie ein neues Produkt.",
"header": "Allgemein",
"tabs": {
"details": "Details",
@@ -490,7 +492,8 @@
"header": "Noch keine Medien",
"description": "Fügen Sie dem Produkt Medien hinzu, um es in Ihrem Schaufenster zu präsentieren.",
"action": "Medien hinzufügen"
}
},
"successToast": "Medien wurden erfolgreich aktualisiert."
},
"discountableHint": "Wenn diese Option deaktiviert ist, werden auf dieses Produkt keine Rabatte gewährt.",
"noSalesChannels": "In keinem Vertriebskanal verfügbar",
@@ -386,6 +386,8 @@
"successToast": "Product {{title}} was successfully updated."
},
"create": {
"title": "Create Product",
"description": "Create a new product.",
"header": "General",
"tabs": {
"details": "Details",
@@ -490,7 +492,8 @@
"header": "No media yet",
"description": "Add media to the product to showcase it in your storefront.",
"action": "Add media"
}
},
"successToast": "Media was successfully updated."
},
"discountableHint": "When unchecked, discounts will not be applied to this product.",
"noSalesChannels": "Not available in any sales channels",
@@ -386,6 +386,8 @@
"successToast": "Produkt {{title}} został pomyślnie zaktualizowany."
},
"create": {
"title": "Utwórz produkt",
"description": "Utwórz nowy produkt.",
"header": "Ogólne",
"tabs": {
"details": "Szczegóły",
@@ -490,7 +492,8 @@
"header": "Brak mediów",
"description": "Dodaj media do produktu, aby zaprezentować go w swoim sklepie.",
"action": "Dodaj media"
}
},
"successToast": "Media zostały pomyślnie zaktualizowane."
},
"discountableHint": "Jeśli odznaczone, rabaty nie będą stosowane do tego produktu.",
"noSalesChannels": "Niedostępny w żadnych kanałach sprzedaży",
@@ -2752,4 +2755,4 @@
"seconds_one": "Drugi",
"seconds_other": "Towary drugiej jakości"
}
}
}
@@ -386,6 +386,8 @@
"successToast": "Ürün {{title}} başarıyla güncellendi."
},
"create": {
"title": "Ürün Oluştur",
"description": "Yeni bir ürün oluşturun.",
"header": "Genel",
"tabs": {
"details": "Detaylar",
@@ -490,7 +492,8 @@
"header": "Henüz medya yok",
"description": "Ürünü mağazanızda sergilemek için medya ekleyin.",
"action": "Medya ekle"
}
},
"successToast": "Medya başarıyla güncellendi."
},
"discountableHint": "İşaretlenmediğinde, bu ürüne indirim uygulanmayacaktır.",
"noSalesChannels": "Hiçbir satış kanalında mevcut değil",