choongii
2013-01-30 d097c76b311ee5a03ffc9c522b978f21999308d9
Implemented checkboxes in Interface Config to enable showing/hiding the tabs Mail Filters, Autoresponders and Custom Rules for mailboxes.

See also http://www.howtoforge.com/forums/showthread.php?t=59539

5 files modified
279 ■■■■■ changed files
interface/web/admin/form/system_config.tform.php 30 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/templates/system_config_mail_edit.htm 20 ●●●●● patch | view | raw | blame | history
interface/web/mail/form/mail_user.tform.php 223 ●●●● patch | view | raw | blame | history
interface/web/admin/form/system_config.tform.php
@@ -174,12 +174,30 @@
    ##################################
    # Begin Datatable fields
    ##################################
    'enable_custom_login' => array(
      'datatype' => 'VARCHAR',
      'formtype' => 'CHECKBOX',
      'default' => 'n',
      'value' => array(0 => 'n', 1 => 'y')
    ),
        'enable_custom_login' => array(
            'datatype' => 'VARCHAR',
            'formtype' => 'CHECKBOX',
            'default' => 'n',
            'value' => array(0 => 'n', 1 => 'y')
        ),
        'mailbox_show_autoresponder_tab' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'CHECKBOX',
            'default'  => 'y',
            'value'    => array(0 => 'n',1 => 'y')
        ),
        'mailbox_show_mail_filter_tab' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'CHECKBOX',
            'default'  => 'y',
            'value'    => array(0 => 'n',1 => 'y')
        ),
        'mailbox_show_custom_rules_tab' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'CHECKBOX',
            'default'  => 'y',
            'value'    => array(0 => 'n',1 => 'y')
        ),
        'mailboxlist_webmail_link' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
interface/web/admin/lib/lang/en_system_config.lng
@@ -23,6 +23,9 @@
$wb["dblist_phpmyadmin_link_txt"] = 'Link to phpmyadmin in DB list';
$wb['enable_custom_login_txt'] = 'Allow custom login name';
$wb["mailboxlist_webmail_link_txt"] = 'Link to webmail in Mailbox list';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail';
$wb["webmail_url_txt"] = 'Webmail URL';
$wb["mailmailinglist_link_txt"] = 'Link to mailing list in Mailing list list';
$wb["mailmailinglist_url_txt"] = 'Mailing list URL';
interface/web/admin/lib/lang/nl_system_config.lng
@@ -16,6 +16,9 @@
$wb['webdavuser_prefix_error_regex'] = 'Char niet toegestaan in webdav gebruiker voorvoegsel.';
$wb['dblist_phpmyadmin_link_txt'] = 'Link naar phpmyadmin in DB lijst';
$wb['mailboxlist_webmail_link_txt'] = 'Link naar webmail in Mailbox lijst';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Toon Autoresponder tabblad in Mailbox detail';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Toon Mail Filter tabblad in Mailbox detail';
$wb['mailbox_show_custom_rules_tab_txt'] 'Toon Custom Rules tabblad in Mailbox detail';
$wb['webmail_url_txt'] = 'Webmail URL';
$wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL';
$wb['use_domain_module_txt'] = 'Gebruik de domein-module om nieuwe domeinen toe te voegen';
interface/web/admin/templates/system_config_mail_edit.htm
@@ -12,6 +12,24 @@
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='mailbox_show_autoresponder_tab_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='mailbox_show_autoresponder_tab'}
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='mailbox_show_mail_filter_tab_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='mailbox_show_mail_filter_tab'}
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='mailbox_show_custom_rules_tab_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='mailbox_show_custom_rules_tab'}
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='mailboxlist_webmail_link_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='mailboxlist_webmail_link'}
@@ -77,4 +95,4 @@
        </div>
    </div>
  
</div>
</div>
interface/web/mail/form/mail_user.tform.php
@@ -38,6 +38,8 @@
*/
global $app;
$app->uses('getconf');
$global_config = $app->getconf->get_global_config();
$form["title"]             = "Mailbox";
$form["description"]     = "";
@@ -230,115 +232,118 @@
    )
);
$form["tabs"]['autoresponder'] = array (
    'title'     => "Autoresponder",
    'width'     => 100,
    'template'     => "templates/mail_user_autoresponder_edit.htm",
    'fields'     => array (
    ##################################
    # Begin Datatable fields
    ##################################
        'autoresponder_subject' => array (
            'datatype'  => 'VARCHAR',
            'formtype'  => 'TEXT',
            'default'   => 'Out of office reply',
            'value'     => '',
            'width'        => '30',
            'maxlength'    => '255'
        ),
        'autoresponder_text' => array (
            'datatype'    => 'TEXT',
            'formtype'    => 'TEXTAREA',
            'default'    => '',
            'value'        => '',
            'cols'        => '30',
            'rows'        => '15'
        ),
        'autoresponder' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(1 => 'y',0 => 'n')
        ),
        'autoresponder_start_date' => array (
            'datatype'    => 'DATETIME',
            'formtype'    => 'DATETIME',
            'validators'=> array ( 0 => array ( 'type' => 'CUSTOM',
                'class' => 'validate_autoresponder',
                'function' => 'start_date',
                'errmsg'=> 'autoresponder_start_date_is_required'),
            )
        ),
        'autoresponder_end_date' => array (
            'datatype'    => 'DATETIME',
            'formtype'    => 'DATETIME',
            'validators'=> array (     0 => array (    'type'    => 'CUSTOM',
                                                    'class' => 'validate_autoresponder',
                                                    'function' => 'end_date',
                                                    'errmsg'=> 'autoresponder_end_date_isgreater'),
                                 ),
        ),
    ##################################
    # END Datatable fields
    ##################################
    )
);
$form["tabs"]['filter_records'] = array (
    'title'     => "Mail Filter",
    'width'     => 100,
    'template'     => "templates/mail_user_mailfilter_edit.htm",
    'fields'     => array (
    ##################################
    # Begin Datatable fields
    ##################################
        'move_junk' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
    ##################################
    # END Datatable fields
    ##################################
    ),
    'plugins' => array (
         'filter_records' => array (
             'class'   => 'plugin_listview',
             'options' => array(
                'listdef' => 'list/mail_user_filter.list.php',
                'sqlextwhere' => "mailuser_id = ".@$app->functions->intval(@$_REQUEST['id']),
                'sql_order_by' => "ORDER BY rulename"
            )
        )
    )
);
if($_SESSION["s"]["user"]["typ"] == 'admin') {
$form["tabs"]['mailfilter'] = array (
    'title'     => "Custom Rules",
    'width'     => 100,
    'template'     => "templates/mail_user_custom_rules_edit.htm",
    'fields'     => array (
    ##################################
    # Begin Datatable fields
    ##################################
        'custom_mailfilter' => array (
            'datatype'    => 'TEXT',
            'formtype'    => 'TEXTAREA',
            'default'    => '',
            'value'        => '',
            'cols'        => '30',
            'rows'        => '15'
        ),
    ##################################
    # END Datatable fields
    ##################################
    )
);
if ($global_config['mail']['mailbox_show_autoresponder_tab'] === 'y') {
    $form["tabs"]['autoresponder'] = array (
        'title'     => "Autoresponder",
        'width'     => 100,
        'template'     => "templates/mail_user_autoresponder_edit.htm",
        'fields'     => array (
        ##################################
        # Begin Datatable fields
        ##################################
            'autoresponder_subject' => array (
                'datatype'  => 'VARCHAR',
                'formtype'  => 'TEXT',
                'default'   => 'Out of office reply',
                'value'     => '',
                'width'        => '30',
                'maxlength'    => '255'
            ),
            'autoresponder_text' => array (
                'datatype'    => 'TEXT',
                'formtype'    => 'TEXTAREA',
                'default'    => '',
                'value'        => '',
                'cols'        => '30',
                'rows'        => '15'
            ),
            'autoresponder' => array (
                'datatype'    => 'VARCHAR',
                'formtype'    => 'CHECKBOX',
                'default'    => 'n',
                'value'        => array(1 => 'y',0 => 'n')
            ),
            'autoresponder_start_date' => array (
                'datatype'    => 'DATETIME',
                'formtype'    => 'DATETIME',
                'validators'=> array ( 0 => array ( 'type' => 'CUSTOM',
                    'class' => 'validate_autoresponder',
                    'function' => 'start_date',
                    'errmsg'=> 'autoresponder_start_date_is_required'),
                )
            ),
            'autoresponder_end_date' => array (
                'datatype'    => 'DATETIME',
                'formtype'    => 'DATETIME',
                'validators'=> array (     0 => array (    'type'    => 'CUSTOM',
                    'class' => 'validate_autoresponder',
                    'function' => 'end_date',
                    'errmsg'=> 'autoresponder_end_date_isgreater'),
                 ),
            ),
        ##################################
        # END Datatable fields
        ##################################
        )
    );
}
?>
if ($global_config['mail']['mailbox_show_mail_filter_tab'] === 'y') {
    $form["tabs"]['filter_records'] = array (
        'title'     => "Mail Filter",
        'width'     => 100,
        'template'     => "templates/mail_user_mailfilter_edit.htm",
        'fields'     => array (
        ##################################
        # Begin Datatable fields
        ##################################
            'move_junk' => array (
                'datatype'    => 'VARCHAR',
                'formtype'    => 'CHECKBOX',
                'default'    => 'n',
                'value'        => array(0 => 'n',1 => 'y')
            ),
        ##################################
        # END Datatable fields
        ##################################
        ),
        'plugins' => array (
            'filter_records' => array (
                'class'   => 'plugin_listview',
                'options' => array(
                        'listdef' => 'list/mail_user_filter.list.php',
                        'sqlextwhere' => "mailuser_id = ".@$app->functions->intval(@$_REQUEST['id']),
                        'sql_order_by' => "ORDER BY rulename"
                    )
            )
        )
    );
}
if ($_SESSION["s"]["user"]["typ"] == 'admin' && $global_config['mail']['mailbox_show_custom_rules_tab'] === 'y') {
    $form["tabs"]['mailfilter'] = array (
        'title'     => "Custom Rules",
        'width'     => 100,
        'template'     => "templates/mail_user_custom_rules_edit.htm",
        'fields'     => array (
        ##################################
        # Begin Datatable fields
        ##################################
            'custom_mailfilter' => array (
                'datatype'    => 'TEXT',
                'formtype'    => 'TEXTAREA',
                'default'    => '',
                'value'        => '',
                'cols'        => '30',
                'rows'        => '15'
            ),
        ##################################
        # END Datatable fields
        ##################################
        )
    );
}
?>