From d097c76b311ee5a03ffc9c522b978f21999308d9 Mon Sep 17 00:00:00 2001
From: choongii <choongii@ispconfig3>
Date: Wed, 30 Jan 2013 15:50:06 -0500
Subject: [PATCH] Implemented checkboxes in Interface Config to enable showing/hiding the tabs Mail Filters, Autoresponders and Custom Rules for mailboxes.

---
 interface/web/admin/lib/lang/en_system_config.lng         |    3 
 interface/web/mail/form/mail_user.tform.php               |  223 ++++++++++++++++++++++---------------------
 interface/web/admin/lib/lang/nl_system_config.lng         |    3 
 interface/web/admin/templates/system_config_mail_edit.htm |   20 +++
 interface/web/admin/form/system_config.tform.php          |   30 ++++-
 5 files changed, 163 insertions(+), 116 deletions(-)

diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
index fb0fc7f..40e9868 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/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',
diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng
index 03ce902..5c706bb 100644
--- a/interface/web/admin/lib/lang/en_system_config.lng
+++ b/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';
diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng
index 673664c..0955743 100644
--- a/interface/web/admin/lib/lang/nl_system_config.lng
+++ b/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';
diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm
index 91fcc1f..f69ed85 100644
--- a/interface/web/admin/templates/system_config_mail_edit.htm
+++ b/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>
\ No newline at end of file
+</div>
diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php
index 5ec0cbc..ddccdbf 100644
--- a/interface/web/mail/form/mail_user.tform.php
+++ b/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
+		##################################
+		)
+	);
 }
 
 
-?>
\ No newline at end of file
+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
+		##################################
+		)
+	);
+}
+
+?>

--
Gitblit v1.9.1