diff options
author | ivan <ivan> | 2010-08-06 21:31:04 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-08-06 21:31:04 +0000 |
commit | 89da4b96c4e2fce7079be8d2729750c088f8035b (patch) | |
tree | 77110171b8af09fe002f6d0135e21cc38bffc934 | |
parent | d311f62f655dc5cad8b9319f07f8c0e6bf344cc2 (diff) |
communigate phase 3: archive messages, RT#7515
-rw-r--r-- | FS/FS/part_export/communigate_pro.pm | 10 | ||||
-rw-r--r-- | FS/FS/svc_acct.pm | 24 | ||||
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 8 | ||||
-rwxr-xr-x | httemplate/edit/svc_acct.cgi | 222 | ||||
-rw-r--r-- | httemplate/edit/svc_acct/communigate.html | 249 | ||||
-rwxr-xr-x | httemplate/edit/svc_domain.cgi | 272 | ||||
-rw-r--r-- | httemplate/edit/svc_domain/communigate-acct_defaults.html | 223 | ||||
-rw-r--r-- | httemplate/edit/svc_domain/communigate-basics.html | 82 | ||||
-rw-r--r-- | httemplate/view/svc_acct/communigate.html | 8 | ||||
-rw-r--r-- | httemplate/view/svc_domain/acct_defaults.html | 8 |
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', |