Fixed storage stats to be based on current directory
Previously, the storage statistics were always for the root dir. This means that the upload button would always show the limit for the root dir, even when uploading to a shared dir or external storage. This fix adds a "dir" argument to getstoragestats.php.
This commit is contained in:
parent
5d9ab6e7ac
commit
31181e4348
|
@ -3,7 +3,13 @@
|
|||
// only need filesystem apps
|
||||
$RUNTIME_APPTYPES = array('filesystem');
|
||||
|
||||
$dir = '/';
|
||||
|
||||
if (isset($_GET['dir'])) {
|
||||
$dir = $_GET['dir'];
|
||||
}
|
||||
|
||||
OCP\JSON::checkLoggedIn();
|
||||
|
||||
// send back json
|
||||
OCP\JSON::success(array('data' => \OCA\Files\Helper::buildFileStorageStatistics('/')));
|
||||
OCP\JSON::success(array('data' => \OCA\Files\Helper::buildFileStorageStatistics($dir)));
|
||||
|
|
|
@ -152,6 +152,9 @@ var FileList={
|
|||
FileActions.display(tr.find('td.filename'), true);
|
||||
return tr;
|
||||
},
|
||||
getCurrentDirectory: function(){
|
||||
return $('#dir').val() || '/';
|
||||
},
|
||||
/**
|
||||
* @brief Changes the current directory and reload the file list.
|
||||
* @param targetDir target directory (non URL encoded)
|
||||
|
@ -224,6 +227,10 @@ var FileList={
|
|||
return;
|
||||
}
|
||||
|
||||
// TODO: should rather return upload file size through
|
||||
// the files list ajax call
|
||||
Files.updateStorageStatistics(true);
|
||||
|
||||
if (result.data.permissions) {
|
||||
FileList.setDirectoryPermissions(result.data.permissions);
|
||||
}
|
||||
|
|
|
@ -2,16 +2,23 @@ Files={
|
|||
// file space size sync
|
||||
_updateStorageStatistics: function() {
|
||||
Files._updateStorageStatisticsTimeout = null;
|
||||
if (Files.updateStorageStatistics.running){
|
||||
return;
|
||||
var currentDir = FileList.getCurrentDirectory(),
|
||||
state = Files.updateStorageStatistics;
|
||||
if (state.dir){
|
||||
if (state.dir === currentDir) {
|
||||
return;
|
||||
}
|
||||
// cancel previous call, as it was for another dir
|
||||
state.call.abort();
|
||||
}
|
||||
Files.updateStorageStatistics.running = true;
|
||||
$.getJSON(OC.filePath('files','ajax','getstoragestats.php'),function(response) {
|
||||
Files.updateStorageStatistics.running = false;
|
||||
state.dir = currentDir;
|
||||
state.call = $.getJSON(OC.filePath('files','ajax','getstoragestats.php') + '?dir=' + encodeURIComponent(currentDir),function(response) {
|
||||
state.dir = null;
|
||||
state.call = null;
|
||||
Files.updateMaxUploadFilesize(response);
|
||||
});
|
||||
},
|
||||
updateStorageStatistics: function() {
|
||||
updateStorageStatistics: function(force) {
|
||||
if (!OC.currentUser) {
|
||||
return;
|
||||
}
|
||||
|
@ -20,7 +27,12 @@ Files={
|
|||
if (Files._updateStorageStatisticsTimeout) {
|
||||
clearTimeout(Files._updateStorageStatisticsTimeout);
|
||||
}
|
||||
Files._updateStorageStatisticsTimeout = setTimeout(Files._updateStorageStatistics, 1000);
|
||||
if (force) {
|
||||
Files._updateStorageStatistics();
|
||||
}
|
||||
else {
|
||||
Files._updateStorageStatisticsTimeout = setTimeout(Files._updateStorageStatistics, 250);
|
||||
}
|
||||
},
|
||||
|
||||
updateMaxUploadFilesize:function(response) {
|
||||
|
|
Loading…
Reference in New Issue