Gui refactoring part 4 (#3362)

* refactoring and remove get_events from gui_page

* cleanups

* more cleanups

* register_deferred_script

* refactor page_stage

* refactor page_diff

* refactor page_commit

* refactor page_debuginfo

* linter fixes

* refactor page_tag

* refactor rage_repo_over

* refactor page_patch

* make gui_page->scripts private
This commit is contained in:
Alexander Tsybulsky 2020-05-20 18:50:00 +03:00 committed by GitHub
parent 47a2332cc7
commit 8eae18c0f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 274 additions and 195 deletions

View File

@ -5,6 +5,12 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION
PUBLIC SECTION. PUBLIC SECTION.
TYPES:
BEGIN OF ty_event_signature,
method TYPE string,
name TYPE string,
END OF ty_event_signature.
CLASS-METHODS class_constructor. CLASS-METHODS class_constructor.
CLASS-METHODS render_error CLASS-METHODS render_error
IMPORTING IMPORTING
@ -89,6 +95,11 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION
VALUE(ro_html) TYPE REF TO zcl_abapgit_html VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS render_event_as_form
IMPORTING
is_event TYPE ty_event_signature
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -332,6 +343,15 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_event_as_form.
CREATE OBJECT ro_html.
ro_html->add(
|<form id='form_{ is_event-name }' method={ is_event-method } action='sapevent:{ is_event-name }'></form>| ).
ENDMETHOD.
METHOD render_infopanel. METHOD render_infopanel.
DATA lv_display TYPE string. DATA lv_display TYPE string.

View File

@ -7,12 +7,20 @@ CLASS zcl_abapgit_gui_component DEFINITION
CONSTANTS: CONSTANTS:
BEGIN OF c_html_parts, BEGIN OF c_html_parts,
scripts TYPE string VALUE 'scripts', scripts TYPE string VALUE 'scripts',
hidden_forms TYPE string VALUE 'hidden_forms',
END OF c_html_parts. END OF c_html_parts.
METHODS constructor RAISING zcx_abapgit_exception. METHODS constructor RAISING zcx_abapgit_exception.
PROTECTED SECTION. PROTECTED SECTION.
DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services. DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services.
METHODS register_deferred_script
IMPORTING
ii_part TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -24,4 +32,12 @@ CLASS ZCL_ABAPGIT_GUI_COMPONENT IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mi_gui_services = zcl_abapgit_ui_factory=>get_gui_services( ). mi_gui_services = zcl_abapgit_ui_factory=>get_gui_services( ).
ENDMETHOD. ENDMETHOD.
METHOD register_deferred_script.
" TODO refactor to mi_gui_services getter !
zcl_abapgit_ui_factory=>get_gui_services( )->get_html_parts( )->add_part(
iv_collection = c_html_parts-scripts
ii_part = ii_part ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -12,18 +12,13 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
constructor RAISING zcx_abapgit_exception. constructor RAISING zcx_abapgit_exception.
PROTECTED SECTION. PROTECTED SECTION.
TYPES: BEGIN OF ty_control,
redirect_url TYPE string,
page_title TYPE string,
page_menu TYPE REF TO zcl_abapgit_html_toolbar,
END OF ty_control.
TYPES: BEGIN OF ty_event, TYPES:
method TYPE string, BEGIN OF ty_control,
name TYPE string, redirect_url TYPE string,
END OF ty_event. page_title TYPE string,
page_menu TYPE REF TO zcl_abapgit_html_toolbar,
TYPES: tt_events TYPE STANDARD TABLE OF ty_event WITH DEFAULT KEY. END OF ty_control.
DATA: ms_control TYPE ty_control. DATA: ms_control TYPE ty_control.
@ -31,25 +26,17 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING zcx_abapgit_exception. RAISING zcx_abapgit_exception.
METHODS get_events
RETURNING VALUE(rt_events) TYPE tt_events
RAISING zcx_abapgit_exception.
METHODS render_event_as_form
IMPORTING is_event TYPE ty_event
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING zcx_abapgit_exception.
METHODS scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
PRIVATE SECTION. PRIVATE SECTION.
DATA: mo_settings TYPE REF TO zcl_abapgit_settings, DATA:
mx_error TYPE REF TO zcx_abapgit_exception, mo_settings TYPE REF TO zcl_abapgit_settings,
mo_exception_viewer TYPE REF TO zcl_abapgit_exception_viewer. mx_error TYPE REF TO zcx_abapgit_exception,
mo_exception_viewer TYPE REF TO zcl_abapgit_exception_viewer.
METHODS render_deferred_parts
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
iv_part_category TYPE string.
METHODS html_head METHODS html_head
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html.
@ -62,7 +49,13 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
METHODS redirect METHODS redirect
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html.
METHODS link_hints METHODS render_link_hints
IMPORTING
io_html TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_command_palettes
IMPORTING IMPORTING
io_html TYPE REF TO zcl_abapgit_html io_html TYPE REF TO zcl_abapgit_html
RAISING RAISING
@ -86,6 +79,12 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -146,13 +145,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_events.
" Return actions you need on your page.
ENDMETHOD.
METHOD html_head. METHOD html_head.
CREATE OBJECT ro_html. CREATE OBJECT ro_html.
@ -189,23 +181,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD link_hints.
DATA: lv_link_hint_key TYPE char01.
lv_link_hint_key = mo_settings->get_link_hint_key( ).
IF mo_settings->get_link_hints_enabled( ) = abap_true AND lv_link_hint_key IS NOT INITIAL.
io_html->add( |activateLinkHints("{ lv_link_hint_key }");| ).
io_html->add( |setInitialFocusWithQuerySelector('a span', true);| ).
io_html->add( |enableArrowListNavigation();| ).
ENDIF.
ENDMETHOD.
METHOD redirect. METHOD redirect.
CREATE OBJECT ro_html. CREATE OBJECT ro_html.
@ -220,6 +195,34 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_command_palettes.
io_html->add( 'var gGoRepoPalette = new CommandPalette(enumerateTocAllRepos, {' ).
io_html->add( ' toggleKey: "F2",' ).
io_html->add( ' hotkeyDescription: "Go to repo ..."' ).
io_html->add( '});' ).
io_html->add( 'var gCommandPalette = new CommandPalette(enumerateToolbarActions, {' ).
io_html->add( ' toggleKey: "F1",' ).
io_html->add( ' hotkeyDescription: "Command ..."' ).
io_html->add( '});' ).
ENDMETHOD.
METHOD render_deferred_parts.
DATA lt_parts TYPE zif_abapgit_html=>tty_table_of.
DATA li_part LIKE LINE OF lt_parts.
lt_parts = mi_gui_services->get_html_parts( )->get_parts( iv_part_category ).
LOOP AT lt_parts INTO li_part.
ii_html->add( li_part ).
ENDLOOP.
ENDMETHOD.
METHOD render_error_message_box. METHOD render_error_message_box.
" You should remember that the we have to instantiate ro_html even " You should remember that the we have to instantiate ro_html even
@ -249,15 +252,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_event_as_form.
CREATE OBJECT ro_html.
ro_html->add(
|<form id='form_{ is_event-name }' method={ is_event-method } action='sapevent:{ is_event-name }'></from>| ).
ENDMETHOD.
METHOD render_hotkey_overview. METHOD render_hotkey_overview.
DATA lo_hotkeys_component TYPE REF TO zif_abapgit_gui_renderable. DATA lo_hotkeys_component TYPE REF TO zif_abapgit_gui_renderable.
@ -268,29 +262,33 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts. METHOD render_link_hints.
DATA lt_script_parts TYPE zif_abapgit_html=>tty_table_of. DATA: lv_link_hint_key TYPE char01.
DATA li_part LIKE LINE OF lt_script_parts.
lv_link_hint_key = mo_settings->get_link_hint_key( ).
IF mo_settings->get_link_hints_enabled( ) = abap_true AND lv_link_hint_key IS NOT INITIAL.
io_html->add( |activateLinkHints("{ lv_link_hint_key }");| ).
io_html->add( |setInitialFocusWithQuerySelector('a span', true);| ).
io_html->add( |enableArrowListNavigation();| ).
ENDIF.
ENDMETHOD.
METHOD scripts.
CREATE OBJECT ro_html. CREATE OBJECT ro_html.
lt_script_parts = mi_gui_services->get_html_parts( )->get_parts( c_html_parts-scripts ). render_deferred_parts(
LOOP AT lt_script_parts INTO li_part. ii_html = ro_html
ro_html->add( li_part ). iv_part_category = c_html_parts-scripts ).
ENDLOOP.
link_hints( ro_html ). render_link_hints( ro_html ).
render_command_palettes( ro_html ).
ro_html->add( 'var gGoRepoPalette = new CommandPalette(enumerateTocAllRepos, {' ).
ro_html->add( ' toggleKey: "F2",' ).
ro_html->add( ' hotkeyDescription: "Go to repo ..."' ).
ro_html->add( '});' ).
ro_html->add( 'var gCommandPalette = new CommandPalette(enumerateToolbarActions, {' ).
ro_html->add( ' toggleKey: "F1",' ).
ro_html->add( ' hotkeyDescription: "Command ..."' ).
ro_html->add( '});' ).
ENDMETHOD. ENDMETHOD.
@ -366,11 +364,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
METHOD zif_abapgit_gui_renderable~render. METHOD zif_abapgit_gui_renderable~render.
DATA: lo_script TYPE REF TO zcl_abapgit_html, DATA: lo_script TYPE REF TO zcl_abapgit_html.
lt_events TYPE tt_events.
FIELD-SYMBOLS:
<ls_event> LIKE LINE OF lt_events.
mi_gui_services->register_event_handler( me ). mi_gui_services->register_event_handler( me ).
@ -394,15 +388,14 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
ri_html->add( render_hotkey_overview( ) ). ri_html->add( render_hotkey_overview( ) ).
ri_html->add( render_error_message_box( ) ). ri_html->add( render_error_message_box( ) ).
lt_events = me->get_events( ). " TODO refactor ??? render_deferred_parts(
LOOP AT lt_events ASSIGNING <ls_event>. ii_html = ri_html
ri_html->add( render_event_as_form( <ls_event> ) ). iv_part_category = c_html_parts-hidden_forms ).
ENDLOOP.
ri_html->add( footer( ) ). ri_html->add( footer( ) ).
ri_html->add( '</body>' ). "#EC NOTEXT ri_html->add( '</body>' ). "#EC NOTEXT
lo_script = scripts( ). " TODO refactor lo_script = scripts( ).
IF lo_script IS BOUND AND lo_script->is_empty( ) = abap_false. IF lo_script IS BOUND AND lo_script->is_empty( ) = abap_false.
ri_html->add( '<script type="text/javascript">' ). ri_html->add( '<script type="text/javascript">' ).

View File

@ -29,10 +29,8 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION
EXPORTING EXPORTING
!eg_fields TYPE any . !eg_fields TYPE any .
METHODS render_content METHODS render_content REDEFINITION .
REDEFINITION .
METHODS scripts
REDEFINITION .
PRIVATE SECTION. PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online . DATA mo_repo TYPE REF TO zcl_abapgit_repo_online .
@ -73,6 +71,13 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION
!it_stage TYPE zcl_abapgit_stage=>ty_stage_tt !it_stage TYPE zcl_abapgit_stage=>ty_stage_tt
RETURNING RETURNING
VALUE(rv_text) TYPE string . VALUE(rv_text) TYPE string .
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -247,6 +252,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
ro_html->add( render_stage( ) ). ro_html->add( render_stage( ) ).
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -381,6 +388,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'setInitialFocus("comment");' ).
ENDMETHOD.
METHOD render_stage. METHOD render_stage.
DATA: lt_stage TYPE zcl_abapgit_stage=>ty_stage_tt. DATA: lt_stage TYPE zcl_abapgit_stage=>ty_stage_tt.
@ -446,15 +462,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'setInitialFocus("comment");' ).
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event. METHOD zif_abapgit_gui_event_handler~on_event.
CASE iv_action. CASE iv_action.

