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 CLASS zcl_abapgit_gui_page_data DEFINITION
PUBLIC PUBLIC
INHERITING FROM zcl_abapgit_gui_page INHERITING FROM zcl_abapgit_gui_component
FINAL FINAL
CREATE PUBLIC . CREATE PUBLIC.
PUBLIC SECTION. 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 METHODS constructor
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception.
METHODS zif_abapgit_gui_event_handler~on_event
REDEFINITION .
PROTECTED SECTION. PROTECTED SECTION.
CONSTANTS: CONSTANTS:
@ -22,19 +33,15 @@ CLASS zcl_abapgit_gui_page_data DEFINITION
update TYPE string VALUE 'update', update TYPE string VALUE 'update',
remove TYPE string VALUE 'remove', remove TYPE string VALUE 'remove',
add_via_transport TYPE string VALUE 'add_via_transport', add_via_transport TYPE string VALUE 'add_via_transport',
END OF c_event . END OF c_event.
CONSTANTS: CONSTANTS:
BEGIN OF c_id, BEGIN OF c_id,
table TYPE string VALUE 'table', table TYPE string VALUE 'table',
where TYPE string VALUE 'where', where TYPE string VALUE 'where',
skip_initial TYPE string VALUE 'skip_initial', skip_initial TYPE string VALUE 'skip_initial',
END OF c_id . END OF c_id.
DATA mi_config TYPE REF TO zif_abapgit_data_config.
DATA mi_config TYPE REF TO zif_abapgit_data_config .
METHODS render_content
REDEFINITION .
PRIVATE SECTION. PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo . DATA mo_repo TYPE REF TO zcl_abapgit_repo .
@ -48,9 +55,6 @@ CLASS zcl_abapgit_gui_page_data DEFINITION
METHODS add_via_transport METHODS add_via_transport
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS build_menu
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar .
METHODS build_where METHODS build_where
IMPORTING IMPORTING
!io_map TYPE REF TO zcl_abapgit_string_map !io_map TYPE REF TO zcl_abapgit_string_map
@ -129,18 +133,6 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDMETHOD. 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. METHOD build_where.
DATA lv_where LIKE LINE OF rt_where. DATA lv_where LIKE LINE OF rt_where.
@ -192,15 +184,28 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
super->constructor( ). super->constructor( ).
ms_control-page_title = 'Data'.
ms_control-page_menu = build_menu( ).
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_config = mo_repo->get_data_config( ). mi_config = mo_repo->get_data_config( ).
ENDMETHOD. 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. METHOD event_add.
DATA lo_map TYPE REF TO zcl_abapgit_string_map. DATA lo_map TYPE REF TO zcl_abapgit_string_map.
@ -282,17 +287,6 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDMETHOD. 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. METHOD render_existing.
DATA lo_form TYPE REF TO zcl_abapgit_html_form. DATA lo_form TYPE REF TO zcl_abapgit_html_form.
@ -369,4 +363,29 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
ENDCASE. ENDCASE.
ENDMETHOD. 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. 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_act = |{ zif_abapgit_definitions=>c_action-repo_refresh_checksums }?key={ mv_key }|
iv_opt = get_crossout( zif_abapgit_auth=>c_authorization-update_local_checksum ) ). 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 }| ). 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. 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. CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_repo. " Switch to another repo 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. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
WHEN c_actions-go_data. WHEN c_actions-go_data.
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_data rs_handled-page = zcl_abapgit_gui_page_data=>create( lv_key ).
EXPORTING
iv_key = |{ ii_event->query( )->get( 'KEY' ) }|.
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN c_actions-go_unit. WHEN c_actions-go_unit.