diff options
author | Jörn Friedrich Dreyer <jfd@butonic.de> | 2013-09-04 13:55:49 +0200 |
---|---|---|
committer | Jörn Friedrich Dreyer <jfd@butonic.de> | 2013-09-04 14:11:40 +0200 |
commit | 4af5a8c483278eae2e8e38f5ea0a238072848b87 (patch) | |
tree | beca3f5250e1a50eca58fa63eea056b69ab82e44 /apps/files/js/file-upload.js | |
parent | 7c9d9992432839f2265b8f6b0f43ed15bfca9ff1 (diff) | |
parent | 09187f3b3b30e6f810c6afff7332615ed472154e (diff) | |
download | nextcloud-server-4af5a8c483278eae2e8e38f5ea0a238072848b87.tar.gz nextcloud-server-4af5a8c483278eae2e8e38f5ea0a238072848b87.zip |
Merge branch 'master' into fix_3728_with_file_exists_dialog
Conflicts:
apps/files/ajax/upload.php
apps/files/js/file-upload.js
apps/files/js/filelist.js
apps/files/js/files.js
apps/files/templates/part.list.php
Diffstat (limited to 'apps/files/js/file-upload.js')
-rw-r--r-- | apps/files/js/file-upload.js | 252 |
1 files changed, 130 insertions, 122 deletions
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index ec8c97ff457..be3d7e08aff 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -544,7 +544,6 @@ $(document).ready(function() { return t('files', 'File upload is in progress. Leaving the page now will cancel the upload.'); } }); - //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'); @@ -582,138 +581,147 @@ $(document).ready(function() { } }); }); - $('#new li').click(function() { - if($(this).children('p').length === 0) { + $('#new').click(function(event){ + event.stopPropagation(); + }); + $('#new>a').click(function(){ + $('#new>ul').toggle(); + $('#new').toggleClass('active'); + }); + $('#new li').click(function(){ + if($(this).children('p').length==0){ return; } - $('#new li').each(function(i, element) { - if($(element).children('p').length === 0) { - $(element).children('form').remove(); - $(element).append('<p>' + $(element).data('text') + '</p>'); - } - }); + $('#new li').each(function(i, element) { + if($(element).children('p').length === 0) { + $(element).children('form').remove(); + $(element).append('<p>' + $(element).data('text') + '</p>'); + } + }); - var type = $(this).data('type'); - var text = $(this).children('p').text(); - $(this).data('text', text); - $(this).children('p').remove(); - var form = $('<form></form>'); - var input = $('<input>'); - form.append(input); - $(this).append(form); - input.focus(); - form.submit(function(event) { - event.stopPropagation(); - event.preventDefault(); - var newname=input.val(); - if(type === 'web' && newname.length === 0) { - OC.Notification.show(t('files', 'URL cannot be empty.')); - return false; - } else if (type !== 'web' && !Files.isFileNameValid(newname)) { - return false; - } else if( type === 'folder' && $('#dir').val() === '/' && newname === 'Shared') { - OC.Notification.show(t('files', 'Invalid folder name. Usage of \'Shared\' is reserved by ownCloud')); - return false; - } - if (FileList.lastAction) { - FileList.lastAction(); - } - var name = getUniqueName(newname); - if (newname !== name) { - FileList.checkName(name, newname, true); - var hidden = true; - } else { - var hidden = false; - } - switch(type) { - case 'file': - $.post( - OC.filePath('files', 'ajax', 'newfile.php'), - {dir:$('#dir').val(), filename:name}, - function(result) { - if (result.status === 'success') { - var date = new Date(); - FileList.addFile(name, 0, date, false, hidden); - var tr = $('tr').filterAttr('data-file', name); - tr.attr('data-mime', result.data.mime); - tr.attr('data-id', result.data.id); - getMimeIcon(result.data.mime, function(path) { - tr.find('td.filename').attr('style', 'background-image:url('+path+')'); - }); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); + var type = $(this).data('type'); + var text = $(this).children('p').text(); + $(this).data('text', text); + $(this).children('p').remove(); + var form = $('<form></form>'); + var input = $('<input>'); + form.append(input); + $(this).append(form); + input.focus(); + form.submit(function(event) { + event.stopPropagation(); + event.preventDefault(); + var newname=input.val(); + if(type === 'web' && newname.length === 0) { + OC.Notification.show(t('files', 'URL cannot be empty.')); + return false; + } else if (type !== 'web' && !Files.isFileNameValid(newname)) { + return false; + } else if( type === 'folder' && $('#dir').val() === '/' && newname === 'Shared') { + OC.Notification.show(t('files', 'Invalid folder name. Usage of \'Shared\' is reserved by ownCloud')); + return false; + } + if (FileList.lastAction) { + FileList.lastAction(); + } + var name = getUniqueName(newname); + if (newname !== name) { + FileList.checkName(name, newname, true); + var hidden = true; + } else { + var hidden = false; + } + switch(type) { + case 'file': + $.post( + OC.filePath('files', 'ajax', 'newfile.php'), + {dir:$('#dir').val(), filename:name}, + function(result) { + if (result.status === 'success') { + var date = new Date(); + FileList.addFile(name, 0, date, false, hidden); + var tr = $('tr').filterAttr('data-file', name); + tr.attr('data-size',result.data.size); + tr.attr('data-mime', result.data.mime); + tr.attr('data-id', result.data.id); + tr.find('.filesize').text(humanFileSize(result.data.size)); + var path = getPathForPreview(name); + lazyLoadPreview(path, result.data.mime, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); + }); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } } - } - ); - break; - case 'folder': - $.post( - OC.filePath('files', 'ajax', 'newfolder.php'), - {dir:$('#dir').val(), foldername:name}, - function(result) { - if (result.status === 'success') { - var date = new Date(); - FileList.addDir(name, 0, date, hidden); - var tr = $('tr').filterAttr('data-file', name); - tr.attr('data-id', result.data.id); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error')); + ); + break; + case 'folder': + $.post( + OC.filePath('files', 'ajax', 'newfolder.php'), + {dir:$('#dir').val(), foldername:name}, + function(result) { + if (result.status === 'success') { + var date = new Date(); + FileList.addDir(name, 0, date, hidden); + var tr = $('tr').filterAttr('data-file', name); + tr.attr('data-id', result.data.id); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } } + ); + break; + case 'web': + if (name.substr(0, 8) !== 'https://' && name.substr(0, 7) !== 'http://') { + name = 'http://' + name; } - ); - break; - case 'web': - if (name.substr(0, 8) !== 'https://' && name.substr(0, 7) !== 'http://') { - name = 'http://' + name; - } - var localName = name; - if(localName.substr(localName.length-1, 1) === '/') { //strip / - localName = localName.substr(0, localName.length-1); - } - if (localName.indexOf('/')) { //use last part of url - localName = localName.split('/').pop(); - } else { //or the domain - localName = (localName.match(/:\/\/(.[^\/]+)/)[1]).replace('www.', ''); - } - localName = getUniqueName(localName); - //IE < 10 does not fire the necessary events for the progress bar. - if ($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar({value:0}); - $('#uploadprogressbar').fadeIn(); - } + var localName = name; + if(localName.substr(localName.length-1, 1) === '/') { //strip / + localName = localName.substr(0, localName.length-1); + } + if (localName.indexOf('/')) { //use last part of url + localName = localName.split('/').pop(); + } else { //or the domain + localName = (localName.match(/:\/\/(.[^\/]+)/)[1]).replace('www.', ''); + } + localName = getUniqueName(localName); - var eventSource = new OC.EventSource( - OC.filePath('files', 'ajax', 'newfile.php'), - {dir:$('#dir').val(), source:name, filename:localName} - ); - eventSource.listen('progress', function(progress) { //IE < 10 does not fire the necessary events for the progress bar. - if($('html.lte9').length > 0) { - } else { - $('#uploadprogressbar').progressbar('value', progress); + if($('html.lte9').length === 0) { + $('#uploadprogressbar').progressbar({value:0}); + $('#uploadprogressbar').fadeIn(); } - }); - eventSource.listen('success', function(data) { - var mime = data.mime; - var size = data.size; - var id = data.id; - $('#uploadprogressbar').fadeOut(); - var date = new Date(); - FileList.addFile(localName, size, date, false, hidden); - var tr = $('tr').filterAttr('data-file', localName); - tr.data('mime', mime).data('id', id); - tr.attr('data-id', id); - getMimeIcon(mime, function(path) { - tr.find('td.filename').attr('style', 'background-image:url(' + path + ')'); + var eventSource = new OC.EventSource( + OC.filePath('files', 'ajax', 'newfile.php'), + {dir:$('#dir').val(), source:name, filename:localName} + ); + eventSource.listen('progress',function(progress){ + //IE < 10 does not fire the necessary events for the progress bar. + if($('html.lte9').length === 0) { + $('#uploadprogressbar').progressbar('value', progress); + } + }); + eventSource.listen('success', function(data) { + var mime = data.mime; + var size = data.size; + var id = data.id; + $('#uploadprogressbar').fadeOut(); + var date = new Date(); + FileList.addFile(localName, size, date, false, hidden); + var tr = $('tr').filterAttr('data-file', localName); + tr.data('mime', mime).data('id', id); + tr.attr('data-id', id); + var path = $('#dir').val()+'/'+localName; + lazyLoadPreview(path, mime, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); + }); + }); + eventSource.listen('error', function(error) { + $('#uploadprogressbar').fadeOut(); + alert(error); }); - }); - eventSource.listen('error', function(error) { - $('#uploadprogressbar').fadeOut(); - alert(error); - }); - break; + break; } var li = form.parent(); form.remove(); |