summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-08-06 21:28:03 +0000
committerivan <ivan>2010-08-06 21:28:03 +0000
commit732f3ef0612214fa441dc78e71e5aadc584802dd (patch)
tree214609165b9145dd2c5b44a4c025e29d300fe614
parent821f08c9d3cbfb67a54a9f2e667d71787bb22a74 (diff)
communigate phase 3: archive messages, RT#7515
-rw-r--r--FS/FS/Schema.pm8
-rw-r--r--FS/FS/part_export/communigate_pro.pm10
-rw-r--r--FS/FS/svc_acct.pm26
-rw-r--r--FS/FS/svc_domain.pm24
-rwxr-xr-xhttemplate/edit/part_svc.cgi12
5 files changed, 67 insertions, 13 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 4509b096c..e8492ca03 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -1533,7 +1533,8 @@ sub tables_hashref {
'cgp_rpopallowed', 'char', 'NULL', 1, '', '', #RPOPAllowed
'cgp_mailtoall', 'char', 'NULL', 1, '', '', #MailToAll
'cgp_addmailtrailer', 'char', 'NULL', 1, '', '', #AddMailTrailer
- #XXX archive messages, mailing lists
+ 'cgp_archiveafter', 'int', 'NULL', '', '', '', #ArchiveMessagesAfter
+ #XXX mailing lists
#preferences
'cgp_deletemode', 'varchar', 'NULL', $char_d, '', '',#DeleteMode
'cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '',#EmptyTrash
@@ -1543,7 +1544,6 @@ sub tables_hashref {
'cgp_prontoskinname', 'varchar', 'NULL', $char_d, '', '',#ProntoSkinName
'cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '',#SendMDNMode
#mail
-#vacation message, redirect all mail, mail rules
#XXX RPOP settings
],
'primary_key' => 'svcnum',
@@ -1605,7 +1605,7 @@ sub tables_hashref {
'acct_def_cgp_rpopallowed', 'char', 'NULL', 1, '', '',
'acct_def_cgp_mailtoall', 'char', 'NULL', 1, '', '',
'acct_def_cgp_addmailtrailer', 'char', 'NULL', 1, '', '',
- #XXX archive messages
+ 'acct_def_cgp_archiveafter', 'int', 'NULL', '', '', '',
#preferences
'acct_def_cgp_deletemode', 'varchar', 'NULL', $char_d, '', '',
'acct_def_cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '',
@@ -1614,8 +1614,6 @@ sub tables_hashref {
'acct_def_cgp_skinname', 'varchar', 'NULL', $char_d, '', '',
'acct_def_cgp_prontoskinname', 'varchar', 'NULL', $char_d, '', '',
'acct_def_cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '',
- #mail
- #XXX rules, archive rule, spam foldering rule(s)
],
'primary_key' => 'svcnum',
'unique' => [ ],
diff --git a/FS/FS/part_export/communigate_pro.pm b/FS/FS/part_export/communigate_pro.pm
index 2cad24467..3e1213e84 100644
--- a/FS/FS/part_export/communigate_pro.pm
+++ b/FS/FS/part_export/communigate_pro.pm
@@ -85,10 +85,12 @@ sub _export_insert_svc_acct {
'MailToAll' =>($svc_acct->cgp_mailtoall ?'YES':'NO'),
'AddMailTrailer' =>($svc_acct->cgp_addmailtrailer ?'YES':'NO'),
+ 'ArchiveMessagesAfter' => $svc_acct->cgp_archiveafter,
+
map { $quotas{$_} => $svc_acct->$_() }
grep $svc_acct->$_(), keys %quotas
);
- #XXX phase 3: archive messages, mailing lists
+ #XXX phase 3: mailing lists
my @options = ( 'CreateAccount',
'accountName' => $self->export_username($svc_acct),
@@ -194,6 +196,7 @@ sub _export_insert_svc_domain {
'RPOPAllowed' =>($svc_domain->acct_def_cgp_rpopallowed ?'YES':'NO'),
'MailToAll' =>($svc_domain->acct_def_cgp_mailtoall ?'YES':'NO'),
'AddMailTrailer' =>($svc_domain->acct_def_cgp_addmailtrailer ?'YES':'NO'),
+ 'ArchiveMessagesAfter' => $svc_domain->acct_def_cgp_archiveafter,
);
warn "WARNING: error queueing SetAccountDefaults job: $def_err"
if $def_err;
@@ -318,8 +321,10 @@ sub _export_replace_svc_acct {
if $old->cgp_mailtoall ne $new->cgp_mailtoall;
$settings{'AddMailTrailer'} = ( $new->cgp_addmailtrailer ? 'YES':'NO' )
if $old->cgp_addmailtrailer ne $new->cgp_addmailtrailer;
+ $settings{'ArchiveMessagesAfter'} = $new->cgp_archiveafter
+ if $old->cgp_archiveafter ne $new->cgp_archiveafter;
- #XXX phase 3: archive messages, mailing lists
+ #XXX phase 3: mailing lists
if ( keys %settings ) {
my $error = $self->communigate_pro_queue(
@@ -441,6 +446,7 @@ sub _export_replace_svc_domain {
'RPOPAllowed' => ( $new->acct_def_cgp_rpopallowed ? 'YES' : 'NO' ),
'MailToAll' => ( $new->acct_def_cgp_mailtoall ? 'YES' : 'NO' ),
'AddMailTrailer' => ( $new->acct_def_cgp_addmailtrailer ? 'YES' : 'NO' ),
+ 'ArchiveMessagesAfter' => $new->acct_def_cgp_archiveafter,
);
warn "WARNING: error queueing SetAccountDefaults job: $def_err"
if $def_err;
diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm
index 3b26688bf..707b33a6f 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -440,7 +440,28 @@ sub table_info {
'cgp_addmailtrailer' => { label => 'Add trailer to sent mail',
type => 'checkbox',
},
- #XXX archive messages, mailing lists
+ 'cgp_archiveafter' => {
+ label => 'Archive messages after',
+ type => 'select',
+ select_hash => [
+ -2 => 'default(730 day(s))',
+ 0 => 'Never',
+ 86400 => '24 hour(s)',
+ 172800 => '2 day(s)',
+ 259200 => '3 day(s)',
+ 432000 => '5 day(s)',
+ 604800 => '7 day(s)',
+ 1209600 => '2 week(s)',
+ 2592000 => '30 day(s)',
+ 7776000 => '90 day(s)',
+ 15552000 => '180 day(s)',
+ 31536000 => '365 day(s)',
+ 63072000 => '730 day(s)',
+ ],
+ disable_inventory => 1,
+ disable_select => 1,
+ },
+ #XXX mailing lists
#preferences
'cgp_deletemode' => {
@@ -494,7 +515,6 @@ sub table_info {
},
#mail
- #XXX vacation message, redirect all mail, mail rules
#XXX RPOP settings
},
@@ -1190,6 +1210,7 @@ sub check {
|| $self->ut_enum('cgp_rpopallowed', [ '', 'Y' ])
|| $self->ut_enum('cgp_mailtoall', [ '', 'Y' ])
|| $self->ut_enum('cgp_addmailtrailer', [ '', 'Y' ])
+ || $self->ut_snumbern('cgp_archiveafter')
#preferences
|| $self->ut_alphasn('cgp_deletemode')
|| $self->ut_enum('cgp_emptytrash', $self->cgp_emptytrash_values)
@@ -1198,7 +1219,6 @@ sub check {
|| $self->ut_textn('cgp_skinname')
|| $self->ut_textn('cgp_prontoskinname')
|| $self->ut_alphan('cgp_sendmdnmode')
- #XXX vacation message, redirect all mail, mail rules
#XXX RPOP settings
;
return $error if $error;
diff --git a/FS/FS/svc_domain.pm b/FS/FS/svc_domain.pm
index 4d85060d3..3dc352b7a 100644
--- a/FS/FS/svc_domain.pm
+++ b/FS/FS/svc_domain.pm
@@ -207,6 +207,27 @@ sub table_info {
label => 'Acct. default Add trailer to sent mail',
type => 'checkbox',
},
+ 'acct_def_cgp_archiveafter' => {
+ label => 'Archive messages after',
+ type => 'select',
+ select_hash => [
+ -2 => 'default(730 days)',
+ 0 => 'Never',
+ 86400 => '24 hours',
+ 172800 => '2 days',
+ 259200 => '3 days',
+ 432000 => '5 days',
+ 604800 => '7 days',
+ 1209600 => '2 weeks',
+ 2592000 => '30 days',
+ 7776000 => '90 days',
+ 15552000 => '180 days',
+ 31536000 => '365 days',
+ 63072000 => '730 days',
+ ],
+ disable_inventory => 1,
+ disable_select => 1,
+ },
'trailer' => {
label => 'Mail trailer',
type => 'textarea',
@@ -490,7 +511,7 @@ sub check {
|| $self->ut_enum('acct_def_cgp_rpopallowed', [ '', 'Y' ])
|| $self->ut_enum('acct_def_cgp_mailtoall', [ '', 'Y' ])
|| $self->ut_enum('acct_def_cgp_addmailtrailer', [ '', 'Y' ])
- #XXX archive messages
+ || $self->ut_snumbern('acct_def_cgp_archiveafter')
#preferences
|| $self->ut_alphasn('acct_def_cgp_deletemode')
|| $self->ut_enum('acct_def_cgp_emptytrash',
@@ -501,7 +522,6 @@ sub check {
|| $self->ut_textn('acct_def_cgp_prontoskinname')
|| $self->ut_alphan('acct_def_cgp_sendmdnmode')
#mail
- #XXX rules, archive rule, spam foldering rule(s)
;
return $error if $error;
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index 6fe015ab5..7f2e3aa3c 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -291,12 +291,22 @@ that field.
% (grep(/^$rvalue$/, split(',',$value)) ? ' SELECTED>' : '>' ).
% $record->$select_label(). '</OPTION>';
% } #next $record
-% } else { # select_list
+% } elsif ( $def->{select_list} ) {
% foreach my $item ( @{$def->{select_list}} ) {
% $html .= qq!<OPTION VALUE="$item"!.
% (grep(/^$item$/, split(',',$value)) ? ' SELECTED>' : '>' ).
% $item. '</OPTION>';
% } #next $item
+% } elsif ( $def->{select_hash} ) {
+% $def->{select_hash} = tie %{ $def->{select_hash} },
+% 'Tie::IxHash',
+% @{ $def->{select_hash} }
+% if ref($def->{select_hash}) eq 'ARRAY';
+% foreach my $key ( keys %{$def->{select_hash}} ) {
+% $html .= qq!<OPTION VALUE="$key"!.
+% (grep(/^$key$/, split(',',$value)) ? ' SELECTED>' : '>' ).
+% $def->{select_hash}{$key}. '</OPTION>';
+% } #next $key
% } #endif
% $html .= '</SELECT>';
%