mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
synced 2024-11-27 17:50:44 +00:00
Merge "Keyboard shortcuts for formatting tools in WikiEditor 2010"
This commit is contained in:
commit
0d106ac68a
|
@ -246,6 +246,7 @@
|
||||||
],
|
],
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
"mediawiki.cookie",
|
"mediawiki.cookie",
|
||||||
|
"jquery.client",
|
||||||
"jquery.textSelection",
|
"jquery.textSelection",
|
||||||
"jquery.ui",
|
"jquery.ui",
|
||||||
"mediawiki.api",
|
"mediawiki.api",
|
||||||
|
|
|
@ -42,7 +42,8 @@ module.exports = {
|
||||||
action: {
|
action: {
|
||||||
type: 'dialog',
|
type: 'dialog',
|
||||||
module: 'insert-link'
|
module: 'insert-link'
|
||||||
}
|
},
|
||||||
|
hotkey: 'KeyK'
|
||||||
},
|
},
|
||||||
file: {
|
file: {
|
||||||
label: mw.msg( 'wikieditor-toolbar-tool-file' ),
|
label: mw.msg( 'wikieditor-toolbar-tool-file' ),
|
||||||
|
|
|
@ -45,7 +45,8 @@ toolbarConfig = {
|
||||||
peri: mw.msg( 'wikieditor-toolbar-tool-bold-example' ),
|
peri: mw.msg( 'wikieditor-toolbar-tool-bold-example' ),
|
||||||
post: "'''"
|
post: "'''"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hotkey: 'KeyB'
|
||||||
},
|
},
|
||||||
italic: {
|
italic: {
|
||||||
section: 'main',
|
section: 'main',
|
||||||
|
@ -61,7 +62,8 @@ toolbarConfig = {
|
||||||
peri: mw.msg( 'wikieditor-toolbar-tool-italic-example' ),
|
peri: mw.msg( 'wikieditor-toolbar-tool-italic-example' ),
|
||||||
post: "''"
|
post: "''"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hotkey: 'KeyI'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -206,7 +208,8 @@ toolbarConfig = {
|
||||||
peri: mw.msg( 'wikieditor-toolbar-tool-nowiki-example' ),
|
peri: mw.msg( 'wikieditor-toolbar-tool-nowiki-example' ),
|
||||||
post: '</nowiki>'
|
post: '</nowiki>'
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hotkey: 'Backslash'
|
||||||
},
|
},
|
||||||
newline: {
|
newline: {
|
||||||
label: mw.msg( 'wikieditor-toolbar-tool-newline' ),
|
label: mw.msg( 'wikieditor-toolbar-tool-newline' ),
|
||||||
|
@ -260,7 +263,8 @@ toolbarConfig = {
|
||||||
peri: mw.msg( 'wikieditor-toolbar-tool-superscript-example' ),
|
peri: mw.msg( 'wikieditor-toolbar-tool-superscript-example' ),
|
||||||
post: '</sup>'
|
post: '</sup>'
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hotkey: 'Period'
|
||||||
},
|
},
|
||||||
subscript: {
|
subscript: {
|
||||||
label: mw.msg( 'wikieditor-toolbar-tool-subscript' ),
|
label: mw.msg( 'wikieditor-toolbar-tool-subscript' ),
|
||||||
|
@ -273,7 +277,8 @@ toolbarConfig = {
|
||||||
peri: mw.msg( 'wikieditor-toolbar-tool-subscript-example' ),
|
peri: mw.msg( 'wikieditor-toolbar-tool-subscript-example' ),
|
||||||
post: '</sub>'
|
post: '</sub>'
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hotkey: 'Comma'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -359,6 +359,9 @@ var toolbarModule = {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
if ( 'hotkey' in tool ) {
|
||||||
|
toolbarModule.fn.ctrlShortcuts[ tool.hotkey ] = tool;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $button;
|
return $button;
|
||||||
case 'select':
|
case 'select':
|
||||||
|
@ -786,6 +789,21 @@ var toolbarModule = {
|
||||||
// Use hook for attaching new toolbar tools to avoid race conditions
|
// Use hook for attaching new toolbar tools to avoid race conditions
|
||||||
mw.hook( 'wikiEditor.toolbarReady' ).fire( context.$textarea );
|
mw.hook( 'wikiEditor.toolbarReady' ).fire( context.$textarea );
|
||||||
} );
|
} );
|
||||||
|
toolbarModule.fn.setupShortcuts( context );
|
||||||
|
},
|
||||||
|
ctrlShortcuts: {},
|
||||||
|
setupShortcuts: function ( context ) {
|
||||||
|
var platform = $.client.profile().platform;
|
||||||
|
var modifierKey = platform === 'mac' ? 'metaKey' : 'ctrlKey';
|
||||||
|
|
||||||
|
context.$textarea.on( 'keydown', function ( e ) {
|
||||||
|
// Check if modifier key is pressed and hotkey is recognised
|
||||||
|
var target = e[ modifierKey ] && toolbarModule.fn.ctrlShortcuts[ e.code ];
|
||||||
|
if ( target ) {
|
||||||
|
e.preventDefault();
|
||||||
|
toolbarModule.fn.doAction( context, target.action );
|
||||||
|
}
|
||||||
|
} );
|
||||||
},
|
},
|
||||||
handleKeyDown: function ( $element, event, $parent ) {
|
handleKeyDown: function ( $element, event, $parent ) {
|
||||||
var $currentItem = $element.find( '.wikiEditor-character-highlighted' ),
|
var $currentItem = $element.find( '.wikiEditor-character-highlighted' ),
|
||||||
|
|
Loading…
Reference in a new issue