From f8d74cc928259cae92efa1e1e3d43dcc0571f4c7 Mon Sep 17 00:00:00 2001 From: Jaime Rodriguez Capote Date: Sat, 4 Jul 2020 12:35:38 +0200 Subject: [PATCH] Fix open url in repo view (#3581) * Fix open url in repo view * Move call_browser to gui_router --- src/ui/zcl_abapgit_gui_page.clas.abap | 35 ---------------- .../zcl_abapgit_gui_page_view_repo.clas.abap | 12 ++++++ src/ui/zcl_abapgit_gui_router.clas.abap | 41 ++++++++++++++++++- 3 files changed, 52 insertions(+), 36 deletions(-) diff --git a/src/ui/zcl_abapgit_gui_page.clas.abap b/src/ui/zcl_abapgit_gui_page.clas.abap index 305904636..d0e9087f9 100644 --- a/src/ui/zcl_abapgit_gui_page.clas.abap +++ b/src/ui/zcl_abapgit_gui_page.clas.abap @@ -67,12 +67,6 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT RAISING zcx_abapgit_exception. - METHODS call_browser - IMPORTING - iv_url TYPE csequence - RAISING - zcx_abapgit_exception. - METHODS render_error_message_box RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html @@ -92,30 +86,6 @@ ENDCLASS. CLASS zcl_abapgit_gui_page IMPLEMENTATION. - METHOD call_browser. - - cl_gui_frontend_services=>execute( - EXPORTING - document = |{ iv_url }| - EXCEPTIONS - cntl_error = 1 - error_no_gui = 2 - bad_parameter = 3 - file_not_found = 4 - path_not_found = 5 - file_extension_unknown = 6 - error_execute_failed = 7 - synchronous_failed = 8 - not_supported_by_gui = 9 - OTHERS = 10 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise_t100( ). - ENDIF. - - ENDMETHOD. - - METHOD constructor. super->constructor( ). @@ -313,11 +283,6 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION. METHOD zif_abapgit_gui_event_handler~on_event. CASE iv_action. - WHEN zif_abapgit_definitions=>c_action-url. - - call_browser( iv_getdata ). - ev_state = zcl_abapgit_gui=>c_event_state-no_more_act. - WHEN zif_abapgit_definitions=>c_action-goto_source. IF mo_exception_viewer IS BOUND. diff --git a/src/ui/zcl_abapgit_gui_page_view_repo.clas.abap b/src/ui/zcl_abapgit_gui_page_view_repo.clas.abap index 40900ca56..ebc769b63 100644 --- a/src/ui/zcl_abapgit_gui_page_view_repo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_view_repo.clas.abap @@ -137,6 +137,7 @@ CLASS zcl_abapgit_gui_page_view_repo DEFINITION METHODS build_main_menu RETURNING VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar. + ENDCLASS. @@ -889,36 +890,46 @@ CLASS zcl_abapgit_gui_page_view_repo IMPLEMENTATION. WHEN c_actions-toggle_hide_files. " Toggle file diplay mv_hide_files = zcl_abapgit_persistence_user=>get_instance( )->toggle_hide_files( ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-change_dir. " Change dir lv_path = zcl_abapgit_html_action_utils=>dir_decode( iv_getdata ). mv_cur_dir = zcl_abapgit_path=>change_dir( iv_cur_dir = mv_cur_dir iv_cd = lv_path ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-toggle_folders. " Toggle folder view mv_show_folders = boolc( mv_show_folders <> abap_true ). mv_cur_dir = '/'. " Root ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-toggle_changes. " Toggle changes only view mv_changes_only = zcl_abapgit_persistence_user=>get_instance( )->toggle_changes_only( ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-toggle_order_by. mv_show_order_by = zcl_abapgit_persistence_user=>get_instance( )->toggle_show_order_by( ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-toggle_diff_first. mv_diff_first = boolc( mv_diff_first = abap_false ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_actions-display_more. " Increase MAX lines limit mv_max_lines = mv_max_lines + mv_max_setting. ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN zif_abapgit_definitions=>c_action-change_order_by. mv_order_by = zcl_abapgit_gui_chunk_lib=>parse_change_order_by( iv_getdata ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN zif_abapgit_definitions=>c_action-direction. mv_order_descending = zcl_abapgit_gui_chunk_lib=>parse_direction( iv_getdata ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN zif_abapgit_definitions=>c_action-repo_open_in_master_lang. open_in_master_language( ). ev_state = zcl_abapgit_gui=>c_event_state-re_render. + ENDCASE. ENDMETHOD. @@ -1135,4 +1146,5 @@ CLASS zcl_abapgit_gui_page_view_repo IMPLEMENTATION. ENDMETHOD. + ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index f9c78035f..544addddb 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -122,11 +122,18 @@ CLASS zcl_abapgit_gui_router DEFINITION !iv_getdata TYPE clike RAISING zcx_abapgit_exception. + + METHODS call_browser + IMPORTING + iv_url TYPE csequence + RAISING + zcx_abapgit_exception. + ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. +CLASS zcl_abapgit_gui_router IMPLEMENTATION. METHOD abapgit_services_actions. @@ -541,9 +548,15 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. ev_obj_name = ls_item-obj_name ). zcl_abapgit_objects=>jump( ls_item ). ev_state = zcl_abapgit_gui=>c_event_state-no_more_act. + WHEN zif_abapgit_definitions=>c_action-jump_transport. jump_display_transport( is_event_data-getdata ). ev_state = zcl_abapgit_gui=>c_event_state-no_more_act. + + WHEN zif_abapgit_definitions=>c_action-url. + call_browser( is_event_data-getdata ). + ev_state = zcl_abapgit_gui=>c_event_state-no_more_act. + ENDCASE. ENDMETHOD. @@ -666,4 +679,30 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. ENDCASE. ENDMETHOD. + + + METHOD call_browser. + + cl_gui_frontend_services=>execute( + EXPORTING + document = |{ iv_url }| + EXCEPTIONS + cntl_error = 1 + error_no_gui = 2 + bad_parameter = 3 + file_not_found = 4 + path_not_found = 5 + file_extension_unknown = 6 + error_execute_failed = 7 + synchronous_failed = 8 + not_supported_by_gui = 9 + OTHERS = 10 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + ENDMETHOD. + + ENDCLASS.