Generic settings feature for any app
This commit is contained in:
parent
d3f96fe357
commit
6e8c851bb7
783
apex/f770/application/pages/page_00970.sql
Normal file
783
apex/f770/application/pages/page_00970.sql
Normal file
@ -0,0 +1,783 @@
|
||||
prompt --application/pages/page_00970
|
||||
begin
|
||||
-- Manifest
|
||||
-- PAGE: 00970
|
||||
-- Manifest End
|
||||
wwv_flow_api.component_begin (
|
||||
p_version_yyyy_mm_dd=>'2021.04.15'
|
||||
,p_release=>'21.1.6'
|
||||
,p_default_workspace_id=>9014660246496943
|
||||
,p_default_application_id=>770
|
||||
,p_default_id_offset=>0
|
||||
,p_default_owner=>'CORE'
|
||||
);
|
||||
wwv_flow_api.create_page(
|
||||
p_id=>970
|
||||
,p_user_interface_id=>wwv_flow_api.id(9169746885570061)
|
||||
,p_name=>'#fa-wrench Settings'
|
||||
,p_alias=>'SETTINGS'
|
||||
,p_step_title=>'Settings'
|
||||
,p_warn_on_unsaved_changes=>'N'
|
||||
,p_autocomplete_on_off=>'OFF'
|
||||
,p_group_id=>wwv_flow_api.id(9240371448352386)
|
||||
,p_page_template_options=>'#DEFAULT#'
|
||||
,p_required_role=>wwv_flow_api.id(9823062898204869)
|
||||
,p_last_updated_by=>'DEV'
|
||||
,p_last_upd_yyyymmddhh24miss=>'20211229183932'
|
||||
);
|
||||
wwv_flow_api.create_page_plug(
|
||||
p_id=>wwv_flow_api.id(11853608143169127)
|
||||
,p_plug_name=>'Settings'
|
||||
,p_icon_css_classes=>'fa-wrench'
|
||||
,p_region_template_options=>'#DEFAULT#'
|
||||
,p_plug_template=>wwv_flow_api.id(9070356145569920)
|
||||
,p_plug_display_sequence=>10
|
||||
,p_include_in_reg_disp_sel_yn=>'Y'
|
||||
,p_plug_display_point=>'BODY'
|
||||
,p_plug_query_options=>'DERIVED_REPORT_COLUMNS'
|
||||
,p_attribute_01=>'N'
|
||||
,p_attribute_02=>'HTML'
|
||||
);
|
||||
wwv_flow_api.create_page_plug(
|
||||
p_id=>wwv_flow_api.id(11853720141169128)
|
||||
,p_plug_name=>'Settings [GRID]'
|
||||
,p_region_name=>'SETTINGS'
|
||||
,p_region_template_options=>'#DEFAULT#'
|
||||
,p_component_template_options=>'#DEFAULT#'
|
||||
,p_plug_template=>wwv_flow_api.id(9078290074569925)
|
||||
,p_plug_display_sequence=>20
|
||||
,p_include_in_reg_disp_sel_yn=>'Y'
|
||||
,p_plug_display_point=>'BODY'
|
||||
,p_query_type=>'TABLE'
|
||||
,p_query_table=>'SETTINGS_OVERVIEW'
|
||||
,p_include_rowid_column=>false
|
||||
,p_plug_source_type=>'NATIVE_IG'
|
||||
,p_plug_query_options=>'DERIVED_REPORT_COLUMNS'
|
||||
,p_prn_units=>'MILLIMETERS'
|
||||
,p_prn_paper_size=>'A4'
|
||||
,p_prn_width=>297
|
||||
,p_prn_height=>210
|
||||
,p_prn_orientation=>'HORIZONTAL'
|
||||
,p_prn_page_header=>'Settings [GRID]'
|
||||
,p_prn_page_header_font_color=>'#000000'
|
||||
,p_prn_page_header_font_family=>'Helvetica'
|
||||
,p_prn_page_header_font_weight=>'normal'
|
||||
,p_prn_page_header_font_size=>'12'
|
||||
,p_prn_page_footer_font_color=>'#000000'
|
||||
,p_prn_page_footer_font_family=>'Helvetica'
|
||||
,p_prn_page_footer_font_weight=>'normal'
|
||||
,p_prn_page_footer_font_size=>'12'
|
||||
,p_prn_header_bg_color=>'#EEEEEE'
|
||||
,p_prn_header_font_color=>'#000000'
|
||||
,p_prn_header_font_family=>'Helvetica'
|
||||
,p_prn_header_font_weight=>'bold'
|
||||
,p_prn_header_font_size=>'10'
|
||||
,p_prn_body_bg_color=>'#FFFFFF'
|
||||
,p_prn_body_font_color=>'#000000'
|
||||
,p_prn_body_font_family=>'Helvetica'
|
||||
,p_prn_body_font_weight=>'normal'
|
||||
,p_prn_body_font_size=>'10'
|
||||
,p_prn_border_width=>.5
|
||||
,p_prn_page_header_alignment=>'CENTER'
|
||||
,p_prn_page_footer_alignment=>'CENTER'
|
||||
,p_prn_border_color=>'#666666'
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854065725169131)
|
||||
,p_name=>'SETTING_ID'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'SETTING_ID'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||
,p_heading=>'Setting Id'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>40
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_05=>'BOTH'
|
||||
,p_is_required=>true
|
||||
,p_max_length=>30
|
||||
,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
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854121944169132)
|
||||
,p_name=>'SETTING_CONTEXT'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'SETTING_CONTEXT'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||
,p_heading=>'Context'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>50
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_05=>'BOTH'
|
||||
,p_is_required=>false
|
||||
,p_max_length=>64
|
||||
,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
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854239797169133)
|
||||
,p_name=>'SETTING_GROUP'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'SETTING_GROUP'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||
,p_heading=>'Group'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>60
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_05=>'BOTH'
|
||||
,p_is_required=>false
|
||||
,p_max_length=>64
|
||||
,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
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854302395169134)
|
||||
,p_name=>'SETTING_VALUE'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'SETTING_VALUE'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||
,p_heading=>'Value'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>70
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_05=>'BOTH'
|
||||
,p_is_required=>false
|
||||
,p_max_length=>256
|
||||
,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=>false
|
||||
,p_enable_hide=>true
|
||||
,p_is_primary_key=>false
|
||||
,p_duplicate_value=>true
|
||||
,p_include_in_export=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854401801169135)
|
||||
,p_name=>'DESCRIPTION_'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'DESCRIPTION_'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_TEXT_FIELD'
|
||||
,p_heading=>'Description'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>80
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_05=>'BOTH'
|
||||
,p_is_required=>false
|
||||
,p_max_length=>1000
|
||||
,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=>false
|
||||
,p_enable_hide=>true
|
||||
,p_is_primary_key=>false
|
||||
,p_duplicate_value=>true
|
||||
,p_include_in_export=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854519035169136)
|
||||
,p_name=>'IS_NUMERIC'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'IS_NUMERIC'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_SINGLE_CHECKBOX'
|
||||
,p_heading=>'Is Numeric'
|
||||
,p_heading_alignment=>'CENTER'
|
||||
,p_display_sequence=>90
|
||||
,p_value_alignment=>'CENTER'
|
||||
,p_attribute_01=>'N'
|
||||
,p_attribute_02=>'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
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854640901169137)
|
||||
,p_name=>'IS_DATE'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'IS_DATE'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>false
|
||||
,p_item_type=>'NATIVE_SINGLE_CHECKBOX'
|
||||
,p_heading=>'Is Date'
|
||||
,p_heading_alignment=>'CENTER'
|
||||
,p_display_sequence=>100
|
||||
,p_value_alignment=>'CENTER'
|
||||
,p_attribute_01=>'N'
|
||||
,p_attribute_02=>'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
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854730854169138)
|
||||
,p_name=>'UPDATED_BY'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'UPDATED_BY'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||
,p_heading=>'Updated By'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>150
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11854883294169139)
|
||||
,p_name=>'UPDATED_AT'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'UPDATED_AT'
|
||||
,p_data_type=>'DATE'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||
,p_heading=>'Updated At'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>160
|
||||
,p_value_alignment=>'LEFT'
|
||||
,p_attribute_02=>'VALUE'
|
||||
,p_attribute_05=>'PLAIN'
|
||||
,p_format_mask=>'YYYY-MM-DD HH24:MI'
|
||||
,p_enable_filter=>true
|
||||
,p_filter_is_required=>false
|
||||
,p_filter_date_ranges=>'ALL'
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11855045700169141)
|
||||
,p_name=>'APEX$ROW_ACTION'
|
||||
,p_item_type=>'NATIVE_ROW_ACTION'
|
||||
,p_display_sequence=>20
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11855121825169142)
|
||||
,p_name=>'APEX$ROW_SELECTOR'
|
||||
,p_item_type=>'NATIVE_ROW_SELECTOR'
|
||||
,p_display_sequence=>10
|
||||
,p_attribute_01=>'Y'
|
||||
,p_attribute_02=>'Y'
|
||||
,p_attribute_03=>'N'
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11855718811169148)
|
||||
,p_name=>'PROCEDURE_NAME'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'PROCEDURE_NAME'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||
,p_heading=>'Procedure Name'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>110
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11855803111169149)
|
||||
,p_name=>'DATA_TYPE'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'DATA_TYPE'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||
,p_heading=>'Data Type'
|
||||
,p_heading_alignment=>'LEFT'
|
||||
,p_display_sequence=>120
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(11855953367169150)
|
||||
,p_name=>'REFERENCES'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'REFERENCES'
|
||||
,p_data_type=>'NUMBER'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_DISPLAY_ONLY'
|
||||
,p_heading=>'References'
|
||||
,p_heading_alignment=>'RIGHT'
|
||||
,p_display_sequence=>140
|
||||
,p_value_alignment=>'RIGHT'
|
||||
,p_attribute_02=>'VALUE'
|
||||
,p_attribute_05=>'PLAIN'
|
||||
,p_enable_filter=>true
|
||||
,p_filter_is_required=>false
|
||||
,p_filter_lov_type=>'NONE'
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(12110240050376301)
|
||||
,p_name=>'RID'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'RID'
|
||||
,p_data_type=>'ROWID'
|
||||
,p_item_type=>'NATIVE_HIDDEN'
|
||||
,p_display_sequence=>30
|
||||
,p_attribute_01=>'Y'
|
||||
,p_use_as_row_header=>false
|
||||
,p_enable_sort_group=>false
|
||||
,p_is_primary_key=>true
|
||||
,p_include_in_export=>false
|
||||
);
|
||||
wwv_flow_api.create_region_column(
|
||||
p_id=>wwv_flow_api.id(12110307179376302)
|
||||
,p_name=>'ACTION'
|
||||
,p_source_type=>'DB_COLUMN'
|
||||
,p_source_expression=>'ACTION'
|
||||
,p_data_type=>'VARCHAR2'
|
||||
,p_is_query_only=>true
|
||||
,p_item_type=>'NATIVE_HTML_EXPRESSION'
|
||||
,p_heading=>'Action'
|
||||
,p_heading_alignment=>'CENTER'
|
||||
,p_display_sequence=>130
|
||||
,p_value_alignment=>'CENTER'
|
||||
,p_attribute_01=>'&ACTION.'
|
||||
,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=>true
|
||||
);
|
||||
wwv_flow_api.create_interactive_grid(
|
||||
p_id=>wwv_flow_api.id(11853821618169129)
|
||||
,p_internal_uid=>11853821618169129
|
||||
,p_is_editable=>true
|
||||
,p_edit_operations=>'i:u:d'
|
||||
,p_lost_update_check_type=>'VALUES'
|
||||
,p_add_row_if_empty=>false
|
||||
,p_submit_checked_rows=>false
|
||||
,p_lazy_loading=>false
|
||||
,p_requires_filter=>false
|
||||
,p_select_first_row=>false
|
||||
,p_fixed_row_height=>true
|
||||
,p_pagination_type=>'SET'
|
||||
,p_show_total_row_count=>true
|
||||
,p_show_toolbar=>true
|
||||
,p_toolbar_buttons=>'SEARCH_COLUMN:SEARCH_FIELD:ACTIONS_MENU:SAVE'
|
||||
,p_enable_save_public_report=>false
|
||||
,p_enable_subscriptions=>true
|
||||
,p_enable_flashback=>true
|
||||
,p_define_chart_view=>true
|
||||
,p_enable_download=>true
|
||||
,p_download_formats=>'CSV:HTML:XLSX:PDF'
|
||||
,p_enable_mail_download=>true
|
||||
,p_fixed_header=>'PAGE'
|
||||
,p_show_icon_view=>false
|
||||
,p_show_detail_view=>false
|
||||
,p_javascript_code=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||
'function(config) {',
|
||||
' return unified_ig_toolbar(config);',
|
||||
'}',
|
||||
''))
|
||||
);
|
||||
wwv_flow_api.create_ig_report(
|
||||
p_id=>wwv_flow_api.id(12011021825679405)
|
||||
,p_interactive_grid_id=>wwv_flow_api.id(11853821618169129)
|
||||
,p_static_id=>'120111'
|
||||
,p_type=>'PRIMARY'
|
||||
,p_default_view=>'GRID'
|
||||
,p_rows_per_page=>100
|
||||
,p_show_row_number=>false
|
||||
,p_settings_area_expanded=>false
|
||||
);
|
||||
wwv_flow_api.create_ig_report_view(
|
||||
p_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_report_id=>wwv_flow_api.id(12011021825679405)
|
||||
,p_view_type=>'GRID'
|
||||
,p_stretch_columns=>true
|
||||
,p_srv_exclude_null_values=>false
|
||||
,p_srv_only_display_columns=>true
|
||||
,p_edit_mode=>false
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12012657244679414)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>5
|
||||
,p_column_id=>wwv_flow_api.id(11854065725169131)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>240
|
||||
,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(12013523886679418)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>4
|
||||
,p_column_id=>wwv_flow_api.id(11854121944169132)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>180
|
||||
,p_sort_order=>2
|
||||
,p_sort_direction=>'ASC'
|
||||
,p_sort_nulls=>'LAST'
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12014468263679422)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>1
|
||||
,p_column_id=>wwv_flow_api.id(11854239797169133)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>180
|
||||
,p_break_order=>5
|
||||
,p_break_is_enabled=>true
|
||||
,p_break_sort_direction=>'ASC'
|
||||
,p_break_sort_nulls=>'LAST'
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12015320331679424)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>6
|
||||
,p_column_id=>wwv_flow_api.id(11854302395169134)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>240
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12016200262679426)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>7
|
||||
,p_column_id=>wwv_flow_api.id(11854401801169135)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12017110360679428)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>8
|
||||
,p_column_id=>wwv_flow_api.id(11854519035169136)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>100
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12018068358679430)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>9
|
||||
,p_column_id=>wwv_flow_api.id(11854640901169137)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>100
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12018933623679432)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>12
|
||||
,p_column_id=>wwv_flow_api.id(11854730854169138)
|
||||
,p_is_visible=>false
|
||||
,p_is_frozen=>false
|
||||
,p_width=>200
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12019830036679434)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>13
|
||||
,p_column_id=>wwv_flow_api.id(11854883294169139)
|
||||
,p_is_visible=>false
|
||||
,p_is_frozen=>false
|
||||
,p_width=>160
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12021675404679438)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>0
|
||||
,p_column_id=>wwv_flow_api.id(11855045700169141)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>true
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12104857120371283)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>10
|
||||
,p_column_id=>wwv_flow_api.id(11855718811169148)
|
||||
,p_is_visible=>false
|
||||
,p_is_frozen=>false
|
||||
,p_width=>240
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12105782280371287)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>11
|
||||
,p_column_id=>wwv_flow_api.id(11855803111169149)
|
||||
,p_is_visible=>false
|
||||
,p_is_frozen=>false
|
||||
,p_width=>160
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12106513784371290)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>11
|
||||
,p_column_id=>wwv_flow_api.id(11855953367169150)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>100
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12116219450377419)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>16
|
||||
,p_column_id=>wwv_flow_api.id(12110240050376301)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
);
|
||||
wwv_flow_api.create_ig_report_column(
|
||||
p_id=>wwv_flow_api.id(12125527954437069)
|
||||
,p_view_id=>wwv_flow_api.id(12011273108679405)
|
||||
,p_display_seq=>3
|
||||
,p_column_id=>wwv_flow_api.id(12110307179376302)
|
||||
,p_is_visible=>true
|
||||
,p_is_frozen=>false
|
||||
,p_width=>100
|
||||
);
|
||||
wwv_flow_api.create_page_button(
|
||||
p_id=>wwv_flow_api.id(12090595745282902)
|
||||
,p_button_sequence=>10
|
||||
,p_button_plug_id=>wwv_flow_api.id(11853608143169127)
|
||||
,p_button_name=>'REFRESH'
|
||||
,p_button_action=>'REDIRECT_PAGE'
|
||||
,p_button_template_options=>'#DEFAULT#'
|
||||
,p_button_template_id=>wwv_flow_api.id(9144574670569995)
|
||||
,p_button_image_alt=>'Refresh'
|
||||
,p_button_position=>'RIGHT_OF_TITLE'
|
||||
,p_button_redirect_url=>'f?p=&APP_ID.:970:&SESSION.::&DEBUG.:970::'
|
||||
,p_icon_css_classes=>'fa-refresh'
|
||||
);
|
||||
wwv_flow_api.create_page_button(
|
||||
p_id=>wwv_flow_api.id(11855360615169144)
|
||||
,p_button_sequence=>20
|
||||
,p_button_plug_id=>wwv_flow_api.id(11853608143169127)
|
||||
,p_button_name=>'REBUILD'
|
||||
,p_button_action=>'REDIRECT_PAGE'
|
||||
,p_button_template_options=>'#DEFAULT#'
|
||||
,p_button_template_id=>wwv_flow_api.id(9145249029569999)
|
||||
,p_button_image_alt=>'Rebuild'
|
||||
,p_button_position=>'RIGHT_OF_TITLE'
|
||||
,p_button_redirect_url=>'f?p=&APP_ID.:970:&SESSION.::&DEBUG.:970:P970_REBUILD:Y'
|
||||
,p_button_cattributes=>'title="&P970_REBUILD_TITLE."'
|
||||
);
|
||||
wwv_flow_api.create_page_item(
|
||||
p_id=>wwv_flow_api.id(11855448034169145)
|
||||
,p_name=>'P970_REBUILD'
|
||||
,p_item_sequence=>10
|
||||
,p_item_plug_id=>wwv_flow_api.id(11853608143169127)
|
||||
,p_use_cache_before_default=>'NO'
|
||||
,p_display_as=>'NATIVE_HIDDEN'
|
||||
,p_attribute_01=>'Y'
|
||||
);
|
||||
wwv_flow_api.create_page_item(
|
||||
p_id=>wwv_flow_api.id(12110581452376304)
|
||||
,p_name=>'P970_REBUILD_TITLE'
|
||||
,p_item_sequence=>20
|
||||
,p_item_plug_id=>wwv_flow_api.id(11853608143169127)
|
||||
,p_display_as=>'NATIVE_HIDDEN'
|
||||
,p_attribute_01=>'Y'
|
||||
);
|
||||
wwv_flow_api.create_page_da_event(
|
||||
p_id=>wwv_flow_api.id(12065683402897749)
|
||||
,p_name=>'SAVE_SETTINGS'
|
||||
,p_event_sequence=>10
|
||||
,p_triggering_element_type=>'REGION'
|
||||
,p_triggering_region_id=>wwv_flow_api.id(11853720141169128)
|
||||
,p_bind_type=>'bind'
|
||||
,p_bind_event_type=>'NATIVE_IG|REGION TYPE|interactivegridsave'
|
||||
);
|
||||
wwv_flow_api.create_page_da_action(
|
||||
p_id=>wwv_flow_api.id(12066015388897750)
|
||||
,p_event_id=>wwv_flow_api.id(12065683402897749)
|
||||
,p_event_result=>'TRUE'
|
||||
,p_action_sequence=>10
|
||||
,p_execute_on_page_init=>'N'
|
||||
,p_action=>'NATIVE_JAVASCRIPT_CODE'
|
||||
,p_affected_elements_type=>'REGION'
|
||||
,p_affected_region_id=>wwv_flow_api.id(11853720141169128)
|
||||
,p_attribute_01=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||
'apex.region(''SETTINGS'').widget().interactiveGrid(''getActions'').invoke(''save'');',
|
||||
''))
|
||||
);
|
||||
wwv_flow_api.create_page_da_action(
|
||||
p_id=>wwv_flow_api.id(12066546327897751)
|
||||
,p_event_id=>wwv_flow_api.id(12065683402897749)
|
||||
,p_event_result=>'TRUE'
|
||||
,p_action_sequence=>20
|
||||
,p_execute_on_page_init=>'N'
|
||||
,p_action=>'NATIVE_REFRESH'
|
||||
,p_affected_elements_type=>'REGION'
|
||||
,p_affected_region_id=>wwv_flow_api.id(11853720141169128)
|
||||
);
|
||||
wwv_flow_api.create_page_process(
|
||||
p_id=>wwv_flow_api.id(11855259982169143)
|
||||
,p_process_sequence=>10
|
||||
,p_process_point=>'AFTER_SUBMIT'
|
||||
,p_region_id=>wwv_flow_api.id(11853720141169128)
|
||||
,p_process_type=>'NATIVE_IG_DML'
|
||||
,p_process_name=>'SETTINGS'
|
||||
,p_attribute_01=>'PLSQL_CODE'
|
||||
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||
'app_actions.set_setting (',
|
||||
' in_action => :APEX$ROW_STATUS,',
|
||||
' in_out_rowid => :RID,',
|
||||
' in_name => :SETTING_ID,',
|
||||
' in_context => :SETTING_CONTEXT,',
|
||||
' in_group => :SETTING_GROUP,',
|
||||
' in_value => :SETTING_VALUE,',
|
||||
' in_description => :DESCRIPTION_,',
|
||||
' in_is_numeric => :IS_NUMERIC,',
|
||||
' in_is_date => :IS_DATE',
|
||||
');',
|
||||
''))
|
||||
,p_attribute_05=>'Y'
|
||||
,p_attribute_06=>'N'
|
||||
,p_error_display_location=>'INLINE_IN_NOTIFICATION'
|
||||
);
|
||||
wwv_flow_api.create_page_process(
|
||||
p_id=>wwv_flow_api.id(11855629070169147)
|
||||
,p_process_sequence=>10
|
||||
,p_process_point=>'BEFORE_HEADER'
|
||||
,p_process_type=>'NATIVE_PLSQL'
|
||||
,p_process_name=>'REBUILD_PACKAGE'
|
||||
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
|
||||
'app_actions.rebuild_settings();',
|
||||
''))
|
||||
,p_process_clob_language=>'PLSQL'
|
||||
,p_error_display_location=>'INLINE_IN_NOTIFICATION'
|
||||
,p_process_when=>'P970_REBUILD'
|
||||
,p_process_when_type=>'ITEM_IS_NOT_NULL'
|
||||
);
|
||||
wwv_flow_api.create_page_process(
|
||||
p_id=>wwv_flow_api.id(12110449828376303)
|
||||
,p_process_sequence=>20
|
||||
,p_process_point=>'BEFORE_HEADER'
|
||||
,p_process_type=>'NATIVE_PLSQL'
|
||||
,p_process_name=>'INIT_DEFAULTS'
|
||||
,p_process_sql_clob=>':P970_REBUILD_TITLE := ''Rebuild '' || UPPER(app_actions.in_settings_package) || '' package with '' || UPPER(app_actions.in_settings_prefix) || ''* functions'';'
|
||||
,p_process_clob_language=>'PLSQL'
|
||||
,p_error_display_location=>'INLINE_IN_NOTIFICATION'
|
||||
);
|
||||
wwv_flow_api.component_end;
|
||||
end;
|
||||
/
|
||||
@ -121,6 +121,7 @@ prompt --install
|
||||
@@application/pages/page_00920.sql
|
||||
@@application/pages/page_00925.sql
|
||||
@@application/pages/page_00940.sql
|
||||
@@application/pages/page_00970.sql
|
||||
@@application/pages/page_00990.sql
|
||||
@@application/pages/page_09999.sql
|
||||
@@application/end_environment.sql
|
||||
|
||||
@ -29,6 +29,13 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
||||
*
|
||||
*/
|
||||
|
||||
in_settings_package CONSTANT VARCHAR2(30) := 'SETT';
|
||||
in_settings_prefix CONSTANT VARCHAR2(30) := 'get_';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Remove missing pages from NAVIGATION table
|
||||
--
|
||||
@ -130,5 +137,40 @@ CREATE OR REPLACE PACKAGE app_actions AS
|
||||
in_c050 VARCHAR2 := NULL
|
||||
);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Get value from Settings table
|
||||
--
|
||||
FUNCTION get_setting (
|
||||
in_name settings.setting_id%TYPE,
|
||||
in_context settings.setting_context%TYPE := NULL
|
||||
)
|
||||
RETURN settings.setting_value%TYPE;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Store/update settings
|
||||
--
|
||||
PROCEDURE set_setting (
|
||||
in_action CHAR,
|
||||
in_out_rowid IN OUT NOCOPY VARCHAR2,
|
||||
in_name settings.setting_id%TYPE,
|
||||
in_context settings.setting_context%TYPE := NULL,
|
||||
in_group settings.setting_group%TYPE := NULL,
|
||||
in_value settings.setting_value%TYPE := NULL,
|
||||
in_description settings.description_%TYPE := NULL,
|
||||
in_is_numeric settings.is_numeric%TYPE := NULL,
|
||||
in_is_date settings.is_date%TYPE := NULL
|
||||
);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Rebuild package containing function matching Settings table
|
||||
--
|
||||
PROCEDURE rebuild_settings;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@ -333,5 +333,193 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS
|
||||
app.raise_error();
|
||||
END;
|
||||
|
||||
|
||||
|
||||
FUNCTION get_setting (
|
||||
in_name settings.setting_id%TYPE,
|
||||
in_context settings.setting_context%TYPE := NULL
|
||||
)
|
||||
RETURN settings.setting_value%TYPE
|
||||
AS
|
||||
out_value settings.setting_value%TYPE;
|
||||
BEGIN
|
||||
SELECT s.setting_value INTO out_value
|
||||
FROM settings s
|
||||
WHERE s.app_id = app.get_app_id()
|
||||
AND s.setting_id = in_name
|
||||
AND s.setting_context = in_context;
|
||||
--
|
||||
RETURN out_value;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
BEGIN
|
||||
SELECT s.setting_value INTO out_value
|
||||
FROM settings s
|
||||
WHERE s.app_id = app.get_app_id()
|
||||
AND s.setting_id = in_name
|
||||
AND s.setting_context IS NULL;
|
||||
--
|
||||
RETURN out_value;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN NULL;
|
||||
END;
|
||||
END;
|
||||
|
||||
|
||||
|
||||
PROCEDURE set_setting (
|
||||
in_action CHAR,
|
||||
in_out_rowid IN OUT NOCOPY VARCHAR2,
|
||||
in_name settings.setting_id%TYPE,
|
||||
in_context settings.setting_context%TYPE := NULL,
|
||||
in_group settings.setting_group%TYPE := NULL,
|
||||
in_value settings.setting_value%TYPE := NULL,
|
||||
in_description settings.description_%TYPE := NULL,
|
||||
in_is_numeric settings.is_numeric%TYPE := NULL,
|
||||
in_is_date settings.is_date%TYPE := NULL
|
||||
)
|
||||
AS
|
||||
rec settings%ROWTYPE;
|
||||
BEGIN
|
||||
app.log_module(app.get_json_object(
|
||||
'in_action', in_action,
|
||||
'in_rowid', in_out_rowid,
|
||||
'in_name', in_name,
|
||||
'in_context', in_context,
|
||||
'in_value', in_value,
|
||||
'in_is_numeric', in_is_numeric,
|
||||
'in_is_date', in_is_date
|
||||
));
|
||||
--
|
||||
rec.app_id := app.get_app_id();
|
||||
rec.setting_id := RTRIM(RTRIM(UPPER(in_name)));
|
||||
rec.setting_context := RTRIM(RTRIM(in_context));
|
||||
rec.setting_group := in_group;
|
||||
rec.setting_value := in_value;
|
||||
rec.description_ := in_description;
|
||||
rec.is_numeric := in_is_numeric;
|
||||
rec.is_date := in_is_date;
|
||||
rec.updated_by := app.get_user_id();
|
||||
rec.updated_at := SYSDATE;
|
||||
--
|
||||
CASE in_action
|
||||
WHEN 'D' THEN
|
||||
DELETE FROM settings s
|
||||
WHERE s.app_id = rec.app_id
|
||||
AND ROWID = in_out_rowid;
|
||||
--
|
||||
WHEN 'U' THEN
|
||||
UPDATE settings s
|
||||
SET ROW = rec
|
||||
WHERE s.app_id = rec.app_id
|
||||
AND ROWID = in_out_rowid;
|
||||
--
|
||||
IF SQL%ROWCOUNT = 0 THEN
|
||||
app.raise_error('SETTINGS_UPDATE_FAILED');
|
||||
END IF;
|
||||
--
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO settings VALUES rec
|
||||
RETURNING ROWID INTO in_out_rowid;
|
||||
EXCEPTION
|
||||
WHEN DUP_VAL_ON_INDEX THEN
|
||||
app.raise_error('SETTINGS_EXISTS');
|
||||
END;
|
||||
END CASE;
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error();
|
||||
END;
|
||||
|
||||
|
||||
|
||||
PROCEDURE rebuild_settings AS
|
||||
q VARCHAR2(32767);
|
||||
BEGIN
|
||||
app.log_module();
|
||||
|
||||
-- create specification
|
||||
q := 'CREATE OR REPLACE PACKAGE ' || LOWER(in_settings_package) || ' AS' || CHR(10);
|
||||
--
|
||||
FOR c IN (
|
||||
SELECT
|
||||
s.setting_id,
|
||||
MAX(s.is_numeric) AS is_numeric,
|
||||
MAX(s.is_date) AS is_date
|
||||
FROM settings s
|
||||
WHERE s.app_id = app.get_app_id()
|
||||
GROUP BY s.setting_id
|
||||
ORDER BY s.setting_id
|
||||
) LOOP
|
||||
q := q || CHR(10);
|
||||
q := q || ' FUNCTION ' || LOWER(in_settings_prefix) || LOWER(c.setting_id) || ' (' || 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); ---------- howto invalidate RESULT_CACHE ???
|
||||
END LOOP;
|
||||
--
|
||||
q := q || CHR(10) || 'END;';
|
||||
--
|
||||
EXECUTE IMMEDIATE q;
|
||||
|
||||
-- create package body
|
||||
q := 'CREATE OR REPLACE PACKAGE BODY ' || LOWER(in_settings_package) || ' AS' || CHR(10);
|
||||
--
|
||||
FOR c IN (
|
||||
SELECT
|
||||
s.setting_id,
|
||||
MAX(s.is_numeric) AS is_numeric,
|
||||
MAX(s.is_date) AS is_date
|
||||
FROM settings s
|
||||
WHERE s.app_id = app.get_app_id()
|
||||
GROUP BY s.setting_id
|
||||
ORDER BY s.setting_id
|
||||
) LOOP
|
||||
q := q || CHR(10);
|
||||
q := q || ' FUNCTION ' || LOWER(in_settings_prefix) || LOWER(c.setting_id) || ' (' || 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 AS' || CHR(10);
|
||||
q := q || ' BEGIN' || CHR(10);
|
||||
q := q || ' RETURN ' || CASE
|
||||
WHEN c.is_numeric = 'Y' THEN 'TO_NUMBER('
|
||||
WHEN c.is_date = 'Y' THEN 'app.get_date('
|
||||
END || 'app_actions.get_setting (' || CHR(10);
|
||||
q := q || ' in_name => ''' || c.setting_id || ''',' || CHR(10);
|
||||
q := q || ' in_context => in_context' || CHR(10);
|
||||
q := q || ' ' || CASE
|
||||
WHEN NVL(c.is_numeric, c.is_date) = 'Y' THEN ')'
|
||||
END || ');' || CHR(10);
|
||||
q := q || ' EXCEPTION' || CHR(10);
|
||||
q := q || ' WHEN NO_DATA_FOUND THEN' || CHR(10);
|
||||
q := q || ' RETURN NULL;' || CHR(10);
|
||||
q := q || ' END;' || CHR(10);
|
||||
END LOOP;
|
||||
--
|
||||
q := q || CHR(10) || 'END;';
|
||||
--
|
||||
DBMS_OUTPUT.PUT_LINE(q);
|
||||
EXECUTE IMMEDIATE q;
|
||||
--
|
||||
recompile();
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error();
|
||||
END;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
43
tables/settings.sql
Normal file
43
tables/settings.sql
Normal file
@ -0,0 +1,43 @@
|
||||
--DROP TABLE settings PURGE;
|
||||
CREATE TABLE settings (
|
||||
app_id NUMBER(4) CONSTRAINT nn_settings_app_id NOT NULL,
|
||||
setting_id VARCHAR2(30) CONSTRAINT nn_settings_id NOT NULL,
|
||||
--
|
||||
setting_context VARCHAR2(64),
|
||||
setting_group VARCHAR2(64),
|
||||
setting_value VARCHAR2(256),
|
||||
--
|
||||
description_ VARCHAR2(1000),
|
||||
--
|
||||
is_numeric CHAR(1),
|
||||
is_date CHAR(1),
|
||||
--
|
||||
updated_by VARCHAR2(30),
|
||||
updated_at DATE,
|
||||
--
|
||||
CONSTRAINT uq_settings
|
||||
UNIQUE (app_id, setting_id, setting_context),
|
||||
--
|
||||
CONSTRAINT fk_settings_app_id
|
||||
FOREIGN KEY (app_id)
|
||||
REFERENCES apps (app_id),
|
||||
--
|
||||
CONSTRAINT ch_settings_is_active
|
||||
CHECK ((is_numeric = 'Y' AND is_date IS NULL) OR is_numeric IS NULL),
|
||||
--
|
||||
CONSTRAINT ch_settings_is_date
|
||||
CHECK ((is_date = 'Y' AND is_numeric IS NULL) OR is_date IS NULL)
|
||||
)
|
||||
STORAGE (BUFFER_POOL KEEP);
|
||||
--
|
||||
COMMENT ON TABLE settings IS 'List of settings shared through whole app';
|
||||
--
|
||||
COMMENT ON COLUMN settings.app_id IS 'Application ID';
|
||||
COMMENT ON COLUMN settings.setting_id IS 'Setting ID';
|
||||
COMMENT ON COLUMN settings.setting_context IS 'To allow multiple values depending on context value';
|
||||
COMMENT ON COLUMN settings.setting_group IS 'Group just for grouping set in APEX';
|
||||
COMMENT ON COLUMN settings.setting_value IS 'Value stored as string';
|
||||
COMMENT ON COLUMN settings.description_ IS 'Description';
|
||||
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';
|
||||
|
||||
91
triggers/settings__.sql
Normal file
91
triggers/settings__.sql
Normal file
@ -0,0 +1,91 @@
|
||||
CREATE OR REPLACE TRIGGER settings__
|
||||
FOR UPDATE OR INSERT OR DELETE ON settings
|
||||
COMPOUND TRIGGER
|
||||
|
||||
in_table_name CONSTANT user_tables.table_name%TYPE := 'SETTINGS';
|
||||
--
|
||||
curr_log_id logs.log_id%TYPE;
|
||||
curr_event_id log_events.log_id%TYPE;
|
||||
curr_updated_by settings.updated_by%TYPE;
|
||||
curr_updated_at settings.updated_at%TYPE;
|
||||
--
|
||||
rows_inserted PLS_INTEGER := 0;
|
||||
rows_updated PLS_INTEGER := 0;
|
||||
rows_deleted PLS_INTEGER := 0;
|
||||
--
|
||||
last_rowid ROWID;
|
||||
|
||||
|
||||
|
||||
BEFORE STATEMENT IS
|
||||
BEGIN
|
||||
curr_log_id := app.log_trigger(in_table_name);
|
||||
curr_updated_by := app.get_user_id();
|
||||
curr_updated_at := SYSDATE;
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error('TRIGGER_FAILED', in_table_name);
|
||||
END BEFORE STATEMENT;
|
||||
|
||||
|
||||
|
||||
BEFORE EACH ROW IS
|
||||
BEGIN
|
||||
IF NOT DELETING THEN
|
||||
:NEW.updated_by := curr_updated_by;
|
||||
:NEW.updated_at := curr_updated_at;
|
||||
END IF;
|
||||
--
|
||||
curr_event_id := app.log_event('SETTINGS_CHANGED');
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error('TRIGGER_FAILED', in_table_name);
|
||||
END BEFORE EACH ROW;
|
||||
|
||||
|
||||
|
||||
AFTER EACH ROW IS
|
||||
new_json VARCHAR2(32767);
|
||||
old_json VARCHAR2(32767);
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
rows_inserted := rows_inserted + 1;
|
||||
last_rowid := :NEW.ROWID;
|
||||
ELSIF UPDATING THEN
|
||||
rows_updated := rows_updated + 1;
|
||||
last_rowid := :OLD.ROWID;
|
||||
ELSIF DELETING THEN
|
||||
rows_deleted := rows_deleted + 1;
|
||||
last_rowid := :OLD.ROWID;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error('TRIGGER_FAILED', in_table_name);
|
||||
END AFTER EACH ROW;
|
||||
|
||||
|
||||
|
||||
AFTER STATEMENT IS
|
||||
BEGIN
|
||||
app.log_success (
|
||||
in_log_id => curr_log_id,
|
||||
in_rows_inserted => rows_inserted,
|
||||
in_rows_updated => rows_updated,
|
||||
in_rows_deleted => rows_deleted,
|
||||
in_last_rowid => last_rowid
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN app.app_exception THEN
|
||||
RAISE;
|
||||
WHEN OTHERS THEN
|
||||
app.raise_error('TRIGGER_FAILED', in_table_name);
|
||||
END AFTER STATEMENT;
|
||||
|
||||
END;
|
||||
/
|
||||
62
views/settings_overview.sql
Normal file
62
views/settings_overview.sql
Normal file
@ -0,0 +1,62 @@
|
||||
CREATE OR REPLACE VIEW settings_overview AS
|
||||
WITH x AS (
|
||||
SELECT
|
||||
UPPER('SETT') AS package_name, -- app_actions spec
|
||||
UPPER('GET_') AS prefix
|
||||
FROM DUAL
|
||||
),
|
||||
p AS (
|
||||
SELECT p.procedure_name, a.data_type
|
||||
FROM user_procedures p
|
||||
JOIN user_arguments a
|
||||
ON a.package_name = p.object_name
|
||||
AND a.object_name = p.procedure_name
|
||||
AND a.position = 0
|
||||
JOIN x
|
||||
ON x.package_name = p.object_name
|
||||
),
|
||||
r AS (
|
||||
SELECT
|
||||
r.procedure_name,
|
||||
COUNT(*) AS references
|
||||
FROM (
|
||||
SELECT REPLACE(RTRIM(REGEXP_SUBSTR(UPPER(s.text), x.package_name || '\.' || REPLACE(x.prefix, '_', '\_') || '[^(]*')), x.package_name || '.', '') AS procedure_name
|
||||
FROM user_source s
|
||||
CROSS JOIN x
|
||||
WHERE UPPER(s.text) LIKE '%' || x.package_name || '.' || x.prefix || '%'
|
||||
) r
|
||||
GROUP BY r.procedure_name
|
||||
)
|
||||
SELECT
|
||||
s.ROWID AS rid,
|
||||
s.setting_id,
|
||||
s.setting_context,
|
||||
s.setting_group,
|
||||
s.setting_value,
|
||||
s.description_,
|
||||
s.is_numeric,
|
||||
s.is_date,
|
||||
--
|
||||
p.procedure_name,
|
||||
p.data_type,
|
||||
--
|
||||
CASE
|
||||
WHEN (p.procedure_name IS NULL
|
||||
OR (s.is_numeric = 'Y' AND p.data_type != 'NUMBER')
|
||||
OR (s.is_date = 'Y' AND p.data_type != 'DATE')
|
||||
)
|
||||
THEN app.get_icon('fa-warning', 'Rebuild needed')
|
||||
END AS action,
|
||||
--
|
||||
r.references,
|
||||
--
|
||||
s.updated_by,
|
||||
s.updated_at
|
||||
FROM settings s
|
||||
CROSS JOIN x
|
||||
LEFT JOIN p
|
||||
ON p.procedure_name = x.prefix || s.setting_id
|
||||
LEFT JOIN r
|
||||
ON r.procedure_name = x.prefix || s.setting_id
|
||||
WHERE s.app_id = app.get_app_id();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user