Merge pull request #1125 from larshp/lcl_settings

lcl_settings to global
This commit is contained in:
Lars Hvam 2018-01-12 13:28:12 +01:00 committed by GitHub
commit 04a2762fdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 264 additions and 230 deletions

View File

@ -560,7 +560,7 @@ CLASS lcl_2fa_github_auth IMPLEMENTATION.
METHOD get_authenticated_client.
DATA: lv_http_code TYPE i,
lv_http_code_description TYPE string,
lo_settings TYPE REF TO lcl_settings.
lo_settings TYPE REF TO zcl_abapgit_settings.
" If there is a cached client return it instead
IF is_session_running( ) = abap_true AND mi_authenticated_session IS BOUND.

View File

@ -37,10 +37,10 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page.
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING zcx_abapgit_exception,
render_text_input
IMPORTING iv_name TYPE string
iv_label TYPE string
iv_value TYPE string OPTIONAL
iv_max_length TYPE string OPTIONAL
IMPORTING iv_name TYPE string
iv_label TYPE string
iv_value TYPE string OPTIONAL
iv_max_length TYPE string OPTIONAL
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html.
ENDCLASS.
@ -161,8 +161,8 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
DATA: lv_user TYPE string.
DATA: lv_email TYPE string.
DATA: lv_s_param TYPE string.
DATA: lo_settings TYPE REF TO lcl_settings.
data: lv_body_size type i.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings.
DATA: lv_body_size TYPE i.
* see https://git-scm.com/book/ch5-2.html
* commit messages should be max 50 characters

View File

@ -19,7 +19,7 @@ CLASS lcl_gui_page_settings DEFINITION FINAL INHERITING FROM lcl_gui_page.
PRIVATE SECTION.
DATA:
mo_settings TYPE REF TO lcl_settings,
mo_settings TYPE REF TO zcl_abapgit_settings,
mv_error TYPE abap_bool.
METHODS render_proxy
@ -189,28 +189,27 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
READ TABLE it_post_fields ASSIGNING <ls_post_field> WITH KEY name = 'comment_length'.
IF sy-subrc = 0.
lv_i_param_value = <ls_post_field>-value.
IF lv_i_param_value < lcl_settings=>c_commitmsg_comment_length_dft.
lv_i_param_value = lcl_settings=>c_commitmsg_comment_length_dft.
IF lv_i_param_value < zcl_abapgit_settings=>c_commitmsg_comment_length_dft.
lv_i_param_value = zcl_abapgit_settings=>c_commitmsg_comment_length_dft.
ENDIF.
mo_settings->set_commitmsg_comment_length( lv_i_param_value ).
ELSE.
mo_settings->set_commitmsg_comment_length( lcl_settings=>c_commitmsg_comment_length_dft ).
mo_settings->set_commitmsg_comment_length( zcl_abapgit_settings=>c_commitmsg_comment_length_dft ).
ENDIF.
READ TABLE it_post_fields ASSIGNING <ls_post_field> WITH KEY name = 'body_size'.
IF sy-subrc = 0.
lv_i_param_value = <ls_post_field>-value.
IF lv_i_param_value < lcl_settings=>c_commitmsg_body_size_dft.
lv_i_param_value = lcl_settings=>c_commitmsg_body_size_dft.
IF lv_i_param_value < zcl_abapgit_settings=>c_commitmsg_body_size_dft.
lv_i_param_value = zcl_abapgit_settings=>c_commitmsg_body_size_dft.
ENDIF.
mo_settings->set_commitmsg_body_size( lv_i_param_value ).
ELSE.
mo_settings->set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ).
mo_settings->set_commitmsg_body_size( zcl_abapgit_settings=>c_commitmsg_body_size_dft ).
ENDIF.
ENDMETHOD.
METHOD validate_settings.
IF ( mo_settings->get_proxy_url( ) IS NOT INITIAL AND mo_settings->get_proxy_port( ) IS INITIAL ) OR
@ -220,7 +219,6 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
ENDMETHOD.
METHOD parse_post.
DATA lv_serialized_post_data TYPE string.
@ -230,7 +228,6 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
ENDMETHOD.
METHOD persist_settings.
DATA lo_settings_persistence TYPE REF TO lcl_persist_settings.

View File