View File

@ -11,8 +11,7 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
METHODS: METHODS:
render_content REDEFINITION, render_content REDEFINITION.
scripts REDEFINITION.
PRIVATE SECTION. PRIVATE SECTION.
METHODS render_debug_info METHODS render_debug_info
@ -20,6 +19,11 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
RAISING zcx_abapgit_exception. RAISING zcx_abapgit_exception.
METHODS render_supported_object_types METHODS render_supported_object_types
RETURNING VALUE(rv_html) TYPE string. RETURNING VALUE(rv_html) TYPE string.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -43,6 +47,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
ro_html->add( render_supported_object_types( ) ). ro_html->add( render_supported_object_types( ) ).
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -75,6 +81,16 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'debugOutput("Browser: " + navigator.userAgent + ' &&
'"<br>Frontend time: " + new Date(), "debug_info");' ).
ENDMETHOD.
METHOD render_supported_object_types. METHOD render_supported_object_types.
DATA: lv_list TYPE string, DATA: lv_list TYPE string,
@ -95,14 +111,4 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
rv_html = |<p>Supported objects: { lv_list }</p>|. rv_html = |<p>Supported objects: { lv_list }</p>|.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'debugOutput("Browser: " + navigator.userAgent + ' &&
'"<br>Frontend time: " + new Date(), "debug_info");' ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -61,7 +61,6 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
RETURNING RETURNING
VALUE(rv_normalized) TYPE string, VALUE(rv_normalized) TYPE string,
render_content REDEFINITION, render_content REDEFINITION,
scripts REDEFINITION,
add_menu_end add_menu_end
IMPORTING IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar , io_menu TYPE REF TO zcl_abapgit_html_toolbar ,
@ -181,6 +180,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
METHODS render_table_head_unified METHODS render_table_head_unified
IMPORTING IMPORTING
io_html TYPE REF TO zcl_abapgit_html. io_html TYPE REF TO zcl_abapgit_html.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -572,6 +576,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
ENDIF. ENDIF.
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -851,6 +857,33 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'restoreScrollPosition();' ).
ro_html->add( 'var gHelper = new DiffHelper({' ).
ro_html->add( | seed: "{ mv_seed }",| ).
ro_html->add( ' ids: {' ).
ro_html->add( ' jump: "jump",' ).
ro_html->add( ' diffList: "diff-list",' ).
ro_html->add( ' filterMenu: "diff-filter",' ).
ro_html->add( ' }' ).
ro_html->add( '});' ).
ro_html->add( 'addMarginBottom();' ).
ro_html->add( 'var gGoJumpPalette = new CommandPalette(enumerateJumpAllFiles, {' ).
ro_html->add( ' toggleKey: "F2",' ).
ro_html->add( ' hotkeyDescription: "Jump to file ..."' ).
ro_html->add( '});' ).
" Feature for selecting ABAP code by column and copy to clipboard
ro_html->add( 'var columnSelection = new DiffColumnSelection();' ).
ENDMETHOD.
METHOD render_table_head. METHOD render_table_head.
CREATE OBJECT ro_html. CREATE OBJECT ro_html.
@ -898,33 +931,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'restoreScrollPosition();' ).
ro_html->add( 'var gHelper = new DiffHelper({' ).
ro_html->add( | seed: "{ mv_seed }",| ).
ro_html->add( ' ids: {' ).
ro_html->add( ' jump: "jump",' ).
ro_html->add( ' diffList: "diff-list",' ).
ro_html->add( ' filterMenu: "diff-filter",' ).
ro_html->add( ' }' ).
ro_html->add( '});' ).
ro_html->add( 'addMarginBottom();' ).
ro_html->add( 'var gGoJumpPalette = new CommandPalette(enumerateJumpAllFiles, {' ).
ro_html->add( ' toggleKey: "F2",' ).
ro_html->add( ' hotkeyDescription: "Jump to file ..."' ).
ro_html->add( '});' ).
" Feature for selecting ABAP code by column and copy to clipboard
ro_html->add( 'var columnSelection = new DiffColumnSelection();' ).
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event. METHOD zif_abapgit_gui_event_handler~on_event.
CASE iv_action. CASE iv_action.

