mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
* DBCONTENT_DECODE to ZCL_ABAPGIT_GUI_PAGE_DB_EDIT * PARSE_COMMIT_REQUEST to ZCL_ABAPGIT_GUI_PAGE_COMMI
This commit is contained in:
parent
71a1d1776d
commit
4180373b46
|
@ -14,6 +14,12 @@ CLASS zcl_abapgit_gui_page_db_edit DEFINITION
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS dbcontent_decode
|
||||||
|
IMPORTING
|
||||||
|
!it_postdata TYPE cnht_post_data_tab
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_content) TYPE zif_abapgit_persistence=>ty_content .
|
||||||
|
|
||||||
METHODS render_content
|
METHODS render_content
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
@ -43,6 +49,34 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD dbcontent_decode.
|
||||||
|
|
||||||
|
DATA: lt_fields TYPE tihttpnvp,
|
||||||
|
lv_string TYPE string.
|
||||||
|
|
||||||
|
|
||||||
|
CONCATENATE LINES OF it_postdata INTO lv_string.
|
||||||
|
|
||||||
|
lv_string = cl_http_utility=>unescape_url( lv_string ).
|
||||||
|
|
||||||
|
rs_content = zcl_abapgit_html_action_utils=>dbkey_decode( lv_string ).
|
||||||
|
|
||||||
|
lt_fields = zcl_abapgit_html_action_utils=>parse_fields_upper_case_name( lv_string ).
|
||||||
|
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'XMLDATA'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = rs_content-data_str ).
|
||||||
|
|
||||||
|
IF rs_content-data_str(1) <> '<' AND rs_content-data_str+1(1) = '<'. " Hmmm ???
|
||||||
|
rs_content-data_str = rs_content-data_str+1.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_content.
|
METHOD render_content.
|
||||||
|
|
||||||
DATA: lv_data TYPE zif_abapgit_persistence=>ty_content-data_str,
|
DATA: lv_data TYPE zif_abapgit_persistence=>ty_content-data_str,
|
||||||
|
@ -87,7 +121,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
|
||||||
|
|
||||||
ro_html->add( '</div>' ). "db_entry
|
ro_html->add( '</div>' ). "db_entry
|
||||||
|
|
||||||
ENDMETHOD. "render_content
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD update.
|
METHOD update.
|
||||||
|
@ -110,7 +144,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
|
||||||
|
|
||||||
CASE iv_action.
|
CASE iv_action.
|
||||||
WHEN gc_action-update.
|
WHEN gc_action-update.
|
||||||
ls_db = zcl_abapgit_html_action_utils=>dbcontent_decode( it_postdata ).
|
ls_db = dbcontent_decode( it_postdata ).
|
||||||
update( ls_db ).
|
update( ls_db ).
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
|
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
|
@ -1,25 +1,38 @@
|
||||||
CLASS zcl_abapgit_gui_page_commit DEFINITION PUBLIC FINAL
|
CLASS zcl_abapgit_gui_page_commit DEFINITION
|
||||||
CREATE PUBLIC INHERITING FROM zcl_abapgit_gui_page.
|
PUBLIC
|
||||||
|
INHERITING FROM zcl_abapgit_gui_page
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
CONSTANTS: BEGIN OF c_action,
|
CONSTANTS:
|
||||||
|
BEGIN OF c_action,
|
||||||
commit_post TYPE string VALUE 'commit_post',
|
commit_post TYPE string VALUE 'commit_post',
|
||||||
commit_cancel TYPE string VALUE 'commit_cancel',
|
commit_cancel TYPE string VALUE 'commit_cancel',
|
||||||
END OF c_action.
|
END OF c_action .
|
||||||
|
|
||||||
METHODS:
|
METHODS constructor
|
||||||
constructor
|
IMPORTING
|
||||||
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
io_stage TYPE REF TO zcl_abapgit_stage
|
!io_stage TYPE REF TO zcl_abapgit_stage
|
||||||
RAISING zcx_abapgit_exception,
|
RAISING
|
||||||
zif_abapgit_gui_page~on_event REDEFINITION.
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
|
METHODS zif_abapgit_gui_page~on_event
|
||||||
|
REDEFINITION .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
METHODS:
|
|
||||||
render_content REDEFINITION,
|
|
||||||
scripts REDEFINITION.
|
|
||||||
|
|
||||||
|
CLASS-METHODS parse_commit_request
|
||||||
|
IMPORTING
|
||||||
|
!it_postdata TYPE cnht_post_data_tab
|
||||||
|
EXPORTING
|
||||||
|
!es_fields TYPE any .
|
||||||
|
|
||||||
|
METHODS render_content
|
||||||
|
REDEFINITION .
|
||||||
|
METHODS scripts
|
||||||
|
REDEFINITION .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA: mo_repo TYPE REF TO zcl_abapgit_repo_online,
|
DATA: mo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||||
mo_stage TYPE REF TO zcl_abapgit_stage.
|
mo_stage TYPE REF TO zcl_abapgit_stage.
|
||||||
|
@ -44,7 +57,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -57,6 +70,66 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD parse_commit_request.
|
||||||
|
|
||||||
|
CONSTANTS: lc_replace TYPE string VALUE '<<new>>'.
|
||||||
|
|
||||||
|
DATA: lv_string TYPE string,
|
||||||
|
lt_fields TYPE tihttpnvp.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <lv_body> TYPE string.
|
||||||
|
|
||||||
|
CLEAR es_fields.
|
||||||
|
|
||||||
|
CONCATENATE LINES OF it_postdata INTO lv_string.
|
||||||
|
REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>gc_crlf IN lv_string WITH lc_replace.
|
||||||
|
REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>gc_newline IN lv_string WITH lc_replace.
|
||||||
|
lt_fields = zcl_abapgit_html_action_utils=>parse_fields_upper_case_name( lv_string ).
|
||||||
|
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'COMMITTER_NAME'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'COMMITTER_EMAIL'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'AUTHOR_NAME'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'AUTHOR_EMAIL'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'COMMENT'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
zcl_abapgit_html_action_utils=>get_field(
|
||||||
|
EXPORTING
|
||||||
|
name = 'BODY'
|
||||||
|
it = lt_fields
|
||||||
|
CHANGING
|
||||||
|
cv = es_fields ).
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'BODY' OF STRUCTURE es_fields TO <lv_body>.
|
||||||
|
ASSERT <lv_body> IS ASSIGNED.
|
||||||
|
REPLACE ALL OCCURRENCES OF lc_replace IN <lv_body> WITH zif_abapgit_definitions=>gc_newline.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_content.
|
METHOD render_content.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
@ -72,7 +145,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ro_html->add( render_stage( ) ).
|
ro_html->add( render_stage( ) ).
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
ENDMETHOD. "render_content
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_form.
|
METHOD render_form.
|
||||||
|
@ -160,7 +233,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ro_html->add( '</form>' ).
|
ro_html->add( '</form>' ).
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
ENDMETHOD. "render_form
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_menu.
|
METHOD render_menu.
|
||||||
|
@ -183,7 +256,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ro_html->add( lo_toolbar->render( ) ).
|
ro_html->add( lo_toolbar->render( ) ).
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
ENDMETHOD. "render_menu
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_stage.
|
METHOD render_stage.
|
||||||
|
@ -219,7 +292,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
|
|
||||||
ro_html->add( '</table>' ).
|
ro_html->add( '</table>' ).
|
||||||
|
|
||||||
ENDMETHOD. "render_stage
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_text_input.
|
METHOD render_text_input.
|
||||||
|
@ -241,7 +314,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ro_html->add( |<input id="{ iv_name }" name="{ iv_name }" type="text"{ lv_attrs }>| ).
|
ro_html->add( |<input id="{ iv_name }" name="{ iv_name }" type="text"{ lv_attrs }>| ).
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
ENDMETHOD. " render_text_input
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD scripts.
|
METHOD scripts.
|
||||||
|
@ -249,7 +322,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
ro_html->add( 'setInitialFocus("comment");' ).
|
ro_html->add( 'setInitialFocus("comment");' ).
|
||||||
|
|
||||||
ENDMETHOD. "scripts
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_page~on_event.
|
METHOD zif_abapgit_gui_page~on_event.
|
||||||
|
@ -259,7 +332,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
CASE iv_action.
|
CASE iv_action.
|
||||||
WHEN c_action-commit_post.
|
WHEN c_action-commit_post.
|
||||||
|
|
||||||
zcl_abapgit_html_action_utils=>parse_commit_request(
|
parse_commit_request(
|
||||||
EXPORTING it_postdata = it_postdata
|
EXPORTING it_postdata = it_postdata
|
||||||
IMPORTING es_fields = ls_commit ).
|
IMPORTING es_fields = ls_commit ).
|
||||||
|
|
||||||
|
|
|
@ -86,16 +86,6 @@ CLASS zcl_abapgit_html_action_utils DEFINITION
|
||||||
!iv_string TYPE clike
|
!iv_string TYPE clike
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_key) TYPE zif_abapgit_persistence=>ty_content .
|
VALUE(rs_key) TYPE zif_abapgit_persistence=>ty_content .
|
||||||
CLASS-METHODS dbcontent_decode
|
|
||||||
IMPORTING
|
|
||||||
!it_postdata TYPE cnht_post_data_tab
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_content) TYPE zif_abapgit_persistence=>ty_content .
|
|
||||||
CLASS-METHODS parse_commit_request
|
|
||||||
IMPORTING
|
|
||||||
!it_postdata TYPE cnht_post_data_tab
|
|
||||||
EXPORTING
|
|
||||||
!es_fields TYPE any .
|
|
||||||
CLASS-METHODS stage_decode
|
CLASS-METHODS stage_decode
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_getdata TYPE clike
|
!iv_getdata TYPE clike
|
||||||
|
@ -140,28 +130,6 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
||||||
ENDMETHOD. "add_field
|
ENDMETHOD. "add_field
|
||||||
|
|
||||||
|
|
||||||
METHOD dbcontent_decode.
|
|
||||||
|
|
||||||
DATA: lt_fields TYPE tihttpnvp,
|
|
||||||
lv_string TYPE string.
|
|
||||||
|
|
||||||
|
|
||||||
CONCATENATE LINES OF it_postdata INTO lv_string.
|
|
||||||
|
|
||||||
lv_string = cl_http_utility=>unescape_url( lv_string ).
|
|
||||||
|
|
||||||
rs_content = dbkey_decode( lv_string ).
|
|
||||||
|
|
||||||
lt_fields = parse_fields_upper_case_name( lv_string ).
|
|
||||||
|
|
||||||
get_field( EXPORTING name = 'XMLDATA' it = lt_fields CHANGING cv = rs_content-data_str ).
|
|
||||||
IF rs_content-data_str(1) <> '<' AND rs_content-data_str+1(1) = '<'. " Hmmm ???
|
|
||||||
rs_content-data_str = rs_content-data_str+1.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD. "dbcontent_decode
|
|
||||||
|
|
||||||
|
|
||||||
METHOD dbkey_decode.
|
METHOD dbkey_decode.
|
||||||
|
|
||||||
DATA: lt_fields TYPE tihttpnvp.
|
DATA: lt_fields TYPE tihttpnvp.
|
||||||
|
@ -318,36 +286,6 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
||||||
ENDMETHOD. "obj_encode
|
ENDMETHOD. "obj_encode
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_commit_request.
|
|
||||||
|
|
||||||
CONSTANTS: lc_replace TYPE string VALUE '<<new>>'.
|
|
||||||
|
|
||||||
DATA: lv_string TYPE string,
|
|
||||||
lt_fields TYPE tihttpnvp.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <lv_body> TYPE string.
|
|
||||||
|
|
||||||
CLEAR es_fields.
|
|
||||||
|
|
||||||
CONCATENATE LINES OF it_postdata INTO lv_string.
|
|
||||||
REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>gc_crlf IN lv_string WITH lc_replace.
|
|
||||||
REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>gc_newline IN lv_string WITH lc_replace.
|
|
||||||
lt_fields = parse_fields_upper_case_name( lv_string ).
|
|
||||||
|
|
||||||
get_field( EXPORTING name = 'COMMITTER_NAME' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
get_field( EXPORTING name = 'COMMITTER_EMAIL' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
get_field( EXPORTING name = 'AUTHOR_NAME' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
get_field( EXPORTING name = 'AUTHOR_EMAIL' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
get_field( EXPORTING name = 'COMMENT' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
get_field( EXPORTING name = 'BODY' it = lt_fields CHANGING cv = es_fields ).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'BODY' OF STRUCTURE es_fields TO <lv_body>.
|
|
||||||
ASSERT <lv_body> IS ASSIGNED.
|
|
||||||
REPLACE ALL OCCURRENCES OF lc_replace IN <lv_body> WITH zif_abapgit_definitions=>gc_newline.
|
|
||||||
|
|
||||||
ENDMETHOD. "parse_commit_request
|
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_fields.
|
METHOD parse_fields.
|
||||||
|
|
||||||
DATA: lt_substrings TYPE stringtab,
|
DATA: lt_substrings TYPE stringtab,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user