@ -2,8 +2,6 @@
*& Include ZABAPGIT_PERSISTENCE
*&---------------------------------------------------------------------*
CLASS lcl_settings DEFINITION DEFERRED.
CLASS lcl_persist_migrate DEFINITION FINAL.
PUBLIC SECTION.
@ -208,107 +206,20 @@ CLASS lcl_persist_background DEFINITION FINAL.
ENDCLASS. "lcl_persistence_background DEFINITION
CLASS lcl_settings DEFINITION FINAL.
PUBLIC SECTION.
CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50.
CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72.
METHODS: set_proxy_url
IMPORTING
iv_url TYPE string,
set_proxy_port
IMPORTING
iv_port TYPE string,
set_proxy_authentication
IMPORTING
iv_auth TYPE abap_bool,
get_proxy_url
RETURNING
VALUE(rv_proxy_url) TYPE string,
get_proxy_port
RETURNING
VALUE(rv_port) TYPE string,
get_proxy_authentication
RETURNING
VALUE(rv_auth) TYPE abap_bool,
set_run_critical_tests
IMPORTING
iv_run TYPE abap_bool,
get_run_critical_tests
RETURNING
VALUE(rv_run) TYPE abap_bool,
set_experimental_features
IMPORTING
iv_run TYPE abap_bool,
get_experimental_features
RETURNING
VALUE(rv_run) TYPE abap_bool,
set_max_lines
IMPORTING iv_lines TYPE i,
get_max_lines
RETURNING
VALUE(rv_lines) TYPE i,
set_adt_jump_enanbled
IMPORTING
iv_adt_jump_enabled TYPE abap_bool,
get_adt_jump_enabled
RETURNING
VALUE(rv_adt_jump_enabled) TYPE abap_bool,
set_commitmsg_comment_length
IMPORTING
iv_length TYPE i,
get_commitmsg_comment_length
RETURNING
VALUE(rv_length) TYPE i,
set_commitmsg_body_size
IMPORTING
iv_length TYPE i,
get_commitmsg_body_size
RETURNING
VALUE(rv_length) TYPE i,
get_settings_xml
RETURNING
VALUE(ev_settings_xml) TYPE string
RAISING
zcx_abapgit_exception,
set_xml_settings
IMPORTING
iv_settings_xml TYPE string
RAISING
zcx_abapgit_exception,
set_defaults.
PRIVATE SECTION.
TYPES: BEGIN OF ty_s_settings,
proxy_url TYPE string,
proxy_port TYPE string,
proxy_auth TYPE string,
run_critical_tests TYPE abap_bool,
experimental_features TYPE abap_bool,
max_lines TYPE i,
adt_jump_enabled TYPE abap_bool,
commitmsg_comment_length TYPE i,
commitmsg_body_size TYPE i,
END OF ty_s_settings.
DATA: ms_settings TYPE ty_s_settings.
ENDCLASS.
CLASS lcl_persist_settings DEFINITION FINAL.
PUBLIC SECTION.
METHODS modify
IMPORTING
io_settings TYPE REF TO lcl_settings
io_settings TYPE REF TO zcl_abapgit_settings
RAISING
zcx_abapgit_exception.
METHODS read
RETURNING
VALUE(ro_settings) TYPE REF TO lcl_settings.
VALUE(ro_settings) TYPE REF TO zcl_abapgit_settings.
PRIVATE SECTION.
DATA: mo_settings TYPE REF TO lcl_settings.
DATA: mo_settings TYPE REF TO zcl_abapgit_settings.
ENDCLASS.
@ -1218,7 +1129,7 @@ CLASS lcl_persist_migrate IMPLEMENTATION.
METHOD migrate_settings.
DATA: lr_settings TYPE REF TO lcl_settings.
DATA: lr_settings TYPE REF TO zcl_abapgit_settings.
DATA: lr_persist_settings TYPE REF TO lcl_persist_settings.
DATA: lv_critical_tests_as_string TYPE string.
DATA: lv_critical_tests_as_boolean TYPE abap_bool.
@ -1567,122 +1478,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION.
ENDCLASS.
CLASS lcl_settings IMPLEMENTATION.
METHOD set_proxy_authentication.
ms_settings-proxy_auth = iv_auth.
ENDMETHOD.
METHOD get_proxy_authentication.
rv_auth = ms_settings-proxy_auth.
ENDMETHOD.
METHOD set_proxy_url.
ms_settings-proxy_url = iv_url.
ENDMETHOD.
METHOD get_proxy_url.
rv_proxy_url = ms_settings-proxy_url.
ENDMETHOD.
METHOD set_proxy_port.
ms_settings-proxy_port = iv_port.
ENDMETHOD.
METHOD get_proxy_port.
rv_port = ms_settings-proxy_port.
ENDMETHOD.
METHOD set_run_critical_tests.
ms_settings-run_critical_tests = iv_run.
ENDMETHOD.
METHOD get_run_critical_tests.
rv_run = ms_settings-run_critical_tests.
ENDMETHOD.
METHOD set_experimental_features.
ms_settings-experimental_features = iv_run.
ENDMETHOD.
METHOD get_experimental_features.
rv_run = ms_settings-experimental_features.
ENDMETHOD.
METHOD get_max_lines.
rv_lines = ms_settings-max_lines.
ENDMETHOD.
METHOD set_max_lines.
ms_settings-max_lines = iv_lines.
ENDMETHOD.
METHOD get_adt_jump_enabled.
rv_adt_jump_enabled = ms_settings-adt_jump_enabled.
ENDMETHOD.
METHOD set_adt_jump_enanbled.
ms_settings-adt_jump_enabled = iv_adt_jump_enabled.
ENDMETHOD.
METHOD get_commitmsg_comment_length.
rv_length = ms_settings-commitmsg_comment_length.
ENDMETHOD.
METHOD set_commitmsg_comment_length.
ms_settings-commitmsg_comment_length = iv_length.
ENDMETHOD.
METHOD get_commitmsg_body_size.
rv_length = ms_settings-commitmsg_body_size.
ENDMETHOD.
METHOD set_commitmsg_body_size.
ms_settings-commitmsg_body_size = iv_length.
ENDMETHOD.
METHOD get_settings_xml.
DATA: lr_output TYPE REF TO zcl_abapgit_xml_output.
CREATE OBJECT lr_output.
lr_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings
ig_data = ms_settings ).
ev_settings_xml = lr_output->render( ).
ENDMETHOD.
METHOD set_xml_settings.
DATA: lr_input TYPE REF TO zcl_abapgit_xml_input.
CREATE OBJECT lr_input EXPORTING iv_xml = iv_settings_xml.
CLEAR ms_settings.
lr_input->read( EXPORTING iv_name = zcl_abapgit_persistence_db=>c_type_settings
CHANGING cg_data = ms_settings ).
ENDMETHOD.
METHOD set_defaults.
CLEAR ms_settings.
set_proxy_authentication( abap_false ).
set_run_critical_tests( abap_false ).
set_experimental_features( abap_false ).
set_max_lines( 500 ).
set_adt_jump_enanbled( abap_false ).
set_commitmsg_comment_length( lcl_settings=>c_commitmsg_comment_length_dft ).
set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ).
ENDMETHOD.
ENDCLASS.
CLASS lcl_persist_settings IMPLEMENTATION.
METHOD modify.