View File

@ -31,7 +31,6 @@ CLASS zcl_abapgit_gui_page_patch DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
METHODS: METHODS:
render_content REDEFINITION, render_content REDEFINITION,
scripts REDEFINITION,
add_menu_end REDEFINITION, add_menu_end REDEFINITION,
add_menu_begin REDEFINITION, add_menu_begin REDEFINITION,
render_table_head_non_unified REDEFINITION, render_table_head_non_unified REDEFINITION,
@ -171,6 +170,12 @@ CLASS zcl_abapgit_gui_page_patch DEFINITION
RETURNING RETURNING
VALUE(rv_is_patch_line_possible) TYPE abap_bool. VALUE(rv_is_patch_line_possible) TYPE abap_bool.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -578,6 +583,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
mi_gui_services->get_hotkeys_ctl( )->register_hotkeys( me ). mi_gui_services->get_hotkeys_ctl( )->register_hotkeys( me ).
ro_html = super->render_content( ). ro_html = super->render_content( ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -672,6 +679,16 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'preparePatch();' ).
ro_html->add( 'registerStagePatch();' ).
ENDMETHOD.
METHOD render_table_head_non_unified. METHOD render_table_head_non_unified.
render_patch_head( io_html = io_html render_patch_head( io_html = io_html
@ -720,16 +737,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'preparePatch();' ).
ro_html->add( 'registerStagePatch();' ).
ENDMETHOD.
METHOD start_staging. METHOD start_staging.
apply_patch_from_form_fields( it_postdata ). apply_patch_from_form_fields( it_postdata ).

View File

@ -12,8 +12,7 @@ CLASS zcl_abapgit_gui_page_repo_over DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
METHODS: METHODS:
render_content REDEFINITION, render_content REDEFINITION.
scripts REDEFINITION.
PRIVATE SECTION. PRIVATE SECTION.
TYPES: TYPES:
@ -94,6 +93,12 @@ CLASS zcl_abapgit_gui_page_repo_over DEFINITION
IMPORTING IMPORTING
iv_descriptor TYPE string. iv_descriptor TYPE string.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -241,6 +246,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
render_table( io_html = ro_html render_table( io_html = ro_html
it_overview = lt_overview ). it_overview = lt_overview ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -267,6 +274,16 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'setInitialFocus("filter");' ).
ro_html->add( 'var gHelper = new RepoOverViewHelper();' ).
ENDMETHOD.
METHOD render_table. METHOD render_table.
io_html->add( |<div class="db_list repo-overview">| ). io_html->add( |<div class="db_list repo-overview">| ).
@ -392,16 +409,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_OVER IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'setInitialFocus("filter");' ).
ro_html->add( 'var gHelper = new RepoOverViewHelper();' ).
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event. METHOD zif_abapgit_gui_event_handler~on_event.
DATA: lv_key TYPE zif_abapgit_persistence=>ty_value. DATA: lv_key TYPE zif_abapgit_persistence=>ty_value.

