Merge pull request #534 from sbcgua/master

HEAD in select branch dialog & highlighting css bug fix
This commit is contained in:
Lars Hvam 2017-01-12 21:26:38 +01:00 committed by GitHub
commit 73441ce92f
6 changed files with 83 additions and 48 deletions

View File

@ -111,9 +111,22 @@ div.menu .menu_end { border-right: 0px !important; }
div.menu a {
padding-left: 0.5em;
padding-right: 0.5em;
border-right: 1px solid lightgrey;
font-size: 12pt;
}
div.menu > a {
border-right: 1px solid lightgrey;
}
div.menu > div.dropdown > a {
border-right: 1px solid lightgrey;
}
div.menu > a:last-child {
border-right: 0px !important;
}
div.menu > div.dropdown:last-child > a {
border-right: 0px !important;
}
div.menu_vertical { display: inline; }
div.menu_vertical a {
display: block;
@ -519,19 +532,17 @@ table.diff_tab code {
white-space: pre;
}
table.diff_tab td.code {
/* font-family: inherit; */
/* white-space: pre; */
word-wrap: break-word;
white-space: pre-wrap;
overflow: visible;
}
table.diff_tab code span.keyword { color: #0a69ce; }
table.diff_tab code span.text { color: #48ce4f; }
table.diff_tab code span.comment { color: #808080; font-style: italic; }
table.diff_tab code span.xml_tag { color: #457ce3; }
table.diff_tab code span.attr { color: #b777fb; }
table.diff_tab code span.attr_val { color: #7a02f9; }
table.diff_tab .code span.keyword { color: #0a69ce; }
table.diff_tab .code span.text { color: #48ce4f; }
table.diff_tab .code span.comment { color: #808080; font-style: italic; }
table.diff_tab .code span.xml_tag { color: #457ce3; }
table.diff_tab .code span.attr { color: #b777fb; }
table.diff_tab .code span.attr_val { color: #7a02f9; }
table.diff_tab tbody tr:first-child td { padding-top: 0.5em; }
table.diff_tab tbody tr:last-child td { padding-bottom: 0.5em; }

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<NAME>ZABAPGIT_CSS_COMMON</NAME>
<TEXT>AbapGit common styles</TEXT>
<TEXT/>
<PARAMS>
<WWWPARAMS>
<RELID>MI</RELID>

View File

@ -111,7 +111,7 @@ CLASS lcl_git_branch_list DEFINITION FINAL.
tag TYPE ty_git_branch_type VALUE 'TG',
other TYPE ty_git_branch_type VALUE 'ZZ',
END OF c_type.
CONSTANTS head_name TYPE string VALUE 'HEAD'.
CONSTANTS c_head_name TYPE string VALUE 'HEAD'.
METHODS constructor
IMPORTING iv_data TYPE string
@ -126,6 +126,9 @@ CLASS lcl_git_branch_list DEFINITION FINAL.
RETURNING VALUE(rs_branch) TYPE ty_git_branch
RAISING lcx_exception.
METHODS get_head_symref
RETURNING VALUE(rv_head_symref) TYPE string.
METHODS get_branches_only
RETURNING VALUE(rt_branches) TYPE ty_git_branch_list_tt
RAISING lcx_exception.
@ -150,6 +153,10 @@ CLASS lcl_git_branch_list DEFINITION FINAL.
IMPORTING iv_branch_name TYPE clike
RETURNING VALUE(rv_name) TYPE string.
CLASS-METHODS normalize_branch_name
IMPORTING iv_branch_name TYPE clike
RETURNING VALUE(rv_name) TYPE string.
PRIVATE SECTION.
DATA mt_branches TYPE ty_git_branch_list_tt.
DATA mv_head_symref TYPE string.
@ -178,6 +185,10 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
ev_head_symref = me->mv_head_symref ).
ENDMETHOD. "create
METHOD get_head_symref.
rv_head_symref = mv_head_symref.
ENDMETHOD. " get_head_symref.
METHOD find_by_name.
IF iv_branch_name IS INITIAL.
@ -197,7 +208,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
IF mv_head_symref IS NOT INITIAL.
rs_branch = find_by_name( mv_head_symref ).
ELSE.
rs_branch = find_by_name( head_name ).
rs_branch = find_by_name( c_head_name ).
ENDIF.
ENDMETHOD. "get_head
@ -246,7 +257,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
<ls_branch>-name = lv_name.
<ls_branch>-display_name = get_display_name( lv_name ).
<ls_branch>-type = get_type( lv_name ).
IF <ls_branch>-name = head_name OR <ls_branch>-name = ev_head_symref.
IF <ls_branch>-name = c_head_name OR <ls_branch>-name = ev_head_symref.
<ls_branch>-is_head = abap_true.
ENDIF.
ENDLOOP.
@ -295,7 +306,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
METHOD get_type.
rv_type = c_type-other.
IF iv_branch_name CP 'refs/heads/*' OR iv_branch_name = head_name.
IF iv_branch_name CP 'refs/heads/*' OR iv_branch_name = c_head_name.
rv_type = c_type-branch.
RETURN.
ENDIF.
@ -334,4 +345,11 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
ENDLOOP.
ENDMETHOD. "get_tags_only
METHOD normalize_branch_name.
rv_name = iv_branch_name. " Force convert to string
REPLACE ALL OCCURRENCES OF ` ` IN rv_name WITH '-'. " Disallow space in branch name
ENDMETHOD. " normalize_branch_name.
ENDCLASS. "lcl_git_branch_list

View File

@ -332,8 +332,7 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
METHOD render. "TODO refactor
DATA: lv_class TYPE string,
lv_is_drop TYPE abap_bool,
lv_last TYPE abap_bool.
lv_is_drop TYPE abap_bool.
FIELD-SYMBOLS <ls_item> LIKE LINE OF mt_items.
@ -359,13 +358,8 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
IF iv_as_angle = abap_true.
ro_html->add( '<div class="dropbtn_angle"></div>' ).
ELSE.
lv_class = 'dropbtn'.
IF iv_no_separator = abap_true.
lv_class = lv_class && ' menu_end' ##NO_TEXT.
ENDIF.
ro_html->add_a( iv_txt = iv_as_droplist_with_label
iv_class = lv_class
iv_class = 'dropbtn'
iv_act = '' ).
ENDIF.
@ -386,15 +380,8 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
ENDIF.
LOOP AT mt_items ASSIGNING <ls_item>.
lv_last = boolc( sy-tabix = lines( mt_items ) ).
IF <ls_item>-sub IS INITIAL.
CLEAR lv_class.
IF iv_no_separator = abap_true
OR lv_last = abap_true
AND iv_as_droplist_with_label IS INITIAL.
lv_class = 'menu_end'.
ENDIF.
IF iv_with_icons = abap_true.
ro_html->add( '<tr>' ).
@ -405,8 +392,7 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
ro_html->add_a( iv_txt = <ls_item>-txt
iv_act = <ls_item>-act
iv_opt = <ls_item>-opt
iv_typ = <ls_item>-typ
iv_class = lv_class ).
iv_typ = <ls_item>-typ ).
IF iv_with_icons = abap_true.
ro_html->add( '</td>' ).
@ -414,9 +400,7 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
ENDIF.
ELSE.
ro_html->add( <ls_item>-sub->render(
iv_as_droplist_with_label = <ls_item>-txt
iv_no_separator = lv_last ) ).
ro_html->add( <ls_item>-sub->render( iv_as_droplist_with_label = <ls_item>-txt ) ).
ENDIF.
ENDLOOP.
@ -426,7 +410,8 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
ENDIF.
IF lv_is_drop = abap_true. " Dropdown
ro_html->add( '</div></div>' ).
ro_html->add( '</div>' ).
ro_html->add( '</div>' ).
ENDIF.
ro_html->add( '</div>' ).

View File

@ -162,7 +162,8 @@ CLASS lcl_gui_chunk_lib IMPLEMENTATION.
lv_text = lcl_git_branch_list=>get_display_name( iv_branch ).
IF iv_branch = io_repo->get_head_branch_name( ) OR iv_branch = lcl_git_branch_list=>head_name.
IF iv_branch = io_repo->get_head_branch_name( )
OR iv_branch = lcl_git_branch_list=>c_head_name.
lv_class = 'branch branch_head'.
ELSEIF lcl_git_branch_list=>get_type( iv_branch ) = lcl_git_branch_list=>c_type-branch.
lv_class = 'branch branch_branch'.

View File

@ -174,7 +174,7 @@ CLASS lcl_popups IMPLEMENTATION.
CLEAR: ev_name, ev_cancel.
* TAB FLD LABEL DEF ATTR
_add_dialog_fld 'TEXTL' 'LINE' 'Name' 'new_branch_name' ''.
_add_dialog_fld 'TEXTL' 'LINE' 'Name' 'new-branch-name' ''.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
@ -195,7 +195,8 @@ CLASS lcl_popups IMPLEMENTATION.
ELSE.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
ev_name = lcl_git_branch_list=>complete_heads_branch_name( <ls_field>-value ).
ev_name = lcl_git_branch_list=>complete_heads_branch_name(
lcl_git_branch_list=>normalize_branch_name( <ls_field>-value ) ).
ENDIF.
ENDMETHOD.
@ -282,26 +283,42 @@ CLASS lcl_popups IMPLEMENTATION.
METHOD branch_list_popup.
DATA: lo_branches TYPE REF TO lcl_git_branch_list,
lt_branches TYPE lcl_git_branch_list=>ty_git_branch_list_tt,
lv_answer TYPE c LENGTH 1,
lv_default TYPE i VALUE 1, "Default cursor position
lt_selection TYPE TABLE OF spopli.
DATA: lo_branches TYPE REF TO lcl_git_branch_list,
lt_branches TYPE lcl_git_branch_list=>ty_git_branch_list_tt,
lv_head_suffix TYPE string,
lv_answer TYPE c LENGTH 1,
lv_default TYPE i VALUE 1, "Default cursor position
lt_selection TYPE TABLE OF spopli.
FIELD-SYMBOLS: <ls_sel> LIKE LINE OF lt_selection,
<ls_branch> LIKE LINE OF lt_branches.
lo_branches = lcl_git_transport=>branches( iv_url ).
lo_branches = lcl_git_transport=>branches( iv_url ).
lt_branches = lo_branches->get_branches_only( ).
lv_head_suffix = | ({ lcl_git_branch_list=>c_head_name })|.
lt_branches = lo_branches->get_branches_only( ).
LOOP AT lt_branches ASSIGNING <ls_branch>.
APPEND INITIAL LINE TO lt_selection ASSIGNING <ls_sel>.
<ls_sel>-varoption = <ls_branch>-name.
IF <ls_branch>-name = lcl_git_branch_list=>c_head_name
AND <ls_branch>-name <> lo_branches->get_head_symref( ).
" HEAD but other HEAD symref exist
CONTINUE.
ENDIF.
APPEND INITIAL LINE TO lt_selection ASSIGNING <ls_sel>.
IF iv_default_branch IS NOT INITIAL AND iv_default_branch = <ls_branch>-name.
lv_default = sy-tabix.
ENDIF.
IF <ls_branch>-name = lo_branches->get_head_symref( )
AND <ls_branch>-name <> lcl_git_branch_list=>c_head_name.
" HEAD symref but not HEAD itself
<ls_sel>-varoption = <ls_branch>-display_name && lv_head_suffix.
ELSE.
<ls_sel>-varoption = <ls_branch>-display_name.
ENDIF.
ENDLOOP.
IF iv_show_new_option = abap_true.
@ -339,7 +356,10 @@ CLASS lcl_popups IMPLEMENTATION.
IF iv_show_new_option = abap_true AND <ls_sel>-varoption = c_new_branch_label.
rs_branch-name = c_new_branch_label.
ELSE.
rs_branch = lo_branches->find_by_name( <ls_sel>-varoption ).
REPLACE FIRST OCCURRENCE OF lv_head_suffix IN <ls_sel>-varoption WITH ''.
READ TABLE lt_branches WITH KEY display_name = <ls_sel>-varoption ASSIGNING <ls_branch>.
ASSERT sy-subrc = 0.
rs_branch = lo_branches->find_by_name( <ls_branch>-name ).
ENDIF.