diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 53b4801e3..fa7af4c0e 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -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) * diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 849e0eeaa..07bf82a56 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -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. diff --git a/src/zabapgit_gui.prog.abap b/src/zabapgit_gui.prog.abap index b017f21f8..efcbe2a22 100644 --- a/src/zabapgit_gui.prog.abap +++ b/src/zabapgit_gui.prog.abap @@ -186,7 +186,7 @@ CLASS lcl_gui IMPLEMENTATION. METHOD call_page. - DATA: ls_stack TYPE ty_page_stack. + DATA: ls_stack TYPE ty_page_stack. IF iv_replacing = abap_false AND NOT mi_cur_page IS INITIAL. ls_stack-page = mi_cur_page. @@ -281,11 +281,11 @@ CLASS lcl_gui IMPLEMENTATION. CALL FUNCTION 'SCMS_STRING_TO_XSTRING' EXPORTING - text = iv_text + text = iv_text IMPORTING - buffer = lv_xstr + buffer = lv_xstr EXCEPTIONS - OTHERS = 1. + OTHERS = 1. ASSERT sy-subrc = 0. ELSE. " Raw input diff --git a/src/zabapgit_http.prog.abap b/src/zabapgit_http.prog.abap index c75f907b2..72d64fc30 100644 --- a/src/zabapgit_http.prog.abap +++ b/src/zabapgit_http.prog.abap @@ -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. diff --git a/src/zabapgit_news.prog.abap b/src/zabapgit_news.prog.abap index 9e51a9c16..7a6f5a7d6 100644 --- a/src/zabapgit_news.prog.abap +++ b/src/zabapgit_news.prog.abap @@ -121,7 +121,7 @@ CLASS lcl_news IMPLEMENTATION. CREATE OBJECT ro_instance EXPORTING iv_rawdata = -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. diff --git a/src/zabapgit_page.prog.abap b/src/zabapgit_page.prog.abap index 3ee83ead9..d791b710a 100644 --- a/src/zabapgit_page.prog.abap +++ b/src/zabapgit_page.prog.abap @@ -47,14 +47,14 @@ CLASS lcl_gui_page DEFINITION ABSTRACT. PRIVATE SECTION. METHODS html_head - RETURNING VALUE(ro_html) TYPE REF TO lcl_html. + RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS title RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS footer - RETURNING VALUE(ro_html) TYPE REF TO lcl_html. + RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS redirect RETURNING VALUE(ro_html) TYPE REF TO lcl_html. @@ -119,7 +119,7 @@ CLASS lcl_gui_page IMPLEMENTATION. ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT - ro_html->add( || ). "#EC NOTEXT + ro_html->add( || ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( '
{ gc_abap_version }{ lif_defs=>gc_abap_version }
' ). "#EC NOTEXT @@ -131,13 +131,13 @@ CLASS lcl_gui_page IMPLEMENTATION. CREATE OBJECT ro_html. - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT ro_html->add( || ). "#EC NOTEXT - ro_html->add( ''). "#EC NOTEXT - ro_html->add( ''). "#EC NOTEXT + ms_control-redirect_url }">| ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. @@ -180,7 +180,7 @@ CLASS lcl_gui_page IMPLEMENTATION. ro_html->add( '' ). ENDIF. - ro_html->add( ''). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. " lif_gui_page~render. diff --git a/src/zabapgit_page_background.prog.abap b/src/zabapgit_page_background.prog.abap index de86b3422..707c83174 100644 --- a/src/zabapgit_page_background.prog.abap +++ b/src/zabapgit_page_background.prog.abap @@ -181,18 +181,18 @@ CLASS lcl_gui_page_bkg IMPLEMENTATION. ro_html->add( lcl_gui_chunk_lib=>render_repo_top( lo_repo ) ). ro_html->add( '
' ). - ro_html->add( 'Method
' ) ##NO_TEXT. + ro_html->add( 'Method
' ) ##NO_TEXT. ro_html->add( |
| ). ro_html->add( 'Do nothing
' ) ##NO_TEXT. + lv_nothing && '>Do nothing
' ) ##NO_TEXT. ro_html->add( 'Automatic push
' ) ##NO_TEXT. + lv_push && '>Automatic push
' ) ##NO_TEXT. ro_html->add( 'Automatic pull
' ) ##NO_TEXT. + lv_pull && '>Automatic pull
' ) ##NO_TEXT. ro_html->add( '
' ). - ro_html->add( 'HTTP Authentication, optional
' ) ##NO_TEXT. - ro_html->add( '(password will be saved in clear text)
' ) ##NO_TEXT. + ro_html->add( 'HTTP Authentication, optional
' ) ##NO_TEXT. + ro_html->add( '(password will be saved in clear text)
' ) ##NO_TEXT. ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). @@ -210,9 +210,9 @@ CLASS lcl_gui_page_bkg IMPLEMENTATION. ro_html->add( 'Commit author
' ). ro_html->add( 'Fixed
' ) ##NO_TEXT. + lv_afixed && '>Fixed
' ) ##NO_TEXT. ro_html->add( 'Automatic
' ) ##NO_TEXT. + lv_aauto && '>Automatic
' ) ##NO_TEXT. ro_html->add( '
' ). ro_html->add( '
Username:
' ). diff --git a/src/zabapgit_page_debug.prog.abap b/src/zabapgit_page_debug.prog.abap index 210e95fbc..12d5b841f 100644 --- a/src/zabapgit_page_debug.prog.abap +++ b/src/zabapgit_page_debug.prog.abap @@ -55,8 +55,8 @@ CLASS lcl_gui_page_debuginfo IMPLEMENTATION. CREATE OBJECT ro_html. - ro_html->add( |

abapGit version: { gc_abap_version }

| ). - ro_html->add( |

XML version: { gc_xml_version }

| ). + ro_html->add( |

abapGit version: { lif_defs=>gc_abap_version }

| ). + ro_html->add( |

XML version: { lif_defs=>gc_xml_version }

| ). ro_html->add( |

GUI version: { lv_gui_version }

| ). ro_html->add( |

LCL_TIME: { lcl_time=>get( ) }

| ). ro_html->add( |

SY time: { sy-datum } { sy-uzeit } { sy-tzone }

| ). diff --git a/src/zabapgit_repo_browser_util.prog.abap b/src/zabapgit_repo_browser_util.prog.abap index 50e69eeea..3a0d62030 100644 --- a/src/zabapgit_repo_browser_util.prog.abap +++ b/src/zabapgit_repo_browser_util.prog.abap @@ -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 + -changes. - _reduce_state ls_folder-lstate -lstate. - _reduce_state ls_folder-rstate -rstate. + + lcl_state=>reduce( EXPORTING iv_cur = -lstate + CHANGING cv_prev = ls_folder-lstate ). + lcl_state=>reduce( EXPORTING iv_cur = -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. -sortkey = c_sortkey-changed. " Changed files -changes = -changes + 1. - _reduce_state -lstate ls_file-lstate. - _reduce_state -rstate ls_file-rstate. + + lcl_state=>reduce( EXPORTING iv_cur = ls_file-lstate + CHANGING cv_prev = -lstate ). + lcl_state=>reduce( EXPORTING iv_cur = -rstate + CHANGING cv_prev = ls_file-rstate ). ENDIF. ENDIF. diff --git a/src/zabapgit_util.prog.abap b/src/zabapgit_util.prog.abap index db0ee274a..a1e56414e 100644 --- a/src/zabapgit_util.prog.abap +++ b/src/zabapgit_util.prog.abap @@ -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 *----------------------------------------------------------------------* diff --git a/src/zabapgit_view_repo.prog.abap b/src/zabapgit_view_repo.prog.abap index 8c88e7394..c643522f5 100644 --- a/src/zabapgit_view_repo.prog.abap +++ b/src/zabapgit_view_repo.prog.abap @@ -151,8 +151,10 @@ CLASS lcl_gui_view_repo IMPLEMENTATION. iv_changes_only = mv_changes_only ). LOOP AT lt_repo_items ASSIGNING . - _reduce_state lv_lstate -lstate. - _reduce_state lv_rstate -rstate. + lcl_state=>reduce( EXPORTING iv_cur = -lstate + CHANGING cv_prev = lv_lstate ). + lcl_state=>reduce( EXPORTING iv_cur = -rstate + CHANGING cv_prev = lv_rstate ). ENDLOOP. ro_html->add( render_head_line( iv_lstate = lv_lstate diff --git a/src/zabapgit_xml.prog.abap b/src/zabapgit_xml.prog.abap index ffe3c348d..5e68b5bf5 100644 --- a/src/zabapgit_xml.prog.abap +++ b/src/zabapgit_xml.prog.abap @@ -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 ).