From 5f03c306dad3d5aa24a19452cd423b32c3237cff Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:40 -0700 Subject: [PATCH 01/19] initial setup --- apps/files/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/index.php b/apps/files/index.php index 5e644a2a3b..a0a70e3f4b 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -31,6 +31,7 @@ OCP\Util::addscript( 'files', 'jquery.fileupload' ); OCP\Util::addscript( 'files', 'files' ); OCP\Util::addscript( 'files', 'filelist' ); OCP\Util::addscript( 'files', 'fileactions' ); +OCP\Util::addscript( 'files', 'keyboardshortcuts' ); if(!isset($_SESSION['timezone'])) { OCP\Util::addscript( 'files', 'timezone' ); } From ccb9bb4be00ae98609632d5c774542ef7eb6437d Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:49 -0700 Subject: [PATCH 02/19] initial setup --- apps/files/js/files.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index dbd9a64715..c9142c3889 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -40,6 +40,7 @@ Files={ } }; $(document).ready(function() { + Files.bindKeyboardShortcuts(document, jQuery); $('#fileList tr').each(function(){ //little hack to set unescape filenames in attribute $(this).attr('data-file',decodeURIComponent($(this).attr('data-file'))); From fa858d7149b30cb956df2a50008014ec1d857876 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:54 -0700 Subject: [PATCH 03/19] initial setup --- apps/files/js/keyboardshortcuts.js | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 apps/files/js/keyboardshortcuts.js diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js new file mode 100644 index 0000000000..2a193f775a --- /dev/null +++ b/apps/files/js/keyboardshortcuts.js @@ -0,0 +1,52 @@ +// your file +var Files = Files || {}; + +// Array Remove - By John Resig (MIT Licensed) +Array.prototype.remove = function(from, to) { + var rest = this.slice((to || from) + 1 || this.length); + this.length = from < 0 ? this.length + from : from; + return this.push.apply(this, rest); +}; + +Files.bindKeyboardShortcuts = function (document, $){ + var keys = [] + + $(document).keydown(function(event){//check for modifier keys + if($.inArray(event.keyCode, keys) == -1) + keys.push(event.keyCode); + console.log(event.keyCode); + + if($.inArray(78, keys) !== -1 && ($.inArray(224, keys) !== -1 || $.inArray(17, keys) !== -1 || $.inArray(91, keys) !== -1 || $.inArray(93, keys) !== -1)){ //78=n, 224=cmd(firefox), 17=cmd(Opera), 91=leftCmd(WebKit), 93=rightCmd(WebKit) + event.preventDefault(); //Prevent web browser from responding + } + }); + + $(document).keyup(function(event){ + // do your event.keyCode checks in here + + console.log(JSON.stringify(keys)); + + if($.inArray(78, keys) !== -1 && ($.inArray(224, keys) !== -1 || $.inArray(17, keys) !== -1 || $.inArray(91, keys) !== -1 || $.inArray(93, keys) !== -1)){ //78=n, 224=cmd(firefox), 17=cmd(Opera), 91=leftCmd(WebKit), 93=rightCmd(WebKit) + if($.inArray(16, keys) !== -1){ //16=shift, New File + $("#new").addClass("active"); + $(".popup.popupTop").toggle(true); + $('#new li[data-type="file"]').trigger('click'); + console.log("new file"); + keys.remove($.inArray(78, keys)); + } + else{ //New Folder + $("#new").addClass("active"); + $(".popup.popupTop").toggle(true); + $('#new li[data-type="folder"]').trigger('click'); + console.log("new folder"); + keys.remove($.inArray(78, keys)); + } + } + if($("#new").hasClass("active") && $.inArray(27, keys) !== -1){ + $("#controls").trigger('click'); + console.log("close"); + } + + keys.remove($.inArray(event.keyCode, keys)); + }); +}; \ No newline at end of file From e1478117b14c0057adaf3dbca5e0119e365c7c59 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:57 -0700 Subject: [PATCH 04/19] initial setup --- .htaccess | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.htaccess b/.htaccess index 048a56d638..8883936e0c 100755 --- a/.htaccess +++ b/.htaccess @@ -6,11 +6,11 @@ RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION -ErrorDocument 403 /core/templates/403.php -ErrorDocument 404 /core/templates/404.php +ErrorDocument 403 /owncloud/core/templates/403.php +ErrorDocument 404 /owncloud/core/templates/404.php -php_value upload_max_filesize 513M -php_value post_max_size 513M +php_value upload_max_filesize 512M +php_value post_max_size 512M php_value memory_limit 512M SetEnv htaccessWorking true @@ -20,11 +20,8 @@ php_value memory_limit 512M RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L] -RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L] RewriteRule ^.well-known/carddav /remote.php/carddav/ [R] -RewriteRule ^.well-known/caldav /remote.php/caldav/ [R] -RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L] -RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L] +RewriteRule ^.well-known/caldav /remote.php/caldav/ [R] RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L] RewriteRule ^remote/(.*) remote.php [QSA,L] From 0c6b53c25e29ff05f843ab1d62228411ba6a777c Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:55:38 -0700 Subject: [PATCH 05/19] no message --- apps/files/index.php | 2 +- apps/files/js/files.js | 2 +- apps/files/js/keyboardshortcuts.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files/index.php b/apps/files/index.php index a0a70e3f4b..c45fe60e4f 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -31,7 +31,7 @@ OCP\Util::addscript( 'files', 'jquery.fileupload' ); OCP\Util::addscript( 'files', 'files' ); OCP\Util::addscript( 'files', 'filelist' ); OCP\Util::addscript( 'files', 'fileactions' ); -OCP\Util::addscript( 'files', 'keyboardshortcuts' ); +OCP\Util::addscript( 'files', 'keyboardshortcuts' ); if(!isset($_SESSION['timezone'])) { OCP\Util::addscript( 'files', 'timezone' ); } diff --git a/apps/files/js/files.js b/apps/files/js/files.js index c9142c3889..40fe5da8ea 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -40,7 +40,7 @@ Files={ } }; $(document).ready(function() { - Files.bindKeyboardShortcuts(document, jQuery); + Files.bindKeyboardShortcuts(document, jQuery); $('#fileList tr').each(function(){ //little hack to set unescape filenames in attribute $(this).attr('data-file',decodeURIComponent($(this).attr('data-file'))); diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 2a193f775a..e53f44f3bf 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -49,4 +49,4 @@ Files.bindKeyboardShortcuts = function (document, $){ keys.remove($.inArray(event.keyCode, keys)); }); -}; \ No newline at end of file +}; \ No newline at end of file From b78dc3f48acd17f3bd2557362a40e367ef28fb6b Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 10:22:20 -0700 Subject: [PATCH 06/19] keycode naming --- apps/files/js/keyboardshortcuts.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index e53f44f3bf..eecf30bd10 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -9,14 +9,23 @@ Array.prototype.remove = function(from, to) { }; Files.bindKeyboardShortcuts = function (document, $){ - var keys = [] + var keys = []; + keyCodes = { + shift: 16, + n: 78, + cmdFirefox: 224, + cmdOpera: 17, + leftCmdWebKit: 91, + rightCmdWebKit: 93, + esc: 27 + }; $(document).keydown(function(event){//check for modifier keys if($.inArray(event.keyCode, keys) == -1) keys.push(event.keyCode); console.log(event.keyCode); - if($.inArray(78, keys) !== -1 && ($.inArray(224, keys) !== -1 || $.inArray(17, keys) !== -1 || $.inArray(91, keys) !== -1 || $.inArray(93, keys) !== -1)){ //78=n, 224=cmd(firefox), 17=cmd(Opera), 91=leftCmd(WebKit), 93=rightCmd(WebKit) + 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)){ event.preventDefault(); //Prevent web browser from responding } }); @@ -26,27 +35,27 @@ Files.bindKeyboardShortcuts = function (document, $){ console.log(JSON.stringify(keys)); - if($.inArray(78, keys) !== -1 && ($.inArray(224, keys) !== -1 || $.inArray(17, keys) !== -1 || $.inArray(91, keys) !== -1 || $.inArray(93, keys) !== -1)){ //78=n, 224=cmd(firefox), 17=cmd(Opera), 91=leftCmd(WebKit), 93=rightCmd(WebKit) - if($.inArray(16, keys) !== -1){ //16=shift, New File + 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)){ + 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"); - keys.remove($.inArray(78, keys)); + keys.remove($.inArray(keyCodes.n, keys)); } else{ //New Folder $("#new").addClass("active"); $(".popup.popupTop").toggle(true); $('#new li[data-type="folder"]').trigger('click'); console.log("new folder"); - keys.remove($.inArray(78, keys)); + keys.remove($.inArray(keyCodes.n, keys)); } } - if($("#new").hasClass("active") && $.inArray(27, keys) !== -1){ + if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ $("#controls").trigger('click'); console.log("close"); } keys.remove($.inArray(event.keyCode, keys)); }); -}; \ No newline at end of file +}; \ No newline at end of file From 8722d3751c8f7ea29746dd0bab663b5400d268a1 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 10:36:54 -0700 Subject: [PATCH 07/19] Keys array --- apps/files/js/keyboardshortcuts.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index eecf30bd10..13777fd76b 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -1,12 +1,16 @@ // your file var Files = Files || {}; -// Array Remove - By John Resig (MIT Licensed) -Array.prototype.remove = function(from, to) { - var rest = this.slice((to || from) + 1 || this.length); - this.length = from < 0 ? this.length + from : from; - return this.push.apply(this, rest); -}; +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 = []; @@ -41,14 +45,16 @@ Files.bindKeyboardShortcuts = function (document, $){ $(".popup.popupTop").toggle(true); $('#new li[data-type="file"]').trigger('click'); console.log("new file"); - keys.remove($.inArray(keyCodes.n, keys)); +/* keys.remove($.inArray(keyCodes.n, keys)); */ + removeA(keys, keyCodes.n); } else{ //New Folder $("#new").addClass("active"); $(".popup.popupTop").toggle(true); $('#new li[data-type="folder"]').trigger('click'); console.log("new folder"); - keys.remove($.inArray(keyCodes.n, keys)); +/* keys.remove($.inArray(keyCodes.n, keys)); */ + removeA(keys, keyCodes.n); } } if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ @@ -56,6 +62,7 @@ Files.bindKeyboardShortcuts = function (document, $){ console.log("close"); } - keys.remove($.inArray(event.keyCode, keys)); +/* keys.remove($.inArray(event.keyCode, keys)); */ + removeA(keys, event.keyCode); }); }; \ No newline at end of file From 8802dac02a01a7daeadccac8a331a5b5c2badb2a Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 17:32:05 -0700 Subject: [PATCH 08/19] Arrow key navigation --- apps/files/js/keyboardshortcuts.js | 65 +++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 13777fd76b..8a99bb5269 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -5,32 +5,37 @@ 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) { + while ((ax = arr.indexOf(what)) !== -1) { arr.splice(ax, 1); } } return arr; } -Files.bindKeyboardShortcuts = function (document, $){ +Files.bindKeyboardShortcuts = function (document, $) { var keys = []; - keyCodes = { + var keyCodes = { shift: 16, n: 78, cmdFirefox: 224, cmdOpera: 17, leftCmdWebKit: 91, rightCmdWebKit: 93, - esc: 27 + ctrl: 16, + esc: 27, + downArrow: 40, + upArrow: 38 }; $(document).keydown(function(event){//check for modifier keys - if($.inArray(event.keyCode, keys) == -1) + 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)){ + 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)){ event.preventDefault(); //Prevent web browser from responding + event.stopPropagation(); + return false; } }); @@ -39,13 +44,12 @@ Files.bindKeyboardShortcuts = function (document, $){ 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)){ + 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"); -/* keys.remove($.inArray(keyCodes.n, keys)); */ removeA(keys, keyCodes.n); } else{ //New Folder @@ -53,16 +57,57 @@ Files.bindKeyboardShortcuts = function (document, $){ $(".popup.popupTop").toggle(true); $('#new li[data-type="folder"]').trigger('click'); console.log("new folder"); -/* keys.remove($.inArray(keyCodes.n, keys)); */ removeA(keys, keyCodes.n); } } + if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ $("#controls").trigger('click'); console.log("close"); } -/* keys.remove($.inArray(event.keyCode, keys)); */ + if(!$("#new").hasClass("active") && $.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"); + } + }); + } + } + + if(!$("#new").hasClass("active") && $.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"); + } + }); + } + } + removeA(keys, event.keyCode); }); }; \ No newline at end of file From a73a263543c9b28264288f6c6600a35619b9bb17 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 19:58:42 -0700 Subject: [PATCH 09/19] Enter --- apps/files/js/keyboardshortcuts.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 8a99bb5269..95e1ce428c 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -24,7 +24,8 @@ Files.bindKeyboardShortcuts = function (document, $) { ctrl: 16, esc: 27, downArrow: 40, - upArrow: 38 + upArrow: 38, + enter: 13 }; $(document).keydown(function(event){//check for modifier keys @@ -108,6 +109,15 @@ Files.bindKeyboardShortcuts = function (document, $) { } } + if($.inArray(keyCodes.enter, keys) !== -1){ + $("#fileList tr").each(function(index){ + if($(this).hasClass("mouseOver")){ + $(this).removeClass("mouseOver"); + $(this).find("span:first").trigger('click'); + } + }); + } + removeA(keys, event.keyCode); }); }; \ No newline at end of file From dafe028c111a66b622eb920a7ed5f5e3e3d5abdf Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 21:00:11 -0700 Subject: [PATCH 10/19] Rename --- apps/files/js/keyboardshortcuts.js | 50 ++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 95e1ce428c..c77e2d611c 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -17,6 +17,7 @@ Files.bindKeyboardShortcuts = function (document, $) { var keyCodes = { shift: 16, n: 78, + r: 82, cmdFirefox: 224, cmdOpera: 17, leftCmdWebKit: 91, @@ -25,15 +26,35 @@ Files.bindKeyboardShortcuts = function (document, $) { esc: 27, downArrow: 40, upArrow: 38, - enter: 13 + enter: 13, + backspace: 8, + delete: 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; + } + }); + } + if(preventDefault){ event.preventDefault(); //Prevent web browser from responding event.stopPropagation(); return false; @@ -62,12 +83,12 @@ Files.bindKeyboardShortcuts = function (document, $) { } } - if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ + else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ $("#controls").trigger('click'); console.log("close"); } - if(!$("#new").hasClass("active") && $.inArray(keyCodes.downArrow, keys) !== -1){ + else if($.inArray(keyCodes.downArrow, keys) !== -1){ var select = -1; $("#fileList tr").each(function(index){ if($(this).hasClass("mouseOver")){ @@ -88,7 +109,7 @@ Files.bindKeyboardShortcuts = function (document, $) { } } - if(!$("#new").hasClass("active") && $.inArray(keyCodes.upArrow, keys) !== -1){ + else if($.inArray(keyCodes.upArrow, keys) !== -1){ var select = -1; $("#fileList tr").each(function(index){ if($(this).hasClass("mouseOver")){ @@ -109,11 +130,28 @@ Files.bindKeyboardShortcuts = function (document, $) { } } - if($.inArray(keyCodes.enter, keys) !== -1){ + 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:first").trigger('click'); + $(this).find("span.nametext").trigger('click'); + } + }); + } + + 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.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'); } }); } From fd4aecf525810bb2d74de59070734eba465f311f Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 10:18:34 -0700 Subject: [PATCH 11/19] cleanup --- apps/files/js/keyboardshortcuts.js | 212 +++++++++++++++++------------ 1 file changed, 123 insertions(+), 89 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index c77e2d611c..8ba3240007 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -1,6 +1,33 @@ -// 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); From b6e34608715d5d606b29c421067ba4b81ecb437e Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 10:21:20 -0700 Subject: [PATCH 12/19] documentation --- apps/files/js/keyboardshortcuts.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 8ba3240007..b00fd64968 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -167,26 +167,22 @@ Files.bindKeyboardShortcuts = function (document, $) { } } - else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ + else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ //close new window esc(); } - - else if($.inArray(keyCodes.downArrow, keys) !== -1){ + else if($.inArray(keyCodes.downArrow, keys) !== -1){ //select file down(); } - - else if($.inArray(keyCodes.upArrow, keys) !== -1){ + else if($.inArray(keyCodes.upArrow, keys) !== -1){ //select file up(); } - - else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){ + else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){//open file enter(); } - - else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.del, keys) !== -1)) { + else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.del, keys) !== -1)) {//delete file 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){ + 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 file rename(); } From 6060d063a96a08c0075db0117c6074c9188c2b57 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 16:52:41 -0700 Subject: [PATCH 13/19] Cleanup --- apps/files/js/keyboardshortcuts.js | 77 ++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 26 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index b00fd64968..41578e7f4a 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -1,3 +1,9 @@ +/** +* Copyright (c) 2012 Erik Sargent +* This file is licensed under the Affero General Public License version 3 or +* later. +*/ + /***************************** * Keyboard shortcuts for Files app * ctrl/cmd+n: new folder @@ -10,6 +16,7 @@ *****************************/ var Files = Files || {}; +(function(Files){ var keys = []; var keyCodes = { shift: 16, @@ -24,7 +31,6 @@ var keyCodes = { downArrow: 40, upArrow: 38, enter: 13, - backspace: 8, del: 46 }; @@ -43,25 +49,22 @@ 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; + select = index + 1; $(this).removeClass("mouseOver"); } }); @@ -81,7 +84,7 @@ function up(){ var select = -1; $("#fileList tr").each(function(index){ if($(this).hasClass("mouseOver")){ - select = index-1; + select = index - 1; $(this).removeClass("mouseOver"); } }); @@ -127,20 +130,28 @@ Files.bindKeyboardShortcuts = function (document, $) { 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.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;//new file/folder prevent browser from responding } - 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( + !$("#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){//prevent default when renaming file/folder if($(this).hasClass("mouseOver")){ preventDefault = true; } @@ -155,11 +166,15 @@ Files.bindKeyboardShortcuts = function (document, $) { $(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 + 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 @@ -179,13 +194,23 @@ Files.bindKeyboardShortcuts = function (document, $) { else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){//open file enter(); } - else if(!$("#new").hasClass("active") && ($.inArray(keyCodes.backspace, keys) !== -1 || $.inArray(keyCodes.del, keys) !== -1)) {//delete file + else if(!$("#new").hasClass("active") && $.inArray(keyCodes.del, keys) !== -1) {//delete file 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 file + 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 file rename(); } removeA(keys, event.keyCode); }); -}; \ No newline at end of file +}; +})(Files); \ No newline at end of file From 48d6f33135808f88af366573e88cbed9009503f9 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 19:20:51 -0700 Subject: [PATCH 14/19] Revert "initial setup" This reverts commit e1478117b14c0057adaf3dbca5e0119e365c7c59. --- .htaccess | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.htaccess b/.htaccess index 8883936e0c..048a56d638 100755 --- a/.htaccess +++ b/.htaccess @@ -6,11 +6,11 @@ RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION -ErrorDocument 403 /owncloud/core/templates/403.php -ErrorDocument 404 /owncloud/core/templates/404.php +ErrorDocument 403 /core/templates/403.php +ErrorDocument 404 /core/templates/404.php -php_value upload_max_filesize 512M -php_value post_max_size 512M +php_value upload_max_filesize 513M +php_value post_max_size 513M php_value memory_limit 512M SetEnv htaccessWorking true @@ -20,8 +20,11 @@ php_value memory_limit 512M RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L] +RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L] RewriteRule ^.well-known/carddav /remote.php/carddav/ [R] -RewriteRule ^.well-known/caldav /remote.php/caldav/ [R] +RewriteRule ^.well-known/caldav /remote.php/caldav/ [R] +RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L] +RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L] RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L] RewriteRule ^remote/(.*) remote.php [QSA,L] From 21606633099a3f46194733fb4f28fcb2bf0edf5b Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 08:43:24 -0700 Subject: [PATCH 15/19] ctrl issue fix --- apps/files/js/keyboardshortcuts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 41578e7f4a..1d4f068341 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -26,7 +26,7 @@ var keyCodes = { cmdOpera: 17, leftCmdWebKit: 91, rightCmdWebKit: 93, - ctrl: 16, + ctrl: 17, esc: 27, downArrow: 40, upArrow: 38, From 5d13b0533dce98cabd251c929ae50f74436ce68e Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 10:10:00 -0700 Subject: [PATCH 16/19] event.ctrlKey --- apps/files/js/keyboardshortcuts.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 1d4f068341..c430ed2d74 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -148,7 +148,8 @@ Files.bindKeyboardShortcuts = function (document, $) { || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 - || $.inArray(keyCodes.ctrl, keys) !== -1) + || $.inArray(keyCodes.ctrl, keys) !== -1 + || event.ctrlKey) && $.inArray(keyCodes.shift, keys) !== -1 ){ $("#fileList tr").each(function(index){//prevent default when renaming file/folder @@ -172,7 +173,9 @@ Files.bindKeyboardShortcuts = function (document, $) { || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 - || $.inArray(keyCodes.ctrl, keys) !== -1)){ + || $.inArray(keyCodes.ctrl, keys) !== -1 + || event.ctrlKey + )){ if($.inArray(keyCodes.shift, keys) !== -1 ){ //16=shift, New File newFile(); @@ -204,7 +207,8 @@ Files.bindKeyboardShortcuts = function (document, $) { || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 - || $.inArray(keyCodes.ctrl, keys) !== -1) + || $.inArray(keyCodes.ctrl, keys) !== -1 + || event.ctrlKey) && $.inArray(keyCodes.shift, keys) !== -1 ){//rename file rename(); From 47fa3a8fe02ed79a0fc1dc6b5673631fee847ae5 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 10:11:25 -0700 Subject: [PATCH 17/19] event.ctrlKey --- apps/files/js/keyboardshortcuts.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index c430ed2d74..35a94eeacd 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -137,7 +137,8 @@ Files.bindKeyboardShortcuts = function (document, $) { || $.inArray(keyCodes.cmdOpera, keys) !== -1 || $.inArray(keyCodes.leftCmdWebKit, keys) !== -1 || $.inArray(keyCodes.rightCmdWebKit, keys) !== -1 - || $.inArray(keyCodes.ctrl, keys) !== -1) + || $.inArray(keyCodes.ctrl, keys) !== -1 + || event.ctrlKey) ){ preventDefault = true;//new file/folder prevent browser from responding } From 93208d0fe922c64dd2bacc8bf102dbf4be4562b7 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Tue, 4 Dec 2012 09:40:17 -0700 Subject: [PATCH 18/19] Remove rename --- apps/files/js/keyboardshortcuts.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 35a94eeacd..69656b9364 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -142,7 +142,7 @@ Files.bindKeyboardShortcuts = function (document, $) { ){ preventDefault = true;//new file/folder prevent browser from responding } - if( + /*if( !$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 @@ -158,7 +158,7 @@ Files.bindKeyboardShortcuts = function (document, $) { preventDefault = true; } }); - } + }*/ if(preventDefault){ event.preventDefault(); //Prevent web browser from responding event.stopPropagation(); @@ -201,7 +201,7 @@ Files.bindKeyboardShortcuts = function (document, $) { else if(!$("#new").hasClass("active") && $.inArray(keyCodes.del, keys) !== -1) {//delete file del(); } - else if( + /*else if( !$("#new").hasClass("active") && $.inArray(keyCodes.r, keys) !== -1 && ($.inArray(keyCodes.cmdFirefox, keys) !== -1 @@ -213,7 +213,7 @@ Files.bindKeyboardShortcuts = function (document, $) { && $.inArray(keyCodes.shift, keys) !== -1 ){//rename file rename(); - } + }*/ removeA(keys, event.keyCode); }); From f0213735fcd1e5bb3d2323e9df3824878072e37d Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 5 Dec 2012 08:23:28 -0700 Subject: [PATCH 19/19] Code clean up --- apps/files/js/keyboardshortcuts.js | 364 ++++++++++++----------------- 1 file changed, 154 insertions(+), 210 deletions(-) diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 69656b9364..562755f55b 100644 --- a/apps/files/js/keyboardshortcuts.js +++ b/apps/files/js/keyboardshortcuts.js @@ -1,221 +1,165 @@ /** -* Copyright (c) 2012 Erik Sargent -* This file is licensed under the Affero General Public License version 3 or -* later. -*/ - + * Copyright (c) 2012 Erik Sargent + * This file is licensed under the Affero General Public License version 3 or + * later. + */ /***************************** -* 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 -*****************************/ + * 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 + *****************************/ var Files = Files || {}; +(function(Files) { + var keys = []; + var keyCodes = { + shift: 16, + n: 78, + cmdFirefox: 224, + cmdOpera: 17, + leftCmdWebKit: 91, + rightCmdWebKit: 93, + ctrl: 17, + esc: 27, + downArrow: 40, + upArrow: 38, + enter: 13, + del: 46 + }; -(function(Files){ -var keys = []; -var keyCodes = { - shift: 16, - n: 78, - r: 82, - cmdFirefox: 224, - cmdOpera: 17, - leftCmdWebKit: 91, - rightCmdWebKit: 93, - ctrl: 17, - esc: 27, - downArrow: 40, - upArrow: 38, - enter: 13, - del: 46 -}; - -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; -} - -function newFile(){ - $("#new").addClass("active"); - $(".popup.popupTop").toggle(true); - $('#new li[data-type="file"]').trigger('click'); - removeA(keys, keyCodes.n); -} -function newFolder(){ - $("#new").addClass("active"); - $(".popup.popupTop").toggle(true); - $('#new li[data-type="folder"]').trigger('click'); - removeA(keys, keyCodes.n); -} -function esc(){ - $("#controls").trigger('click'); -} -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 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); } - }); - } -} -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); - - 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 - || event.ctrlKey) - ){ - preventDefault = true;//new file/folder prevent browser from responding } - /*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 - || event.ctrlKey) - && $.inArray(keyCodes.shift, keys) !== -1 - ){ - $("#fileList tr").each(function(index){//prevent default when renaming file/folder - if($(this).hasClass("mouseOver")){ - preventDefault = true; - } + return arr; + } + + function newFile() { + $("#new").addClass("active"); + $(".popup.popupTop").toggle(true); + $('#new li[data-type="file"]').trigger('click'); + removeA(keys, keyCodes.n); + } + + function newFolder() { + $("#new").addClass("active"); + $(".popup.popupTop").toggle(true); + $('#new li[data-type="folder"]').trigger('click'); + removeA(keys, keyCodes.n); + } + + function esc() { + $("#controls").trigger('click'); + } + + 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"); + } }); - }*/ - if(preventDefault){ - event.preventDefault(); //Prevent web browser from responding - event.stopPropagation(); - return false; } - }); - - $(document).keyup(function(event){ - // do your event.keyCode checks in here - 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 - || event.ctrlKey - )){ - if($.inArray(keyCodes.shift, keys) !== -1 - ){ //16=shift, New File - newFile(); + } + + function up() { + var select = -1; + $("#fileList tr").each(function(index) { + if ($(this).hasClass("mouseOver")) { + select = index - 1; + $(this).removeClass("mouseOver"); } - else{ //New Folder - newFolder(); + }); + 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'); } - } - - else if($("#new").hasClass("active") && $.inArray(keyCodes.esc, keys) !== -1){ //close new window - esc(); - } - else if($.inArray(keyCodes.downArrow, keys) !== -1){ //select file - down(); - } - else if($.inArray(keyCodes.upArrow, keys) !== -1){ //select file - up(); - } - else if(!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1){//open file - enter(); - } - else if(!$("#new").hasClass("active") && $.inArray(keyCodes.del, keys) !== -1) {//delete file - 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 - || event.ctrlKey) - && $.inArray(keyCodes.shift, keys) !== -1 - ){//rename file - rename(); - }*/ - - removeA(keys, event.keyCode); - }); -}; + }); + } + + 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); + 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 || event.ctrlKey)) { + preventDefault = true; //new file/folder prevent browser from responding + } + if (preventDefault) { + event.preventDefault(); //Prevent web browser from responding + event.stopPropagation(); + return false; + } + }); + $(document).keyup(function(event) { + // do your event.keyCode checks in here + 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 || event.ctrlKey)) { + 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) { //close new window + esc(); + } else if ($.inArray(keyCodes.downArrow, keys) !== -1) { //select file + down(); + } else if ($.inArray(keyCodes.upArrow, keys) !== -1) { //select file + up(); + } else if (!$("#new").hasClass("active") && $.inArray(keyCodes.enter, keys) !== -1) { //open file + enter(); + } else if (!$("#new").hasClass("active") && $.inArray(keyCodes.del, keys) !== -1) { //delete file + del(); + } + removeA(keys, event.keyCode); + }); + }; })(Files); \ No newline at end of file