WordPress.org

Make WordPress Core

Ticket #20885: 20885.patch

File 20885.patch, 12.6 KB (added by SergeyBiryukov, 3 years ago)
  • wp-admin/js/edit-comments.dev.js

     
    593593 
    594594                $.table_hotkeys( 
    595595                        $('table.widefat'), 
    596                         ['a', 'u', 's', 'd', 'r', 'q', 'z', ['e', edit_comment], ['shift+x', toggle_all], 
    597                         ['shift+a', make_bulk('approve')], ['shift+s', make_bulk('spam')], 
    598                         ['shift+d', make_bulk('delete')], ['shift+t', make_bulk('trash')], 
    599                         ['shift+z', make_bulk('untrash')], ['shift+u', make_bulk('unapprove')]], 
     596                        ['a', 'u', 's', 'd', 'r', 'q', 'z', ['e', edit_comment], ['shift_x', toggle_all], 
     597                        ['shift_a', make_bulk('approve')], ['shift_s', make_bulk('spam')], 
     598                        ['shift_d', make_bulk('delete')], ['shift_t', make_bulk('trash')], 
     599                        ['shift_z', make_bulk('untrash')], ['shift_u', make_bulk('unapprove')]], 
    600600                        { highlight_first: adminCommentsL10n.hotkeys_highlight_first, highlight_last: adminCommentsL10n.hotkeys_highlight_last, 
    601601                        prev_page_link_cb: make_hotkeys_redirect('prev'), next_page_link_cb: make_hotkeys_redirect('next') } 
    602602                ); 
  • wp-includes/js/jquery/jquery.hotkeys.dev.js

     
    1 /****************************************************************************************************************************** 
     1/* 
     2 * jQuery Hotkeys Plugin 
     3 * Copyright 2010, John Resig 
     4 * Dual licensed under the MIT or GPL Version 2 licenses. 
     5 * 
     6 * Based upon the plugin by Tzury Bar Yochay: 
     7 * http://github.com/tzuryby/hotkeys 
     8 * 
     9 * Original idea by: 
     10 * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ 
     11*/ 
    212 
    3  * @ Original idea by by Binny V A, Original version: 2.00.A  
    4  * @ http://www.openjs.com/scripts/events/keyboard_shortcuts/ 
    5  * @ Original License : BSD 
    6   
    7  * @ jQuery Plugin by Tzury Bar Yochay  
    8         mail: tzury.by@gmail.com 
    9         blog: evalinux.wordpress.com 
    10         face: facebook.com/profile.php?id=513676303 
    11          
    12         (c) Copyrights 2007 
    13          
    14  * @ jQuery Plugin version Beta (0.0.2) 
    15  * @ License: jQuery-License. 
    16   
    17 TODO: 
    18     add queue support (as in gmail) e.g. 'x' then 'y', etc. 
    19     add mouse + mouse wheel events. 
     13(function(jQuery){ 
    2014 
    21 USAGE: 
    22     $.hotkeys.add('Ctrl+c', function(){ alert('copy anyone?');}); 
    23     $.hotkeys.add('Ctrl+c', {target:'div#editor', type:'keyup', propagate: true},function(){ alert('copy anyone?');});> 
    24     $.hotkeys.remove('Ctrl+c');  
    25     $.hotkeys.remove('Ctrl+c', {target:'div#editor', type:'keypress'});  
    26      
    27 ******************************************************************************************************************************/ 
    28 (function (jQuery){ 
    29     this.version = '(beta)(0.0.3)'; 
    30         this.all = {}; 
    31     this.special_keys = { 
    32         27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock',  
    33         144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup',  
    34         34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3',  
    35         115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12'}; 
    36          
    37     this.shift_nums = { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&",  
    38         "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<",  
    39         ".":">",  "/":"?",  "\\":"|" }; 
    40          
    41     this.add = function(combi, options, callback) { 
    42         if (jQuery.isFunction(options)){ 
    43             callback = options; 
    44             options = {}; 
    45         } 
    46         var opt = {}, 
    47             defaults = {type: 'keydown', propagate: false, disableInInput: false, target: jQuery('html')[0]}, 
    48             that = this; 
    49         opt = jQuery.extend( opt , defaults, options || {} ); 
    50         combi = combi.toLowerCase();         
    51          
    52         // inspect if keystroke matches 
    53         var inspector = function(event) { 
    54             event = jQuery.event.fix(event); // jQuery event normalization. 
    55             var element = event.target; 
    56             // @ TextNode -> nodeType == 3 
    57             element = (element.nodeType==3) ? element.parentNode : element; 
    58              
    59             if(opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields 
    60                 var target = jQuery(element); 
    61                 if( target.is("input") || target.is("textarea")){ 
    62                     return; 
    63                 } 
    64             } 
    65             var code = event.which, 
    66                 type = event.type, 
    67                 character = String.fromCharCode(code).toLowerCase(), 
    68                 special = that.special_keys[code], 
    69                 shift = event.shiftKey, 
    70                 ctrl = event.ctrlKey, 
    71                 alt= event.altKey, 
    72                 meta = event.metaKey, 
    73                 propagate = true, // default behaivour 
    74                 mapPoint = null; 
    75              
    76             // in opera + safari, the event.target is unpredictable. 
    77             // for example: 'keydown' might be associated with HtmlBodyElement  
    78             // or the element where you last clicked with your mouse. 
    79             if (jQuery.browser.opera || jQuery.browser.safari){ 
    80                 while (!that.all[element] && element.parentNode){ 
    81                     element = element.parentNode; 
    82                 } 
    83             } 
    84             var cbMap = that.all[element].events[type].callbackMap; 
    85             if(!shift && !ctrl && !alt && !meta) { // No Modifiers 
    86                 mapPoint = cbMap[special] ||  cbMap[character] 
     15        jQuery.hotkeys = { 
     16                version: "0.8+", 
     17 
     18                specialKeys: { 
     19                        8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause", 
     20                        20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 
     21                        37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del", 
     22                        96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7", 
     23                        104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/", 
     24                        112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8", 
     25                        120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 188: ",", 190: ".", 
     26                        191: "/", 224: "meta" 
     27                }, 
     28 
     29                shiftNums: { 
     30                        "`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&", 
     31                        "8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<", 
     32                        ".": ">",  "/": "?",  "\\": "|" 
     33                } 
     34        }; 
     35 
     36        function keyHandler( handleObj ) { 
     37 
     38                var origHandler = handleObj.handler, 
     39                        //use namespace as keys so it works with event delegation as well 
     40                        //will also allow removing listeners of a specific key combination 
     41                        //and support data objects 
     42                        keys = (handleObj.namespace || "").toLowerCase().split(" "); 
     43                        keys = jQuery.map(keys, function(key) { return key.split("."); }); 
     44 
     45                //no need to modify handler if no keys specified 
     46                if (keys.length === 1 && (keys[0] === "" || keys[0] === "autocomplete")) { 
     47                        return; 
     48                } 
     49 
     50                handleObj.handler = function( event ) { 
     51                        // Don't fire in text-accepting inputs that we didn't directly bind to 
     52                        // important to note that $.fn.prop is only available on jquery 1.6+ 
     53                        if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) || 
     54                                event.target.type === "text" || jQuery(event.target).prop('contenteditable') == 'true' )) { 
     55                                return; 
    8756                        } 
    88             // deals with combinaitons (alt|ctrl|shift+anything) 
    89             else{ 
    90                 var modif = ''; 
    91                 if(alt) modif +='alt+'; 
    92                 if(ctrl) modif+= 'ctrl+'; 
    93                 if(shift) modif += 'shift+'; 
    94                 if(meta) modif += 'meta+'; 
    95                 // modifiers + special keys or modifiers + characters or modifiers + shift characters 
    96                 mapPoint = cbMap[modif+special] || cbMap[modif+character] || cbMap[modif+that.shift_nums[character]] 
    97             } 
    98             if (mapPoint){ 
    99                 mapPoint.cb(event); 
    100                 if(!mapPoint.propagate) { 
    101                     event.stopPropagation(); 
    102                     event.preventDefault(); 
    103                     return false; 
    104                 } 
    105             } 
    106                 };         
    107         // first hook for this element 
    108         if (!this.all[opt.target]){ 
    109             this.all[opt.target] = {events:{}}; 
    110         } 
    111         if (!this.all[opt.target].events[opt.type]){ 
    112             this.all[opt.target].events[opt.type] = {callbackMap: {}} 
    113             jQuery.event.add(opt.target, opt.type, inspector); 
    114         }         
    115         this.all[opt.target].events[opt.type].callbackMap[combi] =  {cb: callback, propagate:opt.propagate};                 
    116         return jQuery; 
    117         };     
    118     this.remove = function(exp, opt) { 
    119         opt = opt || {}; 
    120         target = opt.target || jQuery('html')[0]; 
    121         type = opt.type || 'keydown'; 
    122                 exp = exp.toLowerCase();         
    123         delete this.all[target].events[type].callbackMap[exp]         
    124         return jQuery; 
    125         }; 
    126     jQuery.hotkeys = this; 
    127     return jQuery;     
    128 })(jQuery); 
    129  No newline at end of file 
     57 
     58                        // Keypress represents characters, not special keys 
     59                        var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ], 
     60                                character = String.fromCharCode( event.which ).toLowerCase(), 
     61                                key, modif = "", possible = {}; 
     62 
     63                        // check combinations (alt|ctrl|shift+anything) 
     64                        if ( event.altKey && special !== "alt" ) { 
     65                                modif += "alt_"; 
     66                        } 
     67 
     68                        if ( event.ctrlKey && special !== "ctrl" ) { 
     69                                modif += "ctrl_"; 
     70                        } 
     71 
     72                        // TODO: Need to make sure this works consistently across platforms 
     73                        if ( event.metaKey && !event.ctrlKey && special !== "meta" ) { 
     74                                modif += "meta_"; 
     75                        } 
     76 
     77                        if ( event.shiftKey && special !== "shift" ) { 
     78                                modif += "shift_"; 
     79                        } 
     80 
     81                        if ( special ) { 
     82                                possible[ modif + special ] = true; 
     83 
     84                        } else { 
     85                                possible[ modif + character ] = true; 
     86                                possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true; 
     87 
     88                                // "$" can be triggered as "Shift+4" or "Shift+$" or just "$" 
     89                                if ( modif === "shift_" ) { 
     90                                        possible[ jQuery.hotkeys.shiftNums[ character ] ] = true; 
     91                                } 
     92                        } 
     93 
     94                        for ( var i = 0, l = keys.length; i < l; i++ ) { 
     95                                if ( possible[ keys[i] ] ) { 
     96                                        return origHandler.apply( this, arguments ); 
     97                                } 
     98                        } 
     99                }; 
     100        } 
     101 
     102        jQuery.each([ "keydown", "keyup", "keypress" ], function() { 
     103                jQuery.event.special[ this ] = { add: keyHandler }; 
     104        }); 
     105 
     106})( jQuery ); 
  • wp-includes/js/jquery/jquery.table-hotkeys.dev.js

     
    7474                        set_current_row(first_row); 
    7575                else if (opts.highlight_last) 
    7676                        set_current_row(get_last_row()); 
    77                 $.hotkeys.add(opts.prev_key, opts.hotkeys_opts, function() {return adjacent_row_callback('prev')}); 
    78                 $.hotkeys.add(opts.next_key, opts.hotkeys_opts, function() {return adjacent_row_callback('next')}); 
    79                 $.hotkeys.add(opts.mark_key, opts.hotkeys_opts, check); 
     77                $(document).bind('keypress.' + opts.prev_key, function() {return adjacent_row_callback('prev')}); 
     78                $(document).bind('keypress.' + opts.next_key, function() {return adjacent_row_callback('next')}); 
     79                $(document).bind('keypress.' + opts.mark_key, check); 
    8080                $.each(keys, function() { 
    8181                        var callback, key; 
    8282                         
    8383                        if ($.isFunction(this[1])) { 
    8484                                callback = this[1]; 
    8585                                key = this[0]; 
    86                                 $.hotkeys.add(key, opts.hotkeys_opts, function(event) { return callback(event, $.table_hotkeys.current_row); }); 
     86                                $(document).bind('keypress.' + key, function(event) { return callback(event, $.table_hotkeys.current_row); }); 
    8787                        } else { 
    8888                                key = this; 
    89                                 $.hotkeys.add(key, opts.hotkeys_opts, make_key_callback('.'+opts.class_prefix+key)); 
     89                                $(document).bind('keypress.' + key, make_key_callback('.'+opts.class_prefix+key)); 
    9090                        } 
    9191                }); 
    9292 
    9393        }; 
    9494        $.table_hotkeys.current_row = null; 
    95         $.table_hotkeys.defaults = {cycle_expr: 'tr', class_prefix: 'vim-', selected_suffix: 'current', 
    96                 destructive_suffix: 'destructive', hotkeys_opts: {disableInInput: true, type: 'keypress'}, 
     95        $.table_hotkeys.defaults = { 
     96                cycle_expr: 'tr', class_prefix: 'vim-', selected_suffix: 'current', destructive_suffix: 'destructive', 
    9797                checkbox_expr: ':checkbox', next_key: 'j', prev_key: 'k', mark_key: 'x', 
    98                 start_row_index: 2, highlight_first: false, highlight_last: false, next_page_link_cb: false, prev_page_link_cb: false}; 
     98                start_row_index: 2, highlight_first: false, highlight_last: false, next_page_link_cb: false, prev_page_link_cb: false 
     99        }; 
    99100})(jQuery);