keystone_ui-pages 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 20dcd88a9a3339db1695fdf1d3c7597e60c3706f7686a3ca1bf9efeb130e0529
|
|
4
|
+
data.tar.gz: ac4ebbcec505d877acaaaeef407246ef202f1e09884b9d6e7479d09a49faf977
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1b7d8e2f3f4be7fbda39dac9e52b9b36824c1b8c5f2906e6502023fe10f6cab2ce5d6da1b355e08ca9abc8b144eb0b6cac580ac5d5c19cc699b3e6f6dd9ff0b0
|
|
7
|
+
data.tar.gz: d50999cf89f1fb712ebeb7c1891dcf00edce95dfab8422115625198568444e3c7e2060a55a474594ec880e5913e6754ced5ea231b7592e5ab27f1340967d42d6
|
|
@@ -17,6 +17,7 @@ module KeystoneUi
|
|
|
17
17
|
|
|
18
18
|
def drawn_version(version, values: {})
|
|
19
19
|
key = [ "keystone_ui_pages", version.id, Operations.digest(values.to_h.stringify_keys) ]
|
|
20
|
+
@drawn_page_id = version.page_id
|
|
20
21
|
Rails.cache.fetch(key) { drawn_document(version.document, values: values).to_str }.html_safe
|
|
21
22
|
end
|
|
22
23
|
|
|
@@ -79,10 +80,25 @@ module KeystoneUi
|
|
|
79
80
|
end
|
|
80
81
|
|
|
81
82
|
def edited_element(element)
|
|
83
|
+
return missing_element(element) unless KeystoneUi::Pages.catalog.find(element["key"])
|
|
84
|
+
|
|
82
85
|
wrapped_element(element, data: { element_id: element["id"], hidden: hidden?(element) || nil }.compact)
|
|
83
86
|
end
|
|
84
87
|
|
|
88
|
+
def reported_missing(element)
|
|
89
|
+
Rails.error.report(InvalidDocument.new("No element is registered as #{element["key"]}"), handled: true,
|
|
90
|
+
context: { page_id: @drawn_page_id, element_key: element["key"] })
|
|
91
|
+
nil
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def missing_element(element)
|
|
95
|
+
tag.div("No longer offered: #{element["key"]}", class: "ks-pages-element ks-hint rounded-md border-2 border-dashed border-(--ks-color-border-strong) p-3",
|
|
96
|
+
data: { element_id: element["id"], missing_element: true })
|
|
97
|
+
end
|
|
98
|
+
|
|
85
99
|
def drawn_element(element)
|
|
100
|
+
return reported_missing(element) unless KeystoneUi::Pages.catalog.find(element["key"])
|
|
101
|
+
|
|
86
102
|
wrapped_element(element) unless hidden?(element)
|
|
87
103
|
end
|
|
88
104
|
|
|
@@ -257,8 +257,11 @@ The catalog offers these Keystone UI components by default: `button`,
|
|
|
257
257
|
|
|
258
258
|
The method must be reachable in the engine's views and in any host view that
|
|
259
259
|
calls `keystone_ui_page`. A `helper_method` on the base controller covers
|
|
260
|
-
both.
|
|
261
|
-
|
|
260
|
+
both. A page that holds an element the catalog no longer offers still
|
|
261
|
+
draws its other elements for visitors, marks the missing one in the editor
|
|
262
|
+
as no longer offered, and reports the page's id and the element's key
|
|
263
|
+
through `Rails.error`, so search the pages' documents for its key before
|
|
264
|
+
leaving it out.
|
|
262
265
|
|
|
263
266
|
## Conventions
|
|
264
267
|
|