diff --git a/apex/f770/application/pages/page_00910.sql b/apex/f770/application/pages/page_00910.sql index 3c6bb15..50c26f1 100644 --- a/apex/f770/application/pages/page_00910.sql +++ b/apex/f770/application/pages/page_00910.sql @@ -21,8 +21,8 @@ wwv_flow_api.create_page( ,p_group_id=>wwv_flow_api.id(9240371448352386) ,p_page_template_options=>'#DEFAULT#' ,p_required_role=>wwv_flow_api.id(9556407311505078) -,p_last_updated_by=>'DEV' -,p_last_upd_yyyymmddhh24miss=>'20211223214227' +,p_last_updated_by=>'DEV_ID' +,p_last_upd_yyyymmddhh24miss=>'20211224202455' ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(9192009232668637) @@ -290,7 +290,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_SINGLE_CHECKBOX' ,p_heading=>'Hide in Menu' ,p_heading_alignment=>'CENTER' -,p_display_sequence=>120 +,p_display_sequence=>150 ,p_value_alignment=>'CENTER' ,p_attribute_01=>'N' ,p_attribute_02=>'Y' @@ -319,7 +319,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_SINGLE_CHECKBOX' ,p_heading=>'Clear Items' ,p_heading_alignment=>'CENTER' -,p_display_sequence=>130 +,p_display_sequence=>160 ,p_value_alignment=>'CENTER' ,p_attribute_01=>'N' ,p_attribute_02=>'Y' @@ -345,17 +345,13 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'PAGE_GROUP' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>true -,p_item_type=>'NATIVE_TEXTAREA' +,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Page Group' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>140 +,p_display_sequence=>120 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' -,p_is_required=>false -,p_max_length=>255 +,p_attribute_02=>'VALUE' +,p_attribute_05=>'PLAIN' ,p_enable_filter=>true ,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' ,p_filter_is_required=>false @@ -378,7 +374,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Css Class' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>150 +,p_display_sequence=>170 ,p_value_alignment=>'LEFT' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -404,7 +400,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Auth Scheme' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>160 +,p_display_sequence=>180 ,p_value_alignment=>'LEFT' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -422,22 +418,6 @@ wwv_flow_api.create_region_column( ,p_is_primary_key=>false ,p_include_in_export=>true ); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(9260595592429006) -,p_name=>'ALLOW_CHANGES' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'ALLOW_CHANGES' -,p_data_type=>'VARCHAR2' -,p_is_query_only=>true -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>200 -,p_attribute_01=>'Y' -,p_use_as_row_header=>false -,p_enable_sort_group=>true -,p_enable_control_break=>true -,p_is_primary_key=>false -,p_include_in_export=>false -); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(9260665969429007) ,p_name=>'APEX$ROW_ACTION' @@ -468,33 +448,6 @@ wwv_flow_api.create_region_column( ,p_is_primary_key=>false ,p_include_in_export=>false ); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(9261697069429017) -,p_name=>'SORT_ORDER' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'SORT_ORDER' -,p_data_type=>'VARCHAR2' -,p_is_query_only=>true -,p_item_type=>'NATIVE_DISPLAY_ONLY' -,p_heading=>'SORT_ORDER' -,p_heading_alignment=>'LEFT' -,p_display_sequence=>210 -,p_value_alignment=>'LEFT' -,p_attribute_02=>'VALUE' -,p_attribute_05=>'PLAIN' -,p_enable_filter=>true -,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' -,p_filter_is_required=>false -,p_filter_text_case=>'MIXED' -,p_filter_exact_match=>true -,p_filter_lov_type=>'DISTINCT' -,p_use_as_row_header=>false -,p_enable_sort_group=>true -,p_enable_control_break=>true -,p_enable_hide=>true -,p_is_primary_key=>false -,p_include_in_export=>false -); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(9262032305429021) ,p_name=>'PAGE_URL' @@ -503,7 +456,7 @@ wwv_flow_api.create_region_column( ,p_data_type=>'VARCHAR2' ,p_is_query_only=>true ,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>220 +,p_display_sequence=>140 ,p_attribute_01=>'Y' ,p_filter_is_required=>false ,p_use_as_row_header=>false @@ -512,21 +465,39 @@ wwv_flow_api.create_region_column( ,p_include_in_export=>false ); wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(9614758870237533) -,p_name=>'GROUP#' + p_id=>wwv_flow_api.id(10245325096410342) +,p_name=>'ALLOW_CHANGES' ,p_source_type=>'DB_COLUMN' -,p_source_expression=>'GROUP#' -,p_data_type=>'NUMBER' +,p_source_expression=>'ALLOW_CHANGES' +,p_data_type=>'VARCHAR2' ,p_is_query_only=>true -,p_item_type=>'NATIVE_NUMBER_FIELD' -,p_heading=>'Group#' -,p_heading_alignment=>'RIGHT' -,p_display_sequence=>230 -,p_value_alignment=>'RIGHT' -,p_attribute_03=>'right' -,p_is_required=>false +,p_item_type=>'NATIVE_HIDDEN' +,p_display_sequence=>190 +,p_attribute_01=>'Y' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_is_primary_key=>false +,p_include_in_export=>false +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(10245444031410343) +,p_name=>'SORT_ORDER' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'SORT_ORDER' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_DISPLAY_ONLY' +,p_heading=>'Sort Order' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>200 +,p_value_alignment=>'LEFT' +,p_attribute_02=>'VALUE' +,p_attribute_05=>'PLAIN' ,p_enable_filter=>true +,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' ,p_filter_is_required=>false +,p_filter_text_case=>'MIXED' ,p_filter_lov_type=>'NONE' ,p_use_as_row_header=>false ,p_enable_sort_group=>true @@ -581,6 +552,25 @@ wwv_flow_api.create_ig_report_view( ,p_srv_only_display_columns=>true ,p_edit_mode=>false ); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(2414095157086) +,p_view_id=>wwv_flow_api.id(9266000528438793) +,p_display_seq=>23 +,p_column_id=>wwv_flow_api.id(10245325096410342) +,p_is_visible=>true +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(3864884157089) +,p_view_id=>wwv_flow_api.id(9266000528438793) +,p_display_seq=>14 +,p_column_id=>wwv_flow_api.id(10245444031410343) +,p_is_visible=>false +,p_is_frozen=>false +,p_sort_order=>1 +,p_sort_direction=>'ASC' +,p_sort_nulls=>'LAST' +); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(9266572449438797) ,p_view_id=>wwv_flow_api.id(9266000528438793) @@ -671,7 +661,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(9275579147438822) ,p_view_id=>wwv_flow_api.id(9266000528438793) -,p_display_seq=>12 +,p_display_seq=>11 ,p_column_id=>wwv_flow_api.id(9193367637668650) ,p_is_visible=>false ,p_is_frozen=>false @@ -697,14 +687,6 @@ wwv_flow_api.create_ig_report_column( ,p_is_frozen=>false ,p_width=>223 ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(9280967303438836) -,p_view_id=>wwv_flow_api.id(9266000528438793) -,p_display_seq=>17 -,p_column_id=>wwv_flow_api.id(9260595592429006) -,p_is_visible=>true -,p_is_frozen=>false -); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(9283483209443170) ,p_view_id=>wwv_flow_api.id(9266000528438793) @@ -721,17 +703,6 @@ wwv_flow_api.create_ig_report_column( ,p_is_visible=>true ,p_is_frozen=>false ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(9351843409293730) -,p_view_id=>wwv_flow_api.id(9266000528438793) -,p_display_seq=>16 -,p_column_id=>wwv_flow_api.id(9261697069429017) -,p_is_visible=>false -,p_is_frozen=>false -,p_sort_order=>1 -,p_sort_direction=>'ASC' -,p_sort_nulls=>'LAST' -); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(9396282696456439) ,p_view_id=>wwv_flow_api.id(9266000528438793) @@ -740,18 +711,6 @@ wwv_flow_api.create_ig_report_column( ,p_is_visible=>true ,p_is_frozen=>false ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(9677328618706358) -,p_view_id=>wwv_flow_api.id(9266000528438793) -,p_display_seq=>19 -,p_column_id=>wwv_flow_api.id(9614758870237533) -,p_is_visible=>false -,p_is_frozen=>false -,p_break_order=>2.5 -,p_break_is_enabled=>true -,p_break_sort_direction=>'ASC' -,p_break_sort_nulls=>'LAST' -); wwv_flow_api.create_page_button( p_id=>wwv_flow_api.id(10238277616352483) ,p_button_sequence=>10 diff --git a/apex/f770/application/shared_components/navigation/lists/nav_top.sql b/apex/f770/application/shared_components/navigation/lists/nav_top.sql index 017da20..b3dcdeb 100644 --- a/apex/f770/application/shared_components/navigation/lists/nav_top.sql +++ b/apex/f770/application/shared_components/navigation/lists/nav_top.sql @@ -35,8 +35,7 @@ wwv_flow_api.create_list( ' attribute09,', ' attribute10', 'FROM nav_top', -'ORDER BY group#, sort_order NULLS LAST;', -'')) +'ORDER BY page_group, sort_order;')) ,p_list_status=>'PUBLIC' ); wwv_flow_api.component_end; diff --git a/views/nav_overview.sql b/views/nav_overview.sql index 03c9029..d8da655 100644 --- a/views/nav_overview.sql +++ b/views/nav_overview.sql @@ -8,9 +8,8 @@ WITH t AS ( p.page_group, p.authorization_scheme, p.page_css_classes, - LEVEL - 1 AS depth, - SYS_CONNECT_BY_PATH(NVL(TO_CHAR(n.order#), 'Z') || '.' || TO_CHAR(n.page_id), '/') AS order#, - CONNECT_BY_ROOT NVL(n.order#, FLOOR(n.page_id / 10)) AS page_root + LEVEL - 1 AS depth, + CONNECT_BY_ROOT NVL(n.order#, n.page_id) AS page_root FROM navigation n LEFT JOIN apex_application_pages p ON p.application_id = n.app_id @@ -37,15 +36,15 @@ SELECT n.page_id, n.parent_id, n.order#, - -- - COALESCE(t.page_group, (SELECT page_group FROM t WHERE t.page_id = n.parent_id)) AS page_group, - -- - t.page_root AS group#, - -- + t.page_root || ' ' || COALESCE(t.page_group, (SELECT page_group FROM t WHERE t.page_id = n.parent_id)) AS page_group, t.page_alias, - REPLACE(LTRIM(RPAD('-', t.depth * 4), '-'), ' ', '&' || 'nbsp; ') || app.get_page_name(in_name => t.page_name) AS page_name, + -- + CASE WHEN r.page_id IS NULL + THEN REPLACE(LTRIM(RPAD('-', t.depth * 4), '-'), ' ', '&' || 'nbsp; ') || app.get_page_name(in_name => t.page_name) + END AS page_name, + -- t.page_title, - t.page_css_classes AS css_class, + t.page_css_classes AS css_class, -- n.is_hidden, n.is_reset, @@ -59,8 +58,8 @@ SELECT THEN app.get_page_link(n.page_id, in_session_id => CASE WHEN n.page_id = 9999 THEN 0 END) END AS page_url, -- - 'UD' AS allow_changes, -- U = update, D = delete - t.order# AS sort_order + 'UD' AS allow_changes, -- U = update, D = delete + t.page_root || '.' || t.depth || '.' || NVL(n.order#, n.page_id) AS sort_order FROM navigation n LEFT JOIN t ON t.page_id = n.page_id @@ -82,10 +81,7 @@ SELECT n.page_id, n.parent_id, n.order#, - -- - n.page_group, - COALESCE(n.order#, FLOOR(t.page_root / 10)) AS group#, - -- + t.page_root || ' ' || n.page_group AS page_group, n.page_alias, CASE WHEN n.parent_id IS NOT NULL THEN REPLACE(LTRIM(RPAD('-', 4), '-'), ' ', '&' || 'nbsp; ') END || app.get_page_name(in_name => n.page_name) AS page_name, n.page_title, @@ -99,9 +95,9 @@ SELECT ELSE n.auth_scheme END AS auth_scheme, -- - app.get_page_link(n.page_id) AS page_url, - NULL AS allow_changes, -- no changes allowed - TO_CHAR(t.order#) || '/Z.' || TO_CHAR(n.page_id) AS sort_order + app.get_page_link(n.page_id) AS page_url, + NULL AS allow_changes, -- no changes allowed + t.page_root || '.' || (t.depth + 1) || '.' || NVL(n.order#, n.page_id) AS sort_order FROM nav_pages_to_add n LEFT JOIN t ON t.page_id = n.parent_id; @@ -114,8 +110,7 @@ COMMENT ON COLUMN nav_overview.app_id IS 'Application id'; COMMENT ON COLUMN nav_overview.page_id IS 'Page id'; COMMENT ON COLUMN nav_overview.parent_id IS 'Parent page id to build a hierarchy, adjustable by the user/admin'; COMMENT ON COLUMN nav_overview.order# IS 'Order of the siblings, adjustable by the user/admin'; -COMMENT ON COLUMN nav_overview.page_group IS 'Page group from APEX page specification'; -COMMENT ON COLUMN nav_overview.group# IS 'Group number derived as (page_id / 10) if order# is empty'; +COMMENT ON COLUMN nav_overview.page_group IS 'Page group from APEX page specification; sorted'; COMMENT ON COLUMN nav_overview.page_alias IS 'Page alis from APEX page specification'; COMMENT ON COLUMN nav_overview.page_name IS 'Page name from APEX page specification'; COMMENT ON COLUMN nav_overview.page_title IS 'Page title from APEX page specification'; diff --git a/views/nav_pages_to_add.sql b/views/nav_pages_to_add.sql index 0225d9d..a6648d4 100644 --- a/views/nav_pages_to_add.sql +++ b/views/nav_pages_to_add.sql @@ -1,12 +1,37 @@ CREATE OR REPLACE VIEW nav_pages_to_add AS +WITH g AS ( + SELECT + p.page_group, + n.page_id, + n.parent_id, + n.order# + FROM navigation n + JOIN apex_application_pages p + ON p.application_id = n.app_id + AND p.page_id = n.page_id + WHERE n.app_id = app.get_app_id() +) SELECT - p.application_id AS app_id, + p.application_id AS app_id, p.page_id, - g.parent_id, + -- + ( + SELECT MIN(g.parent_id) + FROM g + WHERE g.page_group = p.page_group + ) AS parent_id, + -- p.page_alias, p.page_name, p.page_title, - NULL AS order#, + -- + ( + SELECT MAX(g.order#) + FROM g + WHERE g.page_group = p.page_group + AND g.page_id < p.page_id + ) AS order#, + -- p.page_css_classes AS css_class, -- 'Y' AS is_hidden, -- hide page on default @@ -19,17 +44,5 @@ FROM apex_application_pages p LEFT JOIN navigation n ON n.app_id = p.application_id AND n.page_id = p.page_id -LEFT JOIN ( - -- find parent in the same group - SELECT - p.page_group, - NVL(MIN(n.parent_id), MAX(n.page_id)) AS parent_id - FROM navigation n - JOIN apex_application_pages p - ON p.application_id = n.app_id - AND p.page_id = n.page_id - GROUP BY p.page_group -) g - ON g.page_group = p.page_group WHERE p.application_id = app.get_app_id() AND n.page_id IS NULL; diff --git a/views/nav_top.sql b/views/nav_top.sql index 960695e..7e5510c 100644 --- a/views/nav_top.sql +++ b/views/nav_top.sql @@ -66,7 +66,7 @@ SELECT NULL AS attribute09, NULL AS attribute10, -- - n.group#, + n.page_group, n.sort_order FROM nav_overview n CROSS JOIN curr @@ -108,5 +108,5 @@ SELECT attribute09, attribute10 FROM nav_top -ORDER BY group#, sort_order NULLS LAST; +ORDER BY page_group, sort_order;