139 lines
4.2 KiB
MySQL
139 lines
4.2 KiB
MySQL
BEGIN
|
|
DBMS_UTILITY.EXEC_DDL_STATEMENT('DROP MATERIALIZED VIEW NAV_OVERVIEW_MVW');
|
|
DBMS_OUTPUT.PUT_LINE('--');
|
|
DBMS_OUTPUT.PUT_LINE('-- MATERIALIZED VIEW NAV_OVERVIEW_MVW DROPPED');
|
|
DBMS_OUTPUT.PUT_LINE('--');
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
/
|
|
--
|
|
CREATE MATERIALIZED VIEW nav_overview_mvw
|
|
BUILD DEFERRED
|
|
REFRESH COMPLETE ON DEMAND
|
|
AS
|
|
WITH t AS (
|
|
SELECT /*+ MATERIALIZE */
|
|
ROWNUM AS r#, -- to keep hierarchy sorted
|
|
t.*
|
|
FROM (
|
|
SELECT
|
|
n.app_id,
|
|
n.page_id,
|
|
n.order#,
|
|
--
|
|
REPLACE(p.page_name, '&' || 'APP_NAME.', a.application_name) AS page_name,
|
|
REPLACE(p.page_title, '&' || 'APP_NAME.', a.application_name) AS page_title,
|
|
--
|
|
p.page_alias,
|
|
p.page_group,
|
|
p.authorization_scheme,
|
|
p.page_css_classes,
|
|
p.page_mode,
|
|
p.page_template,
|
|
p.page_comment AS comments,
|
|
--
|
|
'#' AS javascript_target,
|
|
i.item_source AS javascript,
|
|
--
|
|
LEVEL - 1 AS depth,
|
|
CONNECT_BY_ROOT NVL(n.order#, n.page_id) AS page_root
|
|
FROM navigation n
|
|
JOIN apps a
|
|
ON a.app_id = n.app_id
|
|
LEFT JOIN apex_application_pages p
|
|
ON p.application_id = n.app_id
|
|
AND p.page_id = n.page_id
|
|
LEFT JOIN apex_applications a
|
|
ON a.application_id = p.application_id
|
|
LEFT JOIN apex_application_page_items i
|
|
ON i.application_id = n.app_id
|
|
AND i.item_name = 'P' || TO_CHAR(n.page_id) || '_JAVASCRIPT_TARGET'
|
|
CONNECT BY n.parent_id = PRIOR n.page_id
|
|
AND n.app_id = PRIOR n.app_id
|
|
START WITH n.parent_id IS NULL
|
|
ORDER SIBLINGS BY n.app_id, n.order#, n.page_id
|
|
) t
|
|
)
|
|
SELECT
|
|
n.app_id,
|
|
n.page_id,
|
|
n.parent_id,
|
|
n.order#,
|
|
t.r#,
|
|
--
|
|
t.page_root,
|
|
t.page_root || ' ' || COALESCE (
|
|
t.page_group,
|
|
(
|
|
SELECT t.page_group
|
|
FROM t
|
|
WHERE t.app_id = n.app_id
|
|
AND t.page_id = n.parent_id
|
|
)
|
|
) AS page_group,
|
|
--
|
|
t.page_alias,
|
|
t.depth,
|
|
t.page_name,
|
|
t.page_title,
|
|
t.page_css_classes AS css_class,
|
|
t.page_template,
|
|
--
|
|
n.is_hidden,
|
|
n.is_reset,
|
|
n.is_shared,
|
|
--
|
|
CASE WHEN t.page_mode = 'Normal' THEN NULL ELSE 'Y' END AS is_modal,
|
|
CASE WHEN t.javascript IS NOT NULL THEN 'Y' END AS is_javascript,
|
|
t.javascript,
|
|
t.javascript_target,
|
|
--
|
|
CASE
|
|
WHEN t.authorization_scheme LIKE '%MUST_NOT_BE_PUBLIC_USER%'
|
|
THEN app.get_icon('fa-check-square', 'MUST_NOT_BE_PUBLIC_USER')
|
|
--
|
|
WHEN t.authorization_scheme IS NULL AND n.page_id NOT IN (0, 9999)
|
|
THEN app.get_icon('fa-warning', 'Auth scheme is missing')
|
|
--
|
|
ELSE nav.get_html_a(app.get_page_url (
|
|
in_page_id => 920,
|
|
in_app_id => n.app_id,
|
|
in_names => 'P920_AUTH_SCHEME',
|
|
in_values => t.authorization_scheme
|
|
), t.authorization_scheme)
|
|
END AS auth_scheme,
|
|
--
|
|
CASE
|
|
WHEN t.javascript_target IS NOT NULL
|
|
THEN t.javascript_target
|
|
--
|
|
WHEN n.page_id > 0
|
|
THEN app.get_page_url (
|
|
in_page_id => n.page_id,
|
|
in_app_id => n.app_id,
|
|
in_session_id => CASE WHEN n.page_id = 9999 THEN 0 END
|
|
)
|
|
END AS page_url,
|
|
--
|
|
t.comments,
|
|
--
|
|
'UD' AS allow_changes, -- U = update, D = delete
|
|
--
|
|
t.page_root || '.' || TO_CHAR(10000 + t.r#) || '.' || NVL(t.order#, t.page_id) || '.' || n.page_id AS sort_order
|
|
FROM navigation n
|
|
JOIN apps a
|
|
ON a.app_id = n.app_id
|
|
LEFT JOIN t
|
|
ON t.app_id = n.app_id
|
|
AND t.page_id = n.page_id
|
|
WHERE (n.app_id, n.page_id) NOT IN (
|
|
SELECT
|
|
app.get_core_app_id() AS app_id,
|
|
947 AS page_id
|
|
FROM DUAL
|
|
);
|
|
--
|
|
|