mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Merge branch 'master' into diffdesign
# Conflicts: # zabapgit.prog.abap
This commit is contained in:
commit
3deb0eab00
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
|||
* See http://www.abapgit.org
|
||||
|
||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.5.4'. "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.7.0'. "#EC NOTEXT
|
||||
|
||||
********************************************************************************
|
||||
* The MIT License (MIT)
|
||||
|
@ -1780,9 +1780,12 @@ CLASS lcl_diff DEFINITION FINAL.
|
|||
END OF c_diff.
|
||||
|
||||
TYPES: BEGIN OF ty_diff,
|
||||
local TYPE string,
|
||||
result TYPE c LENGTH 1,
|
||||
remote TYPE string,
|
||||
local_line TYPE c LENGTH 6,
|
||||
local TYPE string,
|
||||
result TYPE c LENGTH 1,
|
||||
remote_line TYPE c LENGTH 6,
|
||||
remote TYPE string,
|
||||
short TYPE abap_bool,
|
||||
END OF ty_diff.
|
||||
TYPES: ty_diffs_tt TYPE STANDARD TABLE OF ty_diff WITH DEFAULT KEY.
|
||||
|
||||
|
@ -1807,22 +1810,25 @@ CLASS lcl_diff DEFINITION FINAL.
|
|||
PRIVATE SECTION.
|
||||
DATA mt_diff TYPE ty_diffs_tt.
|
||||
|
||||
CLASS-METHODS: unpack
|
||||
IMPORTING iv_local TYPE xstring
|
||||
iv_remote TYPE xstring
|
||||
EXPORTING et_local TYPE abaptxt255_tab
|
||||
et_remote TYPE abaptxt255_tab.
|
||||
CLASS-METHODS:
|
||||
unpack
|
||||
IMPORTING iv_local TYPE xstring
|
||||
iv_remote TYPE xstring
|
||||
EXPORTING et_local TYPE abaptxt255_tab
|
||||
et_remote TYPE abaptxt255_tab,
|
||||
render
|
||||
IMPORTING it_local TYPE abaptxt255_tab
|
||||
it_remote TYPE abaptxt255_tab
|
||||
it_delta TYPE vxabapt255_tab
|
||||
RETURNING VALUE(rt_diff) TYPE ty_diffs_tt,
|
||||
compute
|
||||
IMPORTING it_local TYPE abaptxt255_tab
|
||||
it_remote TYPE abaptxt255_tab
|
||||
RETURNING VALUE(rt_delta) TYPE vxabapt255_tab.
|
||||
|
||||
CLASS-METHODS: render
|
||||
IMPORTING it_local TYPE abaptxt255_tab
|
||||
it_remote TYPE abaptxt255_tab
|
||||
it_delta TYPE vxabapt255_tab
|
||||
RETURNING VALUE(rt_diff) TYPE ty_diffs_tt.
|
||||
|
||||
CLASS-METHODS: compute
|
||||
IMPORTING it_local TYPE abaptxt255_tab
|
||||
it_remote TYPE abaptxt255_tab
|
||||
RETURNING VALUE(rt_delta) TYPE vxabapt255_tab.
|
||||
METHODS:
|
||||
calculate_line_num,
|
||||
shortlist.
|
||||
|
||||
ENDCLASS. "lcl_diff DEFINITION
|
||||
|
||||
|
@ -1887,6 +1893,64 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "compute
|
||||
|
||||
METHOD shortlist.
|
||||
|
||||
DATA: lv_index TYPE i.
|
||||
|
||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF mt_diff.
|
||||
|
||||
|
||||
IF lines( mt_diff ) < 5000.
|
||||
LOOP AT mt_diff ASSIGNING <ls_diff>.
|
||||
<ls_diff>-short = abap_true.
|
||||
ENDLOOP.
|
||||
ELSE.
|
||||
LOOP AT mt_diff TRANSPORTING NO FIELDS
|
||||
WHERE NOT result IS INITIAL AND short = abap_false.
|
||||
lv_index = sy-tabix.
|
||||
|
||||
DO 20 TIMES.
|
||||
READ TABLE mt_diff INDEX lv_index ASSIGNING <ls_diff>.
|
||||
IF sy-subrc <> 0 OR <ls_diff>-short = abap_true.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
<ls_diff>-short = abap_true.
|
||||
lv_index = lv_index - 1.
|
||||
ENDDO.
|
||||
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD calculate_line_num.
|
||||
|
||||
DATA: lv_local TYPE i VALUE 1,
|
||||
lv_remote TYPE i VALUE 1.
|
||||
|
||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF mt_diff.
|
||||
|
||||
|
||||
LOOP AT mt_diff ASSIGNING <ls_diff>.
|
||||
<ls_diff>-local_line = lv_local.
|
||||
<ls_diff>-remote_line = lv_remote.
|
||||
|
||||
CASE <ls_diff>-result.
|
||||
WHEN c_diff-delete.
|
||||
lv_remote = lv_remote + 1.
|
||||
CLEAR <ls_diff>-local_line.
|
||||
WHEN c_diff-insert.
|
||||
lv_local = lv_local + 1.
|
||||
CLEAR <ls_diff>-remote_line.
|
||||
WHEN OTHERS.
|
||||
lv_local = lv_local + 1.
|
||||
lv_remote = lv_remote + 1.
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA: lt_delta TYPE vxabapt255_tab,
|
||||
|
@ -1906,6 +1970,10 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
it_remote = lt_remote
|
||||
it_delta = lt_delta ).
|
||||
|
||||
calculate_line_num( ).
|
||||
|
||||
shortlist( ).
|
||||
|
||||
ENDMETHOD. "diff
|
||||
|
||||
METHOD render.
|
||||
|
@ -1966,7 +2034,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDDO.
|
||||
|
||||
ENDMETHOD. "render
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS. "lcl_diff IMPLEMENTATION
|
||||
|
||||
|
@ -2665,7 +2733,8 @@ CLASS lcl_objects_bridge IMPLEMENTATION.
|
|||
|
||||
CLEAR gt_objtype_map.
|
||||
LOOP AT lt_plugin_class INTO lv_plugin_class
|
||||
WHERE table_line <> 'ZCL_ABAPGIT_OBJECT_BY_SOBJ'. "have the generic plugin only as fallback
|
||||
WHERE table_line <> 'ZCL_ABAPGIT_OBJECT_BY_SOBJ'.
|
||||
* have the generic plugin only as fallback
|
||||
TRY.
|
||||
CREATE OBJECT lo_plugin TYPE (lv_plugin_class).
|
||||
CATCH cx_sy_create_object_error.
|
||||
|
@ -2680,8 +2749,11 @@ CLASS lcl_objects_bridge IMPLEMENTATION.
|
|||
LOOP AT lt_plugin_obj_type INTO ls_objtype_map-obj_typ.
|
||||
INSERT ls_objtype_map INTO TABLE gt_objtype_map.
|
||||
IF sy-subrc <> 0.
|
||||
* No exception in class-contructor possible. Anyway, a shortdump is more appropriate in this case
|
||||
ASSERT 'There must not be' = |multiple ABAPGit-Plugins for the same object type { ls_objtype_map-obj_typ }|.
|
||||
* No exception in class-contructor possible.
|
||||
* Anyway, a shortdump is more appropriate in this case
|
||||
ASSERT 'There must not be' =
|
||||
|multiple ABAPGit-Plugins for the same object type {
|
||||
ls_objtype_map-obj_typ }|.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDLOOP. "at plugins
|
||||
|
@ -3358,7 +3430,8 @@ CLASS lcl_objects_super IMPLEMENTATION.
|
|||
ENDMETHOD. "jump_se11
|
||||
|
||||
METHOD get_metadata.
|
||||
rs_metadata-class = cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ).
|
||||
rs_metadata-class =
|
||||
cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ).
|
||||
rs_metadata-version = 'v1.0.0' ##no_text.
|
||||
ENDMETHOD. "get_metadata
|
||||
|
||||
|
@ -9700,7 +9773,8 @@ CLASS lcl_object_tobj IMPLEMENTATION.
|
|||
object_enqueue_failed = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
* TOBJ has to be saved/generated after the DDIC tables have been activated - fixed with late deserialization
|
||||
* TOBJ has to be saved/generated after the DDIC tables have been
|
||||
* activated - fixed with late deserialization
|
||||
_raise 'error from OBJ_GENERATE'.
|
||||
ENDIF.
|
||||
|
||||
|
@ -12632,8 +12706,11 @@ CLASS lcl_sap_package DEFINITION FINAL.
|
|||
IMPORTING it_results TYPE lcl_file_status=>ty_results_tt
|
||||
iv_top TYPE devclass
|
||||
RETURNING VALUE(rv_errors) TYPE string,
|
||||
create
|
||||
create_local
|
||||
IMPORTING iv_package TYPE devclass
|
||||
RAISING lcx_exception,
|
||||
create
|
||||
IMPORTING is_package TYPE scompkdtln
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
@ -12746,13 +12823,16 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
|||
|
||||
METHOD create.
|
||||
|
||||
DATA lv_err TYPE string.
|
||||
DATA ls_package TYPE scompkdtln.
|
||||
DATA li_package TYPE REF TO if_package.
|
||||
DATA: lv_err TYPE string,
|
||||
ls_package LIKE is_package,
|
||||
li_package TYPE REF TO if_package.
|
||||
|
||||
|
||||
ASSERT NOT is_package-devclass IS INITIAL.
|
||||
|
||||
cl_package_factory=>load_package(
|
||||
EXPORTING
|
||||
i_package_name = iv_package
|
||||
i_package_name = is_package-devclass
|
||||
EXCEPTIONS
|
||||
object_not_existing = 1
|
||||
unexpected_error = 2
|
||||
|
@ -12763,11 +12843,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
|||
RETURN. "Package already exists. We assume this is fine
|
||||
ENDIF.
|
||||
|
||||
ls_package-devclass = iv_package.
|
||||
ls_package-ctext = iv_package.
|
||||
ls_package-pdevclass = '$TMP'.
|
||||
ls_package-component = 'LOCAL'.
|
||||
ls_package-as4user = sy-uname.
|
||||
ls_package = is_package.
|
||||
|
||||
cl_package_factory=>create_new_package(
|
||||
EXPORTING
|
||||
|
@ -12801,7 +12877,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
|||
* error_in_cts_checks = 21
|
||||
OTHERS = 18 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_err = |Package { iv_package } could not be created|.
|
||||
lv_err = |Package { is_package-devclass } could not be created|.
|
||||
_raise lv_err.
|
||||
ENDIF.
|
||||
|
||||
|
@ -12822,6 +12898,21 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
|||
_raise lv_err.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create_local.
|
||||
|
||||
DATA: ls_package TYPE scompkdtln.
|
||||
|
||||
|
||||
ls_package-devclass = iv_package.
|
||||
ls_package-ctext = iv_package.
|
||||
ls_package-pdevclass = '$TMP'.
|
||||
ls_package-component = 'LOCAL'.
|
||||
ls_package-as4user = sy-uname.
|
||||
|
||||
create( ls_package ).
|
||||
|
||||
ENDMETHOD. "create
|
||||
|
||||
ENDCLASS. "lcl_package IMPLEMENTATION
|
||||
|
@ -12910,7 +13001,9 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
item LIKE is_item,
|
||||
metadata LIKE is_metadata,
|
||||
END OF ty_obj_serializer_map.
|
||||
STATICS st_obj_serializer_map TYPE SORTED TABLE OF ty_obj_serializer_map WITH UNIQUE KEY item.
|
||||
|
||||
STATICS st_obj_serializer_map
|
||||
TYPE SORTED TABLE OF ty_obj_serializer_map WITH UNIQUE KEY item.
|
||||
|
||||
DATA: lv_message TYPE string,
|
||||
lv_class_name TYPE string,
|
||||
|
@ -12921,7 +13014,8 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
lv_class_name = ls_obj_serializer_map-metadata-class.
|
||||
ELSEIF is_metadata IS NOT INITIAL.
|
||||
* Metadata is provided only on serialization
|
||||
* Once this has been triggered, the same serializer shall be used for subsequent processes.
|
||||
* Once this has been triggered, the same serializer shall be used
|
||||
* for subsequent processes.
|
||||
* Thus, buffer the metadata afterwards
|
||||
ls_obj_serializer_map-item = is_item.
|
||||
ls_obj_serializer_map-metadata = is_metadata.
|
||||
|
@ -16869,7 +16963,8 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
'<head>' && gc_newline &&
|
||||
'<title>abapGit</title>' && gc_newline &&
|
||||
css( ) && gc_newline &&
|
||||
'<meta http-equiv="content-type" content="text/html; charset=utf-8">' && gc_newline &&
|
||||
'<meta http-equiv="content-type" content="text/html; charset=utf-8">' &&
|
||||
gc_newline &&
|
||||
'</head>' && gc_newline &&
|
||||
'<body>' && gc_newline. "#EC NOTEXT
|
||||
|
||||
|
@ -17026,7 +17121,10 @@ CLASS lcl_persistence_user DEFINITION FINAL.
|
|||
|
||||
DATA: mv_user TYPE xubname.
|
||||
|
||||
TYPES: ty_repo_hidden_tt TYPE STANDARD TABLE OF lcl_persistence_repo=>ty_repo-key WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
ty_repo_hidden_tt
|
||||
TYPE STANDARD TABLE OF lcl_persistence_repo=>ty_repo-key
|
||||
WITH DEFAULT KEY.
|
||||
|
||||
TYPES: BEGIN OF ty_user,
|
||||
username TYPE string,
|
||||
|
@ -17190,9 +17288,15 @@ CLASS lcl_gui_page_diff DEFINITION FINAL.
|
|||
DATA: ms_result TYPE lcl_file_status=>ty_result,
|
||||
mo_diff TYPE REF TO lcl_diff.
|
||||
|
||||
<<<<<<< HEAD
|
||||
METHODS styles RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
METHODS render_head RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
METHODS render_diff RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
=======
|
||||
METHODS:
|
||||
render_stats
|
||||
RETURNING VALUE(rv_html) TYPE string.
|
||||
>>>>>>> master
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -17276,6 +17380,7 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
ro_html = lo_html.
|
||||
ENDMETHOD.
|
||||
|
||||
<<<<<<< HEAD
|
||||
METHOD render_head.
|
||||
DATA lo_html TYPE REF TO lcl_html_helper.
|
||||
DATA ls_count TYPE lcl_diff=>ty_count.
|
||||
|
@ -17296,9 +17401,15 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
|
||||
ro_html = lo_html.
|
||||
ENDMETHOD.
|
||||
=======
|
||||
METHOD render_stats.
|
||||
|
||||
DATA: ls_count TYPE lcl_diff=>ty_count.
|
||||
>>>>>>> master
|
||||
|
||||
METHOD render_diff.
|
||||
|
||||
<<<<<<< HEAD
|
||||
DATA lo_html TYPE REF TO lcl_html_helper.
|
||||
DATA lt_diffs TYPE lcl_diff=>ty_diffs_tt.
|
||||
DATA lv_index TYPE i.
|
||||
|
@ -17310,10 +17421,74 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
DATA lv_anchor_name TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF lt_diffs.
|
||||
=======
|
||||
ls_count = mo_diff->stats( ).
|
||||
rv_html = '<table border="1">' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td>Insert</td>' && gc_newline &&
|
||||
'<td>' &&
|
||||
ls_count-insert &&
|
||||
'</td>' && gc_newline &&
|
||||
'</tr>' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td>Delete</td>' && gc_newline &&
|
||||
'<td>' &&
|
||||
ls_count-delete &&
|
||||
'</td>' && gc_newline &&
|
||||
'</tr>' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td>Update</td>' && gc_newline &&
|
||||
'<td>' &&
|
||||
ls_count-update &&
|
||||
'</td>' && gc_newline &&
|
||||
'</tr>' && gc_newline &&
|
||||
'</table><br>' && gc_newline.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_gui_page~render.
|
||||
|
||||
DATA: lv_html TYPE string,
|
||||
lv_local TYPE string,
|
||||
lv_remote TYPE string,
|
||||
lv_clocal TYPE string,
|
||||
lv_cremote TYPE string,
|
||||
lv_index TYPE i,
|
||||
lt_diffs TYPE lcl_diff=>ty_diffs_tt,
|
||||
lv_anchor_count LIKE sy-tabix,
|
||||
lv_break TYPE string,
|
||||
lv_href TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF lt_diffs,
|
||||
<ls_break> LIKE LINE OF lt_diffs.
|
||||
|
||||
|
||||
lv_html = lcl_gui=>header( ) &&
|
||||
'<div id="header">' &&
|
||||
'<h1>diff</h1> <a href="sapevent:back">Back</a>' &&
|
||||
'</div>' &&
|
||||
'<div id="toc">' &&
|
||||
'<h3>' &&
|
||||
ms_result-obj_type && ' ' &&
|
||||
ms_result-obj_name && ' ' &&
|
||||
ms_result-filename && '</h3><br><br>' &&
|
||||
render_stats( ).
|
||||
|
||||
lv_html = lv_html &&
|
||||
'<table border="0">' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<th></td>' && gc_newline &&
|
||||
'<th><h2>Local</h2></th>' && gc_newline &&
|
||||
|<th><a href=#diff_1><></a></th>| && gc_newline &&
|
||||
'<th></td>' && gc_newline &&
|
||||
'<th><h2>Remote</h2></th>' && gc_newline &&
|
||||
'</tr>'.
|
||||
>>>>>>> master
|
||||
|
||||
CREATE OBJECT lo_html.
|
||||
lt_diffs = mo_diff->get( ).
|
||||
|
||||
<<<<<<< HEAD
|
||||
lo_html->add( '<div class="diff_content">' ). "#EC NOTEXT
|
||||
lo_html->add( '<table class="diff_tab">' ). "#EC NOTEXT
|
||||
lo_html->add( '<tr>' ). "#EC NOTEXT
|
||||
|
@ -17327,6 +17502,27 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
lv_index = sy-tabix.
|
||||
lv_local = escape( val = <ls_diff>-local format = cl_abap_format=>e_html_attr ).
|
||||
lv_remote = escape( val = <ls_diff>-remote format = cl_abap_format=>e_html_attr ).
|
||||
=======
|
||||
LOOP AT lt_diffs ASSIGNING <ls_diff> WHERE short = abap_true.
|
||||
lv_index = sy-tabix + 1.
|
||||
READ TABLE lt_diffs INDEX lv_index ASSIGNING <ls_break>.
|
||||
IF sy-subrc = 0 AND <ls_break>-short = abap_false.
|
||||
lv_break = '<tr>' && gc_newline &&
|
||||
'<td> <br> </td>' && gc_newline &&
|
||||
'<td></td>' && gc_newline &&
|
||||
'<td></td>' && gc_newline &&
|
||||
'<td></td>' && gc_newline &&
|
||||
'<td></td>' && gc_newline &&
|
||||
'</tr>'.
|
||||
ELSE.
|
||||
CLEAR lv_break.
|
||||
ENDIF.
|
||||
|
||||
lv_local = escape( val = <ls_diff>-local
|
||||
format = cl_abap_format=>e_html_attr ).
|
||||
lv_remote = escape( val = <ls_diff>-remote
|
||||
format = cl_abap_format=>e_html_attr ).
|
||||
>>>>>>> master
|
||||
|
||||
CLEAR: lv_attr_local, lv_attr_remote.
|
||||
CASE <ls_diff>-result.
|
||||
|
@ -17339,6 +17535,7 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
lv_attr_remote = ' class="diff_del"'. "#EC NOTEXT
|
||||
ENDCASE.
|
||||
|
||||
<<<<<<< HEAD
|
||||
lo_html->add( '<tr>' ). "#EC NOTEXT
|
||||
lo_html->add( |<td class="num">{ lv_index }</td>| ). "#EC NOTEXT
|
||||
lo_html->add( |<td{ lv_attr_local }>{ lv_local }</td>| ). "#EC NOTEXT
|
||||
|
@ -17390,6 +17587,35 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
|||
lo_html->add( lcl_gui=>footer( ) ).
|
||||
|
||||
rv_html = lo_html->mv_html.
|
||||
=======
|
||||
IF <ls_diff>-result = lcl_diff=>c_diff-delete
|
||||
OR <ls_diff>-result = lcl_diff=>c_diff-insert
|
||||
OR <ls_diff>-result = lcl_diff=>c_diff-update.
|
||||
lv_anchor_count = lv_anchor_count + 1.
|
||||
lv_href = |<a name="diff_{
|
||||
lv_anchor_count
|
||||
}" href="#diff_{
|
||||
lv_anchor_count + 1
|
||||
}">{ <ls_diff>-result }</a>|.
|
||||
ELSE.
|
||||
CLEAR lv_href.
|
||||
ENDIF.
|
||||
|
||||
lv_html = lv_html &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td>' && <ls_diff>-local_line && '</td>' && gc_newline &&
|
||||
'<td' && lv_clocal && '><pre>' && lv_local && '</pre></td>' && gc_newline &&
|
||||
'<td> ' && lv_href && ' </td>' && gc_newline &&
|
||||
'<td>' && <ls_diff>-remote_line && '</td>' && gc_newline &&
|
||||
'<td' && lv_cremote && '><pre>' && lv_remote && '</pre></td>' && gc_newline &&
|
||||
'</tr>' && lv_break && gc_newline.
|
||||
ENDLOOP.
|
||||
|
||||
rv_html = lv_html && gc_newline &&
|
||||
'</table>' && gc_newline &&
|
||||
'</div>' && gc_newline &&
|
||||
lcl_gui=>footer( ).
|
||||
>>>>>>> master
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -17957,6 +18183,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
lv_branch_name TYPE string,
|
||||
lv_icon_ok TYPE icon-name,
|
||||
lv_icon_br TYPE icon-name,
|
||||
lv_icon_msg TYPE icon-name,
|
||||
lo_repo TYPE REF TO lcl_repo_online,
|
||||
lt_fields TYPE TABLE OF sval.
|
||||
|
||||
|
@ -17983,6 +18210,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
|
||||
lv_icon_ok = icon_okay.
|
||||
lv_icon_br = icon_workflow_fork.
|
||||
lv_icon_msg = icon_msg.
|
||||
|
||||
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
|
||||
EXPORTING
|
||||
|
@ -17993,6 +18221,8 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
icon_ok_push = lv_icon_ok
|
||||
first_pushbutton = 'Select branch'
|
||||
icon_button_1 = lv_icon_br
|
||||
second_pushbutton = 'Create package'
|
||||
icon_button_2 = lv_icon_msg
|
||||
IMPORTING
|
||||
returncode = lv_returncode
|
||||
TABLES
|
||||
|
@ -18044,25 +18274,26 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
rv_html =
|
||||
'<div id="header">' && gc_newline &&
|
||||
'<table class="mixedbar logobar">' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td class="logo">' && gc_newline &&
|
||||
'<a href="sapevent:abapgithome">' && gc_newline &&
|
||||
|<img src="{ lcl_gui=>get_logo_src( ) }"></a>| && gc_newline &&
|
||||
'<div id="header">' && gc_newline &&
|
||||
'<table class="mixedbar logobar">' && gc_newline &&
|
||||
'<tr>' && gc_newline &&
|
||||
'<td class="logo">' && gc_newline &&
|
||||
'<a href="sapevent:abapgithome">' && gc_newline &&
|
||||
|<img src="{ lcl_gui=>get_logo_src( ) }"></a>| && gc_newline &&
|
||||
'<a href="sapevent:zipexport_gui" class="bkg">e</a>' && gc_newline &&
|
||||
'<a href="sapevent:db" class="bkg">d</a>' && gc_newline &&
|
||||
'</td>' && gc_newline &&
|
||||
'<td class="right menu">' && gc_newline &&
|
||||
'<a href="sapevent:refresh">Refresh All</a>' && gc_newline &&
|
||||
'<a href="sapevent:install">Clone</a>' && gc_newline &&
|
||||
'<a href="sapevent:explore">Explore</a>' && gc_newline &&
|
||||
|{ lv_install }| && gc_newline &&
|
||||
'<a class="menu_end" href="sapevent:newoffline">New Offline Repo</a>' && gc_newline &&
|
||||
'</td>' && gc_newline &&
|
||||
'<td class="right menu">' && gc_newline &&
|
||||
'<a href="sapevent:refresh">Refresh All</a>' && gc_newline &&
|
||||
'<a href="sapevent:install">Clone</a>' && gc_newline &&
|
||||
'<a href="sapevent:explore">Explore</a>' && gc_newline &&
|
||||
|{ lv_install }| && gc_newline &&
|
||||
'<a class="menu_end" href="sapevent:newoffline">' &&
|
||||
'New Offline Repo</a>' && gc_newline &&
|
||||
'</td>' && gc_newline &&
|
||||
'</tr>' && gc_newline &&
|
||||
'</table>' && gc_newline &&
|
||||
'</div>' && gc_newline.
|
||||
'</div>' && gc_newline ##NO_TEXT.
|
||||
|
||||
ENDMETHOD. "render_menu
|
||||
|
||||
|
@ -18119,7 +18350,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
'<a href="sapevent:files_commit?' &&
|
||||
io_repo->get_key( ) &&
|
||||
'">' && 'Export files and commit' &&
|
||||
'</a>' && gc_newline.
|
||||
'</a>' && gc_newline ##NO_TEXT.
|
||||
ENDIF.
|
||||
|
||||
rv_html = rv_html && '</div>'. "#EC NOTEXT
|
||||
|
@ -18360,7 +18591,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
iv_url = lv_url
|
||||
iv_target_package = lv_target_package ).
|
||||
|
||||
lcl_sap_package=>create( lv_target_package ).
|
||||
lcl_sap_package=>create_local( lv_target_package ).
|
||||
|
||||
lo_repo = lcl_repo_srv=>new_online(
|
||||
iv_url = lv_url
|
||||
|
@ -18394,34 +18625,40 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
LOOP AT lt_repo INTO lo_repo.
|
||||
TRY.
|
||||
lo_repo_online ?= lo_repo.
|
||||
lv_url = lo_repo_online->get_url( ).
|
||||
lv_package = lo_repo_online->get_package( ).
|
||||
IF to_upper( lv_url ) <> to_upper( iv_url ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF iv_target_package IS NOT INITIAL AND iv_target_package <> lv_package.
|
||||
lv_err = |Installation to package { lv_package } detected. Cancelling installation|.
|
||||
_raise lv_err.
|
||||
ENDIF.
|
||||
|
||||
rv_installed = abap_true.
|
||||
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CONTINUE. "the repositories we're looking for are online-repositories
|
||||
ENDTRY.
|
||||
|
||||
lv_url = lo_repo_online->get_url( ).
|
||||
lv_package = lo_repo_online->get_package( ).
|
||||
IF to_upper( lv_url ) <> to_upper( iv_url ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF iv_target_package IS NOT INITIAL AND iv_target_package <> lv_package.
|
||||
lv_err = |Installation to package { lv_package } detected. Cancelling installation|.
|
||||
_raise lv_err.
|
||||
ENDIF.
|
||||
|
||||
rv_installed = abap_true.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "is_repo_installed
|
||||
|
||||
METHOD needs_installation.
|
||||
|
||||
CONSTANTS:
|
||||
c_abapgit TYPE string VALUE 'https://github.com/larshp/abapGit.git',
|
||||
c_plugins TYPE string VALUE 'https://github.com/larshp/abapGit-plugins.git' ##NO_TEXT.
|
||||
|
||||
TRY.
|
||||
IF is_repo_installed( 'https://github.com/larshp/abapGit.git' ) = abap_false
|
||||
OR is_repo_installed( 'https://github.com/larshp/abapGit-plugins.git' ) = abap_false.
|
||||
IF is_repo_installed( c_abapgit ) = abap_false
|
||||
OR is_repo_installed( c_plugins ) = abap_false.
|
||||
rv_not_completely_installed = abap_true.
|
||||
ENDIF.
|
||||
CATCH lcx_exception.
|
||||
rv_not_completely_installed = abap_false. "cannot be installed anyway in this case, e.g. no connection
|
||||
* cannot be installed anyway in this case, e.g. no connection
|
||||
rv_not_completely_installed = abap_false.
|
||||
ENDTRY.
|
||||
ENDMETHOD. "needs_installation
|
||||
|
||||
|
@ -18685,11 +18922,12 @@ FORM branch_popup TABLES tt_fields STRUCTURE sval
|
|||
RAISING lcx_exception ##called ##needed.
|
||||
* called dynamically from function module POPUP_GET_VALUES_USER_BUTTONS
|
||||
|
||||
DATA: lv_url TYPE string,
|
||||
lv_answer TYPE c,
|
||||
lx_error TYPE REF TO lcx_exception,
|
||||
lt_selection TYPE TABLE OF spopli,
|
||||
lt_branches TYPE lcl_git_transport=>ty_branch_list_tt.
|
||||
DATA: lv_url TYPE string,
|
||||
lv_answer TYPE c,
|
||||
lx_error TYPE REF TO lcx_exception,
|
||||
lt_selection TYPE TABLE OF spopli,
|
||||
ls_package_data TYPE scompkdtln,
|
||||
lt_branches TYPE lcl_git_transport=>ty_branch_list_tt.
|
||||
|
||||
FIELD-SYMBOLS: <ls_fbranch> LIKE LINE OF tt_fields,
|
||||
<ls_branch> LIKE LINE OF lt_branches,
|
||||
|
@ -18749,6 +18987,36 @@ FORM branch_popup TABLES tt_fields STRUCTURE sval
|
|||
ASSERT sy-subrc = 0.
|
||||
<ls_fbranch>-value = <ls_sel>-varoption.
|
||||
|
||||
ELSEIF pv_code = 'COD2'.
|
||||
cv_show_popup = abap_true.
|
||||
|
||||
CALL FUNCTION 'FUNCTION_EXISTS'
|
||||
EXPORTING
|
||||
funcname = 'PB_POPUP_PACKAGE_CREATE'
|
||||
EXCEPTIONS
|
||||
function_not_exist = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 1.
|
||||
* looks like the function module used does not exist on all
|
||||
* versions since 702, so show an error
|
||||
_raise 'Function module PB_POPUP_PACKAGE_CREATE does not exist'.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'PB_POPUP_PACKAGE_CREATE'
|
||||
CHANGING
|
||||
p_object_data = ls_package_data
|
||||
EXCEPTIONS
|
||||
action_cancelled = 1.
|
||||
IF sy-subrc = 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lcl_sap_package=>create( ls_package_data ).
|
||||
COMMIT WORK.
|
||||
|
||||
READ TABLE tt_fields ASSIGNING <ls_fbranch> WITH KEY tabname = 'TDEVC'.
|
||||
ASSERT sy-subrc = 0.
|
||||
<ls_fbranch>-value = ls_package_data-devclass.
|
||||
ENDIF.
|
||||
|
||||
ENDFORM. "branch_popup
|
||||
|
@ -19699,7 +19967,7 @@ CLASS ltcl_dangerous IMPLEMENTATION.
|
|||
<lv_type> LIKE LINE OF lt_types.
|
||||
|
||||
|
||||
lcl_sap_package=>create( c_package ).
|
||||
lcl_sap_package=>create_local( c_package ).
|
||||
|
||||
lt_types = lcl_objects=>supported_list( ).
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user