Merge pull request #781 from larshp/issue_773

Issue 773
This commit is contained in:
Lars Hvam 2017-06-11 11:51:08 +02:00 committed by GitHub
commit e1f99883ec
12 changed files with 75 additions and 49 deletions

View File

@ -2,9 +2,6 @@ REPORT zabapgit LINE-SIZE 100.
* See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.37.2'. "#EC NOTEXT
********************************************************************************
* The MIT License (MIT)
*

View File

@ -6,6 +6,9 @@ TYPE-POOLS seop.
INTERFACE lif_defs.
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.37.2'. "#EC NOTEXT
TYPES: ty_type TYPE c LENGTH 6,
ty_bitbyte TYPE c LENGTH 8,
ty_sha1 TYPE c LENGTH 40.

View File

@ -408,7 +408,7 @@ CLASS lcl_http IMPLEMENTATION.
METHOD get_agent.
* bitbucket require agent prefix = "git/"
rv_agent = 'git/abapGit-' && gc_abap_version.
rv_agent = 'git/abapGit-' && lif_defs=>gc_abap_version.
ENDMETHOD.

View File

@ -121,7 +121,7 @@ CLASS lcl_news IMPLEMENTATION.
CREATE OBJECT ro_instance
EXPORTING
iv_rawdata = <file>-data
iv_current_version = gc_abap_version " TODO refactor
iv_current_version = lif_defs=>gc_abap_version " TODO refactor
iv_lastseen_version = normalize_version( lv_last_seen ).
ENDIF.

View File

@ -119,7 +119,7 @@ CLASS lcl_gui_page IMPLEMENTATION.
ro_html->add( '<table class="w100"><tr>' ). "#EC NOTEXT
ro_html->add( '<td class="w40"></td>' ). "#EC NOTEXT
ro_html->add( |<td><span class="version">{ gc_abap_version }</span></td>| ). "#EC NOTEXT
ro_html->add( |<td><span class="version">{ lif_defs=>gc_abap_version }</span></td>| ). "#EC NOTEXT
ro_html->add( '<td id="debug-output" class="w40"></td>' ). "#EC NOTEXT
ro_html->add( '</tr></table>' ). "#EC NOTEXT

View File

@ -55,8 +55,8 @@ CLASS lcl_gui_page_debuginfo IMPLEMENTATION.
CREATE OBJECT ro_html.
ro_html->add( |<p>abapGit version: { gc_abap_version }</p>| ).
ro_html->add( |<p>XML version: { gc_xml_version }</p>| ).
ro_html->add( |<p>abapGit version: { lif_defs=>gc_abap_version }</p>| ).
ro_html->add( |<p>XML version: { lif_defs=>gc_xml_version }</p>| ).
ro_html->add( |<p>GUI version: { lv_gui_version }</p>| ).
ro_html->add( |<p>LCL_TIME: { lcl_time=>get( ) }</p>| ).
ro_html->add( |<p>SY time: { sy-datum } { sy-uzeit } { sy-tzone }</p>| ).

View File

@ -62,17 +62,6 @@ CLASS lcl_repo_content_list DEFINITION FINAL.
ENDCLASS. "lcl_repo_content_browser
DEFINE _reduce_state.
" &1 - prev, &2 - cur
IF &1 = &2 OR &2 IS INITIAL.
ASSERT 1 = 1. " No change
ELSEIF &1 IS INITIAL.
&1 = &2.
ELSE.
&1 = lif_defs=>gc_state-mixed.
ENDIF.
END-OF-DEFINITION.
CLASS lcl_repo_content_list IMPLEMENTATION.
METHOD constructor.
@ -146,8 +135,11 @@ CLASS lcl_repo_content_list IMPLEMENTATION.
ENDAT.
ls_folder-changes = ls_folder-changes + <item>-changes.
_reduce_state ls_folder-lstate <item>-lstate.
_reduce_state ls_folder-rstate <item>-rstate.
lcl_state=>reduce( EXPORTING iv_cur = <item>-lstate
CHANGING cv_prev = ls_folder-lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <item>-rstate
CHANGING cv_prev = ls_folder-rstate ).
AT END OF path.
APPEND ls_folder TO ct_repo_items.
@ -229,8 +221,11 @@ CLASS lcl_repo_content_list IMPLEMENTATION.
IF ls_file-is_changed = abap_true.
<ls_repo_item>-sortkey = c_sortkey-changed. " Changed files
<ls_repo_item>-changes = <ls_repo_item>-changes + 1.
_reduce_state <ls_repo_item>-lstate ls_file-lstate.
_reduce_state <ls_repo_item>-rstate ls_file-rstate.
lcl_state=>reduce( EXPORTING iv_cur = ls_file-lstate
CHANGING cv_prev = <ls_repo_item>-lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <ls_repo_item>-rstate
CHANGING cv_prev = ls_file-rstate ).
ENDIF.
ENDIF.

View File

@ -2,6 +2,35 @@
*& Include ZABAPGIT_UTIL
*&---------------------------------------------------------------------*
CLASS lcl_state DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
reduce
IMPORTING
iv_cur TYPE char1
CHANGING
cv_prev TYPE char1.
ENDCLASS.
CLASS lcl_state IMPLEMENTATION.
METHOD reduce.
IF cv_prev = iv_cur OR iv_cur IS INITIAL.
RETURN. " No change
ELSEIF cv_prev IS INITIAL.
cv_prev = iv_cur.
ELSE.
cv_prev = lif_defs=>gc_state-mixed.
ENDIF.
ENDMETHOD.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_time DEFINITION
*----------------------------------------------------------------------*

View File

@ -151,8 +151,10 @@ CLASS lcl_gui_view_repo IMPLEMENTATION.
iv_changes_only = mv_changes_only ).
LOOP AT lt_repo_items ASSIGNING <ls_item>.
_reduce_state lv_lstate <ls_item>-lstate.
_reduce_state lv_rstate <ls_item>-rstate.
lcl_state=>reduce( EXPORTING iv_cur = <ls_item>-lstate
CHANGING cv_prev = lv_lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <ls_item>-rstate
CHANGING cv_prev = lv_rstate ).
ENDLOOP.
ro_html->add( render_head_line( iv_lstate = lv_lstate

View File

@ -81,7 +81,7 @@ CLASS lcl_xml IMPLEMENTATION.
li_element = mi_xml_doc->find_from_name_ns( depth = 0 name = c_abapgit_tag ).
li_version = li_element->if_ixml_node~get_attributes(
)->get_named_item_ns( c_attr_version ) ##no_text.
IF li_version->get_value( ) <> gc_xml_version.
IF li_version->get_value( ) <> lif_defs=>gc_xml_version.
display_xml_error( ).
ENDIF.
@ -96,7 +96,7 @@ CLASS lcl_xml IMPLEMENTATION.
DATA: lv_version TYPE string.
lv_version = |abapGit version: { gc_abap_version }|.
lv_version = |abapGit version: { lif_defs=>gc_abap_version }|.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
@ -270,7 +270,7 @@ CLASS lcl_xml_output IMPLEMENTATION.
ENDIF.
li_git = mi_xml_doc->create_element( c_abapgit_tag ).
li_git->set_attribute( name = c_attr_version value = gc_xml_version ).
li_git->set_attribute( name = c_attr_version value = lif_defs=>gc_xml_version ).
IF NOT is_metadata IS INITIAL.
li_git->set_attribute( name = c_attr_serializer
value = is_metadata-class ).