mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Merge branch 'main' into main
This commit is contained in:
commit
b85fb22772
|
@ -3,8 +3,7 @@
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
||||||
[](https://communityinviter.com/apps/abapgit/abap)
|
[](https://communityinviter.com/apps/abapgit/abap)
|
||||||
[](https://github.com/abapGit/abapGit/blob/main/src/zif_abapgit_version.intf.abap)
|
[](https://github.com/abapGit/abapGit/blob/main/src/zif_abapgit_version.intf.abap)
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<picture>
|
<picture>
|
||||||
|
|
|
@ -34,6 +34,11 @@ CLASS zcl_abapgit_object_http DEFINITION
|
||||||
object_state TYPE c LENGTH 1,
|
object_state TYPE c LENGTH 1,
|
||||||
END OF ty_gs_object_version.
|
END OF ty_gs_object_version.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_icf_node,
|
||||||
|
icfname TYPE c LENGTH 15,
|
||||||
|
icfparguid TYPE c LENGTH 25,
|
||||||
|
END OF ty_icf_node.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,8 +89,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
lo_http TYPE REF TO object,
|
lo_http TYPE REF TO object,
|
||||||
ls_abap_lang TYPE ty_gs_object_version,
|
ls_abap_lang TYPE ty_gs_object_version,
|
||||||
lo_instance TYPE REF TO object,
|
lo_instance TYPE REF TO object,
|
||||||
lv_tadir_name TYPE tadir-obj_name,
|
lv_icfnode TYPE ty_icf_node.
|
||||||
lt_ret TYPE STANDARD TABLE OF bapiret2.
|
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
io_xml->read(
|
io_xml->read(
|
||||||
|
@ -98,6 +102,14 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
EXPORTING iv_name = 'HTTPHDL'
|
EXPORTING iv_name = 'HTTPHDL'
|
||||||
CHANGING cg_data = lt_handler ).
|
CHANGING cg_data = lt_handler ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
"link to icf node (in releases older than 757, a http service requires a icf node to function)
|
||||||
|
io_xml->read(
|
||||||
|
EXPORTING iv_name = 'HTTPICFNODE'
|
||||||
|
CHANGING cg_data = lv_icfnode ).
|
||||||
|
CATCH cx_root.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
|
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
"update
|
"update
|
||||||
|
@ -152,6 +164,9 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
|
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
|
||||||
EXPORTING
|
EXPORTING
|
||||||
texts = ls_description.
|
texts = ls_description.
|
||||||
|
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_ICF_SERVICE')
|
||||||
|
EXPORTING
|
||||||
|
iv_icfservice = lv_icfnode.
|
||||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
|
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
|
||||||
EXPORTING
|
EXPORTING
|
||||||
run_dark = abap_true
|
run_dark = abap_true
|
||||||
|
@ -159,16 +174,6 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
korrnum = iv_transport.
|
korrnum = iv_transport.
|
||||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
|
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
|
||||||
|
|
||||||
lv_tadir_name = lv_http_servid.
|
|
||||||
CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE')
|
|
||||||
EXPORTING
|
|
||||||
iv_type = 'HTTP'
|
|
||||||
iv_name = lv_tadir_name
|
|
||||||
iv_silent = abap_true
|
|
||||||
iv_task = iv_transport
|
|
||||||
IMPORTING
|
|
||||||
et_log = lt_ret.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_root.
|
CATCH cx_root INTO lx_root.
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
@ -241,6 +246,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
lt_handler TYPE TABLE OF ty_uconservhttphandler,
|
lt_handler TYPE TABLE OF ty_uconservhttphandler,
|
||||||
ls_description TYPE ty_uconhttpservtext,
|
ls_description TYPE ty_uconhttpservtext,
|
||||||
lx_root TYPE REF TO cx_root,
|
lx_root TYPE REF TO cx_root,
|
||||||
|
lv_icfnode TYPE ty_icf_node,
|
||||||
lv_name TYPE c LENGTH 30.
|
lv_name TYPE c LENGTH 30.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -275,6 +281,15 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||||
iv_name = 'HTTPHDL'
|
iv_name = 'HTTPHDL'
|
||||||
ig_data = lt_handler ).
|
ig_data = lt_handler ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
"link to icf node (in releases older than 757, a http service requires a icf node to function)
|
||||||
|
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_ICF_SERVICE') IMPORTING ev_icfservice = lv_icfnode.
|
||||||
|
io_xml->add(
|
||||||
|
iv_name = 'HTTPICFNODE'
|
||||||
|
ig_data = lv_icfnode ).
|
||||||
|
CATCH cx_root.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
CATCH cx_root INTO lx_root.
|
CATCH cx_root INTO lx_root.
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
|
@ -282,7 +282,10 @@ CLASS zcl_abapgit_syntax_highlighter IMPLEMENTATION.
|
||||||
rv_line = iv_line.
|
rv_line = iv_line.
|
||||||
|
|
||||||
IF mv_hidden_chars = abap_true.
|
IF mv_hidden_chars = abap_true.
|
||||||
|
" The order of these replacements matters to properly show CR, LF, and CRLF
|
||||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab IN rv_line WITH ' → '.
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab IN rv_line WITH ' → '.
|
||||||
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf IN rv_line WITH '¶'.
|
||||||
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>newline IN rv_line WITH '↵'.
|
||||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf(1) IN rv_line WITH '¶'.
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf(1) IN rv_line WITH '¶'.
|
||||||
REPLACE ALL OCCURRENCES OF ` ` IN rv_line WITH '·'.
|
REPLACE ALL OCCURRENCES OF ` ` IN rv_line WITH '·'.
|
||||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>form_feed IN rv_line
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>form_feed IN rv_line
|
||||||
|
|
|
@ -85,6 +85,24 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD class_constructor.
|
||||||
|
|
||||||
|
CONSTANTS lc_nbsp TYPE xstring VALUE 'C2A0'. "
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
gv_non_breaking_space = zcl_abapgit_convert=>xstring_to_string_utf8( lc_nbsp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
" Fallback for non-Unicode systems
|
||||||
|
IF cl_abap_char_utilities=>charsize < 2.
|
||||||
|
gv_non_breaking_space = |X'A0'|.
|
||||||
|
ELSE.
|
||||||
|
ASSERT 0 = 1.
|
||||||
|
ENDIF.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
|
||||||
" Edge Webview control returns upper case action but abapGit requires lower case (#4841)
|
" Edge Webview control returns upper case action but abapGit requires lower case (#4841)
|
||||||
|
@ -112,6 +130,17 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD field_keys_to_upper.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_field> LIKE LINE OF ct_fields.
|
||||||
|
|
||||||
|
LOOP AT ct_fields ASSIGNING <ls_field>.
|
||||||
|
<ls_field>-name = to_upper( <ls_field>-name ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD new.
|
METHOD new.
|
||||||
CREATE OBJECT ro_instance
|
CREATE OBJECT ro_instance
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -122,51 +151,6 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_event~form_data.
|
|
||||||
|
|
||||||
IF mo_form_data IS NOT BOUND.
|
|
||||||
mo_form_data = fields_to_map( parse_post_form_data( zif_abapgit_gui_event~mt_postdata ) ).
|
|
||||||
mo_form_data->freeze( ).
|
|
||||||
ENDIF.
|
|
||||||
ro_string_map = mo_form_data.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_event~query.
|
|
||||||
|
|
||||||
IF mo_query IS NOT BOUND.
|
|
||||||
mo_query = fields_to_map( parse_fields( zif_abapgit_gui_event~mv_getdata ) ).
|
|
||||||
mo_query->freeze( ).
|
|
||||||
ENDIF.
|
|
||||||
ro_string_map = mo_query.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_fields_upper_case_name.
|
|
||||||
|
|
||||||
rt_fields = parse_fields(
|
|
||||||
iv_string = iv_string
|
|
||||||
iv_upper_cased = abap_true ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_post_form_data.
|
|
||||||
|
|
||||||
DATA lv_serialized_post_data TYPE string.
|
|
||||||
|
|
||||||
lv_serialized_post_data = translate_postdata( it_post_data ).
|
|
||||||
IF iv_upper_cased = abap_true.
|
|
||||||
rt_fields = parse_fields_upper_case_name( lv_serialized_post_data ).
|
|
||||||
ELSE.
|
|
||||||
rt_fields = parse_fields( lv_serialized_post_data ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_fields.
|
METHOD parse_fields.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -206,6 +190,29 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD parse_fields_upper_case_name.
|
||||||
|
|
||||||
|
rt_fields = parse_fields(
|
||||||
|
iv_string = iv_string
|
||||||
|
iv_upper_cased = abap_true ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD parse_post_form_data.
|
||||||
|
|
||||||
|
DATA lv_serialized_post_data TYPE string.
|
||||||
|
|
||||||
|
lv_serialized_post_data = translate_postdata( it_post_data ).
|
||||||
|
IF iv_upper_cased = abap_true.
|
||||||
|
rt_fields = parse_fields_upper_case_name( lv_serialized_post_data ).
|
||||||
|
ELSE.
|
||||||
|
rt_fields = parse_fields( lv_serialized_post_data ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD translate_postdata.
|
METHOD translate_postdata.
|
||||||
|
|
||||||
DATA: lt_post_data TYPE zif_abapgit_html_viewer=>ty_post_data,
|
DATA: lt_post_data TYPE zif_abapgit_html_viewer=>ty_post_data,
|
||||||
|
@ -233,17 +240,6 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD field_keys_to_upper.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_field> LIKE LINE OF ct_fields.
|
|
||||||
|
|
||||||
LOOP AT ct_fields ASSIGNING <ls_field>.
|
|
||||||
<ls_field>-name = to_upper( <ls_field>-name ).
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD unescape.
|
METHOD unescape.
|
||||||
|
|
||||||
* do not use cl_http_utility as it does strange things with the encoding
|
* do not use cl_http_utility as it does strange things with the encoding
|
||||||
|
@ -261,15 +257,24 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD class_constructor.
|
METHOD zif_abapgit_gui_event~form_data.
|
||||||
|
|
||||||
CONSTANTS lc_nbsp TYPE xstring VALUE 'C2A0'. "
|
IF mo_form_data IS NOT BOUND.
|
||||||
|
mo_form_data = fields_to_map( parse_post_form_data( zif_abapgit_gui_event~mt_postdata ) ).
|
||||||
|
mo_form_data->freeze( ).
|
||||||
|
ENDIF.
|
||||||
|
ro_string_map = mo_form_data.
|
||||||
|
|
||||||
TRY.
|
ENDMETHOD.
|
||||||
gv_non_breaking_space = zcl_abapgit_convert=>xstring_to_string_utf8( lc_nbsp ).
|
|
||||||
CATCH zcx_abapgit_exception.
|
|
||||||
ASSERT 0 = 1.
|
METHOD zif_abapgit_gui_event~query.
|
||||||
ENDTRY.
|
|
||||||
|
IF mo_query IS NOT BOUND.
|
||||||
|
mo_query = fields_to_map( parse_fields( zif_abapgit_gui_event~mv_getdata ) ).
|
||||||
|
mo_query->freeze( ).
|
||||||
|
ENDIF.
|
||||||
|
ro_string_map = mo_query.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user