From dd0ddd19db32c2952b0c121df370ab143fbbeb5b Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 25 Apr 2012 06:31:39 -0400
Subject: [PATCH] - Introduced subsections for forms. With subsections, you can split up large forms. Subsections can be slid into/out of view.

---
 interface/web/admin/lib/lang/de_server_config.lng             |   17 +++-
 interface/web/admin/templates/server_config_web_edit.htm      |   79 +++++++++++--------
 interface/web/themes/default_no_navimg/templates/main.tpl.htm |    6 +
 interface/web/themes/default/templates/main.tpl.htm           |    7 +
 interface/web/themes/default/css/screen/content_ispc.css      |   81 ++++++++++++++++++++
 interface/web/themes/default_combobox/templates/main.tpl.htm  |    6 +
 interface/web/admin/lib/lang/en_server_config.lng             |    5 +
 interface/web/themes/default/images/chevron.png               |    0 
 interface/web/themes/default_64_navimg/templates/main.tpl.htm |    6 +
 9 files changed, 165 insertions(+), 42 deletions(-)

diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index fd78f1b..63bbf10 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -148,9 +148,16 @@
 $wb['do_not_try_rescue_mysql_txt'] = 'Deaktiviere MySQL Monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Deaktiviere Email Monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> Falls Sie MySQL stoppen m&ouml;chten, w&auml;hlen Sie die &quot;Deaktiviere MySQL Monitoring&quot; Checkbox und warten Sie 2-3 Minuten.<br>Falls Sie nicht 2-3 Minuten warten, wird Rescue versuchen, MySQL neu zu starten!';
-$wb['enable_sni_txt'] = 'Enable SNI';
-$wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update';
-$wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group';
-$wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid';
-$wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect';
+$wb['enable_sni_txt'] = 'Aktiviere SNI';
+$wb['set_folder_permissions_on_update_txt'] = 'Verzeichnisberechtigungen beim Update setzen';
+$wb['add_web_users_to_sshusers_group_txt'] = 'Webuser zur -sshusers- hinzufügen';
+$wb['connect_userid_to_webid_txt'] = 'Linux-Userid mit webid verknüpfen';
+$wb['connect_userid_to_webid_start_txt'] = 'Start-ID für userid/webid-Verknüpfung';
+$wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List';
+$wb["realtime_blackhole_list_note_txt"] = '(RBL\'s mit Kommas trennen)';
+$wb["ssl_settings_txt"] = 'SSL-Einstellungen';
+$wb["permissions_txt"] = 'Berechtigungen';
+$wb["php_settings_txt"] = 'PHP-Einstellungen';
+$wb["apps_vhost_settings_txt"] = 'Apps-Vhost-Einstellungen';
+$wb["awstats_settings_txt"] = 'AWStats-Einstellungen';
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 4cce275..ac7546f 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -157,4 +157,9 @@
 $wb["connect_userid_to_webid_start_txt"] = 'Start ID for userid/webid connect';
 $wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List';
 $wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)';
+$wb["ssl_settings_txt"] = 'SSL Settings';
+$wb["permissions_txt"] = 'Permissions';
+$wb["php_settings_txt"] = 'PHP Settings';
+$wb["apps_vhost_settings_txt"] = 'Apps Vhost Settings';
+$wb["awstats_settings_txt"] = 'AWStats Settings';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 7f150f2..f5710fa 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -47,14 +47,6 @@
       	<label for="nginx_vhost_conf_enabled_dir">{tmpl_var name='nginx_vhost_conf_enabled_dir_txt'}</label>
         <input name="nginx_vhost_conf_enabled_dir" id="nginx_vhost_conf_enabled_dir" value="{tmpl_var name='nginx_vhost_conf_enabled_dir'}" size="40" maxlength="255" type="text" class="textInput" />
 			</div>
