Fix ordering of sub entries
This commit is contained in:
parent
4bfcd2ea3e
commit
a7420a6ff4
@ -9,41 +9,53 @@ WITH x AS (
|
|||||||
),
|
),
|
||||||
t AS (
|
t AS (
|
||||||
SELECT
|
SELECT
|
||||||
n.app_id,
|
ROWNUM AS r#, -- to keep hierarchy sorted
|
||||||
n.page_id,
|
t.*
|
||||||
--
|
FROM (
|
||||||
REPLACE(p.page_name, '&' || 'APP_NAME.', a.application_name) AS page_name,
|
SELECT
|
||||||
REPLACE(p.page_title, '&' || 'APP_NAME.', a.application_name) AS page_title,
|
n.app_id,
|
||||||
--
|
n.page_id,
|
||||||
p.page_alias,
|
n.order#,
|
||||||
p.page_group,
|
--
|
||||||
p.authorization_scheme,
|
REPLACE(p.page_name, '&' || 'APP_NAME.', a.application_name) AS page_name,
|
||||||
p.page_css_classes,
|
REPLACE(p.page_title, '&' || 'APP_NAME.', a.application_name) AS page_title,
|
||||||
p.page_mode,
|
--
|
||||||
p.page_template,
|
p.page_alias,
|
||||||
--
|
p.page_group,
|
||||||
LEVEL - 1 AS depth,
|
p.authorization_scheme,
|
||||||
CONNECT_BY_ROOT NVL(n.order#, n.page_id) AS page_root
|
p.page_css_classes,
|
||||||
FROM navigation n
|
p.page_mode,
|
||||||
JOIN apps a
|
p.page_template,
|
||||||
ON a.app_id = n.app_id
|
--
|
||||||
AND a.is_active = 'Y'
|
LEVEL - 1 AS depth,
|
||||||
CROSS JOIN x
|
CONNECT_BY_ROOT NVL(n.order#, n.page_id) AS page_root
|
||||||
LEFT JOIN apex_application_pages p
|
FROM navigation n
|
||||||
ON p.application_id = n.app_id
|
JOIN apps a
|
||||||
AND p.page_id = n.page_id
|
ON a.app_id = n.app_id
|
||||||
LEFT JOIN apex_applications a
|
AND a.is_active = 'Y'
|
||||||
ON a.application_id = p.application_id
|
CROSS JOIN x
|
||||||
CONNECT BY n.parent_id = PRIOR n.page_id
|
LEFT JOIN apex_application_pages p
|
||||||
AND n.app_id = PRIOR n.app_id
|
ON p.application_id = n.app_id
|
||||||
START WITH n.parent_id IS NULL
|
AND p.page_id = n.page_id
|
||||||
|
LEFT JOIN apex_applications a
|
||||||
|
ON a.application_id = p.application_id
|
||||||
|
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
|
SELECT
|
||||||
n.app_id,
|
n.app_id,
|
||||||
n.page_id,
|
n.page_id,
|
||||||
n.parent_id,
|
n.parent_id,
|
||||||
n.order#,
|
n.order#,
|
||||||
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_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.page_alias,
|
||||||
--
|
--
|
||||||
CASE WHEN r.page_id IS NULL
|
CASE WHEN r.page_id IS NULL
|
||||||
@ -77,9 +89,9 @@ SELECT
|
|||||||
)
|
)
|
||||||
END AS page_url,
|
END AS page_url,
|
||||||
--
|
--
|
||||||
'UD' AS allow_changes, -- U = update, D = delete
|
'UD' AS allow_changes, -- U = update, D = delete
|
||||||
--
|
--
|
||||||
t.page_root || '.' || t.depth || '.' || NVL(n.order#, n.page_id) AS sort_order,
|
t.page_root || '.' || TO_CHAR(10000 + t.r#) || '.' || NVL(t.order#, t.page_id) AS sort_order,
|
||||||
--
|
--
|
||||||
CASE
|
CASE
|
||||||
WHEN r.page_id IS NOT NULL
|
WHEN r.page_id IS NOT NULL
|
||||||
@ -97,7 +109,7 @@ JOIN apps a
|
|||||||
ON a.app_id = n.app_id
|
ON a.app_id = n.app_id
|
||||||
AND a.is_active = 'Y'
|
AND a.is_active = 'Y'
|
||||||
CROSS JOIN x
|
CROSS JOIN x
|
||||||
LEFT JOIN t
|
LEFT JOIN t ---------- LEFT JOIN ???
|
||||||
ON t.app_id = n.app_id
|
ON t.app_id = n.app_id
|
||||||
AND t.page_id = n.page_id
|
AND t.page_id = n.page_id
|
||||||
LEFT JOIN nav_pages_to_remove r
|
LEFT JOIN nav_pages_to_remove r
|
||||||
@ -147,9 +159,9 @@ SELECT
|
|||||||
in_app_id => n.app_id
|
in_app_id => n.app_id
|
||||||
) AS page_url,
|
) AS page_url,
|
||||||
--
|
--
|
||||||
NULL AS allow_changes, -- no changes allowed
|
NULL AS allow_changes, -- no changes allowed
|
||||||
--
|
--
|
||||||
NVL(t.page_root, n.page_id) || '.' || (t.depth + 1) || '.' || NVL(n.order#, n.page_id) AS sort_order,
|
NVL(t.page_root, n.page_id) || '.' || TO_CHAR(10000 + t.r#) || '.' || NVL(n.order#, n.page_id) AS sort_order,
|
||||||
--
|
--
|
||||||
app.get_icon('fa-plus-square', 'Create record in Navigation table') AS action,
|
app.get_icon('fa-plus-square', 'Create record in Navigation table') AS action,
|
||||||
--
|
--
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user