ADT jump for package link and transports (#2758)

* ADT jump for package links

* Also handle transport requests/tasks

* fix abaplint
This commit is contained in:
Frederik Hudák 2019-06-29 08:02:37 +02:00 committed by Lars Hvam
parent f6e8332754
commit f5d421e399
3 changed files with 43 additions and 15 deletions

View File

@ -373,11 +373,11 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
METHOD render_repo_top.
DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
lo_pback TYPE REF TO zcl_abapgit_persist_background,
lv_hint TYPE string,
lv_icon TYPE string.
DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
lo_pback TYPE REF TO zcl_abapgit_persist_background,
lv_hint TYPE string,
lv_icon TYPE string,
lv_package_jump_data TYPE string.
CREATE OBJECT ro_html.
CREATE OBJECT lo_pback.
@ -465,8 +465,13 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
IF iv_show_package = abap_true.
ro_html->add_icon( iv_name = 'box/grey70' iv_hint = 'SAP package' ).
ro_html->add( '<span>' ).
lv_package_jump_data = zcl_abapgit_html_action_utils=>jump_encode(
iv_obj_type = 'DEVC'
iv_obj_name = io_repo->get_package( ) ).
ro_html->add_a( iv_txt = io_repo->get_package( )
iv_act = |{ zif_abapgit_definitions=>c_action-jump_pkg }?{ io_repo->get_package( ) }| ).
iv_act = |{ zif_abapgit_definitions=>c_action-jump }?{ lv_package_jump_data }| ).
ro_html->add( '</span>' ).
ENDIF.

View File

@ -124,7 +124,9 @@ CLASS zcl_abapgit_gui_router DEFINITION
zcx_abapgit_exception.
CLASS-METHODS jump_display_transport
IMPORTING
!iv_getdata TYPE clike .
!iv_getdata TYPE clike
RAISING
zcx_abapgit_exception.
ENDCLASS.
@ -424,13 +426,38 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
METHOD jump_display_transport.
DATA: lv_transport TYPE trkorr.
DATA: lv_transport TYPE trkorr,
lv_transport_adt_uri TYPE string,
lv_adt_link TYPE string,
lv_adt_jump_enabled TYPE abap_bool.
lv_transport = iv_getdata.
CALL FUNCTION 'TR_DISPLAY_REQUEST'
EXPORTING
i_trkorr = lv_transport.
lv_adt_jump_enabled = zcl_abapgit_persist_settings=>get_instance( )->read( )->get_adt_jump_enabled( ).
IF lv_adt_jump_enabled = abap_true.
TRY.
CALL METHOD ('CL_CTS_ADT_TM_URI_BUILDER')=>('CREATE_ADT_URI')
EXPORTING
trnumber = lv_transport
RECEIVING
result = lv_transport_adt_uri.
lv_adt_link = |adt://{ sy-sysid }{ lv_transport_adt_uri }|.
cl_gui_frontend_services=>execute( EXPORTING document = lv_adt_link
EXCEPTIONS OTHERS = 1 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'ADT Jump Error' ).
ENDIF.
CATCH cx_root.
zcx_abapgit_exception=>raise( 'Jump to object not supported in your NW release' ).
ENDTRY.
ELSE.
CALL FUNCTION 'TR_DISPLAY_REQUEST'
EXPORTING
i_trkorr = lv_transport.
ENDIF.
ENDMETHOD.
@ -532,9 +559,6 @@ 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_pkg. " Open SE80
zcl_abapgit_services_repo=>open_se80( |{ is_event_data-getdata }| ).
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.

View File

@ -444,7 +444,6 @@ INTERFACE zif_abapgit_definitions
go_tutorial TYPE string VALUE 'go_tutorial',
go_patch TYPE string VALUE 'go_patch',
jump TYPE string VALUE 'jump',
jump_pkg TYPE string VALUE 'jump_pkg',
jump_transport TYPE string VALUE 'jump_transport',
url TYPE string VALUE 'url',
END OF c_action .