*&---------------------------------------------------------------------* *& Include ZABAPGIT_PAGE_BACKGROUND *&---------------------------------------------------------------------* CLASS lcl_gui_page_bkg_run DEFINITION FINAL INHERITING FROM lcl_gui_page. PUBLIC SECTION. METHODS constructor. METHODS zif_abapgit_gui_page~on_event REDEFINITION. PROTECTED SECTION. METHODS render_content REDEFINITION. PRIVATE SECTION. DATA: mt_text TYPE TABLE OF string. METHODS: run. ENDCLASS. CLASS lcl_gui_page_bkg_run IMPLEMENTATION. METHOD constructor. super->constructor( ). ms_control-page_title = 'BACKGROUND_RUN'. ENDMETHOD. " constructor. METHOD zif_abapgit_gui_page~on_event. RETURN. ENDMETHOD. METHOD run. DATA: lx_error TYPE REF TO zcx_abapgit_exception, lv_text TYPE string, lv_line TYPE i VALUE 1. TRY. lcl_background=>run( ). DO. READ LINE lv_line LINE VALUE INTO lv_text. IF sy-subrc <> 0. EXIT. ENDIF. APPEND lv_text TO mt_text. lv_line = lv_line + 1. ENDDO. CATCH zcx_abapgit_exception INTO lx_error. APPEND lx_error->text TO mt_text. ENDTRY. ENDMETHOD. METHOD render_content. DATA: lv_text LIKE LINE OF mt_text. run( ). CREATE OBJECT ro_html. ro_html->add( '
' ). LOOP AT mt_text INTO lv_text. ro_html->add( '
' && lv_text && '

' ). ENDLOOP. ro_html->add( '
' ). ENDMETHOD. "render_content ENDCLASS. CLASS lcl_gui_page_bkg DEFINITION FINAL INHERITING FROM lcl_gui_page. PUBLIC SECTION. METHODS: constructor IMPORTING iv_key TYPE zcl_abapgit_persistence_repo=>ty_repo-key, zif_abapgit_gui_page~on_event REDEFINITION. PROTECTED SECTION. METHODS render_content REDEFINITION. PRIVATE SECTION. DATA: mv_key TYPE zcl_abapgit_persistence_repo=>ty_repo-key. METHODS: build_menu RETURNING VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar, render_data RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception. ENDCLASS. CLASS lcl_gui_page_bkg IMPLEMENTATION. METHOD constructor. super->constructor( ). mv_key = iv_key. ms_control-page_title = 'BACKGROUND'. ms_control-page_menu = build_menu( ). ENDMETHOD. METHOD build_menu. CREATE OBJECT ro_menu. ro_menu->add( iv_txt = 'Run background logic' iv_act = zif_abapgit_definitions=>gc_action-go_background_run ) ##NO_TEXT. ENDMETHOD. "build_menu METHOD zif_abapgit_gui_page~on_event. DATA ls_bg_task TYPE zcl_abapgit_persist_background=>ty_background. CASE iv_action. WHEN zif_abapgit_definitions=>gc_action-bg_update. ls_bg_task = zcl_abapgit_html_action_utils=>decode_bg_update( iv_getdata ). ls_bg_task-key = mv_key. lcl_services_bkg=>update_task( ls_bg_task ). ev_state = zif_abapgit_definitions=>gc_event_state-re_render. ENDCASE. ENDMETHOD. METHOD render_data. DATA: lo_repo TYPE REF TO lcl_repo_online, lo_per TYPE REF TO zcl_abapgit_persist_background, lt_per TYPE zcl_abapgit_persist_background=>tt_background, ls_per LIKE LINE OF lt_per, lv_nothing TYPE string, lv_push TYPE string, lv_pull TYPE string, lv_afixed TYPE string, lv_aauto TYPE string. CREATE OBJECT ro_html. ro_html->add( '
' ). CREATE OBJECT lo_per. lt_per = lo_per->list( ). lo_repo ?= lcl_app=>repo_srv( )->get( mv_key ). READ TABLE lt_per INTO ls_per WITH KEY key = lo_repo->get_key( ). IF sy-subrc <> 0. CLEAR ls_per. ENDIF. IF ls_per-aname IS INITIAL. ls_per-aname = 'foobar' ##NO_TEXT. ENDIF. IF ls_per-amail IS INITIAL. ls_per-amail = 'foo@bar.com' ##NO_TEXT. ENDIF. CASE ls_per-method. WHEN zcl_abapgit_persist_background=>c_method-push. lv_push = ' checked' ##NO_TEXT. WHEN zcl_abapgit_persist_background=>c_method-pull. lv_pull = ' checked' ##NO_TEXT. WHEN OTHERS. lv_nothing = ' checked' ##NO_TEXT. ENDCASE. CASE ls_per-amethod. WHEN zcl_abapgit_persist_background=>c_amethod-auto. lv_aauto = ' checked' ##NO_TEXT. WHEN OTHERS. lv_afixed = ' checked' ##NO_TEXT. ENDCASE. ro_html->add( lcl_gui_chunk_lib=>render_repo_top( lo_repo ) ). ro_html->add( '
' ). ro_html->add( 'Method
' ) ##NO_TEXT. ro_html->add( |
| ). ro_html->add( 'Do nothing
' ) ##NO_TEXT. ro_html->add( 'Automatic push
' ) ##NO_TEXT. ro_html->add( 'Automatic pull
' ) ##NO_TEXT. ro_html->add( '
' ). ro_html->add( 'HTTP Authentication, optional
' ) ##NO_TEXT. ro_html->add( '(password will be saved in clear text)
' ) ##NO_TEXT. ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '
Username:
Password:
' ). ro_html->add( '
' ). ro_html->add( 'Commit author
' ). ro_html->add( 'Fixed
' ) ##NO_TEXT. ro_html->add( 'Automatic
' ) ##NO_TEXT. ro_html->add( '
' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '
Name:
Email:
' ). ro_html->add( '
' ). ro_html->add( '' ). ro_html->add( '
' ). ro_html->add( '
' ). ro_html->add( '
' ). ENDMETHOD. METHOD render_content. CREATE OBJECT ro_html. ro_html->add( render_data( ) ). ENDMETHOD. "render_content ENDCLASS.