Refactor Data Config Page (#6396)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-08-11 13:19:53 -04:00 committed by GitHub
parent b9a9731df2
commit ad6a5b98f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 46 deletions

View File

@ -1,19 +1,30 @@
CLASS zcl_abapgit_gui_page_data DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_gui_page
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
METHODS zif_abapgit_gui_event_handler~on_event
REDEFINITION .
PROTECTED SECTION.
CONSTANTS:
@ -23,18 +34,14 @@ CLASS zcl_abapgit_gui_page_data DEFINITION
remove TYPE string VALUE 'remove',
add_via_transport TYPE string VALUE 'add_via_transport',
END OF c_event.
CONSTANTS:
BEGIN OF c_id,
table TYPE string VALUE 'table',
where TYPE string VALUE 'where',
skip_initial TYPE string VALUE 'skip_initial',
END OF c_id.
DATA mi_config TYPE REF TO zif_abapgit_data_config.
METHODS render_content
REDEFINITION .
PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
@ -48,9 +55,6 @@ CLASS zcl_abapgit_gui_page_data DEFINITION
METHODS add_via_transport
RAISING
zcx_abapgit_exception .
METHODS build_menu
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar .
METHODS build_where
IMPORTING
!io_map TYPE REF TO zcl_abapgit_string_map
@ -129,18 +133,6 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDMETHOD.
METHOD build_menu.
CREATE OBJECT ro_menu.
ro_menu->add( iv_txt = 'Add Via Transport'
iv_act = c_event-add_via_transport ).
ro_menu->add( iv_txt = 'Back'
iv_act = zif_abapgit_definitions=>c_action-go_back ).
ENDMETHOD.
METHOD build_where.
DATA lv_where LIKE LINE OF rt_where.
@ -192,15 +184,28 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
super->constructor( ).
ms_control-page_title = 'Data'.
ms_control-page_menu = build_menu( ).
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_config = mo_repo->get_data_config( ).
ENDMETHOD.
METHOD create.
DATA lo_component TYPE REF TO zcl_abapgit_gui_page_data.
CREATE OBJECT lo_component
EXPORTING
iv_key = iv_key.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Data Config'
ii_page_menu_provider = lo_component
ii_child_component = lo_component ).
ENDMETHOD.
METHOD event_add.
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
@ -282,17 +287,6 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDMETHOD.
METHOD render_content.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( '<div class="repo">' ).
ri_html->add( render_existing( ) ).
ri_html->add( render_add( ) ).
ri_html->add( '</div>' ).
ENDMETHOD.
METHOD render_existing.
DATA lo_form TYPE REF TO zcl_abapgit_html_form.
@ -369,4 +363,29 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDCASE.
ENDMETHOD.
METHOD zif_abapgit_gui_menu_provider~get_menu.
CREATE OBJECT ro_toolbar.
ro_toolbar->add( iv_txt = 'Add Via Transport'
iv_act = c_event-add_via_transport ).
ro_toolbar->add( iv_txt = 'Back'
iv_act = zif_abapgit_definitions=>c_action-go_back ).
ENDMETHOD.
METHOD zif_abapgit_gui_renderable~render.
register_handlers( ).
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( '<div class="repo">' ).
ri_html->add( render_existing( ) ).
ri_html->add( render_add( ) ).
ri_html->add( '</div>' ).
ENDMETHOD.
ENDCLASS.

View File

@ -312,7 +312,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
iv_act = |{ zif_abapgit_definitions=>c_action-repo_refresh_checksums }?key={ mv_key }|
iv_opt = get_crossout( zif_abapgit_auth=>c_authorization-update_local_checksum ) ).
ro_advanced_dropdown->add( iv_txt = 'Beta - Data'
ro_advanced_dropdown->add( iv_txt = 'Data Config'
iv_act = |{ c_actions-go_data }?key={ mv_key }| ).
IF is_repo_lang_logon_lang( ) = abap_false AND zcl_abapgit_services_abapgit=>get_abapgit_tcode( ) IS NOT INITIAL.
@ -1042,13 +1042,11 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_repo. " Switch to another repo
rs_handled-page = create( |{ ii_event->query( )->get( 'KEY' ) }| ).
rs_handled-page = create( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
WHEN c_actions-go_data.
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_data
EXPORTING
iv_key = |{ ii_event->query( )->get( 'KEY' ) }|.
rs_handled-page = zcl_abapgit_gui_page_data=>create( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN c_actions-go_unit.