cleanup persistency package (#1270)

* ZCL_ABAPGIT_PERSIST_MIGRATE cleanup old migration

* delete ZCL_ABAPGIT_SERVICES_DB

by refactoring use to GUI pages

* pretty settings in db overview page
This commit is contained in:
Lars Hvam 2018-03-26 13:54:05 +02:00 committed by GitHub
parent eb76e62f42
commit 936e500f0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 136 additions and 287 deletions

View File

@ -4,23 +4,21 @@ CLASS zcl_abapgit_persist_migrate DEFINITION PUBLIC CREATE PUBLIC.
CLASS-METHODS: run RAISING zcx_abapgit_exception.
PRIVATE SECTION.
CONSTANTS:
c_text TYPE string VALUE 'Generated by abapGit' ##NO_TEXT.
CLASS-METHODS:
migrate_settings
RAISING zcx_abapgit_exception,
table_create
RAISING zcx_abapgit_exception,
table_exists
RETURNING VALUE(rv_exists) TYPE abap_bool,
lock_create
RAISING zcx_abapgit_exception,
lock_exists
RETURNING VALUE(rv_exists) TYPE abap_bool,
settings_exists
RETURNING VALUE(rv_exists) TYPE abap_bool.
CONSTANTS c_text TYPE string VALUE 'Generated by abapGit' ##NO_TEXT.
CLASS-METHODS table_create
RAISING
zcx_abapgit_exception .
CLASS-METHODS table_exists
RETURNING
VALUE(rv_exists) TYPE abap_bool .
CLASS-METHODS lock_create
RAISING
zcx_abapgit_exception .
CLASS-METHODS lock_exists
RETURNING
VALUE(rv_exists) TYPE abap_bool .
ENDCLASS.
@ -127,156 +125,6 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
ENDMETHOD.
METHOD migrate_settings.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings,
lo_persist_settings TYPE REF TO zcl_abapgit_persist_settings,
lv_critical_tests_as_string TYPE string,
lv_critical_tests_as_boolean TYPE abap_bool,
lv_max_lines_as_string TYPE string,
lv_flag TYPE abap_bool,
lv_max_lines_as_integer TYPE i,
lv_s_param_value TYPE string,
lv_i_param_value TYPE i,
lv_adt_jump_enabled_as_string TYPE string,
lv_adt_jump_enabled_as_boolean TYPE abap_bool.
lo_persist_settings = zcl_abapgit_persist_settings=>get_instance( ).
CREATE OBJECT lo_settings.
lo_settings->set_defaults( ).
TRY.
lo_settings->set_proxy_url(
zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'PROXY_URL' ) ).
CATCH zcx_abapgit_not_found.
ENDTRY.
TRY.
lo_settings->set_proxy_port(
zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'PROXY_PORT' ) ).
CATCH zcx_abapgit_not_found.
ENDTRY.
TRY.
lv_flag = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'PROXY_AUTH' ).
lo_settings->set_proxy_authentication( lv_flag ).
CATCH zcx_abapgit_not_found.
ENDTRY.
TRY.
lv_critical_tests_as_string = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'CRIT_TESTS' ).
lv_critical_tests_as_boolean = lv_critical_tests_as_string.
lo_settings->set_run_critical_tests( lv_critical_tests_as_boolean ).
CATCH zcx_abapgit_not_found.
ENDTRY.
TRY.
lv_max_lines_as_string = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'MAX_LINES' ).
lv_max_lines_as_integer = lv_max_lines_as_string.
lo_settings->set_max_lines( lv_max_lines_as_integer ).
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
ENDTRY.
TRY.
lv_adt_jump_enabled_as_string = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'ADT_JUMP' ).
lv_adt_jump_enabled_as_boolean = lv_adt_jump_enabled_as_string.
lo_settings->set_adt_jump_enanbled( lv_adt_jump_enabled_as_boolean ).
CATCH zcx_abapgit_not_found.
ENDTRY.
TRY.
lv_s_param_value = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'COMMENT_LEN' ).
lv_i_param_value = lv_s_param_value.
lo_settings->set_commitmsg_comment_length( lv_i_param_value ).
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
ENDTRY.
TRY.
lv_s_param_value = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'BODY_SIZE' ).
lv_i_param_value = lv_s_param_value.
lo_settings->set_commitmsg_body_size( lv_i_param_value ).
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
ENDTRY.
lo_persist_settings->modify( lo_settings ).
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'PROXY_URL' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'PROXY_PORT' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'PROXY_AUTH' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'CRIT_TESTS' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'MAX_LINES' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'ADT_JUMP' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'COMMENT_LEN' ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'BODY_SIZE' ).
CATCH zcx_abapgit_exception.
ENDTRY.
ENDMETHOD.
METHOD run.
IF table_exists( ) = abap_false.
@ -287,23 +135,6 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
lock_create( ).
ENDIF.
IF settings_exists( ) = abap_false.
migrate_settings( ).
ENDIF.
ENDMETHOD.
METHOD settings_exists.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = '' ).
rv_exists = abap_true.
CATCH zcx_abapgit_not_found.
rv_exists = abap_false.
ENDTRY.
ENDMETHOD.

