From 15249221a66ec714a1b3ce902508ef402444d92f Mon Sep 17 00:00:00 2001 From: sbcgua Date: Mon, 30 Jan 2017 16:51:35 +0200 Subject: [PATCH 1/4] unprettify XML before save, close #556 --- src/zabapgit_page_db.prog.abap | 7 ++----- src/zabapgit_persistence.prog.abap | 24 ++++++++++++++---------- src/zabapgit_xml.prog.abap | 15 ++++++++------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/zabapgit_page_db.prog.abap b/src/zabapgit_page_db.prog.abap index 0d9054d9b..a9a059f38 100644 --- a/src/zabapgit_page_db.prog.abap +++ b/src/zabapgit_page_db.prog.abap @@ -45,8 +45,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION. ls_action-type = ms_key-type. ls_action-value = ms_key-value. lv_action = lcl_html_action_utils=>dbkey_encode( ls_action ). - lv_data = lcl_xml_pretty=>print( lv_data ). - lv_data = lo_highlighter->process_line( lv_data ). + lv_data = lo_highlighter->process_line( lcl_xml_pretty=>print( lv_data ) ). CREATE OBJECT ro_html. @@ -107,9 +106,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION. iv_type = ms_key-type iv_value = ms_key-value ). - lv_data = lcl_xml_pretty=>print( lv_data ). - - lv_data = escape( val = lv_data + lv_data = escape( val = lcl_xml_pretty=>print( lv_data ) format = cl_abap_format=>e_html_attr ). CREATE OBJECT ro_html. diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index af4d6a437..09e9cca02 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -81,8 +81,9 @@ CLASS lcl_persistence_db DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. RAISING lcx_exception. PRIVATE SECTION. - METHODS: validate_xml - IMPORTING iv_xml TYPE string + METHODS: validate_and_unprettify_xml + IMPORTING iv_xml TYPE string + RETURNING VALUE(rv_xml) TYPE string RAISING lcx_exception. ENDCLASS. @@ -831,29 +832,32 @@ CLASS lcl_persistence_db IMPLEMENTATION. ENDMETHOD. - METHOD validate_xml. + METHOD validate_and_unprettify_xml. - lcl_xml_pretty=>print( + rv_xml = lcl_xml_pretty=>print( iv_xml = iv_xml + iv_unpretty = abap_true iv_ignore_errors = abap_false ). - ENDMETHOD. + ENDMETHOD. " validate_and_unprettify_xml METHOD update. - validate_xml( iv_data ). + DATA lv_data LIKE iv_data. + + lv_data = validate_and_unprettify_xml( iv_data ). lock( iv_type = iv_type iv_value = iv_value ). - UPDATE (c_tabname) SET data_str = iv_data - WHERE type = iv_type - AND value = iv_value. + UPDATE (c_tabname) SET data_str = lv_data + WHERE type = iv_type + AND value = iv_value. IF sy-subrc <> 0. lcx_exception=>raise( 'DB update failed' ). ENDIF. - ENDMETHOD. + ENDMETHOD. "update METHOD modify. diff --git a/src/zabapgit_xml.prog.abap b/src/zabapgit_xml.prog.abap index 824505338..ca8675d17 100644 --- a/src/zabapgit_xml.prog.abap +++ b/src/zabapgit_xml.prog.abap @@ -358,6 +358,7 @@ CLASS lcl_xml_pretty DEFINITION FINAL. CLASS-METHODS: print IMPORTING iv_xml TYPE string iv_ignore_errors TYPE abap_bool DEFAULT abap_true + iv_unpretty TYPE abap_bool DEFAULT abap_false RETURNING VALUE(rv_xml) TYPE string RAISING lcx_exception. @@ -378,14 +379,14 @@ CLASS lcl_xml_pretty IMPLEMENTATION. ASSERT NOT iv_xml IS INITIAL. - li_ixml = cl_ixml=>create( ). + li_ixml = cl_ixml=>create( ). li_xml_doc = li_ixml->create_document( ). li_stream_factory = li_ixml->create_stream_factory( ). - li_istream = li_stream_factory->create_istream_string( iv_xml ). - li_parser = li_ixml->create_parser( stream_factory = li_stream_factory - istream = li_istream - document = li_xml_doc ). + li_istream = li_stream_factory->create_istream_string( iv_xml ). + li_parser = li_ixml->create_parser( stream_factory = li_stream_factory + istream = li_istream + document = li_xml_doc ). li_parser->set_normalizing( abap_true ). IF li_parser->parse( ) <> 0. IF iv_ignore_errors = abap_true. @@ -398,12 +399,12 @@ CLASS lcl_xml_pretty IMPLEMENTATION. li_istream->close( ). - li_ostream = li_stream_factory->create_ostream_cstring( rv_xml ). + li_ostream = li_stream_factory->create_ostream_cstring( rv_xml ). li_renderer = li_ixml->create_renderer( ostream = li_ostream document = li_xml_doc ). - li_renderer->set_normalizing( abap_true ). + li_renderer->set_normalizing( boolc( iv_unpretty = abap_false ) ). li_renderer->render( ). From 3cd90c573575eef7414a789cd9b024d10e509dce Mon Sep 17 00:00:00 2001 From: alexanderchan Date: Tue, 31 Jan 2017 20:15:53 +0000 Subject: [PATCH 2/4] fix function groups in namespaces Enhance namespace support for function groups. --- src/zabapgit_file_status.prog.abap | 2 ++ src/zabapgit_objects.prog.abap | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index c81453dae..3f9921343 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -175,6 +175,8 @@ CLASS lcl_file_status IMPLEMENTATION. " Handle namespaces REPLACE ALL OCCURRENCES OF '#' IN lv_name WITH '/'. + REPLACE ALL OCCURRENCES OF '#' IN lv_type WITH '/'. + REPLACE ALL OCCURRENCES OF '#' IN lv_ext WITH '/'. CLEAR es_item. es_item-obj_type = lv_type. diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index e7922d9a7..2bd281a13 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -455,8 +455,7 @@ CLASS lcl_objects_files IMPLEMENTATION. ELSE. lv_obj_name = ms_item-obj_name. ENDIF. -* handle namespaces - REPLACE ALL OCCURRENCES OF '/' IN lv_obj_name WITH '#'. + IF iv_extra IS INITIAL. CONCATENATE lv_obj_name '.' ms_item-obj_type '.' iv_ext @@ -465,6 +464,9 @@ CLASS lcl_objects_files IMPLEMENTATION. CONCATENATE lv_obj_name '.' ms_item-obj_type '.' iv_extra '.' iv_ext INTO rv_filename. "#EC NOTEXT ENDIF. + +* handle namespaces + REPLACE ALL OCCURRENCES OF '/' IN rv_filename WITH '#'. TRANSLATE rv_filename TO LOWER CASE. ENDMETHOD. "filename From 82938219ed6f0132ecbf3cfcfd878e89cd9c127c Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 1 Feb 2017 06:13:10 +0000 Subject: [PATCH 3/4] v1.26.5 --- src/zabapgit.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 64a6263f7..b17174b1e 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -3,7 +3,7 @@ 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.26.4'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.26.5'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) From 35339a9152379d8ac00b4418b57c1507f1b431f4 Mon Sep 17 00:00:00 2001 From: sbcgua Date: Wed, 1 Feb 2017 11:18:23 +0200 Subject: [PATCH 4/4] move HEAD branch to the top, fix #594 --- src/zabapgit_popups.prog.abap | 47 +++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/zabapgit_popups.prog.abap b/src/zabapgit_popups.prog.abap index ff7a4238f..86ef3b847 100644 --- a/src/zabapgit_popups.prog.abap +++ b/src/zabapgit_popups.prog.abap @@ -285,9 +285,10 @@ CLASS lcl_popups IMPLEMENTATION. 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 + lv_default TYPE i, + lv_head_suffix TYPE string, + lv_head_symref TYPE string, lt_selection TYPE TABLE OF spopli. FIELD-SYMBOLS: LIKE LINE OF lt_selection, @@ -297,28 +298,43 @@ CLASS lcl_popups IMPLEMENTATION. 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 })|. + lv_head_symref = lo_branches->get_head_symref( ). LOOP AT lt_branches ASSIGNING . - IF -name = lcl_git_branch_list=>c_head_name - AND -name <> lo_branches->get_head_symref( ). - " HEAD but other HEAD symref exist - CONTINUE. - ENDIF. + CHECK -name IS NOT INITIAL. " To ensure some below ifs - APPEND INITIAL LINE TO lt_selection ASSIGNING . - IF iv_default_branch IS NOT INITIAL AND iv_default_branch = -name. - lv_default = sy-tabix. - ENDIF. + IF -is_head = abap_true. - IF -name = lo_branches->get_head_symref( ) - AND -name <> lcl_git_branch_list=>c_head_name. - " HEAD symref but not HEAD itself - -varoption = -display_name && lv_head_suffix. + IF -name = lcl_git_branch_list=>c_head_name. " HEAD + IF -name <> lv_head_symref AND lv_head_symref IS NOT INITIAL. + " HEAD but other HEAD symref exists - ignore + CONTINUE. + ELSE. + INSERT INITIAL LINE INTO lt_selection INDEX 1 ASSIGNING . + -varoption = -name. + ENDIF. + ELSE. + INSERT INITIAL LINE INTO lt_selection INDEX 1 ASSIGNING . + -varoption = -display_name && lv_head_suffix. + ENDIF. + + IF lv_default > 0. " Shift down default if set + lv_default = lv_default + 1. + ENDIF. ELSE. + APPEND INITIAL LINE TO lt_selection ASSIGNING . -varoption = -display_name. ENDIF. + IF -name = iv_default_branch. + IF -is_head = abap_true. + lv_default = 1. + ELSE. + lv_default = sy-tabix. + ENDIF. + ENDIF. + ENDLOOP. IF iv_show_new_option = abap_true. @@ -362,7 +378,6 @@ CLASS lcl_popups IMPLEMENTATION. rs_branch = lo_branches->find_by_name( -name ). ENDIF. - ENDMETHOD. METHOD repo_popup.