getting close to having a working email to discussion system
This commit is contained in:
parent
2100a3c992
commit
08d0efe060
3 changed files with 50 additions and 0 deletions
|
|
@ -191,6 +191,16 @@ sub updateCs {
|
||||||
$session->db->write("alter table Collaboration add column mailPrefix varchar(255)");
|
$session->db->write("alter table Collaboration add column mailPrefix varchar(255)");
|
||||||
$session->db->write("alter table Collaboration add column getMail int not null default 0");
|
$session->db->write("alter table Collaboration add column getMail int not null default 0");
|
||||||
$session->db->write("alter table Collaboration add column getMailInterval int not null default 300");
|
$session->db->write("alter table Collaboration add column getMailInterval int not null default 300");
|
||||||
|
$session->db->write("alter table Collaboration add column getMailCronId varchar(22) binary");
|
||||||
|
my $workflow = WebGUI::Workflow->create($session, {
|
||||||
|
isSerial=>1,
|
||||||
|
type=>"WebGUI::Asset::Wobject::Collaboration",
|
||||||
|
enabled=>1,
|
||||||
|
description=>"Retrieves mail from a POP3 account for the given Collaboration System.",
|
||||||
|
title=>"Get CS Mail"
|
||||||
|
}, "csworkflow000000000001");
|
||||||
|
my $activity = $workflow->addActivity("WebGUI::Workflow::Activity::GetCsMail","csactivity000000000001");
|
||||||
|
$activity->set("title","Get the mail");
|
||||||
}
|
}
|
||||||
|
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ use WebGUI::International;
|
||||||
use WebGUI::Paginator;
|
use WebGUI::Paginator;
|
||||||
use WebGUI::Utility;
|
use WebGUI::Utility;
|
||||||
use WebGUI::Asset::Wobject;
|
use WebGUI::Asset::Wobject;
|
||||||
|
use WebGUI::Workflow::Cron;
|
||||||
|
|
||||||
our @ISA = qw(WebGUI::Asset::Wobject);
|
our @ISA = qw(WebGUI::Asset::Wobject);
|
||||||
|
|
||||||
|
|
@ -195,6 +196,33 @@ sub canView {
|
||||||
return $self->SUPER::canView || $self->canPost;
|
return $self->SUPER::canView || $self->canPost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
sub commit {
|
||||||
|
my $self = shift;
|
||||||
|
$self->SUPER::commit;
|
||||||
|
my $cron = undef;
|
||||||
|
if ($self->get("getMailCronId")) {
|
||||||
|
$cron = WebGUI::Workflow::Cron->new($self->session, $self->get("getMailCronId"));
|
||||||
|
}
|
||||||
|
my $i18n = WebGUI::International->new($self->session, "Asset_Collaboration");
|
||||||
|
unless (defined $cron) {
|
||||||
|
$cron = WebGUI::Workflow::Cron->create($self->session, {
|
||||||
|
title=>$self->getTitle." ".$i18n->get("mail"),
|
||||||
|
minuteOfHour=>"*/".($self->get("getMailInterval")/60),
|
||||||
|
className=>"WebGUI::Asset::Wobject::Collaboration",
|
||||||
|
methodName=>"new",
|
||||||
|
parameters=>$self->getId,
|
||||||
|
workflowId=>"csworkflow000000000001"
|
||||||
|
});
|
||||||
|
$self->update({getMailCronId=>$cron->getId});
|
||||||
|
}
|
||||||
|
if ($self->get("getMail")) {
|
||||||
|
$cron->set({enabled=>1,title=>$self->getTitle." ".$i18n->get("mail"), minuteOfHour=>"*/".($self->get("getMailInterval")/60)});
|
||||||
|
} else {
|
||||||
|
$cron->set({enabled=>0,title=>$self->getTitle." ".$i18n->get("mail"), minuteOfHour=>"*/".($self->get("getMailInterval")/60)});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
sub createSubscriptionGroup {
|
sub createSubscriptionGroup {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
@ -277,6 +305,11 @@ sub definition {
|
||||||
fieldType=>"email",
|
fieldType=>"email",
|
||||||
defaultValue=>undef
|
defaultValue=>undef
|
||||||
},
|
},
|
||||||
|
getMailCronId=>{
|
||||||
|
fieldType=>"hidden",
|
||||||
|
defaultValue=>undef,
|
||||||
|
noFormPost=>1
|
||||||
|
},
|
||||||
getMail=>{
|
getMail=>{
|
||||||
fieldType=>"yesNo",
|
fieldType=>"yesNo",
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
|
|
@ -895,6 +928,10 @@ sub purge {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $group = WebGUI::Group->new($self->session, $self->get("subscriptionGroupId"));
|
my $group = WebGUI::Group->new($self->session, $self->get("subscriptionGroupId"));
|
||||||
$group->delete;
|
$group->delete;
|
||||||
|
if ($self->get("getMailCronId")) {
|
||||||
|
my $cron = WebGUI::Workflow::Cron->new($self->session, $self->get("getMailCronId"));
|
||||||
|
$cron->delete if defined $cron;
|
||||||
|
}
|
||||||
$self->SUPER::purge;
|
$self->SUPER::purge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,10 @@ package WebGUI::Workflow::Activity::GetCsMail;
|
||||||
use strict;
|
use strict;
|
||||||
use base 'WebGUI::Workflow::Activity';
|
use base 'WebGUI::Workflow::Activity';
|
||||||
use WebGUI::Mail::Get;
|
use WebGUI::Mail::Get;
|
||||||
|
use WebGUI::Mail::Send;
|
||||||
use WebGUI::Asset;
|
use WebGUI::Asset;
|
||||||
|
use WebGUI::International;
|
||||||
|
use WebGUI::User;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue