Add is_private to settings, move to app package
This commit is contained in:
parent
c318833b4d
commit
84ed895a92
@ -23,7 +23,7 @@ wwv_flow_api.create_page(
|
|||||||
,p_page_template_options=>'#DEFAULT#'
|
,p_page_template_options=>'#DEFAULT#'
|
||||||
,p_required_role=>wwv_flow_api.id(9823062898204869)
|
,p_required_role=>wwv_flow_api.id(9823062898204869)
|
||||||
,p_last_updated_by=>'DEV'
|
,p_last_updated_by=>'DEV'
|
||||||
,p_last_upd_yyyymmddhh24miss=>'20220129093705'
|
,p_last_upd_yyyymmddhh24miss=>'20220205130844'
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_page_plug(
|
wwv_flow_api.create_page_plug(
|
||||||
p_id=>wwv_flow_api.id(11853608143169127)
|
p_id=>wwv_flow_api.id(11853608143169127)
|
||||||
@ -35,7 +35,7 @@ wwv_flow_api.create_page_plug(
|
|||||||
,p_include_in_reg_disp_sel_yn=>'Y'
|
,p_include_in_reg_disp_sel_yn=>'Y'
|
||||||
,p_plug_display_point=>'BODY'
|
,p_plug_display_point=>'BODY'
|
||||||
,p_plug_source=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
,p_plug_source=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||||
'Settings for the application available to developers through generated package.&P970_USECASE!RAW.',
|
'Settings for the application available to developers through generated package. &P970_USECASE!RAW.',
|
||||||
''))
|
''))
|
||||||
,p_plug_query_options=>'DERIVED_REPORT_COLUMNS'
|
,p_plug_query_options=>'DERIVED_REPORT_COLUMNS'
|
||||||
,p_attribute_01=>'N'
|
,p_attribute_01=>'N'
|
||||||
@ -163,11 +163,11 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_source_type=>'DB_COLUMN'
|
,p_source_type=>'DB_COLUMN'
|
||||||
,p_source_expression=>'DESCRIPTION_'
|
,p_source_expression=>'DESCRIPTION_'
|
||||||
,p_data_type=>'VARCHAR2'
|
,p_data_type=>'VARCHAR2'
|
||||||
,p_is_query_only=>true
|
,p_is_query_only=>false
|
||||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||||
,p_heading=>'Description'
|
,p_heading=>'Description'
|
||||||
,p_heading_alignment=>'LEFT'
|
,p_heading_alignment=>'LEFT'
|
||||||
,p_display_sequence=>140
|
,p_display_sequence=>150
|
||||||
,p_value_alignment=>'LEFT'
|
,p_value_alignment=>'LEFT'
|
||||||
,p_attribute_05=>'BOTH'
|
,p_attribute_05=>'BOTH'
|
||||||
,p_is_required=>false
|
,p_is_required=>false
|
||||||
@ -181,6 +181,7 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_enable_sort_group=>false
|
,p_enable_sort_group=>false
|
||||||
,p_enable_hide=>true
|
,p_enable_hide=>true
|
||||||
,p_is_primary_key=>false
|
,p_is_primary_key=>false
|
||||||
|
,p_duplicate_value=>true
|
||||||
,p_include_in_export=>true
|
,p_include_in_export=>true
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_region_column(
|
wwv_flow_api.create_region_column(
|
||||||
@ -255,7 +256,7 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||||
,p_heading=>'Updated By'
|
,p_heading=>'Updated By'
|
||||||
,p_heading_alignment=>'LEFT'
|
,p_heading_alignment=>'LEFT'
|
||||||
,p_display_sequence=>150
|
,p_display_sequence=>160
|
||||||
,p_value_alignment=>'LEFT'
|
,p_value_alignment=>'LEFT'
|
||||||
,p_attribute_02=>'VALUE'
|
,p_attribute_02=>'VALUE'
|
||||||
,p_attribute_05=>'PLAIN'
|
,p_attribute_05=>'PLAIN'
|
||||||
@ -282,7 +283,7 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||||
,p_heading=>'Updated At'
|
,p_heading=>'Updated At'
|
||||||
,p_heading_alignment=>'LEFT'
|
,p_heading_alignment=>'LEFT'
|
||||||
,p_display_sequence=>160
|
,p_display_sequence=>170
|
||||||
,p_value_alignment=>'LEFT'
|
,p_value_alignment=>'LEFT'
|
||||||
,p_attribute_02=>'VALUE'
|
,p_attribute_02=>'VALUE'
|
||||||
,p_attribute_05=>'PLAIN'
|
,p_attribute_05=>'PLAIN'
|
||||||
@ -452,7 +453,7 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||||
,p_heading=>'Procedures'
|
,p_heading=>'Procedures'
|
||||||
,p_heading_alignment=>'RIGHT'
|
,p_heading_alignment=>'RIGHT'
|
||||||
,p_display_sequence=>120
|
,p_display_sequence=>130
|
||||||
,p_value_alignment=>'RIGHT'
|
,p_value_alignment=>'RIGHT'
|
||||||
,p_group_id=>wwv_flow_api.id(12335175952960920)
|
,p_group_id=>wwv_flow_api.id(12335175952960920)
|
||||||
,p_use_group_for=>'BOTH'
|
,p_use_group_for=>'BOTH'
|
||||||
@ -478,7 +479,7 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||||
,p_heading=>'Views'
|
,p_heading=>'Views'
|
||||||
,p_heading_alignment=>'RIGHT'
|
,p_heading_alignment=>'RIGHT'
|
||||||
,p_display_sequence=>130
|
,p_display_sequence=>140
|
||||||
,p_value_alignment=>'RIGHT'
|
,p_value_alignment=>'RIGHT'
|
||||||
,p_group_id=>wwv_flow_api.id(12335175952960920)
|
,p_group_id=>wwv_flow_api.id(12335175952960920)
|
||||||
,p_use_group_for=>'BOTH'
|
,p_use_group_for=>'BOTH'
|
||||||
@ -494,6 +495,35 @@ wwv_flow_api.create_region_column(
|
|||||||
,p_is_primary_key=>false
|
,p_is_primary_key=>false
|
||||||
,p_include_in_export=>true
|
,p_include_in_export=>true
|
||||||
);
|
);
|
||||||
|
wwv_flow_api.create_region_column(
|
||||||
|
p_id=>wwv_flow_api.id(22942157447325326)
|
||||||
|
,p_name=>'IS_PRIVATE'
|
||||||
|
,p_source_type=>'DB_COLUMN'
|
||||||
|
,p_source_expression=>'IS_PRIVATE'
|
||||||
|
,p_data_type=>'VARCHAR2'
|
||||||
|
,p_is_query_only=>false
|
||||||
|
,p_item_type=>'NATIVE_SINGLE_CHECKBOX'
|
||||||
|
,p_heading=>'Private'
|
||||||
|
,p_heading_alignment=>'CENTER'
|
||||||
|
,p_display_sequence=>120
|
||||||
|
,p_value_alignment=>'CENTER'
|
||||||
|
,p_attribute_01=>'Y'
|
||||||
|
,p_is_required=>false
|
||||||
|
,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_duplicate_value=>true
|
||||||
|
,p_include_in_export=>true
|
||||||
|
,p_security_scheme=>wwv_flow_api.id(9556407311505078)
|
||||||
|
);
|
||||||
wwv_flow_api.create_interactive_grid(
|
wwv_flow_api.create_interactive_grid(
|
||||||
p_id=>wwv_flow_api.id(11853821618169129)
|
p_id=>wwv_flow_api.id(11853821618169129)
|
||||||
,p_internal_uid=>11853821618169129
|
,p_internal_uid=>11853821618169129
|
||||||
@ -548,7 +578,7 @@ wwv_flow_api.create_ig_report_view(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(28500165388036)
|
p_id=>wwv_flow_api.id(28500165388036)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>4
|
,p_display_seq=>3
|
||||||
,p_column_id=>wwv_flow_api.id(12112180628376320)
|
,p_column_id=>wwv_flow_api.id(12112180628376320)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -560,11 +590,11 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(29930996388039)
|
p_id=>wwv_flow_api.id(29930996388039)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>3
|
,p_display_seq=>2
|
||||||
,p_column_id=>wwv_flow_api.id(12112213333376321)
|
,p_column_id=>wwv_flow_api.id(12112213333376321)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
,p_width=>90
|
,p_width=>80
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12014468263679422)
|
p_id=>wwv_flow_api.id(12014468263679422)
|
||||||
@ -582,7 +612,7 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12015320331679424)
|
p_id=>wwv_flow_api.id(12015320331679424)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>5
|
,p_display_seq=>4
|
||||||
,p_column_id=>wwv_flow_api.id(11854302395169134)
|
,p_column_id=>wwv_flow_api.id(11854302395169134)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -599,25 +629,25 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12017110360679428)
|
p_id=>wwv_flow_api.id(12017110360679428)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>6
|
,p_display_seq=>5
|
||||||
,p_column_id=>wwv_flow_api.id(11854519035169136)
|
,p_column_id=>wwv_flow_api.id(11854519035169136)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
,p_width=>90
|
,p_width=>80
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12018068358679430)
|
p_id=>wwv_flow_api.id(12018068358679430)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>7
|
,p_display_seq=>6
|
||||||
,p_column_id=>wwv_flow_api.id(11854640901169137)
|
,p_column_id=>wwv_flow_api.id(11854640901169137)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
,p_width=>90
|
,p_width=>80
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12018933623679432)
|
p_id=>wwv_flow_api.id(12018933623679432)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>12
|
,p_display_seq=>13
|
||||||
,p_column_id=>wwv_flow_api.id(11854730854169138)
|
,p_column_id=>wwv_flow_api.id(11854730854169138)
|
||||||
,p_is_visible=>false
|
,p_is_visible=>false
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -626,7 +656,7 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12019830036679434)
|
p_id=>wwv_flow_api.id(12019830036679434)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>13
|
,p_display_seq=>14
|
||||||
,p_column_id=>wwv_flow_api.id(11854883294169139)
|
,p_column_id=>wwv_flow_api.id(11854883294169139)
|
||||||
,p_is_visible=>false
|
,p_is_visible=>false
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -643,7 +673,7 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12104857120371283)
|
p_id=>wwv_flow_api.id(12104857120371283)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>8
|
,p_display_seq=>7
|
||||||
,p_column_id=>wwv_flow_api.id(11855718811169148)
|
,p_column_id=>wwv_flow_api.id(11855718811169148)
|
||||||
,p_is_visible=>false
|
,p_is_visible=>false
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -652,7 +682,7 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12105782280371287)
|
p_id=>wwv_flow_api.id(12105782280371287)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>9
|
,p_display_seq=>8
|
||||||
,p_column_id=>wwv_flow_api.id(11855803111169149)
|
,p_column_id=>wwv_flow_api.id(11855803111169149)
|
||||||
,p_is_visible=>false
|
,p_is_visible=>false
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
@ -669,20 +699,29 @@ wwv_flow_api.create_ig_report_column(
|
|||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12576610446394335)
|
p_id=>wwv_flow_api.id(12576610446394335)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>10
|
,p_display_seq=>9
|
||||||
,p_column_id=>wwv_flow_api.id(12335871532960927)
|
,p_column_id=>wwv_flow_api.id(12335871532960927)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
,p_width=>90
|
,p_width=>80
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_ig_report_column(
|
wwv_flow_api.create_ig_report_column(
|
||||||
p_id=>wwv_flow_api.id(12577576446394339)
|
p_id=>wwv_flow_api.id(12577576446394339)
|
||||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
,p_display_seq=>11
|
,p_display_seq=>10
|
||||||
,p_column_id=>wwv_flow_api.id(12335937642960928)
|
,p_column_id=>wwv_flow_api.id(12335937642960928)
|
||||||
,p_is_visible=>true
|
,p_is_visible=>true
|
||||||
,p_is_frozen=>false
|
,p_is_frozen=>false
|
||||||
,p_width=>90
|
,p_width=>80
|
||||||
|
);
|
||||||
|
wwv_flow_api.create_ig_report_column(
|
||||||
|
p_id=>wwv_flow_api.id(23102454673132420)
|
||||||
|
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||||
|
,p_display_seq=>11
|
||||||
|
,p_column_id=>wwv_flow_api.id(22942157447325326)
|
||||||
|
,p_is_visible=>true
|
||||||
|
,p_is_frozen=>false
|
||||||
|
,p_width=>80
|
||||||
);
|
);
|
||||||
wwv_flow_api.create_page_plug(
|
wwv_flow_api.create_page_plug(
|
||||||
p_id=>wwv_flow_api.id(12110948961376308)
|
p_id=>wwv_flow_api.id(12110948961376308)
|
||||||
@ -4487,7 +4526,7 @@ wwv_flow_api.create_page_process(
|
|||||||
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||||
'app.log_action(''SAVE_SETTINGS'');',
|
'app.log_action(''SAVE_SETTINGS'');',
|
||||||
'--',
|
'--',
|
||||||
'app_actions.set_setting (',
|
'app_actions.save_setting (',
|
||||||
' in_action => :APEX$ROW_STATUS,',
|
' in_action => :APEX$ROW_STATUS,',
|
||||||
' in_setting_name => :SETTING_NAME,',
|
' in_setting_name => :SETTING_NAME,',
|
||||||
' in_setting_name_old => :SETTING_NAME_OLD,',
|
' in_setting_name_old => :SETTING_NAME_OLD,',
|
||||||
@ -4495,6 +4534,7 @@ wwv_flow_api.create_page_process(
|
|||||||
' in_setting_group => :SETTING_GROUP,',
|
' in_setting_group => :SETTING_GROUP,',
|
||||||
' in_is_numeric => :IS_NUMERIC,',
|
' in_is_numeric => :IS_NUMERIC,',
|
||||||
' in_is_date => :IS_DATE,',
|
' in_is_date => :IS_DATE,',
|
||||||
|
' in_is_private => :IS_PRIVATE,',
|
||||||
' in_description => :DESCRIPTION_',
|
' in_description => :DESCRIPTION_',
|
||||||
');',
|
');',
|
||||||
'',
|
'',
|
||||||
|
|||||||
@ -1455,6 +1455,13 @@ CREATE OR REPLACE PACKAGE app AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Rebuild package containing function matching Settings table
|
||||||
|
--
|
||||||
|
PROCEDURE rebuild_settings;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3581,6 +3581,99 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE rebuild_settings
|
||||||
|
AS
|
||||||
|
q VARCHAR2(32767);
|
||||||
|
b VARCHAR2(32767);
|
||||||
|
BEGIN
|
||||||
|
app.log_module();
|
||||||
|
--
|
||||||
|
IF app.get_settings_package() IS NULL THEN
|
||||||
|
RETURN;
|
||||||
|
END IF;
|
||||||
|
--
|
||||||
|
app.refresh_user_source_views();
|
||||||
|
--
|
||||||
|
q := 'CREATE OR REPLACE PACKAGE ' || LOWER(app.get_settings_package()) || ' AS' || CHR(10);
|
||||||
|
b := 'CREATE OR REPLACE PACKAGE BODY ' || LOWER(app.get_settings_package()) || ' AS' || CHR(10);
|
||||||
|
--
|
||||||
|
FOR c IN (
|
||||||
|
SELECT DISTINCT
|
||||||
|
s.setting_name,
|
||||||
|
s.is_numeric,
|
||||||
|
s.is_date
|
||||||
|
FROM settings s
|
||||||
|
WHERE s.app_id = app.get_app_id()
|
||||||
|
AND s.setting_context IS NULL
|
||||||
|
AND s.is_private IS NULL
|
||||||
|
ORDER BY s.setting_name
|
||||||
|
) LOOP
|
||||||
|
-- create specification
|
||||||
|
q := q || CHR(10);
|
||||||
|
q := q || ' FUNCTION ' || LOWER(app.settings_prefix) || LOWER(c.setting_name) || ' (' || CHR(10);
|
||||||
|
q := q || ' in_context settings.setting_context%TYPE := NULL' || CHR(10);
|
||||||
|
q := q || ' )' || CHR(10);
|
||||||
|
q := q || ' RETURN ' || CASE
|
||||||
|
WHEN c.is_numeric = 'Y' THEN 'NUMBER'
|
||||||
|
WHEN c.is_date = 'Y' THEN 'DATE'
|
||||||
|
ELSE 'VARCHAR2' END || CHR(10);
|
||||||
|
q := q || ' RESULT_CACHE;' || CHR(10);
|
||||||
|
|
||||||
|
-- create package body
|
||||||
|
b := b || CHR(10);
|
||||||
|
b := b || ' FUNCTION ' || LOWER(app.settings_prefix) || LOWER(c.setting_name) || ' (' || CHR(10);
|
||||||
|
b := b || ' in_context settings.setting_context%TYPE := NULL' || CHR(10);
|
||||||
|
b := b || ' )' || CHR(10);
|
||||||
|
b := b || ' RETURN ' || CASE
|
||||||
|
WHEN c.is_numeric = 'Y' THEN 'NUMBER'
|
||||||
|
WHEN c.is_date = 'Y' THEN 'DATE'
|
||||||
|
ELSE 'VARCHAR2' END || CHR(10);
|
||||||
|
b := b || ' RESULT_CACHE AS' || CHR(10);
|
||||||
|
b := b || ' BEGIN' || CHR(10);
|
||||||
|
b := b || ' RETURN ' || CASE
|
||||||
|
WHEN c.is_numeric = 'Y' THEN 'TO_NUMBER('
|
||||||
|
WHEN c.is_date = 'Y' THEN 'app.get_date('
|
||||||
|
END || 'app.get_setting (' || CHR(10);
|
||||||
|
b := b || ' in_name => ''' || c.setting_name || ''',' || CHR(10);
|
||||||
|
b := b || ' in_context => in_context' || CHR(10);
|
||||||
|
b := b || ' ' || CASE
|
||||||
|
WHEN NVL(c.is_numeric, c.is_date) = 'Y' THEN ')'
|
||||||
|
END || ');' || CHR(10);
|
||||||
|
b := b || ' EXCEPTION' || CHR(10);
|
||||||
|
b := b || ' WHEN NO_DATA_FOUND THEN' || CHR(10);
|
||||||
|
b := b || ' RETURN NULL;' || CHR(10);
|
||||||
|
b := b || ' END;' || CHR(10);
|
||||||
|
END LOOP;
|
||||||
|
--
|
||||||
|
q := q || CHR(10) || 'END;';
|
||||||
|
b := b || CHR(10) || 'END;';
|
||||||
|
--
|
||||||
|
EXECUTE IMMEDIATE q;
|
||||||
|
EXECUTE IMMEDIATE b;
|
||||||
|
--
|
||||||
|
recompile (
|
||||||
|
in_name => app.get_settings_package(),
|
||||||
|
in_force => TRUE
|
||||||
|
);
|
||||||
|
--
|
||||||
|
/*
|
||||||
|
DBMS_RESULT_CACHE.INVALIDATE (
|
||||||
|
owner => app.schema_owner,
|
||||||
|
name => app_actions.settings_package
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
EXCEPTION
|
||||||
|
WHEN app.app_exception THEN
|
||||||
|
RAISE;
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
app.log_debug(q); -- trimmed
|
||||||
|
app.log_debug(b); -- trimmed
|
||||||
|
--
|
||||||
|
app.raise_error();
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -29,20 +29,6 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
-- for sending emails
|
|
||||||
smtp_from CONSTANT VARCHAR2(200) := '';
|
|
||||||
smtp_username CONSTANT VARCHAR2(50) := NULL;
|
|
||||||
smtp_password CONSTANT VARCHAR2(50) := NULL;
|
|
||||||
smtp_host CONSTANT VARCHAR2(50) := '';
|
|
||||||
smtp_port CONSTANT NUMBER(4) := 25;
|
|
||||||
smtp_timeout CONSTANT NUMBER(2) := 20;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- ### Help functions
|
-- ### Help functions
|
||||||
--
|
--
|
||||||
|
|
||||||
@ -196,7 +182,7 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
|||||||
--
|
--
|
||||||
-- Store/update settings
|
-- Store/update settings
|
||||||
--
|
--
|
||||||
PROCEDURE set_setting (
|
PROCEDURE save_setting (
|
||||||
in_action CHAR,
|
in_action CHAR,
|
||||||
in_setting_name_old settings.setting_name%TYPE,
|
in_setting_name_old settings.setting_name%TYPE,
|
||||||
in_setting_name settings.setting_name%TYPE,
|
in_setting_name settings.setting_name%TYPE,
|
||||||
@ -204,6 +190,7 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
|||||||
in_setting_value settings.setting_value%TYPE := NULL,
|
in_setting_value settings.setting_value%TYPE := NULL,
|
||||||
in_is_numeric settings.is_numeric%TYPE := NULL,
|
in_is_numeric settings.is_numeric%TYPE := NULL,
|
||||||
in_is_date settings.is_date%TYPE := NULL,
|
in_is_date settings.is_date%TYPE := NULL,
|
||||||
|
in_is_private settings.is_private%TYPE := NULL,
|
||||||
in_description settings.description_%TYPE := NULL
|
in_description settings.description_%TYPE := NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -267,13 +254,6 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Rebuild package containing function matching Settings table
|
|
||||||
--
|
|
||||||
PROCEDURE rebuild_settings;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Prepare pivot for Settings page
|
-- Prepare pivot for Settings page
|
||||||
--
|
--
|
||||||
|
|||||||
@ -412,7 +412,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE set_setting (
|
PROCEDURE save_setting (
|
||||||
in_action CHAR,
|
in_action CHAR,
|
||||||
in_setting_name_old settings.setting_name%TYPE,
|
in_setting_name_old settings.setting_name%TYPE,
|
||||||
in_setting_name settings.setting_name%TYPE,
|
in_setting_name settings.setting_name%TYPE,
|
||||||
@ -420,6 +420,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
|||||||
in_setting_value settings.setting_value%TYPE := NULL,
|
in_setting_value settings.setting_value%TYPE := NULL,
|
||||||
in_is_numeric settings.is_numeric%TYPE := NULL,
|
in_is_numeric settings.is_numeric%TYPE := NULL,
|
||||||
in_is_date settings.is_date%TYPE := NULL,
|
in_is_date settings.is_date%TYPE := NULL,
|
||||||
|
in_is_private settings.is_private%TYPE := NULL,
|
||||||
in_description settings.description_%TYPE := NULL
|
in_description settings.description_%TYPE := NULL
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
@ -432,7 +433,8 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
|||||||
'value', in_setting_value,
|
'value', in_setting_value,
|
||||||
'group', in_setting_group,
|
'group', in_setting_group,
|
||||||
'is_numeric', in_is_numeric,
|
'is_numeric', in_is_numeric,
|
||||||
'is_date', in_is_date
|
'is_date', in_is_date,
|
||||||
|
'is_private', in_is_private
|
||||||
);
|
);
|
||||||
--
|
--
|
||||||
rec.app_id := app.get_app_id();
|
rec.app_id := app.get_app_id();
|
||||||
@ -442,6 +444,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
|||||||
rec.setting_group := in_setting_group;
|
rec.setting_group := in_setting_group;
|
||||||
rec.is_numeric := in_is_numeric;
|
rec.is_numeric := in_is_numeric;
|
||||||
rec.is_date := in_is_date;
|
rec.is_date := in_is_date;
|
||||||
|
rec.is_private := in_is_private;
|
||||||
rec.description_ := in_description;
|
rec.description_ := in_description;
|
||||||
rec.updated_by := app.get_user_id();
|
rec.updated_by := app.get_user_id();
|
||||||
rec.updated_at := SYSDATE;
|
rec.updated_at := SYSDATE;
|
||||||
@ -644,98 +647,6 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE rebuild_settings
|
|
||||||
AS
|
|
||||||
q VARCHAR2(32767);
|
|
||||||
b VARCHAR2(32767);
|
|
||||||
BEGIN
|
|
||||||
app.log_module();
|
|
||||||
--
|
|
||||||
IF app.get_settings_package() IS NULL THEN
|
|
||||||
RETURN;
|
|
||||||
END IF;
|
|
||||||
--
|
|
||||||
app.refresh_user_source_views();
|
|
||||||
--
|
|
||||||
q := 'CREATE OR REPLACE PACKAGE ' || LOWER(app.get_settings_package()) || ' AS' || CHR(10);
|
|
||||||
b := 'CREATE OR REPLACE PACKAGE BODY ' || LOWER(app.get_settings_package()) || ' AS' || CHR(10);
|
|
||||||
--
|
|
||||||
FOR c IN (
|
|
||||||
SELECT DISTINCT
|
|
||||||
s.setting_name,
|
|
||||||
s.is_numeric,
|
|
||||||
s.is_date
|
|
||||||
FROM settings s
|
|
||||||
WHERE s.app_id = app.get_app_id()
|
|
||||||
AND s.setting_context IS NULL
|
|
||||||
ORDER BY s.setting_name
|
|
||||||
) LOOP
|
|
||||||
-- create specification
|
|
||||||
q := q || CHR(10);
|
|
||||||
q := q || ' FUNCTION ' || LOWER(app.settings_prefix) || LOWER(c.setting_name) || ' (' || CHR(10);
|
|
||||||
q := q || ' in_context settings.setting_context%TYPE := NULL' || CHR(10);
|
|
||||||
q := q || ' )' || CHR(10);
|
|
||||||
q := q || ' RETURN ' || CASE
|
|
||||||
WHEN c.is_numeric = 'Y' THEN 'NUMBER'
|
|
||||||
WHEN c.is_date = 'Y' THEN 'DATE'
|
|
||||||
ELSE 'VARCHAR2' END || CHR(10);
|
|
||||||
q := q || ' RESULT_CACHE;' || CHR(10);
|
|
||||||
|
|
||||||
-- create package body
|
|
||||||
b := b || CHR(10);
|
|
||||||
b := b || ' FUNCTION ' || LOWER(app.settings_prefix) || LOWER(c.setting_name) || ' (' || CHR(10);
|
|
||||||
b := b || ' in_context settings.setting_context%TYPE := NULL' || CHR(10);
|
|
||||||
b := b || ' )' || CHR(10);
|
|
||||||
b := b || ' RETURN ' || CASE
|
|
||||||
WHEN c.is_numeric = 'Y' THEN 'NUMBER'
|
|
||||||
WHEN c.is_date = 'Y' THEN 'DATE'
|
|
||||||
ELSE 'VARCHAR2' END || CHR(10);
|
|
||||||
b := b || ' RESULT_CACHE AS' || CHR(10);
|
|
||||||
b := b || ' BEGIN' || CHR(10);
|
|
||||||
b := b || ' RETURN ' || CASE
|
|
||||||
WHEN c.is_numeric = 'Y' THEN 'TO_NUMBER('
|
|
||||||
WHEN c.is_date = 'Y' THEN 'app.get_date('
|
|
||||||
END || 'app.get_setting (' || CHR(10);
|
|
||||||
b := b || ' in_name => ''' || c.setting_name || ''',' || CHR(10);
|
|
||||||
b := b || ' in_context => in_context' || CHR(10);
|
|
||||||
b := b || ' ' || CASE
|
|
||||||
WHEN NVL(c.is_numeric, c.is_date) = 'Y' THEN ')'
|
|
||||||
END || ');' || CHR(10);
|
|
||||||
b := b || ' EXCEPTION' || CHR(10);
|
|
||||||
b := b || ' WHEN NO_DATA_FOUND THEN' || CHR(10);
|
|
||||||
b := b || ' RETURN NULL;' || CHR(10);
|
|
||||||
b := b || ' END;' || CHR(10);
|
|
||||||
END LOOP;
|
|
||||||
--
|
|
||||||
q := q || CHR(10) || 'END;';
|
|
||||||
b := b || CHR(10) || 'END;';
|
|
||||||
--
|
|
||||||
EXECUTE IMMEDIATE q;
|
|
||||||
EXECUTE IMMEDIATE b;
|
|
||||||
--
|
|
||||||
recompile (
|
|
||||||
in_name => app.get_settings_package(),
|
|
||||||
in_force => TRUE
|
|
||||||
);
|
|
||||||
--
|
|
||||||
/*
|
|
||||||
DBMS_RESULT_CACHE.INVALIDATE (
|
|
||||||
owner => app.schema_owner,
|
|
||||||
name => app_actions.settings_package
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
EXCEPTION
|
|
||||||
WHEN app.app_exception THEN
|
|
||||||
RAISE;
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
app.log_debug(q); -- trimmed
|
|
||||||
app.log_debug(b); -- trimmed
|
|
||||||
--
|
|
||||||
app.raise_error();
|
|
||||||
END;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE prep_settings_pivot (
|
PROCEDURE prep_settings_pivot (
|
||||||
in_page_id apex_application_pages.page_id%TYPE
|
in_page_id apex_application_pages.page_id%TYPE
|
||||||
) AS
|
) AS
|
||||||
|
|||||||
@ -9,6 +9,7 @@ CREATE TABLE settings (
|
|||||||
--
|
--
|
||||||
is_numeric CHAR(1),
|
is_numeric CHAR(1),
|
||||||
is_date CHAR(1),
|
is_date CHAR(1),
|
||||||
|
is_private CHAR(1),
|
||||||
--
|
--
|
||||||
description_ VARCHAR2(1000),
|
description_ VARCHAR2(1000),
|
||||||
--
|
--
|
||||||
@ -26,7 +27,10 @@ CREATE TABLE settings (
|
|||||||
CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL),
|
CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL),
|
||||||
--
|
--
|
||||||
CONSTRAINT ch_settings_is_date
|
CONSTRAINT ch_settings_is_date
|
||||||
CHECK ((is_date = 'Y' AND is_numeric IS NULL) OR is_date IS NULL)
|
CHECK ((is_date = 'Y' AND is_numeric IS NULL) OR is_date IS NULL),
|
||||||
|
--
|
||||||
|
CONSTRAINT ch_settings_is_private
|
||||||
|
CHECK (is_private = 'Y' OR is_private IS NULL)
|
||||||
)
|
)
|
||||||
STORAGE (BUFFER_POOL KEEP);
|
STORAGE (BUFFER_POOL KEEP);
|
||||||
--
|
--
|
||||||
@ -39,5 +43,6 @@ COMMENT ON COLUMN settings.setting_context IS 'To allow multiple values dep
|
|||||||
COMMENT ON COLUMN settings.setting_group IS 'Group just for grouping set in APEX';
|
COMMENT ON COLUMN settings.setting_group IS 'Group just for grouping set in APEX';
|
||||||
COMMENT ON COLUMN settings.is_numeric IS 'Flag to convert value to number';
|
COMMENT ON COLUMN settings.is_numeric IS 'Flag to convert value to number';
|
||||||
COMMENT ON COLUMN settings.is_date IS 'Flag to convert value to date';
|
COMMENT ON COLUMN settings.is_date IS 'Flag to convert value to date';
|
||||||
|
COMMENT ON COLUMN settings.is_private IS 'Visible for Developers only on Settings page';
|
||||||
COMMENT ON COLUMN settings.description_ IS 'Description';
|
COMMENT ON COLUMN settings.description_ IS 'Description';
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,8 @@ WITH x AS (
|
|||||||
app.get_settings_package() AS package_name,
|
app.get_settings_package() AS package_name,
|
||||||
app.get_settings_prefix() AS prefix,
|
app.get_settings_prefix() AS prefix,
|
||||||
app.get_item('$SETTING_NAME') AS setting_name,
|
app.get_item('$SETTING_NAME') AS setting_name,
|
||||||
app.get_app_id() AS app_id
|
app.get_app_id() AS app_id,
|
||||||
|
app.is_developer_y() AS is_dev
|
||||||
FROM DUAL
|
FROM DUAL
|
||||||
),
|
),
|
||||||
p AS (
|
p AS (
|
||||||
@ -48,6 +49,7 @@ SELECT
|
|||||||
s.setting_value,
|
s.setting_value,
|
||||||
s.is_numeric,
|
s.is_numeric,
|
||||||
s.is_date,
|
s.is_date,
|
||||||
|
s.is_private,
|
||||||
--
|
--
|
||||||
p.procedure_name,
|
p.procedure_name,
|
||||||
p.data_type,
|
p.data_type,
|
||||||
@ -79,7 +81,8 @@ LEFT JOIN r
|
|||||||
LEFT JOIN v
|
LEFT JOIN v
|
||||||
ON v.procedure_name = x.prefix || s.setting_name
|
ON v.procedure_name = x.prefix || s.setting_name
|
||||||
WHERE s.setting_name = NVL(x.setting_name, s.setting_name)
|
WHERE s.setting_name = NVL(x.setting_name, s.setting_name)
|
||||||
AND s.setting_context IS NULL;
|
AND s.setting_context IS NULL
|
||||||
|
AND (s.is_private IS NULL OR x.is_dev = 'Y');
|
||||||
--
|
--
|
||||||
COMMENT ON TABLE settings_overview IS '[CORE - DASHBOARD] Settings';
|
COMMENT ON TABLE settings_overview IS '[CORE - DASHBOARD] Settings';
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user