More transparent system for page order
This commit is contained in:
parent
6f99e15b3f
commit
35a98478bc
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user