tutorial, show correct abapgit package

tutorial, show correct abapgit package

#2461
This commit is contained in:
larshp 2019-03-12 15:42:36 +00:00 committed by Lars Hvam
parent 21527528c6
commit d8da05b8bc
2 changed files with 79 additions and 75 deletions

View File

@ -19,6 +19,8 @@ CLASS ZCL_ABAPGIT_GUI_VIEW_TUTORIAL IMPLEMENTATION.
METHOD render_content.
DATA: lv_devclass TYPE tadir-devclass.
CREATE OBJECT ro_html.
ro_html->add( '<h1>Tutorial</h1>' ).
@ -54,14 +56,17 @@ CLASS ZCL_ABAPGIT_GUI_VIEW_TUTORIAL IMPLEMENTATION.
ro_html->add( '<h2>abapGit repository</h2>' ).
ro_html->add( '<p><ul>' ).
ro_html->add( '<li>' ).
IF zcl_abapgit_services_abapgit=>is_installed( ) = abap_true.
lv_devclass = zcl_abapgit_services_abapgit=>is_installed( ).
IF NOT lv_devclass IS INITIAL.
ro_html->add( 'abapGit installed in package&nbsp;' ).
ro_html->add( zcl_abapgit_services_abapgit=>c_package_abapgit ).
ro_html->add( lv_devclass ).
ELSE.
ro_html->add_a( iv_txt = 'install abapGit repo' iv_act = zif_abapgit_definitions=>c_action-abapgit_install ).
ro_html->add( ' - To keep abapGit up-to-date (or also to contribute) you need to' ).
ro_html->add( 'install it as a repository.' ).
ENDIF.
ro_html->add( '</li>' ).
ro_html->add( '</ul></p>' ).

View File

@ -23,11 +23,11 @@ CLASS zcl_abapgit_services_abapgit DEFINITION
zcx_abapgit_cancel .
CLASS-METHODS is_installed
RETURNING
VALUE(rv_installed) TYPE abap_bool .
VALUE(rv_devclass) TYPE tadir-devclass .
CLASS-METHODS prepare_gui_startup
RAISING
zcx_abapgit_exception.
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS do_install
IMPORTING iv_title TYPE c
@ -50,7 +50,7 @@ ENDCLASS.
CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
CLASS ZCL_ABAPGIT_SERVICES_ABAPGIT IMPLEMENTATION.
METHOD do_install.
@ -92,16 +92,76 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
ENDMETHOD.
METHOD get_package_from_adt.
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
lr_context TYPE REF TO data,
lt_fields TYPE tihttpnvp.
FIELD-SYMBOLS: <ls_context> TYPE any,
<lv_parameters> TYPE string,
<ls_field> LIKE LINE OF lt_fields.
ls_item-obj_type = 'CLAS'.
ls_item-obj_name = 'CL_ADT_GUI_INTEGRATION_CONTEXT'.
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
" ADT is not supported in this NW release
RETURN.
ENDIF.
TRY.
CREATE DATA lr_context TYPE ('CL_ADT_GUI_INTEGRATION_CONTEXT=>TY_CONTEXT_INFO').
ASSIGN lr_context->* TO <ls_context>.
ASSERT sy-subrc = 0.
CALL METHOD ('CL_ADT_GUI_INTEGRATION_CONTEXT')=>read_context
RECEIVING
result = <ls_context>.
ASSIGN COMPONENT 'PARAMETERS'
OF STRUCTURE <ls_context>
TO <lv_parameters>.
ASSERT sy-subrc = 0.
lt_fields = cl_http_utility=>string_to_fields(
cl_http_utility=>unescape_url(
<lv_parameters> ) ).
READ TABLE lt_fields ASSIGNING <ls_field>
WITH KEY name = 'p_package_name'.
IF sy-subrc = 0.
rv_package = <ls_field>-value.
" We want to open the repo just once. Therefore we delete the parameters
" and initialize the ADT context.
CLEAR <lv_parameters>.
CALL METHOD ('CL_ADT_GUI_INTEGRATION_CONTEXT')=>initialize_instance
EXPORTING
context_info = <ls_context>.
ENDIF.
CATCH cx_root.
" Some problems with dynamic ADT access.
" Let's ignore it for now and fail silently
ENDTRY.
ENDMETHOD.
METHOD install_abapgit.
CONSTANTS lc_title TYPE c LENGTH 40 VALUE 'Install abapGit'.
DATA lv_text TYPE c LENGTH 100.
IF is_installed( ) = abap_true.
IF NOT is_installed( ) IS INITIAL.
lv_text = 'Seems like abapGit package is already installed. No changes to be done'.
zcl_abapgit_ui_factory=>get_popups( )->popup_to_inform(
iv_titlebar = lc_title
iv_text_message = lv_text ).
iv_titlebar = lc_title
iv_text_message = lv_text ).
RETURN.
ENDIF.
@ -114,16 +174,15 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
ENDMETHOD.
METHOD is_installed.
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item.
ls_item-obj_type = 'TRAN'.
ls_item-obj_name = c_abapgit_tcode.
rv_installed = zcl_abapgit_objects=>exists( ls_item ).
SELECT SINGLE devclass FROM tadir INTO rv_devclass
WHERE object = 'TRAN' AND obj_name = c_abapgit_tcode.
ENDMETHOD.
METHOD open_abapgit_homepage.
cl_gui_frontend_services=>execute(
@ -147,6 +206,7 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
ENDMETHOD.
METHOD prepare_gui_startup.
DATA: lv_repo_key TYPE zif_abapgit_persistence=>ty_value,
@ -234,65 +294,4 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
ENDIF.
ENDMETHOD.
METHOD get_package_from_adt.
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
lr_context TYPE REF TO data,
lt_fields TYPE tihttpnvp.
FIELD-SYMBOLS: <ls_context> TYPE any,
<lv_parameters> TYPE string,
<ls_field> LIKE LINE OF lt_fields.
ls_item-obj_type = 'CLAS'.
ls_item-obj_name = 'CL_ADT_GUI_INTEGRATION_CONTEXT'.
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
" ADT is not supported in this NW release
RETURN.
ENDIF.
TRY.
CREATE DATA lr_context TYPE ('CL_ADT_GUI_INTEGRATION_CONTEXT=>TY_CONTEXT_INFO').
ASSIGN lr_context->* TO <ls_context>.
ASSERT sy-subrc = 0.
CALL METHOD ('CL_ADT_GUI_INTEGRATION_CONTEXT')=>read_context
RECEIVING
result = <ls_context>.
ASSIGN COMPONENT 'PARAMETERS'
OF STRUCTURE <ls_context>
TO <lv_parameters>.
ASSERT sy-subrc = 0.
lt_fields = cl_http_utility=>string_to_fields(
cl_http_utility=>unescape_url(
<lv_parameters> ) ).
READ TABLE lt_fields ASSIGNING <ls_field>
WITH KEY name = 'p_package_name'.
IF sy-subrc = 0.
rv_package = <ls_field>-value.
" We want to open the repo just once. Therefore we delete the parameters
" and initialize the ADT context.
CLEAR <lv_parameters>.
CALL METHOD ('CL_ADT_GUI_INTEGRATION_CONTEXT')=>initialize_instance
EXPORTING
context_info = <ls_context>.
ENDIF.
CATCH cx_root.
" Some problems with dynamic ADT access.
" Let's ignore it for now and fail silently
ENDTRY.
ENDMETHOD.
ENDCLASS.