diff --git a/src/zabapgit_page.prog.abap b/src/zabapgit_page.prog.abap
index 62e2ee456..657d659ee 100644
--- a/src/zabapgit_page.prog.abap
+++ b/src/zabapgit_page.prog.abap
@@ -77,10 +77,12 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
METHOD render_repo_top.
DATA: lo_repo_online TYPE REF TO lcl_repo_online,
+ lo_pback TYPE REF TO lcl_persistence_background,
lv_icon TYPE string.
CREATE OBJECT ro_html.
+ CREATE OBJECT lo_pback.
IF io_repo->is_offline( ) = abap_true.
lv_icon = 'img/repo_offline' ##NO_TEXT.
@@ -102,6 +104,10 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
ro_html->add( '
' ).
+ IF lo_pback->exists( io_repo->get_key( ) ) = abap_true.
+ ro_html->add( 'BG' ).
+ ENDIF.
+
IF io_repo->is_write_protected( ) = abap_true.
ro_html->add( ' ' ).
ENDIF.
@@ -452,6 +458,14 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
_add ' margin-left: 0.2em;'.
_add ' margin-right: 0.5em;'.
_add '}'.
+ _add '.repo_attr span.bg_marker {'.
+ _add ' border: 1px solid #d2d2d2;'.
+ _add ' border-radius: 3px;'.
+ _add ' background: #d8d8d8;'.
+ _add ' color: #fff;'.
+ _add ' font-size: 8pt;'.
+ _add ' padding: 4px 2px 3px 2px;'.
+ _add '}'.
" Branch tag design
_add '.repo_attr span.branch {'.
diff --git a/src/zabapgit_page_main.prog.abap b/src/zabapgit_page_main.prog.abap
index 5eaeb18e4..0c090081f 100644
--- a/src/zabapgit_page_main.prog.abap
+++ b/src/zabapgit_page_main.prog.abap
@@ -180,20 +180,17 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
METHOD render_toc.
DATA: lo_pback TYPE REF TO lcl_persistence_background,
- lt_repo_bkg TYPE lcl_persistence_background=>tt_background,
lo_repo LIKE LINE OF it_list,
lv_opt TYPE c LENGTH 1,
lo_online TYPE REF TO lcl_html_toolbar,
- lo_background TYPE REF TO lcl_html_toolbar,
- lo_offline TYPE REF TO lcl_html_toolbar.
+ lo_offline TYPE REF TO lcl_html_toolbar,
+ lv_repo_title TYPE string.
CREATE OBJECT ro_html.
CREATE OBJECT lo_online.
CREATE OBJECT lo_offline.
- CREATE OBJECT lo_background.
CREATE OBJECT lo_pback.
- lt_repo_bkg = lo_pback->list( ).
IF lines( it_list ) = 0.
RETURN.
@@ -211,17 +208,16 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
iv_opt = lv_opt ).
ELSE.
- READ TABLE lt_repo_bkg WITH KEY key = lo_repo->get_key( )
- TRANSPORTING NO FIELDS.
- IF sy-subrc = 0.
- lo_background->add( iv_txt = lo_repo->get_name( )
- iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
- iv_opt = lv_opt ).
- ELSE.
- lo_online->add( iv_txt = lo_repo->get_name( )
- iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
- iv_opt = lv_opt ).
+
+ lv_repo_title = lo_repo->get_name( ).
+ IF lo_pback->exists( lo_repo->get_key( ) ) = abap_true.
+ lv_repo_title = lv_repo_title && 'bg'. " Background marker
ENDIF.
+
+ lo_online->add( iv_txt = lv_repo_title
+ iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
+ iv_opt = lv_opt ).
+
ENDIF.
ENDLOOP.
@@ -238,11 +234,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
iv_image_url = 'img/repo_offline' ) ).
ENDIF.
- IF lo_background->count( ) > 0.
- ro_html->add( render_toc_line( io_toolbar = lo_background
- iv_image_url = 'img/sync' ) ).
- ENDIF.
-
ro_html->add( '' ).
ENDMETHOD. "render_toc
diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap
index fe8f5a88a..159618316 100644
--- a/src/zabapgit_persistence.prog.abap
+++ b/src/zabapgit_persistence.prog.abap
@@ -239,10 +239,16 @@ CLASS lcl_persistence_background DEFINITION FINAL.
IMPORTING iv_key TYPE ty_background-key
RAISING lcx_exception.
+ METHODS exists
+ IMPORTING iv_key TYPE ty_background-key
+ RETURNING VALUE(rv_yes) TYPE abap_bool
+ RAISING lcx_exception.
+
PRIVATE SECTION.
CONSTANTS c_type TYPE lcl_persistence_db=>ty_type VALUE 'BACKGROUND'.
- DATA: mo_db TYPE REF TO lcl_persistence_db.
+ DATA: mo_db TYPE REF TO lcl_persistence_db,
+ mt_jobs TYPE tt_background.
METHODS from_xml
IMPORTING iv_string TYPE string
@@ -269,6 +275,11 @@ CLASS lcl_persistence_background IMPLEMENTATION.
FIELD-SYMBOLS: LIKE LINE OF lt_list,
LIKE LINE OF rt_list.
+ IF lines( mt_jobs ) > 0.
+ rt_list = mt_jobs.
+ RETURN.
+ ENDIF.
+
lt_list = mo_db->list_by_type( c_type ).
@@ -280,8 +291,18 @@ CLASS lcl_persistence_background IMPLEMENTATION.
-key = -value.
ENDLOOP.
+ mt_jobs = rt_list.
+
ENDMETHOD.
+ METHOD exists.
+
+ list( ). " Ensure mt_jobs is populated
+ READ TABLE mt_jobs WITH KEY key = iv_key TRANSPORTING NO FIELDS.
+ rv_yes = boolc( sy-subrc = 0 ).
+
+ ENDMETHOD. "exists
+
METHOD modify.
ASSERT NOT is_data-key IS INITIAL.
@@ -291,6 +312,9 @@ CLASS lcl_persistence_background IMPLEMENTATION.
iv_value = is_data-key
iv_data = to_xml( is_data ) ).
+ DELETE mt_jobs WHERE key = is_data-key.
+ APPEND is_data TO mt_jobs.
+
ENDMETHOD.
METHOD delete.
@@ -305,6 +329,8 @@ CLASS lcl_persistence_background IMPLEMENTATION.
mo_db->delete( iv_type = c_type
iv_value = iv_key ).
+ DELETE mt_jobs WHERE key = iv_key.
+
ENDMETHOD.
METHOD from_xml.
|