summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-08-06 21:31:04 +0000
committerivan <ivan>2010-08-06 21:31:04 +0000
commit89da4b96c4e2fce7079be8d2729750c088f8035b (patch)
tree77110171b8af09fe002f6d0135e21cc38bffc934
parentd311f62f655dc5cad8b9319f07f8c0e6bf344cc2 (diff)
communigate phase 3: archive messages, RT#7515
-rw-r--r--FS/FS/part_export/communigate_pro.pm10
-rw-r--r--FS/FS/svc_acct.pm24
-rwxr-xr-xhttemplate/edit/part_svc.cgi8
-rwxr-xr-xhttemplate/edit/svc_acct.cgi222
-rw-r--r--httemplate/edit/svc_acct/communigate.html249
-rwxr-xr-xhttemplate/edit/svc_domain.cgi272
-rw-r--r--httemplate/edit/svc_domain/communigate-acct_defaults.html223
-rw-r--r--httemplate/edit/svc_domain/communigate-basics.html82
-rw-r--r--httemplate/view/svc_acct/communigate.html8
-rw-r--r--httemplate/view/svc_domain/acct_defaults.html8
10 files changed, 613 insertions, 493 deletions
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 707b33a6f..801c46533 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -444,19 +444,19 @@ sub table_info {
label => 'Archive messages after',
type => 'select',
select_hash => [
- -2 => 'default(730 day(s))',
+ -2 => 'default(730 days)',
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)',
+ 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,
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index 7f2e3aa3c..940ea8d25 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -298,10 +298,10 @@ that field.
% $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';
+% if ( ref($def->{select_hash}) eq 'ARRAY' ) {
+% tie my %hash, 'Tie::IxHash', @{ $def->{select_hash} };
+% $def->{select_hash} = \%hash;
+% }
% foreach my $key ( keys %{$def->{select_hash}} ) {
% $html .= qq!<OPTION VALUE="$key"!.
% (grep(/^$key$/, split(',',$value)) ? ' SELECTED>' : '>' ).
diff --git a/httemplate/edit/svc_acct.cgi b/httemplate/edit/svc_acct.cgi
index 59b5d10f3..0a191b445 100755
--- a/httemplate/edit/svc_acct.cgi
+++ b/httemplate/edit/svc_acct.cgi
@@ -255,222 +255,12 @@ Service # <% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
</TR>
% }
-
-% if ( $communigate
-% && $part_svc->part_svc_column('cgp_type')->columnflag ne 'F' )
-% {
-
-% # settings
-
- <TR>
- <TD ALIGN="right">Mailbox type</TD>
- <TD>
- <SELECT NAME="cgp_type">
-% foreach my $option (qw( MultiMailbox TextMailbox MailDirMailbox
-% AGrade BGrade CGrade )) {
- <OPTION VALUE="<% $option %>"
- <% $option eq $svc_acct->cgp_type() ? 'SELECTED' : '' %>
- ><% $option %>
-% }
- </SELECT>
- </TD>
- </TR>
-
-% } else {
- <INPUT TYPE="hidden" NAME="cgp_type" VALUE="<% $svc_acct->cgp_type() %>">
-% }
-
-
-% #false laziness w/svc_domain
-% if ( $communigate
-% && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' )
-% {
-
- <TR>
- <TD ALIGN="right">Enabled services</TD>
- <TD>
- <% include( '/elements/communigate_pro-accessmodes.html',
- 'curr_value' => $svc_acct->cgp_accessmodes,
- )
- %>
- </TD>
- </TR>
-
-% } else {
- <INPUT TYPE="hidden" NAME="cgp_accessmodes" VALUE="<% $svc_acct->cgp_accessmodes() |h %>">
-% }
-
-
-% if ( $part_svc->part_svc_column('quota')->columnflag eq 'F' ) {
- <INPUT TYPE="hidden" NAME="quota" VALUE="<% $svc_acct->quota %>">
-% } else {
-% my $quota_label = $communigate ? 'Mail storage limit' : 'Quota';
- <TR>
- <TD ALIGN="right"><% $quota_label %></TD>
- <TD><INPUT TYPE="text" NAME="quota" VALUE="<% $svc_acct->quota %>"></TD>
- </TR>
-% }
-
-% tie my %cgp_label, 'Tie::IxHash',
-% 'file_quota' => 'File storage limit',
-% 'file_maxnum' => 'Number of files limit',
-% 'file_maxsize' => 'File size limit',
-% ;
-%
-% foreach my $key (keys %cgp_label) {
-%
-% if ( !$communigate || $part_svc->part_svc_column($key)->columnflag eq 'F' ){
- <INPUT TYPE="hidden" NAME="<%$key%>" VALUE="<% $svc_acct->$key() |h %>">
-% } else {
-
- <TR>
- <TD ALIGN="right"><% $cgp_label{$key} %></TD>
- <TD><INPUT TYPE="text" NAME="<% $key %>" VALUE="<% $svc_acct->$key() |h %>"></TD>
- </TR>
-
-% }
-% }
-
-% if ( $communigate ) {
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Password recovery',
- 'field' => 'password_recover',
- 'curr_value' => $svc_acct->password_recover,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Allowed mail rules',
- 'field' => 'cgp_rulesallowed',
- 'options' => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ],
- 'labels' => {
- '' => 'default (No)', #No always the default?
- },
- 'curr_value' => $svc_acct->cgp_rulesallowed,
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'RPOP modifications',
- 'field' => 'cgp_rpopallowed',
- 'curr_value' => $svc_acct->cgp_rpopallowed,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Accepts mail to "all"',
- 'field' => 'cgp_mailtoall',
- 'curr_value' => $svc_acct->cgp_mailtoall,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Add trailer to sent mail',
- 'field' => 'cgp_addmailtrailer',
- 'curr_value' => $svc_acct->cgp_addmailtrailer,
- 'value' => 'Y',
- )
- %>
-
-% #preferences
-
-%# false laziness w/svc_domain acct_def
- <TR>
- <TD ALIGN="right">Message delete method</TD>
- <TD>
- <SELECT NAME="cgp_deletemode">
-% for ( 'Move To Trash', 'Immediately', 'Mark' ) {
- <OPTION VALUE="<% $_ %>"
- <% $_ eq $svc_acct->cgp_deletemode ? 'SELECTED' : '' %>
- ><% $_ %>
-% }
- </SELECT>
- </TD>
- </TR>
-
- <% include('/elements/tr-select.html',
- 'label' => 'On logout remove trash',
- 'field' => 'cgp_emptytrash',
- 'options' => $svc_acct->cgp_emptytrash_values,
- 'labels' => {
- '' => 'default (92 days)', #right?
- },
- 'curr_value' => $svc_acct->cgp_emptytrash,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Language',
- 'field' => 'cgp_language',
- 'options' => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ],
- 'labels' => {
- '' => 'default (English)',
- },
- 'curr_value' => $svc_acct->cgp_language,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Time zone',
- 'field' => 'cgp_timezone',
- 'options' => $svc_acct->cgp_timezone_values,
- 'labels' => {
- '' => 'default (HostOS)',
- },
- 'curr_value' => $svc_acct->cgp_timezone,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Layout',
- 'field' => 'cgp_skinname',
- 'options' => [ '', '***', 'GoldFleece', 'Skin2' ],
- 'labels' => {
- '' => 'default (***)',
- },
- 'curr_value' => $svc_acct->cgp_skinname,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Pronto style',
- 'field' => 'cgp_prontoskinname',
- 'options' => [ '', 'Pronto', 'Pronto-darkflame', 'Pronto-steel', 'Pronto-twilight', ],
-
- 'curr_value' => $svc_acct->cgp_prontoskinname,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Send read receipts',
- 'field' => 'cgp_sendmdnmode',
- 'options' => [ '', 'Never', 'Manually', 'Automatically' ],
- 'labels' => {
- '' => 'default (Automatically)',
- },
- 'curr_value' => $svc_acct->cgp_language,
- )
- %>
-
-%#XXX vacation message, redirect all mail, mail rules
-
-% } else {
-
-% for (qw( password_recover cgp_rulesallowed cgp_rpopallowed cgp_mailtoall
-% cgp_addmailtrailer
-% cgp_deletemode cgp_emptytrash cgp_language cgp_timezone
-% cgp_skinname cgp_sendmdnmode
-% ) ) {
-
- <INPUT TYPE="hidden" NAME="<% $_ %>" VALUE="<% $svc_acct->$_() %>">
-% }
-
-% }
-
+<% include('svc_acct/communigate.html',
+ 'svc_acct' => $svc_acct,
+ 'part_svc' => $part_svc,
+ 'communigate' => $communigate,
+ )
+%>
% if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) {
<INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>">
diff --git a/httemplate/edit/svc_acct/communigate.html b/httemplate/edit/svc_acct/communigate.html
new file mode 100644
index 000000000..6370a54dc
--- /dev/null
+++ b/httemplate/edit/svc_acct/communigate.html
@@ -0,0 +1,249 @@
+% if ( $communigate
+% && $part_svc->part_svc_column('cgp_type')->columnflag ne 'F' )
+% {
+
+% # settings
+
+ <TR>
+ <TD ALIGN="right">Mailbox type</TD>
+ <TD>
+ <SELECT NAME="cgp_type">
+% foreach my $option (qw( MultiMailbox TextMailbox MailDirMailbox
+% AGrade BGrade CGrade )) {
+ <OPTION VALUE="<% $option %>"
+ <% $option eq $svc_acct->cgp_type() ? 'SELECTED' : '' %>
+ ><% $option %>
+% }
+ </SELECT>
+ </TD>
+ </TR>
+
+% } else {
+ <INPUT TYPE="hidden" NAME="cgp_type" VALUE="<% $svc_acct->cgp_type() %>">
+% }
+
+
+% #false laziness w/svc_domain
+% if ( $communigate
+% && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' )
+% {
+
+ <TR>
+ <TD ALIGN="right">Enabled services</TD>
+ <TD>
+ <% include( '/elements/communigate_pro-accessmodes.html',
+ 'curr_value' => $svc_acct->cgp_accessmodes,
+ )
+ %>
+ </TD>
+ </TR>
+
+% } else {
+ <INPUT TYPE="hidden" NAME="cgp_accessmodes" VALUE="<% $svc_acct->cgp_accessmodes() |h %>">
+% }
+
+
+% if ( $part_svc->part_svc_column('quota')->columnflag eq 'F' ) {
+ <INPUT TYPE="hidden" NAME="quota" VALUE="<% $svc_acct->quota %>">
+% } else {
+% my $quota_label = $communigate ? 'Mail storage limit' : 'Quota';
+ <TR>
+ <TD ALIGN="right"><% $quota_label %></TD>
+ <TD><INPUT TYPE="text" NAME="quota" VALUE="<% $svc_acct->quota %>"></TD>
+ </TR>
+% }
+
+% tie my %cgp_label, 'Tie::IxHash',
+% 'file_quota' => 'File storage limit',
+% 'file_maxnum' => 'Number of files limit',
+% 'file_maxsize' => 'File size limit',
+% ;
+%
+% foreach my $key (keys %cgp_label) {
+%
+% if ( !$communigate || $part_svc->part_svc_column($key)->columnflag eq 'F' ){
+ <INPUT TYPE="hidden" NAME="<%$key%>" VALUE="<% $svc_acct->$key() |h %>">
+% } else {
+
+ <TR>
+ <TD ALIGN="right"><% $cgp_label{$key} %></TD>
+ <TD><INPUT TYPE="text" NAME="<% $key %>" VALUE="<% $svc_acct->$key() |h %>"></TD>
+ </TR>
+
+% }
+% }
+
+% if ( $communigate ) {
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Password recovery',
+ 'field' => 'password_recover',
+ 'curr_value' => $svc_acct->password_recover,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Allowed mail rules',
+ 'field' => 'cgp_rulesallowed',
+ 'options' => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ],
+ 'labels' => {
+ '' => 'default (No)', #No always the default?
+ },
+ 'curr_value' => $svc_acct->cgp_rulesallowed,
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'RPOP modifications',
+ 'field' => 'cgp_rpopallowed',
+ 'curr_value' => $svc_acct->cgp_rpopallowed,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Accepts mail to "all"',
+ 'field' => 'cgp_mailtoall',
+ 'curr_value' => $svc_acct->cgp_mailtoall,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Add trailer to sent mail',
+ 'field' => 'cgp_addmailtrailer',
+ 'curr_value' => $svc_acct->cgp_addmailtrailer,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Archive messages after',
+ 'field' => 'cgp_archiveafter',
+ 'options' => [ '', 0, 86400, 172800, 259200, 432000, 604800,
+ 1209600, 2592000, 7776000, 15552000, 31536000,
+ 63072000
+ ],
+ 'labels' => {
+ '' => 'default (730 days)',#730 always default?
+ 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',
+ },
+ 'curr_value' => $svc_acct->cgp_archiveafter,
+ )
+ %>
+
+% #preferences
+
+%# false laziness w/svc_domain acct_def
+ <TR>
+ <TD ALIGN="right">Message delete method</TD>
+ <TD>
+ <SELECT NAME="cgp_deletemode">
+% for ( 'Move To Trash', 'Immediately', 'Mark' ) {
+ <OPTION VALUE="<% $_ %>"
+ <% $_ eq $svc_acct->cgp_deletemode ? 'SELECTED' : '' %>
+ ><% $_ %>
+% }
+ </SELECT>
+ </TD>
+ </TR>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'On logout remove trash',
+ 'field' => 'cgp_emptytrash',
+ 'options' => $svc_acct->cgp_emptytrash_values,
+ 'labels' => {
+ '' => 'default (92 days)', #right?
+ },
+ 'curr_value' => $svc_acct->cgp_emptytrash,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Language',
+ 'field' => 'cgp_language',
+ 'options' => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ],
+ 'labels' => {
+ '' => 'default (English)',
+ },
+ 'curr_value' => $svc_acct->cgp_language,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Time zone',
+ 'field' => 'cgp_timezone',
+ 'options' => $svc_acct->cgp_timezone_values,
+ 'labels' => {
+ '' => 'default (HostOS)',
+ },
+ 'curr_value' => $svc_acct->cgp_timezone,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Layout',
+ 'field' => 'cgp_skinname',
+ 'options' => [ '', '***', 'GoldFleece', 'Skin2' ],
+ 'labels' => {
+ '' => 'default (***)',
+ },
+ 'curr_value' => $svc_acct->cgp_skinname,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Pronto style',
+ 'field' => 'cgp_prontoskinname',
+ 'options' => [ '', 'Pronto', 'Pronto-darkflame', 'Pronto-steel', 'Pronto-twilight', ],
+
+ 'curr_value' => $svc_acct->cgp_prontoskinname,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Send read receipts',
+ 'field' => 'cgp_sendmdnmode',
+ 'options' => [ '', 'Never', 'Manually', 'Automatically' ],
+ 'labels' => {
+ '' => 'default (Automatically)',
+ },
+ 'curr_value' => $svc_acct->cgp_language,
+ )
+ %>
+
+% } else {
+
+% for (qw( password_recover cgp_rulesallowed cgp_rpopallowed cgp_mailtoall
+% cgp_addmailtrailer
+% cgp_deletemode cgp_emptytrash cgp_language cgp_timezone
+% cgp_skinname cgp_sendmdnmode
+% ) ) {
+
+ <INPUT TYPE="hidden" NAME="<% $_ %>" VALUE="<% $svc_acct->$_() %>">
+% }
+
+% }
+
+<%init>
+
+my %opt = @_;
+
+my $svc_acct = $opt{'svc_acct'};
+my $part_svc = $opt{'part_svc'};
+
+my $communigate = $opt{'communigate'};
+
+</%init>
diff --git a/httemplate/edit/svc_domain.cgi b/httemplate/edit/svc_domain.cgi
index 5abe9d6b5..54a933dee 100755
--- a/httemplate/edit/svc_domain.cgi
+++ b/httemplate/edit/svc_domain.cgi
@@ -16,6 +16,7 @@
<INPUT TYPE="text" NAME="domain" VALUE="<% $domain %>" SIZE=28 MAXLENGTH=63>
% } else {
<B><% $domain %></B>
+ <INPUT TYPE="hidden" NAME="domain" VALUE="<% $domain %>">
% }
% if ($export) {
@@ -38,269 +39,22 @@ Available top-level domains: <% $export->option('tlds') %>
</TD>
</TR>
-% if ( $communigate ) {
- <TR>
- <TD ALIGN="right">Administrator domain</TD>
- <TD>
- <% include('/elements/select-domain.html',
- 'element_name' => 'parent_svcnum',
- 'curr_value' => $svc_domain->parent_svcnum,
- 'empty_label' => '(none)',
- )
- %>
- </TD>
- </TR>
-% } else {
- <INPUT TYPE="hidden" NAME="parent_svcnum" VALUE="<% $svc_domain->parent_svcnum %>">
-% }
-
-% if ( $communigate
-% && $part_svc->part_svc_column('cgp_aliases')->columnflag !~ /^[FA]$/ ) {
-
- <TR>
- <TD ALIGN="right">Aliases</TD>
- <TD><INPUT TYPE="text" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>"></TD>
- </TR>
-
-% } else {
- <INPUT TYPE="hidden" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>">
-% }
-
-% if ( $part_svc->part_svc_column('max_accounts')->columnflag =~ /^[FA]$/ ) {
- <INPUT TYPE="hidden" NAME="max_accounts" VALUE="<% $svc_domain->max_accounts %>">
-% } else {
- <TR>
- <TD ALIGN="right">Maximum number of accounts</TD>
- <TD>
- <INPUT TYPE="text" NAME="max_accounts" SIZE=5 MAXLENGTH=6 VALUE="<% $svc_domain->max_accounts %>">
- </TD>
- </TR>
-% }
-
-% if ( $communigate
-% && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' )
-% {
-
- <TR>
- <TD ALIGN="right">Enabled services</TD>
- <TD>
- <% include( '/elements/communigate_pro-accessmodes.html',
- 'curr_value' => $svc_domain->cgp_accessmodes,
- )
- %>
- </TD>
- </TR>
-
-% } else {
- <INPUT TYPE="hidden" NAME="cgp_accessmodes" VALUE="<% $svc_domain->cgp_accessmodes() |h %>">
-% }
-
-% if ( $communigate
-% && $part_svc->part_svc_column('trailer')->columnflag ne 'F' )
-% {
-
- <TR>
- <TD ALIGN="right">Mail trailer</TD>
- <TD>
- <TEXTAREA NAME="trailer" ROWS=5 COLS=60><% $svc_domain->trailer() |h %></TEXTAREA>
- </TD>
- </TR>
-
-% } else {
- <INPUT TYPE="hidden" NAME="trailer" VALUE="<% $svc_domain->trailer() |h %>">
-% }
-
-
-</TABLE>
-<BR>
-
-% if ( $communigate ) {
-
-Account defaults
-<% ntable("#cccccc",2) %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Password modification',
- 'field' => 'acct_def_password_selfchange',
- 'curr_value' => $svc_domain->acct_def_password_selfchange,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Password recovery',
- 'field' => 'acct_def_password_recover',
- 'curr_value' => $svc_domain->acct_def_password_recover,
- 'value' => 'Y',
- )
- %>
-
- <TR>
- <TD ALIGN="right">Enabled services
- </TD>
- <TD><% include('/elements/communigate_pro-accessmodes.html',
- 'element_name_prefix' => 'acct_def_cgp_accessmodes_',
- 'curr_value' => $svc_domain->acct_def_cgp_accessmodes,
- )
- %>
- </TD>
- </TR>
-
- <% include('/elements/tr-input-text.html',
- 'label' => 'Mail storage limit',
- 'field' => 'acct_def_quota',
- 'curr_value' => $svc_domain->acct_def_quota,
- )
- %>
- <% include('/elements/tr-input-text.html',
- 'label' => 'File storage limit',
- 'field' => 'acct_def_file_quota',
- 'curr_value' => $svc_domain->acct_def_file_quota,
- )
- %>
- <% include('/elements/tr-input-text.html',
- 'label' => 'Files limit',
- 'field' => 'acct_def_file_maxnum',
- 'curr_value' => $svc_domain->acct_def_file_maxnum,
- )
- %>
- <% include('/elements/tr-input-text.html',
- 'label' => 'File size limit',
- 'field' => 'acct_def_file_maxsize',
- 'curr_value' => $svc_domain->acct_def_file_maxsize,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Allowed mail rules',
- 'field' => 'acct_def_cgp_rulesallowed',
- 'options' => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ],
- 'labels' => {
- '' => 'default (No)', #No always the default?
- },
- 'curr_value' => $svc_domain->acct_def_cgp_rulesallowed,
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'RPOP modifications',
- 'field' => 'acct_def_cgp_rpopallowed',
- 'curr_value' => $svc_domain->acct_def_cgp_rpopallowed,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Accepts mail to "all"',
- 'field' => 'acct_def_cgp_mailtoall',
- 'curr_value' => $svc_domain->acct_def_cgp_mailtoall,
- 'value' => 'Y',
- )
- %>
-
- <% include('/elements/tr-checkbox.html',
- 'label' => 'Add trailer to sent mail',
- 'field' => 'acct_def_cgp_addmailtrailer',
- 'curr_value' => $svc_domain->acct_def_cgp_addmailtrailer,
- 'value' => 'Y',
- )
- %>
-
-%# false laziness w/svc_acct acct_def
- <TR>
- <TD ALIGN="right">Message delete method</TD>
- <TD>
- <SELECT NAME="acct_def_cgp_deletemode">
-% for ( 'Move To Trash', 'Immediately', 'Mark' ) {
- <OPTION VALUE="<% $_ %>"
- <% $_ eq $svc_domain->acct_def_cgp_deletemode ? 'SELECTED' : '' %>
- ><% $_ %>
-% }
- </SELECT>
- </TD>
- </TR>
-
- <% include('/elements/tr-select.html',
- 'label' => 'On logout remove trash',
- 'field' => 'acct_def_cgp_emptytrash',
- 'options' => $svc_domain->cgp_emptytrash_values,
- 'labels' => {
- '' => 'default (92 days)', #right?
- },
- 'curr_value' => $svc_domain->acct_def_cgp_emptytrash,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Language',
- 'field' => 'acct_def_cgp_language',
- 'options' => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ],
- 'labels' => {
- '' => 'default (English)',
- },
- 'curr_value' => $svc_domain->acct_def_cgp_language,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Time zone',
- 'field' => 'acct_def_cgp_timezone',
- 'options' => $svc_domain->cgp_timezone_values,
- 'labels' => {
- '' => 'default (HostOS)',
- },
- 'curr_value' => $svc_domain->acct_def_cgp_timezone,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Layout',
- 'field' => 'acct_def_cgp_skinname',
- 'options' => [ '', '***', 'GoldFleece', 'Skin2' ],
- 'labels' => {
- '' => 'default (***)',
- },
- 'curr_value' => $svc_domain->acct_def_cgp_skinname,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Pronto style',
- 'field' => 'acct_def_cgp_prontoskinname',
- 'options' => [ '', 'Pronto', 'Pronto-darkflame', 'Pronto-steel', 'Pronto-twilight', ],
- 'curr_value' => $svc_domain->acct_def_cgp_prontoskinname,
- )
- %>
-
- <% include('/elements/tr-select.html',
- 'label' => 'Send read receipts',
- 'field' => 'acct_def_cgp_sendmdnmode',
- 'options' => [ '', 'Never', 'Manually', 'Automatically' ],
- 'labels' => {
- '' => 'default (Automatically)',
- },
- 'curr_value' => $svc_domain->acct_def_cgp_language,
- )
- %>
-
-% #XXX rules, archive rule, spam foldering rule(s)
+<% include('svc_domain/communigate-basics.html',
+ 'svc_domain' => $svc_domain,
+ 'part_svc' => $part_svc,
+ 'communigate' => $communigate,
+ )
+%>
</TABLE>
<BR>
-% } else {
-
-% foreach my $f (qw( password_selfchange password_recover cgp_accessmodes
-% quota file_quota file_maxnum file_maxsize
-% cgp_rulesallowed cgp_rpopallowed cgp_mailtoall
-% cgp_addmailtrailer
-% cgp_deletemode cgp_emptytrash cgp_language
-% cgp_timezone cgp_skinname cgp_sendmdnmode
-% )) {
- <INPUT TYPE="hidden" NAME="acct_def_<%$f%>" VALUE="<% $svc_domain->get("acct_def_$f") %>">
-% }
-
-% }
+<% include('svc_domain/communigate-acct_defaults.html',
+ 'svc_domain' => $svc_domain,
+ 'part_svc' => $part_svc,
+ 'communigate' => $communigate,
+ )
+%>
<INPUT TYPE="submit" VALUE="Submit">
diff --git a/httemplate/edit/svc_domain/communigate-acct_defaults.html b/httemplate/edit/svc_domain/communigate-acct_defaults.html
new file mode 100644
index 000000000..3426a8e93
--- /dev/null
+++ b/httemplate/edit/svc_domain/communigate-acct_defaults.html
@@ -0,0 +1,223 @@
+% if ( $communigate ) {
+
+Account defaults
+<% ntable("#cccccc",2) %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Password modification',
+ 'field' => 'acct_def_password_selfchange',
+ 'curr_value' => $svc_domain->acct_def_password_selfchange,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Password recovery',
+ 'field' => 'acct_def_password_recover',
+ 'curr_value' => $svc_domain->acct_def_password_recover,
+ 'value' => 'Y',
+ )
+ %>
+
+ <TR>
+ <TD ALIGN="right">Enabled services
+ </TD>
+ <TD><% include('/elements/communigate_pro-accessmodes.html',
+ 'element_name_prefix' => 'acct_def_cgp_accessmodes_',
+ 'curr_value' => $svc_domain->acct_def_cgp_accessmodes,
+ )
+ %>
+ </TD>
+ </TR>
+
+ <% include('/elements/tr-input-text.html',
+ 'label' => 'Mail storage limit',
+ 'field' => 'acct_def_quota',
+ 'curr_value' => $svc_domain->acct_def_quota,
+ )
+ %>
+ <% include('/elements/tr-input-text.html',
+ 'label' => 'File storage limit',
+ 'field' => 'acct_def_file_quota',
+ 'curr_value' => $svc_domain->acct_def_file_quota,
+ )
+ %>
+ <% include('/elements/tr-input-text.html',
+ 'label' => 'Files limit',
+ 'field' => 'acct_def_file_maxnum',
+ 'curr_value' => $svc_domain->acct_def_file_maxnum,
+ )
+ %>
+ <% include('/elements/tr-input-text.html',
+ 'label' => 'File size limit',
+ 'field' => 'acct_def_file_maxsize',
+ 'curr_value' => $svc_domain->acct_def_file_maxsize,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Allowed mail rules',
+ 'field' => 'acct_def_cgp_rulesallowed',
+ 'options' => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ],
+ 'labels' => {
+ '' => 'default (No)', #No always the default?
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_rulesallowed,
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'RPOP modifications',
+ 'field' => 'acct_def_cgp_rpopallowed',
+ 'curr_value' => $svc_domain->acct_def_cgp_rpopallowed,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Accepts mail to "all"',
+ 'field' => 'acct_def_cgp_mailtoall',
+ 'curr_value' => $svc_domain->acct_def_cgp_mailtoall,
+ 'value' => 'Y',
+ )
+ %>
+
+ <% include('/elements/tr-checkbox.html',
+ 'label' => 'Add trailer to sent mail',
+ 'field' => 'acct_def_cgp_addmailtrailer',
+ 'curr_value' => $svc_domain->acct_def_cgp_addmailtrailer,
+ 'value' => 'Y',
+ )
+ %>
+
+%# more false laziness w/svc_acct acct_def
+ <% include('/elements/tr-select.html',
+ 'label' => 'Archive messages after',
+ 'field' => 'acct_def_cgp_archiveafter',
+ 'options' => [ '', 0, 86400, 172800, 259200, 432000, 604800,
+ 1209600, 2592000, 7776000, 15552000, 31536000,
+ 63072000
+ ],
+ 'labels' => {
+ '' => 'default (730 days)',#730 always default?
+ 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',
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_archiveafter,
+ )
+ %>
+
+%# false laziness w/svc_acct acct_def
+ <TR>
+ <TD ALIGN="right">Message delete method</TD>
+ <TD>
+ <SELECT NAME="acct_def_cgp_deletemode">
+% for ( 'Move To Trash', 'Immediately', 'Mark' ) {
+ <OPTION VALUE="<% $_ %>"
+ <% $_ eq $svc_domain->acct_def_cgp_deletemode ? 'SELECTED' : '' %>
+ ><% $_ %>
+% }
+ </SELECT>
+ </TD>
+ </TR>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'On logout remove trash',
+ 'field' => 'acct_def_cgp_emptytrash',
+ 'options' => $svc_domain->cgp_emptytrash_values,
+ 'labels' => {
+ '' => 'default (92 days)', #right?
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_emptytrash,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Language',
+ 'field' => 'acct_def_cgp_language',
+ 'options' => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ],
+ 'labels' => {
+ '' => 'default (English)',
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_language,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Time zone',
+ 'field' => 'acct_def_cgp_timezone',
+ 'options' => $svc_domain->cgp_timezone_values,
+ 'labels' => {
+ '' => 'default (HostOS)',
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_timezone,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Layout',
+ 'field' => 'acct_def_cgp_skinname',
+ 'options' => [ '', '***', 'GoldFleece', 'Skin2' ],
+ 'labels' => {
+ '' => 'default (***)',
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_skinname,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Pronto style',
+ 'field' => 'acct_def_cgp_prontoskinname',
+ 'options' => [ '', 'Pronto', 'Pronto-darkflame', 'Pronto-steel', 'Pronto-twilight', ],
+ 'curr_value' => $svc_domain->acct_def_cgp_prontoskinname,
+ )
+ %>
+
+ <% include('/elements/tr-select.html',
+ 'label' => 'Send read receipts',
+ 'field' => 'acct_def_cgp_sendmdnmode',
+ 'options' => [ '', 'Never', 'Manually', 'Automatically' ],
+ 'labels' => {
+ '' => 'default (Automatically)',
+ },
+ 'curr_value' => $svc_domain->acct_def_cgp_language,
+ )
+ %>
+
+</TABLE>
+<BR>
+
+% } else {
+
+% foreach my $f (qw( password_selfchange password_recover cgp_accessmodes
+% quota file_quota file_maxnum file_maxsize
+% cgp_rulesallowed cgp_rpopallowed cgp_mailtoall
+% cgp_addmailtrailer
+% cgp_deletemode cgp_emptytrash cgp_language
+% cgp_timezone cgp_skinname cgp_sendmdnmode
+% )) {
+ <INPUT TYPE="hidden" NAME="acct_def_<%$f%>" VALUE="<% $svc_domain->get("acct_def_$f") %>">
+% }
+
+% }
+
+<%init>
+
+my %opt = @_;
+
+my $svc_domain = $opt{'svc_domain'};
+my $part_svc = $opt{'part_svc'};
+
+my $communigate = $opt{'communigate'};
+
+</%init>
diff --git a/httemplate/edit/svc_domain/communigate-basics.html b/httemplate/edit/svc_domain/communigate-basics.html
new file mode 100644
index 000000000..ff401c0fc
--- /dev/null
+++ b/httemplate/edit/svc_domain/communigate-basics.html
@@ -0,0 +1,82 @@
+% if ( $communigate ) {
+ <TR>
+ <TD ALIGN="right">Administrator domain</TD>
+ <TD>
+ <% include('/elements/select-domain.html',
+ 'element_name' => 'parent_svcnum',
+ 'curr_value' => $svc_domain->parent_svcnum,
+ 'empty_label' => '(none)',
+ )
+ %>
+ </TD>
+ </TR>
+% } else {
+ <INPUT TYPE="hidden" NAME="parent_svcnum" VALUE="<% $svc_domain->parent_svcnum %>">
+% }
+
+% if ( $communigate
+% && $part_svc->part_svc_column('cgp_aliases')->columnflag !~ /^[FA]$/ ) {
+
+ <TR>
+ <TD ALIGN="right">Aliases</TD>
+ <TD><INPUT TYPE="text" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>"></TD>
+ </TR>
+
+% } else {
+ <INPUT TYPE="hidden" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>">
+% }
+
+% if ( $part_svc->part_svc_column('max_accounts')->columnflag =~ /^[FA]$/ ) {
+ <INPUT TYPE="hidden" NAME="max_accounts" VALUE="<% $svc_domain->max_accounts %>">
+% } else {
+ <TR>
+ <TD ALIGN="right">Maximum number of accounts</TD>
+ <TD>
+ <INPUT TYPE="text" NAME="max_accounts" SIZE=5 MAXLENGTH=6 VALUE="<% $svc_domain->max_accounts %>">
+ </TD>
+ </TR>
+% }
+
+% if ( $communigate
+% && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' )
+% {
+
+ <TR>
+ <TD ALIGN="right">Enabled services</TD>
+ <TD>
+ <% include( '/elements/communigate_pro-accessmodes.html',
+ 'curr_value' => $svc_domain->cgp_accessmodes,
+ )
+ %>
+ </TD>
+ </TR>
+
+% } else {
+ <INPUT TYPE="hidden" NAME="cgp_accessmodes" VALUE="<% $svc_domain->cgp_accessmodes() |h %>">
+% }
+
+% if ( $communigate
+% && $part_svc->part_svc_column('trailer')->columnflag ne 'F' )
+% {
+
+ <TR>
+ <TD ALIGN="right">Mail trailer</TD>
+ <TD>
+ <TEXTAREA NAME="trailer" ROWS=5 COLS=60><% $svc_domain->trailer() |h %></TEXTAREA>
+ </TD>
+ </TR>
+
+% } else {
+ <INPUT TYPE="hidden" NAME="trailer" VALUE="<% $svc_domain->trailer() |h %>">
+% }
+
+<%init>
+
+my %opt = @_;
+
+my $svc_domain = $opt{'svc_domain'};
+my $part_svc = $opt{'part_svc'};
+
+my $communigate = $opt{'communigate'};
+
+</%init>
diff --git a/httemplate/view/svc_acct/communigate.html b/httemplate/view/svc_acct/communigate.html
index 870744a87..ece1724be 100644
--- a/httemplate/view/svc_acct/communigate.html
+++ b/httemplate/view/svc_acct/communigate.html
@@ -32,6 +32,14 @@
<% include('/view/elements/tr.html', label=>'Add trailer to sent mail',
value=>$svc_acct->cgp_addmailtrailer ? 'YES' : 'NO' ) %>
+% my $archive_after = $svc_acct->cgp_archiveafter;
+% $archive_after =
+% $archive_after
+% ? ( $archive_after / 86400 ). ' days'
+% : ( $archive_after eq '0' ? 'Never' : 'default (730 days)' );
+ <% include('/view/elements/tr.html', label=>'Archive messages after',
+ value=>$archive_after, ) %>
+
%# preferences
<% include('/view/elements/tr.html', label=>'Message delete method',
diff --git a/httemplate/view/svc_domain/acct_defaults.html b/httemplate/view/svc_domain/acct_defaults.html
index 3a4e187be..b5612827b 100644
--- a/httemplate/view/svc_domain/acct_defaults.html
+++ b/httemplate/view/svc_domain/acct_defaults.html
@@ -71,6 +71,14 @@
)
%>
+% my $archive_after = $svc_domain->acct_def_cgp_archiveafter;
+% $archive_after =
+% $archive_after
+% ? ( $archive_after / 86400 ). ' days'
+% : ( $archive_after eq '0' ? 'Never' : 'default (730 days)' );
+ <% include('/view/elements/tr.html', label=>'Archive messages after',
+ value=>$archive_after, ) %>
+
%# preferences
<% include('/view/elements/tr.html',