mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Merge remote-tracking branch 'refs/remotes/larshp/master'
This commit is contained in:
commit
5c3c9a0314
|
@ -8,9 +8,11 @@ Legend
|
||||||
+ : added
|
+ : added
|
||||||
- : removed
|
- : removed
|
||||||
|
|
||||||
2016-11-??
|
2016-11-22
|
||||||
------------------
|
------------------
|
||||||
+ supported object list @debugpage
|
+ supported object list @debugpage
|
||||||
|
+ New favorites bar. All repos are displayed in dropdown burger-button. A repo can be "starred" to appear in favbar.
|
||||||
|
! W3xx serialization change (v2.0.0). Now data file is stored as a separate file instead of base64 field in XML.
|
||||||
* Fixed bug in diff page: change counters values
|
* Fixed bug in diff page: change counters values
|
||||||
|
|
||||||
2016-11-12
|
2016-11-12
|
||||||
|
|
|
@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
|
||||||
* See http://www.abapgit.org
|
* See http://www.abapgit.org
|
||||||
|
|
||||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||||
gc_abap_version TYPE string VALUE 'v1.21.8'. "#EC NOTEXT
|
gc_abap_version TYPE string VALUE 'v1.23.0'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
|
|
@ -167,6 +167,7 @@ CONSTANTS: BEGIN OF gc_action,
|
||||||
repo_remote_detach TYPE string VALUE 'repo_remote_detach',
|
repo_remote_detach TYPE string VALUE 'repo_remote_detach',
|
||||||
repo_remote_change TYPE string VALUE 'repo_remote_change',
|
repo_remote_change TYPE string VALUE 'repo_remote_change',
|
||||||
repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums',
|
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_home TYPE string VALUE 'abapgit_home',
|
||||||
abapgit_install TYPE string VALUE 'abapgit_install',
|
abapgit_install TYPE string VALUE 'abapgit_install',
|
||||||
|
|
|
@ -35,9 +35,12 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
|
||||||
* set_starting_folder
|
* set_starting_folder
|
||||||
* IMPORTING iv_path TYPE string,
|
* IMPORTING iv_path TYPE string,
|
||||||
get_master_language
|
get_master_language
|
||||||
RETURNING VALUE(rv_language) TYPE spras.
|
RETURNING VALUE(rv_language) TYPE spras,
|
||||||
* set_master_language
|
* set_master_language
|
||||||
* IMPORTING iv_language TYPE spras.
|
* IMPORTING iv_language TYPE spras.
|
||||||
|
get_signature
|
||||||
|
RETURNING VALUE(rs_signature) TYPE ty_file_signature
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES: BEGIN OF ty_dot_abapgit,
|
TYPES: BEGIN OF ty_dot_abapgit,
|
||||||
|
@ -207,4 +210,13 @@ CLASS lcl_dot_abapgit IMPLEMENTATION.
|
||||||
* ms_data-master_language = iv_language.
|
* ms_data-master_language = iv_language.
|
||||||
* ENDMETHOD.
|
* ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_signature.
|
||||||
|
|
||||||
|
rs_signature-path = gc_root_dir.
|
||||||
|
rs_signature-filename = gc_dot_abapgit.
|
||||||
|
rs_signature-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob
|
||||||
|
iv_data = serialize( ) ).
|
||||||
|
|
||||||
|
ENDMETHOD. "get_signature
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
|
@ -148,6 +148,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
||||||
WHEN gc_action-repo_refresh_checksums. " Rebuil local checksums
|
WHEN gc_action-repo_refresh_checksums. " Rebuil local checksums
|
||||||
lcl_services_repo=>refresh_local_checksums( lv_key ).
|
lcl_services_repo=>refresh_local_checksums( lv_key ).
|
||||||
ev_state = gc_event_state-re_render.
|
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
|
" ZIP services actions
|
||||||
WHEN gc_action-zip_import. " Import repo from ZIP
|
WHEN gc_action-zip_import. " Import repo from ZIP
|
||||||
|
|
|
@ -204,6 +204,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
||||||
iv_txt TYPE string
|
iv_txt TYPE string
|
||||||
io_sub TYPE REF TO lcl_html_toolbar OPTIONAL
|
io_sub TYPE REF TO lcl_html_toolbar OPTIONAL
|
||||||
iv_act TYPE string OPTIONAL
|
iv_act TYPE string OPTIONAL
|
||||||
|
iv_ico TYPE string OPTIONAL
|
||||||
iv_opt TYPE c OPTIONAL
|
iv_opt TYPE c OPTIONAL
|
||||||
iv_typ TYPE c DEFAULT gc_action_type-sapevent,
|
iv_typ TYPE c DEFAULT gc_action_type-sapevent,
|
||||||
count
|
count
|
||||||
|
@ -215,6 +216,8 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
||||||
iv_vertical TYPE abap_bool OPTIONAL
|
iv_vertical TYPE abap_bool OPTIONAL
|
||||||
iv_sort TYPE abap_bool OPTIONAL
|
iv_sort TYPE abap_bool OPTIONAL
|
||||||
iv_as_angle TYPE abap_bool OPTIONAL
|
iv_as_angle TYPE abap_bool OPTIONAL
|
||||||
|
iv_with_icons TYPE abap_bool OPTIONAL
|
||||||
|
iv_add_minizone TYPE abap_bool OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||||
|
|
||||||
|
@ -222,6 +225,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
|
||||||
TYPES: BEGIN OF ty_item,
|
TYPES: BEGIN OF ty_item,
|
||||||
txt TYPE string,
|
txt TYPE string,
|
||||||
act TYPE string,
|
act TYPE string,
|
||||||
|
ico TYPE string,
|
||||||
sub TYPE REF TO lcl_html_toolbar,
|
sub TYPE REF TO lcl_html_toolbar,
|
||||||
opt TYPE char1,
|
opt TYPE char1,
|
||||||
typ TYPE char1,
|
typ TYPE char1,
|
||||||
|
@ -250,13 +254,14 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
||||||
|
|
||||||
ls_item-txt = iv_txt.
|
ls_item-txt = iv_txt.
|
||||||
ls_item-act = iv_act.
|
ls_item-act = iv_act.
|
||||||
|
ls_item-ico = iv_ico.
|
||||||
ls_item-sub = io_sub.
|
ls_item-sub = io_sub.
|
||||||
ls_item-opt = iv_opt.
|
ls_item-opt = iv_opt.
|
||||||
ls_item-typ = iv_typ.
|
ls_item-typ = iv_typ.
|
||||||
APPEND ls_item TO mt_items.
|
APPEND ls_item TO mt_items.
|
||||||
ENDMETHOD. "add
|
ENDMETHOD. "add
|
||||||
|
|
||||||
METHOD render.
|
METHOD render. "TODO refactor
|
||||||
|
|
||||||
DATA: lv_class TYPE string,
|
DATA: lv_class TYPE string,
|
||||||
lv_is_drop TYPE abap_bool,
|
lv_is_drop TYPE abap_bool,
|
||||||
|
@ -292,13 +297,23 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ro_html->add( |<a class="{ lv_class }">{ iv_as_droplist_with_label }</a>| ).
|
ro_html->add( |<a class="{ lv_class }">{ iv_as_droplist_with_label }</a>| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF iv_add_minizone = abap_true.
|
||||||
|
ro_html->add( '<div class="minizone"></div>' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ro_html->add( '<div class="dropdown_content">' ).
|
ro_html->add( '<div class="dropdown_content">' ).
|
||||||
|
ro_html->add( '<div class="box">' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_sort = abap_true.
|
IF iv_sort = abap_true.
|
||||||
SORT mt_items BY txt ASCENDING AS TEXT.
|
SORT mt_items BY txt ASCENDING AS TEXT.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF iv_with_icons = abap_true.
|
||||||
|
ro_html->add( '<table>' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT mt_items ASSIGNING <ls_item>.
|
LOOP AT mt_items ASSIGNING <ls_item>.
|
||||||
lv_last = boolc( sy-tabix = lines( mt_items ) ).
|
lv_last = boolc( sy-tabix = lines( mt_items ) ).
|
||||||
|
|
||||||
|
@ -309,11 +324,24 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
||||||
AND iv_as_droplist_with_label IS INITIAL.
|
AND iv_as_droplist_with_label IS INITIAL.
|
||||||
lv_class = 'menu_end'.
|
lv_class = 'menu_end'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF iv_with_icons = abap_true.
|
||||||
|
ro_html->add( '<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
|
ro_html->add_anchor( iv_txt = <ls_item>-txt
|
||||||
iv_act = <ls_item>-act
|
iv_act = <ls_item>-act
|
||||||
iv_opt = <ls_item>-opt
|
iv_opt = <ls_item>-opt
|
||||||
iv_typ = <ls_item>-typ
|
iv_typ = <ls_item>-typ
|
||||||
iv_class = lv_class ).
|
iv_class = lv_class ).
|
||||||
|
|
||||||
|
IF iv_with_icons = abap_true.
|
||||||
|
ro_html->add( '</td>' ).
|
||||||
|
ro_html->add( '</tr>' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ELSE.
|
ELSE.
|
||||||
ro_html->add( <ls_item>-sub->render(
|
ro_html->add( <ls_item>-sub->render(
|
||||||
iv_as_droplist_with_label = <ls_item>-txt
|
iv_as_droplist_with_label = <ls_item>-txt
|
||||||
|
@ -322,8 +350,12 @@ CLASS lcl_html_toolbar IMPLEMENTATION.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
IF iv_with_icons = abap_true.
|
||||||
|
ro_html->add( '</table>' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF lv_is_drop = abap_true. " Dropdown
|
IF lv_is_drop = abap_true. " Dropdown
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div></div>' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
|
@ -307,7 +307,7 @@ CLASS lcl_http_digest IMPLEMENTATION.
|
||||||
internal_error = 3
|
internal_error = 3
|
||||||
OTHERS = 4.
|
OTHERS = 4.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
BREAK-POINT.
|
lcx_exception=>raise( 'error from CALCULATE_HASH_FOR_RAW' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
rv_hash = lv_hash.
|
rv_hash = lv_hash.
|
||||||
|
|
|
@ -143,6 +143,7 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: lv_include TYPE rs38l-include,
|
DATA: lv_include TYPE rs38l-include,
|
||||||
lv_area TYPE rs38l-area,
|
lv_area TYPE rs38l-area,
|
||||||
|
lv_message TYPE string,
|
||||||
lt_source TYPE TABLE OF abaptxt255.
|
lt_source TYPE TABLE OF abaptxt255.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_func> LIKE LINE OF it_functions.
|
FIELD-SYMBOLS: <ls_func> LIKE LINE OF it_functions.
|
||||||
|
@ -208,7 +209,8 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
canceled_in_corr = 10
|
canceled_in_corr = 10
|
||||||
OTHERS = 11.
|
OTHERS = 11.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
lcx_exception=>raise( 'error from RS_FUNCTIONMODULE_INSERT' ).
|
lcx_exception=>raise( |error from RS_FUNCTIONMODULE_INSERT: {
|
||||||
|
sy-subrc } { sy-msgid }{ sy-msgno }| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
INSERT REPORT lv_include FROM lt_source.
|
INSERT REPORT lv_include FROM lt_source.
|
||||||
|
|
|
@ -249,8 +249,10 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
|
|
||||||
io_xml->add( iv_name = 'DD02V'
|
io_xml->add( iv_name = 'DD02V'
|
||||||
ig_data = ls_dd02v ).
|
ig_data = ls_dd02v ).
|
||||||
io_xml->add( iv_name = 'DD09L'
|
IF NOT ls_dd09l IS INITIAL.
|
||||||
ig_data = ls_dd09l ).
|
io_xml->add( iv_name = 'DD09L'
|
||||||
|
ig_data = ls_dd09l ).
|
||||||
|
ENDIF.
|
||||||
io_xml->add( ig_data = lt_dd03p
|
io_xml->add( ig_data = lt_dd03p
|
||||||
iv_name = 'DD03P_TABLE' ).
|
iv_name = 'DD03P_TABLE' ).
|
||||||
io_xml->add( ig_data = lt_dd05m
|
io_xml->add( ig_data = lt_dd05m
|
||||||
|
|
|
@ -12,8 +12,26 @@ CLASS lcl_object_w3super DEFINITION INHERITING FROM lcl_objects_super ABSTRACT.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES lif_object.
|
INTERFACES lif_object.
|
||||||
|
|
||||||
|
TYPES: ty_wwwparams_tt TYPE STANDARD TABLE OF wwwparams WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING
|
||||||
|
is_item TYPE ty_item
|
||||||
|
iv_language TYPE spras.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
METHODS get_metadata REDEFINITION.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS init_key RETURNING VALUE(rs_key) TYPE wwwdatatab.
|
|
||||||
|
DATA ms_key TYPE wwwdatatab.
|
||||||
|
|
||||||
|
METHODS get_ext
|
||||||
|
IMPORTING it_params TYPE ty_wwwparams_tt
|
||||||
|
RETURNING VALUE(rv_ext) TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
||||||
|
|
||||||
|
@ -24,6 +42,12 @@ ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_w3super IMPLEMENTATION.
|
CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
super->constructor( is_item = is_item iv_language = iv_language ).
|
||||||
|
ms_key-relid = ms_item-obj_type+2(2).
|
||||||
|
ms_key-objid = ms_item-obj_name.
|
||||||
|
ENDMETHOD. " constructor.
|
||||||
|
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
rv_changed = abap_true.
|
rv_changed = abap_true.
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
@ -32,13 +56,8 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD init_key.
|
|
||||||
rs_key-relid = ms_item-obj_type+2(2).
|
|
||||||
rs_key-objid = ms_item-obj_name.
|
|
||||||
ENDMETHOD. " init_key
|
|
||||||
|
|
||||||
METHOD lif_object~jump.
|
METHOD lif_object~jump.
|
||||||
" No idea how to just to SMW0
|
" No idea how to jump to SMW0
|
||||||
lcx_exception=>raise( 'Please go to SMW0 for W3MI object' ).
|
lcx_exception=>raise( 'Please go to SMW0 for W3MI object' ).
|
||||||
ENDMETHOD. "jump
|
ENDMETHOD. "jump
|
||||||
|
|
||||||
|
@ -46,18 +65,17 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
METHOD get_metadata. "Redefinition
|
||||||
" W3xx EXISTS
|
rs_metadata = super->get_metadata( ).
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
rs_metadata-version = 'v2.0.0'. " Seriazation v2, separate data file
|
||||||
|
ENDMETHOD. " get_metadata. "Redefinition
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
DATA ls_key TYPE wwwdatatab.
|
|
||||||
|
|
||||||
ls_key = init_key( ).
|
SELECT SINGLE objid INTO ms_key-objid
|
||||||
|
|
||||||
SELECT SINGLE objid INTO ls_key-objid
|
|
||||||
FROM wwwdata
|
FROM wwwdata
|
||||||
WHERE relid = ls_key-relid
|
WHERE relid = ms_key-relid
|
||||||
AND objid = ls_key-objid
|
AND objid = ms_key-objid
|
||||||
AND srtf2 = 0.
|
AND srtf2 = 0.
|
||||||
|
|
||||||
IF sy-subrc IS NOT INITIAL.
|
IF sy-subrc IS NOT INITIAL.
|
||||||
|
@ -68,26 +86,19 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~exists
|
ENDMETHOD. "lif_object~exists
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" W3xx SERIALIZE
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
METHOD lif_object~serialize.
|
METHOD lif_object~serialize.
|
||||||
DATA ls_key TYPE wwwdatatab.
|
|
||||||
DATA lt_w3mime TYPE STANDARD TABLE OF w3mime.
|
DATA lt_w3mime TYPE STANDARD TABLE OF w3mime.
|
||||||
DATA lt_w3html TYPE STANDARD TABLE OF w3html.
|
DATA lt_w3html TYPE STANDARD TABLE OF w3html.
|
||||||
DATA lt_w3params TYPE STANDARD TABLE OF wwwparams.
|
DATA lt_w3params TYPE STANDARD TABLE OF wwwparams.
|
||||||
DATA lv_xstring TYPE xstring.
|
DATA lv_xstring TYPE xstring.
|
||||||
DATA ls_wwwparam LIKE LINE OF lt_w3params.
|
DATA ls_wwwparam LIKE LINE OF lt_w3params.
|
||||||
DATA lv_size TYPE int4.
|
DATA lv_size TYPE int4.
|
||||||
DATA lv_base64str TYPE string.
|
|
||||||
DATA lo_utility TYPE REF TO cl_http_utility.
|
|
||||||
|
|
||||||
ls_key = init_key( ).
|
SELECT SINGLE * INTO CORRESPONDING FIELDS OF ms_key
|
||||||
|
|
||||||
SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_key
|
|
||||||
FROM wwwdata
|
FROM wwwdata
|
||||||
WHERE relid = ls_key-relid
|
WHERE relid = ms_key-relid
|
||||||
AND objid = ls_key-objid
|
AND objid = ms_key-objid
|
||||||
AND srtf2 = 0.
|
AND srtf2 = 0.
|
||||||
|
|
||||||
IF sy-subrc IS NOT INITIAL.
|
IF sy-subrc IS NOT INITIAL.
|
||||||
|
@ -96,7 +107,7 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
CALL FUNCTION 'WWWDATA_IMPORT'
|
CALL FUNCTION 'WWWDATA_IMPORT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
key = ls_key
|
key = ms_key
|
||||||
TABLES
|
TABLES
|
||||||
mime = lt_w3mime
|
mime = lt_w3mime
|
||||||
html = lt_w3html
|
html = lt_w3html
|
||||||
|
@ -110,8 +121,8 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
CALL FUNCTION 'WWWPARAMS_READ_ALL'
|
CALL FUNCTION 'WWWPARAMS_READ_ALL'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
type = ls_key-relid
|
type = ms_key-relid
|
||||||
objid = ls_key-objid
|
objid = ms_key-objid
|
||||||
TABLES
|
TABLES
|
||||||
params = lt_w3params
|
params = lt_w3params
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -128,7 +139,7 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
lv_size = ls_wwwparam-value.
|
lv_size = ls_wwwparam-value.
|
||||||
|
|
||||||
CASE ls_key-relid.
|
CASE ms_key-relid.
|
||||||
WHEN 'MI'.
|
WHEN 'MI'.
|
||||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -155,53 +166,54 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'Cannot convert W3xx to xstring' ).
|
lcx_exception=>raise( 'Cannot convert W3xx to xstring' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
CREATE OBJECT lo_utility.
|
|
||||||
lv_base64str = lo_utility->encode_x_base64( lv_xstring ).
|
|
||||||
|
|
||||||
io_xml->add( iv_name = 'NAME'
|
io_xml->add( iv_name = 'NAME'
|
||||||
ig_data = ls_key-objid ).
|
ig_data = ms_key-objid ).
|
||||||
|
|
||||||
io_xml->add( iv_name = 'TEXT'
|
io_xml->add( iv_name = 'TEXT'
|
||||||
ig_data = ls_key-text ).
|
ig_data = ms_key-text ).
|
||||||
|
|
||||||
io_xml->add( iv_name = 'DATA'
|
|
||||||
ig_data = lv_base64str ).
|
|
||||||
|
|
||||||
io_xml->add( iv_name = 'PARAMS'
|
io_xml->add( iv_name = 'PARAMS'
|
||||||
ig_data = lt_w3params ).
|
ig_data = lt_w3params ).
|
||||||
|
|
||||||
|
" Seriazation v2, separate data file. 'extra' added to prevent conflict with .xml
|
||||||
|
lif_object~mo_files->add_raw( iv_data = lv_xstring
|
||||||
|
iv_extra = 'data'
|
||||||
|
iv_ext = get_ext( lt_w3params ) ).
|
||||||
|
|
||||||
ENDMETHOD. "serialize
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" W3xx DESERIALIZE
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
METHOD lif_object~deserialize.
|
METHOD lif_object~deserialize.
|
||||||
|
|
||||||
DATA ls_key TYPE wwwdatatab.
|
|
||||||
DATA lv_base64str TYPE string.
|
DATA lv_base64str TYPE string.
|
||||||
DATA lt_w3params TYPE STANDARD TABLE OF wwwparams.
|
DATA lt_w3params TYPE STANDARD TABLE OF wwwparams.
|
||||||
DATA lv_xstring TYPE xstring.
|
DATA lv_xstring TYPE xstring.
|
||||||
DATA lo_utility TYPE REF TO cl_http_utility.
|
|
||||||
DATA lt_w3mime TYPE STANDARD TABLE OF w3mime.
|
DATA lt_w3mime TYPE STANDARD TABLE OF w3mime.
|
||||||
DATA lt_w3html TYPE STANDARD TABLE OF w3html.
|
DATA lt_w3html TYPE STANDARD TABLE OF w3html.
|
||||||
DATA lv_size TYPE int4.
|
DATA lv_size TYPE int4.
|
||||||
DATA lv_tadir_obj TYPE tadir-object.
|
DATA lv_tadir_obj TYPE tadir-object.
|
||||||
|
|
||||||
ls_key = init_key( ).
|
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'TEXT'
|
io_xml->read( EXPORTING iv_name = 'TEXT'
|
||||||
CHANGING cg_data = ls_key-text ).
|
CHANGING cg_data = ms_key-text ).
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'DATA'
|
|
||||||
CHANGING cg_data = lv_base64str ).
|
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'PARAMS'
|
io_xml->read( EXPORTING iv_name = 'PARAMS'
|
||||||
CHANGING cg_data = lt_w3params ).
|
CHANGING cg_data = lt_w3params ).
|
||||||
|
|
||||||
CREATE OBJECT lo_utility.
|
CASE io_xml->get_metadata( )-version.
|
||||||
lv_xstring = lo_utility->decode_x_base64( lv_base64str ).
|
WHEN 'v1.0.0'.
|
||||||
|
io_xml->read( EXPORTING iv_name = 'DATA'
|
||||||
|
CHANGING cg_data = lv_base64str ).
|
||||||
|
lv_xstring = cl_http_utility=>decode_x_base64( lv_base64str ).
|
||||||
|
WHEN 'v2.0.0'.
|
||||||
|
lv_xstring = lif_object~mo_files->read_raw( iv_extra = 'data'
|
||||||
|
iv_ext = get_ext( lt_w3params ) ).
|
||||||
|
WHEN OTHERS.
|
||||||
|
lcx_exception=>raise( 'W3xx: Unknown serializer version' ).
|
||||||
|
|
||||||
CASE ls_key-relid.
|
ENDCASE.
|
||||||
|
|
||||||
|
|
||||||
|
CASE ms_key-relid.
|
||||||
WHEN 'MI'.
|
WHEN 'MI'.
|
||||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -248,14 +260,14 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'Cannot update W3xx params' ).
|
lcx_exception=>raise( 'Cannot update W3xx params' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ls_key-tdate = sy-datum.
|
ms_key-tdate = sy-datum.
|
||||||
ls_key-ttime = sy-uzeit.
|
ms_key-ttime = sy-uzeit.
|
||||||
ls_key-chname = sy-uname.
|
ms_key-chname = sy-uname.
|
||||||
ls_key-devclass = iv_package.
|
ms_key-devclass = iv_package.
|
||||||
|
|
||||||
CALL FUNCTION 'WWWDATA_EXPORT'
|
CALL FUNCTION 'WWWDATA_EXPORT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
key = ls_key
|
key = ms_key
|
||||||
TABLES
|
TABLES
|
||||||
mime = lt_w3mime
|
mime = lt_w3mime
|
||||||
html = lt_w3html
|
html = lt_w3html
|
||||||
|
@ -267,14 +279,14 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'Cannot upload W3xx data' ).
|
lcx_exception=>raise( 'Cannot upload W3xx data' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
CONCATENATE 'W3' ls_key-relid INTO lv_tadir_obj.
|
CONCATENATE 'W3' ms_key-relid INTO lv_tadir_obj.
|
||||||
|
|
||||||
CALL FUNCTION 'TR_TADIR_INTERFACE'
|
CALL FUNCTION 'TR_TADIR_INTERFACE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
wi_tadir_pgmid = 'R3TR'
|
wi_tadir_pgmid = 'R3TR'
|
||||||
wi_tadir_object = lv_tadir_obj
|
wi_tadir_object = lv_tadir_obj
|
||||||
wi_tadir_devclass = iv_package
|
wi_tadir_devclass = iv_package
|
||||||
wi_tadir_obj_name = ls_key-objid
|
wi_tadir_obj_name = ms_key-objid
|
||||||
wi_test_modus = space
|
wi_test_modus = space
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
tadir_entry_not_existing = 1
|
tadir_entry_not_existing = 1
|
||||||
|
@ -309,17 +321,11 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~deserialize
|
ENDMETHOD. "lif_object~deserialize
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" W3xx DELETE
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
METHOD lif_object~delete.
|
METHOD lif_object~delete.
|
||||||
DATA ls_key TYPE wwwdatatab.
|
|
||||||
|
|
||||||
ls_key = init_key( ).
|
|
||||||
|
|
||||||
CALL FUNCTION 'WWWDATA_DELETE'
|
CALL FUNCTION 'WWWDATA_DELETE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
key = ls_key
|
key = ms_key
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
wrong_object_type = 1
|
wrong_object_type = 1
|
||||||
delete_error = 2.
|
delete_error = 2.
|
||||||
|
@ -330,7 +336,7 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
CALL FUNCTION 'WWWPARAMS_DELETE_ALL'
|
CALL FUNCTION 'WWWPARAMS_DELETE_ALL'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
key = ls_key
|
key = ms_key
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
delete_error = 1.
|
delete_error = 1.
|
||||||
|
|
||||||
|
@ -340,6 +346,21 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~delete
|
ENDMETHOD. "lif_object~delete
|
||||||
|
|
||||||
|
METHOD get_ext.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <param> LIKE LINE OF it_params.
|
||||||
|
|
||||||
|
READ TABLE it_params ASSIGNING <param> WITH KEY name = 'fileextension'.
|
||||||
|
|
||||||
|
IF sy-subrc > 0.
|
||||||
|
lcx_exception=>raise( |W3xx: Cannot find file ext for { ms_key-objid }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
rv_ext = <param>-value.
|
||||||
|
SHIFT rv_ext LEFT DELETING LEADING '.'.
|
||||||
|
|
||||||
|
ENDMETHOD. " get_ext.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_W3SUPER IMPLEMENTATION
|
ENDCLASS. "lcl_object_W3SUPER IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
|
|
@ -230,6 +230,16 @@ CLASS lcl_objects_files DEFINITION FINAL.
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
add
|
add
|
||||||
IMPORTING is_file TYPE ty_file,
|
IMPORTING is_file TYPE ty_file,
|
||||||
|
add_raw
|
||||||
|
IMPORTING iv_extra TYPE clike OPTIONAL
|
||||||
|
iv_ext TYPE string
|
||||||
|
iv_data TYPE xstring
|
||||||
|
RAISING lcx_exception,
|
||||||
|
read_raw
|
||||||
|
IMPORTING iv_extra TYPE clike OPTIONAL
|
||||||
|
iv_ext TYPE string
|
||||||
|
RETURNING VALUE(rv_data) TYPE xstring
|
||||||
|
RAISING lcx_exception,
|
||||||
get_files
|
get_files
|
||||||
RETURNING VALUE(rt_files) TYPE ty_files_tt,
|
RETURNING VALUE(rt_files) TYPE ty_files_tt,
|
||||||
set_files
|
set_files
|
||||||
|
@ -501,6 +511,32 @@ CLASS lcl_objects_files IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. " read_file.
|
ENDMETHOD. " read_file.
|
||||||
|
|
||||||
|
METHOD add_raw.
|
||||||
|
|
||||||
|
DATA: ls_file TYPE ty_file.
|
||||||
|
|
||||||
|
ls_file-path = '/'.
|
||||||
|
ls_file-data = iv_data.
|
||||||
|
ls_file-filename = filename( iv_extra = iv_extra
|
||||||
|
iv_ext = iv_ext ).
|
||||||
|
|
||||||
|
APPEND ls_file TO mt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "add_raw
|
||||||
|
|
||||||
|
METHOD read_raw.
|
||||||
|
|
||||||
|
DATA: lv_filename TYPE string,
|
||||||
|
lv_data TYPE xstring.
|
||||||
|
|
||||||
|
lv_filename = filename( iv_extra = iv_extra
|
||||||
|
iv_ext = iv_ext ).
|
||||||
|
|
||||||
|
read_file( EXPORTING iv_filename = lv_filename
|
||||||
|
IMPORTING ev_data = rv_data ).
|
||||||
|
|
||||||
|
ENDMETHOD. "read_raw
|
||||||
|
|
||||||
ENDCLASS. "lcl_objects_files IMPLEMENTATION
|
ENDCLASS. "lcl_objects_files IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
|
|
@ -24,7 +24,9 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
lv_index = sy-tabix.
|
lv_index = sy-tabix.
|
||||||
|
|
||||||
IF <ls_result>-lstate IS NOT INITIAL
|
IF <ls_result>-lstate IS NOT INITIAL
|
||||||
AND <ls_result>-lstate <> gc_state-deleted.
|
AND <ls_result>-lstate <> gc_state-deleted
|
||||||
|
AND NOT ( <ls_result>-lstate = gc_state-added
|
||||||
|
AND <ls_result>-rstate IS INITIAL ).
|
||||||
lv_question = |It looks like object {
|
lv_question = |It looks like object {
|
||||||
<ls_result>-obj_type } { <ls_result>-obj_name
|
<ls_result>-obj_type } { <ls_result>-obj_name
|
||||||
} has been modified locally, overwrite object?|.
|
} has been modified locally, overwrite object?|.
|
||||||
|
@ -617,7 +619,8 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
warning_overwrite( EXPORTING io_repo = io_repo
|
warning_overwrite( EXPORTING io_repo = io_repo
|
||||||
CHANGING ct_results = lt_results ).
|
CHANGING ct_results = lt_results ).
|
||||||
|
|
||||||
LOOP AT lt_results ASSIGNING <ls_result> WHERE obj_type IS NOT INITIAL.
|
LOOP AT lt_results ASSIGNING <ls_result> WHERE obj_type IS NOT INITIAL
|
||||||
|
AND NOT ( lstate = gc_state-added AND rstate IS INITIAL ).
|
||||||
lcl_progress=>show( iv_key = 'Deserialize'
|
lcl_progress=>show( iv_key = 'Deserialize'
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
iv_total = lines( lt_results )
|
iv_total = lines( lt_results )
|
||||||
|
|
|
@ -109,6 +109,15 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||||
|
|
||||||
ro_html->add( '<td class="repo_attr right">' ).
|
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.
|
IF lo_pback->exists( io_repo->get_key( ) ) = abap_true.
|
||||||
ro_html->add( '<span class="bg_marker" title="background">BG</span>' ).
|
ro_html->add( '<span class="bg_marker" title="background">BG</span>' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -370,6 +379,8 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||||
_add '.crossout { text-decoration: line-through !important; }'.
|
_add '.crossout { text-decoration: line-through !important; }'.
|
||||||
_add '.right { text-align:right; }'.
|
_add '.right { text-align:right; }'.
|
||||||
_add '.paddings { padding: 0.5em 0.5em; }'.
|
_add '.paddings { padding: 0.5em 0.5em; }'.
|
||||||
|
_add '.pad-sides { padding: 0 0.3em; }'.
|
||||||
|
_add '.pad4px { padding: 4px; }'.
|
||||||
|
|
||||||
" Structure div styles: header, footer, toc
|
" Structure div styles: header, footer, toc
|
||||||
_add '/* STRUCTURE DIVS, HEADER & FOOTER */'.
|
_add '/* STRUCTURE DIVS, HEADER & FOOTER */'.
|
||||||
|
@ -433,7 +444,7 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||||
_add ' font-size: 12pt;'.
|
_add ' font-size: 12pt;'.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
|
|
||||||
" Drop down styles
|
" Dropdown styles :mechanics
|
||||||
_add '/*DROP DOWN*/'.
|
_add '/*DROP DOWN*/'.
|
||||||
_add '.dropdown {'.
|
_add '.dropdown {'.
|
||||||
_add ' position: relative;'.
|
_add ' position: relative;'.
|
||||||
|
@ -456,20 +467,47 @@ CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||||
_add ' display: none;'.
|
_add ' display: none;'.
|
||||||
_add ' z-index: 1;'.
|
_add ' z-index: 1;'.
|
||||||
_add ' position: absolute;'.
|
_add ' position: absolute;'.
|
||||||
_add ' right: 0;'.
|
_add ' right: -12px;'.
|
||||||
* _add ' top: 1.1em; /*IE7 woraround*/'.
|
_add ' top: 1em;'.
|
||||||
_add ' background-color: #f9f9f9;'.
|
_add ' padding: 6px 10px 10px 10px;'.
|
||||||
_add ' white-space: nowrap;'.
|
_add ' white-space: nowrap;'.
|
||||||
* _add ' min-width: 10em;'.
|
|
||||||
_add ' border-bottom: 1px solid lightgrey;'.
|
|
||||||
_add '}'.
|
_add '}'.
|
||||||
|
_add '.dropdown div.minizone {'.
|
||||||
|
_add ' display: none;'.
|
||||||
|
_add ' z-index: 1;'.
|
||||||
|
_add ' position: absolute;'.
|
||||||
|
_add ' padding: 0px;'.
|
||||||
|
_add ' width: 16px;'.
|
||||||
|
_add ' height: 16px;'.
|
||||||
|
_add ' bottom: 0px;'.
|
||||||
|
_add ' left: -16px;'.
|
||||||
|
_add '}'.
|
||||||
|
|
||||||
|
_add '.dropdown:hover .dropdown_content { display: block; }'.
|
||||||
|
_add '.dropdown:hover .minizone { display: block; }'.
|
||||||
|
|
||||||
|
" Dropdown styles :styling
|
||||||
_add '.dropdown_content a {'.
|
_add '.dropdown_content a {'.
|
||||||
_add ' padding: 0.2em;'.
|
_add ' padding: 0.2em;'.
|
||||||
|
_add ' background-color: #f9f9f9;'.
|
||||||
_add ' text-decoration: none;'.
|
_add ' text-decoration: none;'.
|
||||||
_add ' display: block;'.
|
_add ' display: block;'.
|
||||||
|
_add ' border: none !important;'.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
|
|
||||||
|
|
||||||
|
_add '.dropdown_content div.box {'.
|
||||||
|
_add ' border-bottom: 1px solid #C0C0C0;'.
|
||||||
|
_add ' border-right: 1px solid #C0C0C0;'.
|
||||||
|
_add ' background-color: #f9f9f9;'.
|
||||||
|
_add ' padding: 2px;'.
|
||||||
|
_add '}'.
|
||||||
|
|
||||||
|
_add '.dropdown_content td { text-align: left; padding: 2px; }'. " TODO refactor
|
||||||
|
_add '.dropdown_content td a { padding: 0em 0.2em; }'. " TODO refactor
|
||||||
|
_add '.dropdown_content td.icon { padding: 0 3px 0 6px; }'. " TODO refactor
|
||||||
|
|
||||||
_add '.dropdown_content a:hover { background-color: #f1f1f1 }'.
|
_add '.dropdown_content a:hover { background-color: #f1f1f1 }'.
|
||||||
_add '.dropdown:hover .dropdown_content { display: block; }'.
|
|
||||||
_add '.dropdown:hover .dropbtn { color: #79a0d2; }'.
|
_add '.dropdown:hover .dropbtn { color: #79a0d2; }'.
|
||||||
|
|
||||||
" REPOSITORY
|
" REPOSITORY
|
||||||
|
|
|
@ -26,12 +26,7 @@ CLASS lcl_gui_page_main DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||||
retrieve_active_repo
|
retrieve_active_repo
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
render_toc
|
render_toc
|
||||||
IMPORTING it_list TYPE lcl_repo_srv=>ty_repo_tt
|
IMPORTING it_repo_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
|
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
build_main_menu
|
build_main_menu
|
||||||
|
@ -194,81 +189,100 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
METHOD render_toc.
|
METHOD render_toc.
|
||||||
|
|
||||||
DATA: lo_pback TYPE REF TO lcl_persistence_background,
|
DATA: lo_pback TYPE REF TO lcl_persistence_background,
|
||||||
lo_repo LIKE LINE OF it_list,
|
lv_opt TYPE char1,
|
||||||
lv_opt TYPE c LENGTH 1,
|
lv_key TYPE lcl_persistence_repo=>ty_repo-key,
|
||||||
lo_online TYPE REF TO lcl_html_toolbar,
|
lv_icon TYPE string,
|
||||||
lo_offline TYPE REF TO lcl_html_toolbar,
|
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.
|
lv_repo_title TYPE string.
|
||||||
|
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
CREATE OBJECT lo_online.
|
CREATE OBJECT lo_favbar.
|
||||||
CREATE OBJECT lo_offline.
|
CREATE OBJECT lo_allbar.
|
||||||
CREATE OBJECT lo_pback.
|
CREATE OBJECT lo_pback.
|
||||||
|
|
||||||
IF lines( it_list ) = 0.
|
lt_favorites = lcl_app=>user( )->get_favorites( ).
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
LOOP AT it_list INTO lo_repo.
|
LOOP AT it_repo_list INTO lo_repo.
|
||||||
IF mv_show = lo_repo->get_key( ).
|
lv_key = lo_repo->get_key( ).
|
||||||
|
IF lv_key = mv_show.
|
||||||
lv_opt = gc_html_opt-emphas.
|
lv_opt = gc_html_opt-emphas.
|
||||||
ELSE.
|
ELSE.
|
||||||
CLEAR lv_opt.
|
CLEAR lv_opt.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF lo_repo->is_offline( ) = abap_true.
|
lv_repo_title = lo_repo->get_name( ).
|
||||||
lo_offline->add( iv_txt = lo_repo->get_name( )
|
IF lo_pback->exists( lv_key ) = abap_true.
|
||||||
iv_act = |{ c_actions-show }?{ lo_repo->get_key( ) }|
|
lv_repo_title = lv_repo_title && '<sup>bg</sup>'. " Background marker
|
||||||
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 ).
|
|
||||||
|
|
||||||
ENDIF.
|
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.
|
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.
|
" Render HTML
|
||||||
ro_html->add( render_toc_line( io_toolbar = lo_online
|
ro_html->add( '<div id="toc">' ) ##NO_TEXT. " TODO refactor html & css
|
||||||
iv_image_url = 'img/repo_online' ) ).
|
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.
|
ENDIF.
|
||||||
|
ro_html->add( '</td>' ).
|
||||||
|
|
||||||
IF lo_offline->count( ) > 0.
|
ro_html->add( '<td class="right">' ).
|
||||||
ro_html->add( render_toc_line( io_toolbar = lo_offline
|
ro_html->add( lo_allbar->render(
|
||||||
iv_image_url = 'img/repo_offline' ) ).
|
iv_as_droplist_with_label = '<img class="pad4px" src="img/burger">'
|
||||||
ENDIF.
|
iv_sort = abap_true
|
||||||
|
iv_with_icons = abap_true
|
||||||
|
iv_add_minizone = 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
|
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.
|
METHOD render_explore.
|
||||||
|
|
||||||
DATA lo_toolbar TYPE REF TO lcl_html_toolbar.
|
DATA lo_toolbar TYPE REF TO lcl_html_toolbar.
|
||||||
|
@ -430,34 +444,12 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
|
|
||||||
ls_image-url = 'img/repo_offline' ##NO_TEXT.
|
ls_image-url = 'img/repo_offline' ##NO_TEXT.
|
||||||
ls_image-content =
|
ls_image-content =
|
||||||
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBB'
|
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEUAAACAgICAgICA'
|
||||||
&& 'ZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/'
|
&& 'gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA'
|
||||||
&& 'eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+'
|
&& 'gICAgICAgICAgICAgICAgICAgICAgICuaWnmAAAAG3RSTlMAAgQFBgsQFxweIiMtN3yI'
|
||||||
&& 'IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2Jl'
|
&& 'nqOvt9Hp6/Hz9fktMNR/AAAAXElEQVQYV5WO2xJAMAxES1q3ugfF/v9/0qLyyL4k58xk'
|
||||||
&& 'IFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAg'
|
&& 'J0p9D7N5oeqZgSwy7fDZnHNdEE1gWK116tksl7hPimGFFPWYl7MU0zksRCl8TStKg1AJ'
|
||||||
&& 'ICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5'
|
&& '0XNC8Zm4/c0BUVQHi0llOUYAAAAASUVORK5CYII='.
|
||||||
&& '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=='.
|
|
||||||
|
|
||||||
APPEND ls_image TO rt_assets.
|
APPEND ls_image TO rt_assets.
|
||||||
|
|
||||||
ls_image-url = 'img/pkg' ##NO_TEXT.
|
ls_image-url = 'img/pkg' ##NO_TEXT.
|
||||||
|
@ -535,6 +527,38 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
&& 'VAFeBlYOTiTAzoThewD5hBAcnWM4gwAAAABJRU5ErkJggg=='.
|
&& 'VAFeBlYOTiTAzoThewD5hBAcnWM4gwAAAABJRU5ErkJggg=='.
|
||||||
APPEND ls_image TO rt_assets.
|
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
|
ENDMETHOD. "get_assets
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
|
@ -114,6 +114,7 @@ CLASS lcl_persistence_repo DEFINITION FINAL.
|
||||||
INCLUDE TYPE ty_repo_xml.
|
INCLUDE TYPE ty_repo_xml.
|
||||||
TYPES: END OF ty_repo.
|
TYPES: END OF ty_repo.
|
||||||
TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY.
|
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.
|
METHODS constructor.
|
||||||
|
|
||||||
|
@ -359,6 +360,8 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
TYPES: tt_favorites TYPE lcl_persistence_repo=>tt_repo_keys.
|
||||||
|
|
||||||
METHODS set_username
|
METHODS set_username
|
||||||
IMPORTING iv_username TYPE string
|
IMPORTING iv_username TYPE string
|
||||||
RAISING lcx_exception.
|
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
|
RETURNING VALUE(rv_changes_only) TYPE abap_bool
|
||||||
RAISING lcx_exception.
|
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.
|
PRIVATE SECTION.
|
||||||
CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'.
|
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,
|
repo_config TYPE ty_repo_config_tt,
|
||||||
hide_files TYPE abap_bool,
|
hide_files TYPE abap_bool,
|
||||||
changes_only TYPE abap_bool,
|
changes_only TYPE abap_bool,
|
||||||
|
favorites TYPE tt_favorites,
|
||||||
END OF ty_user.
|
END OF ty_user.
|
||||||
|
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
|
@ -525,7 +542,7 @@ CLASS lcl_persistence_user IMPLEMENTATION.
|
||||||
ls_user-repo_show = iv_key.
|
ls_user-repo_show = iv_key.
|
||||||
update( ls_user ).
|
update( ls_user ).
|
||||||
|
|
||||||
COMMIT WORK.
|
COMMIT WORK AND WAIT.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -681,9 +698,51 @@ CLASS lcl_persistence_user IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "get_changes_only
|
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.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_persistence_db
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
|
||||||
CLASS lcl_persistence_db IMPLEMENTATION.
|
CLASS lcl_persistence_db IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD list_by_type.
|
METHOD list_by_type.
|
||||||
|
@ -800,6 +859,11 @@ CLASS lcl_persistence_db IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_persistence_repo
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
|
||||||
CLASS lcl_persistence_repo IMPLEMENTATION.
|
CLASS lcl_persistence_repo IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD add.
|
METHOD add.
|
||||||
|
|
|
@ -260,12 +260,15 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
lt_local = get_files_local( ).
|
lt_local = get_files_local( ).
|
||||||
lv_branch_equal = boolc( get_sha1_remote( ) = get_sha1_local( ) ).
|
lv_branch_equal = boolc( get_sha1_remote( ) = get_sha1_local( ) ).
|
||||||
|
|
||||||
DELETE lt_local WHERE item IS INITIAL.
|
DELETE lt_local " Remove non-code related files except .abapgit
|
||||||
|
WHERE item IS INITIAL
|
||||||
|
AND NOT ( file-path = gc_root_dir AND file-filename = gc_dot_abapgit ).
|
||||||
|
|
||||||
SORT lt_local BY item.
|
SORT lt_local BY item.
|
||||||
SORT lt_remote BY path filename.
|
SORT lt_remote BY path filename.
|
||||||
|
|
||||||
LOOP AT lt_local ASSIGNING <ls_local>.
|
LOOP AT lt_local ASSIGNING <ls_local>.
|
||||||
IF ls_last_item <> <ls_local>-item. " New item reached ?
|
IF ls_last_item <> <ls_local>-item OR sy-tabix = 1. " First or New item reached ?
|
||||||
APPEND INITIAL LINE TO lt_checksums ASSIGNING <ls_checksum>.
|
APPEND INITIAL LINE TO lt_checksums ASSIGNING <ls_checksum>.
|
||||||
<ls_checksum>-item = <ls_local>-item.
|
<ls_checksum>-item = <ls_local>-item.
|
||||||
ls_last_item = <ls_local>-item.
|
ls_last_item = <ls_local>-item.
|
||||||
|
@ -472,6 +475,7 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lt_updated_files = lcl_objects=>deserialize( me ).
|
lt_updated_files = lcl_objects=>deserialize( me ).
|
||||||
|
APPEND mo_dot_abapgit->get_signature( ) TO lt_updated_files.
|
||||||
|
|
||||||
CLEAR: mt_local, mv_last_serialization.
|
CLEAR: mt_local, mv_last_serialization.
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,10 @@ CLASS lcl_services_repo DEFINITION FINAL.
|
||||||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||||
RAISING lcx_exception lcx_cancel.
|
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
|
ENDCLASS. "lcl_services_repo
|
||||||
|
|
||||||
CLASS lcl_services_repo IMPLEMENTATION.
|
CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
|
@ -62,6 +66,7 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
lo_repo->deserialize( ).
|
lo_repo->deserialize( ).
|
||||||
|
|
||||||
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
||||||
|
toggle_favorite( lo_repo->get_key( ) ).
|
||||||
|
|
||||||
COMMIT WORK.
|
COMMIT WORK.
|
||||||
|
|
||||||
|
@ -170,6 +175,7 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
iv_package = ls_popup-package ).
|
iv_package = ls_popup-package ).
|
||||||
|
|
||||||
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
lcl_app=>user( )->set_repo_show( lo_repo->get_key( ) ). " Set default repo for user
|
||||||
|
toggle_favorite( lo_repo->get_key( ) ).
|
||||||
|
|
||||||
COMMIT WORK.
|
COMMIT WORK.
|
||||||
|
|
||||||
|
@ -282,4 +288,10 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "refresh_local_checksums
|
ENDMETHOD. "refresh_local_checksums
|
||||||
|
|
||||||
|
METHOD toggle_favorite.
|
||||||
|
|
||||||
|
lcl_app=>user( )->toggle_favorite( iv_key ).
|
||||||
|
|
||||||
|
ENDMETHOD. " toggle_favorite.
|
||||||
|
|
||||||
ENDCLASS. "lcl_services_repo
|
ENDCLASS. "lcl_services_repo
|
|
@ -1792,6 +1792,7 @@ CLASS ltcl_path IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS. "ltcl_path
|
ENDCLASS. "ltcl_path
|
||||||
|
|
||||||
CLASS ltcl_file_status DEFINITION
|
CLASS ltcl_file_status DEFINITION
|
||||||
|
|
|
@ -86,7 +86,7 @@ CLASS lcl_xml IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
* buffer serializer metadata. Git node will be removed lateron
|
* buffer serializer metadata. Git node will be removed lateron
|
||||||
ms_metadata-class = li_element->get_attribute_ns( c_attr_serializer ).
|
ms_metadata-class = li_element->get_attribute_ns( c_attr_serializer ).
|
||||||
ms_metadata-version = li_element->get_attribute_ns( c_attr_serializer_version ).
|
ms_metadata-version = li_element->get_attribute_ns( c_attr_serializer_version ).
|
||||||
|
|
||||||
ENDMETHOD. "parse
|
ENDMETHOD. "parse
|
||||||
|
|
Loading…
Reference in New Issue
Block a user