From 306c20b215e46cbf0667d9b83dcd85fcc66dcd9f Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Tue, 15 Feb 2022 19:50:39 +0100 Subject: [PATCH] Translations simplified --- apex/f770/application/pages/page_00945.sql | 833 +++++++++--------- .../init_translations.sql | 6 +- packages/app.spec.sql | 26 +- packages/app.sql | 90 +- packages/app_actions.spec.sql | 37 +- packages/app_actions.sql | 140 ++- packages/gen.sql | 3 +- tables/translated_items.sql | 33 + tables/translated_messages.sql | 30 + tables/translation_items.sql | 36 - tables/translations.sql | 30 - views/translated_items_overview.sql | 53 ++ views/translated_messages_overview.sql | 21 + views/translations_mapped.sql | 35 - views/translations_notifications.sql | 22 - views/translations_overview.sql | 109 --- 16 files changed, 731 insertions(+), 773 deletions(-) create mode 100644 tables/translated_items.sql create mode 100644 tables/translated_messages.sql delete mode 100644 tables/translation_items.sql delete mode 100644 tables/translations.sql create mode 100644 views/translated_items_overview.sql create mode 100644 views/translated_messages_overview.sql delete mode 100644 views/translations_mapped.sql delete mode 100644 views/translations_notifications.sql delete mode 100644 views/translations_overview.sql diff --git a/apex/f770/application/pages/page_00945.sql b/apex/f770/application/pages/page_00945.sql index 23be76a..9c0615c 100644 --- a/apex/f770/application/pages/page_00945.sql +++ b/apex/f770/application/pages/page_00945.sql @@ -22,7 +22,7 @@ wwv_flow_api.create_page( ,p_page_template_options=>'#DEFAULT#' ,p_required_role=>wwv_flow_api.id(9823062898204869) ,p_last_updated_by=>'DEV' -,p_last_upd_yyyymmddhh24miss=>'20220203213118' +,p_last_upd_yyyymmddhh24miss=>'20220215182750' ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(24140000721306134) @@ -38,7 +38,19 @@ wwv_flow_api.create_page_plug( ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(24140132535306135) -,p_plug_name=>'Translate Headers' +,p_plug_name=>'Extract from Pages' +,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) +,p_region_template_options=>'#DEFAULT#' +,p_plug_template=>wwv_flow_api.id(9049155795569902) +,p_plug_display_sequence=>30 +,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(24140598189306139) +,p_plug_name=>'Translate Page/App Items' ,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) ,p_region_template_options=>'#DEFAULT#' ,p_plug_template=>wwv_flow_api.id(9049155795569902) @@ -48,57 +60,9 @@ wwv_flow_api.create_page_plug( ,p_attribute_01=>'N' ,p_attribute_02=>'HTML' ); -wwv_flow_api.create_page_plug( - p_id=>wwv_flow_api.id(24140227611306136) -,p_plug_name=>'Buttons' -,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) -,p_region_template_options=>'#DEFAULT#' -,p_plug_template=>wwv_flow_api.id(9049155795569902) -,p_plug_display_sequence=>50 -,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(24140370121306137) -,p_plug_name=>'Columns' -,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) -,p_region_template_options=>'#DEFAULT#' -,p_plug_template=>wwv_flow_api.id(9049155795569902) -,p_plug_display_sequence=>60 -,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(24140414493306138) -,p_plug_name=>'Labels' -,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) -,p_region_template_options=>'#DEFAULT#' -,p_plug_template=>wwv_flow_api.id(9049155795569902) -,p_plug_display_sequence=>70 -,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(24140598189306139) -,p_plug_name=>'Items' -,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) -,p_region_template_options=>'#DEFAULT#' -,p_plug_template=>wwv_flow_api.id(9049155795569902) -,p_plug_display_sequence=>20 -,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(22827839124304501) -,p_plug_name=>'Translation Items [GRID]' +,p_plug_name=>'Translate Page/App Items [GRID]' ,p_parent_plug_id=>wwv_flow_api.id(24140598189306139) ,p_region_template_options=>'#DEFAULT#' ,p_component_template_options=>'#DEFAULT#' @@ -106,7 +70,7 @@ wwv_flow_api.create_page_plug( ,p_plug_display_sequence=>20 ,p_plug_display_point=>'BODY' ,p_query_type=>'TABLE' -,p_query_table=>'TRANSLATIONS_OVERVIEW' +,p_query_table=>'TRANSLATED_ITEMS_OVERVIEW' ,p_include_rowid_column=>false ,p_plug_source_type=>'NATIVE_IG' ,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' @@ -117,7 +81,7 @@ wwv_flow_api.create_page_plug( ,p_prn_width=>297 ,p_prn_height=>210 ,p_prn_orientation=>'HORIZONTAL' -,p_prn_page_header=>'Translation Items [GRID]' +,p_prn_page_header=>'Translate Page/App Items [GRID]' ,p_prn_page_header_font_color=>'#000000' ,p_prn_page_header_font_family=>'Helvetica' ,p_prn_page_header_font_weight=>'normal' @@ -151,49 +115,7 @@ wwv_flow_api.create_region_column_group( ); wwv_flow_api.create_region_column_group( p_id=>wwv_flow_api.id(22941483573325319) -,p_heading=>'Check' -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(22467765792652545) -,p_name=>'PAGE_ID' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'PAGE_ID' -,p_data_type=>'NUMBER' -,p_is_query_only=>false -,p_item_type=>'NATIVE_POPUP_LOV' -,p_heading=>'Page Id' -,p_heading_alignment=>'RIGHT' -,p_display_sequence=>70 -,p_value_alignment=>'RIGHT' -,p_group_id=>wwv_flow_api.id(22940696441325311) -,p_use_group_for=>'BOTH' -,p_attribute_01=>'POPUP' -,p_attribute_02=>'FIRST_ROWSET' -,p_attribute_03=>'N' -,p_attribute_04=>'N' -,p_attribute_05=>'Y' -,p_attribute_06=>'0' -,p_attribute_08=>'800' -,p_is_required=>false -,p_lov_type=>'SHARED' -,p_lov_id=>wwv_flow_api.id(22069438611267708) -,p_lov_display_extra=>true -,p_lov_display_null=>true -,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=>'LOV' -,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_default_type=>'STATIC' -,p_default_expression=>'0' -,p_duplicate_value=>true -,p_include_in_export=>true +,p_heading=>'Item Level' ); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(22467932058652547) @@ -205,7 +127,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'CZ' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>100 +,p_display_sequence=>90 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(22940540139325310) ,p_use_group_for=>'BOTH' @@ -235,7 +157,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'EN' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>90 +,p_display_sequence=>80 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(22940540139325310) ,p_use_group_for=>'BOTH' @@ -255,75 +177,6 @@ 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(22468186490652549) -,p_name=>'OLD_NAME' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'OLD_NAME' -,p_data_type=>'VARCHAR2' -,p_is_query_only=>false -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>40 -,p_attribute_01=>'Y' -,p_filter_is_required=>false -,p_use_as_row_header=>false -,p_enable_sort_group=>false -,p_is_primary_key=>true -,p_duplicate_value=>true -,p_include_in_export=>false -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(22828012768304503) -,p_name=>'APP_ID' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'APP_ID' -,p_data_type=>'NUMBER' -,p_is_query_only=>false -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>30 -,p_attribute_01=>'Y' -,p_filter_is_required=>false -,p_use_as_row_header=>false -,p_enable_sort_group=>true -,p_enable_control_break=>true -,p_is_primary_key=>false -,p_default_type=>'EXPRESSION' -,p_default_language=>'PLSQL' -,p_default_expression=>'app.get_app_id()' -,p_duplicate_value=>true -,p_include_in_export=>false -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(22828250479304505) -,p_name=>'NAME' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'NAME' -,p_data_type=>'VARCHAR2' -,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXT_FIELD' -,p_heading=>'Name' -,p_heading_alignment=>'LEFT' -,p_display_sequence=>60 -,p_value_alignment=>'LEFT' -,p_group_id=>wwv_flow_api.id(22940696441325311) -,p_use_group_for=>'BOTH' -,p_attribute_05=>'BOTH' -,p_is_required=>false -,p_max_length=>32767 -,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(22828502801304508) ,p_name=>'APEX$ROW_ACTION' @@ -349,7 +202,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'SK' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>110 +,p_display_sequence=>100 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(22940540139325310) ,p_use_group_for=>'BOTH' @@ -379,7 +232,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'PL' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>120 +,p_display_sequence=>110 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(22940540139325310) ,p_use_group_for=>'BOTH' @@ -409,7 +262,7 @@ wwv_flow_api.create_region_column( ,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'HU' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>130 +,p_display_sequence=>120 ,p_value_alignment=>'LEFT' ,p_group_id=>wwv_flow_api.id(22940540139325310) ,p_use_group_for=>'BOTH' @@ -429,35 +282,49 @@ 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(22940350976325308) -,p_name=>'OLD_PAGE_ID' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'OLD_PAGE_ID' -,p_data_type=>'NUMBER' -,p_is_query_only=>false -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>50 -,p_attribute_01=>'Y' -,p_use_as_row_header=>false -,p_enable_sort_group=>false -,p_is_primary_key=>true -,p_duplicate_value=>true -,p_include_in_export=>false -); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(22940905279325314) ,p_name=>'ITEM_NAME' ,p_source_type=>'DB_COLUMN' ,p_source_expression=>'ITEM_NAME' ,p_data_type=>'VARCHAR2' -,p_is_query_only=>true -,p_item_type=>'NATIVE_DISPLAY_ONLY' +,p_is_query_only=>false +,p_item_type=>'NATIVE_TEXT_FIELD' ,p_heading=>'Item Name' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>80 +,p_display_sequence=>40 ,p_value_alignment=>'LEFT' -,p_group_id=>wwv_flow_api.id(22941483573325319) +,p_group_id=>wwv_flow_api.id(22940696441325311) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' +,p_is_required=>true +,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_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_duplicate_value=>true +,p_include_in_export=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(24357061121954744) +,p_name=>'ITEM_TYPE' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'ITEM_TYPE' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_DISPLAY_ONLY' +,p_heading=>'Item Type' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>50 +,p_value_alignment=>'LEFT' +,p_group_id=>wwv_flow_api.id(22940696441325311) ,p_use_group_for=>'BOTH' ,p_attribute_02=>'VALUE' ,p_attribute_05=>'PLAIN' @@ -465,13 +332,95 @@ wwv_flow_api.create_region_column( ,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' ,p_filter_is_required=>false ,p_filter_text_case=>'MIXED' -,p_filter_lov_type=>'NONE' +,p_filter_exact_match=>true +,p_filter_lov_type=>'DISTINCT' ,p_use_as_row_header=>false -,p_enable_sort_group=>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 -,p_security_scheme=>wwv_flow_api.id(9556407311505078) +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(24357121201954745) +,p_name=>'IS_PAGE_ITEM' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'IS_PAGE_ITEM' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_SINGLE_CHECKBOX' +,p_heading=>'Page' +,p_heading_alignment=>'CENTER' +,p_display_sequence=>60 +,p_value_alignment=>'CENTER' +,p_group_id=>wwv_flow_api.id(22941483573325319) +,p_use_group_for=>'BOTH' +,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_include_in_export=>true +,p_readonly_condition_type=>'ALWAYS' +,p_readonly_for_each_row=>false +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(24357219088954746) +,p_name=>'IS_APP_ITEM' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'IS_APP_ITEM' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_SINGLE_CHECKBOX' +,p_heading=>'App' +,p_heading_alignment=>'CENTER' +,p_display_sequence=>70 +,p_value_alignment=>'CENTER' +,p_group_id=>wwv_flow_api.id(22941483573325319) +,p_use_group_for=>'BOTH' +,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_include_in_export=>true +,p_readonly_condition_type=>'ALWAYS' +,p_readonly_for_each_row=>false +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(24357345460954747) +,p_name=>'OUT_ITEM_NAME' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'OUT_ITEM_NAME' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>false +,p_item_type=>'NATIVE_HIDDEN' +,p_display_sequence=>30 +,p_attribute_01=>'Y' +,p_filter_is_required=>false +,p_use_as_row_header=>false +,p_enable_sort_group=>false +,p_is_primary_key=>true +,p_duplicate_value=>true +,p_include_in_export=>false ); wwv_flow_api.create_interactive_grid( p_id=>wwv_flow_api.id(22827977802304502) @@ -512,7 +461,7 @@ wwv_flow_api.create_ig_report( ,p_type=>'PRIMARY' ,p_default_view=>'GRID' ,p_show_row_number=>false -,p_settings_area_expanded=>true +,p_settings_area_expanded=>false ); wwv_flow_api.create_ig_report_view( p_id=>wwv_flow_api.id(22834089744313013) @@ -523,26 +472,6 @@ wwv_flow_api.create_ig_report_view( ,p_srv_only_display_columns=>true ,p_edit_mode=>false ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(22834588186313017) -,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>1 -,p_column_id=>wwv_flow_api.id(22828012768304503) -,p_is_visible=>true -,p_is_frozen=>false -); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(22836315646313027) -,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>2 -,p_column_id=>wwv_flow_api.id(22828250479304505) -,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(22839009338313035) ,p_view_id=>wwv_flow_api.id(22834089744313013) @@ -551,22 +480,10 @@ wwv_flow_api.create_ig_report_column( ,p_is_visible=>true ,p_is_frozen=>true ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(22907785704856853) -,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>3 -,p_column_id=>wwv_flow_api.id(22467765792652545) -,p_is_visible=>true -,p_is_frozen=>false -,p_width=>90 -,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(22919254211963696) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>7 +,p_display_seq=>6 ,p_column_id=>wwv_flow_api.id(22467932058652547) ,p_is_visible=>true ,p_is_frozen=>false @@ -574,23 +491,15 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(22920129293963699) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>6 +,p_display_seq=>5 ,p_column_id=>wwv_flow_api.id(22468050419652548) ,p_is_visible=>true ,p_is_frozen=>false ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(22932498954229585) -,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>6 -,p_column_id=>wwv_flow_api.id(22468186490652549) -,p_is_visible=>true -,p_is_frozen=>false -); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(22950458533720959) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>9 +,p_display_seq=>7 ,p_column_id=>wwv_flow_api.id(22940050970325305) ,p_is_visible=>true ,p_is_frozen=>false @@ -598,7 +507,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(22951376920720965) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>10 +,p_display_seq=>8 ,p_column_id=>wwv_flow_api.id(22940112533325306) ,p_is_visible=>true ,p_is_frozen=>false @@ -606,30 +515,65 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(22952214680720970) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>11 +,p_display_seq=>9 ,p_column_id=>wwv_flow_api.id(22940222361325307) ,p_is_visible=>true ,p_is_frozen=>false ); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(22967917560755489) -,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>10 -,p_column_id=>wwv_flow_api.id(22940350976325308) -,p_is_visible=>true -,p_is_frozen=>false -); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(23001374418338149) ,p_view_id=>wwv_flow_api.id(22834089744313013) -,p_display_seq=>4 +,p_display_seq=>1 ,p_column_id=>wwv_flow_api.id(22940905279325314) ,p_is_visible=>true ,p_is_frozen=>false +,p_width=>320 +,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(24456860065047805) +,p_view_id=>wwv_flow_api.id(22834089744313013) +,p_display_seq=>2 +,p_column_id=>wwv_flow_api.id(24357061121954744) +,p_is_visible=>false +,p_is_frozen=>false +,p_width=>120 +,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(24457758325047812) +,p_view_id=>wwv_flow_api.id(22834089744313013) +,p_display_seq=>3 +,p_column_id=>wwv_flow_api.id(24357121201954745) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>60 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(24458616798047814) +,p_view_id=>wwv_flow_api.id(22834089744313013) +,p_display_seq=>4 +,p_column_id=>wwv_flow_api.id(24357219088954746) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>60 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(24489615163301517) +,p_view_id=>wwv_flow_api.id(22834089744313013) +,p_display_seq=>13 +,p_column_id=>wwv_flow_api.id(24357345460954747) +,p_is_visible=>true +,p_is_frozen=>false ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(45292227752629868) -,p_plug_name=>'Translation Items' +,p_plug_name=>'Translate Page/App Items' ,p_parent_plug_id=>wwv_flow_api.id(24140598189306139) ,p_icon_css_classes=>'fa-language' ,p_region_template_options=>'#DEFAULT#' @@ -638,18 +582,18 @@ wwv_flow_api.create_page_plug( ,p_plug_display_point=>'BODY' ,p_plug_source=>wwv_flow_string.join(wwv_flow_t_varchar2( 'Create list of translations for apps/pages mapped to app/page translation items. &P945_USECASE!RAW.
', -'I would suggest to use prefixes for headers, labels, buttons, columns... so you can guess from name where it is used on page.')) +'I would suggest to use prefixes for headers, buttons, columns, labels... so you can see where it is used on page just from the name.')) ,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(24140603355306140) -,p_plug_name=>'Notifications' +,p_plug_name=>'Translate Messages' ,p_parent_plug_id=>wwv_flow_api.id(24140000721306134) ,p_region_template_options=>'#DEFAULT#' ,p_plug_template=>wwv_flow_api.id(9049155795569902) -,p_plug_display_sequence=>80 +,p_plug_display_sequence=>20 ,p_plug_display_point=>'BODY' ,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' ,p_attribute_01=>'N' @@ -657,7 +601,7 @@ wwv_flow_api.create_page_plug( ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(24138784317306121) -,p_plug_name=>'Notifications' +,p_plug_name=>'Translate Messages' ,p_parent_plug_id=>wwv_flow_api.id(24140603355306140) ,p_icon_css_classes=>'fa-alert' ,p_region_template_options=>'#DEFAULT#' @@ -671,7 +615,7 @@ wwv_flow_api.create_page_plug( ); wwv_flow_api.create_page_plug( p_id=>wwv_flow_api.id(24138839294306122) -,p_plug_name=>'Notifications [GRID]' +,p_plug_name=>'Translate Messages [GRID]' ,p_region_name=>'NOTIFICATIONS' ,p_parent_plug_id=>wwv_flow_api.id(24140603355306140) ,p_region_template_options=>'#DEFAULT#' @@ -680,17 +624,18 @@ wwv_flow_api.create_page_plug( ,p_plug_display_sequence=>20 ,p_plug_display_point=>'BODY' ,p_query_type=>'TABLE' -,p_query_table=>'TRANSLATIONS' -,p_query_where=>'app_id = app.get_app_id()' -,p_include_rowid_column=>true +,p_query_table=>'TRANSLATED_MESSAGES_OVERVIEW' +,p_include_rowid_column=>false ,p_plug_source_type=>'NATIVE_IG' ,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' +,p_prn_content_disposition=>'ATTACHMENT' +,p_prn_document_header=>'APEX' ,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=>'Notifications [GRID]' +,p_prn_page_header=>'Translate Messages [GRID]' ,p_prn_page_header_font_color=>'#000000' ,p_prn_page_header_font_family=>'Helvetica' ,p_prn_page_header_font_weight=>'normal' @@ -714,51 +659,9 @@ wwv_flow_api.create_page_plug( ,p_prn_page_footer_alignment=>'CENTER' ,p_prn_border_color=>'#666666' ); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(24139091347306124) -,p_name=>'APP_ID' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'APP_ID' -,p_data_type=>'NUMBER' -,p_is_query_only=>false -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>10 -,p_attribute_01=>'Y' -,p_use_as_row_header=>false -,p_enable_sort_group=>true -,p_enable_control_break=>true -,p_is_primary_key=>false -,p_duplicate_value=>true -,p_include_in_export=>false -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(24139152344306125) -,p_name=>'NAME' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'NAME' -,p_data_type=>'VARCHAR2' -,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXT_FIELD' -,p_heading=>'Name' -,p_heading_alignment=>'LEFT' -,p_display_sequence=>20 -,p_value_alignment=>'LEFT' -,p_attribute_05=>'BOTH' -,p_is_required=>true -,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_group( + p_id=>wwv_flow_api.id(24515270105735605) +,p_heading=>'Values' ); wwv_flow_api.create_region_column( p_id=>wwv_flow_api.id(24139232950306126) @@ -767,15 +670,14 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'VALUE_EN' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXTAREA' -,p_heading=>'Value En' +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'EN' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>30 +,p_display_sequence=>50 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' +,p_group_id=>wwv_flow_api.id(24515270105735605) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' ,p_is_required=>false ,p_max_length=>256 ,p_enable_filter=>true @@ -797,15 +699,14 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'VALUE_CZ' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXTAREA' -,p_heading=>'Value Cz' +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'CZ' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>40 +,p_display_sequence=>60 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' +,p_group_id=>wwv_flow_api.id(24515270105735605) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' ,p_is_required=>false ,p_max_length=>256 ,p_enable_filter=>true @@ -827,15 +728,14 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'VALUE_SK' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXTAREA' -,p_heading=>'Value Sk' +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'SK' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>50 +,p_display_sequence=>70 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' +,p_group_id=>wwv_flow_api.id(24515270105735605) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' ,p_is_required=>false ,p_max_length=>256 ,p_enable_filter=>true @@ -857,15 +757,14 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'VALUE_PL' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXTAREA' -,p_heading=>'Value Pl' +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'PL' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>60 +,p_display_sequence=>80 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' +,p_group_id=>wwv_flow_api.id(24515270105735605) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' ,p_is_required=>false ,p_max_length=>256 ,p_enable_filter=>true @@ -887,15 +786,14 @@ wwv_flow_api.create_region_column( ,p_source_expression=>'VALUE_HU' ,p_data_type=>'VARCHAR2' ,p_is_query_only=>false -,p_item_type=>'NATIVE_TEXTAREA' -,p_heading=>'Value Hu' +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'HU' ,p_heading_alignment=>'LEFT' -,p_display_sequence=>70 +,p_display_sequence=>90 ,p_value_alignment=>'LEFT' -,p_attribute_01=>'Y' -,p_attribute_02=>'N' -,p_attribute_03=>'N' -,p_attribute_04=>'BOTH' +,p_group_id=>wwv_flow_api.id(24515270105735605) +,p_use_group_for=>'BOTH' +,p_attribute_05=>'BOTH' ,p_is_required=>false ,p_max_length=>256 ,p_enable_filter=>true @@ -911,60 +809,79 @@ wwv_flow_api.create_region_column( ,p_include_in_export=>true ); wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(24139782317306131) -,p_name=>'UPDATED_BY' + p_id=>wwv_flow_api.id(24357663353954750) +,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(24514851444735601) +,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(24515383006735606) +,p_name=>'OUT_MESSAGE' ,p_source_type=>'DB_COLUMN' -,p_source_expression=>'UPDATED_BY' +,p_source_expression=>'OUT_MESSAGE' ,p_data_type=>'VARCHAR2' -,p_is_query_only=>true +,p_is_query_only=>false ,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>80 +,p_display_sequence=>30 ,p_attribute_01=>'Y' ,p_use_as_row_header=>false ,p_enable_sort_group=>true ,p_enable_control_break=>true -,p_is_primary_key=>false -,p_include_in_export=>false -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(24139886716306132) -,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_HIDDEN' -,p_display_sequence=>90 -,p_attribute_01=>'Y' -,p_use_as_row_header=>false -,p_enable_sort_group=>true -,p_enable_control_break=>true -,p_is_primary_key=>false -,p_include_in_export=>false -); -wwv_flow_api.create_region_column( - p_id=>wwv_flow_api.id(24139910406306133) -,p_name=>'ROWID' -,p_source_type=>'DB_COLUMN' -,p_source_expression=>'ROWID' -,p_data_type=>'ROWID' -,p_item_type=>'NATIVE_HIDDEN' -,p_display_sequence=>100 -,p_attribute_01=>'Y' -,p_use_as_row_header=>false -,p_enable_sort_group=>false ,p_is_primary_key=>true +,p_duplicate_value=>true ,p_include_in_export=>false ); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(24515422197735607) +,p_name=>'MESSAGE' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'MESSAGE' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>false +,p_item_type=>'NATIVE_TEXT_FIELD' +,p_heading=>'Message' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>40 +,p_value_alignment=>'LEFT' +,p_attribute_05=>'BOTH' +,p_is_required=>true +,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_interactive_grid( p_id=>wwv_flow_api.id(24138900561306123) ,p_internal_uid=>24138900561306123 -,p_is_editable=>false +,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=>true +,p_select_first_row=>false ,p_fixed_row_height=>true -,p_pagination_type=>'SCROLL' +,p_pagination_type=>'SET' ,p_show_total_row_count=>true ,p_show_toolbar=>true ,p_toolbar_buttons=>'SEARCH_COLUMN:SEARCH_FIELD:ACTIONS_MENU:SAVE' @@ -997,30 +914,15 @@ wwv_flow_api.create_ig_report_view( p_id=>wwv_flow_api.id(24245504310421082) ,p_report_id=>wwv_flow_api.id(24245329583421081) ,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(24246062251421083) -,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>1 -,p_column_id=>wwv_flow_api.id(24139091347306124) -,p_is_visible=>true -,p_is_frozen=>false -); -wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(24246992240421087) -,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>2 -,p_column_id=>wwv_flow_api.id(24139152344306125) -,p_is_visible=>true -,p_is_frozen=>false -); wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(24247811920421092) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>3 +,p_display_seq=>2 ,p_column_id=>wwv_flow_api.id(24139232950306126) ,p_is_visible=>true ,p_is_frozen=>false @@ -1028,7 +930,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(24248746047421096) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>4 +,p_display_seq=>3 ,p_column_id=>wwv_flow_api.id(24139369856306127) ,p_is_visible=>true ,p_is_frozen=>false @@ -1036,7 +938,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(24249685003421098) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>5 +,p_display_seq=>4 ,p_column_id=>wwv_flow_api.id(24139435249306128) ,p_is_visible=>true ,p_is_frozen=>false @@ -1044,7 +946,7 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(24250532159421100) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>6 +,p_display_seq=>5 ,p_column_id=>wwv_flow_api.id(24139550710306129) ,p_is_visible=>true ,p_is_frozen=>false @@ -1052,34 +954,51 @@ wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column( p_id=>wwv_flow_api.id(24251411550421102) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>7 +,p_display_seq=>6 ,p_column_id=>wwv_flow_api.id(24139634470306130) ,p_is_visible=>true ,p_is_frozen=>false ); wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(24252346697421104) + p_id=>wwv_flow_api.id(24521148675740514) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>8 -,p_column_id=>wwv_flow_api.id(24139782317306131) +,p_display_seq=>0 +,p_column_id=>wwv_flow_api.id(24357663353954750) +,p_is_visible=>true +,p_is_frozen=>true +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(24541044245385511) +,p_view_id=>wwv_flow_api.id(24245504310421082) +,p_display_seq=>12 +,p_column_id=>wwv_flow_api.id(24515383006735606) ,p_is_visible=>true ,p_is_frozen=>false ); wwv_flow_api.create_ig_report_column( - p_id=>wwv_flow_api.id(24253221792421106) + p_id=>wwv_flow_api.id(24541924637385514) ,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>9 -,p_column_id=>wwv_flow_api.id(24139886716306132) +,p_display_seq=>2 +,p_column_id=>wwv_flow_api.id(24515422197735607) ,p_is_visible=>true ,p_is_frozen=>false +,p_width=>400 +,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(24254175264421108) -,p_view_id=>wwv_flow_api.id(24245504310421082) -,p_display_seq=>10 -,p_column_id=>wwv_flow_api.id(24139910406306133) -,p_is_visible=>true -,p_is_frozen=>false +wwv_flow_api.create_page_plug( + p_id=>wwv_flow_api.id(24357401411954748) +,p_plug_name=>'TRANSLATIONS' +,p_region_template_options=>'#DEFAULT#' +,p_plug_template=>wwv_flow_api.id(9049155795569902) +,p_plug_display_sequence=>20 +,p_include_in_reg_disp_sel_yn=>'Y' +,p_plug_display_point=>'BODY' +,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' +,p_plug_display_condition_type=>'NEVER' +,p_attribute_01=>'N' +,p_attribute_02=>'HTML' ); wwv_flow_api.create_page_button( p_id=>wwv_flow_api.id(22467884641652546) @@ -1094,17 +1013,18 @@ wwv_flow_api.create_page_button( ,p_button_redirect_url=>'f?p=&APP_ID.:945:&SESSION.::&DEBUG.:945::' ,p_icon_css_classes=>'fa-refresh' ); -wwv_flow_api.component_end; -end; -/ -begin -wwv_flow_api.component_begin ( - p_version_yyyy_mm_dd=>'2021.04.15' -,p_release=>'21.1.7' -,p_default_workspace_id=>9014660246496943 -,p_default_application_id=>770 -,p_default_id_offset=>0 -,p_default_owner=>'CORE' +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(24515131990735604) +,p_button_sequence=>10 +,p_button_plug_id=>wwv_flow_api.id(24138784317306121) +,p_button_name=>'REFRESH_NOTIFICATIONS' +,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.:945:&SESSION.::&DEBUG.:945::' +,p_icon_css_classes=>'fa-refresh' ); wwv_flow_api.create_page_item( p_id=>wwv_flow_api.id(22941582140325320) @@ -1114,6 +1034,14 @@ 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(24357504997954749) +,p_name=>'H945_TRANSLATE_ITEMS' +,p_item_sequence=>10 +,p_item_plug_id=>wwv_flow_api.id(24357401411954748) +,p_display_as=>'NATIVE_HIDDEN' +,p_attribute_01=>'Y' +); wwv_flow_api.create_page_computation( p_id=>wwv_flow_api.id(22941627257325321) ,p_computation_sequence=>10 @@ -1132,25 +1060,19 @@ wwv_flow_api.create_page_process( ,p_process_point=>'AFTER_SUBMIT' ,p_region_id=>wwv_flow_api.id(22827839124304501) ,p_process_type=>'NATIVE_IG_DML' -,p_process_name=>'SET_TRANSLATION_ITEMS' +,p_process_name=>'SAVE_TRANSLATED_ITEMS' ,p_attribute_01=>'PLSQL_CODE' ,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2( -'app_actions.save_translations_overview (', -' in_action => :APEX$ROW_STATUS,', -' in_app_id => COALESCE(:APP_ID, app.get_app_id()),', -' in_old_name => :OLD_NAME,', -' in_old_page_id => :OLD_PAGE_ID,', -' in_name => :NAME,', -' in_page_id => :PAGE_ID,', -' in_value_en => :VALUE_EN,', -' in_value_cz => :VALUE_CZ,', -' in_value_sk => :VALUE_SK,', -' in_value_pl => :VALUE_PL,', -' in_value_hu => :VALUE_HU', +'app_actions.save_translated_items (', +' in_action => :APEX$ROW_STATUS,', +' out_item_name => :OUT_ITEM_NAME,', +' in_item_name => :ITEM_NAME,', +' in_value_en => :VALUE_EN,', +' in_value_cz => :VALUE_CZ,', +' in_value_sk => :VALUE_SK,', +' in_value_pl => :VALUE_PL,', +' in_value_hu => :VALUE_HU', ');', -'--', -':NAME_OLD := NVL(:NAME, :NAME_OLD);', -':PAGE_ID_OLD := NVL(:PAGE_ID, 0);', '')) ,p_attribute_05=>'Y' ,p_attribute_06=>'N' @@ -1159,3 +1081,40 @@ wwv_flow_api.create_page_process( wwv_flow_api.component_end; end; / +begin +wwv_flow_api.component_begin ( + p_version_yyyy_mm_dd=>'2021.04.15' +,p_release=>'21.1.7' +,p_default_workspace_id=>9014660246496943 +,p_default_application_id=>770 +,p_default_id_offset=>0 +,p_default_owner=>'CORE' +); +wwv_flow_api.create_page_process( + p_id=>wwv_flow_api.id(24514949424735602) +,p_process_sequence=>20 +,p_process_point=>'AFTER_SUBMIT' +,p_region_id=>wwv_flow_api.id(24138839294306122) +,p_process_type=>'NATIVE_IG_DML' +,p_process_name=>'SAVE_TRANSLATED_MESSAGES' +,p_attribute_01=>'PLSQL_CODE' +,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2( +'app_actions.save_translated_messages (', +' in_action => :APEX$ROW_STATUS,', +' out_message => :OUT_MESSAGE,', +' in_message => :MESSAGE,', +' in_value_en => :VALUE_EN,', +' in_value_cz => :VALUE_CZ,', +' in_value_sk => :VALUE_SK,', +' in_value_pl => :VALUE_PL,', +' in_value_hu => :VALUE_HU', +');', +'')) +,p_attribute_05=>'Y' +,p_attribute_06=>'N' +,p_error_display_location=>'INLINE_IN_NOTIFICATION' +); +null; +wwv_flow_api.component_end; +end; +/ diff --git a/apex/f770/application/shared_components/logic/application_processes/init_translations.sql b/apex/f770/application/shared_components/logic/application_processes/init_translations.sql index 97bf613..eb528cd 100644 --- a/apex/f770/application/shared_components/logic/application_processes/init_translations.sql +++ b/apex/f770/application/shared_components/logic/application_processes/init_translations.sql @@ -20,10 +20,10 @@ wwv_flow_api.create_flow_process( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( '-- load translations', 'FOR c IN (', -' SELECT t.name, t.item_name', -' FROM translations_mapped t', +' SELECT t.item_name', +' FROM translated_items t', ') LOOP', -' app.set_item(c.item_name, app.get_translation(c.name), in_raise => FALSE);', +' app.set_item(c.item_name, app.get_translated_item(c.item_name), in_raise => FALSE);', 'END LOOP;')) ,p_process_clob_language=>'PLSQL' ); diff --git a/packages/app.spec.sql b/packages/app.spec.sql index 481f448..bb4bd99 100644 --- a/packages/app.spec.sql +++ b/packages/app.spec.sql @@ -209,15 +209,27 @@ CREATE OR REPLACE PACKAGE app AS -- - -- Translate page item + -- Translate page/app item -- - FUNCTION get_translation ( - in_name translation_items.name%TYPE, - in_page_id translation_items.page_id%TYPE := NULL, - in_app_id translation_items.app_id%TYPE := NULL, - in_lang users.lang_id%TYPE := NULL + FUNCTION get_translated_item ( + in_name VARCHAR2, + in_page_id navigation.page_id%TYPE := NULL, + in_app_id navigation.app_id%TYPE := NULL, + in_lang users.lang_id%TYPE := NULL ) - RETURN translations.value_en%TYPE; + RETURN VARCHAR2; + + + + -- + -- Translate message + -- + FUNCTION get_translated_message ( + in_name VARCHAR2, + in_app_id navigation.app_id%TYPE := NULL, + in_lang users.lang_id%TYPE := NULL + ) + RETURN VARCHAR2; diff --git a/packages/app.sql b/packages/app.sql index f2e4562..4845552 100644 --- a/packages/app.sql +++ b/packages/app.sql @@ -247,50 +247,66 @@ CREATE OR REPLACE PACKAGE BODY app AS - FUNCTION get_translation ( - in_name translation_items.name%TYPE, - in_page_id translation_items.page_id%TYPE := NULL, - in_app_id translation_items.app_id%TYPE := NULL, - in_lang users.lang_id%TYPE := NULL + FUNCTION get_translated_item ( + in_name VARCHAR2, + in_page_id navigation.page_id%TYPE := NULL, + in_app_id navigation.app_id%TYPE := NULL, + in_lang users.lang_id%TYPE := NULL ) - RETURN translations.value_en%TYPE + RETURN VARCHAR2 AS - out_value translation_items.value_en%TYPE; + out_value translated_items.value_en%TYPE; BEGIN -- how often do you add new languages? - BEGIN - SELECT - CASE COALESCE(in_lang, app.get_user_lang(), 'EN') - WHEN 'CZ' THEN MIN(t.value_cz) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) - WHEN 'SK' THEN MIN(t.value_sk) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) - WHEN 'PL' THEN MIN(t.value_pl) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) - WHEN 'HU' THEN MIN(t.value_hu) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) - ELSE MIN(t.value_en) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) END - INTO out_value - FROM translation_items t - WHERE t.app_id = COALESCE(in_app_id, app.get_app_id()) - AND t.page_id IN (0, COALESCE(in_page_id, app.get_page_id())) - AND t.name = in_name; - EXCEPTION - WHEN NO_DATA_FOUND THEN - SELECT - CASE COALESCE(in_lang, app.get_user_lang(), 'EN') - WHEN 'CZ' THEN t.value_cz - WHEN 'SK' THEN t.value_sk - WHEN 'PL' THEN t.value_pl - WHEN 'HU' THEN t.value_hu - ELSE t.value_en END - INTO out_value - FROM translations t - WHERE t.app_id = COALESCE(in_app_id, app.get_app_id()) - AND t.name = in_name; - END; + SELECT + CASE COALESCE(in_lang, app.get_user_lang(), 'EN') + WHEN 'CZ' THEN MIN(t.value_cz) KEEP (DENSE_RANK FIRST ORDER BY t.item_name DESC) + WHEN 'SK' THEN MIN(t.value_sk) KEEP (DENSE_RANK FIRST ORDER BY t.item_name DESC) + WHEN 'PL' THEN MIN(t.value_pl) KEEP (DENSE_RANK FIRST ORDER BY t.item_name DESC) + WHEN 'HU' THEN MIN(t.value_hu) KEEP (DENSE_RANK FIRST ORDER BY t.item_name DESC) + ELSE MIN(t.value_en) KEEP (DENSE_RANK FIRST ORDER BY t.item_name DESC) END + INTO out_value + FROM translated_items t + WHERE t.app_id = COALESCE(in_app_id, app.get_app_id()) + AND t.item_name IN ( + in_name, + REGEXP_REPLACE(in_name, '^([A-Z]+)[_]', '\1' || COALESCE(in_page_id, app.get_page_id()) || '_'), + REGEXP_REPLACE(in_name, '^([A-Z]+)[_]', '\1' || '0_') + ); + -- + RETURN out_value; + EXCEPTION + WHEN NO_DATA_FOUND THEN + RETURN NULL; + END; + + + + FUNCTION get_translated_message ( + in_name VARCHAR2, + in_app_id navigation.app_id%TYPE := NULL, + in_lang users.lang_id%TYPE := NULL + ) + RETURN VARCHAR2 + AS + out_value translated_messages.value_en%TYPE; + BEGIN + -- how often do you add new languages? + SELECT + CASE COALESCE(in_lang, app.get_user_lang(), 'EN') + WHEN 'CZ' THEN t.value_cz + WHEN 'SK' THEN t.value_sk + WHEN 'PL' THEN t.value_pl + WHEN 'HU' THEN t.value_hu + ELSE t.value_en END + INTO out_value + FROM translated_messages t + WHERE t.app_id = COALESCE(in_app_id, app.get_app_id()) + AND t.message = in_name; -- RETURN out_value; EXCEPTION WHEN NO_DATA_FOUND THEN - -- app.log_warning() ? - -- create translation ? RETURN NULL; END; @@ -2897,7 +2913,7 @@ CREATE OR REPLACE PACKAGE BODY app AS END IF; -- translate message - out_result.message := NVL(app.get_translation(out_result.message), out_result.message); + out_result.message := NVL(app.get_translated_message(out_result.message), out_result.message); -- show only the latest error message to common users /* diff --git a/packages/app_actions.spec.sql b/packages/app_actions.spec.sql index 08fdfc8..5eb6be8 100644 --- a/packages/app_actions.spec.sql +++ b/packages/app_actions.spec.sql @@ -365,18 +365,31 @@ CREATE OR REPLACE PACKAGE app_actions AS -- -- Update translations -- - PROCEDURE save_translations_overview ( - in_action CHAR, - in_app_id translations_overview.app_id%TYPE, - in_old_name translations_overview.old_name%TYPE, - in_old_page_id translations_overview.old_page_id%TYPE, - in_name translations_overview.name%TYPE, - in_page_id translations_overview.page_id%TYPE, - in_value_en translations_overview.value_en%TYPE := NULL, - in_value_cz translations_overview.value_cz%TYPE := NULL, - in_value_sk translations_overview.value_sk%TYPE := NULL, - in_value_pl translations_overview.value_pl%TYPE := NULL, - in_value_hu translations_overview.value_hu%TYPE := NULL + PROCEDURE save_translated_items ( + in_action CHAR, + out_item_name IN OUT translated_items_overview.out_item_name%TYPE, + in_item_name translated_items_overview.item_name%TYPE, + in_value_en translated_items_overview.value_en%TYPE, + in_value_cz translated_items_overview.value_cz%TYPE, + in_value_sk translated_items_overview.value_sk%TYPE, + in_value_pl translated_items_overview.value_pl%TYPE, + in_value_hu translated_items_overview.value_hu%TYPE + ); + + + + -- + -- Update translations + -- + PROCEDURE save_translated_messages ( + in_action CHAR, + out_message IN OUT translated_messages_overview.out_message%TYPE, + in_message translated_messages_overview.message%TYPE, + in_value_en translated_messages_overview.value_en%TYPE, + in_value_cz translated_messages_overview.value_cz%TYPE, + in_value_sk translated_messages_overview.value_sk%TYPE, + in_value_pl translated_messages_overview.value_pl%TYPE, + in_value_hu translated_messages_overview.value_hu%TYPE ); END; diff --git a/packages/app_actions.sql b/packages/app_actions.sql index f121a8a..1605ddf 100644 --- a/packages/app_actions.sql +++ b/packages/app_actions.sql @@ -279,8 +279,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS WHEN app.app_exception THEN RAISE; WHEN OTHERS THEN - app.log_error(); - RAISE; + app.raise_error(); END; @@ -353,8 +352,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS WHEN app.app_exception THEN RAISE; WHEN OTHERS THEN - app.log_error(); - RAISE; + app.raise_error(); END; @@ -625,8 +623,7 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS WHEN app.app_exception THEN RAISE; WHEN OTHERS THEN - app.log_error(); - RAISE; + app.raise_error(); END; @@ -1141,54 +1138,111 @@ CREATE OR REPLACE PACKAGE BODY app_actions AS - PROCEDURE save_translations_overview ( - in_action CHAR, - in_app_id translations_overview.app_id%TYPE, - in_old_name translations_overview.old_name%TYPE, - in_old_page_id translations_overview.old_page_id%TYPE, - in_name translations_overview.name%TYPE, - in_page_id translations_overview.page_id%TYPE, - in_value_en translations_overview.value_en%TYPE := NULL, - in_value_cz translations_overview.value_cz%TYPE := NULL, - in_value_sk translations_overview.value_sk%TYPE := NULL, - in_value_pl translations_overview.value_pl%TYPE := NULL, - in_value_hu translations_overview.value_hu%TYPE := NULL + PROCEDURE save_translated_items ( + in_action CHAR, + out_item_name IN OUT translated_items_overview.out_item_name%TYPE, + in_item_name translated_items_overview.item_name%TYPE, + in_value_en translated_items_overview.value_en%TYPE, + in_value_cz translated_items_overview.value_cz%TYPE, + in_value_sk translated_items_overview.value_sk%TYPE, + in_value_pl translated_items_overview.value_pl%TYPE, + in_value_hu translated_items_overview.value_hu%TYPE ) AS - rec translation_items%ROWTYPE; + rec translated_items%ROWTYPE; + v_log_id logs.log_id%TYPE; BEGIN - app.log_module(in_action, in_old_page_id, in_page_id, in_old_name, in_name); + v_log_id := app.log_module_json ( + 'action', in_action, + 'old_item_name', out_item_name, + 'item_name', in_item_name + ); -- - rec.app_id := in_app_id; - rec.page_id := NVL(in_page_id, 0); - rec.name := in_name; - rec.value_en := in_value_en; - rec.value_cz := in_value_cz; - rec.value_sk := in_value_sk; - rec.value_pl := in_value_pl; - rec.value_hu := in_value_hu; + rec.app_id := app.get_app_id(); + rec.item_name := in_item_name; + rec.value_en := in_value_en; + rec.value_cz := in_value_cz; + rec.value_sk := in_value_sk; + rec.value_pl := in_value_pl; + rec.value_hu := in_value_hu; + rec.updated_by := app.get_user_id(); + rec.updated_at := SYSDATE; -- IF in_action = 'D' THEN - DELETE FROM translation_items t - WHERE t.app_id = in_app_id - AND t.page_id = in_old_page_id - AND t.name = in_old_name; + DELETE FROM translated_items t + WHERE t.app_id = rec.app_id + AND t.item_name = out_item_name; + ELSE + UPDATE translated_items t + SET ROW = rec + WHERE t.app_id = rec.app_id + AND t.item_name = out_item_name; -- - app.log_success(); - RETURN; + IF SQL%ROWCOUNT = 0 THEN + INSERT INTO translated_items + VALUES rec; + END IF; END IF; -- - UPDATE translation_items t - SET ROW = rec - WHERE t.app_id = in_app_id - AND t.page_id = in_old_page_id - AND t.name = in_old_name; + out_item_name := rec.item_name; -- - IF SQL%ROWCOUNT = 0 THEN - INSERT INTO translation_items - VALUES rec; + app.log_success(v_log_id); + EXCEPTION + WHEN app.app_exception THEN + RAISE; + WHEN OTHERS THEN + app.raise_error(); + END; + + + + PROCEDURE save_translated_messages ( + in_action CHAR, + out_message IN OUT translated_messages_overview.out_message%TYPE, + in_message translated_messages_overview.message%TYPE, + in_value_en translated_messages_overview.value_en%TYPE, + in_value_cz translated_messages_overview.value_cz%TYPE, + in_value_sk translated_messages_overview.value_sk%TYPE, + in_value_pl translated_messages_overview.value_pl%TYPE, + in_value_hu translated_messages_overview.value_hu%TYPE + ) AS + rec translated_messages%ROWTYPE; + v_log_id logs.log_id%TYPE; + BEGIN + v_log_id := app.log_module_json ( + 'action', in_action, + 'old_message', out_message, + 'message', in_message + ); + -- + rec.app_id := app.get_app_id(); + rec.message := in_message; + rec.value_en := in_value_en; + rec.value_cz := in_value_cz; + rec.value_sk := in_value_sk; + rec.value_pl := in_value_pl; + rec.value_hu := in_value_hu; + rec.updated_by := app.get_user_id(); + rec.updated_at := SYSDATE; + -- + IF in_action = 'D' THEN + DELETE FROM translated_messages t + WHERE t.app_id = rec.app_id + AND t.message = out_message; + ELSE + UPDATE translated_messages t + SET ROW = rec + WHERE t.app_id = rec.app_id + AND t.message = out_message; + -- + IF SQL%ROWCOUNT = 0 THEN + INSERT INTO translated_messages + VALUES rec; + END IF; END IF; -- - app.log_success(); + out_message := rec.message; + -- + app.log_success(v_log_id); EXCEPTION WHEN app.app_exception THEN RAISE; diff --git a/packages/gen.sql b/packages/gen.sql index 737161c..fcf8317 100644 --- a/packages/gen.sql +++ b/packages/gen.sql @@ -327,8 +327,7 @@ CREATE OR REPLACE PACKAGE BODY gen AS DBMS_OUTPUT.PUT_LINE(' WHEN app.app_exception THEN'); DBMS_OUTPUT.PUT_LINE(' RAISE;'); DBMS_OUTPUT.PUT_LINE(' WHEN OTHERS THEN'); - DBMS_OUTPUT.PUT_LINE(' app.log_error();'); - DBMS_OUTPUT.PUT_LINE(' RAISE;'); + DBMS_OUTPUT.PUT_LINE(' app.raise_error();'); DBMS_OUTPUT.PUT_LINE(' END;'); END; diff --git a/tables/translated_items.sql b/tables/translated_items.sql new file mode 100644 index 0000000..fe426bf --- /dev/null +++ b/tables/translated_items.sql @@ -0,0 +1,33 @@ +--DROP TABLE translated_items PURGE; +CREATE TABLE translated_items ( + app_id NUMBER(4) CONSTRAINT nn_translated_items_app_id NOT NULL, + item_name VARCHAR2(64) CONSTRAINT nn_translated_items_name NOT NULL, + -- + value_en VARCHAR2(256), + value_cz VARCHAR2(256), + value_sk VARCHAR2(256), + value_pl VARCHAR2(256), + value_hu VARCHAR2(256), + -- + updated_by VARCHAR2(30), + updated_at DATE, + -- + CONSTRAINT pk_translated_items + PRIMARY KEY (app_id, item_name), + -- + CONSTRAINT fk_translated_items_app_id + FOREIGN KEY (app_id) + REFERENCES apps (app_id) +) +STORAGE (BUFFER_POOL KEEP); +-- +COMMENT ON TABLE translated_items IS '[CORE] Translations for page/app items'; +-- +COMMENT ON COLUMN translated_items.app_id IS 'APEX application ID'; +COMMENT ON COLUMN translated_items.item_name IS 'Item name (preferrably) to translate'; +COMMENT ON COLUMN translated_items.value_en IS 'Translated value'; +COMMENT ON COLUMN translated_items.value_cz IS 'Translated value'; +COMMENT ON COLUMN translated_items.value_sk IS 'Translated value'; +COMMENT ON COLUMN translated_items.value_pl IS 'Translated value'; +COMMENT ON COLUMN translated_items.value_hu IS 'Translated value'; + diff --git a/tables/translated_messages.sql b/tables/translated_messages.sql new file mode 100644 index 0000000..a5ee72b --- /dev/null +++ b/tables/translated_messages.sql @@ -0,0 +1,30 @@ +--DROP TABLE translated_messages PURGE; +CREATE TABLE translated_messages ( + app_id NUMBER(4) CONSTRAINT nn_translated_messages_app_id NOT NULL, + message VARCHAR2(64) CONSTRAINT nn_translated_messages_message NOT NULL, + -- + value_en VARCHAR2(256), + value_cz VARCHAR2(256), + value_sk VARCHAR2(256), + value_pl VARCHAR2(256), + value_hu VARCHAR2(256), + -- + updated_by VARCHAR2(30), + updated_at DATE, + -- + CONSTRAINT pk_translated_messages + PRIMARY KEY (app_id, message) +) +STORAGE (BUFFER_POOL KEEP); +-- +COMMENT ON TABLE translated_messages IS '[CORE] List of translated messages/notifications'; +-- +COMMENT ON COLUMN translated_messages.app_id IS 'APEX application ID'; +COMMENT ON COLUMN translated_messages.message IS 'Message to translate'; +-- +COMMENT ON COLUMN translated_messages.value_en IS 'Translated value'; +COMMENT ON COLUMN translated_messages.value_cz IS 'Translated value'; +COMMENT ON COLUMN translated_messages.value_sk IS 'Translated value'; +COMMENT ON COLUMN translated_messages.value_pl IS 'Translated value'; +COMMENT ON COLUMN translated_messages.value_hu IS 'Translated value'; + diff --git a/tables/translation_items.sql b/tables/translation_items.sql deleted file mode 100644 index 007d6d8..0000000 --- a/tables/translation_items.sql +++ /dev/null @@ -1,36 +0,0 @@ ---DROP TABLE translation_items PURGE; -CREATE TABLE translation_items ( - app_id NUMBER(4) CONSTRAINT nn_translation_items_app_id NOT NULL, - page_id NUMBER(6) CONSTRAINT nn_translation_items_page_id NOT NULL, - name VARCHAR2(64) CONSTRAINT nn_translation_items_name NOT NULL, - -- - value_en VARCHAR2(256), - value_cz VARCHAR2(256), - value_sk VARCHAR2(256), - value_pl VARCHAR2(256), - value_hu VARCHAR2(256), - -- - updated_by VARCHAR2(30), - updated_at DATE, - -- - CONSTRAINT pk_translation_items - PRIMARY KEY (app_id, page_id, name), - -- - CONSTRAINT fk_translation_items_page_id - FOREIGN KEY (app_id, page_id) - REFERENCES navigation (app_id, page_id) -) -STORAGE (BUFFER_POOL KEEP); --- -COMMENT ON TABLE translation_items IS '[CORE] List of translation_items'; --- -COMMENT ON COLUMN translation_items.app_id IS 'APEX application ID'; -COMMENT ON COLUMN translation_items.page_id IS 'APEX page ID, 0 for fallback, otherwise priority on page'; -COMMENT ON COLUMN translation_items.name IS 'Item name (preferrably) to translate'; --- -COMMENT ON COLUMN translation_items.value_en IS 'Translated value'; -COMMENT ON COLUMN translation_items.value_cz IS 'Translated value'; -COMMENT ON COLUMN translation_items.value_sk IS 'Translated value'; -COMMENT ON COLUMN translation_items.value_pl IS 'Translated value'; -COMMENT ON COLUMN translation_items.value_hu IS 'Translated value'; - diff --git a/tables/translations.sql b/tables/translations.sql deleted file mode 100644 index 4458392..0000000 --- a/tables/translations.sql +++ /dev/null @@ -1,30 +0,0 @@ ---DROP TABLE translations PURGE; -CREATE TABLE translations ( - app_id NUMBER(4) CONSTRAINT nn_translations_app_id NOT NULL, - name VARCHAR2(64) CONSTRAINT nn_translations_name NOT NULL, - -- - value_en VARCHAR2(256), - value_cz VARCHAR2(256), - value_sk VARCHAR2(256), - value_pl VARCHAR2(256), - value_hu VARCHAR2(256), - -- - updated_by VARCHAR2(30), - updated_at DATE, - -- - CONSTRAINT pk_translations - PRIMARY KEY (app_id, name) -) -STORAGE (BUFFER_POOL KEEP); --- -COMMENT ON TABLE translations IS '[CORE] List of translations'; --- -COMMENT ON COLUMN translations.app_id IS 'APEX application ID'; -COMMENT ON COLUMN translations.name IS 'Message to translate'; --- -COMMENT ON COLUMN translations.value_en IS 'Translated value'; -COMMENT ON COLUMN translations.value_cz IS 'Translated value'; -COMMENT ON COLUMN translations.value_sk IS 'Translated value'; -COMMENT ON COLUMN translations.value_pl IS 'Translated value'; -COMMENT ON COLUMN translations.value_hu IS 'Translated value'; - diff --git a/views/translated_items_overview.sql b/views/translated_items_overview.sql new file mode 100644 index 0000000..6520fcf --- /dev/null +++ b/views/translated_items_overview.sql @@ -0,0 +1,53 @@ +CREATE OR REPLACE VIEW translated_items_overview AS +WITH x AS ( + SELECT /*+ MATERIALIZE */ + app.get_app_id() AS app_id, + app.get_translation_prefix() AS item_prefix + FROM DUAL +), +t AS ( + SELECT t.* + FROM translated_items t + JOIN x + ON x.app_id = t.app_id +), +p AS ( + SELECT t.item_name + FROM t + JOIN apex_application_page_items i + ON i.application_id = t.app_id + AND i.page_id = TO_NUMBER(REGEXP_SUBSTR(t.item_name, '\d+')) + AND i.item_name = t.item_name +), +a AS ( + SELECT t.item_name + FROM t + JOIN apex_application_items a + ON a.application_id = t.app_id + AND a.item_name = t.item_name +) +SELECT + t.item_name AS out_item_name, + t.item_name, + -- + CASE SUBSTR(t.item_name, 1, 1) + WHEN 'H' THEN 'HEADER' + WHEN 'B' THEN 'BUTTON' + WHEN 'C' THEN 'COLUMN' + WHEN 'L' THEN 'LABEL' + END AS item_type, + -- + CASE WHEN p.item_name IS NOT NULL THEN 'Y' END AS is_page_item, + CASE WHEN a.item_name IS NOT NULL THEN 'Y' END AS is_app_item, + -- + t.value_en, + t.value_cz, + t.value_sk, + t.value_pl, + t.value_hu +FROM t +LEFT JOIN p ON p.item_name = t.item_name +LEFT JOIN a ON a.item_name = t.item_name; +-- +COMMENT ON TABLE translated_items_overview IS '[CORE - DASHBOARD] Use page/app items to translate application'; + diff --git a/views/translated_messages_overview.sql b/views/translated_messages_overview.sql new file mode 100644 index 0000000..bcb8813 --- /dev/null +++ b/views/translated_messages_overview.sql @@ -0,0 +1,21 @@ +CREATE OR REPLACE VIEW translated_messages_overview AS +WITH x AS ( + SELECT /*+ MATERIALIZE */ + app.get_app_id() AS app_id + FROM DUAL +) +SELECT + t.message AS out_message, + t.message, + -- + t.value_en, + t.value_cz, + t.value_sk, + t.value_pl, + t.value_hu +FROM translated_messages t +JOIN x + ON x.app_id = t.app_id; +-- +COMMENT ON TABLE translated_messages_overview IS '[CORE - DASHBOARD] Translate messages/notifications'; + diff --git a/views/translations_mapped.sql b/views/translations_mapped.sql deleted file mode 100644 index ff68ed4..0000000 --- a/views/translations_mapped.sql +++ /dev/null @@ -1,35 +0,0 @@ -CREATE OR REPLACE VIEW translations_mapped AS -WITH x AS ( - SELECT /*+ MATERIALIZE */ - app.get_app_id() AS app_id, - app.get_page_id() AS page_id, - app.get_user_lang() AS lang_id, - app.get_translation_prefix() AS item_prefix - FROM DUAL -) -SELECT t.name, i.item_name -FROM translation_items t -JOIN x - ON x.app_id = t.app_id - AND x.page_id IN (0, x.page_id) -JOIN apex_application_page_items i - ON i.application_id = x.app_id - AND i.page_id = x.page_id - AND ( - (i.page_id > 0 AND i.item_name = x.item_prefix || i.page_id || '_' || t.name) - OR (i.page_id = 0 AND i.item_name = x.item_prefix || '_' || t.name) - ) -GROUP BY t.name, i.item_name -UNION --- -SELECT t.name, i.item_name -FROM translation_items t -JOIN x - ON x.app_id = t.app_id -JOIN apex_application_items i - ON i.application_id = t.app_id - AND i.item_name = x.item_prefix || '_' || t.name -GROUP BY t.name, i.item_name; --- -COMMENT ON TABLE translations_mapped IS '[CORE - DASHBOARD] Translations for startup process'; - diff --git a/views/translations_notifications.sql b/views/translations_notifications.sql deleted file mode 100644 index 3aab7fe..0000000 --- a/views/translations_notifications.sql +++ /dev/null @@ -1,22 +0,0 @@ -CREATE OR REPLACE VIEW translations_notifications AS -WITH x AS ( - SELECT /*+ MATERIALIZE */ - app.get_app_id() AS app_id - FROM DUAL -) -SELECT - t.app_id, - t.name, - t.name AS name_old, - -- - t.value_en, - t.value_cz, - t.value_sk, - t.value_pl, - t.value_hu -FROM translations t -JOIN x - ON x.app_id = t.app_id; --- -COMMENT ON TABLE translations_notifications IS '[CORE - DASHBOARD] Translate messages/notifications'; - diff --git a/views/translations_overview.sql b/views/translations_overview.sql deleted file mode 100644 index 15eb5ac..0000000 --- a/views/translations_overview.sql +++ /dev/null @@ -1,109 +0,0 @@ -CREATE OR REPLACE VIEW translations_overview AS -WITH x AS ( - SELECT /*+ MATERIALIZE */ - app.get_app_id() AS app_id, - app.get_translation_prefix() AS item_prefix - FROM DUAL -), -m AS ( - SELECT - t.app_id, - t.page_id, - t.name, - -- - NVL(i.item_name, a.item_name) AS item_name, - -- - t.value_en, - t.value_cz, - t.value_sk, - t.value_pl, - t.value_hu, - -- - t.name AS old_name, - t.page_id AS old_page_id - FROM translation_items t - JOIN x - ON x.app_id = t.app_id - LEFT JOIN apex_application_page_items i - ON i.application_id = t.app_id - AND i.page_id = t.page_id - AND ( - (i.page_id > 0 AND i.item_name = x.item_prefix || i.page_id || '_' || t.name) - OR (i.page_id = 0 AND i.item_name = x.item_prefix || '_' || t.name) - ) - LEFT JOIN apex_application_items a - ON a.application_id = t.app_id - AND a.item_name = x.item_prefix || '_' || t.name - AND i.item_name IS NULL -) -SELECT - m.app_id, - m.page_id, - m.name, - m.item_name, - -- - m.value_en, - m.value_cz, - m.value_sk, - m.value_pl, - m.value_hu, - -- - m.old_name, - m.old_page_id -FROM m -UNION ALL --- -SELECT - i.application_id, - i.page_id, - -- - REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS name, - i.item_name, - -- - NULL, -- 5 languages - NULL, - NULL, - NULL, - NULL, - -- - REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS old_name, - i.page_id AS old_page_id -FROM apex_application_page_items i -JOIN x - ON x.app_id = i.application_id - AND i.item_name LIKE x.item_prefix || i.page_id || '%' -LEFT JOIN m - ON m.app_id = i.application_id - AND m.page_id = i.page_id - AND m.item_name = i.item_name -WHERE m.name IS NULL - AND i.item_name NOT LIKE x.item_prefix || '0\_%' ESCAPE '\' -UNION ALL --- -SELECT - i.application_id, - 0 AS page_id, - -- - REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS name, - i.item_name, - -- - NULL, -- 5 languages - NULL, - NULL, - NULL, - NULL, - -- - REGEXP_REPLACE(i.item_name, '^' || x.item_prefix || '\d*_', '') AS old_name, - 0 AS old_page_id -FROM apex_application_items i -JOIN x - ON x.app_id = i.application_id - AND i.item_name LIKE x.item_prefix || '\_%' ESCAPE '\' -LEFT JOIN m - ON m.app_id = i.application_id - AND m.page_id = 0 - AND m.item_name = i.item_name -WHERE m.name IS NULL; --- -COMMENT ON TABLE translations_overview IS '[CORE - DASHBOARD] Use page/app items to translate application'; -