Improve visualization of tags (#6098)

This commit is contained in:
Marc Bernard 2023-02-27 08:45:35 +01:00 committed by GitHub
parent 110da66989
commit c43b8ccda4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 27 deletions

View File

@ -141,13 +141,9 @@ CLASS zcl_abapgit_git_branch_list IMPLEMENTATION.
METHOD find_tag_by_name.
DATA: lv_branch_name TYPE string.
lv_branch_name = iv_branch_name && '^{}'.
READ TABLE mt_branches INTO rs_branch
WITH TABLE KEY name_key
COMPONENTS name = lv_branch_name.
COMPONENTS name = zcl_abapgit_git_tag=>add_peel( iv_branch_name ).
IF sy-subrc <> 0.
READ TABLE mt_branches INTO rs_branch
@ -186,8 +182,7 @@ CLASS zcl_abapgit_git_branch_list IMPLEMENTATION.
IF rv_display_name CP zif_abapgit_definitions=>c_git_branch-heads.
REPLACE FIRST OCCURRENCE OF zif_abapgit_definitions=>c_git_branch-heads_prefix IN rv_display_name WITH ''.
ELSEIF rv_display_name CP zif_abapgit_definitions=>c_git_branch-tags.
REPLACE FIRST OCCURRENCE OF zif_abapgit_definitions=>c_git_branch-prefix IN rv_display_name WITH ''.
rv_display_name = zcl_abapgit_git_tag=>remove_peel( rv_display_name ).
rv_display_name = zcl_abapgit_git_tag=>remove_tag_prefix( zcl_abapgit_git_tag=>remove_peel( rv_display_name ) ).
ENDIF.
ENDMETHOD.
@ -212,8 +207,6 @@ CLASS zcl_abapgit_git_branch_list IMPLEMENTATION.
METHOD get_type.
DATA: lv_annotated_tag_with_suffix TYPE string.
FIELD-SYMBOLS: <lv_result> TYPE LINE OF string_table.
rv_type = zif_abapgit_definitions=>c_git_branch_type-other.
@ -224,11 +217,9 @@ CLASS zcl_abapgit_git_branch_list IMPLEMENTATION.
ELSEIF iv_branch_name CP zif_abapgit_definitions=>c_git_branch-tags.
lv_annotated_tag_with_suffix = iv_branch_name && '^{}'.
READ TABLE it_result ASSIGNING <lv_result>
INDEX iv_current_row_index + 1.
IF sy-subrc = 0 AND <lv_result> CP '*' && lv_annotated_tag_with_suffix.
IF sy-subrc = 0 AND <lv_result> CP '*' && zcl_abapgit_git_tag=>add_peel( iv_branch_name ).
rv_type = zif_abapgit_definitions=>c_git_branch_type-annotated_tag.
ELSE.
rv_type = zif_abapgit_definitions=>c_git_branch_type-lightweight_tag.

View File

@ -356,6 +356,8 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
lv_selected_commit TYPE string,
lv_commit_short_sha TYPE string,
lv_text TYPE string,
lv_icon TYPE string,
lv_hint TYPE string,
lv_class TYPE string.
IF iv_repo_key IS NOT INITIAL.
@ -383,16 +385,26 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Either iv_branch or io_repo must be supplied' ).
ENDIF.
IF zcl_abapgit_git_branch_list=>get_type( lv_branch ) = zif_abapgit_definitions=>c_git_branch_type-branch.
lv_class = 'branch branch_branch'.
ELSE.
lv_class = 'branch'.
ENDIF.
CASE zcl_abapgit_git_branch_list=>get_type( lv_branch ).
WHEN zif_abapgit_definitions=>c_git_branch_type-branch.
lv_class = 'branch branch_branch'.
lv_icon = 'code-branch/grey70'.
lv_hint = 'Current branch'.
WHEN zif_abapgit_definitions=>c_git_branch_type-annotated_tag
OR zif_abapgit_definitions=>c_git_branch_type-lightweight_tag.
lv_class = 'branch'.
lv_icon = 'tag-solid/grey70'.
lv_hint = 'Current tag'.
WHEN OTHERS.
lv_class = 'branch branch_branch'.
lv_icon = 'code-branch/grey70'.
lv_hint = 'Current commit'.
ENDCASE.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( |<span class="{ lv_class }">| ).
ri_html->add_icon( iv_name = 'code-branch/grey70'
iv_hint = 'Current branch' ).
ri_html->add_icon( iv_name = lv_icon
iv_hint = lv_hint ).
IF iv_interactive = abap_true.
ri_html->add_a( iv_act = |{ zif_abapgit_definitions=>c_action-git_branch_switch }?key={ lv_key }|
iv_txt = lv_text ).

View File

@ -167,7 +167,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
METHOD apply_filter.
@ -282,7 +282,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
iv_allow_order_by = abap_true
)->add_column(
iv_tech_name = 'BRANCH'
iv_display_name = 'Branch'
iv_display_name = 'Branch/Tag'
iv_allow_order_by = abap_true
)->add_column(
iv_tech_name = 'DESERIALIZED_BY'

View File

@ -240,13 +240,11 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
REPLACE '^{}' IN ls_tag-name WITH ''.
lo_repo->select_branch( ls_tag-name ).
lo_repo->select_branch( zcl_abapgit_git_tag=>remove_peel( ls_tag-name ) ).
COMMIT WORK AND WAIT.
lv_text = |Tag switched to { zcl_abapgit_git_tag=>remove_tag_prefix( ls_tag-name ) } |.
lv_text = |Tag switched to { ls_tag-display_name } |.
MESSAGE lv_text TYPE 'S'.

View File

@ -69,7 +69,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
CLASS zcl_abapgit_popups IMPLEMENTATION.
METHOD add_field.
@ -913,7 +913,7 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
lo_branches = zcl_abapgit_git_transport=>branches( iv_url ).
lt_tags = lo_branches->get_tags_only( ).
LOOP AT lt_tags ASSIGNING <ls_tag> WHERE name NP '*^{}'.
LOOP AT lt_tags ASSIGNING <ls_tag> WHERE name NP '*' && zif_abapgit_definitions=>c_git_branch-peel.
APPEND INITIAL LINE TO lt_selection ASSIGNING <ls_sel>.
<ls_sel>-varoption = zcl_abapgit_git_tag=>remove_tag_prefix( <ls_tag>-name ).