-      <div class="ctrlHolder">
-      	<label for="CA_path">{tmpl_var name='CA_path_txt'}</label>
-        <input name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" size="40" maxlength="255" type="text" class="textInput" />
-			</div>
-      <div class="ctrlHolder">
-      	<label for="CA_pass">{tmpl_var name='CA_pass_txt'}</label>
-        <input name="CA_pass" id="CA_pass" value="{tmpl_var name='CA_pass'}" size="40" maxlength="255" type="password" class="textInput" />
-			</div>
 	  <div class="ctrlHolder">
 				<p class="label">{tmpl_var name='security_level_txt'}</p>
 					<div class="multiField">
@@ -69,12 +61,49 @@
 						{tmpl_var name='check_apache_config'}
 					</div>
 			</div>
-	  <div class="ctrlHolder">
+	  <div class="ctrlHolder apache">
+      	<label for="user">{tmpl_var name='web_user_txt'}</label>
+        <input name="user" id="user" value="{tmpl_var name='user'}" size="40" maxlength="255" type="text" class="textInput" />
+			</div>
+	  <div class="ctrlHolder apache">
+      	<label for="group">{tmpl_var name='web_group_txt'}</label>
+        <input name="group" id="group" value="{tmpl_var name='group'}" size="40" maxlength="255" type="text" class="textInput" />
+	  </div>
+	  <div class="ctrlHolder nginx">
+      	<label for="nginx_user">{tmpl_var name='nginx_user_txt'}</label>
+        <input name="nginx_user" id="nginx_user" value="{tmpl_var name='nginx_user'}" size="40" maxlength="255" type="text" class="textInput" />
+			</div>
+	  <div class="ctrlHolder nginx">
+      	<label for="nginx_group">{tmpl_var name='nginx_group_txt'}</label>
+        <input name="nginx_group" id="nginx_group" value="{tmpl_var name='nginx_group'}" size="40" maxlength="255" type="text" class="textInput" />
+	  </div>
+	  <div class="ctrlHolder nginx">
+      	<label for="nginx_cgi_socket">{tmpl_var name='nginx_cgi_socket_txt'}</label>
+        <input name="nginx_cgi_socket" id="nginx_cgi_socket" value="{tmpl_var name='nginx_cgi_socket'}" size="40" maxlength="255" type="text" class="textInput" />
+	  </div>
+	  <div class="ctrlHolder apache">
+      	<label for="htaccess_allow_override">{tmpl_var name='htaccess_allow_override_txt'}</label>
+        <input name="htaccess_allow_override" id="htaccess_allow_override" value="{tmpl_var name='htaccess_allow_override'}" size="40" maxlength="255" type="text" class="textInput" />
+	  </div>
+	  <div class="subsectiontoggle"><span></span>{tmpl_var name='ssl_settings_txt'}<em></em></div>
+		<div style="display:none;">
+		<div class="ctrlHolder">
 				<p class="label">{tmpl_var name='enable_sni_txt'}</p>
 					<div class="multiField">
 						{tmpl_var name='enable_sni'}
 					</div>
 			</div>
+      <div class="ctrlHolder">
+      	<label for="CA_path">{tmpl_var name='CA_path_txt'}</label>
+        <input name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" size="40" maxlength="255" type="text" class="textInput" />
+			</div>
+      <div class="ctrlHolder">
+      	<label for="CA_pass">{tmpl_var name='CA_pass_txt'}</label>
+        <input name="CA_pass" id="CA_pass" value="{tmpl_var name='CA_pass'}" size="40" maxlength="255" type="password" class="textInput" />
+			</div>
+		</div>
+	  <div class="subsectiontoggle"><span></span>{tmpl_var name='permissions_txt'}<em></em></div>
+	<div style="display:none;">
 	  <div class="ctrlHolder">
 				<p class="label">{tmpl_var name='set_folder_permissions_on_update_txt'}</p>
 					<div class="multiField">
@@ -97,22 +126,9 @@
       	<label for="connect_userid_to_webid_start">{tmpl_var name='connect_userid_to_webid_start_txt'}</label>
         <input name="connect_userid_to_webid_start" id="connect_userid_to_webid_start" value="{tmpl_var name='connect_userid_to_webid_start'}" size="40" maxlength="255" type="text" class="textInput" />
 			</div>
-	  <div class="ctrlHolder apache">
-      	<label for="user">{tmpl_var name='web_user_txt'}</label>
-        <input name="user" id="user" value="{tmpl_var name='user'}" size="40" maxlength="255" type="text" class="textInput" />
-			</div>
-	  <div class="ctrlHolder apache">
-      	<label for="group">{tmpl_var name='web_group_txt'}</label>
-        <input name="group" id="group" value="{tmpl_var name='group'}" size="40" maxlength="255" type="text" class="textInput" />
-	  </div>
-	  <div class="ctrlHolder nginx">
-      	<label for="nginx_user">{tmpl_var name='nginx_user_txt'}</label>
-        <input name="nginx_user" id="nginx_user" value="{tmpl_var name='nginx_user'}" size="40" maxlength="255" type="text" class="textInput" />
-			</div>
-	  <div class="ctrlHolder nginx">
-      	<label for="nginx_group">{tmpl_var name='nginx_group_txt'}</label>
-        <input name="nginx_group" id="nginx_group" value="{tmpl_var name='nginx_group'}" size="40" maxlength="255" type="text" class="textInput" />
-	  </div>
+	</div>
+	  <div class="subsectiontoggle"><span></span>{tmpl_var name='php_settings_txt'}<em></em></div>
+	  <div style="display:none;">
 	  <div class="ctrlHolder apache">
       	<label for="php_ini_path_apache">{tmpl_var name='php_ini_path_apache_txt'}</label>
         <input name="php_ini_path_apache" id="php_ini_path_apache" value="{tmpl_var name='php_ini_path_apache'}" size="40" maxlength="255" type="text" class="textInput" />
@@ -145,14 +161,9 @@
       	<label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label>
         <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="40" type="text" class="textInput" />
 	  </div>
-	  <div class="ctrlHolder nginx">
-      	<label for="nginx_cgi_socket">{tmpl_var name='nginx_cgi_socket_txt'}</label>
-        <input name="nginx_cgi_socket" id="nginx_cgi_socket" value="{tmpl_var name='nginx_cgi_socket'}" size="40" maxlength="255" type="text" class="textInput" />
 	  </div>
-	  <div class="ctrlHolder apache">
-      	<label for="htaccess_allow_override">{tmpl_var name='htaccess_allow_override_txt'}</label>
-        <input name="htaccess_allow_override" id="htaccess_allow_override" value="{tmpl_var name='htaccess_allow_override'}" size="40" maxlength="255" type="text" class="textInput" />
-	  </div>
+	  <div class="subsectiontoggle"><span></span>{tmpl_var name='apps_vhost_settings_txt'}<em></em></div>
+	  <div style="display:none;">
 	  <div class="ctrlHolder">
       	<label for="apps_vhost_port">{tmpl_var name='apps_vhost_port_txt'}</label>
         <input name="apps_vhost_port" id="apps_vhost_port" value="{tmpl_var name='apps_vhost_port'}" size="40" maxlength="255" type="text" class="textInput" />
@@ -165,6 +176,9 @@
       	<label for="apps_vhost_servername">{tmpl_var name='apps_vhost_servername_txt'}</label>
         <input name="apps_vhost_servername" id="apps_vhost_servername" value="{tmpl_var name='apps_vhost_servername'}" size="40" maxlength="255" type="text" class="textInput" />
 	  </div>
+	  </div>
+	  <div class="subsectiontoggle"><span></span>{tmpl_var name='awstats_settings_txt'}<em></em></div>
+	  <div style="display:none;">
 	  <div class="ctrlHolder">
       	<label for="awstats_conf_dir">{tmpl_var name='awstats_conf_dir_txt'}</label>
         <input name="awstats_conf_dir" id="awstats_conf_dir" value="{tmpl_var name='awstats_conf_dir'}" size="40" maxlength="255" type="text" class="textInput" />
