From 60a82331b5f63c38798c99e6bf9cb5d71002f6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederik=20Hud=C3=A1k?= Date: Tue, 6 Jul 2021 11:32:27 +0200 Subject: [PATCH] Add more keyboard shortcuts for main page (#4846) * Add more shortcuts for main page * Update zabapgit_css_common.w3mi.data.css * Update zcl_abapgit_gui_router.clas.abap * Change keyboard shortcuts * fix js * fix js * deindent * indentation * one more Co-authored-by: Lars Hvam Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/ui/zabapgit_css_common.w3mi.data.css | 2 +- src/ui/zabapgit_js_common.w3mi.data.js | 13 ++++----- src/ui/zcl_abapgit_gui_page_main.clas.abap | 31 +++++++++++++++++++++ src/ui/zcl_abapgit_gui_page_patch.clas.abap | 2 +- src/ui/zcl_abapgit_gui_router.clas.abap | 9 ++++-- 5 files changed, 46 insertions(+), 11 deletions(-) diff --git a/src/ui/zabapgit_css_common.w3mi.data.css b/src/ui/zabapgit_css_common.w3mi.data.css index 536ab6511..8ae9fdd4c 100644 --- a/src/ui/zabapgit_css_common.w3mi.data.css +++ b/src/ui/zabapgit_css_common.w3mi.data.css @@ -922,7 +922,7 @@ ul.hotkeys span.key-id { border: 1px solid; border-radius: 3px; padding: 1px 7px; - width: 1em; + width: 3em; display: inline-block; text-align: center; margin-top: 0.2em; diff --git a/src/ui/zabapgit_js_common.w3mi.data.js b/src/ui/zabapgit_js_common.w3mi.data.js index b4d6a6f2d..98b1004ea 100644 --- a/src/ui/zabapgit_js_common.w3mi.data.js +++ b/src/ui/zabapgit_js_common.w3mi.data.js @@ -281,9 +281,9 @@ RepoOverViewHelper.prototype.onPageLoad = function () { } }; -RepoOverViewHelper.prototype.registerKeyboardShortcuts = function () { +RepoOverViewHelper.prototype.registerKeyboardShortcuts = function() { var self = this; - document.addEventListener("keypress", function (event) { + document.addEventListener("keypress", function(event) { if (document.activeElement.id === "filter") { return; } @@ -295,12 +295,11 @@ RepoOverViewHelper.prototype.registerKeyboardShortcuts = function () { if (keycode == 13) { // "enter" to open self.openSelectedRepo(); - } - else if (keycode == 44 && indexOfSelected > 0) { - // "<" for previous + } else if ((keycode == 52 || keycode == 100) && indexOfSelected > 0) { + // "4" for previous self.selectRowByIndex(indexOfSelected - 1); - } else if (keycode == 46 && indexOfSelected < rows.length - 1) { - // ">" for next + } else if ((keycode == 54 || keycode == 102) && indexOfSelected < rows.length - 1) { + // "6" for next self.selectRowByIndex(indexOfSelected + 1); } }); diff --git a/src/ui/zcl_abapgit_gui_page_main.clas.abap b/src/ui/zcl_abapgit_gui_page_main.clas.abap index 4e961d4e9..ac0b63771 100644 --- a/src/ui/zcl_abapgit_gui_page_main.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_main.clas.abap @@ -164,5 +164,36 @@ CLASS zcl_abapgit_gui_page_main IMPLEMENTATION. ls_hotkey_action-hotkey = |o|. INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + ls_hotkey_action-description = |Stage|. + ls_hotkey_action-action = zif_abapgit_definitions=>c_action-go_stage. + ls_hotkey_action-hotkey = |s|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + + ls_hotkey_action-description = |Check|. + ls_hotkey_action-action = zif_abapgit_definitions=>c_action-repo_code_inspector. + ls_hotkey_action-hotkey = |c|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + + ls_hotkey_action-description = |Patch|. + ls_hotkey_action-action = zif_abapgit_definitions=>c_action-go_patch. + ls_hotkey_action-hotkey = |p|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + + " registered/handled in js + ls_hotkey_action-description = |Previous repository|. + ls_hotkey_action-action = `#`. + ls_hotkey_action-hotkey = |4|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + + ls_hotkey_action-description = |Next repository|. + ls_hotkey_action-action = `##`. + ls_hotkey_action-hotkey = |6|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + + ls_hotkey_action-description = |Open repository|. + ls_hotkey_action-action = `###`. + ls_hotkey_action-hotkey = |Enter|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + ENDMETHOD. ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page_patch.clas.abap b/src/ui/zcl_abapgit_gui_page_patch.clas.abap index 0a6ce17dd..4e14f8a08 100644 --- a/src/ui/zcl_abapgit_gui_page_patch.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_patch.clas.abap @@ -356,7 +356,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION. it_files = it_files ). IF mo_repo->is_offline( ) = abap_true. - zcx_abapgit_exception=>raise( |Can't patch offline repos| ). + zcx_abapgit_exception=>raise( |Patching is only possible for online repositories.| ). ENDIF. mo_repo_online ?= mo_repo. diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index d8e4b75d7..97ed878f7 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -335,11 +335,16 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. lv_answer TYPE c LENGTH 1, lv_question_text TYPE string, lv_question_title TYPE string, - lv_show_create_branch_popup TYPE c LENGTH 1. + lv_show_create_branch_popup TYPE c LENGTH 1, + lx_error TYPE REF TO cx_sy_move_cast_error. lv_key = ii_event->query( )->get( 'KEY' ). lv_seed = ii_event->query( )->get( 'SEED' ). - lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + TRY. + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + CATCH cx_sy_move_cast_error INTO lx_error. + zcx_abapgit_exception=>raise( `Staging is only possible for online repositories.` ). + ENDTRY. IF lo_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.