From 5a01c650ea751e9c3533de4b1e112e592b1a3e1e Mon Sep 17 00:00:00 2001 From: larshp Date: Thu, 7 Jul 2016 15:05:45 +0000 Subject: [PATCH] DOCV DOCT support added, close #152 --- src/zabapgit.prog.abap | 4 +- src/zabapgit_forms.prog.abap | 2 +- src/zabapgit_html.prog.abap | 5 +- src/zabapgit_object_doct.prog.abap | 134 +++++++++++++++++++ src/zabapgit_object_doct.prog.xml | 48 +++++++ src/zabapgit_object_docv.prog.abap | 138 ++++++++++++++++++++ src/zabapgit_object_docv.prog.xml | 48 +++++++ src/zabapgit_page_branch_overview.prog.abap | 8 +- 8 files changed, 379 insertions(+), 8 deletions(-) create mode 100644 src/zabapgit_object_doct.prog.abap create mode 100644 src/zabapgit_object_doct.prog.xml create mode 100644 src/zabapgit_object_docv.prog.abap create mode 100644 src/zabapgit_object_docv.prog.xml diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 58b574804..2d67a86f9 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -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. diff --git a/src/zabapgit_forms.prog.abap b/src/zabapgit_forms.prog.abap index 06523c526..df6580d57 100644 --- a/src/zabapgit_forms.prog.abap +++ b/src/zabapgit_forms.prog.abap @@ -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 diff --git a/src/zabapgit_html.prog.abap b/src/zabapgit_html.prog.abap index 66bd03288..15343cd3c 100644 --- a/src/zabapgit_html.prog.abap +++ b/src/zabapgit_html.prog.abap @@ -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 diff --git a/src/zabapgit_object_doct.prog.abap b/src/zabapgit_object_doct.prog.abap new file mode 100644 index 000000000..708606882 --- /dev/null +++ b/src/zabapgit_object_doct.prog.abap @@ -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 \ No newline at end of file diff --git a/src/zabapgit_object_doct.prog.xml b/src/zabapgit_object_doct.prog.xml new file mode 100644 index 000000000..6cf5b9d7b --- /dev/null +++ b/src/zabapgit_object_doct.prog.xml @@ -0,0 +1,48 @@ + + + + + + ZABAPGIT_OBJECT_DOCT + A + + + X + + + + + + I + + + + 0000-00-00 + + 0000-00-00 + + + + + E + + + 0000-00-00 + + 0000-00-00 + + + X + + + + R + + Include ZABAPGIT_OBJECT_DOCT + 28 + + + + + + diff --git a/src/zabapgit_object_docv.prog.abap b/src/zabapgit_object_docv.prog.abap new file mode 100644 index 000000000..1b2e3dde7 --- /dev/null +++ b/src/zabapgit_object_docv.prog.abap @@ -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 \ No newline at end of file diff --git a/src/zabapgit_object_docv.prog.xml b/src/zabapgit_object_docv.prog.xml new file mode 100644 index 000000000..474bad8a3 --- /dev/null +++ b/src/zabapgit_object_docv.prog.xml @@ -0,0 +1,48 @@ + + + + + + ZABAPGIT_OBJECT_DOCV + A + + + X + + + + + + I + + + + 0000-00-00 + + 0000-00-00 + + 750 + + + E + + + 0000-00-00 + + 0000-00-00 + + + X + + + + R + + Include ZABAPGIT_OBJECT_DOCT + 28 + + + + + + diff --git a/src/zabapgit_page_branch_overview.prog.abap b/src/zabapgit_page_branch_overview.prog.abap index b1f8457f8..8a4fc3547 100644 --- a/src/zabapgit_page_branch_overview.prog.abap +++ b/src/zabapgit_page_branch_overview.prog.abap @@ -404,8 +404,8 @@ CLASS lcl_gui_page_branch_overview IMPLEMENTATION. ro_html->add( '
' ). 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( '' ). ro_html->add( '
' ). @@ -432,7 +432,8 @@ CLASS lcl_gui_page_branch_overview IMPLEMENTATION. _add ''. ro_html->add( '' ). + 'cloudflare.com/ajax/libs/gitgraph.js/1.2.3/gitgraph.min.js">' && + '' ) ##NO_TEXT. _add '