@@ -181,6 +195,7 @@
       	<label for="awstats_buildstaticpages_pl">{tmpl_var name='awstats_buildstaticpages_pl_txt'}</label>
         <input name="awstats_buildstaticpages_pl" id="awstats_buildstaticpages_pl" value="{tmpl_var name='awstats_buildstaticpages_pl'}" size="40" maxlength="255" type="text" class="textInput" />
 	  </div>
+	  </div>
     </fieldset>
 
     <input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/themes/default/css/screen/content_ispc.css b/interface/web/themes/default/css/screen/content_ispc.css
index 9e65bd4..796cd57 100644
--- a/interface/web/themes/default/css/screen/content_ispc.css
+++ b/interface/web/themes/default/css/screen/content_ispc.css
@@ -912,6 +912,87 @@
 		max-width: 80%;
 		min-width: 680px;
 	}
+	
+	div.subsectiontoggle {
+		border:1px solid #ccc;
+		font-weight:bold;
+		font-size:14px;
+		padding-top:10px;
+		padding-bottom:0;
+		margin-top:5px;
+		text-indent:15px;
+		cursor:pointer;
+		margin-bottom:10px;
+		background-color:#f4f4f4;
+		-moz-border-radius:5px;
+		-webkit-border-radius:5px;
+		-khtml-border-radius:5px;
+		-o-border-radius:5px;
+		-ms-border-radius:5px;
+		border-radius:5px;
+	}
+	div.subsectiontoggle span{
+		display:inline-block;
+		margin-bottom:-3px;
+		margin-right:10px;
+		width:16px;
+		height:16px;
+		background:url(../../icons/x16/plus_circle_frame.png) top left no-repeat;
+	}
+	div.subsectiontoggle span.showing{
+		background:url(../../icons/x16/minus_circle_frame.png) top left no-repeat;
+	}
+	div.subsectiontoggle em{
+		display:block;
+		position:relative;
+		left:425px;
+		top:-13px;
+		margin-bottom:-3px;
+		width:13px;
+		height:13px;
+		background:url(../../images/chevron.png) top left no-repeat;
+		-webkit-transform:none;
+		-moz-transform:none;
+		-khtml-transform:none;
+		-o-transform:none;
+		-ms-transform:none;
+		transform:none;
+		-webkit-transition-duration: .2s;
+		-moz-transition-duration: .2s;
+		-khtml-transition-duration: .2s;
+		-o-transition-duration: .2s;
+		-ms-transition-duration: .2s;
+		transition-duration: .2s;
+		-webkit-transition-property: -webkit-transform;
+		-moz-transition-property: -moz-transform;
+		-khtml-transition-property: -khtml-transform;
+		-o-transition-property: -o-transform;
+		-ms-transition-property: -ms-transform;
+		transition-property: transform;
+	}
+	div.subsectiontoggle em.showing{
+		display:block;
+		position:relative;
+		left:425px;
+		top:-13px;
+		background:url(../../images/chevron.png) top left no-repeat;
+		width:13px;
+		height:13px;
+		-webkit-transform:rotate(90deg);
+		-moz-transform:rotate(90deg);
+		-khtml-transform:rotate(90deg);
+		-o-transform:rotate(90deg);
+		-ms-transform:rotate(90deg);
+		transform:rotate(90deg);
+	}
+	div.subsectiontoggle:hover em{
+		-webkit-transform:rotate(90deg);
+		-moz-transform:rotate(90deg);
+		-khtml-transform:rotate(90deg);
+		-o-transform:rotate(90deg);
+		-ms-transform:rotate(90deg);
+		transform:rotate(90deg);
+	}
 
 }
 
diff --git a/interface/web/themes/default/images/chevron.png b/interface/web/themes/default/images/chevron.png
new file mode 100644
index 0000000..7ca0587
--- /dev/null
+++ b/interface/web/themes/default/images/chevron.png
Binary files differ
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index aa4ec17..1854b50 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -77,6 +77,10 @@
 					e.preventDefault();
 				}
 			});
