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( '' ).