// ==UserScript== // @name PI Search with Keyboard Shortcuts // @namespace https://greasyfork.org/en/users/10782 // @version 0.1 // @description Autoselects 'Perfect' for each item entry. Adds Keyboard shortcuts: 1 -> PERFECT, 2 -> GOOD, 3 -> NOT REALLY, 4 -> NOT GOOD, 5 -> DON'T KNOW, N -> Goes to NEXT item, B -> Goes BACK to last item // @author tismyname // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js // @include https://s3.amazonaws.com/* // @downloadURL none // ==/UserScript== // Makes Instructions Hidable $(".panel-heading").before('') $(".panel-heading").hide(); $(".panel-body").hide(); // Button to show or hide instructions $('#toggler').click(function() { $(".panel-heading").toggle(); $(".panel-body").toggle(); }); var ITEMS = 6; var currentQ = 1; // Auto Select First Option for(var i = 1; i <= ITEMS; i++) { $('#Q'+i+'_5').click(); } // Auto focuses on first radio button $('#Q'+currentQ+'_5').focus(); // Checks for keypresses $(document).keyup(function (event) { var key = toCharacter(event.keyCode); if (key=='1') { $('#Q'+currentQ+'_5').click(); } if (key=='2') { $('#Q'+currentQ+'_4').click(); } if (key=='3') { $('#Q'+currentQ+'_3').click(); } if (key=='4') { $('#Q'+currentQ+'_2').click(); } if (key=='5') { $('#Q'+currentQ+'_1').click(); } if(key=='N') { if(currentQ > ITEMS) currentQ = 1; else { currentQ++; $('#Q'+currentQ+'_5').focus(); } } if(key=='B') { if(currentQ <= 1) currentQ = 6; else { currentQ--; $('#Q'+currentQ+'_5').focus(); } } }); // code from https://greasyfork.org/en/scripts/5978-mturk-dave-cobb-hit-helper function toCharacter(keyCode) { // delta to convert num-pad key codes to QWERTY codes. var numPadToKeyPadDelta = 48; // if a numeric key on the num pad was pressed. if (keyCode >= 96 && keyCode <= 105) { keyCode = keyCode - numPadToKeyPadDelta; return String.fromCharCode(keyCode); } if (keyCode == 13) return "ENTER"; // not sure if I need to add code to hit the submit button return String.fromCharCode(keyCode); }