From f187aa6c93ecc7538875e38629f4efb2c25c3155 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 4 Nov 2012 20:48:38 +0100 Subject: some more code reuse for fileactions also fixes an issue where some fileactions always worked on the last file in the list --- apps/files/js/fileactions.js | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 82d990bf780..0b547502bcf 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -70,6 +70,16 @@ var FileActions = { } parent.children('a.name').append(''); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); + var actionHandler = function (parent, action, event) { + event.stopPropagation(); + event.preventDefault(); + if(action) + FileActions.currentFile = parent; + file = FileActions.getCurrentFile(); + console.log(file); + console.log(file); + action(file); + }; for (name in actions) { // NOTE: Temporary fix to prevent rename action in root of Shared directory if (name === 'Rename' && $('#dir').val() === '/Shared') { @@ -87,14 +97,7 @@ var FileActions = { html += t('files', name) + ''; var element = $(html); element.data('action', name); - element.click(function (event) { - FileActions.currentFile = $(this).parent().parent().parent(); - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.click(actionHandler.bind(null, parent, actions[name])); parent.find('a.name>span.fileactions').append(element); } } @@ -113,14 +116,8 @@ var FileActions = { if (img) { element.append($('')); } - element.data('action', 'Delete'); - element.click(function (event) { - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.data('action', actions['Delete']); + element.click(actionHandler.bind(null, parent, actions['Delete'])); parent.parent().children().last().append(element); } }, -- cgit v1.2.3 From 4f32f49fb1d4a247558bc44733ed8443974c1701 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 4 Nov 2012 21:00:36 +0100 Subject: this line shouldn't be here --- apps/files/js/fileactions.js | 1 - 1 file changed, 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 0b547502bcf..d09979fc765 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -73,7 +73,6 @@ var FileActions = { var actionHandler = function (parent, action, event) { event.stopPropagation(); event.preventDefault(); - if(action) FileActions.currentFile = parent; file = FileActions.getCurrentFile(); console.log(file); -- cgit v1.2.3 From 34fee8afaa9161fbc9c608ae87bb19b770110a5c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 5 Nov 2012 13:52:02 +0100 Subject: remove debug statements --- apps/files/js/fileactions.js | 2 -- 1 file changed, 2 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index d09979fc765..40dd9f14a69 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -75,8 +75,6 @@ var FileActions = { event.preventDefault(); FileActions.currentFile = parent; file = FileActions.getCurrentFile(); - console.log(file); - console.log(file); action(file); }; for (name in actions) { -- cgit v1.2.3 From bb0164c9fc968497f0e294c29f7efde50e2c9945 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 5 Nov 2012 18:42:44 +0100 Subject: fix file delete in opera - fixes #188 --- apps/files/js/filelist.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index f08e412921e..ae92a3f1ee1 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -375,4 +375,7 @@ $(document).ready(function(){ FileList.lastAction(); } }); + $(window).unload(function (){ + $(window).trigger('beforeunload'); + }); }); -- cgit v1.2.3 From 50dbb30eb9968cd328915c4632f2742e6e41ad66 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Tue, 6 Nov 2012 10:56:42 -0500 Subject: Moved relative_modified_date from file/js to core/js --- apps/files/js/files.js | 21 --------------------- core/js/js.js | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 21 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 2d9ccba424a..7506000d216 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -829,27 +829,6 @@ function getSelectedFiles(property){ return files; } -function relative_modified_date(timestamp) { - var timediff = Math.round((new Date()).getTime() / 1000) - timestamp; - var diffminutes = Math.round(timediff/60); - var diffhours = Math.round(diffminutes/60); - var diffdays = Math.round(diffhours/24); - var diffmonths = Math.round(diffdays/31); - if(timediff < 60) { return t('files','seconds ago'); } - else if(timediff < 120) { return t('files','1 minute ago'); } - else if(timediff < 3600) { return t('files','{minutes} minutes ago',{minutes: diffminutes}); } - //else if($timediff < 7200) { return '1 hour ago'; } - //else if($timediff < 86400) { return $diffhours.' hours ago'; } - else if(timediff < 86400) { return t('files','today'); } - else if(timediff < 172800) { return t('files','yesterday'); } - else if(timediff < 2678400) { return t('files','{days} days ago',{days: diffdays}); } - else if(timediff < 5184000) { return t('files','last month'); } - //else if($timediff < 31556926) { return $diffmonths.' months ago'; } - else if(timediff < 31556926) { return t('files','months ago'); } - else if(timediff < 63113852) { return t('files','last year'); } - else { return t('files','years ago'); } -} - function getMimeIcon(mime, ready){ if(getMimeIcon.cache[mime]){ ready(getMimeIcon.cache[mime]); diff --git a/core/js/js.js b/core/js/js.js index 87d0a172082..2b2a64d25f9 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -675,6 +675,30 @@ function formatDate(date){ return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes(); } +/* takes an absolute timestamp and return a string with a human-friendly relative date + * @param int a Unix timestamp + */ +function relative_modified_date(timestamp) { + var timediff = Math.round((new Date()).getTime() / 1000) - timestamp; + var diffminutes = Math.round(timediff/60); + var diffhours = Math.round(diffminutes/60); + var diffdays = Math.round(diffhours/24); + var diffmonths = Math.round(diffdays/31); + if(timediff < 60) { return t('core','seconds ago'); } + else if(timediff < 120) { return t('core','1 minute ago'); } + else if(timediff < 3600) { return t('core','{minutes} minutes ago',{minutes: diffminutes}); } + //else if($timediff < 7200) { return '1 hour ago'; } + //else if($timediff < 86400) { return $diffhours.' hours ago'; } + else if(timediff < 86400) { return t('core','today'); } + else if(timediff < 172800) { return t('core','yesterday'); } + else if(timediff < 2678400) { return t('core','{days} days ago',{days: diffdays}); } + else if(timediff < 5184000) { return t('core','last month'); } + //else if($timediff < 31556926) { return $diffmonths.' months ago'; } + else if(timediff < 31556926) { return t('core','months ago'); } + else if(timediff < 63113852) { return t('core','last year'); } + else { return t('core','years ago'); } +} + /** * get a variable by name * @param string name -- cgit v1.2.3 From 168a2c7b6b005feb0820b682809066dc6ddaab5f Mon Sep 17 00:00:00 2001 From: Björn Schießle Date: Wed, 7 Nov 2012 14:10:10 +0100 Subject: get the right file name for drag&drop. This was necessary after the switch to css to show/hide file actions, otherwise the actions where part of the extracted file name. --- apps/files/js/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 2d9ccba424a..70323352fb2 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -722,7 +722,7 @@ var folderDropOptions={ } var crumbDropOptions={ drop: function( event, ui ) { - var file=ui.draggable.text().trim(); + var file=ui.draggable.parent().data('file'); var target=$(this).data('dir'); var dir=$('#dir').val(); while(dir.substr(0,1)=='/'){//remove extra leading /'s -- cgit v1.2.3 From e14054610f3dcb672370158da87f4db3c0e43552 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 7 Nov 2012 21:59:18 +0100 Subject: Revert "fix blocking drag & drop upload of folders" Fixes #150 This reverts commit 5b2f3c7f72a002b38da31a6748c0de22cb335203. --- apps/files/js/files.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 16f7c966067..e54d4d7b74f 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -201,7 +201,7 @@ $(document).ready(function() { var totalSize=0; if(files){ for(var i=0;i Date: Wed, 7 Nov 2012 22:06:05 +0100 Subject: reuse jquery object when adding files to the file list --- apps/files/js/filelist.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index f08e412921e..428026a7659 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -32,13 +32,14 @@ var FileList={ html+=''+relative_modified_date(lastModified.getTime() / 1000)+''; html+=''; FileList.insertElement(name,'file',$(html).attr('data-file',name)); + var row = $('tr').filterAttr('data-file',name); if(loading){ - $('tr').filterAttr('data-file',name).data('loading',true); + row.data('loading',true); }else{ - $('tr').filterAttr('data-file',name).find('td.filename').draggable(dragOptions); + row.find('td.filename').draggable(dragOptions); } if (hidden) { - $('tr').filterAttr('data-file', name).hide(); + row.hide(); } }, addDir:function(name,size,lastModified,hidden){ @@ -66,10 +67,11 @@ var FileList={ td.append($('').attr({ "class": "modified", "title": formatDate(lastModified), "style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')' }).text( relative_modified_date(lastModified.getTime() / 1000) )); html.append(td); FileList.insertElement(name,'dir',html); - $('tr').filterAttr('data-file',name).find('td.filename').draggable(dragOptions); - $('tr').filterAttr('data-file',name).find('td.filename').droppable(folderDropOptions); + var row = $('tr').filterAttr('data-file',name); + row.find('td.filename').draggable(dragOptions); + row.find('td.filename').droppable(folderDropOptions); if (hidden) { - $('tr').filterAttr('data-file', name).hide(); + row.hide(); } }, refresh:function(data) { -- cgit v1.2.3 From 37fe9800b6979e5fe19dd9e4caf61fa1b4b2abaf Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 7 Nov 2012 22:13:07 +0100 Subject: add actions to newly created files and folders closes #231 --- apps/files/js/filelist.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 428026a7659..f112db9d421 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -41,6 +41,7 @@ var FileList={ if (hidden) { row.hide(); } + FileActions.display(row.find('td.filename')); }, addDir:function(name,size,lastModified,hidden){ var html, td, link_elem, sizeColor, lastModifiedTime, modifiedColor; @@ -73,6 +74,7 @@ var FileList={ if (hidden) { row.hide(); } + FileActions.display(row.find('td.filename')); }, refresh:function(data) { var result = jQuery.parseJSON(data.responseText); -- cgit v1.2.3 From bbef5b377e2b90f0b7b54278228abb931cd6431f Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Mon, 12 Nov 2012 10:49:40 +0100 Subject: add i18n for cancel button --- apps/files/js/files.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index e54d4d7b74f..982351c589e 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -219,8 +219,11 @@ $(document).ready(function() { $( '#uploadsize-message' ).dialog({ modal: true, buttons: { - Close: function() { - $( this ).dialog( 'close' ); + Close: { + text:t('files', 'Close'), + click:function() { + $( this ).dialog( 'close' ); + } } } }); -- cgit v1.2.3 From eda9ce4cf8059b88c9c8e65037548357fc792257 Mon Sep 17 00:00:00 2001 From: libasys Date: Wed, 14 Nov 2012 16:05:24 +0100 Subject: Fixes two issues if you using IE8. IE8 has problems with .bind actions and since jquery 1.7.2 using .bind is old school style for event delegation. the new and better way is using .on() function. The second is using $.each instead of for() to walkthrough an array! Now it works perfect, the events after uploads are triggered. --- apps/files/js/fileactions.js | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 40dd9f14a69..80b9c01f838 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -70,34 +70,43 @@ var FileActions = { } parent.children('a.name').append(''); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); - var actionHandler = function (parent, action, event) { + + var actionHandler = function (event) { event.stopPropagation(); event.preventDefault(); - FileActions.currentFile = parent; - file = FileActions.getCurrentFile(); - action(file); + + FileActions.currentFile = event.data.elem; + var file = FileActions.getCurrentFile(); + + event.data.actionFunc(file); }; - for (name in actions) { + + $.each(actions, function (name, action) { // NOTE: Temporary fix to prevent rename action in root of Shared directory if (name === 'Rename' && $('#dir').val() === '/Shared') { - continue; + return true; } - if ((name === 'Download' || actions[name] !== defaultAction) && name !== 'Delete') { + + if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') { var img = FileActions.icons[name]; if (img.call) { img = img(file); } var html = ''; if (img) { - html += ' '; + html += ' '; } html += t('files', name) + ''; + var element = $(html); element.data('action', name); - element.click(actionHandler.bind(null, parent, actions[name])); + //alert(element); + element.on('click',{a:null, elem:parent, actionFunc:actions[name]},actionHandler); parent.find('a.name>span.fileactions').append(element); } - } + + }); + if (actions['Delete']) { var img = FileActions.icons['Delete']; if (img.call) { @@ -114,7 +123,7 @@ var FileActions = { element.append($('')); } element.data('action', actions['Delete']); - element.click(actionHandler.bind(null, parent, actions['Delete'])); + element.on('click',{a:null, elem:parent, actionFunc:actions['Delete']},actionHandler); parent.parent().children().last().append(element); } }, -- cgit v1.2.3 From 8a93cc14f66b6d2d725ae52ce0bf632a03fac59d Mon Sep 17 00:00:00 2001 From: Björn Schießle Date: Thu, 15 Nov 2012 17:16:18 +0100 Subject: port of approved pull request #442 - 'Always set renaming to false, also if renaming was aborted, to finalize the operation and show the file actions again.' --- apps/files/js/filelist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index ac2e0d63588..f754a7cd162 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -160,11 +160,11 @@ var FileList={ OC.dialogs.alert(result.data.message, 'Error moving file'); newname = name; } - tr.data('renaming',false); }); } } + tr.data('renaming',false); tr.attr('data-file', newname); var path = td.children('a.name').attr('href'); td.children('a.name').attr('href', path.replace(encodeURIComponent(name), encodeURIComponent(newname))); -- cgit v1.2.3 From 7af4cf48c9c542326626d742282aa1958b4b3501 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Fri, 16 Nov 2012 10:23:40 +0100 Subject: refs #461 - drag'n'drop upload to a sub folder is working now --- apps/files/ajax/upload.php | 6 ++++++ apps/files/js/filelist.js | 2 +- apps/files/js/files.js | 17 ++++++++++++++--- lib/filecache.php | 2 ++ 4 files changed, 23 insertions(+), 4 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 4ed0bbc5b0f..92871059936 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -51,6 +51,12 @@ if(strpos($dir, '..') === false) { if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) { $meta = OC_FileCache::get($target); $id = OC_FileCache::getId($target); + // in case the upload goes to a sub directory getID() returns -1 and $target needs to be normalized + // calling normalizePath() inside getId() causes endless scan. + if ($id == -1) { + $path = OC_Filesystem::normalizePath($target); + $id = OC_FileCache::getId($path); + } $result[]=array( "status" => "success", 'mime'=>$meta['mimetype'], 'size'=>$meta['size'], 'id'=>$id, 'name'=>basename($target)); } } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index f754a7cd162..a5550dc9926 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -141,7 +141,7 @@ var FileList={ tr=$('tr').filterAttr('data-file',name); tr.data('renaming',true); td=tr.children('td.filename'); - input=$('').val(name); + input=$('').val(name); form=$('
'); form.append(input); td.children('a.name').hide(); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 982351c589e..8b3ab06e6f8 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -228,7 +228,12 @@ $(document).ready(function() { } }); }else{ - var date=new Date(); + var dropTarget = $(e.originalEvent.target).closest('tr'); + if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder + var dirName = dropTarget.attr('data-file') + } + + var date=new Date(); if(files){ for(var i=0;i0){ @@ -281,7 +286,7 @@ $(document).ready(function() { var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i], formData: function(form) { var formArray = form.serializeArray(); - formArray[1]['value'] = dirName; + formArray[2]['value'] = dirName; return formArray; }}).success(function(result, textStatus, jqXHR) { var response; @@ -291,7 +296,13 @@ $(document).ready(function() { $('#notification').fadeIn(); } var file=response[0]; + // TODO: this doesn't work if the file name has been changed server side delete uploadingFiles[dirName][file.name]; + if ($.assocArraySize(uploadingFiles[dirName]) == 0) { + delete uploadingFiles[dirName]; + } + + var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext') var currentUploads = parseInt(uploadtext.attr('currentUploads')); currentUploads -= 1; uploadtext.attr('currentUploads', currentUploads); @@ -821,7 +832,7 @@ function getSelectedFiles(property){ name:$(element).attr('data-file'), mime:$(element).data('mime'), type:$(element).data('type'), - size:$(element).data('size'), + size:$(element).data('size') }; if(property){ files.push(file[property]); diff --git a/lib/filecache.php b/lib/filecache.php index 4a7dbd0250d..2a389dfc3ca 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -43,6 +43,8 @@ class OC_FileCache{ * - versioned */ public static function get($path, $root=false) { + // $path needs to be normalized - this failed within drag'n'drop upload to a subfolder + $path = OC_Filesystem::normalizePath($path); if(OC_FileCache_Update::hasUpdated($path, $root)) { if($root===false) {//filesystem hooks are only valid for the default root OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$path)); -- cgit v1.2.3 From 4a3b5125cfb4f35d8a40597aca200d0d37d494dd Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Fri, 16 Nov 2012 11:58:33 +0100 Subject: adding comments on the form array indexes --- apps/files/js/files.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 8b3ab06e6f8..bb80841055b 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -286,6 +286,9 @@ $(document).ready(function() { var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i], formData: function(form) { var formArray = form.serializeArray(); + // array index 0 contains the max files size + // array index 1 contains the request token + // array index 2 contains the directory formArray[2]['value'] = dirName; return formArray; }}).success(function(result, textStatus, jqXHR) { -- cgit v1.2.3 From 02bc44090017d457fbcf59ec965a0a98ebf82bb3 Mon Sep 17 00:00:00 2001 From: Brice Maron Date: Fri, 16 Nov 2012 14:59:14 +0000 Subject: Show error message to prevent adding a shared folder in the root dir fix #468 --- apps/files/js/files.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 982351c589e..abde963e423 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -495,6 +495,10 @@ $(document).ready(function() { $('#notification').text(t('files','Invalid name, \'/\' is not allowed.')); $('#notification').fadeIn(); return; + } else if( type == 'folder' && $('#dir').val() == '/' && $(this).val() == 'Shared') { + $('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud')); + $('#notification').fadeIn(); + return; } var name = getUniqueName($(this).val()); if (name != $(this).val()) { -- cgit v1.2.3 From 1793e85a523174f66575ca4c40ceecbbe2b1c09d Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 16 Nov 2012 12:16:23 +0100 Subject: Also reject names with \ in the name fixes issues #435 and #437 --- apps/files/js/files.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index bb80841055b..b8972bed6b8 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -505,8 +505,8 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if(type != 'web' && $(this).val().indexOf('/')!=-1){ - $('#notification').text(t('files','Invalid name, \'/\' is not allowed.')); + if(type != 'web' && ($(this).val().indexOf('/')!=-1 || $(this).val().indexOf('\\')!=-1)) { + $('#notification').text(t('files', 'Invalid name, \'/\' or \'\\\' is not allowed.')); $('#notification').fadeIn(); return; } -- cgit v1.2.3 From cd495bf9ba47b606c1258f2ab07907b65f5951b7 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Thu, 22 Nov 2012 11:22:16 +0100 Subject: some more invalid characters have been added --- apps/files/js/files.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index b8972bed6b8..8d0f9e06ad7 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -505,12 +505,17 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if(type != 'web' && ($(this).val().indexOf('/')!=-1 || $(this).val().indexOf('\\')!=-1)) { - $('#notification').text(t('files', 'Invalid name, \'/\' or \'\\\' is not allowed.')); - $('#notification').fadeIn(); - return; - } - var name = getUniqueName($(this).val()); + if (type != 'web') { + var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; + for (var i = 0; i < invalid_characters.length; i++) { + if ($(this).val().indexOf(invalid_characters[i]) != -1) { + $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); + $('#notification').fadeIn(); + return; + } + } + } + var name = getUniqueName($(this).val()); if (name != $(this).val()) { FileList.checkName(name, $(this).val(), true); var hidden = true; -- cgit v1.2.3 From a81d7cd79ff78122521dc0c8db864a9654710863 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Thu, 22 Nov 2012 13:03:17 +0100 Subject: introduce Files.containsInvalidCharacters(), use when creating or renaming files --- apps/files/js/filelist.js | 3 +++ apps/files/js/files.js | 27 ++++++++++++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index a5550dc9926..5674206632b 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -151,6 +151,9 @@ var FileList={ event.stopPropagation(); event.preventDefault(); var newname=input.val(); + if (Files.containsInvalidCharacters(newname)) { + return false; + } if (newname != name) { if (FileList.checkName(name, newname, false)) { newname = name; diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 8d0f9e06ad7..9fa2a384b5d 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -25,6 +25,18 @@ Files={ delete uploadingFiles[index]; }); procesSelection(); + }, + containsInvalidCharacters:function (name) { + var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; + for (var i = 0; i < invalid_characters.length; i++) { + if (name.indexOf(invalid_characters[i]) != -1) { + $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); + $('#notification').fadeIn(); + return true; + } + } + $('#notification').fadeOut(); + return false; } }; $(document).ready(function() { @@ -505,17 +517,10 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if (type != 'web') { - var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; - for (var i = 0; i < invalid_characters.length; i++) { - if ($(this).val().indexOf(invalid_characters[i]) != -1) { - $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); - $('#notification').fadeIn(); - return; - } - } - } - var name = getUniqueName($(this).val()); + if (type != 'web' && Files.containsInvalidCharacters($(this).val())) { + return; + } + var name = getUniqueName($(this).val()); if (name != $(this).val()) { FileList.checkName(name, $(this).val(), true); var hidden = true; -- cgit v1.2.3 From 776be8d9f78e7c10099f068415f153fa69014166 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 15 Nov 2012 18:26:08 +0100 Subject: all but the first parameter are introduced by & --- apps/files/js/files.js | 2 +- core/js/eventsource.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 28d4b49670d..dbd9a647151 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -864,7 +864,7 @@ function getMimeIcon(mime, ready){ if(getMimeIcon.cache[mime]){ ready(getMimeIcon.cache[mime]); }else{ - $.get( OC.filePath('files','ajax','mimeicon.php')+'?mime='+mime, function(path){ + $.get( OC.filePath('files','ajax','mimeicon.php')+'&mime='+mime, function(path){ getMimeIcon.cache[mime]=path; ready(getMimeIcon.cache[mime]); }); diff --git a/core/js/eventsource.js b/core/js/eventsource.js index e3ad7e3a671..7a744f7a6ce 100644 --- a/core/js/eventsource.js +++ b/core/js/eventsource.js @@ -42,7 +42,7 @@ OC.EventSource=function(src,data){ } dataStr+='requesttoken='+OC.EventSource.requesttoken; if(!this.useFallBack && typeof EventSource !='undefined'){ - this.source=new EventSource(src+'?'+dataStr); + this.source=new EventSource(src+'&'+dataStr); this.source.onmessage=function(e){ for(var i=0;i'); this.iframe.attr('id',iframeId); this.iframe.hide(); - this.iframe.attr('src',src+'?fallback=true&fallback_id='+OC.EventSource.iframeCount+'&'+dataStr); + this.iframe.attr('src',src+'&fallback=true&fallback_id='+OC.EventSource.iframeCount+'&'+dataStr); $('body').append(this.iframe); this.useFallBack=true; OC.EventSource.iframeCount++ @@ -90,7 +90,7 @@ OC.EventSource.prototype={ lastLength:0,//for fallback listen:function(type,callback){ if(callback && callback.call){ - + if(type){ if(this.useFallBack){ if(!this.listeners[type]){ -- cgit v1.2.3 From 9a441d3e3a30e03db2f4541153cf5c1943f288a5 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Tue, 27 Nov 2012 17:38:21 +0100 Subject: show drag shadow in firefox by using helper:'clone' --- apps/files/js/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index dbd9a647151..d29732f9b3f 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -730,7 +730,7 @@ function updateBreadcrumb(breadcrumbHtml) { //options for file drag/dropp var dragOptions={ - distance: 20, revert: 'invalid', opacity: 0.7, + distance: 20, revert: 'invalid', opacity: 0.7, helper: 'clone', stop: function(event, ui) { $('#fileList tr td.filename').addClass('ui-draggable'); } -- cgit v1.2.3 From ccb9bb4be00ae98609632d5c774542ef7eb6437d Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:49 -0700 Subject: initial setup --- apps/files/js/files.js | 1 + 1 file changed, 1 insertion(+) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index dbd9a647151..c9142c38899 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'))); -- cgit v1.2.3 From fa858d7149b30cb956df2a50008014ec1d857876 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:50:54 -0700 Subject: initial setup --- apps/files/js/keyboardshortcuts.js | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 apps/files/js/keyboardshortcuts.js (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js new file mode 100644 index 00000000000..2a193f775ab --- /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 -- cgit v1.2.3 From 0c6b53c25e29ff05f843ab1d62228411ba6a777c Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 09:55:38 -0700 Subject: 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(-) (limited to 'apps/files/js') diff --git a/apps/files/index.php b/apps/files/index.php index a0a70e3f4b3..c45fe60e4f7 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 c9142c38899..40fe5da8ead 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 2a193f775ab..e53f44f3bf0 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 -- cgit v1.2.3 From b78dc3f48acd17f3bd2557362a40e367ef28fb6b Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 10:22:20 -0700 Subject: keycode naming --- apps/files/js/keyboardshortcuts.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index e53f44f3bf0..eecf30bd10b 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 -- cgit v1.2.3 From 8722d3751c8f7ea29746dd0bab663b5400d268a1 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 10:36:54 -0700 Subject: Keys array --- apps/files/js/keyboardshortcuts.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index eecf30bd10b..13777fd76b6 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 -- cgit v1.2.3 From 8802dac02a01a7daeadccac8a331a5b5c2badb2a Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 17:32:05 -0700 Subject: Arrow key navigation --- apps/files/js/keyboardshortcuts.js | 65 ++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 10 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 13777fd76b6..8a99bb52691 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 -- cgit v1.2.3 From a73a263543c9b28264288f6c6600a35619b9bb17 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 19:58:42 -0700 Subject: Enter --- apps/files/js/keyboardshortcuts.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 8a99bb52691..95e1ce428c9 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 -- cgit v1.2.3 From dafe028c111a66b622eb920a7ed5f5e3e3d5abdf Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 28 Nov 2012 21:00:11 -0700 Subject: Rename --- apps/files/js/keyboardshortcuts.js | 50 +++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 95e1ce428c9..c77e2d611cb 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.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("span:first").trigger('click'); + $(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'); } }); } -- cgit v1.2.3 From fd4aecf525810bb2d74de59070734eba465f311f Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 10:18:34 -0700 Subject: cleanup --- apps/files/js/keyboardshortcuts.js | 212 +++++++++++++++++++++---------------- 1 file changed, 123 insertions(+), 89 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index c77e2d611cb..8ba32400079 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); -- cgit v1.2.3 From b6e34608715d5d606b29c421067ba4b81ecb437e Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 10:21:20 -0700 Subject: documentation --- apps/files/js/keyboardshortcuts.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 8ba32400079..b00fd649687 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(); } -- cgit v1.2.3 From 6060d063a96a08c0075db0117c6074c9188c2b57 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Thu, 29 Nov 2012 16:52:41 -0700 Subject: Cleanup --- apps/files/js/keyboardshortcuts.js | 77 +++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 26 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index b00fd649687..41578e7f4ae 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.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( + $.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(!$("#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 -- cgit v1.2.3 From 21606633099a3f46194733fb4f28fcb2bf0edf5b Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 08:43:24 -0700 Subject: ctrl issue fix --- apps/files/js/keyboardshortcuts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 41578e7f4ae..1d4f068341b 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, -- cgit v1.2.3 From 5d13b0533dce98cabd251c929ae50f74436ce68e Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 10:10:00 -0700 Subject: event.ctrlKey --- apps/files/js/keyboardshortcuts.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 1d4f068341b..c430ed2d741 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(); -- cgit v1.2.3 From 47fa3a8fe02ed79a0fc1dc6b5673631fee847ae5 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Fri, 30 Nov 2012 10:11:25 -0700 Subject: event.ctrlKey --- apps/files/js/keyboardshortcuts.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index c430ed2d741..35a94eeacd2 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 } -- cgit v1.2.3 From 93208d0fe922c64dd2bacc8bf102dbf4be4562b7 Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Tue, 4 Dec 2012 09:40:17 -0700 Subject: Remove rename --- apps/files/js/keyboardshortcuts.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 35a94eeacd2..69656b9364d 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); }); -- cgit v1.2.3 From f0213735fcd1e5bb3d2323e9df3824878072e37d Mon Sep 17 00:00:00 2001 From: Erik Sargent Date: Wed, 5 Dec 2012 08:23:28 -0700 Subject: Code clean up --- apps/files/js/keyboardshortcuts.js | 350 ++++++++++++++++--------------------- 1 file changed, 147 insertions(+), 203 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js index 69656b9364d..562755f55b7 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 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 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"); + function newFolder() { + $("#new").addClass("active"); + $(".popup.popupTop").toggle(true); + $('#new li[data-type="folder"]').trigger('click'); + removeA(keys, keyCodes.n); } - else{ - $("#fileList tr").each(function(index){ - if(index === select){ - $(this).addClass("mouseOver"); + + 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 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"); + + 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"); + } + }); + } } - 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 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; - } - }); - }*/ - 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 del() { + $("#fileList tr").each(function(index) { + if ($(this).hasClass("mouseOver")) { + $(this).removeClass("mouseOver"); + $(this).find("a.action.delete").trigger('click'); } - else{ //New Folder - newFolder(); + }); + } + + function rename() { + $("#fileList tr").each(function(index) { + if ($(this).hasClass("mouseOver")) { + $(this).removeClass("mouseOver"); + $(this).find("a[data-action='Rename']").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); - }); -}; + }); + } + 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 -- cgit v1.2.3 From 810e02099ecd35446e5d6b458cb16a45227c8524 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Tue, 4 Dec 2012 23:45:12 +0100 Subject: upload button HTML, CSS & JS cleanup --- apps/files/css/files.css | 29 ++++++++++++++--------------- apps/files/js/filelist.js | 2 -- apps/files/js/files.js | 6 ------ apps/files/templates/index.php | 9 +++++---- core/css/styles.css | 1 - 5 files changed, 19 insertions(+), 28 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 9293ecd1bad..b82ed6eb434 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -4,48 +4,47 @@ /* FILE MENU */ .actions { padding:.3em; float:left; height:2em; } -.actions input, .actions button, .actions .button { margin:0; } +.actions input, .actions button, .actions .button { margin:0; float:left; overflow:hidden; } #file_menu { right:0; position:absolute; top:0; } #file_menu a { display:block; float:left; background-image:none; text-decoration:none; } -.file_upload_form, #file_newfolder_form { display:inline; float: left; margin-left:0; } +.file_upload_form, #file_newfolder_form { display:inline; float: left; margin:0; padding:0; } #fileSelector, #file_upload_submit, #file_newfolder_submit { display:none; } .file_upload_wrapper, #file_newfolder_name { background-repeat:no-repeat; background-position:.5em .5em; padding-left:2em; } .file_upload_wrapper { font-weight:bold; display:-moz-inline-box; /* fallback for older firefox versions*/ display:block; float:left; padding-left:0; overflow:hidden; position:relative; margin:0; margin-left:2px; } -.file_upload_wrapper .file_upload_button_wrapper { position:absolute; top:0; left:0; width:100%; height:100%; cursor:pointer; z-index:1000; } -#new { background-color:#5bb75b; float:left; margin:0 0 0 1em; border-right:none; z-index:1010; height:1.3em; } -#new:hover, #upload:hover, a.file_upload_button_wrapper:hover + button.file_upload_filename { background-color:#4b964b; } +.file_upload_button_wrapper { position:relative; display:block; width:100%; height:27px; cursor:pointer; z-index:1000; } +#new { background-color:#5bb75b; float:left; margin:0 0 0 1em; z-index:1010; height:17px; } +#new:hover, #upload:hover { background-color:#4b964b; } #new.active { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:none; } #new>a { padding:.5em 1.2em .3em; color:#fff; text-shadow:0 1px 0 #51a351; } #new>ul { display:none; position:fixed; text-align:left; padding:.5em; background:#f8f8f8; margin-top:0.075em; border:1px solid #ddd; min-width:7em; margin-left:-.5em; z-index:-1; } #new>ul>li { margin:.3em; padding-left:2em; background-repeat:no-repeat; cursor:pointer; padding-bottom:0.1em } #new>ul>li>p { cursor:pointer; } #new>ul>li>input { padding:0.3em; margin:-0.3em; } -#new, .file_upload_filename { border:1px solid; border-color:#51a351 #419341 #387038; -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; } +#new { border:1px solid; border-color:#51a351 #419341 #387038; -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; } #new .popup { border-top-left-radius:0; z-index:10; } #upload { background-image: url('%webroot%/core/img/actions/upload-white.svg'); background-repeat: no-repeat; - background-position: 1em 6px; - padding:.4em 1.2em .4em 2.5em; + background-position: 7px 6px; + padding:0; color:#fff; text-shadow:0 1px 0 #51a351; border-color:#51a351 #419341 #387038; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; background-color:#5bb75b; margin-left:0.2em; - height:1.3em; } + height:27px; } #file_newfolder_name { background-image:url('%webroot%/core/img/places/folder.svg'); font-weight:normal; width:7em; } -.file_upload_start, .file_upload_filename { font-size:1em; } +.file_upload_start { font-size:1em; } #file_newfolder_submit, #file_upload_submit { width:3em; } .file_upload_target { display:none; } -.file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1; position:absolute; left:0; top:0; width:100%; cursor:pointer;} -.file_upload_filename { background-color:#5bb75b; z-index:100; cursor:pointer; background-image: url('%webroot%/core/img/actions/upload-white.svg'); background-repeat: no-repeat; background-position: center; height: 2.29em; width: 2.5em; } +.file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:-1; position:relative; left:0; top:0; width:28px; height:27px; padding:0; cursor:pointer; overflow: hidden; } -#uploadprogresswrappwer { position:absolute; right:13.5em; top:0em; } -#uploadprogresswrappwer #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; } +#uploadprogresswrapper { position:absolute; right:13.5em; top:0em; } +#uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; } -.file_upload_form, .file_upload_wrapper, .file_upload_start, .file_upload_filename, #file_upload_submit { cursor:pointer; overflow: visible; } +.file_upload_form, .file_upload_wrapper, .file_upload_start, #file_upload_submit { cursor:pointer; overflow: visible; } /* FILE TABLE */ #emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 5674206632b..9f0bafafbdf 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -89,7 +89,6 @@ var FileList={ $('tr').filterAttr('data-file',name).remove(); if($('tr[data-file]').length==0){ $('#emptyfolder').show(); - $('.file_upload_filename').addClass('highlight'); } }, insertElement:function(name,type,element){ @@ -118,7 +117,6 @@ var FileList={ $('#fileList').append(element); } $('#emptyfolder').hide(); - $('.file_upload_filename').removeClass('highlight'); }, loadingDone:function(name, id){ var mime, tr=$('tr').filterAttr('data-file',name); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 886bbfbb18f..a6216b02168 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -46,10 +46,6 @@ $(document).ready(function() { $(this).attr('data-file',decodeURIComponent($(this).attr('data-file'))); }); - if($('tr[data-file]').length==0){ - $('.file_upload_filename').addClass('highlight'); - } - $('#file_action_panel').attr('activeAction', false); //drag/drop of files @@ -482,7 +478,6 @@ $(document).ready(function() { $(window).click(function(){ $('#new>ul').hide(); $('#new').removeClass('active'); - $('button.file_upload_filename').removeClass('active'); $('#new li').each(function(i,element){ if($(element).children('p').length==0){ $(element).children('input').remove(); @@ -496,7 +491,6 @@ $(document).ready(function() { $('#new>a').click(function(){ $('#new>ul').toggle(); $('#new').toggleClass('active'); - $('button.file_upload_filename').toggleClass('active'); }); $('#new li').click(function(){ if($(this).children('p').length==0){ diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 82722cc47c8..a329726da49 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -14,7 +14,8 @@ data-type='web'>

t('From link');?>

-
+
+
- + title="t('Upload') . ' max. '.$_['uploadMaxHumanFilesize'] ?>">
+
-
+
Date: Wed, 5 Dec 2012 11:17:41 +0100 Subject: add IE9 CSS checkbox fixes --- apps/files/css/files.css | 17 ++++++---- apps/files/js/files.js | 14 ++++---- apps/files/templates/index.php | 2 +- core/css/styles.css | 73 ++++++++---------------------------------- 4 files changed, 32 insertions(+), 74 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/css/files.css b/apps/files/css/files.css index b82ed6eb434..8ce760db773 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -32,19 +32,24 @@ box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; background-color:#5bb75b; margin-left:0.2em; - height:27px; } + height:27px; +} #file_newfolder_name { background-image:url('%webroot%/core/img/places/folder.svg'); font-weight:normal; width:7em; } -.file_upload_start { font-size:1em; } + #file_newfolder_submit, #file_upload_submit { width:3em; } .file_upload_target { display:none; } -.file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:-1; position:relative; left:0; top:0; width:28px; height:27px; padding:0; cursor:pointer; overflow: hidden; } +#file_upload_start { + left:0; top:0; width:28px; height:27px; padding:0; + font-size:1em; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; + z-index:-1; position:relative; cursor:pointer; overflow: hidden; } #uploadprogresswrapper { position:absolute; right:13.5em; top:0em; } #uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; } -.file_upload_form, .file_upload_wrapper, .file_upload_start, #file_upload_submit { cursor:pointer; overflow: visible; } +.file_upload_form, .file_upload_wrapper, #file_upload_start, #file_upload_submit { cursor:pointer; overflow: visible; } /* FILE TABLE */ #emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } @@ -70,13 +75,13 @@ table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename input.filename { width:100%; cursor:text; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } -// TODO fix usability bug (accidental file/folder selection) +/* TODO fix usability bug (accidental file/folder selection) */ table td.filename .nametext { width:40em; overflow:hidden; text-overflow:ellipsis; } table td.filename .uploadtext { font-weight:normal; margin-left:.5em; } table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } table thead.fixed tr{ position:fixed; top:6.5em; z-index:49; -moz-box-shadow:0 -3px 7px #ddd; -webkit-box-shadow:0 -3px 7px #ddd; box-shadow:0 -3px 7px #ddd; } table thead.fixed { height:2em; } -#fileList tr td.filename>input[type=checkbox]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; } +#fileList tr td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; } #fileList tr td.filename>input[type="checkbox"]:hover:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } #fileList tr td.filename>input[type="checkbox"]:checked:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } #fileList tr td.filename { -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; position:relative; } diff --git a/apps/files/js/files.js b/apps/files/js/files.js index a6216b02168..7e1a90f45bd 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -67,7 +67,7 @@ $(document).ready(function() { // Triggers invisible file input $('.file_upload_button_wrapper').live('click', function() { - $(this).parent().children('.file_upload_start').trigger('click'); + $(this).parent().children('#file_upload_start').trigger('click'); return false; }); @@ -201,9 +201,9 @@ $(document).ready(function() { e.preventDefault(); // prevent browser from doing anything, if file isn't dropped in dropZone }); - if ( document.getElementById("data-upload-form") ) { + if ( document.getElementById('data-upload-form') ) { $(function() { - $('.file_upload_start').fileupload({ + $('#file_upload_start').fileupload({ dropZone: $('#content'), // restrict dropZone to content div add: function(e, data) { var files = data.files; @@ -218,7 +218,7 @@ $(document).ready(function() { totalSize+=files[i].size; if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file FileList.finishDelete(function(){ - $('.file_upload_start').change(); + $('#file_upload_start').change(); }); return; } @@ -292,7 +292,7 @@ $(document).ready(function() { var dropTarget = $(e.originalEvent.target).closest('tr'); if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder var dirName = dropTarget.attr('data-file') - var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i], + var jqXHR = $('#file_upload_start').fileupload('send', {files: files[i], formData: function(form) { var formArray = form.serializeArray(); // array index 0 contains the max files size @@ -353,7 +353,7 @@ $(document).ready(function() { } uploadingFiles[dirName][fileName] = jqXHR; } else { - var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i]}) + var jqXHR = $('#file_upload_start').fileupload('send', {files: files[i]}) .success(function(result, textStatus, jqXHR) { var response; response=jQuery.parseJSON(result); @@ -450,7 +450,7 @@ $(document).ready(function() { //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used) if(navigator.userAgent.search(/konqueror/i)==-1){ - $('.file_upload_start').attr('multiple','multiple') + $('#file_upload_start').attr('multiple','multiple') } //if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index a329726da49..82dc96d6435 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -31,7 +31,7 @@ - + diff --git a/core/css/styles.css b/core/css/styles.css index 31b3dacb965..faf38bdb87e 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -34,12 +34,15 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', end /* INPUTS */ input[type="text"], input[type="password"] { cursor:text; } -input, textarea, select, button, .button, #quota, div.jp-progress, .pager li a { - font-size:1em; font-family:Arial, Verdana, sans-serif; width:10em; margin:.3em; padding:.6em .5em .4em; +input:not([type="checkbox"]), textarea, select, button, .button, #quota, div.jp-progress, .pager li a { + width:10em; margin:.3em; padding:.6em .5em .4em; + font-size:1em; font-family:Arial, Verdana, sans-serif; background:#fff; color:#333; border:1px solid #ddd; outline:none; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } +input[type="checkbox"] { margin: 0; padding: 0; height: 13px; width: 13px; } +input[type="hidden"] { height:0; width:0; } input[type="text"], input[type="password"], input[type="search"], textarea { background:#f8f8f8; color:#555; cursor:text; } input[type="text"], input[type="password"], input[type="search"] { -webkit-appearance:textfield; -moz-appearance:textfield; -webkit-box-sizing:content-box; -moz-box-sizing:content-box; box-sizing:content-box; } input[type="text"]:hover, input[type="text"]:focus, input[type="text"]:active, @@ -60,23 +63,6 @@ input[type="checkbox"]:hover+label, input[type="checkbox"]:focus+label { color:# #quota { cursor:default; } -/* PRIMARY ACTION BUTTON, use sparingly */ -.primary, input[type="submit"].primary, input[type="button"].primary, button.primary, .button.primary { - border:1px solid #1d2d44; - background:#35537a; color:#ddd; text-shadow:#000 0 -1px 0; - -moz-box-shadow:0 0 1px #000,0 1px 1px #6d7d94 inset; -webkit-box-shadow:0 0 1px #000,0 1px 1px #6d7d94 inset; box-shadow:0 0 1px #000,0 1px 1px #6d7d94 inset; -} - .primary:hover, input[type="submit"].primary:hover, input[type="button"].primary:hover, button.primary:hover, .button.primary:hover, - .primary:focus, input[type="submit"].primary:focus, input[type="button"].primary:focus, button.primary:focus, .button.primary:focus { - border:1px solid #1d2d44; - background:#2d3d54; color:#fff; text-shadow:#000 0 -1px 0; - -moz-box-shadow:0 0 1px #000,0 1px 1px #5d6d84 inset; -webkit-box-shadow:0 0 1px #000,0 1px 1px #5d6d84 inset; box-shadow:0 0 1px #000,0 1px 1px #5d6d84 inset; - } - .primary:active, input[type="submit"].primary:active, input[type="button"].primary:active, button.primary:active, .button.primary:active { - border:1px solid #1d2d44; - background:#1d2d42; color:#bbb; text-shadow:#000 0 -1px 0; - -moz-box-shadow:0 1px 1px #fff,0 1px 1px 0 rgba(0,0,0,.2) inset; -webkit-box-shadow:0 1px 1px #fff,0 1px 1px 0 rgba(0,0,0,.2) inset; box-shadow:0 1px 1px #fff,0 1px 1px 0 rgba(0,0,0,.2) inset; - } #body-login input { font-size:1.5em; } @@ -107,56 +93,23 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b #login { min-height:30em; margin:2em auto 0; border-bottom:1px solid #f8f8f8; background:#eee; } #login form { width:22em; margin:2em auto 2em; padding:0; } -#login form fieldset { margin-bottom:20px; } -#login form #adminaccount { margin-bottom:5px; } -#login form fieldset legend, #datadirContent label { - width:100%; text-align:center; - font-weight:bold; color:#999; text-shadow:0 1px 0 white; -} -#login form fieldset legend a { color:#999; } -#login #datadirContent label { display:block; margin:0; color:#999; } -#login form #datadirField legend { margin-bottom:15px; } - -/* Nicely grouping input field sets */ -.grouptop input { - margin-bottom:0; - border-bottom:0; border-bottom-left-radius:0; border-bottom-right-radius:0; -} -.groupmiddle input { - margin-top:0; margin-bottom:0; - border-top:0; border-radius:0; - box-shadow:0 1px 1px #fff,0 1px 0 #ddd inset; -} -.groupbottom input { - margin-top:0; - border-top:0; border-top-right-radius:0; border-top-left-radius:0; - box-shadow:0 1px 1px #fff,0 1px 0 #ddd inset; -} +#login form fieldset { background:0; border:0; margin-bottom:2em; padding:0; } +#login form fieldset legend { font-weight:bold; } #login form label { margin:.95em 0 0 .85em; color:#666; } -#login .groupmiddle label, #login .groupbottom label { margin-top:13px; } /* NEEDED FOR INFIELD LABELS */ p.infield { position: relative; } label.infield { cursor: text !important; } -#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; } +#login form label.infield { position:absolute; font-size:1.5em; color:#AAA; } +#login #dbhostlabel, #login #directorylabel { display:block; margin:.95em 0 .8em -8em; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } #login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; } #login form #selectDbType { text-align:center; } -#login form #selectDbType label { - position:static; margin:0 -3px 5px; padding:.4em; - font-size:12px; font-weight:bold; background:#f8f8f8; color:#888; cursor:pointer; - border:1px solid #ddd; text-shadow:#eee 0 1px 0; - -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -} -#login form #selectDbType label.ui-state-hover, #login form #selectDbType label.ui-state-active { color:#000; background-color:#e8e8e8; } - -fieldset.warning { - padding:8px; - color:#b94a48; background-color:#f2dede; border:1px solid #eed3d7; - border-radius:5px; -} -fieldset.warning legend { color:#b94a48 !important; } +#login form #selectDbType label { position:static; font-size:1em; margin:0 -.3em 1em; cursor:pointer; padding:.4em; border:1px solid #ddd; font-weight:bold; background:#f8f8f8; color:#555; text-shadow:#eee 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; } +#login form #selectDbType label span { cursor:pointer; font-size:0.9em; } +#login form #selectDbType label.ui-state-hover span, #login form #selectDbType label.ui-state-active span { color:#000; } +#login form #selectDbType label.ui-state-hover, #login form #selectDbType label.ui-state-active { color: #333; background-color: #ccc; } /* NAVIGATION ------------------------------------------------------------- */ -- cgit v1.2.3 From 80d8ca24ec5d8b0071c0c901dfe042d99a46fcd7 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Fri, 7 Dec 2012 12:12:40 +0100 Subject: fix svg -> png replacement for android, cleanup and remove obsolete css --- apps/files/css/files.css | 61 +++++++++++++++++++++++------------------- apps/files/js/files.js | 8 +----- apps/files/templates/index.php | 8 +++--- core/js/js.js | 2 +- 4 files changed, 39 insertions(+), 40 deletions(-) (limited to 'apps/files/js') diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 89427124f86..b56d3e29d77 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -5,43 +5,46 @@ /* FILE MENU */ .actions { padding:.3em; float:left; height:2em; } .actions input, .actions button, .actions .button { margin:0; float:left; } -#file_menu { right:0; position:absolute; top:0; } -#file_menu a { display:block; float:left; background-image:none; text-decoration:none; } -.file_upload_form, #file_newfolder_form { display:inline; float: left; margin:0; padding:0; } -#fileSelector, #file_upload_submit, #file_newfolder_submit { display:none; } -.file_upload_wrapper, #file_newfolder_name { background-repeat:no-repeat; background-position:.5em .5em; padding-left:2em; } -.file_upload_wrapper { font-weight:bold; display:-moz-inline-box; /* fallback for older firefox versions*/ display:block; float:left; padding-left:0; overflow:hidden; position:relative; margin:0; margin-left:2px; } -.file_upload_button_wrapper { position:relative; display:block; width:100%; height:27px; cursor:pointer; z-index:1000; } -#new { background-color:#5bb75b; float:left; margin:0 0 0 1em; z-index:1010; height:17px; } + +#new { + height:17px; margin:0 0 0 1em; z-index:1010; float:left; + background-color:#5bb75b; + border:1px solid; border-color:#51a351 #419341 #387038; + -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; + -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; + box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; +} #new:hover, #upload:hover { background-color:#4b964b; } #new.active { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:none; } #new>a { padding:.5em 1.2em .3em; color:#fff; text-shadow:0 1px 0 #51a351; } -#new>ul { display:none; position:fixed; text-align:left; padding:.5em; background:#f8f8f8; margin-top:0.075em; border:1px solid #ddd; min-width:7em; margin-left:-.5em; z-index:-1; } +#new>ul { + display:none; position:fixed; min-width:7em; z-index:-1; + padding:.5em; margin-top:0.075em; margin-left:-.5em; + text-align:left; + background:#f8f8f8; border:1px solid #ddd; +} #new>ul>li { height:20px; margin:.3em; padding-left:2em; padding-bottom:0.1em; background-repeat:no-repeat; cursor:pointer; } #new>ul>li>p { cursor:pointer; } #new>ul>li>input { padding:0.3em; margin:-0.3em; } -#new { border:1px solid; border-color:#51a351 #419341 #387038; -moz-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; } #new .popup { border-top-left-radius:0; z-index:10; } -#upload { background-image: url('%webroot%/core/img/actions/upload-white.svg'); - background-repeat: no-repeat; - background-position: 7px 6px; - padding:0; - color:#fff; - text-shadow:0 1px 0 #51a351; + +#upload { + height:27px; padding:0; margin-left:0.2em; overflow:hidden; + color:#fff; text-shadow:0 1px 0 #51a351; border-color:#51a351 #419341 #387038; box-shadow:0 1px 1px #f8f8f8, 1px 1px 1px #ada inset; background-color:#5bb75b; - margin-left:0.2em; - height:27px; - overflow:hidden; } - -#file_newfolder_name { background-image:url('%webroot%/core/img/places/folder.svg'); font-weight:normal; width:7em; } - -#file_newfolder_submit, #file_upload_submit { width:3em; } +#upload a { + position:relative; display:block; width:100%; height:27px; + cursor:pointer; z-index:1000; + background-image: url('%webroot%/core/img/actions/upload-white.svg'); + background-repeat: no-repeat; + background-position: 7px 6px; +} .file_upload_target { display:none; } - +.file_upload_form { display:inline; float: left; margin:0; padding:0; cursor:pointer; overflow: visible; } #file_upload_start { left:0; top:0; width:28px; height:27px; padding:0; font-size:1em; @@ -51,10 +54,14 @@ #uploadprogresswrapper { position:absolute; right:13.5em; top:0em; } #uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; } -.file_upload_form, .file_upload_wrapper, #file_upload_start, #file_upload_submit { cursor:pointer; overflow: visible; } /* FILE TABLE */ -#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } + +#emptyfolder { + position: absolute; + margin: 10em 0 0 10em; + font-size: 1.5em; font-weight: bold; + color: #888; text-shadow: #fff 0 1px 0; } table { position:relative; top:37px; width:100%; } tbody tr { background-color:#fff; height:2.5em; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; } @@ -78,7 +85,7 @@ table td.filename input.filename { width:100%; cursor:text; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } /* TODO fix usability bug (accidental file/folder selection) */ -table td.filename .nametext { width:40em; overflow:hidden; text-overflow:ellipsis; } +table td.filename .nametext { overflow:hidden; text-overflow:ellipsis; } table td.filename .uploadtext { font-weight:normal; margin-left:.5em; } table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } table thead.fixed tr{ position:fixed; top:6.5em; z-index:49; -moz-box-shadow:0 -3px 7px #ddd; -webkit-box-shadow:0 -3px 7px #ddd; box-shadow:0 -3px 7px #ddd; } diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 7e1a90f45bd..ece0b29ae16 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -66,7 +66,7 @@ $(document).ready(function() { } // Triggers invisible file input - $('.file_upload_button_wrapper').live('click', function() { + $('#upload a').live('click', function() { $(this).parent().children('#file_upload_start').trigger('click'); return false; }); @@ -168,12 +168,6 @@ $(document).ready(function() { procesSelection(); }); - $('#file_newfolder_name').click(function(){ - if($('#file_newfolder_name').val() == 'New Folder'){ - $('#file_newfolder_name').val(''); - } - }); - $('.download').click('click',function(event) { var files=getSelectedFiles('name').join(';'); var dir=$('#dir').val()||'/'; diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 82dc96d6435..bd34c9a76d9 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -15,7 +15,6 @@
-
- - + - +
-
diff --git a/core/js/js.js b/core/js/js.js index 3b4cabe710b..7d967321d93 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -615,7 +615,7 @@ $(document).ready(function(){ $('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true}); $('.jp-controls .jp-next').tipsy({gravity:'n', fade:true, live:true}); $('.password .action').tipsy({gravity:'se', fade:true, live:true}); - $('.file_upload_button_wrapper').tipsy({gravity:'w', fade:true}); + $('#upload a').tipsy({gravity:'w', fade:true}); $('.selectedActions a').tipsy({gravity:'s', fade:true, live:true}); $('a.delete').tipsy({gravity: 'e', fade:true, live:true}); $('a.action').tipsy({gravity:'s', fade:true, live:true}); -- cgit v1.2.3 From 6a2b41e5e86cef9174b50f450aaf18097afe2f1c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 13 Dec 2012 18:11:00 +0100 Subject: use json encoding when deleting multiply files instead of using ; as delimiter --- apps/files/ajax/delete.php | 2 +- apps/files/js/filelist.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php index 57c8c15c197..6532b76df21 100644 --- a/apps/files/ajax/delete.php +++ b/apps/files/ajax/delete.php @@ -10,7 +10,7 @@ OCP\JSON::callCheck(); $dir = stripslashes($_POST["dir"]); $files = isset($_POST["file"]) ? stripslashes($_POST["file"]) : stripslashes($_POST["files"]); -$files = explode(';', $files); +$files = json_decode($files); $filesWithError = ''; $success = true; //Now delete diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9f0bafafbdf..3fbafd722b5 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -289,6 +289,7 @@ var FileList={ finishDelete:function(ready,sync){ if(!FileList.deleteCanceled && FileList.deleteFiles){ var fileNames=FileList.deleteFiles.join(';'); + var fileNames=JSON.stringify(FileList.deleteFiles); $.ajax({ url: OC.filePath('files', 'ajax', 'delete.php'), async:!sync, -- cgit v1.2.3 From fda7d932efbb95c28b8fe61f355c9d8cc4390862 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 13 Dec 2012 22:12:27 +0100 Subject: remove unneeded line --- apps/files/js/filelist.js | 1 - 1 file changed, 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 3fbafd722b5..96dd0323d29 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -288,7 +288,6 @@ var FileList={ }, finishDelete:function(ready,sync){ if(!FileList.deleteCanceled && FileList.deleteFiles){ - var fileNames=FileList.deleteFiles.join(';'); var fileNames=JSON.stringify(FileList.deleteFiles); $.ajax({ url: OC.filePath('files', 'ajax', 'delete.php'), -- cgit v1.2.3 From 1443d6c3ef51128f8c9ec3c3c0773586d349a196 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 13 Dec 2012 22:31:43 +0100 Subject: fix mimetype icons for new files --- apps/files/js/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js') diff --git a/apps/files/js/files.js b/apps/files/js/files.js index ece0b29ae16..33c775fc8ec 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -853,7 +853,7 @@ function getMimeIcon(mime, ready){ if(getMimeIcon.cache[mime]){ ready(getMimeIcon.cache[mime]); }else{ - $.get( OC.filePath('files','ajax','mimeicon.php')+'&mime='+mime, function(path){ + $.get( OC.filePath('files','ajax','mimeicon.php'), {mime: mime}, function(path){ getMimeIcon.cache[mime]=path; ready(getMimeIcon.cache[mime]); }); -- cgit v1.2.3