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)
|
||||
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
||||
[](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>
|
||||
|
|
|
@ -34,6 +34,11 @@ CLASS zcl_abapgit_object_http DEFINITION
|
|||
object_state TYPE c LENGTH 1,
|
||||
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.
|
||||
|
||||
|
||||
|
@ -84,8 +89,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
lo_http TYPE REF TO object,
|
||||
ls_abap_lang TYPE ty_gs_object_version,
|
||||
lo_instance TYPE REF TO object,
|
||||
lv_tadir_name TYPE tadir-obj_name,
|
||||
lt_ret TYPE STANDARD TABLE OF bapiret2.
|
||||
lv_icfnode TYPE ty_icf_node.
|
||||
|
||||
TRY.
|
||||
io_xml->read(
|
||||
|
@ -98,6 +102,14 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
EXPORTING iv_name = 'HTTPHDL'
|
||||
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'.
|
||||
IF sy-subrc = 0.
|
||||
"update
|
||||
|
@ -152,6 +164,9 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
|
||||
EXPORTING
|
||||
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')
|
||||
EXPORTING
|
||||
run_dark = abap_true
|
||||
|
@ -159,16 +174,6 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
korrnum = iv_transport.
|
||||
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.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -241,6 +246,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
lt_handler TYPE TABLE OF ty_uconservhttphandler,
|
||||
ls_description TYPE ty_uconhttpservtext,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_icfnode TYPE ty_icf_node,
|
||||
lv_name TYPE c LENGTH 30.
|
||||
|
||||
TRY.
|
||||
|
@ -275,6 +281,15 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
iv_name = 'HTTPHDL'
|
||||
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.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -282,7 +282,10 @@ CLASS zcl_abapgit_syntax_highlighter IMPLEMENTATION.
|
|||
rv_line = iv_line.
|
||||
|
||||
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=>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 ` ` IN rv_line WITH '·'.
|
||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>form_feed IN rv_line
|
||||
|
|
|
@ -85,6 +85,24 @@ ENDCLASS.
|
|||
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.
|
||||
|
||||
" Edge Webview control returns upper case action but abapGit requires lower case (#4841)
|
||||
|
@ -112,6 +130,17 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
|||
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.
|
||||
CREATE OBJECT ro_instance
|
||||
EXPORTING
|
||||
|
@ -122,51 +151,6 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
DATA:
|
||||
|
@ -206,6 +190,29 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
DATA: lt_post_data TYPE zif_abapgit_html_viewer=>ty_post_data,
|
||||
|
@ -233,17 +240,6 @@ CLASS zcl_abapgit_gui_event IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
* 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.
|
||||
|
||||
|
||||
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.
|
||||
gv_non_breaking_space = zcl_abapgit_convert=>xstring_to_string_utf8( lc_nbsp ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
ASSERT 0 = 1.
|
||||
ENDTRY.
|
||||
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.
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user