From f1471eba935e01b53030f8f2cbd77174b05b916a Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Thu, 27 Jan 2022 19:49:27 +0100 Subject: [PATCH] Search views by name, column, source... --- apex/f770/application/pages/page_00955.sql | 454 +++++++++++++++++++-- packages/app_actions.spec.sql | 3 +- packages/app_actions.sql | 9 +- views/obj_views.sql | 83 +++- 4 files changed, 499 insertions(+), 50 deletions(-) diff --git a/apex/f770/application/pages/page_00955.sql b/apex/f770/application/pages/page_00955.sql index aafc46e..4ddf821 100644 --- a/apex/f770/application/pages/page_00955.sql +++ b/apex/f770/application/pages/page_00955.sql @@ -99,6 +99,10 @@ wwv_flow_api.create_region_column_group( p_id=>wwv_flow_api.id(16465800743696706) ,p_heading=>'View Info' ); +wwv_flow_api.create_region_column_group( + p_id=>wwv_flow_api.id(21541260254954406) +,p_heading=>'Count' +); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(14929333603872302) ,p_name=>'VIEW_NAME' @@ -140,7 +144,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Referenced Tables' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>60 +,p_display_sequence=>70 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(15339776986749829) ,p_use_group_for=>'BOTH' @@ -168,7 +172,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Referenced Views' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>70 +,p_display_sequence=>80 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(15339776986749829) ,p_use_group_for=>'BOTH' @@ -196,7 +200,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_SINGLE_CHECKBOX' ,p_heading=>'Readonly' ,p_heading_alignment=>'CENTER' -,p_display_sequence=>80 +,p_display_sequence=>100 ,p_value_alignment=>'CENTER' ,p_group_id=>wwv_flow_api.id(16023054809727215) ,p_use_group_for=>'BOTH' @@ -227,7 +231,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Last Ddl Time' ,p_heading_alignment=>'CENTER' -,p_display_sequence=>110 +,p_display_sequence=>130 ,p_value_alignment=>'CENTER' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -253,7 +257,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Used In Objects' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>40 +,p_display_sequence=>50 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(15339627237749828) ,p_use_group_for=>'BOTH' @@ -281,7 +285,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_SINGLE_CHECKBOX' ,p_heading=>'Definer' ,p_heading_alignment=>'CENTER' -,p_display_sequence=>90 +,p_display_sequence=>110 ,p_value_alignment=>'CENTER' ,p_group_id=>wwv_flow_api.id(16023054809727215) ,p_use_group_for=>'BOTH' @@ -311,7 +315,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Used On Pages' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>50 +,p_display_sequence=>60 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(15339627237749828) ,p_use_group_for=>'BOTH' @@ -367,9 +371,9 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Lines' ,p_heading_alignment=>'RIGHT' -,p_display_sequence=>30 +,p_display_sequence=>40 ,p_value_alignment=>'RIGHT' -,p_group_id=>wwv_flow_api.id(16465800743696706) +,p_group_id=>wwv_flow_api.id(21541260254954406) ,p_use_group_for=>'BOTH' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -394,7 +398,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_heading=>'Comments' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>100 +,p_display_sequence=>120 ,p_value_alignment=>'LEFT' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -410,6 +414,57 @@ wwv_flow_api.create_region_column( ,p_duplicate_value=>true ,p_include_in_export=>true ); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(21541015139954404) +,p_name=>'COUNT_COLUMNS' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'COUNT_COLUMNS' +,p_data_type=>'NUMBER' +,p_is_query_only=>true +,p_item_type=>'NATIVE_DISPLAY_ONLY' +,p_heading=>'Columns' +,p_heading_alignment=>'RIGHT' +,p_display_sequence=>30 +,p_value_alignment=>'RIGHT' +,p_group_id=>wwv_flow_api.id(21541260254954406) +,p_use_group_for=>'BOTH' +,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(21541103407954405) +,p_name=>'LIST_COLUMNS' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'LIST_COLUMNS' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_DISPLAY_ONLY' +,p_heading=>'List Columns' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>90 +,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=>false +,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(14929214006872301) ,p_internal_uid=>14929214006872301 @@ -472,7 +527,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14936401793877733) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>5 +,p_display_seq=>6 ,p_column_id=>wwv_flow_api.id(14929499065872303) ,p_is_visible=>true ,p_is_frozen=>false @@ -480,7 +535,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14937363792877737) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>6 +,p_display_seq=>7 ,p_column_id=>wwv_flow_api.id(14929507382872304) ,p_is_visible=>true ,p_is_frozen=>false @@ -488,16 +543,16 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14938205769877740) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>7 +,p_display_seq=>9 ,p_column_id=>wwv_flow_api.id(14929621363872305) -,p_is_visible=>true +,p_is_visible=>false ,p_is_frozen=>false -,p_width=>80 +,p_width=>70 ); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14940055040877744) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>10 +,p_display_seq=>12 ,p_column_id=>wwv_flow_api.id(14929897471872307) ,p_is_visible=>true ,p_is_frozen=>false @@ -506,7 +561,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14955359192006429) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>4 +,p_display_seq=>5 ,p_column_id=>wwv_flow_api.id(14929952501872308) ,p_is_visible=>true ,p_is_frozen=>false @@ -514,16 +569,16 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14965446688031898) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>8 +,p_display_seq=>10 ,p_column_id=>wwv_flow_api.id(14930051725872309) -,p_is_visible=>true +,p_is_visible=>false ,p_is_frozen=>false -,p_width=>80 +,p_width=>70 ); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(14974628174176864) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>3 +,p_display_seq=>4 ,p_column_id=>wwv_flow_api.id(14930167492872310) ,p_is_visible=>true ,p_is_frozen=>false @@ -544,20 +599,190 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(16474175692840824) ,p_view_id=>wwv_flow_api.id(14935014538877722) -,p_display_seq=>2 +,p_display_seq=>3 ,p_column_id=>wwv_flow_api.id(16465704569696705) ,p_is_visible=>true ,p_is_frozen=>false -,p_width=>80 +,p_width=>70 ); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(16643570436750208) ,p_view_id=>wwv_flow_api.id(14935014538877722) +,p_display_seq=>11 +,p_column_id=>wwv_flow_api.id(16466877978696716) +,p_is_visible=>false +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(21562465378800457) +,p_view_id=>wwv_flow_api.id(14935014538877722) +,p_display_seq=>2 +,p_column_id=>wwv_flow_api.id(21541015139954404) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>70 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(21563306768800463) +,p_view_id=>wwv_flow_api.id(14935014538877722) +,p_display_seq=>8 +,p_column_id=>wwv_flow_api.id(21541103407954405) +,p_is_visible=>false +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report( + p_id=>wwv_flow_api.id(36527039231747011) +,p_interactive_grid_id=>wwv_flow_api.id(14929214006872301) +,p_name=>'Columns & Comments' +,p_static_id=>'215923' +,p_type=>'ALTERNATIVE' +,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(36527246760747011) +,p_report_id=>wwv_flow_api.id(36527039231747011) +,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(36527802930747018) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>0 +,p_column_id=>wwv_flow_api.id(14929333603872302) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>300 +,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(36528634015747022) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>6 +,p_column_id=>wwv_flow_api.id(14929499065872303) +,p_is_visible=>false +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36529596014747026) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>7 +,p_column_id=>wwv_flow_api.id(14929507382872304) +,p_is_visible=>false +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36530437991747029) +,p_view_id=>wwv_flow_api.id(36527246760747011) ,p_display_seq=>9 +,p_column_id=>wwv_flow_api.id(14929621363872305) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>70 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36532287262747033) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>12 +,p_column_id=>wwv_flow_api.id(14929897471872307) +,p_is_visible=>false +,p_is_frozen=>false +,p_width=>160 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36547591413875718) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>5 +,p_column_id=>wwv_flow_api.id(14929952501872308) +,p_is_visible=>false +,p_is_frozen=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36557678909901187) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>10 +,p_column_id=>wwv_flow_api.id(14930051725872309) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>70 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36566860396046153) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>4 +,p_column_id=>wwv_flow_api.id(14930167492872310) +,p_is_visible=>false +,p_is_frozen=>false +,p_width=>200 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36577157340163638) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>1 +,p_column_id=>wwv_flow_api.id(14930252402872311) +,p_is_visible=>false +,p_is_frozen=>false +,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(38066407914710113) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>3 +,p_column_id=>wwv_flow_api.id(16465704569696705) +,p_is_visible=>false +,p_is_frozen=>false +,p_width=>70 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(38235802658619497) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>11 ,p_column_id=>wwv_flow_api.id(16466877978696716) ,p_is_visible=>true ,p_is_frozen=>false ); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(43154697600669746) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>2 +,p_column_id=>wwv_flow_api.id(21541015139954404) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>70 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(43155538990669752) +,p_view_id=>wwv_flow_api.id(36527246760747011) +,p_display_seq=>8 +,p_column_id=>wwv_flow_api.id(21541103407954405) +,p_is_visible=>true +,p_is_frozen=>false +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(21547186191979378) +,p_button_sequence=>50 +,p_button_plug_id=>wwv_flow_api.id(14220162747378949) +,p_button_name=>'SEARCH' +,p_button_action=>'SUBMIT' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9145249029569999) +,p_button_is_hot=>'Y' +,p_button_image_alt=>'Search' +,p_button_position=>'BODY' +,p_button_css_classes=>'SEARCH_FIELDS' +,p_grid_new_row=>'N' +,p_grid_new_column=>'Y' +); wwv_flow_api.create_page_button( p_id=>wwv_flow_api.id(15022487988059629) ,p_button_sequence=>10 @@ -572,10 +797,43 @@ wwv_flow_api.create_page_button( ,p_icon_css_classes=>'fa-refresh' ); wwv_flow_api.create_page_button( - p_id=>wwv_flow_api.id(14930403398872313) + p_id=>wwv_flow_api.id(21546578024971053) ,p_button_sequence=>20 ,p_button_plug_id=>wwv_flow_api.id(14220162747378949) +,p_button_name=>'SHOW_SEARCH' +,p_button_static_id=>'BUTTON_SHOW_SEARCH' +,p_button_action=>'DEFINED_BY_DA' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9144574670569995) +,p_button_image_alt=>'Search' +,p_button_position=>'RIGHT_OF_TITLE' +,p_button_execute_validations=>'N' +,p_warn_on_unsaved_changes=>null +,p_icon_css_classes=>'fa-search' +,p_button_cattributes=>'style="margin-right: 0;"' +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(21546844300972203) +,p_button_sequence=>30 +,p_button_plug_id=>wwv_flow_api.id(14220162747378949) +,p_button_name=>'CLOSE_SEARCH' +,p_button_static_id=>'BUTTON_CLOSE_SEARCH' +,p_button_action=>'DEFINED_BY_DA' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9144574670569995) +,p_button_image_alt=>'Close Search' +,p_button_position=>'RIGHT_OF_TITLE' +,p_button_execute_validations=>'N' +,p_warn_on_unsaved_changes=>null +,p_icon_css_classes=>'fa-times' +,p_button_cattributes=>'style="margin-right: 0; display: none;"' +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(14930403398872313) +,p_button_sequence=>40 +,p_button_plug_id=>wwv_flow_api.id(14220162747378949) ,p_button_name=>'REBUILD' +,p_button_static_id=>'BUTTON_REBUILD' ,p_button_action=>'REDIRECT_PAGE' ,p_button_template_options=>'#DEFAULT#' ,p_button_template_id=>wwv_flow_api.id(9145249029569999) @@ -601,6 +859,134 @@ wwv_flow_api.create_page_item( ,p_display_as=>'NATIVE_HIDDEN' ,p_attribute_01=>'Y' ); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(21457026534924150) +,p_name=>'P955_SEARCH_VIEWS' +,p_item_sequence=>30 +,p_item_plug_id=>wwv_flow_api.id(14220162747378949) +,p_prompt=>'View Like' +,p_display_as=>'NATIVE_TEXT_FIELD' +,p_cSize=>30 +,p_grid_row_css_classes=>'HIDDEN' +,p_colspan=>2 +,p_field_template=>wwv_flow_api.id(9142775823569991) +,p_item_css_classes=>'SEARCH_FIELDS' +,p_item_template_options=>'#DEFAULT#' +,p_attribute_01=>'Y' +,p_attribute_02=>'N' +,p_attribute_04=>'TEXT' +,p_attribute_05=>'BOTH' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(21540738826954401) +,p_name=>'P955_SEARCH_SOURCE' +,p_item_sequence=>50 +,p_item_plug_id=>wwv_flow_api.id(14220162747378949) +,p_prompt=>'Source Contains' +,p_display_as=>'NATIVE_TEXT_FIELD' +,p_cSize=>30 +,p_begin_on_new_line=>'N' +,p_colspan=>3 +,p_field_template=>wwv_flow_api.id(9142775823569991) +,p_item_css_classes=>'SEARCH_FIELDS' +,p_item_template_options=>'#DEFAULT#' +,p_attribute_01=>'Y' +,p_attribute_02=>'N' +,p_attribute_04=>'TEXT' +,p_attribute_05=>'BOTH' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(21540881630954402) +,p_name=>'P955_SEARCH_COLUMNS' +,p_item_sequence=>40 +,p_item_plug_id=>wwv_flow_api.id(14220162747378949) +,p_prompt=>'Column Like' +,p_display_as=>'NATIVE_TEXT_FIELD' +,p_cSize=>30 +,p_begin_on_new_line=>'N' +,p_colspan=>2 +,p_field_template=>wwv_flow_api.id(9142775823569991) +,p_item_css_classes=>'SEARCH_FIELDS' +,p_item_template_options=>'#DEFAULT#' +,p_attribute_01=>'Y' +,p_attribute_02=>'N' +,p_attribute_04=>'TEXT' +,p_attribute_05=>'BOTH' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(21540977667954403) +,p_name=>'P955_SHOW_SEARCH' +,p_item_sequence=>60 +,p_item_plug_id=>wwv_flow_api.id(14220162747378949) +,p_display_as=>'NATIVE_HIDDEN' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_da_event( + p_id=>wwv_flow_api.id(21550971914032471) +,p_name=>'CLOSE_SEARCH' +,p_event_sequence=>10 +,p_triggering_element_type=>'BUTTON' +,p_triggering_button_id=>wwv_flow_api.id(21546844300972203) +,p_bind_type=>'bind' +,p_bind_event_type=>'click' +); +wwv_flow_api.create_page_da_action( + p_id=>wwv_flow_api.id(21551386209032476) +,p_event_id=>wwv_flow_api.id(21550971914032471) +,p_event_result=>'TRUE' +,p_action_sequence=>10 +,p_execute_on_page_init=>'N' +,p_action=>'NATIVE_JAVASCRIPT_CODE' +,p_attribute_01=>wwv_flow_string.join(wwv_flow_t_varchar2( +'$(''.SEARCH_FIELDS'').hide();', +'$(''#BUTTON_CLOSE_SEARCH'').hide();', +'$(''#BUTTON_SHOW_SEARCH'').show().focus();', +'$(''#BUTTON_REBUILD'').show();', +'')) +); +wwv_flow_api.create_page_da_event( + p_id=>wwv_flow_api.id(21551749445033713) +,p_name=>'SHOW_SEARCH' +,p_event_sequence=>20 +,p_triggering_element_type=>'BUTTON' +,p_triggering_button_id=>wwv_flow_api.id(21546578024971053) +,p_bind_type=>'bind' +,p_bind_event_type=>'click' +); +wwv_flow_api.create_page_da_action( + p_id=>wwv_flow_api.id(21552635724033714) +,p_event_id=>wwv_flow_api.id(21551749445033713) +,p_event_result=>'TRUE' +,p_action_sequence=>10 +,p_execute_on_page_init=>'N' +,p_action=>'NATIVE_JAVASCRIPT_CODE' +,p_attribute_01=>wwv_flow_string.join(wwv_flow_t_varchar2( +'$(''.t-HeroRegion-col.t-HeroRegion-col--content .HIDDEN'').removeClass(''HIDDEN'');', +'//', +'$(''.SEARCH_FIELDS'').show();', +'$(''#BUTTON_REBUILD'').hide();', +'$(''#BUTTON_SHOW_SEARCH'').hide();', +'$(''#BUTTON_CLOSE_SEARCH'').show().focus();', +'')) +); +wwv_flow_api.create_page_da_action( + p_id=>wwv_flow_api.id(21552181929033714) +,p_event_id=>wwv_flow_api.id(21551749445033713) +,p_event_result=>'TRUE' +,p_action_sequence=>20 +,p_execute_on_page_init=>'Y' +,p_action=>'NATIVE_JAVASCRIPT_CODE' +,p_attribute_01=>wwv_flow_string.join(wwv_flow_t_varchar2( +'$(''.t-HeroRegion-col.t-HeroRegion-col--content .HIDDEN'').removeClass(''HIDDEN'');', +'//', +'$(''.SEARCH_FIELDS'').show();', +'$(''#BUTTON_REBUILD'').hide();', +'$(''#BUTTON_SHOW_SEARCH'').hide();', +'$(''#BUTTON_CLOSE_SEARCH'').show().focus();', +'')) +,p_server_condition_type=>'ITEM_IS_NOT_NULL' +,p_server_condition_expr1=>'P955_SHOW_SEARCH' +); wwv_flow_api.create_page_process( p_id=>wwv_flow_api.id(14930334361872312) ,p_process_sequence=>10 @@ -615,6 +1001,26 @@ wwv_flow_api.create_page_process( ,p_process_when=>'P955_REBUILD' ,p_process_when_type=>'ITEM_IS_NOT_NULL' ); +wwv_flow_api.create_page_process( + p_id=>wwv_flow_api.id(21558331173182171) +,p_process_sequence=>20 +,p_process_point=>'BEFORE_HEADER' +,p_process_type=>'NATIVE_PLSQL' +,p_process_name=>'INIT_DEFAULTS' +,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( +':P955_SHOW_SEARCH := NULL;', +'--', +'IF (:P955_SEARCH_VIEWS IS NOT NULL', +' OR :P955_SEARCH_COLUMNS IS NOT NULL', +' OR :P955_SEARCH_SOURCE IS NOT NULL', +') THEN', +' :P955_VIEW_NAME := NULL;', +' :P955_SHOW_SEARCH := ''Y'';', +'END IF;', +'')) +,p_process_clob_language=>'PLSQL' +,p_error_display_location=>'INLINE_IN_NOTIFICATION' +); wwv_flow_api.component_end; end; / diff --git a/packages/app_actions.spec.sql b/packages/app_actions.spec.sql index eee3435..c69fdb0 100644 --- a/packages/app_actions.spec.sql +++ b/packages/app_actions.spec.sql @@ -273,7 +273,8 @@ CREATE OR REPLACE PACKAGE app_actions AS PROCEDURE clob_to_lines ( in_name VARCHAR2, - in_clob CLOB + in_clob CLOB, + in_offset NUMBER := NULL ); diff --git a/packages/app_actions.sql b/packages/app_actions.sql index e2f98a7..482e23e 100644 --- a/packages/app_actions.sql +++ b/packages/app_actions.sql @@ -782,7 +782,8 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS PROCEDURE clob_to_lines ( in_name VARCHAR2, - in_clob CLOB + in_clob CLOB, + in_offset NUMBER := NULL ) AS clob_len PLS_INTEGER := DBMS_LOB.GETLENGTH(in_clob); @@ -804,15 +805,13 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS DBMS_LOB.READ(in_clob, amount, offset, buffer); END IF; -- - -- - -- CREATE COLLECTION INSTEAD - -- RETURN + -- @TODO: CREATE & RETURN COLLECTION INSTEAD -- IF clob_line > 1 THEN INSERT INTO user_source_views (name, line, text) VALUES ( in_name, - clob_line - 1, + clob_line - 1 - NVL(in_offset, 0), REPLACE(REPLACE(CASE WHEN clob_line = 2 THEN LTRIM(buffer) ELSE buffer END, CHR(13), ''), CHR(10), '') ); END IF; diff --git a/views/obj_views.sql b/views/obj_views.sql index 57e0641..e7e205c 100644 --- a/views/obj_views.sql +++ b/views/obj_views.sql @@ -1,13 +1,18 @@ CREATE OR REPLACE VIEW obj_views AS WITH x AS ( SELECT /*+ MATERIALIZE */ - app.get_app_id() AS app_id, - app.get_item('$VIEW_NAME') AS view_name + app.get_app_id() AS app_id, + app.get_core_app_id() AS core_app_id, + app.get_item('$VIEW_NAME') AS view_name, + -- + UPPER(app.get_item('$SEARCH_VIEWS')) AS search_views, + UPPER(app.get_item('$SEARCH_COLUMNS')) AS search_columns, + LOWER(app.get_item('$SEARCH_SOURCE')) AS search_source FROM DUAL ), r AS ( SELECT - d.name AS view_name, + d.name AS view_name, -- LISTAGG(CASE WHEN d.referenced_type = 'TABLE' THEN '' || d.referenced_name || '' END, ', ') @@ -20,8 +25,9 @@ r AS ( AS referenced_views FROM user_dependencies d CROSS JOIN x - WHERE d.type = 'VIEW' - AND d.name = NVL(x.view_name, d.name) + WHERE d.type = 'VIEW' + AND d.name = NVL(x.view_name, d.name) + AND (d.name LIKE '%' || x.search_views || '%' ESCAPE '\' OR x.search_views IS NULL) GROUP BY d.name ), u AS ( @@ -49,19 +55,58 @@ p AS ( ), s AS ( SELECT - s.name AS view_name, - COUNT(s.line) AS count_lines + s.name AS view_name, + COUNT(s.line) AS count_lines, + -- + MAX(CASE WHEN LOWER(s.text) LIKE '%' || x.search_source || '%' ESCAPE '\' THEN 'Y' END) AS is_found_text FROM user_source_views s + CROSS JOIN x GROUP BY s.name +), +v AS ( + SELECT + v.view_name, + v.read_only, + v.bequeath, + o.last_ddl_time + FROM user_views v + JOIN user_objects o + ON o.object_name = v.view_name + AND o.object_type = 'VIEW' + CROSS JOIN x + WHERE v.view_name = NVL(x.view_name, v.view_name) + AND (v.view_name LIKE '%' || x.search_views || '%' ESCAPE '\' OR x.search_views IS NULL) +), +c AS ( + SELECT + c.table_name AS view_name, + -- + COUNT(c.column_name) AS count_columns, + -- + LOWER(LISTAGG(c.column_name, ', ') WITHIN GROUP (ORDER BY c.column_id)) AS list_columns, + -- + MAX(CASE WHEN c.column_name LIKE x.search_columns || '%' ESCAPE '\' THEN 'Y' END) AS is_found_column + FROM user_tab_cols c + CROSS JOIN x + WHERE c.table_name = NVL(x.view_name, c.table_name) + AND (c.table_name LIKE '%' || x.search_views || '%' ESCAPE '\' OR x.search_views IS NULL) + GROUP BY c.table_name ) SELECT CASE WHEN c.comments LIKE '[%]%' THEN REGEXP_SUBSTR(c.comments, '^\[([^]]+)\]', 1, 1, NULL, 1) ELSE REGEXP_SUBSTR(REGEXP_REPLACE(v.view_name, '^P\d+$', 'PAGE#'), '^[^_]+') - END AS view_group, + END || + CASE WHEN REGEXP_SUBSTR(REGEXP_REPLACE(v.view_name, '^P\d+$', 'PAGE#'), '^[^_]+') = 'OBJ' + AND p.used_on_pages IS NOT NULL + THEN ' - ' || app.get_page_title(REGEXP_REPLACE(p.used_on_pages, '<.*?>', ''), x.core_app_id) + END AS view_group, -- v.view_name, + -- + c.count_columns, + c.list_columns, s.count_lines, -- u.used_in_objects, @@ -69,27 +114,25 @@ SELECT r.referenced_tables, r.referenced_views, -- - NULLIF(v.read_only, 'N') AS is_readonly, + NULLIF(v.read_only, 'N') AS is_readonly, + CASE WHEN v.bequeath = 'DEFINER' THEN 'Y' END AS is_definer, + LTRIM(RTRIM(REGEXP_REPLACE(c.comments, '^\[[^]]+\]\s*', ''))) AS comments, -- - CASE WHEN v.bequeath = 'DEFINER' THEN 'Y' END AS is_definer, - -- - LTRIM(RTRIM(REGEXP_REPLACE(c.comments, '^\[[^]]+\]\s*', ''))) AS comments, - -- - o.last_ddl_time -FROM user_views v -JOIN user_objects o - ON o.object_name = v.view_name - AND o.object_type = 'VIEW' -CROSS JOIN x + v.last_ddl_time +FROM v +JOIN c + ON c.view_name = v.view_name LEFT JOIN r ON r.view_name = v.view_name LEFT JOIN u ON u.view_name = v.view_name LEFT JOIN p ON p.table_name = v.view_name +CROSS JOIN x LEFT JOIN s ON s.view_name = v.view_name LEFT JOIN user_tab_comments c ON c.table_name = v.view_name -WHERE v.view_name = NVL(x.view_name, v.view_name); +WHERE (c.is_found_column = 'Y' OR x.search_columns IS NULL) + AND (s.is_found_text = 'Y' OR x.search_source IS NULL);