View File

@ -1,61 +0,0 @@
CLASS zcl_abapgit_services_db DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS delete
IMPORTING is_key TYPE zif_abapgit_persistence=>ty_content
RAISING zcx_abapgit_exception zcx_abapgit_cancel.
CLASS-METHODS update
IMPORTING is_content TYPE zif_abapgit_persistence=>ty_content
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS ZCL_ABAPGIT_SERVICES_DB IMPLEMENTATION.
METHOD delete.
DATA: lv_answer TYPE c LENGTH 1.
ASSERT is_key-type IS NOT INITIAL.
ASSERT is_key-value IS NOT INITIAL.
lv_answer = zcl_abapgit_popups=>popup_to_confirm(
titlebar = 'Warning'
text_question = 'Delete?'
text_button_1 = 'Ok'
icon_button_1 = 'ICON_DELETE'
text_button_2 = 'Cancel'
icon_button_2 = 'ICON_CANCEL'
default_button = '2'
display_cancel_button = abap_false ). "#EC NOTEXT
IF lv_answer = '2'.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = is_key-type
iv_value = is_key-value ).
COMMIT WORK.
ENDMETHOD. " delete
METHOD update.
ASSERT is_content-type IS NOT INITIAL.
zcl_abapgit_persistence_db=>get_instance( )->update(
iv_type = is_content-type
iv_value = is_content-value
iv_data = is_content-data_str ).
COMMIT WORK.
ENDMETHOD. "update
ENDCLASS.

View File

@ -1,19 +0,0 @@
<?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_SERVICES_DB</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>DB services</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,20 +1,39 @@
CLASS zcl_abapgit_gui_page_db DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_gui_page
FINAL
CREATE PUBLIC INHERITING FROM zcl_abapgit_gui_page.
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor .
METHODS zif_abapgit_gui_page~on_event
REDEFINITION .
PROTECTED SECTION.
METHODS render_content REDEFINITION.
METHODS render_content
REDEFINITION .
PRIVATE SECTION.
METHODS explain_content
IMPORTING is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING VALUE(rv_text) TYPE string
RAISING zcx_abapgit_exception.
CONSTANTS:
BEGIN OF gc_action,
delete TYPE string VALUE 'delete',
END OF gc_action .
CLASS-METHODS delete
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception
zcx_abapgit_cancel .
METHODS explain_content
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rv_text) TYPE string
RAISING
zcx_abapgit_exception .
ENDCLASS.
@ -28,6 +47,36 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
ENDMETHOD. " constructor.
METHOD delete.
DATA: lv_answer TYPE c LENGTH 1.
ASSERT is_key-type IS NOT INITIAL.
ASSERT is_key-value IS NOT INITIAL.
lv_answer = zcl_abapgit_popups=>popup_to_confirm(
titlebar = 'Warning'
text_question = 'Delete?'
text_button_1 = 'Ok'
icon_button_1 = 'ICON_DELETE'
text_button_2 = 'Cancel'
icon_button_2 = 'ICON_CANCEL'
default_button = '2'
display_cancel_button = abap_false ). "#EC NOTEXT
IF lv_answer = '2'.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = is_key-type
iv_value = is_key-value ).
COMMIT WORK.
ENDMETHOD. " delete
METHOD explain_content.
DATA: ls_result TYPE match_result,
@ -65,6 +114,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
WHEN 'USER'.
rv_text = '-'. " No additional explanation for user
WHEN 'SETTINGS'.
rv_text = '-'.
WHEN OTHERS.
IF strlen( is_data-data_str ) >= 250.
rv_text = is_data-data_str(250).
@ -118,7 +169,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
CREATE OBJECT lo_toolbar.
lo_toolbar->add( iv_txt = 'Display' iv_act = |{ zif_abapgit_definitions=>gc_action-db_display }?{ lv_action }| ).
lo_toolbar->add( iv_txt = 'Edit' iv_act = |{ zif_abapgit_definitions=>gc_action-db_edit }?{ lv_action }| ).
lo_toolbar->add( iv_txt = 'Delete' iv_act = |{ zif_abapgit_definitions=>gc_action-db_delete }?{ lv_action }| ).
lo_toolbar->add( iv_txt = 'Delete' iv_act = |{ gc_action-delete }?{ lv_action }| ).
ro_html->add( |<tr{ lv_trclass }>| ).
ro_html->add( |<td>{ <ls_data>-type }</td>| ).
@ -135,4 +186,18 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
ro_html->add( '</div>' ).
ENDMETHOD. "render_content
METHOD zif_abapgit_gui_page~on_event.
DATA: ls_db TYPE zif_abapgit_persistence=>ty_content.
CASE iv_action.
WHEN gc_action-delete.
ls_db = zcl_abapgit_html_action_utils=>dbkey_decode( iv_getdata ).
delete( ls_db ).
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
ENDCASE.
ENDMETHOD.
ENDCLASS.

