Merge pull request #313 from sbcgua/master

Finetunings in repo_head UI and html_helper
This commit is contained in:
Lars Hvam 2016-09-03 19:16:36 +02:00 committed by GitHub
commit a4413dfae7
3 changed files with 66 additions and 26 deletions

View File

@ -270,8 +270,9 @@ CLASS lcl_html_helper DEFINITION FINAL.
PUBLIC SECTION.
CONSTANTS: c_indent_size TYPE i VALUE 2.
DATA mv_html TYPE string READ-ONLY.
DATA mv_indent TYPE i READ-ONLY.
DATA mv_html TYPE string READ-ONLY.
DATA mv_indent TYPE i READ-ONLY.
DATA mv_within_style TYPE i READ-ONLY.
METHODS add IMPORTING iv_chunk TYPE any.
METHODS reset.
@ -327,18 +328,26 @@ CLASS lcl_html_helper IMPLEMENTATION.
CONSTANTS lc_single_tags_re TYPE string " HTML5 singleton tags
VALUE '<(area|base|br|col|command|embed|hr|img|input|link|meta|param|source|!)'.
DATA lv_tags TYPE i.
DATA lv_tags_open TYPE i.
DATA lv_tags_close TYPE i.
DATA lv_tags_single TYPE i.
DATA lv_close_offs TYPE i.
DATA lv_shift_back TYPE i.
DATA lv_tags TYPE i.
DATA lv_tags_open TYPE i.
DATA lv_tags_close TYPE i.
DATA lv_tags_single TYPE i.
DATA lv_close_offs TYPE i.
DATA lv_shift_back TYPE i.
DATA lv_style_tag_open TYPE i.
DATA lv_style_tag_close TYPE i.
DATA lv_curly TYPE i.
FIND FIRST OCCURRENCE OF '</' IN iv_str MATCH OFFSET lv_close_offs.
IF sy-subrc = 0 AND lv_close_offs = 0 AND mv_indent > 0. " Found close tag @beginning
lv_shift_back = 1.
ENDIF.
FIND FIRST OCCURRENCE OF '}' IN iv_str MATCH OFFSET lv_close_offs. " Find close } @beginning
IF mv_within_style > 0 AND sy-subrc = 0 AND lv_close_offs = 0 AND mv_indent > 0.
lv_shift_back = 1.
ENDIF.
mv_html = mv_html
&& repeat( val = ` ` occ = ( mv_indent - lv_shift_back ) * c_indent_size )
&& iv_str
@ -350,6 +359,17 @@ CLASS lcl_html_helper IMPLEMENTATION.
lv_tags_open = lv_tags - lv_tags_close - lv_tags_single.
FIND ALL OCCURRENCES OF '<style' IN iv_str MATCH COUNT lv_style_tag_open IGNORING CASE.
FIND ALL OCCURRENCES OF '</style>' IN iv_str MATCH COUNT lv_style_tag_close IGNORING CASE.
mv_within_style = mv_within_style + lv_style_tag_open - lv_style_tag_close.
IF mv_within_style > 0.
FIND ALL OCCURRENCES OF '{' IN iv_str MATCH COUNT lv_curly.
lv_tags_open = lv_tags_open + lv_curly.
FIND ALL OCCURRENCES OF '}' IN iv_str MATCH COUNT lv_curly.
lv_tags_close = lv_tags_close + lv_curly.
ENDIF.
" More-less logic chosen due to possible double tags in a line '<a><b>'
IF lv_tags_open > lv_tags_close.
mv_indent = mv_indent + 1.

View File

@ -80,14 +80,14 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
ro_html->add( '<td class="repo_name">' ).
ro_html->add( |<img src="{ lv_icon }">| ).
ro_html->add( |<span>{ io_repo->get_name( ) }</span>| ).
ro_html->add( |<span class="name">{ io_repo->get_name( ) }</span>| ).
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
ro_html->add( |<span class="url">{ lo_repo_online->get_url( ) }</span>| ).
ENDIF.
ro_html->add( '</td>' ).
ro_html->add( '<td class="repo_attr right">' ).
IF iv_show_package = abap_true.
ro_html->add( '<img src="img/pkg">' ).
ro_html->add( |<span>{ io_repo->get_package( ) }</span>| ).
ENDIF.
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
@ -99,8 +99,11 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
ro_html->add( |<span>{ iv_branch }</span>| ).
ENDIF.
ENDIF.
ro_html->add( '<img src="img/link">' ).
ro_html->add( |<input type="text" value="{ lo_repo_online->get_url( ) }" readonly>| ).
ENDIF.
IF iv_show_package = abap_true.
ro_html->add( '<img src="img/pkg">' ).
ro_html->add( |<span>{ io_repo->get_package( ) }</span>| ).
ENDIF.
ro_html->add( '</td>' ).
@ -324,11 +327,16 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
_add ' background-color: #f2f2f2;'.
_add ' padding: 0.5em 1em 0.5em 1em;'.
_add '}'.
_add '.repo_name span {'.
_add '.repo_name span.name {'.
_add ' font-weight: bold;'.
_add ' color: #333;'.
_add ' font-size: 14pt;'.
_add '}'.
_add '.repo_name span.url {'.
_add ' color: #ccc;'.
_add ' font-size: 12pt;'.
_add ' margin-left: 0.5em;'.
_add '}'.
_add '.repo_name img {'.
_add ' vertical-align: baseline;'.
_add ' margin: 0 5px 0 5px;'.
@ -341,15 +349,6 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
_add ' margin-left: 0.2em;'.
_add ' margin-right: 0.5em;'.
_add '}'.
_add '.repo_attr input {'.
_add ' color: grey;'. " Input wants it personaly
_add ' font-size: 12pt;'. " Input wants it personaly
_add ' margin-left: 0.5em;'.
_add ' margin-right: 0.5em;'.
_add ' background-color: transparent;'.
_add ' border-style: none;'.
_add ' text-overflow: ellipsis;'.
_add '}'.
" Other and outdated (?) styles
_add '/* MISC AND REFACTOR */'.

View File

@ -1166,7 +1166,8 @@ CLASS ltcl_html_helper DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT
indent1 FOR TESTING RAISING lcx_exception,
indent2 FOR TESTING RAISING lcx_exception,
indent3 FOR TESTING RAISING lcx_exception,
indent4 FOR TESTING RAISING lcx_exception.
indent4 FOR TESTING RAISING lcx_exception,
style1 FOR TESTING RAISING lcx_exception.
METHODS:
setup,
@ -1239,6 +1240,26 @@ CLASS ltcl_html_helper IMPLEMENTATION.
ENDMETHOD.
METHOD style1.
mo_html->add( '<style type="text/css">' ).
mo_html->add( '.class1 { color: red }' ).
mo_html->add( '.class2 {' ).
mo_html->add( 'color: red' ).
cl_abap_unit_assert=>assert_equals( act = last_line( ) exp = ' color: red' ).
mo_html->add( '}' ).
cl_abap_unit_assert=>assert_equals( act = last_line( ) exp = ' }' ).
mo_html->add( '</style>' ).
cl_abap_unit_assert=>assert_equals( act = last_line( ) exp = '</style>' ).
ENDMETHOD.
ENDCLASS.
*----------------------------------------------------------------------*