move background mode settings to repo menu

This commit is contained in:
larshp 2016-07-08 11:29:35 +00:00
parent fafd02c8b0
commit 3023dc11ed
6 changed files with 79 additions and 61 deletions

View File

@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
* See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.15.2'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.15.3'. "#EC NOTEXT
********************************************************************************
* The MIT License (MIT)

View File

@ -609,19 +609,26 @@ ENDCLASS.
CLASS lcl_gui_router IMPLEMENTATION.
METHOD on_event.
DATA: lv_url TYPE string,
lv_key TYPE lcl_persistence_repo=>ty_repo-key,
ls_item TYPE ty_item.
CASE iv_action.
" General routing
WHEN 'main'
OR 'explore'
OR 'db'
OR 'background'
OR 'background_run'.
ei_page = get_page_by_name( iv_action ).
ev_state = gc_event_state-new_page.
WHEN 'background'.
lv_key = iv_getdata.
CREATE OBJECT ei_page TYPE lcl_gui_page_background
EXPORTING
iv_key = lv_key.
ev_state = gc_event_state-new_page.
WHEN 'abapgithome'.
cl_gui_frontend_services=>execute( EXPORTING document = gc_abapgit_homepage
EXCEPTIONS OTHERS = 1 ).

View File

@ -497,7 +497,7 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
ENDIF.
IF iv_sort = abap_true.
SORT mt_items BY txt ASCENDING.
SORT mt_items BY txt ASCENDING AS TEXT.
ENDIF.
LOOP AT mt_items ASSIGNING <ls_item>.

View File

@ -74,10 +74,15 @@ CLASS lcl_gui_page_background DEFINITION FINAL
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
iv_key TYPE lcl_persistence_repo=>ty_repo-key,
lif_gui_page~on_event REDEFINITION,
lif_gui_page~render REDEFINITION.
PRIVATE SECTION.
DATA:
mv_key TYPE lcl_persistence_repo=>ty_repo-key.
METHODS:
parse_fields
@ -94,6 +99,11 @@ ENDCLASS.
CLASS lcl_gui_page_background IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mv_key = iv_key.
ENDMETHOD.
METHOD parse_fields.
DEFINE _field.
@ -112,7 +122,6 @@ CLASS lcl_gui_page_background IMPLEMENTATION.
lv_string = iv_getdata. " type conversion
lt_fields = cl_http_utility=>if_http_utility~string_to_fields( lv_string ).
_field 'key' key.
_field 'method' method.
_field 'username' username.
_field 'password' password.
@ -138,6 +147,7 @@ CLASS lcl_gui_page_background IMPLEMENTATION.
ls_fields = parse_fields( iv_getdata ).
ls_fields-key = mv_key.
CREATE OBJECT lo_persistence.
@ -147,14 +157,15 @@ CLASS lcl_gui_page_background IMPLEMENTATION.
lo_persistence->modify( ls_fields ).
ENDIF.
MESSAGE 'Saved' TYPE 'S'.
COMMIT WORK.
ENDMETHOD.
METHOD render_data.
DATA: lo_repo TYPE REF TO lcl_repo,
lo_online TYPE REF TO lcl_repo_online,
DATA: lo_repo TYPE REF TO lcl_repo_online,
lo_per TYPE REF TO lcl_persistence_background,
lt_per TYPE lcl_persistence_background=>tt_background,
ls_per LIKE LINE OF lt_per,
@ -167,66 +178,58 @@ CLASS lcl_gui_page_background IMPLEMENTATION.
CREATE OBJECT ro_html.
ro_html->add( '<div id="toc">' ).
ro_html->add( 'Listing online repositories' ) ##NO_TEXT.
ro_html->add( '<br><br>' ).
CREATE OBJECT lo_per.
lt_per = lo_per->list( ).
lt_list = lcl_app=>repo_srv( )->list( ).
LOOP AT lt_list INTO lo_repo.
IF lo_repo->is_offline( ) = abap_false.
lo_online ?= lo_repo.
lo_repo ?= lcl_app=>repo_srv( )->get( mv_key ).
READ TABLE lt_per INTO ls_per WITH KEY key = lo_online->get_key( ).
IF sy-subrc <> 0.
CLEAR ls_per.
ENDIF.
READ TABLE lt_per INTO ls_per WITH KEY key = lo_repo->get_key( ).
IF sy-subrc <> 0.
CLEAR ls_per.
ENDIF.
CLEAR lv_push.
CLEAR lv_pull.
CLEAR lv_nothing.
CASE ls_per-method.
WHEN lcl_persistence_background=>c_method-push.
lv_push = ' checked' ##NO_TEXT.
WHEN lcl_persistence_background=>c_method-pull.
lv_pull = ' checked' ##NO_TEXT.
WHEN OTHERS.
lv_nothing = ' checked' ##NO_TEXT.
ENDCASE.
CLEAR lv_push.
CLEAR lv_pull.
CLEAR lv_nothing.
CASE ls_per-method.
WHEN lcl_persistence_background=>c_method-push.
lv_push = ' checked' ##NO_TEXT.
WHEN lcl_persistence_background=>c_method-pull.
lv_pull = ' checked' ##NO_TEXT.
WHEN OTHERS.
lv_nothing = ' checked' ##NO_TEXT.
ENDCASE.
ro_html->add( '<h1>' && lo_online->get_name( ) && '</h1>' ).
ro_html->add( '<form method="get" action="sapevent:save">' ).
ro_html->add( '<input type="hidden" name="key" value="' &&
lo_repo->get_key( ) && '">' ).
ro_html->add( '<input type="radio" name="method" value="nothing"' &&
lv_nothing && '>Do nothing<br>' ) ##NO_TEXT.
ro_html->add( '<input type="radio" name="method" value="push"' &&
lv_push && '>Automatic push<br>' ) ##NO_TEXT.
ro_html->add( '<input type="radio" name="method" value="pull"' &&
lv_pull && '>Automatic pull<br>' ) ##NO_TEXT.
ro_html->add( '<br>' ).
ro_html->add( 'Authentication, optional<br>' ) ##NO_TEXT.
ro_html->add( '(password will be saved in clear text)<br>' ) ##NO_TEXT.
ro_html->add( '<table>' ).
ro_html->add( '<tr>' ).
ro_html->add( '<td>Username:</td>' ).
ro_html->add( '<td><input type="text" name="username" value="' &&
ls_per-username && '"></td>' ).
ro_html->add( '</tr>' ).
ro_html->add( '<tr>' ).
ro_html->add( '<td>Password:</td>' ).
ro_html->add( '<td><input type="text" name="password" value="' &&
ls_per-password && '"></td>' ).
ro_html->add( '</tr>' ).
ro_html->add( '<tr><td colspan="2" align="right">' ).
ro_html->add( '<input type="submit" value="Save">' ).
ro_html->add( '</td></tr>' ).
ro_html->add( '</table>' ).
ro_html->add( '</form>' ).
ro_html->add( '<br>' ).
ENDIF.
ENDLOOP.
ro_html->add( render_repo_top( lo_repo ) ).
ro_html->add( '<br>' ).
ro_html->add( '<form method="get" action="sapevent:save">' ).
ro_html->add( '<input type="radio" name="method" value="nothing"' &&
lv_nothing && '>Do nothing<br>' ) ##NO_TEXT.
ro_html->add( '<input type="radio" name="method" value="push"' &&
lv_push && '>Automatic push<br>' ) ##NO_TEXT.
ro_html->add( '<input type="radio" name="method" value="pull"' &&
lv_pull && '>Automatic pull<br>' ) ##NO_TEXT.
ro_html->add( '<br>' ).
ro_html->add( 'Authentication, optional<br>' ) ##NO_TEXT.
ro_html->add( '(password will be saved in clear text)<br>' ) ##NO_TEXT.
ro_html->add( '<table>' ).
ro_html->add( '<tr>' ).
ro_html->add( '<td>Username:</td>' ).
ro_html->add( '<td><input type="text" name="username" value="' &&
ls_per-username && '"></td>' ).
ro_html->add( '</tr>' ).
ro_html->add( '<tr>' ).
ro_html->add( '<td>Password:</td>' ).
ro_html->add( '<td><input type="text" name="password" value="' &&
ls_per-password && '"></td>' ).
ro_html->add( '</tr>' ).
ro_html->add( '<tr><td colspan="2" align="right">' ).
ro_html->add( '<input type="submit" value="Save">' ).
ro_html->add( '</td></tr>' ).
ro_html->add( '</table>' ).
ro_html->add( '</form>' ).
ro_html->add( '<br>' ).
ro_html->add( '</div>' ).
@ -236,6 +239,7 @@ CLASS lcl_gui_page_background IMPLEMENTATION.
DATA lo_toolbar TYPE REF TO lcl_html_toolbar.
CREATE OBJECT lo_toolbar.
CREATE OBJECT ro_html.

