mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
commit
22f9aa545b
|
@ -167,6 +167,7 @@ CONSTANTS: BEGIN OF gc_action,
|
|||
repo_remote_detach TYPE string VALUE 'repo_remote_detach',
|
||||
repo_remote_change TYPE string VALUE 'repo_remote_change',
|
||||
repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums',
|
||||
repo_toggle_fav TYPE string VALUE 'repo_toggle_fav',
|
||||
|
||||
abapgit_home TYPE string VALUE 'abapgit_home',
|
||||
abapgit_install TYPE string VALUE 'abapgit_install',
|
||||
|
|
|
@ -148,6 +148,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
WHEN gc_action-repo_refresh_checksums. " Rebuil local checksums
|
||||
lcl_services_repo=>refresh_local_checksums( lv_key ).
|
||||
ev_state = gc_event_state-re_render.
|
||||
WHEN gc_action-repo_toggle_fav. " Toggle repo as favorite
|
||||
lcl_services_repo=>toggle_favorite( lv_key ).
|
||||
ev_state = gc_event_state-re_render.
|
||||
|
||||
" ZIP services actions
|
||||
WHEN gc_action-zip_import. " Import repo from ZIP
|
||||
|
|
|
@ -204,6 +204,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
|||
iv_txt TYPE string
|
||||
io_sub TYPE REF TO lcl_html_toolbar OPTIONAL
|
||||
iv_act TYPE string OPTIONAL
|
||||
iv_ico TYPE string OPTIONAL
|
||||
iv_opt TYPE c OPTIONAL
|
||||
iv_typ TYPE c DEFAULT gc_action_type-sapevent,
|
||||
count
|
||||
|
@ -215,6 +216,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
|||
iv_vertical TYPE abap_bool OPTIONAL
|
||||
iv_sort TYPE abap_bool OPTIONAL
|
||||
iv_as_angle TYPE abap_bool OPTIONAL
|
||||
iv_with_icons TYPE abap_bool OPTIONAL
|
||||
RETURNING
|
||||
VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
|
@ -222,6 +224,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
|||
TYPES: BEGIN OF ty_item,
|
||||
txt TYPE string,
|
||||
act TYPE string,
|
||||
ico TYPE string,
|
||||
sub TYPE REF TO lcl_html_toolbar,
|
||||
opt TYPE char1,
|
||||
typ TYPE char1,
|
||||
|
@ -250,13 +253,14 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
|||
|
||||
ls_item-txt = iv_txt.
|
||||
ls_item-act = iv_act.
|
||||
ls_item-ico = iv_ico.
|
||||
ls_item-sub = io_sub.
|
||||
ls_item-opt = iv_opt.
|
||||
ls_item-typ = iv_typ.
|
||||
APPEND ls_item TO mt_items.
|
||||
ENDMETHOD. "add
|
||||
|
||||
METHOD render.
|
||||
METHOD render. "TODO refactor
|
||||
|
||||
DATA: lv_class TYPE string,
|
||||
lv_is_drop TYPE abap_bool,
|
||||
|
@ -309,11 +313,24 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
|||
AND iv_as_droplist_with_label IS INITIAL.
|
||||
lv_class = 'menu_end'.
|
||||
ENDIF.
|
||||
|
||||
IF iv_with_icons = abap_true.
|
||||
ro_html->add( '<table><tr>' ).
|
||||
ro_html->add( |<td class="icon">{ <ls_item>-ico }</td>| ).
|
||||
ro_html->add( '<td width="100%">' ).
|
||||
ENDIF.
|
||||
|
||||
ro_html->add_anchor( iv_txt = <ls_item>-txt
|
||||
iv_act = <ls_item>-act
|
||||
iv_opt = <ls_item>-opt
|
||||
iv_typ = <ls_item>-typ
|
||||
iv_class = lv_class ).
|
||||
|
||||
IF iv_with_icons = abap_true.
|
||||
ro_html->add( '</td>' ).
|
||||
ro_html->add( '</tr></table>' ).
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
ro_html->add( <ls_item>-sub->render(
|
||||
iv_as_droplist_with_label = <ls_item>-txt
|
||||
|
|
|
@ -109,6 +109,15 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
|||
|
||||
ro_html->add( '<td class="repo_attr right">' ).
|
||||
|
||||
IF abap_true = lcl_app=>user( )->is_favorite_repo( io_repo->get_key( ) ).
|
||||
lv_icon = 'img/star' ##NO_TEXT.
|
||||
ELSE.
|
||||
lv_icon = 'img/star-grey' ##NO_TEXT.
|
||||
ENDIF.
|
||||
lv_icon = |<img class="pad-sides" src="{ lv_icon }" title="Click to toggle favorite">|.
|
||||
ro_html->add_anchor( iv_act = |{ gc_action-repo_toggle_fav }?{ io_repo->get_key( ) }|
|
||||
iv_txt = lv_icon ).
|
||||
|
||||
IF lo_pback->exists( io_repo->get_key( ) ) = abap_true.
|
||||
ro_html->add( '<span class="bg_marker" title="background">BG</span>' ).
|
||||
ENDIF.
|
||||
|
@ -370,6 +379,7 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
|||
_add '.crossout { text-decoration: line-through !important; }'.
|
||||
_add '.right { text-align:right; }'.
|
||||
_add '.paddings { padding: 0.5em 0.5em; }'.
|
||||
_add '.pad-sides { padding: 0 0.3em; }'.
|
||||
|
||||
" Structure div styles: header, footer, toc
|
||||
_add '/* STRUCTURE DIVS, HEADER & FOOTER */'.
|
||||
|
@ -468,6 +478,17 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
|||
_add ' text-decoration: none;'.
|
||||
_add ' display: block;'.
|
||||
_add '}'.
|
||||
|
||||
_add '.dropdown_content td {'. " TODO refactor
|
||||
_add ' text-align: left;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content td a {'. " TODO refactor
|
||||
_add ' padding: 0em 0.2em;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content td.icon {'. " TODO refactor
|
||||
_add ' padding: 0 3px 0 6px;'.
|
||||
_add '}'.
|
||||
|
||||
_add '.dropdown_content a:hover { background-color: #f1f1f1 }'.
|
||||
_add '.dropdown:hover .dropdown_content { display: block; }'.
|
||||
_add '.dropdown:hover .dropbtn { color: #79a0d2; }'.
|
||||
|
|
|
@ -26,12 +26,7 @@ CLASS lcl_gui_page_main DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
|||
retrieve_active_repo
|
||||
RAISING lcx_exception,
|
||||
render_toc
|
||||
IMPORTING it_list TYPE lcl_repo_srv=>ty_repo_tt
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception,
|
||||
render_toc_line
|
||||
IMPORTING io_toolbar TYPE REF TO lcl_html_toolbar
|
||||
iv_image_url TYPE string
|
||||
IMPORTING it_repo_list TYPE lcl_repo_srv=>ty_repo_tt
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception,
|
||||
build_main_menu
|
||||
|
@ -194,81 +189,98 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
METHOD render_toc.
|
||||
|
||||
DATA: lo_pback TYPE REF TO lcl_persistence_background,
|
||||
lo_repo LIKE LINE OF it_list,
|
||||
lv_opt TYPE c LENGTH 1,
|
||||
lo_online TYPE REF TO lcl_html_toolbar,
|
||||
lo_offline TYPE REF TO lcl_html_toolbar,
|
||||
lv_opt TYPE char1,
|
||||
lv_key TYPE lcl_persistence_repo=>ty_repo-key,
|
||||
lv_icon TYPE string,
|
||||
lo_repo LIKE LINE OF it_repo_list,
|
||||
lo_favbar TYPE REF TO lcl_html_toolbar,
|
||||
lo_allbar TYPE REF TO lcl_html_toolbar,
|
||||
lt_favorites TYPE lcl_persistence_user=>tt_favorites,
|
||||
lv_repo_title TYPE string.
|
||||
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
CREATE OBJECT lo_online.
|
||||
CREATE OBJECT lo_offline.
|
||||
CREATE OBJECT lo_favbar.
|
||||
CREATE OBJECT lo_allbar.
|
||||
CREATE OBJECT lo_pback.
|
||||
|
||||
IF lines( it_list ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
lt_favorites = lcl_app=>user( )->get_favorites( ).
|
||||
|
||||
LOOP AT it_list INTO lo_repo.
|
||||
IF mv_show = lo_repo->get_key( ).
|
||||
LOOP AT it_repo_list INTO lo_repo.
|
||||
lv_key = lo_repo->get_key( ).
|
||||
IF lv_key = mv_show.
|
||||
lv_opt = gc_html_opt-emphas.
|
||||
ELSE.
|
||||
CLEAR lv_opt.
|
||||
ENDIF.
|
||||
|
||||
IF lo_repo->is_offline( ) = abap_true.
|
||||
lo_offline->add( iv_txt = lo_repo->get_name( )
|
||||
iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
|
||||
iv_opt = lv_opt ).
|
||||
ELSE.
|
||||
|
||||
lv_repo_title = lo_repo->get_name( ).
|
||||
IF lo_pback->exists( lo_repo->get_key( ) ) = abap_true.
|
||||
lv_repo_title = lv_repo_title && '<sup>bg</sup>'. " Background marker
|
||||
ENDIF.
|
||||
|
||||
lo_online->add( iv_txt = lv_repo_title
|
||||
iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
|
||||
iv_opt = lv_opt ).
|
||||
|
||||
lv_repo_title = lo_repo->get_name( ).
|
||||
IF lo_pback->exists( lv_key ) = abap_true.
|
||||
lv_repo_title = lv_repo_title && '<sup>bg</sup>'. " Background marker
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_favorites TRANSPORTING NO FIELDS
|
||||
WITH KEY table_line = lv_key.
|
||||
|
||||
IF sy-subrc = 0.
|
||||
DELETE lt_favorites INDEX sy-tabix. " for later cleanup
|
||||
lo_favbar->add( iv_txt = lv_repo_title
|
||||
iv_act = |{ c_actions-show }?{ lv_key }|
|
||||
iv_opt = lv_opt ).
|
||||
ENDIF.
|
||||
|
||||
IF lo_repo->is_offline( ) = abap_true.
|
||||
lv_icon = '<img src="img/repo_offline">'.
|
||||
ELSE.
|
||||
lv_icon = '<img src="img/repo_online">'.
|
||||
ENDIF.
|
||||
|
||||
lo_allbar->add( iv_txt = lv_repo_title
|
||||
iv_act = |{ c_actions-show }?{ lv_key }|
|
||||
iv_ico = lv_icon
|
||||
iv_opt = lv_opt ).
|
||||
ENDLOOP.
|
||||
|
||||
ro_html->add( '<div id="toc"><div class="toc_grid">' ) ##NO_TEXT.
|
||||
" Cleanup orphan favorites (for removed repos)
|
||||
LOOP AT lt_favorites INTO lv_key.
|
||||
lcl_app=>user( )->toggle_favorite( lv_key ).
|
||||
ENDLOOP.
|
||||
|
||||
IF lo_online->count( ) > 0.
|
||||
ro_html->add( render_toc_line( io_toolbar = lo_online
|
||||
iv_image_url = 'img/repo_online' ) ).
|
||||
" Render HTML
|
||||
ro_html->add( '<div id="toc">' ) ##NO_TEXT. " TODO refactor html & css
|
||||
ro_html->add( '<div class="toc_grid">' ) ##NO_TEXT.
|
||||
ro_html->add( '<div class="toc_row">' ) ##NO_TEXT.
|
||||
|
||||
**********************************************************************
|
||||
|
||||
ro_html->add( '<table width="100%"><tr>' ).
|
||||
ro_html->add( '<td class="pad-sides"><img src="img/star"></td>' ).
|
||||
|
||||
ro_html->add( '<td class="pad-sides" width="100%">' ). " Maximize width
|
||||
IF lo_favbar->count( ) > 0.
|
||||
ro_html->add( lo_favbar->render( iv_sort = abap_true ) ).
|
||||
ELSE.
|
||||
ro_html->add( '<span class="grey">No favorites found. Please'
|
||||
&& ' click <img src="img/star-grey"> icon repo toolbar to add'
|
||||
&& ' it as favourite. Choose a repo there →</span>' ).
|
||||
ENDIF.
|
||||
ro_html->add( '</td>' ).
|
||||
|
||||
IF lo_offline->count( ) > 0.
|
||||
ro_html->add( render_toc_line( io_toolbar = lo_offline
|
||||
iv_image_url = 'img/repo_offline' ) ).
|
||||
ENDIF.
|
||||
ro_html->add( '<td class="right">' ).
|
||||
ro_html->add( lo_allbar->render( iv_as_droplist_with_label = '<img src="img/burger">'
|
||||
iv_sort = abap_true
|
||||
iv_with_icons = abap_true ) ).
|
||||
ro_html->add( '</td>' ).
|
||||
ro_html->add( '</tr></table>' ).
|
||||
|
||||
ro_html->add( '</div></div>' ).
|
||||
**********************************************************************
|
||||
|
||||
ro_html->add( '</div>' ).
|
||||
ro_html->add( '</div>' ).
|
||||
ro_html->add( '</div>' ).
|
||||
|
||||
ENDMETHOD. "render_toc
|
||||
|
||||
METHOD render_toc_line.
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<div class="toc_row"><table><tr>' ).
|
||||
|
||||
ro_html->add( '<td>' ).
|
||||
ro_html->add( |<img src="{ iv_image_url }">| ).
|
||||
ro_html->add( '</td>' ).
|
||||
|
||||
ro_html->add( '<td>' ).
|
||||
ro_html->add( io_toolbar->render( iv_sort = abap_true ) ).
|
||||
ro_html->add( '</td>' ).
|
||||
|
||||
ro_html->add( '</tr></table></div>' ).
|
||||
|
||||
ENDMETHOD. "render_toc_line
|
||||
|
||||
METHOD render_explore.
|
||||
|
||||
DATA lo_toolbar TYPE REF TO lcl_html_toolbar.
|
||||
|
@ -430,34 +442,12 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
|
||||
ls_image-url = 'img/repo_offline' ##NO_TEXT.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBB'
|
||||
&& 'ZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/'
|
||||
&& 'eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+'
|
||||
&& 'IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2Jl'
|
||||
&& 'IFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAg'
|
||||
&& 'ICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5'
|
||||
&& 'LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9'
|
||||
&& 'IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHht'
|
||||
&& 'bG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3Vy'
|
||||
&& 'Y2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHht'
|
||||
&& 'cE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkOTZmYmU4Yi0yMjEzLTZlNDct'
|
||||
&& 'ODZiZC05NGE1ZTM1ZmJiMzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQ2RTFD'
|
||||
&& 'MTA0OTkwMTFFNjlCMzk5MTg2OTAzMDVDRDIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5p'
|
||||
&& 'aWQ6NDQ2RTFDMEY0OTkwMTFFNjlCMzk5MTg2OTAzMDVDRDIiIHhtcDpDcmVhdG9yVG9v'
|
||||
&& 'bD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVy'
|
||||
&& 'aXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpkOTZmYmU4Yi0yMjEzLTZl'
|
||||
&& 'NDctODZiZC05NGE1ZTM1ZmJiMzUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ZDk2'
|
||||
&& 'ZmJlOGItMjIxMy02ZTQ3LTg2YmQtOTRhNWUzNWZiYjM1Ii8+IDwvcmRmOkRlc2NyaXB0'
|
||||
&& 'aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SXqL'
|
||||
&& 'ugAAAWVJREFUeNrEk7tKxEAYheeSm0RXUNBaEcTOB7CxsrBXwWIbEQuLiGAnhtQW6XwK'
|
||||
&& 'O1/CN/ARBLuwmrC5jOfEGVhFIbCFP3z7zyY7J+f8s5HGGDFPKTFnSbfIskwopTbDMFzW'
|
||||
&& 'Wi/hUg3e4bCWUmqsV8EE6xdeT5Kk3+c5ga7rbtDS6XTaosf2smFhE3Mq3/ffwCXWj3me'
|
||||
&& 'G4r0EdI0HaHd4smR53kxnEiC4ofG2ouiiALr+N0dWPs5gyOwyEhwIJumEXVdC3Y4E+67'
|
||||
&& 'HfgOOHARnMDYxvhzWE4MpSG0iwh9fAX7W+h7NrCAZYEoIgiCHtg2iCUI73EmZVmeF0Wx'
|
||||
&& '7RyMZwb5DSvIefCERNu2oqoqRoxx78SdwjM4BQFngI2EwtIOcIF86XcfBJsnPFIncAgu'
|
||||
&& 'fstNB3wqcaOwROAePCl7AkPrGGzQjdvnWSsrAwX27X9AzUa4Ag9gNEDgzPZXcN2/C//+'
|
||||
&& 'Nn4KMABcS6Z2qzb7wwAAAABJRU5ErkJggg=='.
|
||||
|
||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEUAAACAgICAgICA'
|
||||
&& 'gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA'
|
||||
&& 'gICAgICAgICAgICAgICAgICAgICAgICuaWnmAAAAG3RSTlMAAgQFBgsQFxweIiMtN3yI'
|
||||
&& 'nqOvt9Hp6/Hz9fktMNR/AAAAXElEQVQYV5WO2xJAMAxES1q3ugfF/v9/0qLyyL4k58xk'
|
||||
&& 'J0p9D7N5oeqZgSwy7fDZnHNdEE1gWK116tksl7hPimGFFPWYl7MU0zksRCl8TStKg1AJ'
|
||||
&& '0XNC8Zm4/c0BUVQHi0llOUYAAAAASUVORK5CYII='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ls_image-url = 'img/pkg' ##NO_TEXT.
|
||||
|
@ -535,6 +525,38 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
&& 'VAFeBlYOTiTAzoThewD5hBAcnWM4gwAAAABJRU5ErkJggg=='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ls_image-url = 'img/burger' ##NO_TEXT.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAHlBMVEUAAABtktltktlt'
|
||||
&& 'ktltktltktltktltktltktltktk7ccVDAAAACXRSTlMAFDBLY2SFoPGv/DFMAAAAJ0lE'
|
||||
&& 'QVQIW2NggIHKmWAwmaETwpjGoBoKBo4MmIAkxXApuGK4dgwAAJa5IzLs+gRBAAAAAElF'
|
||||
&& 'TkSuQmCC'.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ls_image-url = 'img/star' ##NO_TEXT.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAilBMVEUAAABejclejcle'
|
||||
&& 'jclejclejclejclejclejclejclejclejclejclejclejclejclejclejclejclejcle'
|
||||
&& 'jclejclejclejclejclejclejclejclejclejclejclejclejclejclejclejclejcle'
|
||||
&& 'jclejclejclejclejclejclejclejclejcn2yvsVAAAALXRSTlMAAQIFBwkKCw0QERUY'
|
||||
&& 'HB4jLzEzNjg7PVdYYmRvd3mDm52eub7R0+Tr8fX3+/16wo8zAAAAcElEQVQYGW3BBxKC'
|
||||
&& 'MABFwYcQETv2hg1UVP79ryeTZBxw3MWL+JGltBgVtGRSSoORVOAE8Xi5zVU7rWfDCOaV'
|
||||
&& 'Gu59mLz0dTPUBg95eYjVK2VdOzjBW9YZL5FT4i2k5+YoKcY5VPsQkoumOLsu1mjFHx8o'
|
||||
&& 'ahA3YV7OfwAAAABJRU5ErkJggg=='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ls_image-url = 'img/star-grey' ##NO_TEXT.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAilBMVEUAAADQ0NDQ0NDQ'
|
||||
&& '0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ'
|
||||
&& '0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ'
|
||||
&& '0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NC2QdifAAAALXRSTlMAAQIFBwkKCw0QERUY'
|
||||
&& 'HB4jLzEzNjg7PVdYYmRvd3mDm52eub7R0+Tr8fX3+/16wo8zAAAAcElEQVQYGW3BBxKC'
|
||||
&& 'MABFwYcQETv2hg1UVP79ryeTZBxw3MWL+JGltBgVtGRSSoORVOAE8Xi5zVU7rWfDCOaV'
|
||||
&& 'Gu59mLz0dTPUBg95eYjVK2VdOzjBW9YZL5FT4i2k5+YoKcY5VPsQkoumOLsu1mjFHx8o'
|
||||
&& 'ahA3YV7OfwAAAABJRU5ErkJggg=='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ENDMETHOD. "get_assets
|
||||
|
||||
ENDCLASS.
|
|
@ -114,6 +114,7 @@ CLASS lcl_persistence_repo DEFINITION FINAL.
|
|||
INCLUDE TYPE ty_repo_xml.
|
||||
TYPES: END OF ty_repo.
|
||||
TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY.
|
||||
TYPES: tt_repo_keys TYPE STANDARD TABLE OF ty_repo-key WITH DEFAULT KEY.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
|
@ -359,6 +360,8 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES: tt_favorites TYPE lcl_persistence_repo=>tt_repo_keys.
|
||||
|
||||
METHODS set_username
|
||||
IMPORTING iv_username TYPE string
|
||||
RAISING lcx_exception.
|
||||
|
@ -419,6 +422,19 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
|||
RETURNING VALUE(rv_changes_only) TYPE abap_bool
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS get_favorites
|
||||
RETURNING VALUE(rt_favorites) TYPE tt_favorites
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS toggle_favorite
|
||||
IMPORTING iv_repo_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS is_favorite_repo
|
||||
IMPORTING iv_repo_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RETURNING VALUE(rv_yes) TYPE abap_bool
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'.
|
||||
|
||||
|
@ -438,6 +454,7 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
|||
repo_config TYPE ty_repo_config_tt,
|
||||
hide_files TYPE abap_bool,
|
||||
changes_only TYPE abap_bool,
|
||||
favorites TYPE tt_favorites,
|
||||
END OF ty_user.
|
||||
|
||||
METHODS constructor
|
||||
|
@ -525,7 +542,7 @@ CLASS lcl_persistence_user IMPLEMENTATION.
|
|||
ls_user-repo_show = iv_key.
|
||||
update( ls_user ).
|
||||
|
||||
COMMIT WORK.
|
||||
COMMIT WORK AND WAIT.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -681,9 +698,51 @@ CLASS lcl_persistence_user IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "get_changes_only
|
||||
|
||||
METHOD get_favorites.
|
||||
|
||||
rt_favorites = read( )-favorites.
|
||||
|
||||
ENDMETHOD. "get_favorites
|
||||
|
||||
METHOD toggle_favorite.
|
||||
|
||||
DATA: ls_user TYPE ty_user.
|
||||
|
||||
ls_user = read( ).
|
||||
|
||||
READ TABLE ls_user-favorites TRANSPORTING NO FIELDS
|
||||
WITH KEY table_line = iv_repo_key.
|
||||
|
||||
IF sy-subrc = 0.
|
||||
DELETE ls_user-favorites INDEX sy-tabix.
|
||||
ELSE.
|
||||
APPEND iv_repo_key TO ls_user-favorites.
|
||||
ENDIF.
|
||||
|
||||
update( ls_user ).
|
||||
|
||||
ENDMETHOD. " toggle_favorite.
|
||||
|
||||
METHOD is_favorite_repo.
|
||||
|
||||
DATA: lt_favorites TYPE tt_favorites.
|
||||
|
||||
lt_favorites = get_favorites( ).
|
||||
|
||||
READ TABLE lt_favorites TRANSPORTING NO FIELDS
|
||||
WITH KEY table_line = iv_repo_key.
|
||||
|
||||
rv_yes = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. " is_favorite_repo.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_persistence_db
|
||||
*----------------------------------------------------------------------*
|
||||
|
||||
CLASS lcl_persistence_db IMPLEMENTATION.
|
||||
|
||||
METHOD list_by_type.
|
||||
|
@ -800,6 +859,11 @@ CLASS lcl_persistence_db IMPLEMENTATION.
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_persistence_repo
|
||||
*----------------------------------------------------------------------*
|
||||
|
||||
CLASS lcl_persistence_repo IMPLEMENTATION.
|
||||
|
||||
METHOD add.
|
||||
|
|
|
@ -39,6 +39,10 @@ CLASS lcl_services_repo DEFINITION FINAL.
|
|||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RAISING lcx_exception lcx_cancel.
|
||||
|
||||
CLASS-METHODS toggle_favorite
|
||||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS. "lcl_services_repo
|
||||
|
||||
CLASS lcl_services_repo IMPLEMENTATION.
|
||||
|
@ -62,6 +66,7 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
|||
lo_repo->deserialize( ).
|
||||
|
||||
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
||||
toggle_favorite( lo_repo->get_key( ) ).
|
||||
|
||||
COMMIT WORK.
|
||||
|
||||
|
@ -170,6 +175,7 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
|||
iv_package = ls_popup-package ).
|
||||
|
||||
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
||||
toggle_favorite( lo_repo->get_key( ) ).
|
||||
|
||||
COMMIT WORK.
|
||||
|
||||
|
@ -282,4 +288,10 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "refresh_local_checksums
|
||||
|
||||
METHOD toggle_favorite.
|
||||
|
||||
lcl_app=>user( )->toggle_favorite( iv_key ).
|
||||
|
||||
ENDMETHOD. " toggle_favorite.
|
||||
|
||||
ENDCLASS. "lcl_services_repo
|
Loading…
Reference in New Issue
Block a user