Skip to content

Add ability to delete assets to trash instead of immediate #11

@WilliamIsted

Description

@WilliamIsted
  • Add setting for "Move to trash before deleting".
  • Add check for trash setting to deletion event.
  • Add $event->sender->keepFileOnDelete = true; if trash is enabled.
  • Add notice about garbage collection. Include reference to softdeleteduration.
  • Add label to show how long assets will be kept for by general config. e.g. Trash will be automatically emptied after 30 days.

// Listen for asset deletion
Event::on(
Asset::class,
Asset::EVENT_BEFORE_DELETE,
function(ModelEvent $event) {
$event->sender->keepFileOnDelete = true;
// Only consider deletion if ModelEvent, and is not a typical local volume
if ( $event instanceof ModelEvent && !$event->sender->getVolume()->getFs() instanceof craft\fs\Local ) {
$canDelete = false;
if ( array_key_exists( $this->env, $this->environments ) ) {
if ( $this->environments[ $this->env ][ $this->permissionsTable->delete ] ) {
$canDelete = true;
}
}
if ( !$canDelete ) {
$event->isValid = false;
throw new \yii\base\Exception('Assets cannot be deleted in this environment.');
}
}
}
);

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions