Dialogs: add offline repo HTML form (#3960)

* Dialogs: add offline repo HTML form

* Dialogs: add offline repo HTML form

* Dialogs: add offline repo HTML form

* Lint

* Lint

* Chaining

* Set required attribute

* Check for empty display name

* Change validation

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2020-10-03 04:18:45 -04:00 committed by GitHub
parent 24436879b6
commit 25774396e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 498 additions and 323 deletions

View File

@ -0,0 +1,247 @@
CLASS zcl_abapgit_gui_page_addofflin DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
" TODO importing prefilled form data
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
url TYPE string VALUE 'url',
package TYPE string VALUE 'package',
folder_logic TYPE string VALUE 'folder_logic',
master_lang_only TYPE string VALUE 'master_lang_only',
END OF c_id .
CONSTANTS:
BEGIN OF c_event,
go_back TYPE string VALUE 'go-back',
choose_package TYPE string VALUE 'choose-package',
create_package TYPE string VALUE 'create-package',
add_offline_repo TYPE string VALUE 'add-repo-offline',
END OF c_event .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
METHODS parse_form
IMPORTING
!it_form_fields TYPE tihttpnvp
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form .
ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_ADDOFFLIN IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
CREATE OBJECT mo_validation_log.
CREATE OBJECT mo_form_data.
mo_form = get_form_schema( ).
ENDMETHOD.
METHOD create.
DATA lo_component TYPE REF TO zcl_abapgit_gui_page_addofflin.
CREATE OBJECT lo_component.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Create offline repository'
ii_child_component = lo_component ).
ENDMETHOD.
METHOD get_form_schema.
ro_form = zcl_abapgit_html_form=>create( iv_form_id = 'add-repo-offline-form' ).
ro_form->text(
iv_name = c_id-url
iv_required = abap_true
iv_label = 'Repository name'
iv_hint = 'Unique name for repository'
)->text(
iv_name = c_id-package
iv_side_action = c_event-choose_package
iv_required = abap_true
iv_label = 'Package'
iv_hint = 'SAP package for the code (should be a dedicated one)'
iv_placeholder = 'Z... / $...'
)->radio(
iv_name = c_id-folder_logic
iv_default_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix
iv_label = 'Folder logic'
iv_hint = 'Define how package folders are named in the repo (see https://docs.abapgit.org)'
)->option(
iv_label = 'Prefix'
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix
)->option(
iv_label = 'Full'
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-full
)->checkbox(
iv_name = c_id-master_lang_only
iv_label = 'Serialize master language only'
iv_hint = 'Ignore translations, serialize just master language'
)->command(
iv_label = 'Create offline repo'
iv_is_main = abap_true
iv_action = c_event-add_offline_repo
)->command(
iv_label = 'Create package'
iv_action = c_event-create_package
)->command(
iv_label = 'Back'
iv_action = c_event-go_back ).
ENDMETHOD.
METHOD parse_form.
DATA ls_field LIKE LINE OF it_form_fields.
CREATE OBJECT ro_form_data.
" temporary, TODO refactor later, after gui_event class is ready, move to on_event
LOOP AT it_form_fields INTO ls_field.
ro_form_data->set(
iv_key = ls_field-name
iv_val = ls_field-value ).
ENDLOOP.
ro_form_data = mo_form->validate_normalize_form_data( ro_form_data ).
ENDMETHOD.
METHOD validate_form.
DATA lx_err TYPE REF TO zcx_abapgit_exception.
ro_validation_log = mo_form->validate_required_fields( io_form_data ).
IF io_form_data->get( c_id-package ) IS NOT INITIAL.
TRY.
zcl_abapgit_repo_srv=>get_instance( )->validate_package(
iv_package = |{ io_form_data->get( c_id-package ) }| ).
CATCH zcx_abapgit_exception INTO lx_err.
ro_validation_log->set(
iv_key = c_id-package
iv_val = lx_err->get_text( ) ).
ENDTRY.
ENDIF.
IF io_form_data->get( c_id-folder_logic ) <> zif_abapgit_dot_abapgit=>c_folder_logic-prefix
AND io_form_data->get( c_id-folder_logic ) <> zif_abapgit_dot_abapgit=>c_folder_logic-full.
ro_validation_log->set(
iv_key = c_id-folder_logic
iv_val = |Invalid folder logic { io_form_data->get( c_id-folder_logic )
}. Must be { zif_abapgit_dot_abapgit=>c_folder_logic-prefix
} or { zif_abapgit_dot_abapgit=>c_folder_logic-full } | ).
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event.
DATA: ls_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params,
lo_new_offline_repo TYPE REF TO zcl_abapgit_repo_offline.
" import data from html before re-render
mo_form_data = parse_form( zcl_abapgit_html_action_utils=>parse_post_form_data( ii_event->mt_postdata ) ).
CASE ii_event->mv_action.
WHEN c_event-go_back.
rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back.
WHEN c_event-create_package.
mo_form_data->set(
iv_key = c_id-package
iv_val = zcl_abapgit_services_basis=>create_package(
iv_prefill_package = |{ mo_form_data->get( 'package' ) }| ) ).
IF mo_form_data->get( c_id-package ) IS NOT INITIAL.
mo_validation_log = validate_form( mo_form_data ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ELSE.
rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act.
ENDIF.
WHEN c_event-choose_package.
mo_form_data->set(
iv_key = c_id-package
iv_val = zcl_abapgit_ui_factory=>get_popups( )->popup_search_help( 'TDEVC-DEVCLASS' ) ).
IF mo_form_data->get( c_id-package ) IS NOT INITIAL.
mo_validation_log = validate_form( mo_form_data ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ELSE.
rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act.
ENDIF.
WHEN c_event-add_offline_repo.
mo_validation_log = validate_form( mo_form_data ).
IF mo_validation_log->is_empty( ) = abap_true.
mo_form_data->to_abap( CHANGING cs_container = ls_repo_params ).
lo_new_offline_repo = zcl_abapgit_services_repo=>new_offline( ls_repo_params ).
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_view_repo
EXPORTING
iv_key = lo_new_offline_repo->get_key( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
ELSE.
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. " Display errors
ENDIF.
ENDCASE.
ENDMETHOD.
METHOD zif_abapgit_gui_renderable~render.
gui_services( )->register_event_handler( me ).
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( mo_form->render(
iv_form_class = 'dialog w600px m-em5-sides margin-v1' " to center add wmax600px and auto-center instead
io_values = mo_form_data
io_validation_log = mo_validation_log ) ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?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_GUI_PAGE_ADDOFFLIN</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapgit GUI add repo offline page</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -102,52 +102,52 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_ADDONLINE IMPLEMENTATION.
iv_required = abap_true iv_required = abap_true
iv_label = 'Git repository URL' iv_label = 'Git repository URL'
iv_hint = 'HTTPS address of the repository to clone' iv_hint = 'HTTPS address of the repository to clone'
iv_placeholder = 'https://github.com/...git' ). iv_placeholder = 'https://github.com/...git'
ro_form->text( )->text(
iv_name = c_id-package iv_name = c_id-package
iv_side_action = c_event-choose_package iv_side_action = c_event-choose_package
iv_required = abap_true iv_required = abap_true
iv_upper_case = abap_true iv_upper_case = abap_true
iv_label = 'Package' iv_label = 'Package'
iv_hint = 'SAP package for the code (should be a dedicated one)' iv_hint = 'SAP package for the code (should be a dedicated one)'
iv_placeholder = 'Z... / $...' ). iv_placeholder = 'Z... / $...'
ro_form->text( )->text(
iv_name = c_id-branch_name iv_name = c_id-branch_name
iv_side_action = c_event-choose_branch iv_side_action = c_event-choose_branch
iv_label = 'Branch' iv_label = 'Branch'
iv_hint = 'Switch to a specific branch on clone (default: master)' iv_hint = 'Switch to a specific branch on clone (default: master)'
iv_placeholder = 'master' ). iv_placeholder = 'master'
ro_form->radio( )->radio(
iv_name = c_id-folder_logic iv_name = c_id-folder_logic
iv_default_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix iv_default_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix
iv_label = 'Folder logic' iv_label = 'Folder logic'
iv_hint = 'Define how package folders are named in the repo (see https://docs.abapgit.org)' ). iv_hint = 'Define how package folders are named in the repo (see https://docs.abapgit.org)'
ro_form->option( )->option(
iv_label = 'Prefix' iv_label = 'Prefix'
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix ). iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix
ro_form->option( )->option(
iv_label = 'Full' iv_label = 'Full'
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-full ). iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-full
ro_form->text( )->text(
iv_name = c_id-display_name iv_name = c_id-display_name
iv_label = 'Display name' iv_label = 'Display name'
iv_hint = 'Name to show instead of original repo name (optional)' ). iv_hint = 'Name to show instead of original repo name (optional)'
ro_form->checkbox( )->checkbox(
iv_name = c_id-ignore_subpackages iv_name = c_id-ignore_subpackages
iv_label = 'Ignore subpackages' iv_label = 'Ignore subpackages'
iv_hint = 'Syncronize root package only (see https://docs.abapgit.org)' ). iv_hint = 'Syncronize root package only (see https://docs.abapgit.org)'
ro_form->checkbox( )->checkbox(
iv_name = c_id-master_lang_only iv_name = c_id-master_lang_only
iv_label = 'Serialize master language only' iv_label = 'Serialize master language only'
iv_hint = 'Ignore translations, serialize just master language' ). iv_hint = 'Ignore translations, serialize just master language'
ro_form->command( )->command(
iv_label = 'Clone online repo' iv_label = 'Clone online repo'
iv_is_main = abap_true iv_is_main = abap_true
iv_action = c_event-add_online_repo ). iv_action = c_event-add_online_repo
ro_form->command( )->command(
iv_label = 'Create package' iv_label = 'Create package'
iv_action = c_event-create_package ). iv_action = c_event-create_package
ro_form->command( )->command(
iv_label = 'Back' iv_label = 'Back'
iv_action = c_event-go_back ). iv_action = c_event-go_back ).
@ -176,13 +176,9 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_ADDONLINE IMPLEMENTATION.
DATA lx_err TYPE REF TO zcx_abapgit_exception. DATA lx_err TYPE REF TO zcx_abapgit_exception.
CREATE OBJECT ro_validation_log. ro_validation_log = mo_form->validate_required_fields( io_form_data ).
IF io_form_data->get( c_id-url ) IS INITIAL. IF io_form_data->get( c_id-url ) IS NOT INITIAL.
ro_validation_log->set(
iv_key = c_id-url
iv_val = 'Url cannot be empty' ).
ELSE.
TRY. TRY.
zcl_abapgit_url=>validate( io_form_data->get( c_id-url ) ). zcl_abapgit_url=>validate( io_form_data->get( c_id-url ) ).
CATCH zcx_abapgit_exception INTO lx_err. CATCH zcx_abapgit_exception INTO lx_err.
@ -192,11 +188,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_ADDONLINE IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDIF. ENDIF.
IF io_form_data->get( c_id-package ) IS INITIAL. IF io_form_data->get( c_id-package ) IS NOT INITIAL.
ro_validation_log->set(
iv_key = c_id-package
iv_val = 'Package cannot be empty' ).
ELSE.
TRY. TRY.
zcl_abapgit_repo_srv=>get_instance( )->validate_package( zcl_abapgit_repo_srv=>get_instance( )->validate_package(
iv_package = |{ io_form_data->get( c_id-package ) }| iv_package = |{ io_form_data->get( c_id-package ) }|

View File

@ -12,21 +12,21 @@ CLASS zcl_abapgit_gui_router DEFINITION
METHODS general_page_routing METHODS general_page_routing
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS abapgit_services_actions METHODS abapgit_services_actions
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS db_actions METHODS db_actions
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
@ -39,63 +39,63 @@ CLASS zcl_abapgit_gui_router DEFINITION
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS git_services METHODS git_services
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS remote_origin_manipulations METHODS remote_origin_manipulations
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS sap_gui_actions METHODS sap_gui_actions
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS other_utilities METHODS other_utilities
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS zip_services METHODS zip_services
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS repository_services METHODS repository_services
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS get_page_diff METHODS get_page_diff
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS get_page_branch_overview METHODS get_page_branch_overview
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS get_page_stage METHODS get_page_stage
IMPORTING IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event !ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING RAISING
@ -505,8 +505,8 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
CASE ii_event->mv_action. CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-repo_newoffline. " New offline repo WHEN zif_abapgit_definitions=>c_action-repo_newoffline. " New offline repo
zcl_abapgit_services_repo=>new_offline( ). rs_handled-page = zcl_abapgit_gui_page_addofflin=>create( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN zif_abapgit_definitions=>c_action-repo_add_all_obj_to_trans_req. WHEN zif_abapgit_definitions=>c_action-repo_add_all_obj_to_trans_req.
zcl_abapgit_transport=>add_all_objects_to_trans_req( lv_key ). zcl_abapgit_transport=>add_all_objects_to_trans_req( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
@ -620,11 +620,11 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
METHOD zip_services. METHOD zip_services.
DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key, DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lo_repo TYPE REF TO zcl_abapgit_repo, lo_repo TYPE REF TO zcl_abapgit_repo,
lv_package TYPE devclass, lv_package TYPE devclass,
lv_path TYPE string, lv_path TYPE string,
lv_xstr TYPE xstring. lv_xstr TYPE xstring.
" TODO refactor " TODO refactor
CONSTANTS: CONSTANTS:

View File

@ -7,79 +7,77 @@ CLASS zcl_abapgit_html_form DEFINITION
CLASS-METHODS create CLASS-METHODS create
IMPORTING IMPORTING
iv_form_id TYPE string OPTIONAL !iv_form_id TYPE string OPTIONAL
RETURNING RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form .
METHODS render METHODS render
IMPORTING IMPORTING
iv_form_class TYPE string !iv_form_class TYPE string
io_values TYPE REF TO zcl_abapgit_string_map !io_values TYPE REF TO zcl_abapgit_string_map
io_validation_log TYPE REF TO zcl_abapgit_string_map OPTIONAL !io_validation_log TYPE REF TO zcl_abapgit_string_map OPTIONAL
RETURNING RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html. VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS command METHODS command
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_action TYPE string !iv_action TYPE string
iv_is_main TYPE abap_bool DEFAULT abap_false !iv_is_main TYPE abap_bool DEFAULT abap_false
iv_as_a TYPE abap_bool DEFAULT abap_false !iv_as_a TYPE abap_bool DEFAULT abap_false
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS text METHODS text
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_name TYPE string !iv_name TYPE string
iv_hint TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL
iv_required TYPE abap_bool DEFAULT abap_false !iv_required TYPE abap_bool DEFAULT abap_false
iv_upper_case TYPE abap_bool DEFAULT abap_false !iv_upper_case TYPE abap_bool DEFAULT abap_false
iv_placeholder TYPE string OPTIONAL !iv_placeholder TYPE string OPTIONAL
iv_side_action TYPE string OPTIONAL !iv_side_action TYPE string OPTIONAL
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS checkbox METHODS checkbox
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_name TYPE string !iv_name TYPE string
iv_hint TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS radio METHODS radio
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_name TYPE string !iv_name TYPE string
iv_default_value TYPE string OPTIONAL !iv_default_value TYPE string OPTIONAL
iv_hint TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS option METHODS option
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_value TYPE string !iv_value TYPE string
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS start_group METHODS start_group
IMPORTING IMPORTING
iv_label TYPE string !iv_label TYPE string
iv_name TYPE string !iv_name TYPE string
iv_hint TYPE string OPTIONAL !iv_hint TYPE string OPTIONAL
RETURNING RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form. VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS validate_normalize_form_data METHODS validate_normalize_form_data
IMPORTING IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map !io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS validate_required_fields
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -500,4 +498,27 @@ CLASS ZCL_ABAPGIT_HTML_FORM IMPLEMENTATION.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD validate_required_fields.
DATA ls_field LIKE LINE OF mt_fields.
FIELD-SYMBOLS <ls_entry> LIKE LINE OF io_form_data->mt_entries.
CREATE OBJECT ro_validation_log.
LOOP AT io_form_data->mt_entries ASSIGNING <ls_entry>.
READ TABLE mt_fields INTO ls_field WITH KEY by_name COMPONENTS name = <ls_entry>-k.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Unexpected form field [{ <ls_entry>-k }]| ).
ENDIF.
IF ls_field-required IS NOT INITIAL AND <ls_entry>-v IS INITIAL.
ro_validation_log->set(
iv_key = ls_field-name
iv_val = |{ ls_field-label } cannot be empty| ).
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -2,31 +2,46 @@ CLASS zcl_abapgit_popups DEFINITION
PUBLIC PUBLIC
FINAL FINAL
CREATE PRIVATE CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_ui_factory. GLOBAL FRIENDS zcl_abapgit_ui_factory .
PUBLIC SECTION. PUBLIC SECTION.
CONSTANTS: c_default_column TYPE lvc_fname VALUE `DEFAULT_COLUMN` ##NO_TEXT.
INTERFACES: zif_abapgit_popups. INTERFACES zif_abapgit_popups .
ALIASES:
popup_package_export FOR zif_abapgit_popups~popup_package_export,
popup_folder_logic FOR zif_abapgit_popups~popup_folder_logic,
popup_object FOR zif_abapgit_popups~popup_object,
create_branch_popup FOR zif_abapgit_popups~create_branch_popup,
repo_new_offline FOR zif_abapgit_popups~repo_new_offline,
branch_list_popup FOR zif_abapgit_popups~branch_list_popup,
repo_popup FOR zif_abapgit_popups~repo_popup,
popup_to_confirm FOR zif_abapgit_popups~popup_to_confirm,
popup_to_inform FOR zif_abapgit_popups~popup_to_inform,
popup_to_create_package FOR zif_abapgit_popups~popup_to_create_package,
popup_to_create_transp_branch FOR zif_abapgit_popups~popup_to_create_transp_branch,
popup_to_select_transports FOR zif_abapgit_popups~popup_to_select_transports,
popup_to_select_from_list FOR zif_abapgit_popups~popup_to_select_from_list,
branch_popup_callback FOR zif_abapgit_popups~branch_popup_callback,
package_popup_callback FOR zif_abapgit_popups~package_popup_callback,
popup_transport_request FOR zif_abapgit_popups~popup_transport_request,
popup_proxy_bypass FOR zif_abapgit_popups~popup_proxy_bypass.
ALIASES branch_list_popup
FOR zif_abapgit_popups~branch_list_popup .
ALIASES branch_popup_callback
FOR zif_abapgit_popups~branch_popup_callback .
ALIASES create_branch_popup
FOR zif_abapgit_popups~create_branch_popup .
ALIASES package_popup_callback
FOR zif_abapgit_popups~package_popup_callback .
ALIASES popup_folder_logic
FOR zif_abapgit_popups~popup_folder_logic .
ALIASES popup_object
FOR zif_abapgit_popups~popup_object .
ALIASES popup_package_export
FOR zif_abapgit_popups~popup_package_export .
ALIASES popup_proxy_bypass
FOR zif_abapgit_popups~popup_proxy_bypass .
ALIASES popup_to_confirm
FOR zif_abapgit_popups~popup_to_confirm .
ALIASES popup_to_create_package
FOR zif_abapgit_popups~popup_to_create_package .
ALIASES popup_to_create_transp_branch
FOR zif_abapgit_popups~popup_to_create_transp_branch .
ALIASES popup_to_inform
FOR zif_abapgit_popups~popup_to_inform .
ALIASES popup_to_select_from_list
FOR zif_abapgit_popups~popup_to_select_from_list .
ALIASES popup_to_select_transports
FOR zif_abapgit_popups~popup_to_select_transports .
ALIASES popup_transport_request
FOR zif_abapgit_popups~popup_transport_request .
ALIASES repo_popup
FOR zif_abapgit_popups~repo_popup .
CONSTANTS c_default_column TYPE lvc_fname VALUE `DEFAULT_COLUMN` ##NO_TEXT.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -1264,113 +1279,6 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_popups~repo_new_offline.
DATA: lv_returncode TYPE c,
lt_fields TYPE TABLE OF sval,
lv_icon_ok TYPE icon-name,
lv_button1 TYPE svalbutton-buttontext,
lv_icon1 TYPE icon-name,
lv_finished TYPE abap_bool,
lx_error TYPE REF TO zcx_abapgit_exception.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
add_field( EXPORTING iv_tabname = 'ABAPTXT255'
iv_fieldname = 'LINE'
iv_fieldtext = 'Name'
iv_obligatory = abap_true
CHANGING ct_fields = lt_fields ).
add_field( EXPORTING iv_tabname = 'TDEVC'
iv_fieldname = 'DEVCLASS'
iv_fieldtext = 'Package'
iv_obligatory = abap_true
CHANGING ct_fields = lt_fields ).
add_field( EXPORTING iv_tabname = 'ZABAPGIT'
iv_fieldname = 'VALUE'
iv_fieldtext = 'Folder logic'
iv_obligatory = abap_true
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-prefix
CHANGING ct_fields = lt_fields ).
add_field( EXPORTING iv_tabname = 'DOKIL'
iv_fieldname = 'MASTERLANG'
iv_fieldtext = 'Master language only'
iv_value = abap_true
CHANGING ct_fields = lt_fields ).
WHILE lv_finished = abap_false.
lv_icon_ok = icon_okay.
lv_button1 = 'Create package'.
lv_icon1 = icon_folder.
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
EXPORTING
popup_title = 'New Offline Project'
programname = sy-cprog
formname = 'PACKAGE_POPUP'
ok_pushbuttontext = 'OK'
icon_ok_push = lv_icon_ok
first_pushbutton = lv_button1
icon_button_1 = lv_icon1
second_pushbutton = ''
icon_button_2 = ''
IMPORTING
returncode = lv_returncode
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error from POPUP_GET_VALUES' ).
ENDIF.
IF lv_returncode = c_answer_cancel.
rs_popup-cancel = abap_true.
RETURN.
ENDIF.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
rs_popup-url = <ls_field>-value.
READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
TRANSLATE <ls_field>-value TO UPPER CASE.
rs_popup-package = <ls_field>-value.
READ TABLE lt_fields INDEX 3 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
TRANSLATE <ls_field>-value TO UPPER CASE.
rs_popup-folder_logic = <ls_field>-value.
READ TABLE lt_fields INDEX 4 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
rs_popup-master_lang_only = <ls_field>-value.
lv_finished = abap_true.
TRY.
zcl_abapgit_repo_srv=>get_instance( )->validate_package( iv_package = rs_popup-package
iv_chk_exists = abap_false ).
validate_folder_logic( rs_popup-folder_logic ).
CATCH zcx_abapgit_exception INTO lx_error.
" in case of validation errors we display the popup again
MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'.
CLEAR lv_finished.
ENDTRY.
ENDWHILE.
ENDMETHOD.
METHOD zif_abapgit_popups~repo_popup. METHOD zif_abapgit_popups~repo_popup.
DATA: lv_returncode TYPE c, DATA: lv_returncode TYPE c,

View File

@ -11,7 +11,7 @@ CLASS zcl_abapgit_services_repo DEFINITION
RETURNING RETURNING
VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_online VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_online
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS refresh CLASS-METHODS refresh
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
@ -21,35 +21,39 @@ CLASS zcl_abapgit_services_repo DEFINITION
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS purge CLASS-METHODS purge
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS new_offline CLASS-METHODS new_offline
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RETURNING
VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_offline
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS remote_attach CLASS-METHODS remote_attach
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS remote_detach CLASS-METHODS remote_detach
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS remote_change CLASS-METHODS remote_change
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS refresh_local_checksums CLASS-METHODS refresh_local_checksums
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS toggle_favorite CLASS-METHODS toggle_favorite
IMPORTING IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key !iv_key TYPE zif_abapgit_persistence=>ty_repo-key
@ -59,7 +63,7 @@ CLASS zcl_abapgit_services_repo DEFINITION
IMPORTING IMPORTING
!iv_repository_key TYPE zif_abapgit_persistence=>ty_value !iv_repository_key TYPE zif_abapgit_persistence=>ty_value
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
CLASS-METHODS gui_deserialize CLASS-METHODS gui_deserialize
IMPORTING IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo !io_repo TYPE REF TO zcl_abapgit_repo
@ -78,11 +82,41 @@ CLASS zcl_abapgit_services_repo DEFINITION
!ct_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt !ct_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
CLASS-METHODS check_package
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RAISING
zcx_abapgit_exception .
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_services_repo IMPLEMENTATION. CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
METHOD check_package.
DATA:
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo_srv TYPE REF TO zif_abapgit_repo_srv,
lv_reason TYPE string.
" make sure package is not already in use for a different repository
" 702: chaining calls with exp&imp parameters causes syntax error
li_repo_srv = zcl_abapgit_repo_srv=>get_instance( ).
li_repo_srv->get_repo_from_package(
EXPORTING
iv_package = is_repo_params-package
iv_ign_subpkg = is_repo_params-ignore_subpackages
IMPORTING
eo_repo = lo_repo
ev_reason = lv_reason ).
IF lo_repo IS BOUND.
zcx_abapgit_exception=>raise( lv_reason ).
ENDIF.
ENDMETHOD.
METHOD gui_deserialize. METHOD gui_deserialize.
@ -129,73 +163,32 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION.
METHOD new_offline. METHOD new_offline.
DATA: ls_popup TYPE zif_abapgit_popups=>ty_popup, check_package( is_repo_params ).
lo_repo TYPE REF TO zcl_abapgit_repo,
lo_repo_offline TYPE REF TO zcl_abapgit_repo_offline,
li_repo_srv TYPE REF TO zif_abapgit_repo_srv,
lv_reason TYPE string.
ls_popup = zcl_abapgit_ui_factory=>get_popups( )->repo_new_offline( ). " create new repo and add to favorites
IF ls_popup-cancel = abap_true. ro_repo = zcl_abapgit_repo_srv=>get_instance( )->new_offline(
RAISE EXCEPTION TYPE zcx_abapgit_cancel. iv_url = is_repo_params-url
ENDIF. iv_package = is_repo_params-package
iv_folder_logic = is_repo_params-folder_logic
iv_master_lang_only = is_repo_params-master_lang_only ).
" make sure package is not already in use for a different repository " Make sure there're no leftovers from previous repos
" 702: chaining calls with exp&imp parameters causes syntax error ro_repo->rebuild_local_checksums( ).
li_repo_srv = zcl_abapgit_repo_srv=>get_instance( ).
li_repo_srv->get_repo_from_package(
EXPORTING
iv_package = ls_popup-package
IMPORTING
eo_repo = lo_repo
ev_reason = lv_reason ).
IF lo_repo IS BOUND. toggle_favorite( ro_repo->get_key( ) ).
MESSAGE lv_reason TYPE 'S'.
ELSE.
" create new repo and add to favorites
lo_repo_offline = zcl_abapgit_repo_srv=>get_instance( )->new_offline(
iv_url = ls_popup-url
iv_package = ls_popup-package
iv_folder_logic = ls_popup-folder_logic
iv_master_lang_only = ls_popup-master_lang_only ).
lo_repo_offline->rebuild_local_checksums( ).
lo_repo ?= lo_repo_offline.
toggle_favorite( lo_repo->get_key( ) ).
ENDIF.
" Set default repo for user " Set default repo for user
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lo_repo->get_key( ) ). zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ro_repo->get_key( ) ).
COMMIT WORK AND WAIT. COMMIT WORK AND WAIT.
ENDMETHOD. ENDMETHOD.
METHOD new_online. METHOD new_online.
DATA: check_package( is_repo_params ).
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo_srv TYPE REF TO zif_abapgit_repo_srv,
lv_reason TYPE string.
" make sure package is not already in use for a different repository
" 702: chaining calls with exp&imp parameters causes syntax error
li_repo_srv = zcl_abapgit_repo_srv=>get_instance( ).
li_repo_srv->get_repo_from_package(
EXPORTING
iv_package = is_repo_params-package
iv_ign_subpkg = is_repo_params-ignore_subpackages
IMPORTING
eo_repo = lo_repo
ev_reason = lv_reason ).
IF lo_repo IS BOUND.
zcx_abapgit_exception=>raise( lv_reason ).
ENDIF.
ro_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online( ro_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online(
iv_url = is_repo_params-url iv_url = is_repo_params-url
@ -206,12 +199,15 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION.
iv_ign_subpkg = is_repo_params-ignore_subpackages iv_ign_subpkg = is_repo_params-ignore_subpackages
iv_master_lang_only = is_repo_params-master_lang_only ). iv_master_lang_only = is_repo_params-master_lang_only ).
" Make sure there're no leftovers from previous repos
ro_repo->rebuild_local_checksums( ).
toggle_favorite( ro_repo->get_key( ) ). toggle_favorite( ro_repo->get_key( ) ).
" Set default repo for user " Set default repo for user
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ro_repo->get_key( ) ). zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ro_repo->get_key( ) ).
COMMIT WORK. COMMIT WORK AND WAIT.
ENDMETHOD. ENDMETHOD.

View File

@ -84,10 +84,6 @@ CLASS ltcl_abapgit_popups_mock IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_popups~repo_new_offline.
ENDMETHOD.
METHOD zif_abapgit_popups~repo_popup. METHOD zif_abapgit_popups~repo_popup.
ENDMETHOD. ENDMETHOD.

View File

@ -42,15 +42,10 @@ INTERFACE zif_abapgit_popups
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS create_branch_popup METHODS create_branch_popup
IMPORTING IMPORTING
iv_source_branch_name TYPE string !iv_source_branch_name TYPE string
EXPORTING EXPORTING
!ev_name TYPE string !ev_name TYPE string
!ev_cancel TYPE abap_bool !ev_cancel TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS repo_new_offline
RETURNING
VALUE(rs_popup) TYPE ty_popup
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS branch_list_popup METHODS branch_list_popup
@ -109,23 +104,23 @@ INTERFACE zif_abapgit_popups
RETURNING RETURNING
VALUE(rs_transport_branch) TYPE zif_abapgit_definitions=>ty_transport_to_branch VALUE(rs_transport_branch) TYPE zif_abapgit_definitions=>ty_transport_to_branch
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS popup_to_select_transports METHODS popup_to_select_transports
RETURNING RETURNING
VALUE(rt_trkorr) TYPE trwbo_request_headers . VALUE(rt_trkorr) TYPE trwbo_request_headers .
METHODS popup_to_select_from_list METHODS popup_to_select_from_list
IMPORTING IMPORTING
!it_list TYPE STANDARD TABLE !it_list TYPE STANDARD TABLE
!iv_title TYPE lvc_title DEFAULT space !iv_title TYPE lvc_title DEFAULT space
!iv_header_text TYPE csequence DEFAULT space !iv_header_text TYPE csequence DEFAULT space
!iv_start_column TYPE i DEFAULT 2 !iv_start_column TYPE i DEFAULT 2
!iv_end_column TYPE i DEFAULT 65 !iv_end_column TYPE i DEFAULT 65
!iv_start_line TYPE i DEFAULT 8 !iv_start_line TYPE i DEFAULT 8
!iv_end_line TYPE i DEFAULT 20 !iv_end_line TYPE i DEFAULT 20
!iv_striped_pattern TYPE abap_bool DEFAULT abap_false !iv_striped_pattern TYPE abap_bool DEFAULT abap_false
!iv_optimize_col_width TYPE abap_bool DEFAULT abap_true !iv_optimize_col_width TYPE abap_bool DEFAULT abap_true
!iv_selection_mode TYPE salv_de_constant DEFAULT if_salv_c_selection_mode=>multiple !iv_selection_mode TYPE salv_de_constant DEFAULT if_salv_c_selection_mode=>multiple
!iv_select_column_text TYPE csequence DEFAULT space !iv_select_column_text TYPE csequence DEFAULT space
!it_columns_to_display TYPE zif_abapgit_definitions=>ty_alv_column_tt !it_columns_to_display TYPE zif_abapgit_definitions=>ty_alv_column_tt
EXPORTING EXPORTING
VALUE(et_list) TYPE STANDARD TABLE VALUE(et_list) TYPE STANDARD TABLE
@ -155,29 +150,29 @@ INTERFACE zif_abapgit_popups
RETURNING RETURNING
VALUE(rv_transport) TYPE trkorr VALUE(rv_transport) TYPE trkorr
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS popup_proxy_bypass METHODS popup_proxy_bypass
IMPORTING IMPORTING
!it_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url !it_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url
RETURNING RETURNING
VALUE(rt_proxy_bypass) TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url VALUE(rt_proxy_bypass) TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS choose_pr_popup METHODS choose_pr_popup
IMPORTING IMPORTING
it_pulls TYPE zif_abapgit_pr_enum_provider=>tty_pulls !it_pulls TYPE zif_abapgit_pr_enum_provider=>tty_pulls
RETURNING RETURNING
VALUE(rs_pull) TYPE zif_abapgit_pr_enum_provider=>ty_pull_request VALUE(rs_pull) TYPE zif_abapgit_pr_enum_provider=>ty_pull_request
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS popup_perf_test_parameters METHODS popup_perf_test_parameters
EXPORTING EXPORTING
et_object_type_filter TYPE zif_abapgit_definitions=>ty_object_type_range !et_object_type_filter TYPE zif_abapgit_definitions=>ty_object_type_range
et_object_name_filter TYPE zif_abapgit_definitions=>ty_object_name_range !et_object_name_filter TYPE zif_abapgit_definitions=>ty_object_name_range
CHANGING CHANGING
cv_package TYPE devclass !cv_package TYPE devclass
cv_include_sub_packages TYPE abap_bool !cv_include_sub_packages TYPE abap_bool
cv_serialize_master_lang_only TYPE abap_bool !cv_serialize_master_lang_only TYPE abap_bool
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
ENDINTERFACE. ENDINTERFACE.

View File

@ -365,6 +365,10 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
validate_package( iv_package ). validate_package( iv_package ).
IF iv_url IS INITIAL.
zcx_abapgit_exception=>raise( 'Missing display name for repo' ).
ENDIF.
lo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ). lo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ).
lo_dot_abapgit->set_folder_logic( iv_folder_logic ). lo_dot_abapgit->set_folder_logic( iv_folder_logic ).