mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00

* Refactor "Change Remote" to html form * upd * cleanup * less whitespace * update logic and descriptions
101 lines
2.4 KiB
ABAP
101 lines
2.4 KiB
ABAP
CLASS zcl_abapgit_gui_page_ch_remote DEFINITION
|
|
PUBLIC
|
|
INHERITING FROM zcl_abapgit_gui_page
|
|
FINAL
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
|
|
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.
|
|
|
|
METHODS render_content
|
|
REDEFINITION .
|
|
PRIVATE SECTION.
|
|
|
|
CONSTANTS c_remote_field TYPE string VALUE 'REMOTE' ##NO_TEXT.
|
|
CONSTANTS:
|
|
BEGIN OF c_event,
|
|
go_back TYPE string VALUE 'go_back',
|
|
save TYPE string VALUE 'save',
|
|
END OF c_event .
|
|
DATA mv_key TYPE zif_abapgit_persistence=>ty_repo-key .
|
|
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online .
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS ZCL_ABAPGIT_GUI_PAGE_CH_REMOTE IMPLEMENTATION.
|
|
|
|
|
|
METHOD constructor.
|
|
|
|
super->constructor( ).
|
|
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
|
ms_control-page_title = 'Change Remote'.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD render_content.
|
|
|
|
DATA lo_form TYPE REF TO zcl_abapgit_html_form.
|
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
|
|
|
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
|
CREATE OBJECT lo_map.
|
|
|
|
lo_form = zcl_abapgit_html_form=>create( ).
|
|
|
|
lo_form->text(
|
|
iv_name = c_remote_field
|
|
iv_required = abap_true
|
|
iv_label = 'New GIT Repository URL'
|
|
iv_hint = 'HTTPS address of the repository' ).
|
|
lo_map->set(
|
|
iv_key = c_remote_field
|
|
iv_val = mo_repo->get_url( ) ).
|
|
|
|
lo_form->command(
|
|
iv_label = 'Save'
|
|
iv_cmd_type = zif_abapgit_html_form=>c_cmd_type-input_main
|
|
iv_action = c_event-save ).
|
|
lo_form->command(
|
|
iv_label = 'Back'
|
|
iv_action = c_event-go_back ).
|
|
|
|
ri_html->add( lo_form->render( lo_map ) ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_gui_event_handler~on_event.
|
|
|
|
DATA lv_url TYPE string.
|
|
|
|
CASE ii_event->mv_action.
|
|
WHEN c_event-go_back.
|
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back.
|
|
|
|
WHEN c_event-save.
|
|
lv_url = condense( ii_event->form_data( )->get( c_remote_field ) ).
|
|
ASSERT NOT lv_url IS INITIAL.
|
|
|
|
zcl_abapgit_repo_srv=>get_instance( )->validate_url( lv_url ).
|
|
|
|
mo_repo->set_url( lv_url ).
|
|
COMMIT WORK.
|
|
|
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back.
|
|
ENDCASE.
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|