mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Merge branch '5' into 6
This commit is contained in:
commit
2c5612bd57
@ -5,6 +5,7 @@ namespace SilverStripe\CMS\BatchActions;
|
||||
use SilverStripe\ORM\SS_List;
|
||||
use SilverStripe\Admin\CMSBatchAction;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Dev\Deprecation;
|
||||
|
||||
/**
|
||||
* Delete items batch action.
|
||||
@ -27,6 +28,7 @@ class CMSBatchAction_Archive extends CMSBatchAction
|
||||
|
||||
public function applicablePages($ids)
|
||||
{
|
||||
return $this->applicablePagesHelper($ids, 'canArchive');
|
||||
// canArchive() is deprecated, not $this->applicablePagesHelper()
|
||||
return Deprecation::withNoReplacement(fn() => $this->applicablePagesHelper($ids, 'canArchive'));
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Core\Environment;
|
||||
use SilverStripe\Core\Flushable;
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\Dev\Deprecation;
|
||||
use SilverStripe\Forms\DateField;
|
||||
use SilverStripe\Forms\DropdownField;
|
||||
use SilverStripe\Forms\FieldGroup;
|
||||
@ -1109,13 +1110,13 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
||||
// Find all ancestors of the provided page
|
||||
$ancestors = $page->getAncestors(true);
|
||||
$ancestors = array_reverse($ancestors->toArray() ?? []);
|
||||
|
||||
|
||||
//turns the title and link of the breadcrumbs into template-friendly variables
|
||||
$params = array_filter([
|
||||
'view' => $this->getRequest()->getVar('view'),
|
||||
'q' => $this->getRequest()->getVar('q')
|
||||
]);
|
||||
|
||||
|
||||
foreach ($ancestors as $ancestor) {
|
||||
// Link back to the list view for the current ancestor
|
||||
$params['ParentID'] = $ancestor->ID;
|
||||
@ -1997,7 +1998,8 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
||||
if (!$record || !$record->exists()) {
|
||||
throw new HTTPResponse_Exception("Bad record ID #$id", 404);
|
||||
}
|
||||
if (!$record->canArchive()) {
|
||||
$canArchive = Deprecation::withNoReplacement(fn() => $record->canArchive());
|
||||
if (!$canArchive) {
|
||||
return Security::permissionFailure();
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ use SilverStripe\Core\Manifest\ModuleResource;
|
||||
use SilverStripe\Core\Manifest\ModuleResourceLoader;
|
||||
use SilverStripe\Core\Manifest\VersionProvider;
|
||||
use SilverStripe\Core\Resettable;
|
||||
use SilverStripe\Dev\Deprecation;
|
||||
use SilverStripe\Forms\CheckboxField;
|
||||
use SilverStripe\Forms\CompositeField;
|
||||
use SilverStripe\Forms\DropdownField;
|
||||
@ -2592,18 +2593,21 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
||||
}
|
||||
|
||||
// If a page is on any stage it can be archived
|
||||
if (($isOnDraft || $isPublished) && $this->canArchive()) {
|
||||
$title = $isPublished
|
||||
? _t('SilverStripe\\CMS\\Controllers\\CMSMain.UNPUBLISH_AND_ARCHIVE', 'Unpublish and archive')
|
||||
: _t('SilverStripe\\CMS\\Controllers\\CMSMain.ARCHIVE', 'Archive');
|
||||
$moreOptions->push(
|
||||
FormAction::create('archive', $title)
|
||||
->addExtraClass('delete btn btn-secondary' . ($this->isHomePage() ? ' homepage-warning' : ''))
|
||||
->setDescription(_t(
|
||||
'SilverStripe\\CMS\\Model\\SiteTree.BUTTONDELETEDESC',
|
||||
'Remove from draft/live and send to archive'
|
||||
))
|
||||
);
|
||||
if (($isOnDraft || $isPublished)) {
|
||||
$canArchive = Deprecation::withNoReplacement(fn() => $this->canArchive());
|
||||
if ($canArchive) {
|
||||
$title = $isPublished
|
||||
? _t('SilverStripe\\CMS\\Controllers\\CMSMain.UNPUBLISH_AND_ARCHIVE', 'Unpublish and archive')
|
||||
: _t('SilverStripe\\CMS\\Controllers\\CMSMain.ARCHIVE', 'Archive');
|
||||
$moreOptions->push(
|
||||
FormAction::create('archive', $title)
|
||||
->addExtraClass('delete btn btn-secondary' . ($this->isHomePage() ? ' homepage-warning' : ''))
|
||||
->setDescription(_t(
|
||||
'SilverStripe\\CMS\\Model\\SiteTree.BUTTONDELETEDESC',
|
||||
'Remove from draft/live and send to archive'
|
||||
))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// "save", supports an alternate state that is still clickable, but notifies the user that the action is not needed.
|
||||
|
Loading…
Reference in New Issue
Block a user