mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
SCI page deisgn (#2542)
* codeinsp design, phase 1 * fix alpha_output * final design
This commit is contained in:
parent
d8204d9130
commit
1ad16a03fe
|
@ -1013,3 +1013,43 @@ table.commit tr .title {
|
|||
width:1000px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
/* code inspector */
|
||||
.ci-head {
|
||||
background-color: #f2f2f2;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
.ci-head .package-name span {
|
||||
margin-left: 0.3em;
|
||||
color: grey;
|
||||
}
|
||||
.ci-variant {
|
||||
font-weight: bold;
|
||||
color: #444;
|
||||
}
|
||||
.ci-result {
|
||||
background-color: #f6f6f6;
|
||||
padding: 6px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.ci-result li {
|
||||
list-style-type: none;
|
||||
padding: 0.3em 0.8em;
|
||||
margin-top: 6px;
|
||||
color: #444;
|
||||
}
|
||||
.ci-result li:first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
.ci-result li.ci-error {
|
||||
border-left: 4px solid #cd5353;
|
||||
}
|
||||
.ci-result li.ci-warning {
|
||||
border-left: 4px solid #ecd227;
|
||||
}
|
||||
.ci-result li.ci-info {
|
||||
border-left: 4px solid #acacac;
|
||||
}
|
||||
.ci-result li span {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -188,27 +188,28 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
|||
CREATE OBJECT ro_html.
|
||||
|
||||
IF mv_check_variant IS INITIAL.
|
||||
ro_html->add( |No check variant supplied.| ).
|
||||
ro_html->add( zcl_abapgit_gui_chunk_lib=>render_error( iv_error = 'No check variant supplied.' ) ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '<div class="toc"><br/>' ).
|
||||
|
||||
ro_html->add( |Code inspector check variant: {
|
||||
mv_check_variant
|
||||
}<br/>| ).
|
||||
ro_html->add( '<div class="ci-head">' ).
|
||||
ro_html->add( |Code inspector check variant: <span class="ci-variant">{ mv_check_variant }</span>| ).
|
||||
ro_html->add( |<div class="float-right package-name">{
|
||||
zcl_abapgit_html=>icon( 'box/grey70' ) }<span>{
|
||||
mo_repo->get_package( ) }</span></div>| ).
|
||||
ro_html->add( '</div>' ).
|
||||
|
||||
IF lines( mt_result ) = 0.
|
||||
ro_html->add( '<br/><div class="success">No code inspector findings</div>' ).
|
||||
ro_html->add( '<div class="dummydiv success">' ).
|
||||
ro_html->add( zcl_abapgit_html=>icon( 'check' ) ).
|
||||
ro_html->add( 'No code inspector findings' ).
|
||||
ro_html->add( '</div>' ).
|
||||
ELSE.
|
||||
render_result(
|
||||
io_html = ro_html
|
||||
it_result = mt_result ).
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( |<br/>| ).
|
||||
|
||||
render_result( io_html = ro_html
|
||||
it_result = mt_result ).
|
||||
|
||||
ro_html->add( '</div>' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -13,6 +13,15 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
|
|||
IMPORTING
|
||||
!io_html TYPE REF TO zcl_abapgit_html
|
||||
!it_result TYPE scit_alvlist .
|
||||
METHODS render_result_line
|
||||
IMPORTING
|
||||
!io_html TYPE REF TO zcl_abapgit_html
|
||||
!is_result TYPE scir_alvlist .
|
||||
METHODS build_nav_link
|
||||
IMPORTING
|
||||
!is_result TYPE scir_alvlist
|
||||
RETURNING
|
||||
VALUE(rv_link) TYPE string.
|
||||
METHODS jump
|
||||
IMPORTING
|
||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
|
@ -21,7 +30,8 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
|
|||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS: c_object_separator TYPE char1 VALUE '|'.
|
||||
CONSTANTS c_object_separator TYPE char1 VALUE '|'.
|
||||
CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -30,6 +40,16 @@ ENDCLASS.
|
|||
CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD build_nav_link.
|
||||
|
||||
rv_link = |{ c_ci_sig }| &&
|
||||
|{ is_result-objtype }{ is_result-objname }| &&
|
||||
|{ c_object_separator }{ is_result-sobjtype }{ is_result-sobjname }| &&
|
||||
|{ c_object_separator }{ is_result-line }|.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD jump.
|
||||
|
||||
DATA: lo_test TYPE REF TO cl_ci_test_root,
|
||||
|
@ -103,94 +123,97 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
|
|||
METHOD render_result.
|
||||
|
||||
CONSTANTS: lc_limit TYPE i VALUE 500.
|
||||
|
||||
DATA: lv_class TYPE string,
|
||||
lv_line TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
|
||||
|
||||
io_html->add( '<div class="ci-result">' ).
|
||||
|
||||
LOOP AT it_result ASSIGNING <ls_result> TO lc_limit.
|
||||
|
||||
io_html->add( '<div>' ).
|
||||
IF <ls_result>-sobjname IS INITIAL OR
|
||||
( <ls_result>-sobjname = <ls_result>-objname AND
|
||||
<ls_result>-sobjtype = <ls_result>-sobjtype ).
|
||||
io_html->add_a( iv_txt = |{ <ls_result>-objtype } { <ls_result>-objname }|
|
||||
iv_act = |{ <ls_result>-objtype }{ <ls_result>-objname }| &&
|
||||
|{ c_object_separator }{ c_object_separator }{ <ls_result>-line }|
|
||||
iv_typ = zif_abapgit_html=>c_action_type-sapevent ).
|
||||
|
||||
ELSE.
|
||||
io_html->add_a( iv_txt = |{ <ls_result>-objtype } { <ls_result>-objname }| &&
|
||||
| < { <ls_result>-sobjtype } { <ls_result>-sobjname }|
|
||||
iv_act = |{ <ls_result>-objtype }{ <ls_result>-objname }| &&
|
||||
|{ c_object_separator }{ <ls_result>-sobjtype }{ <ls_result>-sobjname }| &&
|
||||
|{ c_object_separator }{ <ls_result>-line }|
|
||||
iv_typ = zif_abapgit_html=>c_action_type-sapevent ).
|
||||
|
||||
ENDIF.
|
||||
io_html->add( '</div>' ).
|
||||
|
||||
CASE <ls_result>-kind.
|
||||
WHEN 'E'.
|
||||
lv_class = 'error'.
|
||||
WHEN 'W'.
|
||||
lv_class = 'warning'.
|
||||
WHEN OTHERS.
|
||||
lv_class = 'grey'.
|
||||
ENDCASE.
|
||||
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
|
||||
EXPORTING
|
||||
input = <ls_result>-line
|
||||
IMPORTING
|
||||
output = lv_line.
|
||||
|
||||
io_html->add( |<div class="{ lv_class }">Line { lv_line }: { <ls_result>-text }</div><br>| ).
|
||||
|
||||
render_result_line(
|
||||
io_html = io_html
|
||||
is_result = <ls_result> ).
|
||||
ENDLOOP.
|
||||
|
||||
io_html->add( '</div>' ).
|
||||
|
||||
IF lines( it_result ) > lc_limit.
|
||||
io_html->add( '<div class="dummydiv warning">' ).
|
||||
io_html->add( zcl_abapgit_html=>icon( 'exclamation-triangle' ) ).
|
||||
io_html->add( |Only first { lc_limit } findings shown in list!| ).
|
||||
io_html->add( '</div>' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD render_result_line.
|
||||
|
||||
DATA: lv_class TYPE string,
|
||||
lv_obj_txt TYPE string,
|
||||
lv_msg TYPE string.
|
||||
|
||||
CASE is_result-kind.
|
||||
WHEN 'E'.
|
||||
lv_class = 'ci-error'.
|
||||
WHEN 'W'.
|
||||
lv_class = 'ci-warning'.
|
||||
WHEN OTHERS.
|
||||
lv_class = 'ci-info'.
|
||||
ENDCASE.
|
||||
|
||||
lv_msg = escape( val = is_result-text format = cl_abap_format=>e_html_attr ).
|
||||
|
||||
IF is_result-sobjname IS INITIAL OR
|
||||
( is_result-sobjname = is_result-objname AND
|
||||
is_result-sobjtype = is_result-sobjtype ).
|
||||
lv_obj_txt = |{ is_result-objtype } { is_result-objname }|.
|
||||
ELSE.
|
||||
lv_obj_txt = |{ is_result-objtype } { is_result-objname } > { is_result-sobjtype } { is_result-sobjname }|.
|
||||
ENDIF.
|
||||
lv_obj_txt = |{ lv_obj_txt } [ @{ zcl_abapgit_convert=>alpha_output( is_result-line ) } ]|.
|
||||
|
||||
io_html->add( |<li class="{ lv_class }">| ).
|
||||
io_html->add_a(
|
||||
iv_txt = lv_obj_txt
|
||||
iv_act = build_nav_link( is_result )
|
||||
iv_typ = zif_abapgit_html=>c_action_type-sapevent ).
|
||||
io_html->add( |<span>{ lv_msg }</span>| ).
|
||||
io_html->add( '</li>' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_gui_page~on_event.
|
||||
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
ls_sub_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
lv_temp TYPE string,
|
||||
lv_main_object TYPE string,
|
||||
lv_sub_object TYPE string,
|
||||
lv_line_number_s TYPE string,
|
||||
lv_line_number TYPE i.
|
||||
|
||||
lv_temp = iv_action.
|
||||
SHIFT lv_temp LEFT DELETING LEADING c_ci_sig.
|
||||
|
||||
CASE iv_action.
|
||||
IF lv_temp <> iv_action. " CI navigation request detected
|
||||
|
||||
WHEN zif_abapgit_definitions=>c_action-abapgit_home.
|
||||
RETURN.
|
||||
SPLIT lv_temp AT c_object_separator INTO lv_main_object lv_sub_object lv_line_number_s.
|
||||
ls_item-obj_type = lv_main_object(4).
|
||||
ls_item-obj_name = lv_main_object+4(*).
|
||||
|
||||
WHEN OTHERS.
|
||||
SPLIT iv_action AT c_object_separator INTO lv_main_object lv_sub_object lv_line_number_s.
|
||||
ls_item-obj_type = lv_main_object(4).
|
||||
ls_item-obj_name = lv_main_object+4(*).
|
||||
IF lv_sub_object IS NOT INITIAL.
|
||||
ls_sub_item-obj_type = lv_sub_object(4).
|
||||
ls_sub_item-obj_name = lv_sub_object+4(*).
|
||||
ENDIF.
|
||||
|
||||
IF lv_sub_object IS NOT INITIAL.
|
||||
ls_sub_item-obj_type = lv_sub_object(4).
|
||||
ls_sub_item-obj_name = lv_sub_object+4(*).
|
||||
ENDIF.
|
||||
lv_line_number = lv_line_number_s.
|
||||
|
||||
lv_line_number = lv_line_number_s.
|
||||
jump( is_item = ls_item
|
||||
is_sub_item = ls_sub_item
|
||||
iv_line_number = lv_line_number ).
|
||||
|
||||
jump( is_item = ls_item
|
||||
is_sub_item = ls_sub_item
|
||||
iv_line_number = lv_line_number ).
|
||||
ev_state = zcl_abapgit_gui=>c_event_state-no_more_act.
|
||||
|
||||
ev_state = zcl_abapgit_gui=>c_event_state-no_more_act.
|
||||
|
||||
ENDCASE.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -356,6 +356,11 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_MAIN IMPLEMENTATION.
|
|||
ls_hotkey_action-default_hotkey = |d|.
|
||||
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||
|
||||
ls_hotkey_action-name = |Run code inspector|.
|
||||
ls_hotkey_action-action = zif_abapgit_definitions=>c_action-repo_code_inspector.
|
||||
ls_hotkey_action-default_hotkey = |i|.
|
||||
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -46,6 +46,11 @@ CLASS zcl_abapgit_convert DEFINITION
|
|||
iv_spras TYPE spras
|
||||
RETURNING
|
||||
VALUE(rv_spras) TYPE laiso.
|
||||
CLASS-METHODS alpha_output
|
||||
IMPORTING
|
||||
iv_val TYPE clike
|
||||
RETURNING
|
||||
VALUE(rv_str) TYPE string.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
@ -55,6 +60,19 @@ ENDCLASS.
|
|||
CLASS ZCL_ABAPGIT_CONVERT IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD alpha_output.
|
||||
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
|
||||
EXPORTING
|
||||
input = iv_val
|
||||
IMPORTING
|
||||
output = rv_str.
|
||||
|
||||
CONDENSE rv_str.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD bitbyte_to_int.
|
||||
|
||||
DATA: lv_bitbyte TYPE string,
|
||||
|
|
|
@ -9,6 +9,7 @@ CLASS ltcl_convert DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FIN
|
|||
METHODS convert_int FOR TESTING RAISING zcx_abapgit_exception.
|
||||
METHODS split_string FOR TESTING.
|
||||
METHODS convert_bitbyte FOR TESTING RAISING zcx_abapgit_exception.
|
||||
METHODS alpha_output FOR TESTING.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -19,6 +20,21 @@ ENDCLASS.
|
|||
*----------------------------------------------------------------------*
|
||||
CLASS ltcl_convert IMPLEMENTATION.
|
||||
|
||||
METHOD alpha_output.
|
||||
|
||||
DATA lv_alpha TYPE c LENGTH 10 VALUE '0000001234'.
|
||||
DATA lv_numc TYPE n LENGTH 6 VALUE '001234'.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = zcl_abapgit_convert=>alpha_output( lv_alpha )
|
||||
exp = '1234' ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = zcl_abapgit_convert=>alpha_output( lv_numc )
|
||||
exp = '1234' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD convert_bitbyte.
|
||||
|
||||
DATA: lv_xstring TYPE xstring,
|
||||
|
|
Loading…
Reference in New Issue
Block a user