diff --git a/src/zabapgit_page.prog.abap b/src/zabapgit_page.prog.abap index c181240e3..7e4cdc19e 100644 --- a/src/zabapgit_page.prog.abap +++ b/src/zabapgit_page.prog.abap @@ -73,10 +73,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. @@ -98,6 +100,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. @@ -438,6 +444,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 9bf847163..075ee918f 100644 --- a/src/zabapgit_page_main.prog.abap +++ b/src/zabapgit_page_main.prog.abap @@ -220,20 +220,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. @@ -251,17 +248,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. @@ -278,11 +274,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.