diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 9fae1fcc8..340e64e16 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -151,17 +151,22 @@ CONSTANTS: BEGIN OF gc_action, repo_remote_attach TYPE string VALUE 'repo_remote_attach', repo_remote_detach TYPE string VALUE 'repo_remote_detach', repo_remote_change TYPE string VALUE 'repo_remote_change', + abapgit_home TYPE string VALUE 'abapgit_home', abapgit_install TYPE string VALUE 'abapgit_install', + zip_import TYPE string VALUE 'zip_import', zip_export TYPE string VALUE 'zip_export', zip_package TYPE string VALUE 'zip_package', zip_transport TYPE string VALUE 'zip_transport', + git_pull TYPE string VALUE 'git_pull', git_reset TYPE string VALUE 'git_reset', git_branch_create TYPE string VALUE 'git_branch_create', git_branch_switch TYPE string VALUE 'git_branch_switch', git_branch_delete TYPE string VALUE 'git_branch_delete', + git_commit TYPE string VALUE 'git_commit', + db_delete TYPE string VALUE 'db_delete', db_update TYPE string VALUE 'db_update', db_display TYPE string VALUE 'db_display', diff --git a/src/zabapgit_gui.prog.abap b/src/zabapgit_gui.prog.abap index 1ff19666d..57aa70416 100644 --- a/src/zabapgit_gui.prog.abap +++ b/src/zabapgit_gui.prog.abap @@ -28,7 +28,7 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. END OF ty_page_stack. 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, mo_router TYPE REF TO lcl_gui_router, 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 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 *----------------------------------------------------------------------* @@ -72,7 +79,7 @@ CLASS lcl_gui IMPLEMENTATION. ENDMETHOD. "constructor - METHOD on_event. + METHOD handle_action. DATA: lx_exception TYPE REF TO lcx_exception, li_page TYPE REF TO lif_gui_page, @@ -129,6 +136,17 @@ CLASS lcl_gui IMPLEMENTATION. " Do nothing = gc_event_state-no_more_act ENDTRY. + ENDMETHOD. "handle_action + + METHOD on_event. + + handle_action( + action = action + frame = frame + getdata = getdata + postdata = postdata + query_table = query_table ). + ENDMETHOD. "on_event METHOD back. diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap index f2842ca9c..f28481242 100644 --- a/src/zabapgit_gui_router.prog.abap +++ b/src/zabapgit_gui_router.prog.abap @@ -129,6 +129,9 @@ CLASS lcl_gui_router IMPLEMENTATION. ev_state = gc_event_state-re_render. " 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 lcl_services_repo=>refresh( lv_key ). 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 lcl_services_git=>create_branch( lv_key ). 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 WHEN OTHERS. diff --git a/src/zabapgit_page_commit.prog.abap b/src/zabapgit_page_commit.prog.abap index 9f8eb033c..0e4152674 100644 --- a/src/zabapgit_page_commit.prog.abap +++ b/src/zabapgit_page_commit.prog.abap @@ -6,13 +6,10 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page_super. 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. + CONSTANTS: BEGIN OF c_action, + commit_post TYPE string VALUE 'commit_post', + commit_cancel TYPE string VALUE 'commit_cancel', + END OF c_action. METHODS: constructor @@ -38,10 +35,7 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page_super. styles RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper, scripts - RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper, - commit_push - IMPORTING it_postdata TYPE cnht_post_data_tab - RAISING lcx_exception. + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. ENDCLASS. @@ -54,6 +48,50 @@ CLASS lcl_gui_page_commit IMPLEMENTATION. mo_stage = io_stage. 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( '