mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
interface and factory for persist_repo
This commit is contained in:
parent
e9a2d30950
commit
273947240c
32
src/persist/zcl_abapgit_persist_factory.clas.abap
Normal file
32
src/persist/zcl_abapgit_persist_factory.clas.abap
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
CLASS zcl_abapgit_persist_factory DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
CREATE PRIVATE
|
||||||
|
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_persist_injector .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS get_repo
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_repo) TYPE REF TO zif_abapgit_persist_repo .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
CLASS-DATA gi_repo TYPE REF TO zif_abapgit_persist_repo .
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_ABAPGIT_PERSIST_FACTORY IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_repo.
|
||||||
|
|
||||||
|
IF gi_repo IS INITIAL.
|
||||||
|
CREATE OBJECT gi_repo TYPE zcl_abapgit_persistence_repo.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_repo = gi_repo.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
17
src/persist/zcl_abapgit_persist_factory.clas.xml
Normal file
17
src/persist/zcl_abapgit_persist_factory.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_PERSIST_FACTORY</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Persistence Factory</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
25
src/persist/zcl_abapgit_persist_injector.clas.abap
Normal file
25
src/persist/zcl_abapgit_persist_injector.clas.abap
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
CLASS zcl_abapgit_persist_injector DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
CREATE PRIVATE
|
||||||
|
FOR TESTING .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS set_repo
|
||||||
|
IMPORTING
|
||||||
|
!ii_repo TYPE REF TO zif_abapgit_persist_repo .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_ABAPGIT_PERSIST_INJECTOR IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_repo.
|
||||||
|
|
||||||
|
zcl_abapgit_persist_factory=>gi_repo = ii_repo.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
18
src/persist/zcl_abapgit_persist_injector.clas.xml
Normal file
18
src/persist/zcl_abapgit_persist_injector.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_PERSIST_INJECTOR</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Persistence Injector</DESCRIPT>
|
||||||
|
<CATEGORY>05</CATEGORY>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -1,96 +1,20 @@
|
||||||
CLASS zcl_abapgit_persistence_repo DEFINITION
|
CLASS zcl_abapgit_persistence_repo DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PUBLIC .
|
CREATE PROTECTED
|
||||||
|
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_persist_factory .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
METHODS constructor .
|
INTERFACES zif_abapgit_persist_repo .
|
||||||
METHODS list
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_repos) TYPE zif_abapgit_persistence=>tt_repo
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_local_checksums
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!it_checksums TYPE zif_abapgit_persistence=>ty_repo_xml-local_checksums
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_url
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!iv_url TYPE zif_abapgit_persistence=>ty_repo_xml-url
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_branch_name
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!iv_branch_name TYPE zif_abapgit_persistence=>ty_repo_xml-branch_name
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_head_branch
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!iv_head_branch TYPE zif_abapgit_persistence=>ty_repo_xml-head_branch
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_offline
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!iv_offline TYPE zif_abapgit_persistence=>ty_repo_xml-offline
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_dot_abapgit
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS add
|
|
||||||
IMPORTING
|
|
||||||
!iv_url TYPE string
|
|
||||||
!iv_branch_name TYPE string
|
|
||||||
!iv_branch TYPE zif_abapgit_definitions=>ty_sha1 OPTIONAL
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
!iv_offline TYPE sap_bool DEFAULT abap_false
|
|
||||||
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS delete
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS read
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_repo) TYPE zif_abapgit_persistence=>ty_repo
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception
|
|
||||||
zcx_abapgit_not_found .
|
|
||||||
METHODS lock
|
|
||||||
IMPORTING
|
|
||||||
!iv_mode TYPE enqmode
|
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_local_settings
|
|
||||||
IMPORTING
|
|
||||||
iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
is_settings TYPE zif_abapgit_persistence=>ty_repo_xml-local_settings
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS update_deserialized
|
|
||||||
IMPORTING
|
|
||||||
iv_key TYPE zif_abapgit_persistence=>ty_value
|
|
||||||
iv_deserialized_at TYPE timestampl
|
|
||||||
iv_deserialized_by TYPE xubname
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
|
METHODS constructor .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
ALIASES list
|
||||||
|
FOR zif_abapgit_persist_repo~list .
|
||||||
|
ALIASES read
|
||||||
|
FOR zif_abapgit_persist_repo~read .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA mo_db TYPE REF TO zcl_abapgit_persistence_db .
|
DATA mo_db TYPE REF TO zcl_abapgit_persistence_db .
|
||||||
|
@ -116,32 +40,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_PERSISTENCE_REPO IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add.
|
|
||||||
|
|
||||||
DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo,
|
|
||||||
lv_repo_as_xml TYPE string.
|
|
||||||
|
|
||||||
|
|
||||||
ls_repo-url = iv_url.
|
|
||||||
ls_repo-branch_name = iv_branch_name.
|
|
||||||
ls_repo-package = iv_package.
|
|
||||||
ls_repo-offline = iv_offline.
|
|
||||||
ls_repo-created_by = sy-uname.
|
|
||||||
GET TIME STAMP FIELD ls_repo-created_at.
|
|
||||||
ls_repo-dot_abapgit = is_dot_abapgit.
|
|
||||||
|
|
||||||
lv_repo_as_xml = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
rv_key = get_next_id( ).
|
|
||||||
|
|
||||||
mo_db->add( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = rv_key
|
|
||||||
iv_data = lv_repo_as_xml ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -149,19 +48,6 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD delete.
|
|
||||||
|
|
||||||
DATA: lo_background TYPE REF TO zcl_abapgit_persist_background.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_background.
|
|
||||||
lo_background->delete( iv_key ).
|
|
||||||
|
|
||||||
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD from_xml.
|
METHOD from_xml.
|
||||||
|
|
||||||
DATA: lv_xml TYPE string.
|
DATA: lv_xml TYPE string.
|
||||||
|
@ -222,7 +108,58 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD list.
|
METHOD to_xml.
|
||||||
|
|
||||||
|
DATA: ls_xml TYPE zif_abapgit_persistence=>ty_repo_xml.
|
||||||
|
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING is_repo TO ls_xml.
|
||||||
|
|
||||||
|
CALL TRANSFORMATION id
|
||||||
|
SOURCE repo = ls_xml
|
||||||
|
RESULT XML rv_repo_xml_string.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~add.
|
||||||
|
|
||||||
|
DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo,
|
||||||
|
lv_repo_as_xml TYPE string.
|
||||||
|
|
||||||
|
|
||||||
|
ls_repo-url = iv_url.
|
||||||
|
ls_repo-branch_name = iv_branch_name.
|
||||||
|
ls_repo-package = iv_package.
|
||||||
|
ls_repo-offline = iv_offline.
|
||||||
|
ls_repo-created_by = sy-uname.
|
||||||
|
GET TIME STAMP FIELD ls_repo-created_at.
|
||||||
|
ls_repo-dot_abapgit = is_dot_abapgit.
|
||||||
|
|
||||||
|
lv_repo_as_xml = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
rv_key = get_next_id( ).
|
||||||
|
|
||||||
|
mo_db->add( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = rv_key
|
||||||
|
iv_data = lv_repo_as_xml ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~delete.
|
||||||
|
|
||||||
|
DATA: lo_background TYPE REF TO zcl_abapgit_persist_background.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_background.
|
||||||
|
lo_background->delete( iv_key ).
|
||||||
|
|
||||||
|
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~list.
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
ls_content LIKE LINE OF lt_content,
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
@ -240,7 +177,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD lock.
|
METHOD zif_abapgit_persist_repo~lock.
|
||||||
|
|
||||||
mo_db->lock( iv_mode = iv_mode
|
mo_db->lock( iv_mode = iv_mode
|
||||||
iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
@ -249,7 +186,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD read.
|
METHOD zif_abapgit_persist_repo~read.
|
||||||
|
|
||||||
DATA lt_repo TYPE zif_abapgit_persistence=>tt_repo.
|
DATA lt_repo TYPE zif_abapgit_persistence=>tt_repo.
|
||||||
|
|
||||||
|
@ -263,20 +200,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD to_xml.
|
METHOD zif_abapgit_persist_repo~update_branch_name.
|
||||||
|
|
||||||
DATA: ls_xml TYPE zif_abapgit_persistence=>ty_repo_xml.
|
|
||||||
|
|
||||||
|
|
||||||
MOVE-CORRESPONDING is_repo TO ls_xml.
|
|
||||||
|
|
||||||
CALL TRANSFORMATION id
|
|
||||||
SOURCE repo = ls_xml
|
|
||||||
RESULT XML rv_repo_xml_string.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_branch_name.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
ls_content LIKE LINE OF lt_content,
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
@ -301,159 +225,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD update_dot_abapgit.
|
METHOD zif_abapgit_persist_repo~update_deserialized.
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-dot_abapgit = is_dot_abapgit.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_head_branch.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-head_branch = iv_head_branch.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD. "update_head_branch
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_local_checksums.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-local_checksums = it_checksums.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_local_settings.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-local_settings = is_settings.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_offline.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-offline = iv_offline.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD. "update_offline
|
|
||||||
|
|
||||||
|
|
||||||
METHOD update_url.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
|
||||||
ls_content LIKE LINE OF lt_content,
|
|
||||||
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
|
||||||
|
|
||||||
|
|
||||||
IF iv_url IS INITIAL.
|
|
||||||
zcx_abapgit_exception=>raise( 'update, url empty' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ASSERT NOT iv_key IS INITIAL.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ls_repo = read( iv_key ).
|
|
||||||
CATCH zcx_abapgit_not_found.
|
|
||||||
zcx_abapgit_exception=>raise( 'key not found' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ls_repo-url = iv_url.
|
|
||||||
ls_content-data_str = to_xml( ls_repo ).
|
|
||||||
|
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
|
||||||
iv_value = iv_key
|
|
||||||
iv_data = ls_content-data_str ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD update_deserialized.
|
|
||||||
|
|
||||||
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
ls_content LIKE LINE OF lt_content,
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
@ -480,6 +252,159 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
iv_value = iv_key
|
iv_value = iv_key
|
||||||
iv_data = ls_content-data_str ).
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_dot_abapgit.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-dot_abapgit = is_dot_abapgit.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_head_branch.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-head_branch = iv_head_branch.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_local_checksums.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-local_checksums = it_checksums.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_local_settings.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-local_settings = is_settings.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_offline.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-offline = iv_offline.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_repo~update_url.
|
||||||
|
|
||||||
|
DATA: lt_content TYPE zif_abapgit_persistence=>tt_content,
|
||||||
|
ls_content LIKE LINE OF lt_content,
|
||||||
|
ls_repo TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
|
||||||
|
IF iv_url IS INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( 'update, url empty' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ASSERT NOT iv_key IS INITIAL.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ls_repo = read( iv_key ).
|
||||||
|
CATCH zcx_abapgit_not_found.
|
||||||
|
zcx_abapgit_exception=>raise( 'key not found' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ls_repo-url = iv_url.
|
||||||
|
ls_content-data_str = to_xml( ls_repo ).
|
||||||
|
|
||||||
|
mo_db->update( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
|
iv_value = iv_key
|
||||||
|
iv_data = ls_content-data_str ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<VERSION>1</VERSION>
|
<VERSION>1</VERSION>
|
||||||
<LANGU>E</LANGU>
|
<LANGU>E</LANGU>
|
||||||
<DESCRIPT>Repo persistence</DESCRIPT>
|
<DESCRIPT>Repo persistence</DESCRIPT>
|
||||||
<EXPOSURE>2</EXPOSURE>
|
<EXPOSURE>1</EXPOSURE>
|
||||||
<STATE>1</STATE>
|
<STATE>1</STATE>
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
|
|
90
src/persist/zif_abapgit_persist_repo.intf.abap
Normal file
90
src/persist/zif_abapgit_persist_repo.intf.abap
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
INTERFACE zif_abapgit_persist_repo
|
||||||
|
PUBLIC .
|
||||||
|
|
||||||
|
|
||||||
|
METHODS add
|
||||||
|
IMPORTING
|
||||||
|
!iv_url TYPE string
|
||||||
|
!iv_branch_name TYPE string
|
||||||
|
!iv_branch TYPE zif_abapgit_definitions=>ty_sha1 OPTIONAL
|
||||||
|
!iv_package TYPE devclass
|
||||||
|
!iv_offline TYPE sap_bool DEFAULT abap_false
|
||||||
|
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS delete
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS list
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_repos) TYPE zif_abapgit_persistence=>tt_repo
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS lock
|
||||||
|
IMPORTING
|
||||||
|
!iv_mode TYPE enqmode
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS read
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_repo) TYPE zif_abapgit_persistence=>ty_repo
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception
|
||||||
|
zcx_abapgit_not_found .
|
||||||
|
METHODS update_branch_name
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!iv_branch_name TYPE zif_abapgit_persistence=>ty_repo_xml-branch_name
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_deserialized
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_value
|
||||||
|
!iv_deserialized_at TYPE timestampl
|
||||||
|
!iv_deserialized_by TYPE xubname
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_dot_abapgit
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_head_branch
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!iv_head_branch TYPE zif_abapgit_persistence=>ty_repo_xml-head_branch
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_local_checksums
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!it_checksums TYPE zif_abapgit_persistence=>ty_repo_xml-local_checksums
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_local_settings
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!is_settings TYPE zif_abapgit_persistence=>ty_repo_xml-local_settings
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_offline
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!iv_offline TYPE zif_abapgit_persistence=>ty_repo_xml-offline
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS update_url
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!iv_url TYPE zif_abapgit_persistence=>ty_repo_xml-url
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
ENDINTERFACE.
|
16
src/persist/zif_abapgit_persist_repo.intf.xml
Normal file
16
src/persist/zif_abapgit_persist_repo.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_PERSIST_REPO</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Repo persistence</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -125,7 +125,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_direction_option.
|
METHOD add_direction_option.
|
||||||
|
@ -323,12 +323,11 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD render_content.
|
METHOD render_content.
|
||||||
|
|
||||||
DATA: lo_persistence_repo TYPE REF TO zcl_abapgit_persistence_repo,
|
DATA: lt_overview TYPE tty_overview.
|
||||||
lt_overview TYPE tty_overview.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_persistence_repo.
|
|
||||||
|
|
||||||
lt_overview = map_repo_list_to_overview( lo_persistence_repo->list( ) ).
|
lt_overview = map_repo_list_to_overview(
|
||||||
|
zcl_abapgit_persist_factory=>get_repo( )->list( ) ).
|
||||||
|
|
||||||
apply_order_by( CHANGING ct_overview = lt_overview ).
|
apply_order_by( CHANGING ct_overview = lt_overview ).
|
||||||
|
|
||||||
|
@ -351,82 +350,79 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
ENDMETHOD. "render_content
|
ENDMETHOD. "render_content
|
||||||
|
|
||||||
|
|
||||||
METHOD render_text_input.
|
METHOD render_header_bar.
|
||||||
|
|
||||||
DATA lv_attrs TYPE string.
|
io_html->add( |<div class="row">| ).
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
render_order_by( io_html ).
|
||||||
|
render_order_by_direction( io_html ).
|
||||||
|
|
||||||
IF iv_value IS NOT INITIAL.
|
io_html->add( render_text_input( iv_name = |filter|
|
||||||
lv_attrs = | value="{ iv_value }"|.
|
iv_label = |Filter: |
|
||||||
ENDIF.
|
iv_value = mv_filter ) ).
|
||||||
|
|
||||||
IF iv_max_length IS NOT INITIAL.
|
io_html->add( |<input type="submit" class="hidden-submit">| ).
|
||||||
lv_attrs = | maxlength="{ iv_max_length }"|.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ro_html->add( |<label for="{ iv_name }">{ iv_label }</label>| ).
|
io_html->add( |</div>| ).
|
||||||
ro_html->add( |<input id="{ iv_name }" name="{ iv_name }" type="text"{ lv_attrs }>| ).
|
|
||||||
|
|
||||||
ENDMETHOD. " render_text_input
|
io_html->add( |</form>| ).
|
||||||
|
io_html->add( |</div>| ).
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_page~on_event.
|
|
||||||
|
|
||||||
DATA: lv_key TYPE zif_abapgit_persistence=>ty_value.
|
|
||||||
|
|
||||||
CASE iv_action.
|
|
||||||
WHEN gc_action-select.
|
|
||||||
|
|
||||||
lv_key = iv_getdata.
|
|
||||||
|
|
||||||
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lv_key ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
zcl_abapgit_repo_srv=>get_instance( )->get( lv_key )->refresh( ).
|
|
||||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
|
|
||||||
|
|
||||||
WHEN gc_action-change_order_by.
|
|
||||||
|
|
||||||
parse_change_order_by( it_postdata ).
|
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
|
||||||
|
|
||||||
WHEN gc_action-direction.
|
|
||||||
|
|
||||||
parse_direction( it_postdata ).
|
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
|
||||||
|
|
||||||
WHEN gc_action-apply_filter.
|
|
||||||
|
|
||||||
parse_filter( it_postdata ).
|
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD render_table_header.
|
|
||||||
|
|
||||||
io_html->add( |<thead>| ).
|
METHOD render_order_by.
|
||||||
io_html->add( |<tr>| ).
|
|
||||||
io_html->add( |<th>Favorite</th>| ).
|
io_html->add( |Order by: <select name="order_by" onchange="onOrderByChange(this)">| ).
|
||||||
io_html->add( |<th>Type</th>| ).
|
|
||||||
io_html->add( |<th>Key</th>| ).
|
add_order_by_option( iv_option = |TYPE|
|
||||||
io_html->add( |<th>Name</th>| ).
|
io_html = io_html ).
|
||||||
io_html->add( |<th>Url</th>| ).
|
|
||||||
io_html->add( |<th>Package</th>| ).
|
add_order_by_option( iv_option = |KEY|
|
||||||
io_html->add( |<th>Branch name</th>| ).
|
io_html = io_html ).
|
||||||
io_html->add( |<th>Creator</th>| ).
|
|
||||||
io_html->add( |<th>Created at [{ mv_time_zone }]</th>| ).
|
add_order_by_option( iv_option = |NAME|
|
||||||
io_html->add( |<th>Deserialized by</th>| ).
|
io_html = io_html ).
|
||||||
io_html->add( |<th>Deserialized at [{ mv_time_zone }]</th>| ).
|
|
||||||
io_html->add( |<th></th>| ).
|
add_order_by_option( iv_option = |URL|
|
||||||
io_html->add( '</tr>' ).
|
io_html = io_html ).
|
||||||
io_html->add( '</thead>' ).
|
|
||||||
io_html->add( '<tbody>' ).
|
add_order_by_option( iv_option = |PACKAGE|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_order_by_option( iv_option = |BRANCH|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_order_by_option( iv_option = |CREATED_BY|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_order_by_option( iv_option = |CREATED_AT|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_order_by_option( iv_option = |DESERIALIZED_BY|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_order_by_option( iv_option = |DESERIALIZED_AT|
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
io_html->add( |</select>| ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD render_order_by_direction.
|
||||||
|
|
||||||
|
io_html->add( |<select name="direction" onchange="onDirectionChange(this)">| ).
|
||||||
|
|
||||||
|
add_direction_option( iv_option = |ASCENDING|
|
||||||
|
iv_selected = mv_order_descending
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
add_direction_option( iv_option = |DESCENDING|
|
||||||
|
iv_selected = mv_order_descending
|
||||||
|
io_html = io_html ).
|
||||||
|
|
||||||
|
io_html->add( |</select>| ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -501,81 +497,48 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_order_by.
|
METHOD render_table_header.
|
||||||
|
|
||||||
io_html->add( |Order by: <select name="order_by" onchange="onOrderByChange(this)">| ).
|
io_html->add( |<thead>| ).
|
||||||
|
io_html->add( |<tr>| ).
|
||||||
add_order_by_option( iv_option = |TYPE|
|
io_html->add( |<th>Favorite</th>| ).
|
||||||
io_html = io_html ).
|
io_html->add( |<th>Type</th>| ).
|
||||||
|
io_html->add( |<th>Key</th>| ).
|
||||||
add_order_by_option( iv_option = |KEY|
|
io_html->add( |<th>Name</th>| ).
|
||||||
io_html = io_html ).
|
io_html->add( |<th>Url</th>| ).
|
||||||
|
io_html->add( |<th>Package</th>| ).
|
||||||
add_order_by_option( iv_option = |NAME|
|
io_html->add( |<th>Branch name</th>| ).
|
||||||
io_html = io_html ).
|
io_html->add( |<th>Creator</th>| ).
|
||||||
|
io_html->add( |<th>Created at [{ mv_time_zone }]</th>| ).
|
||||||
add_order_by_option( iv_option = |URL|
|
io_html->add( |<th>Deserialized by</th>| ).
|
||||||
io_html = io_html ).
|
io_html->add( |<th>Deserialized at [{ mv_time_zone }]</th>| ).
|
||||||
|
io_html->add( |<th></th>| ).
|
||||||
add_order_by_option( iv_option = |PACKAGE|
|
io_html->add( '</tr>' ).
|
||||||
io_html = io_html ).
|
io_html->add( '</thead>' ).
|
||||||
|
io_html->add( '<tbody>' ).
|
||||||
add_order_by_option( iv_option = |BRANCH|
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
add_order_by_option( iv_option = |CREATED_BY|
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
add_order_by_option( iv_option = |CREATED_AT|
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
add_order_by_option( iv_option = |DESERIALIZED_BY|
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
add_order_by_option( iv_option = |DESERIALIZED_AT|
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
io_html->add( |</select>| ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_order_by_direction.
|
METHOD render_text_input.
|
||||||
|
|
||||||
io_html->add( |<select name="direction" onchange="onDirectionChange(this)">| ).
|
DATA lv_attrs TYPE string.
|
||||||
|
|
||||||
add_direction_option( iv_option = |ASCENDING|
|
CREATE OBJECT ro_html.
|
||||||
iv_selected = mv_order_descending
|
|
||||||
io_html = io_html ).
|
|
||||||
|
|
||||||
add_direction_option( iv_option = |DESCENDING|
|
IF iv_value IS NOT INITIAL.
|
||||||
iv_selected = mv_order_descending
|
lv_attrs = | value="{ iv_value }"|.
|
||||||
io_html = io_html ).
|
ENDIF.
|
||||||
|
|
||||||
io_html->add( |</select>| ).
|
IF iv_max_length IS NOT INITIAL.
|
||||||
|
lv_attrs = | maxlength="{ iv_max_length }"|.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ro_html->add( |<label for="{ iv_name }">{ iv_label }</label>| ).
|
||||||
|
ro_html->add( |<input id="{ iv_name }" name="{ iv_name }" type="text"{ lv_attrs }>| ).
|
||||||
|
|
||||||
|
ENDMETHOD. " render_text_input
|
||||||
|
|
||||||
METHOD render_header_bar.
|
|
||||||
|
|
||||||
io_html->add( |<div class="row">| ).
|
|
||||||
|
|
||||||
render_order_by( io_html ).
|
|
||||||
render_order_by_direction( io_html ).
|
|
||||||
|
|
||||||
io_html->add( render_text_input( iv_name = |filter|
|
|
||||||
iv_label = |Filter: |
|
|
||||||
iv_value = mv_filter ) ).
|
|
||||||
|
|
||||||
io_html->add( |<input type="submit" class="hidden-submit">| ).
|
|
||||||
|
|
||||||
io_html->add( |</div>| ).
|
|
||||||
|
|
||||||
io_html->add( |</form>| ).
|
|
||||||
io_html->add( |</div>| ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD scripts.
|
METHOD scripts.
|
||||||
|
|
||||||
|
@ -585,4 +548,41 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_page~on_event.
|
||||||
|
|
||||||
|
DATA: lv_key TYPE zif_abapgit_persistence=>ty_value.
|
||||||
|
|
||||||
|
CASE iv_action.
|
||||||
|
WHEN gc_action-select.
|
||||||
|
|
||||||
|
lv_key = iv_getdata.
|
||||||
|
|
||||||
|
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lv_key ).
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
zcl_abapgit_repo_srv=>get_instance( )->get( lv_key )->refresh( ).
|
||||||
|
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-go_back.
|
||||||
|
|
||||||
|
WHEN gc_action-change_order_by.
|
||||||
|
|
||||||
|
parse_change_order_by( it_postdata ).
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
||||||
|
|
||||||
|
WHEN gc_action-direction.
|
||||||
|
|
||||||
|
parse_direction( it_postdata ).
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
||||||
|
|
||||||
|
WHEN gc_action-apply_filter.
|
||||||
|
|
||||||
|
parse_filter( it_postdata ).
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -153,14 +153,9 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD delete.
|
METHOD delete.
|
||||||
|
|
||||||
DATA: lo_persistence TYPE REF TO zcl_abapgit_persistence_repo.
|
zcl_abapgit_persist_factory=>get_repo( )->delete( ms_data-key ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
CREATE OBJECT lo_persistence.
|
|
||||||
|
|
||||||
lo_persistence->delete( ms_data-key ).
|
|
||||||
|
|
||||||
ENDMETHOD. "delete
|
|
||||||
|
|
||||||
|
|
||||||
METHOD delete_checks.
|
METHOD delete_checks.
|
||||||
|
@ -492,7 +487,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
|
|
||||||
* TODO: refactor
|
* TODO: refactor
|
||||||
|
|
||||||
DATA: lo_persistence TYPE REF TO zcl_abapgit_persistence_repo.
|
DATA: li_persistence TYPE REF TO zif_abapgit_persist_repo.
|
||||||
|
|
||||||
|
|
||||||
ASSERT it_checksums IS SUPPLIED
|
ASSERT it_checksums IS SUPPLIED
|
||||||
|
@ -505,60 +500,59 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
OR iv_deserialized_by IS SUPPLIED
|
OR iv_deserialized_by IS SUPPLIED
|
||||||
OR iv_deserialized_at IS SUPPLIED.
|
OR iv_deserialized_at IS SUPPLIED.
|
||||||
|
|
||||||
CREATE OBJECT lo_persistence.
|
li_persistence = zcl_abapgit_persist_factory=>get_repo( ).
|
||||||
|
|
||||||
IF it_checksums IS SUPPLIED.
|
IF it_checksums IS SUPPLIED.
|
||||||
lo_persistence->update_local_checksums(
|
li_persistence->update_local_checksums(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
it_checksums = it_checksums ).
|
it_checksums = it_checksums ).
|
||||||
ms_data-local_checksums = it_checksums.
|
ms_data-local_checksums = it_checksums.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_url IS SUPPLIED.
|
IF iv_url IS SUPPLIED.
|
||||||
lo_persistence->update_url(
|
li_persistence->update_url(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
iv_url = iv_url ).
|
iv_url = iv_url ).
|
||||||
ms_data-url = iv_url.
|
ms_data-url = iv_url.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_branch_name IS SUPPLIED.
|
IF iv_branch_name IS SUPPLIED.
|
||||||
lo_persistence->update_branch_name(
|
li_persistence->update_branch_name(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
iv_branch_name = iv_branch_name ).
|
iv_branch_name = iv_branch_name ).
|
||||||
ms_data-branch_name = iv_branch_name.
|
ms_data-branch_name = iv_branch_name.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_head_branch IS SUPPLIED.
|
IF iv_head_branch IS SUPPLIED.
|
||||||
lo_persistence->update_head_branch(
|
li_persistence->update_head_branch(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
iv_head_branch = iv_head_branch ).
|
iv_head_branch = iv_head_branch ).
|
||||||
ms_data-head_branch = iv_head_branch.
|
ms_data-head_branch = iv_head_branch.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_offline IS SUPPLIED.
|
IF iv_offline IS SUPPLIED.
|
||||||
lo_persistence->update_offline(
|
li_persistence->update_offline(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
iv_offline = iv_offline ).
|
iv_offline = iv_offline ).
|
||||||
ms_data-offline = iv_offline.
|
ms_data-offline = iv_offline.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF is_dot_abapgit IS SUPPLIED.
|
IF is_dot_abapgit IS SUPPLIED.
|
||||||
lo_persistence->update_dot_abapgit(
|
li_persistence->update_dot_abapgit(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
is_dot_abapgit = is_dot_abapgit ).
|
is_dot_abapgit = is_dot_abapgit ).
|
||||||
ms_data-dot_abapgit = is_dot_abapgit.
|
ms_data-dot_abapgit = is_dot_abapgit.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF is_local_settings IS SUPPLIED.
|
IF is_local_settings IS SUPPLIED.
|
||||||
lo_persistence->update_local_settings(
|
li_persistence->update_local_settings(
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
is_settings = is_local_settings ).
|
is_settings = is_local_settings ).
|
||||||
ms_data-local_settings = is_local_settings.
|
ms_data-local_settings = is_local_settings.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_deserialized_at IS SUPPLIED
|
IF iv_deserialized_at IS SUPPLIED OR iv_deserialized_by IS SUPPLIED.
|
||||||
OR iv_deserialized_by IS SUPPLIED.
|
li_persistence->update_deserialized(
|
||||||
lo_persistence->update_deserialized(
|
|
||||||
iv_key = ms_data-key
|
iv_key = ms_data-key
|
||||||
iv_deserialized_at = iv_deserialized_at
|
iv_deserialized_at = iv_deserialized_at
|
||||||
iv_deserialized_by = iv_deserialized_by ).
|
iv_deserialized_by = iv_deserialized_by ).
|
||||||
|
|
|
@ -23,7 +23,6 @@ CLASS zcl_abapgit_repo_srv DEFINITION
|
||||||
|
|
||||||
CLASS-DATA gi_ref TYPE REF TO zif_abapgit_repo_srv .
|
CLASS-DATA gi_ref TYPE REF TO zif_abapgit_repo_srv .
|
||||||
DATA mv_init TYPE abap_bool VALUE abap_false ##NO_TEXT.
|
DATA mv_init TYPE abap_bool VALUE abap_false ##NO_TEXT.
|
||||||
DATA mo_persistence TYPE REF TO zcl_abapgit_persistence_repo .
|
|
||||||
DATA mt_list TYPE zif_abapgit_definitions=>ty_repo_ref_tt .
|
DATA mt_list TYPE zif_abapgit_definitions=>ty_repo_ref_tt .
|
||||||
|
|
||||||
METHODS refresh
|
METHODS refresh
|
||||||
|
@ -35,16 +34,15 @@ CLASS zcl_abapgit_repo_srv DEFINITION
|
||||||
VALUE(rv_allowed) TYPE abap_bool .
|
VALUE(rv_allowed) TYPE abap_bool .
|
||||||
METHODS add
|
METHODS add
|
||||||
IMPORTING
|
IMPORTING
|
||||||
io_repo TYPE REF TO zcl_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS validate_sub_super_packages
|
METHODS validate_sub_super_packages
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
it_repos TYPE zif_abapgit_persistence=>tt_repo
|
!it_repos TYPE zif_abapgit_persistence=>tt_repo
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,8 +70,8 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
CREATE OBJECT mo_persistence.
|
|
||||||
ENDMETHOD. "class_constructor
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_instance.
|
METHOD get_instance.
|
||||||
|
@ -107,7 +105,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
|
|
||||||
CLEAR mt_list.
|
CLEAR mt_list.
|
||||||
|
|
||||||
lt_list = mo_persistence->list( ).
|
lt_list = zcl_abapgit_persist_factory=>get_repo( )->list( ).
|
||||||
LOOP AT lt_list ASSIGNING <ls_list>.
|
LOOP AT lt_list ASSIGNING <ls_list>.
|
||||||
IF <ls_list>-offline = abap_false.
|
IF <ls_list>-offline = abap_false.
|
||||||
CREATE OBJECT lo_online
|
CREATE OBJECT lo_online
|
||||||
|
@ -238,7 +236,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
|
|
||||||
validate_package( iv_package ).
|
validate_package( iv_package ).
|
||||||
|
|
||||||
lv_key = mo_persistence->add(
|
lv_key = zcl_abapgit_persist_factory=>get_repo( )->add(
|
||||||
iv_url = iv_url
|
iv_url = iv_url
|
||||||
iv_branch_name = ''
|
iv_branch_name = ''
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
|
@ -246,7 +244,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
is_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( )->get_data( ) ).
|
is_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( )->get_data( ) ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
ls_repo = mo_persistence->read( lv_key ).
|
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( lv_key ).
|
||||||
CATCH zcx_abapgit_not_found.
|
CATCH zcx_abapgit_not_found.
|
||||||
zcx_abapgit_exception=>raise( 'new_offline not found' ).
|
zcx_abapgit_exception=>raise( 'new_offline not found' ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
@ -273,14 +271,14 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
validate_package( iv_package ).
|
validate_package( iv_package ).
|
||||||
zcl_abapgit_url=>validate( |{ iv_url }| ).
|
zcl_abapgit_url=>validate( |{ iv_url }| ).
|
||||||
|
|
||||||
lv_key = mo_persistence->add(
|
lv_key = zcl_abapgit_persist_factory=>get_repo( )->add(
|
||||||
iv_url = iv_url
|
iv_url = iv_url
|
||||||
iv_branch_name = iv_branch_name
|
iv_branch_name = iv_branch_name
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
iv_offline = abap_false
|
iv_offline = abap_false
|
||||||
is_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( )->get_data( ) ).
|
is_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( )->get_data( ) ).
|
||||||
TRY.
|
TRY.
|
||||||
ls_repo = mo_persistence->read( lv_key ).
|
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( lv_key ).
|
||||||
CATCH zcx_abapgit_not_found.
|
CATCH zcx_abapgit_not_found.
|
||||||
zcx_abapgit_exception=>raise( 'new_online not found' ).
|
zcx_abapgit_exception=>raise( 'new_online not found' ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
@ -377,7 +375,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
" make sure its not already in use for a different repository
|
" make sure its not already in use for a different repository
|
||||||
lt_repos = mo_persistence->list( ).
|
lt_repos = zcl_abapgit_persist_factory=>get_repo( )->list( ).
|
||||||
READ TABLE lt_repos WITH KEY package = iv_package TRANSPORTING NO FIELDS.
|
READ TABLE lt_repos WITH KEY package = iv_package TRANSPORTING NO FIELDS.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
zcx_abapgit_exception=>raise( |Package { iv_package } already in use| ).
|
zcx_abapgit_exception=>raise( |Package { iv_package } already in use| ).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user