tell the user when the files are being scanned

This commit is contained in:
Robin Appelman 2011-11-10 16:40:09 +01:00
parent 5a6aba1e11
commit 524e3686a0
8 changed files with 51 additions and 29 deletions

View File

@ -172,18 +172,9 @@ class OC_Filestorage_Shared extends OC_Filestorage {
// TODO fill in other components of array
public function stat($path) {
if ($path == "" || $path == "/") {
$stat["dev"] = "";
$stat["ino"] = "";
$stat["mode"] = "";
$stat["nlink"] = "";
$stat["uid"] = "";
$stat["gid"] = "";
$stat["rdev"] = "";
$stat["size"] = $this->filesize($path);
$stat["mtime"] = $this->filemtime($path);
$stat["ctime"] = $this->filectime($path);
$stat["blksize"] = "";
$stat["blocks"] = "";
return $stat;
} else {
$source = $this->getSource($path);
@ -220,18 +211,7 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
public function getFolderSize($path) {
// Shared folder sizes are cached separately from the source folder sizes because folders can have different names
$path = rtrim($path, "/");
$path = ltrim($path, "/");
$path = preg_replace('{(/)\1+}', "/", $path);
$dbpath = rtrim($this->datadir.$path, "/");
// $query = OC_DB::prepare("SELECT size FROM *PREFIX*foldersize WHERE path = ?");
// $size = $query->execute(array($dbpath))->fetchAll();
if (count($size) > 0) {
return $size[0]['size'];
} else {
return $this->calculateFolderSize($path);
}
return 0; //depricated
}
private function calculateFolderSize($path) {
@ -321,8 +301,8 @@ class OC_Filestorage_Shared extends OC_Filestorage {
$ctime = $tempctime;
}
}
return $ctime;
}
return $ctime;
} else {
$source = $this->getSource($path);
if ($source) {
@ -342,8 +322,8 @@ class OC_Filestorage_Shared extends OC_Filestorage {
$mtime = $tempmtime;
}
}
return $mtime;
}
return $mtime;
} else {
$source = $this->getSource($path);
if ($source) {
@ -482,6 +462,9 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
public function getMimeType($path) {
if ($path2 == "" || $path2 == "/") {
return 'httpd/unix-directory';
}
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);

16
files/ajax/scan.php Normal file
View File

@ -0,0 +1,16 @@
<?php
require_once '../../lib/base.php';
$force=isset($_GET['force']) and $_GET['force']=='true';
$checkOnly=isset($_GET['checkonly']) and $_GET['checkonly']=='true';
//create the file cache if necesary
if($force or !OC_FileCache::inCache('')){
if(!$checkOnly){
OC_FileCache::scan('');
}
OC_JSON::success(array("data" => array( "done" => true)));
}else{
OC_JSON::success(array("data" => array( "done" => false)));
}

View File

@ -74,3 +74,5 @@ table thead.fixed { height:2em; }
/* add breadcrumb divider to the File item in navigation panel */
#navigation>ul>li:first-child { background:url('../../core/img/breadcrumb-start.svg') no-repeat 12.5em 0px; width:12.5em; padding-right:1em; position:fixed; }
#navigation>ul>li:first-child+li { padding-top:2.9em; }
#scanning-message{ top:40%; left:40%; position:absolute; display:none }

View File

@ -334,8 +334,27 @@ $(document).ready(function() {
$('#new>a').click();
});
});
//check if we need to scan the filesystem
$.get(OC.filePath('files','ajax','scan.php'),{checkonly:'true'}, function(response) {
if(response.data.done){
scanFiles();
}
}, "json");
});
function scanFiles(force){
force=!!force; //cast to bool
$('#scanning-message').show();
$.get(OC.filePath('files','ajax','scan.php'), function(response) {
if(response && response.data && response.data.done){
window.location.reload();
}else{
alert('error')
}
}, "json");
}
function boolOperationFinished(data, callback) {
result = jQuery.parseJSON(data.responseText);
if(result.status == 'success'){

View File

@ -63,3 +63,8 @@ if (isset($_['files'])) {
<?php echo $l->t('The files you are trying to upload exceed the maximum size for file uploads on this server.');?>
</p>
</div>
<div id="scanning-message">
<p>
<?php echo $l->t('Files are being scanned, please wait.');?>
</p>
</div>

View File

@ -70,6 +70,8 @@ class OC_FileCache{
}
$mimePart=dirname($data['mimetype']);
$query=OC_DB::prepare('INSERT INTO *PREFIX*fscache(parent, name, path, size, mtime, ctime, mimetype, mimepart) VALUES(?,?,?,?,?,?,?,?)');
// echo $path;
// print_r($data);
$query->execute(array($parent,basename($path),$path,$data['size'],$data['mtime'],$data['ctime'],$data['mimetype'],$mimePart));
}

View File

@ -49,11 +49,6 @@ class OC_Util {
$quotaProxy=new OC_FileProxy_Quota();
OC_FileProxy::register($quotaProxy);
self::$fsSetup=true;
//create the file cache if necesary
if(!OC_FileCache::inCache('')){
OC_FileCache::scan('');
}
}
}

BIN
owncloud.db.filesystem Normal file

Binary file not shown.