summaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/js/trash.js
diff options
context:
space:
mode:
authorraghunayyar <me@iraghu.com>2014-01-16 14:42:37 +0530
committerraghunayyar <me@iraghu.com>2014-01-16 14:42:37 +0530
commit775e08e0ee4125cc7b2a594771437686f6a21b56 (patch)
tree362f84449171898335dd3e8511b65c97c150e9e1 /apps/files_trashbin/js/trash.js
parent4687d2dd0bde3f689eb57c90d0c4341cd00991bd (diff)
parentbd643c47f32ba6d7b3ba6a18ed1591aab0b81be8 (diff)
downloadnextcloud-server-775e08e0ee4125cc7b2a594771437686f6a21b56.tar.gz
nextcloud-server-775e08e0ee4125cc7b2a594771437686f6a21b56.zip
Merge branch 'master' into core-em-to-px
Conflicts: apps/files_sharing/css/public.css apps/user_ldap/css/settings.css core/css/multiselect.css core/css/share.css
Diffstat (limited to 'apps/files_trashbin/js/trash.js')
-rw-r--r--apps/files_trashbin/js/trash.js277
1 files changed, 128 insertions, 149 deletions
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index d73eadb6011..46d8b56308c 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -3,15 +3,40 @@ $(document).ready(function() {
if (typeof FileActions !== 'undefined') {
FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) {
- var tr=$('tr').filterAttr('data-file', filename);
- var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
- var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date");
- var files = tr.attr('data-file');
- undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner;
+ var tr = FileList.findFileEl(filename);
+ var deleteAction = tr.children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
disableActions();
- $.post(OC.filePath('files_trashbin','ajax','undelete.php'),
- {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
- function(result){
+ $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'),
+ {files: JSON.stringify([$('#dir').val() + '/' + filename]), dirlisting: tr.attr('data-dirlisting')},
+ function(result) {
+ for (var i = 0; i < result.data.success.length; i++) {
+ var row = document.getElementById(result.data.success[i].filename);
+ row.parentNode.removeChild(row);
+ }
+ if (result.status !== 'success') {
+ OC.dialogs.alert(result.data.message, t('core', 'Error'));
+ }
+ enableActions();
+ FileList.updateFileSummary();
+ FileList.updateEmptyContent();
+ }
+ );
+
+ });
+ };
+
+ FileActions.register('all', 'Delete', OC.PERMISSION_READ, function() {
+ return OC.imagePath('core', 'actions/delete');
+ }, function(filename) {
+ $('.tipsy').remove();
+ var tr = FileList.findFileEl(filename);
+ var deleteAction = tr.children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ disableActions();
+ $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'),
+ {files: JSON.stringify([$('#dir').val() + '/' +filename]), dirlisting: tr.attr('data-dirlisting')},
+ function(result) {
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
row.parentNode.removeChild(row);
@@ -21,26 +46,40 @@ $(document).ready(function() {
}
enableActions();
FileList.updateFileSummary();
- });
+ FileList.updateEmptyContent();
+ }
+ );
- });
- };
+ });
+
+ // Sets the select_all checkbox behaviour :
+ $('#select_all').click(function() {
+ if ($(this).attr('checked')) {
+ // Check all
+ $('td.filename input:checkbox').attr('checked', true);
+ $('td.filename input:checkbox').parent().parent().addClass('selected');
+ } else {
+ // Uncheck all
+ $('td.filename input:checkbox').attr('checked', false);
+ $('td.filename input:checkbox').parent().parent().removeClass('selected');
+ }
+ procesSelection();
+ });
- FileActions.register('all', 'Delete', OC.PERMISSION_READ, function () {
- return OC.imagePath('core', 'actions/delete');
- }, function (filename) {
- $('.tipsy').remove();
+ $('.undelete').click('click', function(event) {
+ event.preventDefault();
+ var files = getSelectedFiles('file');
+ var fileslist = JSON.stringify(files);
+ var dirlisting = getSelectedFiles('dirlisting')[0];
+ disableActions();
+ for (var i = 0; i < files.length; i++) {
+ var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ }
- var tr=$('tr').filterAttr('data-file', filename);
- var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete");
- var oldHTML = deleteAction[0].outerHTML;
- var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
- var files = tr.attr('data-file');
- deleteAction[0].outerHTML = newHTML;
- disableActions();
- $.post(OC.filePath('files_trashbin','ajax','delete.php'),
- {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
- function(result){
+ $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'),
+ {files: fileslist, dirlisting: dirlisting},
+ function(result) {
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
row.parentNode.removeChild(row);
@@ -50,106 +89,79 @@ $(document).ready(function() {
}
enableActions();
FileList.updateFileSummary();
- });
-
- });
-
- // Sets the select_all checkbox behaviour :
- $('#select_all').click(function() {
- if($(this).attr('checked')){
- // Check all
- $('td.filename input:checkbox').attr('checked', true);
- $('td.filename input:checkbox').parent().parent().addClass('selected');
- }else{
- // Uncheck all
- $('td.filename input:checkbox').attr('checked', false);
- $('td.filename input:checkbox').parent().parent().removeClass('selected');
- }
- processSelection();
- });
-
- $('td.filename input:checkbox').live('change',function(event) {
- if (event.shiftKey) {
- var last = $(lastChecked).parent().parent().prevAll().length;
- var first = $(this).parent().parent().prevAll().length;
- var start = Math.min(first, last);
- var end = Math.max(first, last);
- var rows = $(this).parent().parent().parent().children('tr');
- for (var i = start; i < end; i++) {
- $(rows).each(function(index) {
- if (index === i) {
- var checkbox = $(this).children().children('input:checkbox');
- $(checkbox).attr('checked', 'checked');
- $(checkbox).parent().parent().addClass('selected');
- }
- });
+ FileList.updateEmptyContent();
}
- }
- var selectedCount=$('td.filename input:checkbox:checked').length;
- $(this).parent().parent().toggleClass('selected');
- if(!$(this).attr('checked')){
- $('#select_all').attr('checked',false);
- }else{
- if(selectedCount==$('td.filename input:checkbox').length){
- $('#select_all').attr('checked',true);
- }
- }
- processSelection();
- });
+ );
+ });
- $('.undelete').click('click',function(event) {
- event.preventDefault();
- var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
- var files=getSelectedFiles('file');
- var fileslist = JSON.stringify(files);
- var dirlisting=getSelectedFiles('dirlisting')[0];
- disableActions();
- for (var i=0; i<files.length; i++) {
- var undeleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date");
- undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner;
+ $('.delete').click('click', function(event) {
+ event.preventDefault();
+ var allFiles = $('#select_all').is(':checked');
+ var files = [];
+ var params = {};
+ if (allFiles) {
+ params = {
+ allfiles: true,
+ dir: $('#dir').val()
+ };
+ }
+ else {
+ files = getSelectedFiles('file');
+ params = {
+ files: JSON.stringify(files),
+ dirlisting: getSelectedFiles('dirlisting')[0]
+ };
+ };
+
+ disableActions();
+ if (allFiles) {
+ FileList.showMask();
+ }
+ else {
+ for (var i = 0; i < files.length; i++) {
+ var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
}
+ }
- $.post(OC.filePath('files_trashbin','ajax','undelete.php'),
- {files:fileslist, dirlisting:dirlisting},
- function(result){
+ $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'),
+ params,
+ function(result) {
+ if (allFiles) {
+ FileList.hideMask();
+ // simply remove all files
+ $('#fileList').empty();
+ }
+ else {
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
row.parentNode.removeChild(row);
}
- if (result.status !== 'success') {
- OC.dialogs.alert(result.data.message, t('core', 'Error'));
- }
- enableActions();
- });
- });
+ }
+ if (result.status !== 'success') {
+ OC.dialogs.alert(result.data.message, t('core', 'Error'));
+ }
+ enableActions();
+ FileList.updateFileSummary();
+ FileList.updateEmptyContent();
+ }
+ );
- $('.delete').click('click',function(event) {
- event.preventDefault();
- console.log("delete selected");
- var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'Delete permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
- var files=getSelectedFiles('file');
- var fileslist = JSON.stringify(files);
- var dirlisting=getSelectedFiles('dirlisting')[0];
+ });
- disableActions();
- for (var i=0; i<files.length; i++) {
- var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date");
- deleteAction[0].innerHTML = deleteAction[0].innerHTML+spinner;
+ $('#fileList').on('click', 'td.filename input', function() {
+ var checkbox = $(this).parent().children('input:checkbox');
+ $(checkbox).parent().parent().toggleClass('selected');
+ if ($(checkbox).is(':checked')) {
+ var selectedCount = $('td.filename input:checkbox:checked').length;
+ if (selectedCount === $('td.filename input:checkbox').length) {
+ $('#select_all').prop('checked', true);
}
-
- $.post(OC.filePath('files_trashbin','ajax','delete.php'),
- {files:fileslist, dirlisting:dirlisting},
- function(result){
- for (var i = 0; i < result.data.success.length; i++) {
- var row = document.getElementById(result.data.success[i].filename);
- row.parentNode.removeChild(row);
- }
- if (result.status !== 'success') {
- OC.dialogs.alert(result.data.message, t('core', 'Error'));
- }
- enableActions();
- });
- });
+ } else {
+ $('#select_all').prop('checked',false);
+ }
+ procesSelection();
+ });
$('#fileList').on('click', 'td.filename a', function(event) {
var mime = $(this).parent().parent().data('mime');
@@ -157,7 +169,7 @@ $(document).ready(function() {
event.preventDefault();
}
var filename = $(this).parent().parent().attr('data-file');
- var tr = $('tr').filterAttr('data-file',filename);
+ var tr = FileList.findFileEl(filename);
var renaming = tr.data('renaming');
if(!renaming && !FileList.isLoading(filename)){
if(mime.substr(0, 5) === 'text/'){ //no texteditor for now
@@ -182,34 +194,6 @@ $(document).ready(function() {
};
});
-function processSelection(){
- var selected=getSelectedFiles();
- var selectedFiles=selected.filter(function(el){return el.type === 'file'});
- var selectedFolders=selected.filter(function(el){return el.type === 'dir'});
- if(selectedFiles.length === 0 && selectedFolders.length === 0) {
- $('#headerName>span.name').text(t('files','Name'));
- $('#modified').text(t('files','Deleted'));
- $('table').removeClass('multiselect');
- $('.selectedActions').hide();
- }
- else {
- $('.selectedActions').show();
- var selection='';
- if(selectedFolders.length>0){
- selection += n('files', '%n folder', '%n folders', selectedFolders.length);
- if(selectedFiles.length>0){
- selection+=' & ';
- }
- }
- if(selectedFiles.length>0){
- selection += n('files', '%n file', '%n files', selectedFiles.length);
- }
- $('#headerName>span.name').text(selection);
- $('#modified').text('');
- $('table').addClass('multiselect');
- }
-}
-
/**
* @brief get a list of selected files
* @param string property (option) the property of the file requested
@@ -225,7 +209,7 @@ function getSelectedFiles(property){
elements.each(function(i,element){
var file={
name:$(element).attr('data-filename'),
- file:$(element).attr('data-file'),
+ file:$('#dir').val() + "/" + $(element).attr('data-file'),
timestamp:$(element).attr('data-timestamp'),
type:$(element).attr('data-type'),
dirlisting:$(element).attr('data-dirlisting')
@@ -252,9 +236,4 @@ function disableActions() {
$(".action").css("display", "none");
$(":input:checkbox").css("display", "none");
}
-function onClickBreadcrumb(e){
- var $el = $(e.target).closest('.crumb');
- e.preventDefault();
- FileList.changeDirectory(decodeURIComponent($el.data('dir')));
-}