diff --git a/packages/app.sql b/packages/app.sql index df4d603..f44e080 100644 --- a/packages/app.sql +++ b/packages/app.sql @@ -296,8 +296,9 @@ CREATE OR REPLACE PACKAGE BODY app AS AS PRAGMA AUTONOMOUS_TRANSACTION; -- - v_is_active users.is_active%TYPE; + v_app_id apps.app_id%TYPE; v_user_login users.user_login%TYPE; + v_is_active users.is_active%TYPE; rec sessions%ROWTYPE; BEGIN --app.log_module(); @@ -316,48 +317,33 @@ CREATE OR REPLACE PACKAGE BODY app AS RETURN; END IF; - -- check app availability - IF NOT app.is_developer() THEN - BEGIN - SELECT a.is_active INTO v_is_active - FROM apps a - WHERE a.app_id = rec.app_id - AND a.is_active = 'Y'; - EXCEPTION - WHEN NO_DATA_FOUND THEN - app.raise_error('APPLICATION_OFFLINE'); - END; - ELSE - -- create app record if developers login - BEGIN - SELECT a.is_active INTO v_is_active - FROM apps a - WHERE a.app_id = rec.app_id; - EXCEPTION - WHEN NO_DATA_FOUND THEN - app.log_warning('CREATING_APP', rec.app_id); - -- - INSERT INTO apps (app_id, app_name, is_active, updated_by, updated_at) - SELECT - a.application_id, - a.application_name, - 'Y', - rec.user_id, - rec.updated_at - FROM apex_applications a - WHERE a.application_id = rec.app_id; + -- create app record if developers login + BEGIN + SELECT a.app_id INTO v_app_id + FROM apps a + WHERE a.app_id = rec.app_id; + EXCEPTION + WHEN NO_DATA_FOUND THEN + app.log_warning('CREATING_APP', rec.app_id); + -- + INSERT INTO apps (app_id, updated_by, updated_at) + SELECT + a.application_id, + rec.user_id, + rec.updated_at + FROM apex_applications a + WHERE a.application_id = rec.app_id; - -- also add first pages into Navigation table - app_actions.nav_autoupdate(); - -- - UPDATE navigation n - SET n.order# = CASE - WHEN n.page_id = 0 THEN 599 - ELSE TO_NUMBER(SUBSTR(TO_CHAR(n.page_id), 1, 3)) - END - WHERE n.app_id = rec.app_id; - END; - END IF; + -- also add first pages into Navigation table + app_actions.nav_autoupdate(); + -- + UPDATE navigation n + SET n.order# = CASE + WHEN n.page_id = 0 THEN 599 + ELSE TO_NUMBER(SUBSTR(TO_CHAR(n.page_id), 1, 3)) + END + WHERE n.app_id = rec.app_id; + END; -- adjust user_id in APEX, init session DBMS_SESSION.CLEAR_IDENTIFIER(); diff --git a/tables/apps.sql b/tables/apps.sql index 094fbf7..cf2420e 100644 --- a/tables/apps.sql +++ b/tables/apps.sql @@ -1,11 +1,8 @@ --DROP TABLE apps CASCADE CONSTRAINTS; CREATE TABLE apps ( app_id NUMBER(4) CONSTRAINT nn_apps_app_id NOT NULL, - app_name VARCHAR2(32), -- description_ VARCHAR2(1000), - message VARCHAR2(256), - is_active CHAR(1), is_visible CHAR(1), -- updated_by VARCHAR2(30), @@ -14,9 +11,6 @@ CREATE TABLE apps ( CONSTRAINT pk_apps PRIMARY KEY (app_id), -- - CONSTRAINT ch_apps_is_active - CHECK (is_active = 'Y' OR is_active IS NULL), - -- CONSTRAINT ch_apps_is_visible CHECK (is_visible = 'Y' OR is_visible IS NULL) ) @@ -25,9 +19,6 @@ STORAGE (BUFFER_POOL KEEP); COMMENT ON TABLE apps IS '[CORE] List of apps'; -- COMMENT ON COLUMN apps.app_id IS 'APEX application ID'; -COMMENT ON COLUMN apps.app_name IS 'Application name'; -COMMENT ON COLUMN apps.description_ IS 'Description'; -COMMENT ON COLUMN apps.message IS 'Announcement to users when taking app for maintenance'; -COMMENT ON COLUMN apps.is_active IS 'Flag to deny access to app to users (not developers)'; +COMMENT ON COLUMN apps.description_ IS 'Description, until I know how to edit documentation_banner'; COMMENT ON COLUMN apps.is_visible IS 'Flag to show app in list of apps even if user dont have role there'; diff --git a/views/nav_overview.sql b/views/nav_overview.sql index a567e3d..bed4a4f 100644 --- a/views/nav_overview.sql +++ b/views/nav_overview.sql @@ -31,7 +31,6 @@ t AS ( FROM navigation n JOIN apps a ON a.app_id = n.app_id - AND a.is_active = 'Y' CROSS JOIN x LEFT JOIN apex_application_pages p ON p.application_id = n.app_id @@ -119,7 +118,6 @@ SELECT FROM navigation n JOIN apps a ON a.app_id = n.app_id - AND a.is_active = 'Y' CROSS JOIN x LEFT JOIN t ON t.app_id = n.app_id @@ -192,7 +190,6 @@ SELECT FROM nav_pages_to_add n JOIN apps a ON a.app_id = n.app_id - AND a.is_active = 'Y' CROSS JOIN x LEFT JOIN t ON t.app_id = n.app_id