mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 20:32:26 +08:00
commit
0d2a516171
|
@ -151,17 +151,22 @@ CONSTANTS: BEGIN OF gc_action,
|
||||||
repo_remote_attach TYPE string VALUE 'repo_remote_attach',
|
repo_remote_attach TYPE string VALUE 'repo_remote_attach',
|
||||||
repo_remote_detach TYPE string VALUE 'repo_remote_detach',
|
repo_remote_detach TYPE string VALUE 'repo_remote_detach',
|
||||||
repo_remote_change TYPE string VALUE 'repo_remote_change',
|
repo_remote_change TYPE string VALUE 'repo_remote_change',
|
||||||
|
|
||||||
abapgit_home TYPE string VALUE 'abapgit_home',
|
abapgit_home TYPE string VALUE 'abapgit_home',
|
||||||
abapgit_install TYPE string VALUE 'abapgit_install',
|
abapgit_install TYPE string VALUE 'abapgit_install',
|
||||||
|
|
||||||
zip_import TYPE string VALUE 'zip_import',
|
zip_import TYPE string VALUE 'zip_import',
|
||||||
zip_export TYPE string VALUE 'zip_export',
|
zip_export TYPE string VALUE 'zip_export',
|
||||||
zip_package TYPE string VALUE 'zip_package',
|
zip_package TYPE string VALUE 'zip_package',
|
||||||
zip_transport TYPE string VALUE 'zip_transport',
|
zip_transport TYPE string VALUE 'zip_transport',
|
||||||
|
|
||||||
git_pull TYPE string VALUE 'git_pull',
|
git_pull TYPE string VALUE 'git_pull',
|
||||||
git_reset TYPE string VALUE 'git_reset',
|
git_reset TYPE string VALUE 'git_reset',
|
||||||
git_branch_create TYPE string VALUE 'git_branch_create',
|
git_branch_create TYPE string VALUE 'git_branch_create',
|
||||||
git_branch_switch TYPE string VALUE 'git_branch_switch',
|
git_branch_switch TYPE string VALUE 'git_branch_switch',
|
||||||
git_branch_delete TYPE string VALUE 'git_branch_delete',
|
git_branch_delete TYPE string VALUE 'git_branch_delete',
|
||||||
|
git_commit TYPE string VALUE 'git_commit',
|
||||||
|
|
||||||
db_delete TYPE string VALUE 'db_delete',
|
db_delete TYPE string VALUE 'db_delete',
|
||||||
db_update TYPE string VALUE 'db_update',
|
db_update TYPE string VALUE 'db_update',
|
||||||
db_display TYPE string VALUE 'db_display',
|
db_display TYPE string VALUE 'db_display',
|
||||||
|
|
|
@ -28,7 +28,7 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
END OF ty_page_stack.
|
END OF ty_page_stack.
|
||||||
|
|
||||||
DATA: mi_cur_page TYPE REF TO lif_gui_page,
|
DATA: mi_cur_page TYPE REF TO lif_gui_page,
|
||||||
mt_stack TYPE TABLE OF ty_page_stack,
|
mt_stack TYPE STANDARD TABLE OF ty_page_stack,
|
||||||
mt_assets TYPE tt_w3urls,
|
mt_assets TYPE tt_w3urls,
|
||||||
mo_router TYPE REF TO lcl_gui_router,
|
mo_router TYPE REF TO lcl_gui_router,
|
||||||
mo_html_viewer TYPE REF TO cl_gui_html_viewer.
|
mo_html_viewer TYPE REF TO cl_gui_html_viewer.
|
||||||
|
@ -59,6 +59,13 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
iv_replacing TYPE abap_bool DEFAULT abap_false
|
iv_replacing TYPE abap_bool DEFAULT abap_false
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS handle_action
|
||||||
|
IMPORTING action TYPE c
|
||||||
|
frame TYPE c OPTIONAL
|
||||||
|
getdata TYPE c OPTIONAL
|
||||||
|
postdata TYPE cnht_post_data_tab OPTIONAL
|
||||||
|
query_table TYPE cnht_query_table OPTIONAL.
|
||||||
|
|
||||||
ENDCLASS. "lcl_gui DEFINITION
|
ENDCLASS. "lcl_gui DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -72,7 +79,7 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "constructor
|
ENDMETHOD. "constructor
|
||||||
|
|
||||||
METHOD on_event.
|
METHOD handle_action.
|
||||||
|
|
||||||
DATA: lx_exception TYPE REF TO lcx_exception,
|
DATA: lx_exception TYPE REF TO lcx_exception,
|
||||||
li_page TYPE REF TO lif_gui_page,
|
li_page TYPE REF TO lif_gui_page,
|
||||||
|
@ -129,6 +136,17 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
" Do nothing = gc_event_state-no_more_act
|
" Do nothing = gc_event_state-no_more_act
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD. "handle_action
|
||||||
|
|
||||||
|
METHOD on_event.
|
||||||
|
|
||||||
|
handle_action(
|
||||||
|
action = action
|
||||||
|
frame = frame
|
||||||
|
getdata = getdata
|
||||||
|
postdata = postdata
|
||||||
|
query_table = query_table ).
|
||||||
|
|
||||||
ENDMETHOD. "on_event
|
ENDMETHOD. "on_event
|
||||||
|
|
||||||
METHOD back.
|
METHOD back.
|
||||||
|
|
|
@ -129,6 +129,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
||||||
ev_state = gc_event_state-re_render.
|
ev_state = gc_event_state-re_render.
|
||||||
|
|
||||||
" Repository services actions
|
" Repository services actions
|
||||||
|
WHEN gc_action-repo_newoffline. " New offline repo
|
||||||
|
lcl_services_repo=>new_offline( ).
|
||||||
|
ev_state = gc_event_state-re_render.
|
||||||
WHEN gc_action-repo_refresh. " Repo refresh
|
WHEN gc_action-repo_refresh. " Repo refresh
|
||||||
lcl_services_repo=>refresh( lv_key ).
|
lcl_services_repo=>refresh( lv_key ).
|
||||||
ev_state = gc_event_state-re_render.
|
ev_state = gc_event_state-re_render.
|
||||||
|
@ -177,6 +180,12 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
||||||
WHEN gc_action-git_branch_create. " GIT Create new branch
|
WHEN gc_action-git_branch_create. " GIT Create new branch
|
||||||
lcl_services_git=>create_branch( lv_key ).
|
lcl_services_git=>create_branch( lv_key ).
|
||||||
ev_state = gc_event_state-re_render.
|
ev_state = gc_event_state-re_render.
|
||||||
|
WHEN gc_action-git_branch_delete. " Delete remote branch
|
||||||
|
lcl_services_git=>delete_branch( lv_key ).
|
||||||
|
ev_state = gc_event_state-re_render.
|
||||||
|
WHEN gc_action-git_branch_switch. " Switch branch
|
||||||
|
lcl_services_git=>switch_branch( lv_key ).
|
||||||
|
ev_state = gc_event_state-re_render.
|
||||||
|
|
||||||
"Others
|
"Others
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
|
|
|
@ -6,13 +6,10 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_commit_fields,
|
CONSTANTS: BEGIN OF c_action,
|
||||||
repo_key TYPE lcl_persistence_repo=>ty_repo-key,
|
commit_post TYPE string VALUE 'commit_post',
|
||||||
username TYPE string,
|
commit_cancel TYPE string VALUE 'commit_cancel',
|
||||||
email TYPE string,
|
END OF c_action.
|
||||||
comment TYPE string,
|
|
||||||
body TYPE string,
|
|
||||||
END OF ty_commit_fields.
|
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
constructor
|
constructor
|
||||||
|
@ -38,10 +35,7 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||||
styles
|
styles
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper,
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper,
|
||||||
scripts
|
scripts
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper,
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||||
commit_push
|
|
||||||
IMPORTING it_postdata TYPE cnht_post_data_tab
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -54,6 +48,50 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
mo_stage = io_stage.
|
mo_stage = io_stage.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_gui_page~on_event.
|
||||||
|
|
||||||
|
DATA: ls_commit TYPE lcl_services_git=>ty_commit_fields.
|
||||||
|
|
||||||
|
CASE iv_action.
|
||||||
|
WHEN c_action-commit_post.
|
||||||
|
|
||||||
|
lcl_html_action_utils=>parse_commit_request( EXPORTING it_postdata = it_postdata
|
||||||
|
IMPORTING es_fields = ls_commit ).
|
||||||
|
|
||||||
|
lcl_services_git=>commit( is_commit = ls_commit
|
||||||
|
io_repo = mo_repo
|
||||||
|
io_stage = mo_stage ).
|
||||||
|
|
||||||
|
ev_state = gc_event_state-go_back_to_bookmark.
|
||||||
|
|
||||||
|
WHEN c_action-commit_cancel.
|
||||||
|
ev_state = gc_event_state-go_back.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_gui_page~render.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
|
ro_html->add( header( io_include_style = styles( ) ) ).
|
||||||
|
ro_html->add( title( 'COMMIT' ) ).
|
||||||
|
|
||||||
|
ro_html->add( '<div class="repo">' ).
|
||||||
|
ro_html->add( render_repo_top(
|
||||||
|
io_repo = mo_repo
|
||||||
|
iv_show_package = abap_false
|
||||||
|
iv_branch = mo_stage->get_branch_name( ) ) ).
|
||||||
|
|
||||||
|
ro_html->add( render_menu( ) ).
|
||||||
|
ro_html->add( render_form( ) ).
|
||||||
|
ro_html->add( render_stage( ) ).
|
||||||
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
|
ro_html->add( footer( io_include_script = scripts( ) ) ).
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_gui_page~render
|
||||||
|
|
||||||
METHOD render_stage.
|
METHOD render_stage.
|
||||||
|
|
||||||
DATA: lt_stage TYPE lcl_stage=>ty_stage_tt.
|
DATA: lt_stage TYPE lcl_stage=>ty_stage_tt.
|
||||||
|
@ -177,40 +215,6 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "render_menu
|
ENDMETHOD. "render_menu
|
||||||
|
|
||||||
METHOD lif_gui_page~on_event.
|
|
||||||
|
|
||||||
CASE iv_action.
|
|
||||||
WHEN 'commit_post'.
|
|
||||||
commit_push( it_postdata ).
|
|
||||||
ev_state = gc_event_state-go_back_to_bookmark.
|
|
||||||
WHEN 'commit_cancel'.
|
|
||||||
ev_state = gc_event_state-go_back.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD lif_gui_page~render.
|
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
|
||||||
|
|
||||||
ro_html->add( header( io_include_style = styles( ) ) ).
|
|
||||||
ro_html->add( title( 'COMMIT' ) ).
|
|
||||||
|
|
||||||
ro_html->add( '<div class="repo">' ).
|
|
||||||
ro_html->add( render_repo_top(
|
|
||||||
io_repo = mo_repo
|
|
||||||
iv_show_package = abap_false
|
|
||||||
iv_branch = mo_stage->get_branch_name( ) ) ).
|
|
||||||
|
|
||||||
ro_html->add( render_menu( ) ).
|
|
||||||
ro_html->add( render_form( ) ).
|
|
||||||
ro_html->add( render_stage( ) ).
|
|
||||||
ro_html->add( '</div>' ).
|
|
||||||
|
|
||||||
ro_html->add( footer( io_include_script = scripts( ) ) ).
|
|
||||||
|
|
||||||
ENDMETHOD. "lif_gui_page~render
|
|
||||||
|
|
||||||
METHOD styles.
|
METHOD styles.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
@ -252,44 +256,6 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "styles
|
ENDMETHOD. "styles
|
||||||
|
|
||||||
METHOD commit_push.
|
|
||||||
|
|
||||||
DATA: ls_fields TYPE ty_commit_fields,
|
|
||||||
ls_comment TYPE ty_comment,
|
|
||||||
lo_user TYPE REF TO lcl_persistence_user.
|
|
||||||
|
|
||||||
|
|
||||||
lcl_html_action_utils=>parse_commit_request( EXPORTING it_postdata = it_postdata
|
|
||||||
IMPORTING es_fields = ls_fields ).
|
|
||||||
|
|
||||||
lo_user = lcl_app=>user( ).
|
|
||||||
lo_user->set_repo_username( iv_url = mo_repo->get_url( ) iv_username = ls_fields-username ).
|
|
||||||
lo_user->set_repo_email( iv_url = mo_repo->get_url( ) iv_email = ls_fields-email ).
|
|
||||||
|
|
||||||
IF ls_fields-username IS INITIAL.
|
|
||||||
lcx_exception=>raise( 'empty username' ).
|
|
||||||
ELSEIF ls_fields-email IS INITIAL.
|
|
||||||
lcx_exception=>raise( 'empty email' ).
|
|
||||||
ELSEIF ls_fields-comment IS INITIAL.
|
|
||||||
lcx_exception=>raise( 'empty comment' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ls_comment-username = ls_fields-username.
|
|
||||||
ls_comment-email = ls_fields-email.
|
|
||||||
ls_comment-comment = ls_fields-comment.
|
|
||||||
|
|
||||||
IF NOT ls_fields-body IS INITIAL.
|
|
||||||
CONCATENATE ls_comment-comment gc_newline ls_fields-body
|
|
||||||
INTO ls_comment-comment.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
mo_repo->push( is_comment = ls_comment
|
|
||||||
io_stage = mo_stage ).
|
|
||||||
|
|
||||||
COMMIT WORK.
|
|
||||||
|
|
||||||
ENDMETHOD. "commit_push
|
|
||||||
|
|
||||||
METHOD scripts.
|
METHOD scripts.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
|
|
@ -96,15 +96,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
lv_key = iv_getdata.
|
lv_key = iv_getdata.
|
||||||
|
|
||||||
CASE iv_action.
|
CASE iv_action.
|
||||||
WHEN gc_action-repo_newoffline. " New offline repo
|
|
||||||
lcl_services_repo=>new_offline( ).
|
|
||||||
ev_state = gc_event_state-re_render.
|
|
||||||
WHEN gc_action-git_branch_delete. " Delete remote branch
|
|
||||||
lcl_services_git=>delete_branch( lv_key ).
|
|
||||||
ev_state = gc_event_state-re_render.
|
|
||||||
WHEN gc_action-git_branch_switch. " Switch branch
|
|
||||||
lcl_services_git=>switch_branch( lv_key ).
|
|
||||||
ev_state = gc_event_state-re_render.
|
|
||||||
WHEN c_actions-show. " Change displayed repo
|
WHEN c_actions-show. " Change displayed repo
|
||||||
lcl_app=>user( )->set_repo_show( lv_key ).
|
lcl_app=>user( )->set_repo_show( lv_key ).
|
||||||
ev_state = gc_event_state-re_render.
|
ev_state = gc_event_state-re_render.
|
||||||
|
|
|
@ -4,6 +4,15 @@
|
||||||
|
|
||||||
CLASS lcl_services_git DEFINITION FINAL.
|
CLASS lcl_services_git DEFINITION FINAL.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_commit_fields,
|
||||||
|
repo_key TYPE lcl_persistence_repo=>ty_repo-key,
|
||||||
|
username TYPE string,
|
||||||
|
email TYPE string,
|
||||||
|
comment TYPE string,
|
||||||
|
body TYPE string,
|
||||||
|
END OF ty_commit_fields.
|
||||||
|
|
||||||
CLASS-METHODS pull
|
CLASS-METHODS pull
|
||||||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||||
RAISING lcx_exception lcx_cancel.
|
RAISING lcx_exception lcx_cancel.
|
||||||
|
@ -24,6 +33,12 @@ CLASS lcl_services_git DEFINITION FINAL.
|
||||||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||||
RAISING lcx_exception lcx_cancel.
|
RAISING lcx_exception lcx_cancel.
|
||||||
|
|
||||||
|
CLASS-METHODS commit
|
||||||
|
IMPORTING io_repo TYPE REF TO lcl_repo_online
|
||||||
|
is_commit TYPE ty_commit_fields
|
||||||
|
io_stage TYPE REF TO lcl_stage
|
||||||
|
RAISING lcx_exception lcx_cancel.
|
||||||
|
|
||||||
ENDCLASS. " lcl_services_git
|
ENDCLASS. " lcl_services_git
|
||||||
|
|
||||||
CLASS lcl_services_git IMPLEMENTATION.
|
CLASS lcl_services_git IMPLEMENTATION.
|
||||||
|
@ -163,4 +178,39 @@ CLASS lcl_services_git IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "delete_branch
|
ENDMETHOD. "delete_branch
|
||||||
|
|
||||||
|
METHOD commit.
|
||||||
|
|
||||||
|
DATA: ls_comment TYPE ty_comment,
|
||||||
|
lo_user TYPE REF TO lcl_persistence_user.
|
||||||
|
|
||||||
|
lo_user = lcl_app=>user( ).
|
||||||
|
lo_user->set_repo_username( iv_url = io_repo->get_url( )
|
||||||
|
iv_username = is_commit-username ).
|
||||||
|
lo_user->set_repo_email( iv_url = io_repo->get_url( )
|
||||||
|
iv_email = is_commit-email ).
|
||||||
|
|
||||||
|
IF is_commit-username IS INITIAL.
|
||||||
|
lcx_exception=>raise( 'Commit: empty username' ).
|
||||||
|
ELSEIF is_commit-email IS INITIAL.
|
||||||
|
lcx_exception=>raise( 'Commit: empty email' ).
|
||||||
|
ELSEIF is_commit-comment IS INITIAL.
|
||||||
|
lcx_exception=>raise( 'Commit: empty comment' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ls_comment-username = is_commit-username.
|
||||||
|
ls_comment-email = is_commit-email.
|
||||||
|
ls_comment-comment = is_commit-comment.
|
||||||
|
|
||||||
|
IF NOT is_commit-body IS INITIAL.
|
||||||
|
CONCATENATE ls_comment-comment is_commit-body
|
||||||
|
INTO ls_comment-comment SEPARATED BY gc_newline.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
io_repo->push( is_comment = ls_comment
|
||||||
|
io_stage = io_stage ).
|
||||||
|
|
||||||
|
COMMIT WORK.
|
||||||
|
|
||||||
|
ENDMETHOD. "commit
|
||||||
|
|
||||||
ENDCLASS. " lcl_services_git
|
ENDCLASS. " lcl_services_git
|
Loading…
Reference in New Issue
Block a user