+			
+			jQuery('.subsectiontoggle').live("click", function(){
+				jQuery(this).children().toggleClass('showing').end().next().slideToggle();
+			});
 		});
 		
 		
@@ -86,13 +90,12 @@
 			}
 		});
 		
-		//Use jQuery submit with kespress Enter in panel filterbar
+		//Use jQuery submit with keypress Enter in panel filterbar
 		jQuery(document).bind("keypress", function(event) {
 			if (event.which == '13' && $(".panel #Filter").length > 0) {
 				$(".panel #Filter").attr("onsubmit",$(".panel #Filter").attr("onclick")).submit();
 			}
 		});
-
 	</script>
 </head>
 <body>
diff --git a/interface/web/themes/default_64_navimg/templates/main.tpl.htm b/interface/web/themes/default_64_navimg/templates/main.tpl.htm
index c90c9f2..c7fca67 100644
--- a/interface/web/themes/default_64_navimg/templates/main.tpl.htm
+++ b/interface/web/themes/default_64_navimg/templates/main.tpl.htm
@@ -78,6 +78,10 @@
 					e.preventDefault();
 				}
 			});
+			
+			jQuery('.subsectiontoggle').live("click", function(){
+				jQuery(this).children().toggleClass('showing').end().next().slideToggle();
+			});
 		});
 
 		jQuery(document).bind("change", function(event) {
@@ -86,7 +90,7 @@
 			}
 		});
 		
-		//Use jQuery submit with kespress Enter in panel filterbar
+		//Use jQuery submit with keypress Enter in panel filterbar
 		jQuery(document).bind("keypress", function(event) {
 			if (event.which == '13' && $(".panel #Filter").length > 0) {
 				$(".panel #Filter").attr("onsubmit",$(".panel #Filter").attr("onclick")).submit();
diff --git a/interface/web/themes/default_combobox/templates/main.tpl.htm b/interface/web/themes/default_combobox/templates/main.tpl.htm
index 5b73fba..55917da 100644
--- a/interface/web/themes/default_combobox/templates/main.tpl.htm
+++ b/interface/web/themes/default_combobox/templates/main.tpl.htm
@@ -79,6 +79,10 @@
 					e.preventDefault();
 				}
 			});
+			
+			jQuery('.subsectiontoggle').live("click", function(){
+				jQuery(this).children().toggleClass('showing').end().next().slideToggle();
+			});
 		});
 
 		jQuery(document).bind("change", function(event) {
@@ -93,7 +97,7 @@
 			}
 		});
 		
-		//Use jQuery submit with kespress Enter in panel filterbar
+		//Use jQuery submit with keypress Enter in panel filterbar
 		jQuery(document).bind("keypress", function(event) {
 			if (event.which == '13' && $(".panel #Filter").length > 0) {
 				$(".panel #Filter").attr("onsubmit",$(".panel #Filter").attr("onclick")).submit();
diff --git a/interface/web/themes/default_no_navimg/templates/main.tpl.htm b/interface/web/themes/default_no_navimg/templates/main.tpl.htm
index ff939af..61df5fd 100644
--- a/interface/web/themes/default_no_navimg/templates/main.tpl.htm
+++ b/interface/web/themes/default_no_navimg/templates/main.tpl.htm
@@ -78,6 +78,10 @@
 					e.preventDefault();
 				}
 			});
+			
+			jQuery('.subsectiontoggle').live("click", function(){
+				jQuery(this).children().toggleClass('showing').end().next().slideToggle();
+			});
 		});
 
 		jQuery(document).bind("change", function(event) {
@@ -86,7 +90,7 @@
 			}
 		});
 		
-		//Use jQuery submit with kespress Enter in panel filterbar
+		//Use jQuery submit with keypress Enter in panel filterbar
 		jQuery(document).bind("keypress", function(event) {
 			if (event.which == '13' && $(".panel #Filter").length > 0) {
 				$(".panel #Filter").attr("onsubmit",$(".panel #Filter").attr("onclick")).submit();

--
Gitblit v1.9.1