diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap index 77d7b7ab1..201fd92f0 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap @@ -305,7 +305,12 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. ro_html->add( |{ io_repo->get_name( ) }| ). IF io_repo->is_offline( ) = abap_false. lo_repo_online ?= io_repo. - ro_html->add( |{ lo_repo_online->get_url( ) }| ). + + ro_html->add_a( iv_txt = lo_repo_online->get_url( ) + iv_act = |{ zif_abapgit_definitions=>c_action-url }?| + && |{ lo_repo_online->get_url( ) }| + iv_class = |url| ). + ENDIF. " News @@ -319,7 +324,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. iv_typ = zif_abapgit_definitions=>c_action_type-onclick iv_txt = zcl_abapgit_html=>icon( iv_name = lv_icon iv_class = 'pad-sides' - iv_hint = 'Display changelog' ) ). + iv_hint = 'Display changelog' ) ). ENDIF. ro_html->add( '' ). diff --git a/src/ui/zcl_abapgit_gui_page.clas.abap b/src/ui/zcl_abapgit_gui_page.clas.abap index 696867c5e..acb276474 100644 --- a/src/ui/zcl_abapgit_gui_page.clas.abap +++ b/src/ui/zcl_abapgit_gui_page.clas.abap @@ -63,6 +63,12 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT CREATE PUBLIC. RAISING zcx_abapgit_exception. + METHODS call_browser + IMPORTING + iv_url TYPE csequence + RAISING + zcx_abapgit_exception. + ENDCLASS. @@ -237,7 +243,19 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION. METHOD zif_abapgit_gui_page~on_event. - ev_state = zif_abapgit_definitions=>c_event_state-not_handled. + + CASE iv_action. + WHEN zif_abapgit_definitions=>c_action-url. + + call_browser( iv_getdata ). + ev_state = zif_abapgit_definitions=>c_event_state-no_more_act. + + WHEN OTHERS. + + ev_state = zif_abapgit_definitions=>c_event_state-not_handled. + + ENDCASE. + ENDMETHOD. "lif_gui_page~on_event @@ -276,4 +294,28 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. " lif_gui_page~render. + + 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. diff --git a/src/ui/zcl_abapgit_gui_page_main.clas.abap b/src/ui/zcl_abapgit_gui_page_main.clas.abap index 3380796e9..72740be8d 100644 --- a/src/ui/zcl_abapgit_gui_page_main.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_main.clas.abap @@ -349,6 +349,16 @@ CLASS zcl_abapgit_gui_page_main IMPLEMENTATION. CREATE OBJECT li_repo_overview TYPE zcl_abapgit_gui_page_repo_over. ei_page = li_repo_overview. ev_state = zif_abapgit_definitions=>c_event_state-new_page. + WHEN OTHERS. + super->zif_abapgit_gui_page~on_event( + EXPORTING + iv_action = iv_action + iv_prev_page = iv_prev_page + iv_getdata = iv_getdata + it_postdata = it_postdata + IMPORTING + ei_page = ei_page + ev_state = ev_state ). ENDCASE. ENDMETHOD. diff --git a/src/ui/zcl_abapgit_gui_page_repo_over.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_over.clas.abap index 273c0ccf9..bc9327a52 100644 --- a/src/ui/zcl_abapgit_gui_page_repo_over.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_repo_over.clas.abap @@ -126,7 +126,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION. +CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION. METHOD add_direction_option. @@ -481,7 +481,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION. io_html->add( |{ -key }| ). io_html->add( |{ zcl_abapgit_html=>a( iv_txt = -name iv_act = |{ c_action-select }?{ -key }| ) }| ). - io_html->add( |{ -url }| ). + + IF -type = abap_false. + io_html->add( |{ io_html->a( iv_txt = -url + iv_act = |{ zif_abapgit_definitions=>c_action-url }?| + && |{ -url }| ) }| ). + ELSE. + io_html->add( | | ). + ENDIF. + io_html->add( |{ -package }| ). io_html->add( |{ -branch }| ). io_html->add( |{ -created_by }| ). @@ -582,6 +590,18 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION. parse_filter( it_postdata ). ev_state = zif_abapgit_definitions=>c_event_state-re_render. + WHEN OTHERS. + + super->zif_abapgit_gui_page~on_event( + EXPORTING + iv_action = iv_action + iv_prev_page = iv_prev_page + iv_getdata = iv_getdata + it_postdata = it_postdata + IMPORTING + ei_page = ei_page + ev_state = ev_state ). + ENDCASE. ENDMETHOD. diff --git a/src/zabapgit_css_common.w3mi.data.css b/src/zabapgit_css_common.w3mi.data.css index 200542387..9f75545e2 100644 --- a/src/zabapgit_css_common.w3mi.data.css +++ b/src/zabapgit_css_common.w3mi.data.css @@ -143,6 +143,11 @@ div.repo { color: #333; font-size: 14pt; } +.repo_name a.url { + color: #ccc; + font-size: 12pt; + margin-left: 0.5em; +} .repo_name span.url { color: #ccc; font-size: 12pt; @@ -538,6 +543,7 @@ div.debug_container p { div.db_list { background-color: #fff; padding: 0.5em; + overflow-x: auto; } table.db_tab pre { diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 4a9fbfe3b..4442e94c1 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -459,6 +459,8 @@ INTERFACE zif_abapgit_definitions PUBLIC. jump TYPE string VALUE 'jump', jump_pkg TYPE string VALUE 'jump_pkg', + + url TYPE string VALUE 'url', END OF c_action . CONSTANTS: BEGIN OF c_version,