migrate delete expired trash to workflow

This commit is contained in:
JT Smith 2006-03-02 21:15:20 +00:00
parent 346de5ff0b
commit 11a2c5d099
5 changed files with 116 additions and 43 deletions

View file

@ -0,0 +1,92 @@
package WebGUI::Workflow::Activity::PurgeOldTrash;
=head1 LEGAL
-------------------------------------------------------------------
WebGUI is Copyright 2001-2006 Plain Black Corporation.
-------------------------------------------------------------------
Please read the legal notices (docs/legal.txt) and the license
(docs/license.txt) that came with this distribution before using
this software.
-------------------------------------------------------------------
http://www.plainblack.com info@plainblack.com
-------------------------------------------------------------------
=cut
use strict;
use base 'WebGUI::Workflow::Activity';
use WebGUI::Asset;
=head1 NAME
Package WebGUI::Workflow::Activity::PurgeOldTrash
=head1 DESCRIPTION
Purges trash that's been in the system for a while.
=head1 SYNOPSIS
See WebGUI::Workflow::Activity for details on how to use any activity.
=head1 METHODS
These methods are available from this class:
=cut
#-------------------------------------------------------------------
=head2 definition ( session, definition )
See WebGUI::Workflow::Activity::defintion() for details.
=cut
sub definition {
my $class = shift;
my $session = shift;
my $definition = shift;
my $i18n = WebGUI::International->new($session, "Asset");
push(@{$definition}, {
name=>$i18n->get("purge old trash"),
properties=> {
purgeAfter=>{
fieldType=>"interval",
defaultValue=>60*60*24*30,
label=>$i18n->get("purge trash after"),
hoverHelp=>$i18n->get("purge trash after help")
}
}
});
return $class->SUPER::definition($session,$definition);
}
#-------------------------------------------------------------------
=head2 execute ( )
See WebGUI::Workflow::Activity::execute() for details.
=cut
sub execute {
my $self = shift;
my $sth = $self->session->db->read("select assetId,className from asset where state='trash' and stateChanged < ?", [time() - $self->get("purgeAfter")]);
while (my ($id, $class) = $sth->array) {
my $asset = WebGUI::Asset->new($self->session, $id,$class);
$asset->purge if (defined $asset);
}
return 1;
}
1;

View file

@ -6,6 +6,25 @@ our $I18N = {
lastUpdated => 0,
context => q|a suffix for a measurement of time, like "3 seconds ago"|
},
'purge old trash' => {
message => q|Purge Old Trash|,
lastUpdated => 0,
context => q|title of the purge trash workflow activity|
},
'purge trash after' => {
message => q|Purge Old Trash After|,
lastUpdated => 0,
context => q|the label used in the purge old trash workflow activity|
},
'purge trash after help' => {
message => q|How long should an asset stay in the trash before it's considered old enough to purge? Note that when it get's purged all it's revisions and descendants will be purged as well.|,
lastUpdated => 0,
context => q|the hover help for the purge trash after field|
},
'purge old asset revisions' => {
message => q|Purge Old Asset Revisions|,
lastUpdated => 0,