View File

@ -27,7 +27,7 @@ CLASS lcl_proxy_configuration DEFINITION CREATE PUBLIC.
VALUE(rv_auth) TYPE abap_bool.
PRIVATE SECTION.
DATA: mo_settings TYPE REF TO lcl_settings,
DATA: mo_settings TYPE REF TO zcl_abapgit_settings,
mi_exit TYPE REF TO lif_exit.
ENDCLASS.

View File

@ -51,7 +51,7 @@ ENDCLASS.
CLASS ltcl_critical_tests IMPLEMENTATION.
METHOD check_run_permission.
DATA: lo_settings TYPE REF TO lcl_settings.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = lcl_app=>settings( )->read( ).
"Objects will be created and deleted, do not run in customer system!
@ -1376,7 +1376,7 @@ CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING
read_not_found_critical_tests FOR TESTING RAISING cx_static_check.
DATA:
mo_persistence_settings TYPE REF TO lcl_persist_settings,
mo_settings TYPE REF TO lcl_settings.
mo_settings TYPE REF TO zcl_abapgit_settings.
ENDCLASS.
CLASS ltcl_persistence_settings IMPLEMENTATION.

View File

@ -81,7 +81,7 @@ CLASS lcl_gui_view_repo IMPLEMENTATION.
METHOD constructor.
DATA lo_settings TYPE REF TO lcl_settings.
DATA lo_settings TYPE REF TO zcl_abapgit_settings.
super->constructor( ).

View File

