aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/js/file-upload.js
diff options
context:
space:
mode:
authorJörn Friedrich Dreyer <jfd@butonic.de>2013-09-04 13:55:49 +0200
committerJörn Friedrich Dreyer <jfd@butonic.de>2013-09-04 14:11:40 +0200
commit4af5a8c483278eae2e8e38f5ea0a238072848b87 (patch)
treebeca3f5250e1a50eca58fa63eea056b69ab82e44 /apps/files/js/file-upload.js
parent7c9d9992432839f2265b8f6b0f43ed15bfca9ff1 (diff)
parent09187f3b3b30e6f810c6afff7332615ed472154e (diff)
downloadnextcloud-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.js252
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();