aboutsummaryrefslogtreecommitdiffstats
path: root/files/js/files.js
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-06-02 20:32:12 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-06-02 20:35:14 +0200
commit016a892a78472cc954f1e26feba0facfe4c893d5 (patch)
tree44f2d757aa67f2a7fb8e62bbd2822e67601b2d0f /files/js/files.js
parentfa140555e82cfd4fd42bf83ab8f9912141e8966c (diff)
parent5d3cf06c73bcf805dfcf2f3d12330ac90d8a7179 (diff)
downloadnextcloud-server-016a892a78472cc954f1e26feba0facfe4c893d5.tar.gz
nextcloud-server-016a892a78472cc954f1e26feba0facfe4c893d5.zip
merge refactoring in master
Diffstat (limited to 'files/js/files.js')
-rw-r--r--files/js/files.js324
1 files changed, 324 insertions, 0 deletions
diff --git a/files/js/files.js b/files/js/files.js
new file mode 100644
index 00000000000..aed2d596272
--- /dev/null
+++ b/files/js/files.js
@@ -0,0 +1,324 @@
+$(document).ready(function() {
+ $('#file_action_panel').attr('activeAction', false);
+ $('#file_upload_start').attr('mode', 'menu');
+ $('#file_upload_form').attr('uploading', false);
+ $('#file_newfolder_name').css('width', '14em');
+ $('#file_newfolder_submit').css('width', '3em');
+
+ // Sets browser table behaviour :
+ $('.browser tr').hover(
+ function() {
+ $(this).addClass('mouseOver');
+ },
+ function() {
+ $(this).removeClass('mouseOver');
+ }
+ );
+
+ // Sets logs table behaviour :
+ $('.logs tr').hover(
+ function() {
+ $(this).addClass('mouseOver');
+ },
+ function() {
+ $(this).removeClass('mouseOver');
+ }
+ );
+
+ // Sets the file-action buttons behaviour :
+ $('td.fileaction a').click(function() {
+ $(this).parent().append($('#file_menu'));
+ $('#file_menu').slideToggle(250);
+ return false;
+ });
+
+ // Sets the select_all checkbox behaviour :
+ $('#select_all').click(function() {
+
+ if($(this).attr('checked'))
+ // Check all
+ $('td.selection input:checkbox').attr('checked', true);
+ else
+ // Uncheck all
+ $('td.selection input:checkbox').attr('checked', false);
+ });
+
+ $('td.selection input:checkbox').click(function() {
+ if(!$(this).attr('checked')){
+ $('#select_all').attr('checked',false);
+ }else{
+ if($('td.selection input:checkbox:checked').length==$('td.selection input:checkbox').length){
+ $('#select_all').attr('checked',true);
+ }
+ }
+ });
+
+ // Download current file
+ $('#download_single_file').click(function() {
+ filename = $('#file_menu').parents('tr:first').find('.filename:first').children('a:first').text();
+ window.location='ajax/download.php?files='+filename+'&dir='+$('#dir').val();
+ $('#file_menu').slideToggle(250);
+ return false;
+ });
+
+ // Delete current file
+ $('#delete_single_file').click(function() {
+ filename = $('#file_menu').parents('tr:first').find('.filename:first').children('a:first').text();
+ $.ajax({
+ url: 'ajax/delete.php',
+ data: "dir="+$('#dir').val()+"&file="+filename,
+ complete: function(data){
+ boolOperationFinished(data, true, $('#file_menu').parents('tr:first'));
+ }
+ });
+ return false;
+ });
+
+ $('#file_upload_start').click(function() {
+ if($('#file_upload_start').attr('mode') == 'menu') {
+ $('#file_upload_form')[0].reset();
+ $('#fileSelector').change(function() {
+ //Chromium prepends C:\fakepath....
+ bspos = $('#fileSelector').val().lastIndexOf('\\')+1;
+ filename = $('#fileSelector').val().substr(bspos);
+
+ $('#file_upload_start').val('Upload ' + filename);
+ $('#fileSelector').hide();
+ $('#file_upload_cancel').slideDown(250);
+ $('#file_upload_start').attr('mode', 'action');
+ });
+ $('#file_upload_start').focusin(function() {
+ if($('#fileSelector').val() == '') {
+ $('#fileSelector').hide();
+ $('#file_upload_start').unbind('focusin');
+ }
+ });
+ $('#fileSelector').focusout(function() {
+ if($('#fileSelector').val() == '') {
+ $('#fileSelector').hide();
+ }
+ });
+ $('#fileSelector').show(); //needed for Chromium compatibility
+ //rekonq does not call change-event, when click() is executed by script
+ if(navigator.userAgent.indexOf('rekonq') == -1){
+ $('#fileSelector').click();
+ }
+ $('#fileSelector').focus();
+ } else if($('#file_upload_start').attr('mode') == 'action') {
+ $('#file_upload_cancel').slideUp(250);
+ $('#file_upload_form').attr('uploading', true);
+ $('#file_upload_target').load(uploadFinished);
+ }
+ });
+
+ $('#file_upload_cancel').click(function() {
+ $('#file_upload_form')[0].reset();
+ $('#file_upload_start').val('Upload ' + $('.max_human_file_size:first').val());
+ $('#file_upload_start').attr('mode', 'menu');
+ $('#file_upload_cancel').hide();
+// $('#file_action_panel').attr('activeAction', 'false');
+// $('#file_upload_form').hide();
+// $('p.actions a.upload:first').show();
+ });
+
+ $('#file_new_dir_submit').click(function() {
+ $.ajax({
+ url: 'ajax/newfolder.php',
+ data: "dir="+$('#dir').val()+"&foldername="+$('#file_new_dir_name').val(),
+ complete: function(data){boolOperationFinished(data, false);}
+ });
+ });
+
+ $('#file_newfolder_name').click(function(){
+ if($('#file_newfolder_name').val() == 'New Folder'){
+ $('#file_newfolder_name').val('');
+ }
+ });
+
+ $('#file_newfolder_name').bind('keyup', adjustNewFolderSize);
+
+ $('#file_newfolder_submit').bind('vanish', function() {
+ $('#file_newfolder_name').bind('keyup', adjustNewFolderSize);
+ unsplitSize($('#file_newfolder_name'),$('#file_newfolder_submit'));
+ });
+
+ $('#file_newfolder_name').focusout(function(){
+ if($('#file_newfolder_name').val() == '') {
+ $('#file_newfolder_form')[0].reset();
+ $('#file_newfolder_submit').fadeOut(250).trigger('vanish');
+ }
+ });
+
+ $('#file_newfolder_submit').click(function() {
+ if($('#file_newfolder_name').val() != '') {
+ $.ajax({
+ url: 'ajax/newfolder.php',
+ data: "dir="+$('#dir').val()+"&foldername="+$('#file_newfolder_name').val(),
+ complete: function(data){
+ boolOperationFinished(data, false);
+ $('#file_newfolder_form')[0].reset();
+ }
+ });
+ }
+ $('#file_newfolder_submit').fadeOut(250).trigger('vanish');
+ });
+
+// $('.upload').click(function(){
+// if($('#file_action_panel').attr('activeAction') != 'upload') {
+// $('#file_action_panel').attr('activeAction', 'upload');
+// $('#fileSelector').replaceWith('<input type="file" name="file" id="fileSelector">');
+// $('#fileSelector').change(function() {
+// $('#file_upload_start').val('Upload ' + $('#fileSelector').val());
+// $('p.actions a.upload:first').after($('#file_upload_form'));
+// $('#file_upload_form').css('display', 'inline');
+// $('p.actions a.upload:first').hide();
+// $('#fileSelector').hide();
+// });
+// $('#file_action_panel form').slideUp(250);
+// // $('#file_upload_form').slideDown(250);
+// $('#fileSelector').click();
+// } else {
+// $('#file_action_panel').attr('activeAction', 'false');
+// $('#file_upload_form').slideUp(250);
+// }
+// return false;
+// });
+
+
+
+// $('.new-dir').click(function(){
+// if($('#file_action_panel').attr('activeAction') != 'new-dir') {
+// $('#file_action_panel').attr('activeAction', 'new-dir');
+// $('#file_new_dir_name').val('');
+// $('#file_action_panel form').slideUp(250);
+// $('#file_newfolder_form').slideDown(250);
+// } else {
+// $('#file_newfolder_form').slideUp(250);
+// $('#file_action_panel').attr('activeAction', false);
+// }
+// return false;
+// });
+
+ $('.download').click(function(event) {
+ var files='';
+ $('td.selection input:checkbox:checked').parent().parent().children('.filename').each(function(i,element){
+ files+=';'+$(element).text();
+ });
+ files=files.substr(1);//remove leading ;
+
+ //send the browser to the download location
+ var dir=$('#dir').val()||'/';
+// alert(files);
+ window.location='ajax/download.php?files='+files+'&dir='+dir;
+ return false;
+ });
+
+ $('.delete').click(function(event) {
+ var files='';
+ $('td.selection input:checkbox:checked').parent().parent().children('.filename').each(function(i,element){
+ files+=';'+$(element).text();
+ });
+ files=files.substr(1);//remove leading ;
+
+ $.ajax({
+ url: 'ajax/delete.php',
+ data: "dir="+$('#dir').val()+"&files="+files,
+ complete: function(data){
+ boolOperationFinished(data, false);
+ }
+ });
+
+ return false;
+ });
+});
+
+var adjustNewFolderSize = function() {
+ if($('#file_newfolder_name').val() != '') {
+ splitSize($('#file_newfolder_name'),$('#file_newfolder_submit'));
+ $('#file_newfolder_name').unbind('keyup', adjustNewFolderSize);
+ };
+}
+
+function splitSize(existingEl, appearingEl) {
+ nw = parseInt($(existingEl).css('width')) - parseInt($(appearingEl).css('width'));
+ $(existingEl).css('width', nw + 'px');
+ $(appearingEl).fadeIn(250);
+}
+
+function unsplitSize(stayingEl, vanishingEl) {
+ nw = parseInt($(stayingEl).css('width')) + parseInt($(vanishingEl).css('width'));
+ $(stayingEl).css('width', nw + 'px');
+ $(vanishingEl).fadeOut(250);
+}
+
+function uploadFinished() {
+ result = $('#file_upload_target').contents().text();
+ result = eval("(" + result + ");");
+ $('#file_upload_target').load(function(){});
+ if(result.status == "error") {
+ if($('#file_upload_form').attr('uploading') == true) {
+ alert('An error occcured, upload failed.\nError code: ' + result.data.error + '\nFilename: ' + result.data.file);
+ }
+ } else {
+ dir = $('#dir').val();
+ $.ajax({
+ url: 'ajax/list.php',
+ data: "dir="+dir,
+ complete: function(data) {
+ refreshContents(data);
+// $('#file_action_panel').prepend($('#file_upload_form'));
+// $('#file_upload_form').css('display', 'block').hide();
+// $('p.actions a.upload:first').show();
+ $('#file_upload_start').val('Upload ' + $('.max_human_file_size:first').val());
+ $('#file_upload_start').attr('mode', 'menu');
+ }
+ });
+ }
+ $('#file_upload_form').attr('uploading', false);
+}
+
+function resetFileActionPanel() {
+ $('#file_action_panel form').css({"display":"none"});
+ $('#file_action_panel').attr('activeAction', false);
+}
+
+function boolOperationFinished(data, single, el) {
+ result = eval("("+data.responseText+");");
+ if(result.status == 'success'){
+ if(single) {
+ $('#file_menu').slideToggle(0);
+ $('body').append($('#file_menu'));
+ $(el).remove();
+ } else {
+ $.ajax({
+ url: 'ajax/list.php',
+ data: "dir="+$('#dir').val(),
+ complete: refreshContents
+ });
+ }
+ } else {
+ alert(result.data.message);
+ }
+}
+
+function refreshContents(data) {
+ result = eval("("+data.responseText+");");
+ if(typeof(result.data.breadcrumb) != 'undefined'){
+ updateBreadcrumb(result.data.breadcrumb);
+ }
+ updateFileList(result.data.files);
+ $('td.fileaction a').click(function() {
+ $(this).parent().append($('#file_menu'));
+ $('#file_menu').slideToggle(250);
+ return false;
+ });
+ resetFileActionPanel();
+}
+
+function updateBreadcrumb(breadcrumbHtml) {
+ $('p.nav').empty().html(breadcrumbHtml);
+}
+
+function updateFileList(fileListHtml) {
+ $('#fileList').empty().html(fileListHtml);
+}