@ -0,0 +1,224 @@
CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
PUBLIC SECTION.
CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50.
CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72.
METHODS: set_proxy_url
IMPORTING
iv_url TYPE string,
set_proxy_port
IMPORTING
iv_port TYPE string,
set_proxy_authentication
IMPORTING
iv_auth TYPE abap_bool,
get_proxy_url
RETURNING
VALUE(rv_proxy_url) TYPE string,
get_proxy_port
RETURNING
VALUE(rv_port) TYPE string,
get_proxy_authentication
RETURNING
VALUE(rv_auth) TYPE abap_bool,
set_run_critical_tests
IMPORTING
iv_run TYPE abap_bool,
get_run_critical_tests
RETURNING
VALUE(rv_run) TYPE abap_bool,
set_experimental_features
IMPORTING
iv_run TYPE abap_bool,
get_experimental_features
RETURNING
VALUE(rv_run) TYPE abap_bool,
set_max_lines
IMPORTING iv_lines TYPE i,
get_max_lines
RETURNING
VALUE(rv_lines) TYPE i,
set_adt_jump_enanbled
IMPORTING
iv_adt_jump_enabled TYPE abap_bool,
get_adt_jump_enabled
RETURNING
VALUE(rv_adt_jump_enabled) TYPE abap_bool,
set_commitmsg_comment_length
IMPORTING
iv_length TYPE i,
get_commitmsg_comment_length
RETURNING
VALUE(rv_length) TYPE i,
set_commitmsg_body_size
IMPORTING
iv_length TYPE i,
get_commitmsg_body_size
RETURNING
VALUE(rv_length) TYPE i,
get_settings_xml
RETURNING
VALUE(ev_settings_xml) TYPE string
RAISING
zcx_abapgit_exception,
set_xml_settings
IMPORTING
iv_settings_xml TYPE string
RAISING
zcx_abapgit_exception,
set_defaults.
PRIVATE SECTION.
TYPES: BEGIN OF ty_s_settings,
proxy_url TYPE string,
proxy_port TYPE string,
proxy_auth TYPE string,
run_critical_tests TYPE abap_bool,
experimental_features TYPE abap_bool,
max_lines TYPE i,
adt_jump_enabled TYPE abap_bool,
commitmsg_comment_length TYPE i,
commitmsg_body_size TYPE i,
END OF ty_s_settings.
DATA: ms_settings TYPE ty_s_settings.
ENDCLASS.
CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
METHOD get_adt_jump_enabled.
rv_adt_jump_enabled = ms_settings-adt_jump_enabled.
ENDMETHOD.
METHOD get_commitmsg_body_size.
rv_length = ms_settings-commitmsg_body_size.
ENDMETHOD.
METHOD get_commitmsg_comment_length.
rv_length = ms_settings-commitmsg_comment_length.
ENDMETHOD.
METHOD get_experimental_features.
rv_run = ms_settings-experimental_features.
ENDMETHOD.
METHOD get_max_lines.
rv_lines = ms_settings-max_lines.
ENDMETHOD.
METHOD get_proxy_authentication.
rv_auth = ms_settings-proxy_auth.
ENDMETHOD.
METHOD get_proxy_port.
rv_port = ms_settings-proxy_port.
ENDMETHOD.
METHOD get_proxy_url.
rv_proxy_url = ms_settings-proxy_url.
ENDMETHOD.
METHOD get_run_critical_tests.
rv_run = ms_settings-run_critical_tests.
ENDMETHOD.
METHOD get_settings_xml.
DATA: lr_output TYPE REF TO zcl_abapgit_xml_output.
CREATE OBJECT lr_output.
lr_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings
ig_data = ms_settings ).
ev_settings_xml = lr_output->render( ).
ENDMETHOD.
METHOD set_adt_jump_enanbled.
ms_settings-adt_jump_enabled = iv_adt_jump_enabled.
ENDMETHOD.
METHOD set_commitmsg_body_size.
ms_settings-commitmsg_body_size = iv_length.
ENDMETHOD.
METHOD set_commitmsg_comment_length.
ms_settings-commitmsg_comment_length = iv_length.
ENDMETHOD.
METHOD set_defaults.
CLEAR ms_settings.
set_proxy_authentication( abap_false ).
set_run_critical_tests( abap_false ).
set_experimental_features( abap_false ).
set_max_lines( 500 ).
set_adt_jump_enanbled( abap_false ).
set_commitmsg_comment_length( c_commitmsg_comment_length_dft ).
set_commitmsg_body_size( c_commitmsg_body_size_dft ).
ENDMETHOD.
METHOD set_experimental_features.
ms_settings-experimental_features = iv_run.
ENDMETHOD.
METHOD set_max_lines.
ms_settings-max_lines = iv_lines.
ENDMETHOD.
METHOD set_proxy_authentication.
ms_settings-proxy_auth = iv_auth.
ENDMETHOD.
METHOD set_proxy_port.
ms_settings-proxy_port = iv_port.
ENDMETHOD.
METHOD set_proxy_url.
ms_settings-proxy_url = iv_url.
ENDMETHOD.
METHOD set_run_critical_tests.
ms_settings-run_critical_tests = iv_run.
ENDMETHOD.
METHOD set_xml_settings.
DATA: lr_input TYPE REF TO zcl_abapgit_xml_input.
CREATE OBJECT lr_input EXPORTING iv_xml = iv_settings_xml.
CLEAR ms_settings.
lr_input->read( EXPORTING iv_name = zcl_abapgit_persistence_db=>c_type_settings
CHANGING cg_data = ms_settings ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_SETTINGS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Settings</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>