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 || {};
var keys = [];
var keyCodes = {
shift: 16,
n: 78,
r: 82,
cmdFirefox: 224,
cmdOpera: 17,
leftCmdWebKit: 91,
rightCmdWebKit: 93,
ctrl: 16,
esc: 27,
downArrow: 40,
upArrow: 38,
enter: 13,
backspace: 8,
del: 46
};
function removeA(arr) {
var what, a = arguments, L = a.length, ax;
while (L > 1 && arr.length) {
......@@ -12,42 +39,107 @@ function removeA(arr) {
return arr;
}
Files.bindKeyboardShortcuts = function (document, $) {
var keys = [];
var keyCodes = {
shift: 16,
n: 78,
r: 82,
cmdFirefox: 224,
cmdOpera: 17,
leftCmdWebKit: 91,
rightCmdWebKit: 93,
ctrl: 16,
esc: 27,
downArrow: 40,
upArrow: 38,
enter: 13,
backspace: 8,
delete: 46
};
function newFile(){
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="file"]').trigger('click');
console.log("new file");
removeA(keys, keyCodes.n);
}
function newFolder(){
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="folder"]').trigger('click');
console.log("new folder");
removeA(keys, keyCodes.n);
}
function esc(){
$("#controls").trigger('click');
console.log("close");
}
function down(){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
select = index+1;
$(this).removeClass("mouseOver");
}
});
if(select === -1){
$("#fileList tr:first").addClass("mouseOver");
}
else{
$("#fileList tr").each(function(index){
if(index === select){
$(this).addClass("mouseOver");
}
});
}
}
function up(){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
select = index-1;
$(this).removeClass("mouseOver");
}
});
if(select === -1){
$("#fileList tr:last").addClass("mouseOver");
}
else{
$("#fileList tr").each(function(index){
if(index === select){
$(this).addClass("mouseOver");
}
});
}
}
function enter(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("span.nametext").trigger('click');
}
});
}
function del(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("a.action.delete").trigger('click');
}
});
}
function rename(){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("a[data-action='Rename']").trigger('click');
}
});
}
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)){
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")) {
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){
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;
......@@ -68,92 +160,34 @@ Files.bindKeyboardShortcuts = function (document, $) {
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
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="file"]').trigger('click');
console.log("new file");
removeA(keys, keyCodes.n);
newFile();
}
else{ //New Folder
$("#new").addClass("active");
$(".popup.popupTop").toggle(true);
$('#new li[data-type="folder"]').trigger('click');
console.log("new folder");
removeA(keys, keyCodes.n);
newFolder();
}
}
else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){
$("#controls").trigger('click');
console.log("close");
esc();
}
else if($.inArray(keyCodes.downArrow, keys) !== -1){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
select = index+1;
$(this).removeClass("mouseOver");
}
});
if(select === -1){
$("#fileList tr:first").addClass("mouseOver");
}
else{
$("#fileList tr").each(function(index){
if(index === select){
$(this).addClass("mouseOver");
}
});
}
down();
}
else if($.inArray(keyCodes.upArrow, keys) !== -1){
var select = -1;
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
select = index-1;
$(this).removeClass("mouseOver");
}
});
if(select === -1){
$("#fileList tr:last").addClass("mouseOver");
}
else{
$("#fileList tr").each(function(index){
if(index === select){
$(this).addClass("mouseOver");
}
});
}
up();
}
else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("span.nametext").trigger('click');
}
});
enter();
}
else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.delete, keys) !== -1)) {
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("a.action.delete").trigger('click');
}
});
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){
$("#fileList tr").each(function(index){
if($(this).hasClass("mouseOver")){
$(this).removeClass("mouseOver");
$(this).find("a[data-action='Rename']").trigger('click');
}
});
rename();
}
removeA(keys, event.keyCode);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment