communigate phase 3: archive messages, RT#7515
authorivan <ivan>
Fri, 6 Aug 2010 21:28:09 +0000 (21:28 +0000)
committerivan <ivan>
Fri, 6 Aug 2010 21:28:09 +0000 (21:28 +0000)
FS/FS/Schema.pm
FS/FS/svc_acct.pm
FS/FS/svc_domain.pm
httemplate/edit/part_svc.cgi

index 60d2bce..557ee62 100644 (file)
@@ -1698,7 +1698,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
@@ -1708,7 +1709,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',
@@ -1770,7 +1770,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,  '', '',
@@ -1779,8 +1779,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' => [ ],
index 3b26688..707b33a 100644 (file)
@@ -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;
index 4d85060..3dc352b 100644 (file)
@@ -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;
 
index 6fe015a..7f2e3aa 100755 (executable)
@@ -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>';
 %