Enhanced object list for "Debug Info" (#3475)

* Enhanced object list for "Debug Info"

* Shorter line

* Whitespace
This commit is contained in:
Marc Bernard 2020-06-09 06:11:53 +02:00 committed by GitHub
parent 3c59f7ab7d
commit 19503b8116
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,6 +14,9 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
render_content REDEFINITION.
PRIVATE SECTION.
METHODS get_jump_class
IMPORTING iv_class TYPE seoclsname
RETURNING VALUE(rv_html) TYPE string.
METHODS render_debug_info
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING zcx_abapgit_exception.
@ -38,6 +41,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
ENDMETHOD.
METHOD get_jump_class.
DATA: lv_encode TYPE string.
lv_encode = zcl_abapgit_html_action_utils=>jump_encode( iv_obj_type = 'CLAS'
iv_obj_name = |{ iv_class }| ).
rv_html = zcl_abapgit_html=>a( iv_txt = |{ iv_class }|
iv_act = |{ zif_abapgit_definitions=>c_action-jump }?{ lv_encode }| ).
ENDMETHOD.
METHOD render_content.
CREATE OBJECT ro_html.
@ -71,12 +87,16 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
CREATE OBJECT ro_html.
ro_html->add( |<p>abapGit version: { zif_abapgit_version=>gc_abap_version }</p>| ).
ro_html->add( |<p>XML version: { zif_abapgit_version=>gc_xml_version }</p>| ).
ro_html->add( |<p>GUI version: { lv_gui_version }</p>| ).
ro_html->add( |<p>APACK version: { zcl_abapgit_apack_migration=>c_apack_interface_version }</p>| ).
ro_html->add( |<p>LCL_TIME: { zcl_abapgit_time=>get_unix( ) }</p>| ).
ro_html->add( |<p>SY time: { sy-datum } { sy-uzeit } { sy-tzone }</p>| ).
ro_html->add( |<table>| ).
ro_html->add( |<tr><td>abapGit version:</td><td>{ zif_abapgit_version=>gc_abap_version }</td></tr>| ).
ro_html->add( |<tr><td>XML version: </td><td>{ zif_abapgit_version=>gc_xml_version }</td></tr>| ).
ro_html->add( |<tr><td>GUI version: </td><td>{ lv_gui_version }</td></tr>| ).
ro_html->add( |<tr><td>APACK version: </td><td>{
zcl_abapgit_apack_migration=>c_apack_interface_version }</td></tr>| ).
ro_html->add( |<tr><td>LCL_TIME: </td><td>{ zcl_abapgit_time=>get_unix( ) }</td></tr>| ).
ro_html->add( |<tr><td>SY time: </td><td>{ sy-datum } { sy-uzeit } { sy-tzone }</td></tr>| ).
ro_html->add( |</table>| ).
ro_html->add( |<br>| ).
ENDMETHOD.
@ -94,22 +114,97 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
METHOD render_supported_object_types.
DATA: lv_list TYPE string,
lt_types TYPE zcl_abapgit_objects=>ty_types_tt,
lv_type LIKE LINE OF lt_types.
DATA: lv_list TYPE string,
lt_types TYPE zcl_abapgit_objects=>ty_types_tt,
lv_type LIKE LINE OF lt_types,
lt_obj TYPE STANDARD TABLE OF ko100 WITH DEFAULT KEY,
lv_class TYPE seoclsname,
li_object TYPE REF TO zif_abapgit_object,
ls_item TYPE zif_abapgit_definitions=>ty_item,
lv_language TYPE spras,
ls_metadata TYPE zif_abapgit_definitions=>ty_metadata,
lv_step TYPE zif_abapgit_definitions=>ty_deserialization_step,
lt_steps TYPE zif_abapgit_definitions=>ty_deserialization_step_tt.
FIELD-SYMBOLS: <ls_obj> TYPE ko100.
CALL FUNCTION 'TR_OBJECT_TABLE'
TABLES
wt_object_text = lt_obj.
lt_types = zcl_abapgit_objects=>supported_list( ).
rv_html = |<p>Supported objects: { lv_list }</p>|.
rv_html = rv_html && |<table border="1px"><thead><tr>|.
rv_html = rv_html && |<td>Object</td><td>Description</td><td>Class</td><td>Version</td><td>DDIC</td>|.
rv_html = rv_html && |<td>Delete TADIR</td><td>Steps</td>|.
rv_html = rv_html && |</tr></thead><tbody>|.
LOOP AT lt_types INTO lv_type.
IF lv_list IS INITIAL.
lv_list = lv_type.
lv_class = 'ZCL_ABAPGIT_OBJECT_' && lv_type.
rv_html = rv_html && |<tr>|.
rv_html = rv_html && |<td>{ lv_type }</td>|.
READ TABLE lt_obj ASSIGNING <ls_obj> WITH KEY pgmid = 'R3TR' object = lv_type.
IF sy-subrc = 0.
rv_html = rv_html && |<td>{ <ls_obj>-text }</td>|.
ELSE.
lv_list = lv_list && `, ` && lv_type.
rv_html = rv_html && |<td class="warning">>No description</td>|.
ENDIF.
TRY.
ls_item-obj_type = lv_type.
ls_item-obj_name = 'TEST'.
CREATE OBJECT li_object TYPE (lv_class)
EXPORTING
is_item = ls_item
iv_language = sy-langu.
rv_html = rv_html && |<td>{ get_jump_class( lv_class ) }</td>|.
CATCH cx_sy_create_object_error.
TRY. " 2nd step, try looking for plugins
CREATE OBJECT li_object TYPE zcl_abapgit_objects_bridge
EXPORTING
is_item = ls_item.
CATCH cx_sy_create_object_error.
rv_html = rv_html && |<td class="error" colspan="5">{ lv_class } - error instantiating class</td>|.
CONTINUE.
ENDTRY.
rv_html = rv_html && |<td>{ get_jump_class( lv_class ) } (Plug-in)</td>|.
ENDTRY.
ls_metadata = li_object->get_metadata( ).
rv_html = rv_html && |<td>{ ls_metadata-version }</td>|.
rv_html = rv_html && |<td>{ ls_metadata-ddic }</td>|.
rv_html = rv_html && |<td>{ ls_metadata-delete_tadir }</td>|.
lt_steps = li_object->get_deserialize_steps( ).
CLEAR lv_list.
LOOP AT lt_steps INTO lv_step.
IF lv_list IS INITIAL.
lv_list = lv_step.
ELSE.
lv_list = lv_list && `, ` && lv_step.
ENDIF.
ENDLOOP.
rv_html = rv_html && |<td>{ lv_list }</td>|.
rv_html = rv_html && |</tr>|.
ENDLOOP.
rv_html = |<p>Supported objects: { lv_list }</p>|.
rv_html = rv_html && |</tbody></table>|.
rv_html = rv_html && |<br>|.
ENDMETHOD.
ENDCLASS.