From 31b2ce3edf231cfa7fc70f5c531a44e78ad5ac80 Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 21 Mar 2017 09:31:18 +0000 Subject: [PATCH 1/3] basic page --- src/zabapgit_definitions.prog.abap | 1 + src/zabapgit_gui_pages.prog.abap | 1 + src/zabapgit_gui_router.prog.abap | 5 ++++ src/zabapgit_page_repo_settings.prog.abap | 31 +++++++++++++++++++++++ src/zabapgit_page_repo_settings.prog.xml | 22 ++++++++++++++++ src/zabapgit_view_repo.prog.abap | 2 ++ 6 files changed, 62 insertions(+) create mode 100644 src/zabapgit_page_repo_settings.prog.abap create mode 100644 src/zabapgit_page_repo_settings.prog.xml diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 2f56f6e19..9fbab5536 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -197,6 +197,7 @@ CONSTANTS: BEGIN OF gc_action, repo_clone TYPE string VALUE 'repo_clone', repo_refresh TYPE string VALUE 'repo_refresh', repo_remove TYPE string VALUE 'repo_remove', + repo_settings TYPE string VALUE 'repo_settings', repo_purge TYPE string VALUE 'repo_purge', repo_newoffline TYPE string VALUE 'repo_newoffline', repo_remote_attach TYPE string VALUE 'repo_remote_attach', diff --git a/src/zabapgit_gui_pages.prog.abap b/src/zabapgit_gui_pages.prog.abap index 9d3c60c7c..e4c658462 100644 --- a/src/zabapgit_gui_pages.prog.abap +++ b/src/zabapgit_gui_pages.prog.abap @@ -29,3 +29,4 @@ INCLUDE zabapgit_page_main. INCLUDE zabapgit_page_stage. INCLUDE zabapgit_page_debug. INCLUDE zabapgit_page_settings. +INCLUDE zabapgit_page_repo_settings. diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap index b716aae7e..8d2c1cbc2 100644 --- a/src/zabapgit_gui_router.prog.abap +++ b/src/zabapgit_gui_router.prog.abap @@ -174,6 +174,11 @@ CLASS lcl_gui_router IMPLEMENTATION. WHEN gc_action-repo_transport_to_branch. lcl_services_repo=>transport_to_branch( iv_repository_key = lv_key ). ev_state = gc_event_state-re_render. + WHEN gc_action-repo_settings. + CREATE OBJECT ei_page TYPE lcl_gui_page_repo_settings + EXPORTING + io_repo = lcl_app=>repo_srv( )->get( lv_key ). + ev_state = gc_event_state-new_page. " ZIP services actions WHEN gc_action-zip_import. " Import repo from ZIP diff --git a/src/zabapgit_page_repo_settings.prog.abap b/src/zabapgit_page_repo_settings.prog.abap new file mode 100644 index 000000000..66d042bc4 --- /dev/null +++ b/src/zabapgit_page_repo_settings.prog.abap @@ -0,0 +1,31 @@ +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_PAGE_REPO_SETTINGS +*&---------------------------------------------------------------------* + +CLASS lcl_gui_page_repo_settings DEFINITION FINAL INHERITING FROM lcl_gui_page. + PUBLIC SECTION. + METHODS constructor + IMPORTING io_repo TYPE REF TO lcl_repo. + + PROTECTED SECTION. + METHODS: + render_content REDEFINITION. + +ENDCLASS. "lcl_gui_page_debuginfo + +CLASS lcl_gui_page_repo_settings IMPLEMENTATION. + + METHOD constructor. + super->constructor( ). + ms_control-page_title = 'REPO SETTINGS'. + ENDMETHOD. " constructor. + + METHOD render_content. + + CREATE OBJECT ro_html. + + ro_html->add( '
stuff here
' ). + + ENDMETHOD. "render_content + +ENDCLASS. "lcl_gui_page_debuginfo diff --git a/src/zabapgit_page_repo_settings.prog.xml b/src/zabapgit_page_repo_settings.prog.xml new file mode 100644 index 000000000..84dbbf860 --- /dev/null +++ b/src/zabapgit_page_repo_settings.prog.xml @@ -0,0 +1,22 @@ + + + + + + ZABAPGIT_PAGE_REPO_SETTINGS + A + X + I + E + X + + + + R + Include ZABAPGIT_PAGE_REPO_SETTINGS + 35 + + + + + diff --git a/src/zabapgit_view_repo.prog.abap b/src/zabapgit_view_repo.prog.abap index ba414eb0e..6a61710de 100644 --- a/src/zabapgit_view_repo.prog.abap +++ b/src/zabapgit_view_repo.prog.abap @@ -315,6 +315,8 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION. lo_tb_advanced->add( iv_txt = 'Make on-line' iv_act = |{ gc_action-repo_remote_attach }?{ lv_key }| ). ENDIF. + lo_tb_advanced->add( iv_txt = 'Repo settings' + iv_act = |{ gc_action-repo_settings }?{ lv_key }| ). lo_tb_advanced->add( iv_txt = 'Update local checksums' iv_act = |{ gc_action-repo_refresh_checksums }?{ lv_key }| ). lo_tb_advanced->add( iv_txt = 'Remove' From dbdaad9ca16867f0b16f02b46caaf55bb5e27851 Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 21 Mar 2017 09:53:02 +0000 Subject: [PATCH 2/3] basic page --- src/zabapgit_page_repo_settings.prog.abap | 68 +++++++++++++++++++++-- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/src/zabapgit_page_repo_settings.prog.abap b/src/zabapgit_page_repo_settings.prog.abap index 66d042bc4..a507cf945 100644 --- a/src/zabapgit_page_repo_settings.prog.abap +++ b/src/zabapgit_page_repo_settings.prog.abap @@ -4,12 +4,26 @@ CLASS lcl_gui_page_repo_settings DEFINITION FINAL INHERITING FROM lcl_gui_page. PUBLIC SECTION. - METHODS constructor - IMPORTING io_repo TYPE REF TO lcl_repo. + METHODS: + constructor + IMPORTING io_repo TYPE REF TO lcl_repo, + lif_gui_page~on_event REDEFINITION. PROTECTED SECTION. + CONSTANTS: + BEGIN OF c_action, + save_settings TYPE string VALUE 'save_settings', + END OF c_action. + + DATA: mo_repo TYPE REF TO lcl_repo. + METHODS: - render_content REDEFINITION. + render_content REDEFINITION, + parse_post + IMPORTING + it_postdata TYPE cnht_post_data_tab + RETURNING + VALUE(rt_post_fields) TYPE tihttpnvp. ENDCLASS. "lcl_gui_page_debuginfo @@ -18,14 +32,58 @@ CLASS lcl_gui_page_repo_settings IMPLEMENTATION. METHOD constructor. super->constructor( ). ms_control-page_title = 'REPO SETTINGS'. + mo_repo = io_repo. ENDMETHOD. " constructor. + METHOD parse_post. + + DATA lv_serialized_post_data TYPE string. + + CONCATENATE LINES OF it_postdata INTO lv_serialized_post_data. + rt_post_fields = cl_http_utility=>if_http_utility~string_to_fields( lv_serialized_post_data ). + + ENDMETHOD. + METHOD render_content. - CREATE OBJECT ro_html. + DATA: ls_dot TYPE lcl_dot_abapgit=>ty_dot_abapgit. - ro_html->add( '
stuff here
' ). + + ls_dot = mo_repo->get_dot_abapgit( )->get_data( ). + + CREATE OBJECT ro_html. + ro_html->add( '
' ). + ro_html->add( '
' ). + ro_html->add( '
' ). + ro_html->add( 'Folder logic: ' ). + ro_html->add( '
' ). + ro_html->add( '' ). + ro_html->add( '
' ). + ro_html->add( '
' ). ENDMETHOD. "render_content + METHOD lif_gui_page~on_event. + + DATA: lt_post_fields TYPE tihttpnvp, + lo_dot TYPE REF TO lcl_dot_abapgit, + ls_post_field LIKE LINE OF lt_post_fields. + + + CASE iv_action. + WHEN c_action-save_settings. + lt_post_fields = parse_post( it_postdata ). + + READ TABLE lt_post_fields INTO ls_post_field WITH KEY name = 'folder_logic'. + ASSERT sy-subrc = 0. + + lo_dot = mo_repo->get_dot_abapgit( ). + lo_dot->set_folder_logic( ls_post_field-value ). + mo_repo->set_dot_abapgit( lo_dot ). + + ev_state = gc_event_state-go_back. + ENDCASE. + + ENDMETHOD. + ENDCLASS. "lcl_gui_page_debuginfo From 307f702bb5ee59333c5c67ff900a9f9d2488467b Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 21 Mar 2017 09:55:59 +0000 Subject: [PATCH 3/3] reduce line length --- src/zabapgit_page_repo_settings.prog.abap | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_page_repo_settings.prog.abap b/src/zabapgit_page_repo_settings.prog.abap index a507cf945..7f8b4fff5 100644 --- a/src/zabapgit_page_repo_settings.prog.abap +++ b/src/zabapgit_page_repo_settings.prog.abap @@ -53,9 +53,11 @@ CLASS lcl_gui_page_repo_settings IMPLEMENTATION. CREATE OBJECT ro_html. ro_html->add( '
' ). - ro_html->add( '
' ). + ro_html->add( '' ). ro_html->add( '
' ). - ro_html->add( 'Folder logic: ' ). + ro_html->add( 'Folder logic: ' ). ro_html->add( '
' ). ro_html->add( '' ). ro_html->add( '
' ).