View File

@ -140,7 +140,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
lo_betasub->add( iv_txt = 'Database util' iv_act = 'db' ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Package to zip' iv_act = 'packagezip' ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Transport to zip' iv_act = 'transportzip' ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Background mode' iv_act = 'background' ) ##NO_TEXT.
ro_menu->add( iv_txt = 'Clone' iv_act = c_actions-install ) ##NO_TEXT.
ro_menu->add( iv_txt = 'Explore' iv_act = 'explore' ) ##NO_TEXT.
@ -148,7 +147,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
IF needs_installation( ) = abap_true.
ro_menu->add( iv_txt = 'Get abapGit' iv_act = 'abapgit_installation' ) ##NO_TEXT.
ENDIF.
ro_menu->add( iv_txt = '&#x03b2;' io_sub = lo_betasub ).
ro_menu->add( iv_txt = 'Advanced' io_sub = lo_betasub ) ##NO_TEXT.
ENDMETHOD. "build main_menu
@ -249,6 +248,8 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
iv_act = |create_branch?{ lv_key }| ).
lo_sub->add( iv_txt = 'Branch overview'
iv_act = |branch_overview?{ lv_key }| ).
lo_sub->add( iv_txt = 'Background mode'
iv_act = |background?{ lv_key }| ).
ELSE.
lo_sub->add( iv_txt = 'Export &amp; Commit'
iv_act = |files_commit?{ lv_key }|

View File

@ -624,13 +624,18 @@ CLASS lcl_persistence_background IMPLEMENTATION.
ENDMETHOD.
METHOD modify.
ASSERT NOT is_data-key IS INITIAL.
mo_db->modify(
iv_type = c_type
iv_value = is_data-key
iv_data = to_xml( is_data ) ).
ENDMETHOD.
METHOD delete.
TRY.
mo_db->read( iv_type = c_type
iv_value = iv_key ).
@ -640,6 +645,7 @@ CLASS lcl_persistence_background IMPLEMENTATION.
mo_db->delete( iv_type = c_type
iv_value = iv_key ).
ENDMETHOD.
METHOD from_xml.