CORE/views/translations_overview.sql
2022-02-03 22:47:19 +01:00

64 lines
1.9 KiB
SQL

CREATE OR REPLACE VIEW translations_overview AS
WITH x AS (
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
'T' AS item_prefix
FROM DUAL
)
SELECT
t.app_id,
t.page_id,
t.name,
t.name AS name_old,
t.page_id AS page_id_old,
--
CASE WHEN i.page_id IS NULL
THEN app.get_icon('fa-warning', 'Item ' || REPLACE(x.item_prefix || t.page_id || '_', x.item_prefix || '0_', x.item_prefix || '_') || t.name || ' is missing on page ' || t.page_id)
ELSE '' || i.page_id || i.item_name || i.application_id
END AS action_check,
--
t.value_en,
t.value_cz,
t.value_sk,
t.value_pl,
t.value_hu
FROM translations t
JOIN x
ON x.app_id = t.app_id
LEFT JOIN apex_application_page_items i
ON i.application_id = t.app_id
AND i.page_id = t.page_id
AND (
(i.page_id > 0 AND i.item_name = x.item_prefix || i.page_id || '_' || t.name)
OR (i.page_id = 0 AND i.item_name = x.item_prefix || '_' || t.name)
)
UNION ALL
--
SELECT
i.application_id,
i.page_id,
--
REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS name,
REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS name_old,
--
i.page_id AS page_id_old,
NULL AS action_check,
--
NULL,
NULL,
NULL,
NULL,
NULL
FROM apex_application_page_items i
JOIN x
ON x.app_id = i.application_id
LEFT JOIN translations t
ON t.app_id = x.app_id
AND t.name = i.item_name
WHERE t.name IS NULL
--
AND REGEXP_LIKE(i.item_name, '^' || x.item_prefix || '(' || i.page_id || ')?_');
--
COMMENT ON TABLE translations_overview IS '[CORE - DASHBOARD] Use page/app items to translate application';