View File

@ -22,9 +22,7 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
METHODS: METHODS:
render_content REDEFINITION, render_content REDEFINITION.
get_events REDEFINITION,
scripts REDEFINITION.
PRIVATE SECTION. PRIVATE SECTION.
@ -97,6 +95,14 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
METHODS count_default_files_to_commit METHODS count_default_files_to_commit
RETURNING RETURNING
VALUE(rv_count) TYPE i. VALUE(rv_count) TYPE i.
METHODS render_deferred_hidden_events
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -226,17 +232,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_events.
FIELD-SYMBOLS: <ls_event> TYPE zcl_abapgit_gui_page=>ty_event.
APPEND INITIAL LINE TO rt_events ASSIGNING <ls_event>.
<ls_event>-method = 'post'.
<ls_event>-name = 'stage_commit'.
ENDMETHOD.
METHOD get_page_patch. METHOD get_page_patch.
DATA: lo_page TYPE REF TO zcl_abapgit_gui_page_patch, DATA: lo_page TYPE REF TO zcl_abapgit_gui_page_patch,
@ -321,6 +316,21 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
mi_gui_services->get_hotkeys_ctl( )->register_hotkeys( me ). mi_gui_services->get_hotkeys_ctl( )->register_hotkeys( me ).
mi_gui_services->get_html_parts( )->add_part(
iv_collection = zcl_abapgit_gui_component=>c_html_parts-hidden_forms
ii_part = render_deferred_hidden_events( ) ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD.
METHOD render_deferred_hidden_events.
DATA ls_event TYPE zcl_abapgit_gui_chunk_lib=>ty_event_signature.
ls_event-method = 'post'.
ls_event-name = 'stage_commit'.
ro_html = zcl_abapgit_gui_chunk_lib=>render_event_as_form( ls_event ).
ENDMETHOD. ENDMETHOD.
@ -492,9 +502,9 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts. METHOD render_scripts.
ro_html = super->scripts( ). CREATE OBJECT ro_html.
ro_html->add( 'var gStageParams = {' ). ro_html->add( 'var gStageParams = {' ).
ro_html->add( | seed: "{ mv_seed }",| ). " Unique page id ro_html->add( | seed: "{ mv_seed }",| ). " Unique page id

View File

@ -18,8 +18,7 @@ CLASS zcl_abapgit_gui_page_tag DEFINITION PUBLIC FINAL
PROTECTED SECTION. PROTECTED SECTION.
METHODS: METHODS:
render_content REDEFINITION, render_content REDEFINITION.
scripts REDEFINITION.
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS: BEGIN OF c_tag_type, CONSTANTS: BEGIN OF c_tag_type,
@ -56,6 +55,12 @@ CLASS zcl_abapgit_gui_page_tag DEFINITION PUBLIC FINAL
IMPORTING IMPORTING
it_postdata TYPE cnht_post_data_tab. it_postdata TYPE cnht_post_data_tab.
METHODS render_scripts
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
@ -194,6 +199,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION.
ro_html->add( render_form( ) ). ro_html->add( render_form( ) ).
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
register_deferred_script( render_scripts( ) ).
ENDMETHOD. ENDMETHOD.
@ -334,6 +341,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_scripts.
CREATE OBJECT ro_html.
ro_html->add( 'setInitialFocus("name");' ).
ENDMETHOD.
METHOD render_text_input. METHOD render_text_input.
DATA lv_attrs TYPE string. DATA lv_attrs TYPE string.
@ -356,15 +372,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD scripts.
ro_html = super->scripts( ).
ro_html->add( 'setInitialFocus("name");' ).
ENDMETHOD.
METHOD zif_abapgit_gui_event_handler~on_event. METHOD zif_abapgit_gui_event_handler~on_event.
CASE iv_action. CASE iv_action.