From 38edff6603b1fcd343d2ba7dc7dd0e0cd7e96b31 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Tue, 23 Apr 2019 11:17:27 +0000 Subject: [PATCH] Bug 21411: Address QA concerns Move to admin Add a permission Remove descriptions from table Clean up template --- Koha/KeyboardShortcuts.pm | 6 ++- {tools => admin}/adveditorshortcuts.pl | 4 +- .../Bug_21411_add_keyboard_shortcuts.perl | 35 +++++++++++++++ .../mysql/atomicupdate/add_keyboard_shortcuts.perl | 30 ------------- installer/data/mysql/kohastructure.sql | 1 - .../{en => }/mandatory/keyboard_shortcuts.sql | 24 +++++----- installer/data/mysql/userpermissions.sql | 1 + .../intranet-tmpl/prog/en/includes/admin-menu.inc | 3 ++ .../prog/en/includes/keyboard_shortcuts.inc | 15 +++++++ .../intranet-tmpl/prog/en/includes/permissions.inc | 5 +++ .../prog/en/modules/admin/admin-home.tt | 4 ++ .../modules/{tools => admin}/adveditorshortcuts.tt | 23 +++++----- .../prog/en/modules/cataloguing/editor.tt | 5 ++- t/db_dependent/Koha/KeyboardShortcuts.t | 52 ++++++++++++++++++++++ 14 files changed, 150 insertions(+), 58 deletions(-) rename {tools => admin}/adveditorshortcuts.pl (93%) create mode 100644 installer/data/mysql/atomicupdate/Bug_21411_add_keyboard_shortcuts.perl delete mode 100644 installer/data/mysql/atomicupdate/add_keyboard_shortcuts.perl rename installer/data/mysql/{en => }/mandatory/keyboard_shortcuts.sql (52%) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/keyboard_shortcuts.inc rename koha-tmpl/intranet-tmpl/prog/en/modules/{tools => admin}/adveditorshortcuts.tt (70%) create mode 100644 t/db_dependent/Koha/KeyboardShortcuts.t diff --git a/Koha/KeyboardShortcuts.pm b/Koha/KeyboardShortcuts.pm index af26745527..0fb8270ff5 100644 --- a/Koha/KeyboardShortcuts.pm +++ b/Koha/KeyboardShortcuts.pm @@ -35,7 +35,7 @@ Koha::KeyboardShortcuts - Koha KeyboardShortcut Object set class =cut -=head3 type +=head3 _type (internal) =cut @@ -43,6 +43,10 @@ sub _type { return 'KeyboardShortcut'; } +=head3 object_class (internal) + +=cut + sub object_class { return 'Koha::KeyboardShortcut'; } diff --git a/tools/adveditorshortcuts.pl b/admin/adveditorshortcuts.pl similarity index 93% rename from tools/adveditorshortcuts.pl rename to admin/adveditorshortcuts.pl index 6e4279c6a8..555ddc9ef6 100755 --- a/tools/adveditorshortcuts.pl +++ b/admin/adveditorshortcuts.pl @@ -47,11 +47,11 @@ my $input = new CGI; my $op = $input->param('op') || 'list'; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => "tools/adveditorshortcuts.tt", + { template_name => "admin/adveditorshortcuts.tt", query => $input, type => "intranet", authnotrequired => 1, - flagsrequired => {}, + flagsrequired => { parameters => 'manage_keyboard_shortcuts' }, debug => 1, } ); diff --git a/installer/data/mysql/atomicupdate/Bug_21411_add_keyboard_shortcuts.perl b/installer/data/mysql/atomicupdate/Bug_21411_add_keyboard_shortcuts.perl new file mode 100644 index 0000000000..17c556a12a --- /dev/null +++ b/installer/data/mysql/atomicupdate/Bug_21411_add_keyboard_shortcuts.perl @@ -0,0 +1,35 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + unless ( TableExists( 'keyboard_shortcuts' ) ) { + $dbh->do(q| + CREATE TABLE keyboard_shortcuts ( + shortcut_name varchar(80) NOT NULL, + shortcut_keys varchar(80) NOT NULL, + PRIMARY KEY (shortcut_name) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;| + ); + } + $dbh->do(q| + INSERT IGNORE INTO keyboard_shortcuts (shortcut_name, shortcut_keys) VALUES + ("insert_copyright","Alt-C"), + ("insert_copyright_sound","Alt-P"), + ("insert_delimiter","Ctrl-D"), + ("subfield_help","Ctrl-H"), + ("link_authorities","Shift-Ctrl-L"), + ("delete_field","Ctrl-X"), + ("delete_subfield","Shift-Ctrl-X"), + ("new_line","Enter"), + ("line_break","Shift-Enter"), + ("next_position","Tab"), + ("prev_position","Shift-Tab") + ;| + ); + $dbh->do(q| + INSERT IGNORE permissions (module_bit, code, description) + VALUES + (3,'manage_keyboard_shortcuts','Manage keyboard shortcuts for advanced cataloging editor') + ;| + ); + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug XXXXX - Add keyboard_shortcuts table)\n"; +} diff --git a/installer/data/mysql/atomicupdate/add_keyboard_shortcuts.perl b/installer/data/mysql/atomicupdate/add_keyboard_shortcuts.perl deleted file mode 100644 index a90d5a8aa7..0000000000 --- a/installer/data/mysql/atomicupdate/add_keyboard_shortcuts.perl +++ /dev/null @@ -1,30 +0,0 @@ -$DBversion = 'XXX'; -if( CheckVersion( $DBversion ) ) { - unless ( TableExists( 'keyboard_shortcuts' ) ) { - $dbh->do(q| - CREATE TABLE keyboard_shortcuts ( - shortcut_name varchar(80) NOT NULL, - shortcut_keys varchar(80) NOT NULL, - shortcut_desc varchar(200) NOT NULL, - PRIMARY KEY (shortcut_name) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;| - ); - } - $dbh->do(q| - INSERT IGNORE INTO keyboard_shortcuts (shortcut_name, shortcut_keys, shortcut_desc) VALUES - ("insert_copyright","Alt-C","Insert copyright symbol (©)"), - ("insert_copyright_sound","Alt-P","Insert copyright symbol (℗) (sound recordings)"), - ("insert_delimiter","Ctrl-D","Insert delimiter (‡)"), - ("subfield_help","Ctrl-H","Get help on current subfield"), - ("link_authorities","Shift-Ctrl-L","Link field to authorities"), - ("delete_field","Ctrl-X","Delete current field"), - ("delete_subfield","Shift-Ctrl-X","Delete current subfield"), - ("new_line","Enter","New field on next line"), - ("line_break","Shift-Enter","Insert line break"), - ("next_position","Tab","Move to next position"), - ("prev_position","Shift-Tab","Move to previous position") - ;| - ); - SetVersion( $DBversion ); - print "Upgrade to $DBversion done (Bug XXXXX - Add keyboard_shortcuts table)\n"; -} diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index aaf251e5b1..902c44f68b 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -4332,7 +4332,6 @@ DROP TABLE IF EXISTS `keyboard_shortcuts`; CREATE TABLE keyboard_shortcuts ( shortcut_name varchar(80) NOT NULL, shortcut_keys varchar(80) NOT NULL, -shortcut_desc varchar(200) NOT NULL, PRIMARY KEY (shortcut_name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/installer/data/mysql/en/mandatory/keyboard_shortcuts.sql b/installer/data/mysql/mandatory/keyboard_shortcuts.sql similarity index 52% rename from installer/data/mysql/en/mandatory/keyboard_shortcuts.sql rename to installer/data/mysql/mandatory/keyboard_shortcuts.sql index b7e30d3b73..b7fb58a3f4 100644 --- a/installer/data/mysql/en/mandatory/keyboard_shortcuts.sql +++ b/installer/data/mysql/mandatory/keyboard_shortcuts.sql @@ -21,15 +21,15 @@ -- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -- keyboard shortcuts -INSERT INTO keyboard_shortcuts (shortcut_name, shortcut_keys, shortcut_desc) VALUES - ("insert_copyright","Alt-C","Insert copyright symbol (©)"), - ("insert_copyright_sound","Alt-P","Insert copyright symbol (℗) (sound recordings)"), - ("insert_delimiter","Ctrl-D","Insert delimiter (‡)"), - ("subfield_help","Ctrl-H","Get help on current subfield"), - ("link_authorities","Shift-Ctrl-L","Link field to authorities"), - ("delete_field","Ctrl-X","Delete current field"), - ("delete_subfield","Shift-Ctrl-X","Delete current subfield"), - ("new_line","Enter","New field on next line"), - ("line_break","Shift-Enter","Insert line break"), - ("next_position","Tab","Move to next position"), - ("prev_position","Shift-Tab","Move to previous position"); +INSERT INTO keyboard_shortcuts (shortcut_name, shortcut_keys) VALUES + ("insert_copyright","Alt-C"), + ("insert_copyright_sound","Alt-P"), + ("insert_delimiter","Ctrl-D"), + ("subfield_help","Ctrl-H"), + ("link_authorities","Shift-Ctrl-L"), + ("delete_field","Ctrl-X"), + ("delete_subfield","Shift-Ctrl-X"), + ("new_line","Enter"), + ("line_break","Shift-Enter"), + ("next_position","Tab"), + ("prev_position","Shift-Tab"); diff --git a/installer/data/mysql/userpermissions.sql b/installer/data/mysql/userpermissions.sql index 9679c69f5b..911b81fab6 100644 --- a/installer/data/mysql/userpermissions.sql +++ b/installer/data/mysql/userpermissions.sql @@ -32,6 +32,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES ( 3, 'manage_usage_stats', 'Manage usage statistics settings'), ( 3, 'manage_mana', 'Manage Mana KB content sharing'), ( 3, 'manage_additional_fields', 'Add, edit, or delete additional custom fields for baskets or subscriptions (also requires order_manage or edit_subscription permissions)'), + ( 3, 'manage_keyboard_shortcuts', 'Manage keyboard shortcuts for the advanced cataloging editor'), ( 4, 'edit_borrowers', 'Add, modify and view patron information'), ( 4, 'view_borrower_infos_from_any_libraries', 'View patron infos from any libraries'), ( 6, 'place_holds', 'Place holds for patrons'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc index 1677280097..f76f853555 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc @@ -138,6 +138,9 @@ [% IF ( CAN_user_parameters_manage_additional_fields ) %]
  • Additional fields
  • [% END %] + [% IF ( CAN_user_parameters_manage_keyboard_shortcuts ) %] +
  • Keyboard shortcuts
  • + [% END %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/keyboard_shortcuts.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/keyboard_shortcuts.inc new file mode 100644 index 0000000000..e04e4e79c6 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/keyboard_shortcuts.inc @@ -0,0 +1,15 @@ +[%- BLOCK keyboard_shortcut_descriptions -%] + [% SWITCH shortcut_name %] + [%- CASE 'insert_copyright' -%]Insert copyright symbol (©) + [%- CASE 'insert_copyright_sound' -%]Insert copyright symbol (℗) (sound recordings) + [%- CASE 'insert_delimiter' -%]Insert delimiter (‡) + [%- CASE 'subfield_help' -%]Get help on current subfield + [%- CASE 'link_authorities' -%]Link field to authorities + [%- CASE 'delete_field' -%]Delete current field + [%- CASE 'delete_subfield' -%]Delete current subfield + [%- CASE 'new_line' -%]New field on next line + [%- CASE 'line_break' -%]Insert line break + [%- CASE 'next_position' -%]Move to next position + [%- CASE 'prev_position' -%]Move to previous position + [%- END -%] +[%- END -%] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index 0e40101085..d149cdeb61 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -241,6 +241,11 @@ Manage Mana KB content sharing ([% name | html %]) + [%- CASE 'manage_keyboard_shortcuts' -%] + + Manage keyboard shortcuts for the advanced cataloging editor + + ([% name | html %]) [%- CASE 'edit_borrowers' -%] Add, modify and view patron information diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt index 60c0f572f0..2352bc87f4 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt @@ -211,6 +211,10 @@
    Additional fields
    Add additional fields to certain tables
    [% END %] + [% IF ( CAN_user_parameters_manage_keyboard_shortcuts ) %] +
    Keyboard shortcuts
    +
    Define which keys trigger actions in the advanced cataloging editor
    + [% END %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/adveditorshortcuts.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/adveditorshortcuts.tt similarity index 70% rename from koha-tmpl/intranet-tmpl/prog/en/modules/tools/adveditorshortcuts.tt rename to koha-tmpl/intranet-tmpl/prog/en/modules/admin/adveditorshortcuts.tt index abbc4ac37b..730ed50b3e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/adveditorshortcuts.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/adveditorshortcuts.tt @@ -2,17 +2,18 @@ [% USE Asset %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] -Koha › Tools › Advanced editor shortcuts +Koha › Administration › Advanced editor shortcuts [% INCLUDE 'doc-head-close.inc' %] - + [% INCLUDE 'header.inc' %] - [% INCLUDE 'cat-search.inc' %] + [% INCLUDE 'prefs-admin-search.inc' %] + [% PROCESS 'keyboard_shortcuts.inc' %]
    @@ -25,11 +26,12 @@
  • Control key is "Ctrl"
  • Alt key is "Alt"
  • Shift is "Shift"
  • -
  • If combing multiple keys they must be in specified order: Shift-Cmd-Ctrl-Alt
  • +
  • If combining multiple keys they must be in specified order: Shift-Cmd-Ctrl-Alt
  • More documentation on defining key maps
  • -
    + +
    @@ -40,7 +42,7 @@ [% FOREACH shortcut IN shortcuts %] - + [% END %]
    @@ -48,7 +50,8 @@
    - +
    +
    @@ -56,7 +59,7 @@
    diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/editor.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/editor.tt index 90575307a5..fb0011994f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/editor.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/editor.tt @@ -16,6 +16,7 @@ [% INCLUDE 'header.inc' %] +[% PROCESS 'keyboard_shortcuts.inc' %] @@ -268,7 +269,7 @@