mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
ENHANCEMENT: Added manual Filesystem::sync() button to improve load time of admin/assets area.
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@80783 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
4854dddc0d
commit
9bc3f5fe2a
@ -98,12 +98,6 @@ JS
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function index() {
|
|
||||||
Filesystem::sync();
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the content of the upload iframe. The form is specified by a template.
|
* Show the content of the upload iframe. The form is specified by a template.
|
||||||
*/
|
*/
|
||||||
@ -437,7 +431,7 @@ JS;
|
|||||||
public function SiteTreeAsUL() {
|
public function SiteTreeAsUL() {
|
||||||
$obj = singleton('Folder');
|
$obj = singleton('Folder');
|
||||||
$obj->setMarkingFilter('ClassName', ClassInfo::subclassesFor('Folder'));
|
$obj->setMarkingFilter('ClassName', ClassInfo::subclassesFor('Folder'));
|
||||||
$obj->markPartialTree();
|
$obj->markPartialTree(30, null, "ChildFolders");
|
||||||
|
|
||||||
if($p = $this->currentPage()) $obj->markToExpose($p);
|
if($p = $this->currentPage()) $obj->markToExpose($p);
|
||||||
|
|
||||||
@ -445,9 +439,10 @@ JS;
|
|||||||
$siteTreeList = $obj->getChildrenAsUL(
|
$siteTreeList = $obj->getChildrenAsUL(
|
||||||
'',
|
'',
|
||||||
'"<li id=\"record-$child->ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' .
|
'"<li id=\"record-$child->ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' .
|
||||||
'"<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildren() ? " contents" : "") . "\" >" . $child->TreeTitle() . "</a>" ',
|
'"<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildFolders() ? " contents" : "") . "\" >" . $child->TreeTitle() . "</a>" ',
|
||||||
$this,
|
$this,
|
||||||
true
|
true,
|
||||||
|
"ChildFolders"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Wrap the root if needs be
|
// Wrap the root if needs be
|
||||||
|
@ -62,7 +62,7 @@ class AssetTableField extends ComplexTableField {
|
|||||||
|
|
||||||
while($nextIDSet) {
|
while($nextIDSet) {
|
||||||
// TO DO: In 2.4 this should be refactored to use the new data mapper.
|
// TO DO: In 2.4 this should be refactored to use the new data mapper.
|
||||||
$nextIDSet = DB::query("SELECT ID FROM `File` WHERE ParentID IN ("
|
$nextIDSet = DB::query("SELECT ID FROM \"File\" WHERE ParentID IN ("
|
||||||
. implode(", " , $nextIDSet) . ") AND ClassName IN ($folderClasses)")->column();
|
. implode(", " , $nextIDSet) . ") AND ClassName IN ($folderClasses)")->column();
|
||||||
if($nextIDSet) $folderIDs = array_merge($folderIDs, $nextIDSet);
|
if($nextIDSet) $folderIDs = array_merge($folderIDs, $nextIDSet);
|
||||||
}
|
}
|
||||||
|
@ -321,6 +321,35 @@ addfolder.prototype = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Look for new files (FilesystemSync) action
|
||||||
|
*/
|
||||||
|
FilesystemSyncClass = Class.create();
|
||||||
|
FilesystemSyncClass.applyTo('#filesystemsync');
|
||||||
|
FilesystemSyncClass.prototype = {
|
||||||
|
initialize: function () {
|
||||||
|
this.getElementsByTagName('button')[0].onclick = returnFalse;
|
||||||
|
},
|
||||||
|
|
||||||
|
onclick : function() {
|
||||||
|
statusMessage('Looking for new files');
|
||||||
|
var options = {
|
||||||
|
method: 'get',
|
||||||
|
onSuccess: function(t) {
|
||||||
|
eval(t.responseText);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
new Ajax.Request('dev/tasks/FilesystemSyncTask',{
|
||||||
|
onSuccess: function(t) {
|
||||||
|
statusMessage("I have finished looking for files", "good");
|
||||||
|
},
|
||||||
|
onFailure: function(t) {
|
||||||
|
errorMessage("There was an error looking for new files");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete folder action
|
* Delete folder action
|
||||||
|
14
tasks/FilesystemSyncTask.php
Normal file
14
tasks/FilesystemSyncTask.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class FilesystemSyncTask extends BuildTask {
|
||||||
|
protected $title = "Sync Files & Images assets";
|
||||||
|
|
||||||
|
protected $description = "The Files & Images system in SilverStripe maintains its own database
|
||||||
|
of the contents of the assets/ folder. This action will update that database, and
|
||||||
|
should be called whenever files are added to the assets/ folder from outside
|
||||||
|
SilverStripe, for example, if an author uploads files via FTP.";
|
||||||
|
|
||||||
|
function run($request) {
|
||||||
|
Filesystem::sync();
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,11 @@
|
|||||||
<ul id="TreeActions">
|
<ul id="TreeActions">
|
||||||
<li class="action" id="addpage"><button><% _t('CREATE','Create') %></button></li>
|
<li class="action" id="addpage"><button><% _t('CREATE','Create') %></button></li>
|
||||||
<li class="action" id="deletepage"><button><% _t('DELETE','Delete') %></button></li>
|
<li class="action" id="deletepage"><button><% _t('DELETE','Delete') %></button></li>
|
||||||
|
<li class="action" id="filesystemsync">
|
||||||
|
<button title="<% _t('FILESYSTEMSYNC_DESC', 'SilverStripe maintains its own database of the files & images stored in your assets/ folder. Click this button to update that database, if files are added to the assets/ folder from outside SilverStripe, for example, if you have uploaded files via FTP.') %>">
|
||||||
|
<% _t('FILESYSTEMSYNC','Look for new files') %>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div style="clear:both;"></div>
|
<div style="clear:both;"></div>
|
||||||
<form class="actionparams" id="addpage_options" style="display: none" action="admin/assets/addfolder">
|
<form class="actionparams" id="addpage_options" style="display: none" action="admin/assets/addfolder">
|
||||||
|
Loading…
Reference in New Issue
Block a user