DOCV DOCT support added, close #152

This commit is contained in:
larshp 2016-07-07 15:05:45 +00:00
parent bc0bfc651e
commit 5a01c650ea
8 changed files with 379 additions and 8 deletions

View File

@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
* See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.13.2'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.14.0'. "#EC NOTEXT
********************************************************************************
* The MIT License (MIT)
@ -104,6 +104,8 @@ INCLUDE zabapgit_object_shlp.
INCLUDE zabapgit_object_tran.
INCLUDE zabapgit_object_tobj.
INCLUDE zabapgit_object_msag.
INCLUDE zabapgit_object_doct.
INCLUDE zabapgit_object_docv.
INCLUDE zabapgit_repo_impl.
INCLUDE zabapgit_background.
INCLUDE zabapgit_zip.

View File

@ -154,7 +154,7 @@ FORM output.
DATA: lt_ucomm TYPE TABLE OF sy-ucomm.
PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND.
APPEND: 'CRET' TO lt_ucomm. "Button Execute
APPEND 'CRET' TO lt_ucomm. "Button Execute
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING

View File

@ -428,9 +428,10 @@ CLASS lcl_html_toolbar DEFINITION FINAL.
opt TYPE char1,
typ TYPE char1,
END OF ty_item.
TYPES: tt_items TYPE STANDARD TABLE OF ty_item.
DATA mt_items TYPE tt_items.
TYPES tt_items TYPE STANDARD TABLE OF ty_item.
DATA mt_items TYPE tt_items.
ENDCLASS. "lcl_html_toolbar DEFINITION

View File