View File

@ -1,18 +1,34 @@
CLASS zcl_abapgit_gui_page_db_edit DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_gui_page
FINAL
CREATE PUBLIC INHERITING FROM zcl_abapgit_gui_page.
CREATE PUBLIC .
PUBLIC SECTION.
METHODS: constructor
IMPORTING is_key TYPE zif_abapgit_persistence=>ty_content.
METHODS constructor
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content .
METHODS zif_abapgit_gui_page~on_event
REDEFINITION .
PROTECTED SECTION.
METHODS render_content REDEFINITION.
METHODS render_content
REDEFINITION .
PRIVATE SECTION.
DATA: ms_key TYPE zif_abapgit_persistence=>ty_content.
CONSTANTS:
BEGIN OF gc_action,
update TYPE string VALUE 'update',
END OF gc_action .
DATA ms_key TYPE zif_abapgit_persistence=>ty_content .
CLASS-METHODS update
IMPORTING
!is_content TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception .
ENDCLASS.
@ -63,8 +79,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
ro_html->add( '</td></tr></table>' ).
" Form
ro_html->add( |<form id="db_form" method="post" action="sapevent:|
&& |{ zif_abapgit_definitions=>gc_action-db_update }">| ).
ro_html->add( |<form id="db_form" method="post" action="sapevent:| && |{ gc_action-update }">| ).
ro_html->add( |<input type="hidden" name="type" value="{ ms_key-type }">| ).
ro_html->add( |<input type="hidden" name="value" value="{ ms_key-value }">| ).
ro_html->add( |<textarea rows="20" cols="100" name="xmldata">{ lv_data }</textarea>| ).
@ -73,4 +88,32 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
ro_html->add( '</div>' ). "db_entry
ENDMETHOD. "render_content
METHOD update.
ASSERT is_content-type IS NOT INITIAL.
zcl_abapgit_persistence_db=>get_instance( )->update(
iv_type = is_content-type
iv_value = is_content-value
iv_data = is_content-data_str ).
COMMIT WORK.
ENDMETHOD.
METHOD zif_abapgit_gui_page~on_event.
DATA: ls_db TYPE zif_abapgit_persistence=>ty_content.
CASE iv_action.
WHEN gc_action-update.
ls_db = zcl_abapgit_html_action_utils=>dbcontent_decode( it_postdata ).
update( ls_db ).
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
ENDCASE.
ENDMETHOD.
ENDCLASS.

View File

@ -239,14 +239,6 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
EXPORTING
is_key = zcl_abapgit_html_action_utils=>dbkey_decode( iv_getdata ).
ev_state = zif_abapgit_definitions=>gc_event_state-new_page.
WHEN zif_abapgit_definitions=>gc_action-db_delete. " DB Delete
ls_db = zcl_abapgit_html_action_utils=>dbkey_decode( iv_getdata ).
zcl_abapgit_services_db=>delete( ls_db ).
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
WHEN zif_abapgit_definitions=>gc_action-db_update. " DB Update
ls_db = zcl_abapgit_html_action_utils=>dbcontent_decode( it_postdata ).
zcl_abapgit_services_db=>update( ls_db ).
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
" ABAPGIT services actions
WHEN zif_abapgit_definitions=>gc_action-abapgit_home. " Go abapGit homepage

View File

@ -349,8 +349,6 @@ INTERFACE zif_abapgit_definitions PUBLIC.
git_tag_switch TYPE string VALUE 'git_tag_switch',
git_commit TYPE string VALUE 'git_commit',
db_delete TYPE string VALUE 'db_delete',
db_update TYPE string VALUE 'db_update',
db_display TYPE string VALUE 'db_display',
db_edit TYPE string VALUE 'db_edit',
bg_update TYPE string VALUE 'bg_update',