diff --git a/src/zabapgit_page_settings.prog.abap b/src/zabapgit_page_settings.prog.abap index fecba3154..fc286de70 100644 --- a/src/zabapgit_page_settings.prog.abap +++ b/src/zabapgit_page_settings.prog.abap @@ -30,6 +30,8 @@ CLASS lcl_gui_page_settings DEFINITION FINAL INHERITING FROM lcl_gui_page. RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS render_form_end RETURNING VALUE(ro_html) TYPE REF TO lcl_html. + METHODS render_max_lines + RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS build_settings IMPORTING it_post_fields TYPE tihttpnvp. @@ -63,6 +65,8 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ro_html->add( render_proxy( ) ). ro_html->add( |
| ). ro_html->add( render_development_internals( ) ). + ro_html->add( |
| ). + ro_html->add( render_max_lines( ) ). ro_html->add( render_form_end( ) ). ENDMETHOD. "render_content @@ -110,7 +114,8 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. METHOD build_settings. - DATA ls_post_field TYPE ihttpnvp. + DATA: ls_post_field TYPE ihttpnvp, + lv_max_lines_as_integer TYPE i. CREATE OBJECT mo_settings. READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'proxy_url'. @@ -132,6 +137,14 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. mo_settings->set_run_critical_tests( abap_false ). ENDIF. + READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'max_lines'. + IF sy-subrc = 0. + lv_max_lines_as_integer = ls_post_field-value. + mo_settings->set_max_lines( lv_max_lines_as_integer ). + ELSE. + mo_settings->set_max_lines( 0 ). + ENDIF. + ENDMETHOD. @@ -209,4 +222,15 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ENDMETHOD. + METHOD render_max_lines. + CREATE OBJECT ro_html. + + ro_html->add( |

List size

| ). + ro_html->add( || ). + ro_html->add( |
| ). + ro_html->add( `` ). + ro_html->add( |
| ). + ro_html->add( |
| ). + ENDMETHOD. + ENDCLASS. \ No newline at end of file diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index af4d6a437..7c0190ccc 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -1459,11 +1459,17 @@ CLASS lcl_settings DEFINITION FINAL. METHODS get_run_critical_tests RETURNING VALUE(rv_run) TYPE abap_bool. + METHODS set_max_lines + IMPORTING iv_lines TYPE i. + METHODS get_max_lines + RETURNING + VALUE(rv_lines) TYPE i. PRIVATE SECTION. DATA mv_proxy_url TYPE string. DATA mv_proxy_port TYPE string. DATA mv_run_critical_tests TYPE abap_bool. + DATA mv_lines TYPE i. ENDCLASS. @@ -1494,6 +1500,14 @@ CLASS lcl_settings IMPLEMENTATION. rv_run = mv_run_critical_tests. ENDMETHOD. + METHOD get_max_lines. + rv_lines = mv_lines. + ENDMETHOD. + + METHOD set_max_lines. + mv_lines = iv_lines. + ENDMETHOD. + ENDCLASS. @@ -1529,12 +1543,20 @@ CLASS lcl_persistence_settings IMPLEMENTATION. iv_type = 'SETTINGS' iv_value = 'CRIT_TESTS' iv_data = io_settings->get_run_critical_tests( ) ). + + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'MAX_LINES' + iv_data = |{ io_settings->get_max_lines( ) }| ). + ENDMETHOD. METHOD read. DATA: lv_critical_tests_as_string TYPE string, - lv_critical_tests_as_boolean TYPE abap_bool. + lv_critical_tests_as_boolean TYPE abap_bool, + lv_max_lines_as_string TYPE string, + lv_max_lines_as_integer TYPE i. CREATE OBJECT ro_settings. TRY. @@ -1562,6 +1584,15 @@ CLASS lcl_persistence_settings IMPLEMENTATION. CATCH lcx_not_found. ro_settings->set_run_critical_tests( abap_false ). ENDTRY. + TRY. + lv_max_lines_as_string = lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'MAX_LINES' ). + lv_max_lines_as_integer = lv_max_lines_as_string. + ro_settings->set_max_lines( lv_max_lines_as_integer ). + CATCH lcx_not_found. + ro_settings->set_max_lines( 0 ). + ENDTRY. ENDMETHOD. ENDCLASS. \ No newline at end of file diff --git a/src/zabapgit_view_repo.prog.abap b/src/zabapgit_view_repo.prog.abap index 5c9cd9b74..503cbcee9 100644 --- a/src/zabapgit_view_repo.prog.abap +++ b/src/zabapgit_view_repo.prog.abap @@ -111,10 +111,15 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION. lv_lstate TYPE char1, lv_rstate TYPE char1, lv_max TYPE abap_bool, - lo_log TYPE REF TO lcl_log. + lo_log TYPE REF TO lcl_log, + lo_settings TYPE REF TO lcl_settings, + lv_max_lines TYPE i. FIELD-SYMBOLS LIKE LINE OF lt_repo_items. + " Read global settings to get max # of objects to be listed + lo_settings = lcl_app=>settings( )->read( ). + lv_max_lines = lo_settings->get_max_lines( ). " Reinit, for the case of type change mo_repo = lcl_app=>repo_srv( )->get( mo_repo->get_key( ) ). @@ -160,7 +165,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION. ro_html->add( render_empty_package( ) ). ELSE. LOOP AT lt_repo_items ASSIGNING . - IF sy-tabix > 500. + IF lv_max_lines > 0 AND sy-tabix > lv_max_lines. lv_max = abap_true. EXIT. " current loop ENDIF. @@ -171,7 +176,11 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION. ro_html->add( '' ). IF lv_max = abap_true. - ro_html->add( 'Only first 500 objects shown in list' ). + IF lv_max_lines = 1. + ro_html->add( |Only 1 object shown in list (Set in Advanced > Settings )| ). + ELSE. + ro_html->add( |Only first { lv_max_lines } objects shown in list (Set in Advanced > Settings )| ). + ENDIF. ENDIF. ro_html->add( '' ).