From 0cbbc5bbfd3f8344e8e675b35432968c210dcb54 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Mon, 13 Nov 2023 00:55:21 -0500 Subject: [PATCH] Enhance repo labels (#6642) Co-authored-by: Lars Hvam --- .../lib/zcl_abapgit_gui_chunk_lib.clas.abap | 6 +++- .../zcl_abapgit_gui_page_sett_pers.clas.abap | 14 ++++----- src/utils/zcl_abapgit_repo_labels.clas.abap | 30 +++++++++++-------- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap index 8e00f7820..c573a722f 100644 --- a/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap @@ -684,7 +684,11 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. ENDIF. IF ls_parsed_color-bg IS NOT INITIAL. lv_style = lv_style && |background-color:#{ ls_parsed_color-bg };|. - lv_style = lv_style && |border-color:#{ ls_parsed_color-bg };|. + IF ls_parsed_color-border IS INITIAL. + lv_style = lv_style && |border-color:#{ ls_parsed_color-bg };|. + ELSE. + lv_style = lv_style && |border-color:#{ ls_parsed_color-border };|. + ENDIF. ENDIF. lv_style = lv_style && `"`. ENDIF. diff --git a/src/ui/pages/zcl_abapgit_gui_page_sett_pers.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_sett_pers.clas.abap index a57d41529..c5c82c191 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_sett_pers.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_sett_pers.clas.abap @@ -260,13 +260,13 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION. APPEND `

` TO lt_fragments. APPEND `Comma-separated list of label:color pairs.` TO lt_fragments. - APPEND ` color part can be either a css style (see below) or #fg/bg pair,` - TO lt_fragments. - APPEND ` where fg and bg are RGB color codes (3 or 6 long).` TO lt_fragments. - APPEND ` You can also specify just fg or bg` TO lt_fragments. - APPEND ` (defaults will be used for missing parts).` TO lt_fragments. + APPEND ` color part can be either a pre-defined style (see below), or` TO lt_fragments. + APPEND ` #fg/bg/border styles, where fg, ` TO lt_fragments. + APPEND ` bg, and border are RGB color codes (3 or 6 long).` TO lt_fragments. + APPEND ` You can also specify just fg, bg, or` TO lt_fragments. + APPEND ` border (defaults will be used for missing parts).` TO lt_fragments. APPEND ` E.g. utils:brown, work:#ff0000/880000, client X:#ddd, client Y:#/333` TO lt_fragments. - APPEND `
Available CSS styles:` TO lt_fragments. + APPEND `
Available styles:` TO lt_fragments. APPEND `

` TO lt_fragments. APPEND `white` TO lt_labels. @@ -306,7 +306,7 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION. io_label_colors = lo_colors ) TO lt_fragments. APPEND - `

see also rl-* styles in common.css (styles, forgotten here)

` + `

see also rl-* styles in common.css

` TO lt_fragments. rv_html = zcl_abapgit_gui_chunk_lib=>render_help_hint( concat_lines_of( table = lt_fragments ) ). diff --git a/src/utils/zcl_abapgit_repo_labels.clas.abap b/src/utils/zcl_abapgit_repo_labels.clas.abap index 0189cf741..f76a21936 100644 --- a/src/utils/zcl_abapgit_repo_labels.clas.abap +++ b/src/utils/zcl_abapgit_repo_labels.clas.abap @@ -14,9 +14,10 @@ CLASS zcl_abapgit_repo_labels DEFINITION TYPES: BEGIN OF ty_color, - cls TYPE string, - fg TYPE string, - bg TYPE string, + cls TYPE string, + fg TYPE string, + bg TYPE string, + border TYPE string, END OF ty_color. CONSTANTS c_allowed_chars TYPE string VALUE `-_. a-zA-Z0-9` ##NO_TEXT. @@ -30,12 +31,12 @@ CLASS zcl_abapgit_repo_labels DEFINITION zcx_abapgit_exception. CLASS-METHODS split IMPORTING - !iv_labels TYPE string + !iv_labels TYPE string RETURNING VALUE(rt_labels) TYPE string_table. CLASS-METHODS normalize IMPORTING - !iv_labels TYPE string + !iv_labels TYPE string RETURNING VALUE(rv_labels) TYPE string. @@ -46,23 +47,23 @@ CLASS zcl_abapgit_repo_labels DEFINITION zcx_abapgit_exception. CLASS-METHODS split_colors IMPORTING - !iv_config TYPE string + !iv_config TYPE string RETURNING VALUE(rt_label_colors) TYPE ty_label_colors. CLASS-METHODS split_colors_into_map IMPORTING - !iv_config TYPE string + !iv_config TYPE string RETURNING VALUE(ro_map) TYPE REF TO zcl_abapgit_string_map. CLASS-METHODS normalize_colors IMPORTING - !iv_config TYPE string + !iv_config TYPE string RETURNING VALUE(rv_config) TYPE string. CLASS-METHODS parse_color IMPORTING - iv_color TYPE string + iv_color TYPE string RETURNING VALUE(rs_parsed) TYPE ty_color. @@ -72,7 +73,7 @@ CLASS zcl_abapgit_repo_labels DEFINITION CLASS-METHODS validate_one_label_color IMPORTING - !is_lc TYPE ty_label_color + !is_lc TYPE ty_label_color !iv_index TYPE i DEFAULT 0 RAISING zcx_abapgit_exception. @@ -88,7 +89,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_REPO_LABELS IMPLEMENTATION. +CLASS zcl_abapgit_repo_labels IMPLEMENTATION. METHOD class_constructor. @@ -164,7 +165,7 @@ CLASS ZCL_ABAPGIT_REPO_LABELS IMPLEMENTATION. IF iv_color+0(1) = '#'. lv_tmp = iv_color+1. - SPLIT lv_tmp AT '/' INTO rs_parsed-fg rs_parsed-bg. + SPLIT lv_tmp AT '/' INTO rs_parsed-fg rs_parsed-bg rs_parsed-border. ELSE. rs_parsed-cls = iv_color. ENDIF. @@ -295,6 +296,9 @@ CLASS ZCL_ABAPGIT_REPO_LABELS IMPLEMENTATION. IF ls_parsed_color-bg IS NOT INITIAL. validate_rgb_color( ls_parsed_color-bg ). ENDIF. + IF ls_parsed_color-border IS NOT INITIAL. + validate_rgb_color( ls_parsed_color-border ). + ENDIF. ENDMETHOD. @@ -310,7 +314,7 @@ CLASS ZCL_ABAPGIT_REPO_LABELS IMPLEMENTATION. ENDIF. lv_len = strlen( iv_color ). IF NOT ( lv_len = 3 OR lv_len = 6 ). - zcx_abapgit_exception=>raise( |Icorrect color in pair #{ iv_index }| ). + zcx_abapgit_exception=>raise( |Incorrect color in pair #{ iv_index }| ). ENDIF. ENDIF.