@ -0,0 +1,134 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DOCT
*&---------------------------------------------------------------------*
CLASS lcl_object_doct DEFINITION INHERITING FROM lcl_objects_super FINAL.
PUBLIC SECTION.
INTERFACES lif_object.
ALIASES mo_files FOR lif_object~mo_files.
PRIVATE SECTION.
CONSTANTS: c_id TYPE dokhl-id VALUE 'TX',
c_typ TYPE dokhl-typ VALUE 'E',
c_version TYPE dokhl-dokversion VALUE '0001',
c_name TYPE string VALUE 'DOC'.
TYPES: BEGIN OF ty_data,
doctitle TYPE dsyst-doktitle,
head TYPE thead,
lines TYPE tlinet,
END OF ty_data.
ENDCLASS. "lcl_object_msag DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_doct IMPLEMENTATION.
METHOD lif_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "lif_object~get_metadata
METHOD lif_object~exists.
DATA: lv_id TYPE dokil-id,
lv_object TYPE dokhl-object.
lv_object = ms_item-obj_name.
SELECT SINGLE id FROM dokil INTO lv_id
WHERE id = c_id
AND object = lv_object. "#EC CI_GENBUFF
rv_bool = boolc( sy-subrc = 0 ).
ENDMETHOD. "lif_object~exists
METHOD lif_object~jump.
_raise 'todo, jump DOCT'.
ENDMETHOD. "jump
METHOD lif_object~delete.
DATA: lv_object TYPE dokhl-object.
lv_object = ms_item-obj_name.
CALL FUNCTION 'DOCU_DEL'
EXPORTING
id = c_id
langu = mv_language
object = lv_object
typ = c_typ
EXCEPTIONS
ret_code = 1
OTHERS = 2.
IF sy-subrc <> 0.
_raise 'error from DOCU_DEL'.
ENDIF.
ENDMETHOD. "delete
METHOD lif_object~deserialize.
DATA: ls_data TYPE ty_data.
io_xml->read( EXPORTING iv_name = c_name
CHANGING cg_data = ls_data ).
CALL FUNCTION 'DOCU_UPDATE'
EXPORTING
head = ls_data-head
state = 'A'
typ = c_typ
version = c_version
TABLES
line = ls_data-lines.
ENDMETHOD. "deserialize
METHOD lif_object~serialize.
DATA: lv_object TYPE dokhl-object,
ls_data TYPE ty_data.
lv_object = ms_item-obj_name.
CALL FUNCTION 'DOCU_READ'
EXPORTING
id = c_id
langu = mv_language
object = lv_object
typ = c_typ
version = c_version
IMPORTING
doktitle = ls_data-doctitle
head = ls_data-head
TABLES
line = ls_data-lines.
CLEAR: ls_data-head-tdfuser,
ls_data-head-tdfreles,
ls_data-head-tdfdate,
ls_data-head-tdftime,
ls_data-head-tdluser,
ls_data-head-tdlreles,
ls_data-head-tdldate,
ls_data-head-tdltime.
io_xml->add( iv_name = c_name
ig_data = ls_data ).
ENDMETHOD. "serialize
ENDCLASS. "lcl_object_msag IMPLEMENTATION

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>ZABAPGIT_OBJECT_DOCT</NAME>
<STATE>A</STATE>
<SQLX/>
<EDTX/>
<VARCL>X</VARCL>
<DBAPL/>
<DBNA/>
<CLAS/>
<TYPE/>
<OCCURS/>
<SUBC>I</SUBC>
<APPL/>
<SECU/>
<CNAM/>
<CDAT>0000-00-00</CDAT>
<UNAM/>
<UDAT>0000-00-00</UDAT>
<VERN/>
<LEVL/>
<RSTAT/>
<RMAND/>
<RLOAD>E</RLOAD>
<FIXPT/>
<SSET/>
<SDATE>0000-00-00</SDATE>
<STIME/>
<IDATE>0000-00-00</IDATE>
<ITIME/>
<LDBNAME/>
<UCCHECK>X</UCCHECK>
</PROGDIR>
<TPOOL>
<item>
<ID>R</ID>
<KEY/>
<ENTRY>Include ZABAPGIT_OBJECT_DOCT</ENTRY>
<LENGTH>28</LENGTH>
<SPLIT/>
</item>
</TPOOL>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,138 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DOCT
*&---------------------------------------------------------------------*
CLASS lcl_object_docv DEFINITION INHERITING FROM lcl_objects_super FINAL.
PUBLIC SECTION.
INTERFACES lif_object.
ALIASES mo_files FOR lif_object~mo_files.
PRIVATE SECTION.
CONSTANTS: c_typ TYPE dokhl-typ VALUE 'E',
c_version TYPE dokhl-dokversion VALUE '0001',
c_name TYPE string VALUE 'DOC'.
TYPES: BEGIN OF ty_data,
doctitle TYPE dsyst-doktitle,
head TYPE thead,
lines TYPE tlinet,
END OF ty_data.
ENDCLASS. "lcl_object_msag DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_docv IMPLEMENTATION.
METHOD lif_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "lif_object~get_metadata
METHOD lif_object~exists.
DATA: lv_id TYPE dokhl-id,
lv_object TYPE dokhl-object.
lv_id = ms_item-obj_name(2).
lv_object = ms_item-obj_name+2.
SELECT SINGLE id FROM dokil INTO lv_id
WHERE id = lv_id
AND object = lv_object. "#EC CI_GENBUFF
rv_bool = boolc( sy-subrc = 0 ).
ENDMETHOD. "lif_object~exists
METHOD lif_object~jump.
_raise 'todo, jump DOCT'.
ENDMETHOD. "jump
METHOD lif_object~delete.
DATA: lv_id TYPE dokhl-id,
lv_object TYPE dokhl-object.
lv_id = ms_item-obj_name(2).
lv_object = ms_item-obj_name+2.
CALL FUNCTION 'DOCU_DEL'
EXPORTING
id = lv_id
langu = mv_language
object = lv_object
typ = c_typ
EXCEPTIONS
ret_code = 1
OTHERS = 2.
IF sy-subrc <> 0.
_raise 'error from DOCU_DEL'.
ENDIF.
ENDMETHOD. "delete
METHOD lif_object~deserialize.
DATA: ls_data TYPE ty_data.
io_xml->read( EXPORTING iv_name = c_name
CHANGING cg_data = ls_data ).
CALL FUNCTION 'DOCU_UPDATE'
EXPORTING
head = ls_data-head
state = 'A'
typ = c_typ
version = c_version
TABLES
line = ls_data-lines.
ENDMETHOD. "deserialize
METHOD lif_object~serialize.
DATA: lv_object TYPE dokhl-object,
ls_data TYPE ty_data,
lv_id TYPE dokhl-id.
lv_id = ms_item-obj_name(2).
lv_object = ms_item-obj_name+2.
CALL FUNCTION 'DOCU_READ'
EXPORTING
id = lv_id
langu = mv_language
object = lv_object
typ = c_typ
version = c_version
IMPORTING
doktitle = ls_data-doctitle
head = ls_data-head
TABLES
line = ls_data-lines.
CLEAR: ls_data-head-tdfuser,
ls_data-head-tdfreles,
ls_data-head-tdfdate,
ls_data-head-tdftime,
ls_data-head-tdluser,
ls_data-head-tdlreles,
ls_data-head-tdldate,
ls_data-head-tdltime.
io_xml->add( iv_name = c_name
ig_data = ls_data ).
ENDMETHOD. "serialize
ENDCLASS. "lcl_object_msag IMPLEMENTATION

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>ZABAPGIT_OBJECT_DOCV</NAME>
<STATE>A</STATE>
<SQLX/>
<EDTX/>
<VARCL>X</VARCL>
<DBAPL/>
<DBNA/>
<CLAS/>
<TYPE/>
<OCCURS/>
<SUBC>I</SUBC>
<APPL/>
<SECU/>
<CNAM/>
<CDAT>0000-00-00</CDAT>
<UNAM/>
<UDAT>0000-00-00</UDAT>
<VERN/>
<LEVL>750</LEVL>
<RSTAT/>
<RMAND/>
<RLOAD>E</RLOAD>
<FIXPT/>
<SSET/>
<SDATE>0000-00-00</SDATE>
<STIME/>
<IDATE>0000-00-00</IDATE>
<ITIME/>
<LDBNAME/>
<UCCHECK>X</UCCHECK>
</PROGDIR>
<TPOOL>
<item>
<ID>R</ID>
<KEY/>
<ENTRY>Include ZABAPGIT_OBJECT_DOCT</ENTRY>
<LENGTH>28</LENGTH>
<SPLIT/>
</item>
</TPOOL>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -404,8 +404,8 @@ CLASS lcl_gui_page_branch_overview IMPLEMENTATION.
ro_html->add( '<form id="commit_form" method="post" action="sapevent:merge">' ).
ro_html->add( 'Merge' ) ##NO_TEXT.
ro_html->add( form_select( 'source' ) ).
ro_html->add( 'into' ).
ro_html->add( form_select( 'target' ) ).
ro_html->add( 'into' ) ##NO_TEXT.
ro_html->add( form_select( 'target' ) ) ##NO_TEXT.
ro_html->add( '<input type="submit" value="Submit">' ).
ro_html->add( '</form>' ).
@ -432,7 +432,8 @@ CLASS lcl_gui_page_branch_overview IMPLEMENTATION.
_add '<canvas id="gitGraph"></canvas>'.
ro_html->add( '<script type="text/javascript" src="https://cdnjs.' &&
'cloudflare.com/ajax/libs/gitgraph.js/1.2.3/gitgraph.min.js"></script>' ).
'cloudflare.com/ajax/libs/gitgraph.js/1.2.3/gitgraph.min.js">' &&
'</script>' ) ##NO_TEXT.
_add '<script type="text/javascript">'.
_add 'var myTemplateConfig = {'.
@ -529,7 +530,6 @@ CLASS lcl_gui_page_branch_overview IMPLEMENTATION.
METHOD decode_merge.
DATA: lv_string TYPE string,
ls_content TYPE lcl_persistence_db=>ty_content,
lt_fields TYPE tihttpnvp.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.