From 372a2ab7ae0912367f84ea7247f82d2221bbd9ab Mon Sep 17 00:00:00 2001 From: Alexander Tsybulsky Date: Sat, 9 Oct 2021 08:04:57 +0300 Subject: [PATCH] SCI result at stage and commit pages (#5002) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * sci result at stage and commit pages * improvements Co-authored-by: Lars Hvam Co-authored-by: Christian Günter --- src/ui/zabapgit_css_common.w3mi.data.css | 26 ++++ src/ui/zabapgit_icon_font.w3mi.data.woff | Bin 5468 -> 5612 bytes src/ui/zabapgit_icon_font_css.w3mi.data.css | 143 +++++++++--------- src/ui/zcl_abapgit_gui_chunk_lib.clas.abap | 30 +++- .../zcl_abapgit_gui_page_code_insp.clas.abap | 29 +++- src/ui/zcl_abapgit_gui_page_commit.clas.abap | 12 ++ src/ui/zcl_abapgit_gui_page_stage.clas.abap | 29 ++-- src/ui/zcl_abapgit_gui_router.clas.abap | 14 +- src/zif_abapgit_definitions.intf.abap | 8 + 9 files changed, 205 insertions(+), 86 deletions(-) diff --git a/src/ui/zabapgit_css_common.w3mi.data.css b/src/ui/zabapgit_css_common.w3mi.data.css index af5fa9213..a44ea6831 100644 --- a/src/ui/zabapgit_css_common.w3mi.data.css +++ b/src/ui/zabapgit_css_common.w3mi.data.css @@ -86,6 +86,32 @@ span.separator { margin-right: auto; } +span.boxed { + border-radius: 3px; + padding: 4px 7px; + margin-left: 0.2em; + margin-right: 0.2em; + font-size: smaller; +} +span.boxed i.icon { + padding-right: 5px; +} +.red-filled-set { + border-width: 0px; + color: hsl(0, 78%, 93%); + background-color: hsl(0, 78%, 65%); +} +.green-filled-set { + border-width: 0px; + color: hsl(120, 45%, 90%); + background-color: hsl(120, 27%, 60%); +} +.yellow-filled-set { + border-width: 0px; + color: hsl(45, 99%, 90%); + background-color: hsl(45, 100%, 46%); +} + /* PANELS */ div.panel { border-radius: 3px; diff --git a/src/ui/zabapgit_icon_font.w3mi.data.woff b/src/ui/zabapgit_icon_font.w3mi.data.woff index bb44988e88f24f1f0b71e444b49a4b444c00808c..fecc9890210bdbfc755a64d6ca118f14f3a5d653 100644 GIT binary patch delta 5188 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 delta 5029 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. + + PROTECTED SECTION. CLASS-METHODS render_repo_top_commit_hash @@ -185,7 +191,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION. METHOD advanced_submenu. @@ -931,6 +937,28 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. ENDMETHOD. + METHOD render_sci_result. + + DATA lv_icon TYPE string. + + lv_icon = ii_html->icon( + iv_name = 'bug-solid' + iv_hint = 'Code inspector result' ). + + CASE iv_sci_result. + WHEN zif_abapgit_definitions=>c_sci_result-passed. + ii_html->add( |{ lv_icon }PASSED| ). + WHEN zif_abapgit_definitions=>c_sci_result-failed. + ii_html->add( |{ lv_icon }FAILED| ). + WHEN zif_abapgit_definitions=>c_sci_result-warning. + ii_html->add( |{ lv_icon }WARN| ). + WHEN OTHERS. " Including NO_RUN + RETURN. + ENDCASE. + + ENDMETHOD. + + METHOD render_transport. DATA: diff --git a/src/ui/zcl_abapgit_gui_page_code_insp.clas.abap b/src/ui/zcl_abapgit_gui_page_code_insp.clas.abap index 92b48989f..9c9f9d1c6 100644 --- a/src/ui/zcl_abapgit_gui_page_code_insp.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_code_insp.clas.abap @@ -12,6 +12,10 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC RAISING zcx_abapgit_exception, + is_nothing_to_display + RETURNING + VALUE(rv_yes) TYPE abap_bool, + zif_abapgit_gui_event_handler~on_event REDEFINITION, @@ -60,7 +64,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION. METHOD ask_user_for_check_variant. @@ -163,6 +167,11 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION. ENDMETHOD. + METHOD is_nothing_to_display. + rv_yes = boolc( lines( mt_result ) = 0 ). + ENDMETHOD. + + METHOD is_stage_allowed. rv_is_stage_allowed = boolc( NOT ( mo_repo->get_local_settings( )-block_commit = abap_true @@ -220,7 +229,8 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION. METHOD zif_abapgit_gui_event_handler~on_event. - DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online. + DATA lo_repo_online TYPE REF TO zcl_abapgit_repo_online. + DATA lv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result. CASE ii_event->mv_action. WHEN c_actions-stage. @@ -231,9 +241,22 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION. " we need to refresh as the source might have changed lo_repo_online->refresh( ). + READ TABLE mt_result TRANSPORTING NO FIELDS WITH KEY kind = 'E'. + IF sy-subrc = 0. + lv_sci_result = zif_abapgit_definitions=>c_sci_result-failed. + ELSE. + READ TABLE mt_result TRANSPORTING NO FIELDS WITH KEY kind = 'W'. + IF sy-subrc = 0. + lv_sci_result = zif_abapgit_definitions=>c_sci_result-warning. + ELSE. + lv_sci_result = zif_abapgit_definitions=>c_sci_result-passed. + ENDIF. + ENDIF. + CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_stage EXPORTING - io_repo = lo_repo_online. + io_repo = lo_repo_online + iv_sci_result = lv_sci_result. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. ELSE. diff --git a/src/ui/zcl_abapgit_gui_page_commit.clas.abap b/src/ui/zcl_abapgit_gui_page_commit.clas.abap index c91389f0d..ebb5f9576 100644 --- a/src/ui/zcl_abapgit_gui_page_commit.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_commit.clas.abap @@ -16,6 +16,7 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online io_stage TYPE REF TO zcl_abapgit_stage + iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run RAISING zcx_abapgit_exception. @@ -38,6 +39,7 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION DATA mo_repo TYPE REF TO zcl_abapgit_repo_online . DATA mo_stage TYPE REF TO zcl_abapgit_stage . DATA ms_commit TYPE zif_abapgit_services_git=>ty_commit_fields . + DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result. METHODS render_menu RETURNING @@ -91,6 +93,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION. mo_repo = io_repo. mo_stage = io_stage. + mv_sci_result = iv_sci_result. ms_control-page_title = 'Commit'. ENDMETHOD. @@ -337,6 +340,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION. iv_opt = zif_abapgit_html=>c_html_opt-cancel ). ri_html->add( '
' ). + + IF mv_sci_result <> zif_abapgit_definitions=>c_sci_result-no_run. + ri_html->add( '' ). + zcl_abapgit_gui_chunk_lib=>render_sci_result( + ii_html = ri_html + iv_sci_result = mv_sci_result ). + ri_html->add( '' ). + ENDIF. + ri_html->add( lo_toolbar->render( ) ). ri_html->add( '
' ). diff --git a/src/ui/zcl_abapgit_gui_page_stage.clas.abap b/src/ui/zcl_abapgit_gui_page_stage.clas.abap index 4e09000fd..9f954b9ac 100644 --- a/src/ui/zcl_abapgit_gui_page_stage.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_stage.clas.abap @@ -13,13 +13,15 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION stage_filter TYPE string VALUE 'stage_filter', END OF c_action. - METHODS: - constructor - IMPORTING - io_repo TYPE REF TO zcl_abapgit_repo_online - iv_seed TYPE string OPTIONAL - RAISING zcx_abapgit_exception, - zif_abapgit_gui_event_handler~on_event REDEFINITION. + METHODS constructor + IMPORTING + io_repo TYPE REF TO zcl_abapgit_repo_online + iv_seed TYPE string OPTIONAL + iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run + RAISING + zcx_abapgit_exception. + + METHODS zif_abapgit_gui_event_handler~on_event REDEFINITION. PROTECTED SECTION. METHODS: @@ -39,6 +41,7 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION DATA ms_files TYPE zif_abapgit_definitions=>ty_stage_files . DATA mv_seed TYPE string . " Unique page id to bind JS sessionStorage DATA mv_filter_value TYPE string . + DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result. METHODS check_selected IMPORTING @@ -119,7 +122,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION. METHOD build_menu. @@ -193,6 +196,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. ms_control-page_title = 'Stage'. mo_repo = io_repo. mv_seed = iv_seed. + mv_sci_result = iv_sci_result. IF mv_seed IS INITIAL. " Generate based on time unless obtained from diff page GET TIME STAMP FIELD lv_ts. @@ -403,6 +407,9 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. ri_html->add( '| ). + zcl_abapgit_gui_chunk_lib=>render_sci_result( + ii_html = ri_html + iv_sci_result = mv_sci_result ). ri_html->add( '' ). ri_html->add( '' ). @@ -791,7 +798,8 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_commit EXPORTING io_repo = mo_repo - io_stage = lo_stage. + io_stage = lo_stage + iv_sci_result = mv_sci_result. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. @@ -802,7 +810,8 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_commit EXPORTING io_repo = mo_repo - io_stage = lo_stage. + io_stage = lo_stage + iv_sci_result = mv_sci_result. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index 265cff0d3..51a39fc8e 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -376,7 +376,19 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. EXPORTING io_repo = lo_repo. - ri_page = lo_code_inspector_page. + IF lo_code_inspector_page->is_nothing_to_display( ) = abap_true. + " force refresh on stage, to make sure the latest local and remote files are used + lo_repo->refresh( ). + CREATE OBJECT lo_stage_page + EXPORTING + io_repo = lo_repo + iv_seed = lv_seed + iv_sci_result = zif_abapgit_definitions=>c_sci_result-passed. + ri_page = lo_stage_page. + ELSE. + ri_page = lo_code_inspector_page. + ENDIF. + ELSEIF lo_repo->get_selected_branch( ) CP zif_abapgit_definitions=>c_git_branch-tags. lv_show_create_branch_popup = abap_true. lv_question_title = 'Staging on a tag'. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 41e53edf2..32c90e51d 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -358,6 +358,14 @@ INTERFACE zif_abapgit_definitions TYPES: ty_deserialization_step_tt TYPE STANDARD TABLE OF ty_deserialization_step WITH DEFAULT KEY . + TYPES ty_sci_result TYPE c LENGTH 1. + CONSTANTS: + BEGIN OF c_sci_result, + no_run TYPE ty_sci_result VALUE '', + failed TYPE ty_sci_result VALUE 'F', + warning TYPE ty_sci_result VALUE 'W', + passed TYPE ty_sci_result VALUE 'P', + END OF c_sci_result. CONSTANTS: BEGIN OF c_git_branch_type, branch TYPE ty_git_branch_type VALUE 'HD',