Enhance result view of Code Inspector/Syntax Check (#3717)

* Enhance result view of Code Inspector/Syntax Check

* Enhance result view of Code Inspector/Syntax Check

* Enhance result view of Code Inspector/Syntax Check

* Lint

* Move sort
This commit is contained in:
Marc Bernard 2020-08-07 01:17:42 -04:00 committed by GitHub
parent c026ee89b0
commit 324db52335
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 144 additions and 76 deletions

View File

@ -24,13 +24,6 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC
render_content REDEFINITION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_actions,
stage TYPE string VALUE 'stage' ##NO_TEXT,
commit TYPE string VALUE 'commit' ##NO_TEXT,
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
END OF c_actions.
DATA:
mo_stage TYPE REF TO zcl_abapgit_stage,
mv_check_variant TYPE sci_chkv.
@ -63,7 +56,6 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC
determine_check_variant
RAISING
zcx_abapgit_exception.
ENDCLASS.
@ -109,11 +101,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
DATA: lv_opt TYPE c LENGTH 1.
CREATE OBJECT ro_menu.
ro_menu->add( iv_txt = 'Re-Run'
iv_act = c_actions-rerun
iv_cur = abap_false ) ##NO_TEXT.
ro_menu = build_base_menu( ).
IF is_stage_allowed( ) = abap_false.
lv_opt = zif_abapgit_html=>c_html_opt-crossout.

View File

@ -6,6 +6,16 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
PROTECTED SECTION.
CONSTANTS:
BEGIN OF c_actions,
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
sort_1 TYPE string VALUE 'sort_1' ##NO_TEXT,
sort_2 TYPE string VALUE 'sort_2' ##NO_TEXT,
sort_3 TYPE string VALUE 'sort_3' ##NO_TEXT,
stage TYPE string VALUE 'stage' ##NO_TEXT,
commit TYPE string VALUE 'commit' ##NO_TEXT,
END OF c_actions.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mt_result TYPE scit_alvlist .
@ -19,9 +29,9 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
!is_result TYPE scir_alvlist .
METHODS build_nav_link
IMPORTING
!is_result TYPE scir_alvlist
!is_result TYPE scir_alvlist
RETURNING
VALUE(rv_link) TYPE string.
VALUE(rv_link) TYPE string .
METHODS jump
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
@ -29,10 +39,12 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
!iv_line_number TYPE i
RAISING
zcx_abapgit_exception .
METHODS build_base_menu
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar .
PRIVATE SECTION.
CONSTANTS c_object_separator TYPE char1 VALUE '|'.
CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'.
ENDCLASS.
@ -40,6 +52,35 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
METHOD build_base_menu.
DATA:
lo_sort_menu TYPE REF TO zcl_abapgit_html_toolbar.
CREATE OBJECT lo_sort_menu.
lo_sort_menu->add(
iv_txt = 'By Object, Check, Sub-object'
iv_act = c_actions-sort_1
)->add(
iv_txt = 'By Object, Sub-object, Line'
iv_act = c_actions-sort_2
)->add(
iv_txt = 'By Check, Object, Sub-object'
iv_act = c_actions-sort_3 ).
CREATE OBJECT ro_menu.
ro_menu->add( iv_txt = 'Sort'
io_sub = lo_sort_menu ) ##NO_TEXT.
ro_menu->add( iv_txt = 'Re-Run'
iv_act = c_actions-rerun
iv_cur = abap_false ) ##NO_TEXT.
ENDMETHOD.
METHOD build_nav_link.
rv_link = |{ c_ci_sig }| &&
@ -52,13 +93,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
METHOD jump.
DATA: lo_test TYPE REF TO cl_ci_test_root,
ls_info TYPE scir_rest,
lo_result TYPE REF TO cl_ci_result_root,
lv_adt_jump_enabled TYPE abap_bool,
lv_line_number TYPE i,
ls_item TYPE zif_abapgit_definitions=>ty_item,
ls_sub_item TYPE zif_abapgit_definitions=>ty_item.
DATA: lo_test TYPE REF TO cl_ci_test_root,
ls_info TYPE scir_rest,
lo_result TYPE REF TO cl_ci_result_root,
lv_adt_jump_enabled TYPE abap_bool,
lv_line_number TYPE i,
ls_item TYPE zif_abapgit_definitions=>ty_item,
ls_sub_item TYPE zif_abapgit_definitions=>ty_item.
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
@ -152,7 +193,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
DATA: lv_class TYPE string,
lv_obj_txt TYPE string,
lv_msg TYPE string.
lv_msg TYPE string,
ls_mtdkey TYPE seocpdkey.
CASE is_result-kind.
WHEN 'E'.
@ -170,7 +212,26 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
( is_result-sobjname = is_result-objname AND
is_result-sobjtype = is_result-sobjtype ).
lv_obj_txt = |{ is_result-objtype } { is_result-objname }|.
ELSE.
ELSEIF is_result-objtype = 'CLAS'.
TRY.
CASE is_result-sobjname+30(*).
WHEN seop_incextapp_definition.
lv_obj_txt = |{ is_result-objname } : Local Definitions|.
WHEN seop_incextapp_implementation.
lv_obj_txt = |{ is_result-objname } : Local Implementations|.
WHEN seop_incextapp_macros.
lv_obj_txt = |{ is_result-objname } : Macros|.
WHEN seop_incextapp_testclasses.
lv_obj_txt = |{ is_result-objname } : Test Classes|.
WHEN OTHERS.
ls_mtdkey = cl_oo_classname_service=>get_method_by_include( is_result-sobjname ).
lv_obj_txt = |{ ls_mtdkey-clsname }->{ ls_mtdkey-cpdname }|.
ENDCASE.
CATCH cx_root.
lv_obj_txt = ''. "use default below
ENDTRY.
ENDIF.
IF lv_obj_txt IS INITIAL.
lv_obj_txt = |{ is_result-objtype } { is_result-objname } &gt; { is_result-sobjtype } { is_result-sobjname }|.
ENDIF.
lv_obj_txt = |{ lv_obj_txt } [ @{ zcl_abapgit_convert=>alpha_output( is_result-line ) } ]|.
@ -220,5 +281,22 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
ENDIF.
CASE iv_action.
WHEN c_actions-sort_1.
SORT mt_result BY objtype objname test code sobjtype sobjname line col.
ei_page = me.
ev_state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN c_actions-sort_2.
SORT mt_result BY objtype objname sobjtype sobjname line col test code.
ei_page = me.
ev_state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN c_actions-sort_3.
SORT mt_result BY test code objtype objname sobjtype sobjname line col.
ei_page = me.
ev_state = zcl_abapgit_gui=>c_event_state-re_render.
ENDCASE.
ENDMETHOD.
ENDCLASS.

View File

@ -22,11 +22,6 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION PUBLIC FINAL CREATE PUBLIC
render_content REDEFINITION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_actions,
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
END OF c_actions.
METHODS:
build_menu
RETURNING
@ -37,7 +32,6 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION PUBLIC FINAL CREATE PUBLIC
run_syntax_check
RAISING
zcx_abapgit_exception.
ENDCLASS.
@ -47,11 +41,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
METHOD build_menu.
CREATE OBJECT ro_menu.
ro_menu->add( iv_txt = 'Re-Run'
iv_act = c_actions-rerun
iv_cur = abap_false ) ##NO_TEXT.
ro_menu = build_base_menu( ).
ENDMETHOD.

View File

@ -82,7 +82,7 @@ ENDCLASS.
CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
CLASS ZCL_ABAPGIT_CODE_INSPECTOR IMPLEMENTATION.
METHOD cleanup.
@ -177,6 +177,7 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
DATA: lt_objs TYPE scit_objs,
ls_obj TYPE scir_objs,
lt_objs_check TYPE scit_objs,
ls_item TYPE zif_abapgit_definitions=>ty_item,
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt.
lt_packages = zcl_abapgit_factory=>get_sap_package( mv_package )->list_subpackages( ).
@ -196,6 +197,13 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
CONTINUE.
ENDIF.
ls_item-obj_type = ls_obj-objtype.
ls_item-obj_name = ls_obj-objname.
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
CONTINUE.
ENDIF.
INSERT ls_obj INTO TABLE lt_objs_check.
ENDLOOP.
@ -207,28 +215,6 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
ENDMETHOD.
METHOD skip_object.
DATA: ls_trdir TYPE trdir.
CASE is_obj-objtype.
WHEN 'PROG'.
SELECT SINGLE *
INTO ls_trdir
FROM trdir
WHERE name = is_obj-objname.
rv_skip = boolc( ls_trdir-subc = 'I' ). " Include program.
WHEN OTHERS.
rv_skip = abap_false.
ENDCASE.
ENDMETHOD.
METHOD create_variant.
IF iv_variant IS INITIAL.
@ -256,6 +242,23 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
ENDMETHOD.
METHOD decide_run_mode.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
IF sy-batch = abap_true.
" We have to disable parallelization in batch because of lock errors.
rv_run_mode = co_run_mode-run_via_rfc.
ELSEIF lo_settings->get_parallel_proc_disabled( ) = abap_false.
rv_run_mode = co_run_mode-run_loc_parallel.
ELSE.
rv_run_mode = co_run_mode-run_via_rfc.
ENDIF.
ENDMETHOD.
METHOD run_inspection.
io_inspection->run(
@ -271,6 +274,32 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
io_inspection->plain_list( IMPORTING p_list = rt_list ).
SORT rt_list BY objtype objname test code sobjtype sobjname line col.
DELETE ADJACENT DUPLICATES FROM rt_list.
ENDMETHOD.
METHOD skip_object.
DATA: ls_trdir TYPE trdir.
CASE is_obj-objtype.
WHEN 'PROG'.
SELECT SINGLE *
INTO ls_trdir
FROM trdir
WHERE name = is_obj-objname.
rv_skip = boolc( ls_trdir-subc = 'I' ). " Include program.
WHEN OTHERS.
rv_skip = abap_false.
ENDCASE.
ENDMETHOD.
@ -339,21 +368,4 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
METHOD decide_run_mode.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
IF sy-batch = abap_true.
" We have to disable parallelization in batch because of lock errors.
rv_run_mode = co_run_mode-run_via_rfc.
ELSEIF lo_settings->get_parallel_proc_disabled( ) = abap_false.
rv_run_mode = co_run_mode-run_loc_parallel.
ELSE.
rv_run_mode = co_run_mode-run_via_rfc.
ENDIF.
ENDMETHOD.
ENDCLASS.