Skip to content
Snippets Groups Projects
Commit fd4aecf5 authored by Erik Sargent's avatar Erik Sargent
Browse files

cleanup

parent dafe028c
No related branches found
No related tags found
No related merge requests found
// your file
/*****************************
* Keyboard shortcuts for Files app
* ctrl/cmd+n: new folder
* ctrl/cmd+shift+n: new file
* esc (while new file context menu is open): close menu
* up/down: select file/folder
* enter: open file/folder
* delete/backspace: delete file/folder
* ctrl/cmd+shift+r: rename file/folder
*****************************/
var Files = Files || {};
function removeA(arr) {
var what, a = arguments, L = a.length, ax;
while (L > 1 && arr.length) {
what = a[--L];
while ((ax = arr.indexOf(what)) !== -1) {
arr.splice(ax, 1);
}
}
return arr;
}
Files.bindKeyboardShortcuts = function (document, $) {
var keys = [];
var keyCodes = {
shift: 16,
......@@ -28,67 +25,39 @@ Files.bindKeyboardShortcuts = function (document, $) {
upArrow: 38,
enter: 13,
backspace: 8,
delete: 46
del: 46
};
$(document).keydown(function(event){//check for modifier keys
var preventDefault = false;
if($.inArray(event.keyCode, keys) === -1)
keys.push(event.keyCode);
console.log(event.keyCode);
if($.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1)){
preventDefault = true;
}
if($.inArray(keyCodes.backspace, keys) !== -1 && !$("#new").hasClass("active")) {
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
preventDefault = true;
}
});
}
if(!$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1) && $.inArray(keyCodes.shift, keys) !== -1){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
preventDefault = true;
function removeA(arr) {
var what, a = arguments, L = a.length, ax;
while (L > 1 && arr.length) {
what = a[--L];
while ((ax = arr.indexOf(what)) !== -1) {
arr.splice(ax, 1);
}
});
}
if(preventDefault){
event.preventDefault(); //Prevent web browser from responding
event.stopPropagation();
return false;
return arr;
}
});
$(document).keyup(function(event){
// do your event.keyCode checks in here
console.log(JSON.stringify(keys));
if($.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1)){
if($.inArray(keyCodes.shift, keys) !== -1){ //16=shift, New File
function newFile(){
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="file"]').trigger('click');
console.log("new file");
removeA(keys, keyCodes.n);
}
else{ //New Folder
function newFolder(){
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="folder"]').trigger('click');
console.log("new folder");
removeA(keys, keyCodes.n);
}
}
else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){
function esc(){
$("#controls").trigger('click');
console.log("close");
}
else if($.inArray(keyCodes.downArrow, keys) !== -1){
function down(){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
......@@ -108,8 +77,7 @@ Files.bindKeyboardShortcuts = function (document, $) {
});
}
}
else if($.inArray(keyCodes.upArrow, keys) !== -1){
function up(){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
......@@ -129,8 +97,7 @@ Files.bindKeyboardShortcuts = function (document, $) {
});
}
}
else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){
function enter(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
......@@ -138,8 +105,7 @@ Files.bindKeyboardShortcuts = function (document, $) {
}
});
}
else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.delete, keys) !== -1)) {
function del(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
......@@ -147,7 +113,7 @@ Files.bindKeyboardShortcuts = function (document, $) {
}
});
}
else if(!$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1) && $.inArray(keyCodes.shift, keys) !== -1){
function rename(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
......@@ -156,6 +122,74 @@ Files.bindKeyboardShortcuts = function (document, $) {
});
}
Files.bindKeyboardShortcuts = function (document, $) {
$(document).keydown(function(event){//check for modifier keys
var preventDefault = false;
if($.inArray(event.keyCode, keys) === -1)
keys.push(event.keyCode);
console.log(event.keyCode);
if($.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1)){ //new file/folder prevent browser from responding
preventDefault = true;
}
if($.inArray(keyCodes.backspace, keys) !== -1 && !$("#new").hasClass("active")) { //prevent default when deleting a file/folder
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
preventDefault = true;
}
});
}
if(!$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1) && $.inArray(keyCodes.shift, keys) !== -1){//prevent default when renaming file/folder
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
preventDefault = true;
}
});
}
if(preventDefault){
event.preventDefault(); //Prevent web browser from responding
event.stopPropagation();
return false;
}
});
$(document).keyup(function(event){
// do your event.keyCode checks in here
console.log(JSON.stringify(keys));
if($.inArray(keyCodes.n, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1)){
if($.inArray(keyCodes.shift, keys) !== -1){ //16=shift, New File
newFile();
}
else{ //New Folder
newFolder();
}
}
else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){
esc();
}
else if($.inArray(keyCodes.downArrow, keys) !== -1){
down();
}
else if($.inArray(keyCodes.upArrow, keys) !== -1){
up();
}
else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){
enter();
}
else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.del, keys) !== -1)) {
del();
}
else if(!$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 || $.inArray(keyCodes.ctrl, keys) !== -1) && $.inArray(keyCodes.shift, keys) !== -1){
rename();
}
removeA(keys, event.keyCode);
});
};
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment