diff --git a/src/ui/zcl_abapgit_gui_page_main.clas.abap b/src/ui/zcl_abapgit_gui_page_main.clas.abap index e93d298ba..45f5c3e4b 100644 --- a/src/ui/zcl_abapgit_gui_page_main.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_main.clas.abap @@ -135,13 +135,6 @@ CLASS zcl_abapgit_gui_page_main IMPLEMENTATION. iv_key = lv_key. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. - WHEN zif_abapgit_definitions=>c_action-repo_settings. - - CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_sett - EXPORTING - io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). - rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. - WHEN OTHERS. rs_handled = super->zif_abapgit_gui_event_handler~on_event( ii_event ). diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap deleted file mode 100644 index 444b1552b..000000000 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap +++ /dev/null @@ -1,491 +0,0 @@ -CLASS zcl_abapgit_gui_page_repo_sett DEFINITION - PUBLIC - INHERITING FROM zcl_abapgit_gui_page - FINAL - CREATE PUBLIC . - - PUBLIC SECTION. - - METHODS constructor - IMPORTING - !io_repo TYPE REF TO zcl_abapgit_repo - RAISING zcx_abapgit_exception. - - METHODS zif_abapgit_gui_event_handler~on_event - REDEFINITION . - PROTECTED SECTION. - - CONSTANTS: - BEGIN OF c_action, - save_settings TYPE string VALUE 'save_settings', - END OF c_action . - DATA mo_repo TYPE REF TO zcl_abapgit_repo. - - METHODS render_dot_abapgit - IMPORTING - !ii_html TYPE REF TO zif_abapgit_html . - METHODS render_local_settings - IMPORTING - !ii_html TYPE REF TO zif_abapgit_html - RAISING - zcx_abapgit_exception . - METHODS render_remotes - IMPORTING - !ii_html TYPE REF TO zif_abapgit_html - RAISING - zcx_abapgit_exception . - METHODS save - IMPORTING - !it_postdata TYPE cnht_post_data_tab - RAISING - zcx_abapgit_exception . - METHODS save_dot_abap - IMPORTING - !it_post_fields TYPE tihttpnvp - RAISING - zcx_abapgit_exception . - METHODS save_local_settings - IMPORTING - !it_post_fields TYPE tihttpnvp - RAISING - zcx_abapgit_exception . - METHODS save_remotes - IMPORTING - !it_post_fields TYPE tihttpnvp - RAISING - zcx_abapgit_exception . - METHODS render_dot_abapgit_reqs - IMPORTING - ii_html TYPE REF TO zif_abapgit_html - it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - METHODS render_table_row - IMPORTING - iv_name TYPE string - iv_value TYPE string - RETURNING - VALUE(rv_html) TYPE string. - - - METHODS render_content - REDEFINITION . - - PRIVATE SECTION. - -ENDCLASS. - - - -CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. - - - METHOD constructor. - super->constructor( ). - ms_control-page_title = 'Repository Settings'. - mo_repo = io_repo. - ENDMETHOD. - - - METHOD render_content. - - CREATE OBJECT ri_html TYPE zcl_abapgit_html. - - ri_html->add( `
` ). - ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( io_repo = mo_repo - iv_show_commit = abap_false ) ). - ri_html->add( `
` ). - - ri_html->add( '
' ). - ri_html->add( |
| ). - - render_dot_abapgit( ri_html ). - IF mo_repo->is_offline( ) = abap_false. - render_remotes( ri_html ). - ENDIF. - render_local_settings( ri_html ). - - ri_html->add( '' ). - ri_html->add( '
' ). - ri_html->add( '
' ). - - ENDMETHOD. - - - METHOD render_dot_abapgit. - - DATA: ls_dot TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit, - lv_select_html TYPE string, - lv_selected TYPE string, - lv_language TYPE t002t-sptxt, - lv_ignore TYPE string, - lt_folder_logic TYPE string_table. - - FIELD-SYMBOLS: TYPE LINE OF string_table, - TYPE string. - - ls_dot = mo_repo->get_dot_abapgit( )->get_data( ). - - APPEND zif_abapgit_dot_abapgit=>c_folder_logic-full TO lt_folder_logic. - APPEND zif_abapgit_dot_abapgit=>c_folder_logic-prefix TO lt_folder_logic. - - ii_html->add( '

.abapgit.xml

' ). - ii_html->add( '' ). - - SELECT SINGLE sptxt INTO lv_language FROM t002t - WHERE spras = sy-langu AND sprsl = ls_dot-master_language. - IF sy-subrc <> 0. - lv_language = 'Unknown language. Check your settings.'. - ENDIF. - - ii_html->add( render_table_row( - iv_name = 'Main Language' - iv_value = |{ ls_dot-master_language } ({ lv_language })| - ) ). - - lv_select_html = ''. - - ii_html->add( render_table_row( - iv_name = 'Folder Logic' - iv_value = lv_select_html - ) ). - - ii_html->add( render_table_row( - iv_name = 'Starting Folder' - iv_value = || - ) ). - - LOOP AT ls_dot-ignore ASSIGNING . - lv_ignore = lv_ignore && && zif_abapgit_definitions=>c_newline. - ENDLOOP. - - ii_html->add( render_table_row( - iv_name = 'Ignore Files' - iv_value = || - ) ). - - ii_html->add( '
' ). - - render_dot_abapgit_reqs( - it_requirements = ls_dot-requirements - ii_html = ii_html ). - - - ENDMETHOD. - - - METHOD render_dot_abapgit_reqs. - - CONSTANTS: lc_requirement_edit_min_count TYPE i VALUE 5. - DATA lv_req_index TYPE i. - DATA lv_requirement_count TYPE i. - DATA lt_requirements LIKE it_requirements. - FIELD-SYMBOLS TYPE zif_abapgit_dot_abapgit=>ty_requirement. - - lt_requirements = it_requirements. - lv_requirement_count = lines( lt_requirements ). - IF lv_requirement_count < lc_requirement_edit_min_count. - DO - lv_requirement_count + lc_requirement_edit_min_count TIMES. - APPEND INITIAL LINE TO lt_requirements. - ENDDO. - ENDIF. - - ii_html->add( '

Requirements

' ). - ii_html->add( '' ). - ii_html->add( '' ). - - LOOP AT lt_requirements ASSIGNING . - lv_req_index = sy-tabix. - - ii_html->add( '' ). - ii_html->add( || ). - ii_html->add( || ). - ii_html->add( || ). - ii_html->add( '' ). - ENDLOOP. - - ii_html->add( '
Software ComponentMin. ReleaseMin. Patch
' ). - - ENDMETHOD. - - - METHOD render_local_settings. - - DATA: lv_checked TYPE string, - ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings. - - ls_settings = mo_repo->get_local_settings( ). - - ii_html->add( '

Local Settings

' ). - ii_html->add( '' ). - - ii_html->add( render_table_row( - iv_name = 'Display Name' - iv_value = || - ) ). - - CLEAR lv_checked. - IF ls_settings-write_protected = abap_true. - IF zcl_abapgit_factory=>get_environment( )->is_repo_object_changes_allowed( ) = abap_true. - lv_checked = | checked|. - ELSE. - lv_checked = | checked disabled|. - ENDIF. - ENDIF. - ii_html->add( render_table_row( - iv_name = 'Write Protected' - iv_value = || - ) ). - - CLEAR lv_checked. - IF ls_settings-ignore_subpackages = abap_true. - lv_checked = | checked|. - ENDIF. - ii_html->add( render_table_row( - iv_name = 'Ignore Subpackages' - iv_value = || - ) ). - - CLEAR lv_checked. - IF ls_settings-only_local_objects = abap_true. - lv_checked = | checked|. - ENDIF. - ii_html->add( render_table_row( - iv_name = 'Only Local Objects' - iv_value = || - ) ). - - ii_html->add( render_table_row( - iv_name = 'Code Inspector Check Variant' - iv_value = || - ) ). - - CLEAR lv_checked. - IF ls_settings-block_commit = abap_true. - lv_checked = | checked|. - ENDIF. - ii_html->add( render_table_row( - iv_name = 'Block Commit If Code Inspection Has Errors' - iv_value = || - ) ). - - CLEAR lv_checked. - IF ls_settings-serialize_master_lang_only = abap_true. - lv_checked = | checked|. - ENDIF. - ii_html->add( render_table_row( - iv_name = 'Serialize Main Language Only' - iv_value = || - ) ). - - ii_html->add( '
' ). - - ENDMETHOD. - - - METHOD render_remotes. - - DATA lo_repo_online TYPE REF TO zcl_abapgit_repo_online. - - lo_repo_online ?= mo_repo. - - ii_html->add( '

Remotes

' ). - ii_html->add( '' ). - - " TODO maybe make it editable ? - ii_html->add( render_table_row( - iv_name = 'Current remote' - iv_value = |{ lo_repo_online->get_url( ) - } @{ lo_repo_online->get_selected_branch( ) }| ) ). - ii_html->add( render_table_row( - iv_name = 'Switched origin' - iv_value = || ) ). - - ii_html->add( '
' ). - - ENDMETHOD. - - - METHOD render_table_row. - - rv_html = '' - && |{ iv_name }| - && |{ iv_value }| - && ''. - - ENDMETHOD. - - - METHOD save. - - DATA: lt_post_fields TYPE tihttpnvp, - lv_msg TYPE string. - - lt_post_fields = zcl_abapgit_html_action_utils=>parse_post_form_data( it_postdata ). - - save_dot_abap( lt_post_fields ). - save_remotes( lt_post_fields ). - save_local_settings( lt_post_fields ). - - mo_repo->refresh( ). - - lv_msg = |{ mo_repo->get_name( ) }: settings saved successfully.|. - MESSAGE lv_msg TYPE 'S'. - - ENDMETHOD. - - - METHOD save_dot_abap. - - DATA: lo_dot TYPE REF TO zcl_abapgit_dot_abapgit, - ls_post_field LIKE LINE OF it_post_fields, - lv_ignore TYPE string, - lt_ignore TYPE STANDARD TABLE OF string WITH DEFAULT KEY, - lo_requirements TYPE REF TO lcl_requirements. - - lo_dot = mo_repo->get_dot_abapgit( ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'folder_logic'. - ASSERT sy-subrc = 0. - lo_dot->set_folder_logic( ls_post_field-value ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'starting_folder'. - ASSERT sy-subrc = 0. - lo_dot->set_starting_folder( ls_post_field-value ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'ignore_files'. - ASSERT sy-subrc = 0. - - " Remove everything - lt_ignore = lo_dot->get_data( )-ignore. - LOOP AT lt_ignore INTO lv_ignore. - lo_dot->remove_ignore( iv_path = '' - iv_filename = lv_ignore ). - ENDLOOP. - - " Add newly entered files - CLEAR lt_ignore. - REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>c_crlf IN ls_post_field-value - WITH zif_abapgit_definitions=>c_newline. - SPLIT ls_post_field-value AT zif_abapgit_definitions=>c_newline INTO TABLE lt_ignore. - DELETE lt_ignore WHERE table_line IS INITIAL. - LOOP AT lt_ignore INTO lv_ignore. - lo_dot->add_ignore( iv_path = '' - iv_filename = lv_ignore ). - ENDLOOP. - - lo_requirements = lcl_requirements=>new( ). - LOOP AT it_post_fields INTO ls_post_field WHERE name CP 'req_*'. - CASE ls_post_field-name+4(3). - WHEN 'com'. - lo_requirements->set_component( ls_post_field-value ). - WHEN 'rel'. - lo_requirements->set_min_release( ls_post_field-value ). - WHEN 'pat'. - lo_requirements->set_min_patch( ls_post_field-value ). - ENDCASE. - ENDLOOP. - - lo_dot->set_requirements( lo_requirements->get_as_table( ) ). - - mo_repo->set_dot_abapgit( lo_dot ). - - ENDMETHOD. - - - METHOD save_local_settings. - - DATA: ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings, - ls_post_field LIKE LINE OF it_post_fields, - lv_check_variant TYPE sci_chkv. - - - ls_settings = mo_repo->get_local_settings( ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'display_name'. - ASSERT sy-subrc = 0. - ls_settings-display_name = ls_post_field-value. - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'write_protected' value = 'on'. - ls_settings-write_protected = boolc( sy-subrc = 0 ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'ignore_subpackages' value = 'on'. - ls_settings-ignore_subpackages = boolc( sy-subrc = 0 ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'only_local_objects' value = 'on'. - ls_settings-only_local_objects = boolc( sy-subrc = 0 ). - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'check_variant'. - ASSERT sy-subrc = 0. - lv_check_variant = to_upper( ls_post_field-value ). - IF ls_post_field-value IS NOT INITIAL. - zcl_abapgit_code_inspector=>validate_check_variant( lv_check_variant ). - ENDIF. - ls_settings-code_inspector_check_variant = lv_check_variant. - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'block_commit' value = 'on'. - ls_settings-block_commit = boolc( sy-subrc = 0 ). - - IF ls_settings-block_commit = abap_true - AND ls_settings-code_inspector_check_variant IS INITIAL. - zcx_abapgit_exception=>raise( |If block commit is active, a check variant has to be maintained.| ). - ENDIF. - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'serialize_master_lang_only' value = 'on'. - ls_settings-serialize_master_lang_only = boolc( sy-subrc = 0 ). - - mo_repo->set_local_settings( ls_settings ). - - ENDMETHOD. - - - METHOD save_remotes. - - DATA ls_post_field LIKE LINE OF it_post_fields. - DATA lo_online_repo TYPE REF TO zcl_abapgit_repo_online. - - IF mo_repo->is_offline( ) = abap_true. - RETURN. - ENDIF. - - lo_online_repo ?= mo_repo. - - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'switched_origin'. - ASSERT sy-subrc = 0. - lo_online_repo->switch_origin( - iv_url = ls_post_field-value - iv_overwrite = abap_true ). - - ENDMETHOD. - - - METHOD zif_abapgit_gui_event_handler~on_event. - - CASE ii_event->mv_action. - WHEN c_action-save_settings. - save( ii_event->mt_postdata ). - rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back. - WHEN OTHERS. - rs_handled = super->zif_abapgit_gui_event_handler~on_event( ii_event ). - - ENDCASE. - - ENDMETHOD. -ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.locals_imp.abap b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.locals_imp.abap deleted file mode 100644 index 2286cbad7..000000000 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.locals_imp.abap +++ /dev/null @@ -1,73 +0,0 @@ -CLASS lcl_requirements DEFINITION CREATE PRIVATE. - - "This assumes grouping, any duplicate field will trigger a new record. - "Not perfect, but a little better than assuming a sequence - - PUBLIC SECTION. - CLASS-METHODS new - RETURNING VALUE(ro_result) TYPE REF TO lcl_requirements. - - METHODS set_component IMPORTING iv_component TYPE string. - METHODS set_min_release IMPORTING iv_min_release TYPE string. - METHODS set_min_patch IMPORTING iv_min_patch TYPE string. - - METHODS get_as_table - RETURNING VALUE(rt_requirements) TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - - PRIVATE SECTION. - DATA: ms_requirement TYPE zif_abapgit_dot_abapgit=>ty_requirement, - mt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - -ENDCLASS. - -CLASS lcl_requirements IMPLEMENTATION. - - METHOD new. - CREATE OBJECT ro_result. - ENDMETHOD. - - METHOD set_component. - - IF ms_requirement-component IS NOT INITIAL. - APPEND ms_requirement TO mt_requirements. - CLEAR ms_requirement. - ENDIF. - ms_requirement-component = iv_component. - - ENDMETHOD. - - METHOD set_min_patch. - - IF ms_requirement-min_patch IS NOT INITIAL. - APPEND ms_requirement TO mt_requirements. - CLEAR ms_requirement. - ENDIF. - ms_requirement-min_patch = iv_min_patch. - - ENDMETHOD. - - METHOD set_min_release. - - IF ms_requirement-min_release IS NOT INITIAL. - APPEND ms_requirement TO mt_requirements. - CLEAR ms_requirement. - ENDIF. - ms_requirement-min_release = iv_min_release. - - ENDMETHOD. - - METHOD get_as_table. - - IF ms_requirement IS NOT INITIAL. - APPEND ms_requirement TO mt_requirements. - ENDIF. - - SORT mt_requirements BY component min_release min_patch. - DELETE mt_requirements WHERE component IS INITIAL. - DELETE ADJACENT DUPLICATES FROM mt_requirements COMPARING ALL FIELDS. - - rt_requirements = mt_requirements. - - ENDMETHOD. - -ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.testclasses.abap b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.testclasses.abap deleted file mode 100644 index 23dab02f7..000000000 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.testclasses.abap +++ /dev/null @@ -1,71 +0,0 @@ -CLASS ltcl_requirements DEFINITION FINAL FOR TESTING - DURATION SHORT - RISK LEVEL HARMLESS. - - PRIVATE SECTION. - DATA mo_cut TYPE REF TO lcl_requirements. - - METHODS setup. - METHODS different_fields_are_one_group FOR TESTING RAISING cx_static_check. - METHODS repeat_field_adds_new_group FOR TESTING RAISING cx_static_check. - METHODS check_field_mapping FOR TESTING RAISING cx_static_check. - -ENDCLASS. - - -CLASS ltcl_requirements IMPLEMENTATION. - - METHOD setup. - mo_cut = lcl_requirements=>new( ). - ENDMETHOD. - - METHOD check_field_mapping. - - DATA ls_actual TYPE zif_abapgit_dot_abapgit=>ty_requirement. - DATA ls_expected TYPE zif_abapgit_dot_abapgit=>ty_requirement. - DATA lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - - mo_cut->set_component( '2' ). - mo_cut->set_min_release( '3' ). - mo_cut->set_min_patch( '4' ). - - lt_requirements = mo_cut->get_as_table( ). - READ TABLE lt_requirements INDEX 1 INTO ls_actual. - - ls_expected-component = '2'. - ls_expected-min_release = '3'. - ls_expected-min_patch = '4'. - - cl_abap_unit_assert=>assert_equals( act = ls_actual - exp = ls_expected ). - ENDMETHOD. - - METHOD different_fields_are_one_group. - - DATA lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - - mo_cut->set_component( '1' ). - mo_cut->set_min_release( '1' ). - mo_cut->set_min_patch( '1' ). - - lt_requirements = mo_cut->get_as_table( ). - - cl_abap_unit_assert=>assert_equals( act = lines( lt_requirements ) - exp = 1 ). - ENDMETHOD. - - METHOD repeat_field_adds_new_group. - - DATA lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. - - mo_cut->set_component( '1' ). - mo_cut->set_min_release( '1' ). - mo_cut->set_component( '1' ). - - lt_requirements = mo_cut->get_as_table( ). - - cl_abap_unit_assert=>assert_equals( act = lines( lt_requirements ) - exp = 2 ). - ENDMETHOD. - -ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.xml b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.xml deleted file mode 100644 index e35ade863..000000000 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCL_ABAPGIT_GUI_PAGE_REPO_SETT - E - GUI - Repo settings page - 1 - X - X - X - X - - - - diff --git a/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap index d7177b62a..e8c9f86cc 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap @@ -209,7 +209,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION. iv_val = lv_ignore ). LOOP AT ls_dot-requirements INTO ls_requirements. - lv_row = sy-tabix. + lv_row = lv_row + 1. DO 3 TIMES. CASE sy-index. WHEN 1. @@ -226,7 +226,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION. ENDLOOP. DO c_empty_rows TIMES. - lv_row = sy-index. + lv_row = lv_row + 1. DO 3 TIMES. mo_form_data->set( iv_key = |{ c_id-requirements }-{ lv_row }-{ sy-index }|