Fix missing navigation on new apps

This commit is contained in:
Jan Kvetina 2022-01-02 16:33:25 +01:00
parent 3f93cd32fd
commit 6ed15e0095
3 changed files with 41 additions and 11 deletions

View File

@ -343,6 +343,17 @@ CREATE OR REPLACE PACKAGE app AS
--
-- Returns parent page ID for requested or current page
--
FUNCTION get_page_parent (
in_page_id navigation.page_id%TYPE := NULL,
in_app_id navigation.app_id%TYPE := NULL
)
RETURN navigation.page_id%TYPE;
--
-- Get page name from APEX dictionary
--

View File

@ -657,6 +657,27 @@ CREATE OR REPLACE PACKAGE BODY app AS
FUNCTION get_page_parent (
in_page_id navigation.page_id%TYPE := NULL,
in_app_id navigation.app_id%TYPE := NULL
)
RETURN navigation.page_id%TYPE
AS
out_id apex_application_pages.page_id%TYPE;
BEGIN
SELECT n.parent_id INTO out_id
FROM navigation n
WHERE n.app_id = COALESCE(in_app_id, app.get_app_id())
AND n.page_id = COALESCE(in_page_id, app.get_page_id());
--
RETURN out_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
FUNCTION get_page_name (
in_page_id navigation.page_id%TYPE := NULL,
in_app_id navigation.app_id%TYPE := NULL,

View File

@ -1,17 +1,15 @@
CREATE OR REPLACE VIEW nav_top AS
WITH curr AS (
SELECT
n.app_id,
MAX(n.page_id) AS page_id,
MAX(n.parent_id) AS parent_id,
app.get_page_root(MAX(n.page_id)) AS page_root,
app.get_page_group(MAX(n.page_id)) AS page_group,
app.get_user_id() AS user_id,
app.get_user_name() AS user_name
FROM navigation n
WHERE n.app_id = app.get_app_id()
AND n.page_id IN (app.get_page_id(), 0) -- always return 1 row
GROUP BY n.app_id
app.get_app_id() AS app_id,
app.get_page_id() AS page_id,
app.get_page_parent() AS parent_id,
app.get_page_root() AS page_root,
app.get_page_group() AS page_group,
app.get_user_id() AS user_id,
app.get_user_name() AS user_name
FROM users u
WHERE u.user_id = app.get_user_id()
)
SELECT
CASE WHEN n.parent_id IS NULL THEN 1 ELSE 2 END AS lvl,