]> source.dussan.org Git - nextcloud-server.git/commitdiff
allow to look into deleted directories
authorBjörn Schießle <schiessle@owncloud.com>
Mon, 21 Jan 2013 12:07:43 +0000 (13:07 +0100)
committerBjörn Schießle <schiessle@owncloud.com>
Mon, 21 Jan 2013 12:07:43 +0000 (13:07 +0100)
apps/files/js/fileactions.js
apps/files_trashbin/index.php
apps/files_trashbin/templates/part.list.php

index 093b6204c3e729d6b3d1da679ee9b5c900f498dc..d20f9e835b0d4a87e1a2cb1128085d8656dc3008 100644 (file)
@@ -189,6 +189,7 @@ FileActions.register('all', 'Rename', OC.PERMISSION_UPDATE, function () {
        FileList.rename(filename);
 });
 
+
 FileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename) {
        window.location = OC.linkTo('files', 'index.php') + '?dir=' + encodeURIComponent($('#dir').val()).replace(/%2F/g, '/') + '/' + encodeURIComponent(filename);
 });
index 28414cc1ce903bf17140583d413198271d59678b..2925223197b0e0d76ed29519ab35ab7232713278 100644 (file)
@@ -14,8 +14,37 @@ $view = new OC_Filesystemview('/'.$user.'/files_trashbin');
 OCP\Util::addStyle('files', 'files');
 OCP\Util::addScript('files', 'filelist');
 
-$query = \OC_DB::prepare('SELECT id,location,timestamp,type,mime FROM *PREFIX*files_trash WHERE user=?');
-$result = $query->execute(array($user))->fetchAll();
+$dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
+
+if ($dir) {
+       $dirlisting = true;
+       $view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/files_trashbin');\r
+       $fullpath = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath($dir);
+       $dirContent = opendir($fullpath);
+       $i = 0;
+       while($entryName = readdir($dirContent)) {
+               if ( $entryName != '.' && $entryName != '..' ) {
+                       $pos = strpos($dir.'/', '/', 1);
+                       $tmp = substr($dir, 0, $pos);
+                       $pos = strrpos($tmp, '.d');
+                       $timestamp = substr($tmp,$pos+2);
+                       error_log("timestamp: $timestamp");
+                       $result[] = array(
+                                       'id' => $entryName,
+                                       'timestamp' => $timestamp,
+                                       'mime' =>  $view->getMimeType($dir.'/'.$entryName),
+                                       'type' => $view->is_dir($dir.'/'.$entryName) ? 'dir' : 'file',
+                                       'location' => $dir,
+                                       );
+               }\r
+       }
+       closedir($fullpath);
+               
+} else {
+       $dirlisting = false;
+       $query = \OC_DB::prepare('SELECT id,location,timestamp,type,mime FROM *PREFIX*files_trash WHERE user=?');
+       $result = $query->execute(array($user))->fetchAll();
+}
 
 $files = array();
 foreach ($result as $r) {
@@ -38,15 +67,26 @@ foreach ($result as $r) {
        $files[] = $i;
 }
 
+// Make breadcrumb\r
+$breadcrumb = array('dir' => '', 'name' => 'Trash');\r
+$pathtohere = '';\r
+foreach (explode('/', $dir) as $i) {\r
+       if ($i != '') {\r
+               $pathtohere .= '/' . $i;\r
+               $breadcrumb[] = array('dir' => $pathtohere, 'name' => $i);\r
+       }\r
+}
+
 $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');\r
 $breadcrumbNav->assign('breadcrumb', array(array('dir' => '', 'name' => 'Trash')), false);\r
 $breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files_trashbin', 'index.php') . '?dir=', false);
 
 $list = new OCP\Template('files_trashbin', 'part.list', '');
 $list->assign('files', $files, false);
-$list->assign('baseURL', OCP\Util::linkTo('files_trashbin', 'index.php'). '?dir=', false);\r
-$list->assign('downloadURL', OCP\Util::linkTo('files_trashbin', 'download.php') . '?file=', false);
+$list->assign('baseURL', OCP\Util::linkTo('files_trashbin', 'index.php'). '?dir='.$dir, false);\r
+$list->assign('downloadURL', OCP\Util::linkTo('files_trashbin', 'download.php') . '?file='.$dir, false);
 $list->assign('disableSharing', true);
+$list->assign('dirlisting', $dirlisting);
 $list->assign('disableDownloadActions', true);
 $tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false);
 $tmpl->assign('fileList', $list->fetchPage(), false);
index c9a641a2e23fcdd19ee592d03829f8653cbab912..72359da299c5a63c7259c556b49298255ba3bdda 100644 (file)
                        >
                <?php if(!isset($_['readonly']) || !$_['readonly']): ?><input type="checkbox" /><?php endif; ?>
                <?php if($file['type'] == 'dir'): ?>
-                       <a class="name" href="<?php $_['baseURL'].'/'.$name.'.d'.$file['timestamp']; ?>)" title="">
+                       <?php if( $_['dirlisting'] ): ?>
+                               <a class="name" href="<?php echo $_['baseURL'].'/'.$name; ?>" title="">
+                       <?php else: ?>
+                               <a class="name" href="<?php echo $_['baseURL'].'/'.$name.'.d'.$file['timestamp']; ?>" title="">
+                       <?php endif; ?>
                <?php else: ?>
-                       <a class="name" href="<?php echo $_['downloadURL'].'/'.$name.'.d'.$file['timestamp']; ?>" title="">
+                       <?php if( $_['dirlisting'] ): ?>
+                               <a class="name" href="<?php echo $_['downloadURL'].'/'.$name; ?>" title="">
+                       <?php else: ?>
+                               <a class="name" href="<?php echo $_['downloadURL'].'/'.$name.'.d'.$file['timestamp'];?>" title="">
+                       <?php endif; ?>
                <?php endif; ?>
                        <span class="nametext">
                                <?php if($file['type'] == 'dir'):?>
@@ -69,3 +77,4 @@
                </td>
        </tr>
 <?php endforeach;
\ No newline at end of file