diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap index 0af72d89d..20a6d8c4a 100644 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap @@ -14,7 +14,7 @@ CLASS zcl_abapgit_gui_page_repo_sett DEFINITION BEGIN OF c_action, save_settings TYPE string VALUE 'save_settings', END OF c_action . - DATA mo_repo TYPE REF TO zcl_abapgit_repo . + DATA mo_repo TYPE REF TO zcl_abapgit_repo. METHODS render_dot_abapgit IMPORTING @@ -91,15 +91,25 @@ CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. METHOD render_dot_abapgit. - DATA: ls_dot TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit, - lv_selected TYPE string, - lt_folder_logic TYPE stringtab. - - FIELD-SYMBOLS: TYPE LINE OF stringtab. + CONSTANTS: lc_requirement_edit_count TYPE i VALUE 5. + DATA: ls_dot TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit, + lv_selected TYPE string, + lt_folder_logic TYPE stringtab, + lv_req_index TYPE i, + lv_requirement_count TYPE i. + FIELD-SYMBOLS: TYPE LINE OF stringtab, + TYPE zif_abapgit_dot_abapgit=>ty_requirement. ls_dot = mo_repo->get_dot_abapgit( )->get_data( ). + lv_requirement_count = lines( ls_dot-requirements ). + IF lv_requirement_count < lc_requirement_edit_count. + DO - lv_requirement_count + lc_requirement_edit_count TIMES. + INSERT INITIAL LINE INTO TABLE ls_dot-requirements. + ENDDO. + ENDIF. + INSERT zif_abapgit_dot_abapgit=>c_folder_logic-full INTO TABLE lt_folder_logic. @@ -130,6 +140,25 @@ CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. ls_dot-starting_folder && '">' ). io_html->add( '
' ). + io_html->add( '

Requirements

' ). + io_html->add( '' ). + io_html->add( '' ). + + LOOP AT ls_dot-requirements ASSIGNING . + lv_req_index = sy-tabix. + + io_html->add( '' ). + io_html->add( || ). + io_html->add( || ). + io_html->add( || ). + io_html->add( '' ). + ENDLOOP. + + io_html->add( '
Software ComponentMin ReleaseMin Patch
' ). + ENDMETHOD. @@ -195,8 +224,10 @@ CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. METHOD save_dot_abap. - DATA: lo_dot TYPE REF TO zcl_abapgit_dot_abapgit, - ls_post_field LIKE LINE OF it_post_fields. + DATA: lo_dot TYPE REF TO zcl_abapgit_dot_abapgit, + ls_post_field LIKE LINE OF it_post_fields, + lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. + FIELD-SYMBOLS: TYPE zif_abapgit_dot_abapgit=>ty_requirement. lo_dot = mo_repo->get_dot_abapgit( ). @@ -209,6 +240,24 @@ CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. ASSERT sy-subrc = 0. lo_dot->set_starting_folder( ls_post_field-value ). + LOOP AT it_post_fields INTO ls_post_field WHERE name CP 'req_*'. + CASE ls_post_field-name+4(3). + WHEN 'com'. + INSERT INITIAL LINE INTO TABLE lt_requirements ASSIGNING . + -component = ls_post_field-value. + WHEN 'rel'. + -min_release = ls_post_field-value. + WHEN 'pat'. + -min_patch = ls_post_field-value. + ENDCASE. + ENDLOOP. + + SORT lt_requirements BY component min_release min_patch. + DELETE lt_requirements WHERE component IS INITIAL. + DELETE ADJACENT DUPLICATES FROM lt_requirements COMPARING ALL FIELDS. + + lo_dot->set_requirements( lt_requirements ). + mo_repo->set_dot_abapgit( lo_dot ). ENDMETHOD. @@ -278,6 +327,4 @@ CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION. ENDCASE. ENDMETHOD. - - ENDCLASS. diff --git a/src/zcl_abapgit_dot_abapgit.clas.abap b/src/zcl_abapgit_dot_abapgit.clas.abap index e2b2dfeaa..36b8f6287 100644 --- a/src/zcl_abapgit_dot_abapgit.clas.abap +++ b/src/zcl_abapgit_dot_abapgit.clas.abap @@ -65,6 +65,12 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION VALUE(rs_signature) TYPE zif_abapgit_definitions=>ty_file_signature RAISING zcx_abapgit_exception . + METHODS get_requirements + RETURNING + VALUE(rt_requirements) TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. + METHODS set_requirements + IMPORTING + it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt. PRIVATE SECTION. DATA: ms_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit. @@ -281,4 +287,11 @@ CLASS zcl_abapgit_dot_abapgit IMPLEMENTATION. ENDMETHOD. + METHOD get_requirements. + rt_requirements = ms_data-requirements. + ENDMETHOD. + + METHOD set_requirements. + ms_data-requirements = it_requirements. + ENDMETHOD. ENDCLASS.