Extract Hero regions and Buttons

This commit is contained in:
Jan Kvetina 2022-02-22 22:04:42 +01:00
parent f3f49e8b5d
commit 3d542f6756

View File

@ -3,8 +3,8 @@ WITH x AS (
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
'PAGE_NAME' AS page_name,
'REGION_%' AS region_name,
'BUTTON_%' AS button_name
'REGION_' AS region_name,
'BUTTON_' AS button_name
FROM DUAL
)
SELECT
@ -24,7 +24,8 @@ FROM (
--
p.page_alias AS field_static_id,
--
NULL AS field_replacement
'&' || x.page_name || '.' AS field_replacement
--
FROM apex_application_pages p
JOIN x
ON x.app_id = p.application_id
@ -36,5 +37,65 @@ FROM (
AND p.page_name NOT LIKE '%&' || x.page_name || '.%'
AND p.page_name NOT LIKE '&%.'
AND t.item_name IS NULL
--
UNION ALL
SELECT
x.region_name || COALESCE(r.static_id, p.static_id) AS item_name,
r.page_id,
--
r.region_name AS value_en,
--
COALESCE(r.static_id, p.static_id) AS field_static_id,
--
'&' || x.region_name || COALESCE(r.static_id, p.static_id) || '.' AS field_replacement
--
FROM apex_application_page_regions r
JOIN x
ON x.app_id = r.application_id
LEFT JOIN apex_application_page_regions p
ON p.application_id = r.application_id
AND p.page_id = r.page_id
AND p.parent_region_id = r.parent_region_id
AND p.template != r.template
AND p.region_id != r.region_id
AND (p.condition_type != 'Never' OR p.condition_type IS NULL)
AND p.display_sequence = r.display_sequence + 10
LEFT JOIN translated_items t
ON t.app_id = r.application_id
AND t.page_id = r.page_id
AND t.item_name = x.region_name || COALESCE(r.static_id, p.static_id)
WHERE r.page_id NOT IN (0, 9999, 947)
AND r.template = 'Hero'
AND r.source_type_code = 'STATIC_TEXT'
AND COALESCE(r.static_id, p.static_id) IS NOT NULL
AND r.region_name NOT LIKE '%&' || x.region_name || COALESCE(r.static_id, p.static_id) || '.%'
AND r.region_name NOT LIKE '&%.'
AND t.item_name IS NULL
--
UNION ALL
SELECT
x.button_name || COALESCE(b.button_static_id, b.button_name) AS item_name,
r.page_id,
--
b.label AS value_en,
--
COALESCE(b.button_static_id, b.button_name) AS field_static_id,
--
'&' || x.button_name || COALESCE(b.button_static_id, b.button_name) || '.' AS field_replacement
--
FROM apex_application_page_regions r
JOIN x
ON x.app_id = r.application_id
LEFT JOIN apex_application_page_buttons b
ON b.application_id = r.application_id
AND b.page_id = r.page_id
AND b.region_id = r.region_id
LEFT JOIN translated_items t
ON t.app_id = r.application_id
AND t.page_id = r.page_id
AND t.item_name = x.button_name || COALESCE(b.button_static_id, b.button_name)
WHERE r.page_id NOT IN (0, 9999, 947)
AND b.button_name NOT LIKE '&%.'
AND t.item_name IS NULL
) t;