From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/web/sites/templates/web_vhost_domain_edit.htm |  241 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 184 insertions(+), 57 deletions(-)

diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm
index 6f480e8..22a1952 100644
--- a/interface/web/sites/templates/web_vhost_domain_edit.htm
+++ b/interface/web/sites/templates/web_vhost_domain_edit.htm
@@ -13,7 +13,7 @@
 </tmpl_if>
 
 
-        
+        {tmpl_hook name="begin_form"}
 		<tmpl_if name="vhostdomain_type" value="domain">
             <tmpl_if name="is_admin">
                 <div class="form-group">
@@ -21,22 +21,22 @@
                         <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                         <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled">
                             {tmpl_var name='server_id'}
-                        </select>
-                        </div><input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
+                        </select></div>
+                        <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
                         <tmpl_else>
                             <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                             <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
                                 {tmpl_var name='server_id'}
-                            </select>
-                    </div></tmpl_if>
+                            </select></div>
+                    </tmpl_if>
                 </div>
                 <tmpl_unless name="domain_option">
                     <div class="form-group">
                         <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_group_id_txt'}</label>
                         <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
                             {tmpl_var name='client_group_id'}
-                        </select>
-                    </div></div>
+                        </select></div>
+                    </div>
                 </tmpl_unless>
             <tmpl_else>
                 <tmpl_if name="only_one_server">
@@ -47,14 +47,14 @@
                             <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                             <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled">
                                 {tmpl_var name='server_id'}
-                            </select>
-                            </div><input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
+                            </select></div>
+                            <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
                         <tmpl_else>
                             <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                             <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
                                 {tmpl_var name='server_id'}
-                            </select>
-                        </div></tmpl_if>
+                            </select></div>
+                        </tmpl_if>
                     </div>
                 </tmpl_if>
             </tmpl_if>
@@ -64,43 +64,49 @@
                         <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_group_id_txt'}</label>
                         <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
                             {tmpl_var name='client_group_id'}
-                        </select>
-                    </div></div>
+                        </select></div>
+                    </div>
                 </tmpl_unless>
             </tmpl_if>
             <div class="form-group">
                 <label for="ip_address" class="col-sm-3 control-label">{tmpl_var name='ip_address_txt'}</label>
                 <div class="col-sm-9"><select name="ip_address" id="ip_address" class="form-control">
                     {tmpl_var name='ip_address'}
-                </select>
-            </div></div>
+                </select></div>
+            </div>
             <div class="form-group">
                 <label for="ipv6_address" class="col-sm-3 control-label">{tmpl_var name='ipv6_address_txt'}</label>
                 <div class="col-sm-9"><select name="ipv6_address" id="ipv6_address" class="form-control">
                     {tmpl_var name='ipv6_address'}
-                </select>
-            </div></div>
+                </select></div>
+            </div>
             <div class="form-group">
                 <label for="domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
                 <tmpl_if name="domain_option">
                     <div class="col-sm-9"><select name="domain" id="domain" class="form-control">
                         {tmpl_var name='domain_option'}
-                    </select>
-                    </div><tmpl_else>
+                    </select></div>
+                    <tmpl_else>
                         <div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" /></div></tmpl_if>
             </div>
+			<tmpl_if name="edit_disabled">
+				<div class="form-group">
+					<label for="document_root" class="col-sm-3 control-label" readonly >{tmpl_var name='document_root_txt'}</label>
+					<div class="col-sm-9">{tmpl_var name='document_root'}</div>
+				</div>
+			</tmpl_if>
             <div class="form-group">
                 <label for="hd_quota" class="col-sm-3 control-label">{tmpl_var name='hd_quota_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="hd_quota" id="hd_quota" value="{tmpl_var name='hd_quota'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;MB
-            </div></div>
+                <div class="col-sm-9"><div class="input-group"><input type="text" name="hd_quota" id="hd_quota" value="{tmpl_var name='hd_quota'}" class="form-control" /><span class="input-group-addon" id="quota-desc">MB</span></div></div>
+			</div>
 		</tmpl_if>
 		<tmpl_if name="vhostdomain_type" value="subdomain">
             <input type="hidden" name="server_id" id="server_id" value="{tmpl_var name='server_id_value'}" />
             <tmpl_if name="domain_option">
             <div class="form-group">
                 <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
-                <div class="col-sm-9"><select id="parent_domain_id" name="parent_domain_id" class="form-control">{tmpl_var name='parent_domain_id'}</select>
-            </div></div>
+                <div class="col-sm-9"><select id="parent_domain_id" name="parent_domain_id" class="form-control">{tmpl_var name='parent_domain_id'}</select></div>
+            </div>
             </tmpl_if>
             <div class="form-group">
                 <label for="domain" class="col-sm-3 control-label">{tmpl_var name='host_txt'}</label>
@@ -110,17 +116,17 @@
                 <label for="sel_domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
                     <div class="col-sm-9"><select name="sel_domain" id="sel_domain" class="form-control">
                         {tmpl_var name='domain_option'}
-                    </select>
-            </div></div>
+                    </select></div>
+            </div>
             <tmpl_else>
             <div class="form-group">
                 <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
-                <div class="col-sm-9"><select id="parent_domain_id" name="parent_domain_id" class="form-control">{tmpl_var name='parent_domain_id'}</select>
-            </div></div>
+                <div class="col-sm-9"><select id="parent_domain_id" name="parent_domain_id" class="form-control">{tmpl_var name='parent_domain_id'}</select></div>
+            </div>
             </tmpl_if>
             <div class="form-group">
                 <label for="web_folder" class="col-sm-3 control-label">{tmpl_var name='web_folder_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" class="form-control"<tmpl_if name='fixed_folder' op='==' value='y'></div><div class="col-sm-3 input-sm"> readonly="readonly"</div></tmpl_if> />
+                <div class="col-sm-9"><input type="text" name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" class="form-control"<tmpl_if name='fixed_folder' op='==' value='y'>readonly="readonly"</tmpl_if> /></div>
             </div>
 		</tmpl_if>
 		<tmpl_if name="vhostdomain_type" value="aliasdomain">
@@ -130,24 +136,24 @@
                 <tmpl_if name="domain_option">
                     <div class="col-sm-9"><select name="domain" id="domain" class="form-control">
                         {tmpl_var name='domain_option'}
-                    </select>
-                    </div><tmpl_else>
+                    </select></div>
+                    <tmpl_else>
                         <div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" /></div></tmpl_if>
             </div>
             <div class="form-group">
                 <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
                 <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control">
                     {tmpl_var name='parent_domain_id'}
-                </select>
-            </div></div>
+                </select></div>
+            </div>
             <div class="form-group">
                 <label for="web_folder" class="col-sm-3 control-label">{tmpl_var name='web_folder_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" class="form-control"<tmpl_if name='fixed_folder' op='==' value='y'></div><div class="col-sm-3 input-sm"> readonly="readonly"</div></tmpl_if> />
+                <div class="col-sm-9"><input type="text" name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" class="form-control"<tmpl_if name='fixed_folder' op='==' value='y'> readonly="readonly"</tmpl_if> /></div>
             </div>
 		</tmpl_if>
             <div class="form-group">
                 <label for="traffic_quota" class="col-sm-3 control-label">{tmpl_var name='traffic_quota_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;MB </div><tmpl_var name='traffic_quota_exceeded_txt'>
+                <div class="col-sm-9"><div class="input-group"><input type="text" name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" class="form-control" /><span class="input-group-addon" id="quota-desc">MB</span></div></div><tmpl_var name='traffic_quota_exceeded_txt'>
             </div>
             <tmpl_if name="limit_cgi" op="==" value="y"><div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='cgi_txt'}</label>
@@ -196,34 +202,56 @@
                 <label for="subdomain" class="col-sm-3 control-label">{tmpl_var name='subdomain_txt'}</label>
                 <div class="col-sm-9"><select name="subdomain" id="subdomain" class="form-control">
                     {tmpl_var name='subdomain'}
-                </select>
-            </div></div>
+                </select></div>
+            </div>
             <tmpl_if name="limit_ssl" op="==" value="y"><div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='ssl_txt'}</label>
-                <div class="col-sm-9">
+                <div class="col-sm-9" data-uncheck-fields="ssl_letsencrypt">
                     {tmpl_var name='ssl'}
                 </div>
+            </div>
+            <tmpl_if name="limit_ssl_letsencrypt" op="==" value="y">
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='ssl_letsencrypt_txt'}</label>
+                <div class="col-sm-9" data-check-fields="ssl">
+                    {tmpl_var name='ssl_letsencrypt'}
+                </div>
             </div></tmpl_if>
+            </tmpl_if>
             <div class="form-group">
                 <label for="php" class="col-sm-3 control-label">{tmpl_var name='php_txt'}</label>
                 <div class="col-sm-9"><select name="php" id="php" class="form-control">
                     {tmpl_var name='php'}
-                </select>
-            </div></div>
+                </select></div>
+            </div>
+            {tmpl_hook name="field_fastcgi_php_version"}
             <div class="form-group fastcgi_php_version">
                 <label for="fastcgi_php_version" class="col-sm-3 control-label">{tmpl_var name='fastcgi_php_version_txt'}</label>
                 <div class="col-sm-9"><select name="fastcgi_php_version" id="fastcgi_php_version" class="form-control">
                     {tmpl_var name='fastcgi_php_version'}
-                </select>
-            </div></div>
-			{tmpl_var name="directive_snippets_id"}
+                </select></div>
+            </div>
+            <tmpl_if name="limit_directive_snippets" op="==" value="y"><div class="form-group">
+				<label for="directive_snippets_id" class="col-sm-3 control-label">{tmpl_var name='directive_snippets_id_txt'}</label>
+				<div class="col-sm-9"><select name="directive_snippets_id" id="directive_snippets_id" class="form-control">
+					{tmpl_var name='directive_snippets_id'}
+				</select></div>
+			</div></tmpl_if>
+			{tmpl_hook name="field_enable_pagespeed"}
+			<div class="form-group nginx pagespeed">
+				<label class="col-sm-3 control-label">{tmpl_var name='enable_pagespeed_txt'}</label>
+				<div class="col-sm-9">
+					{tmpl_var name="enable_pagespeed"}
+				</div>
+			</div>
+            {tmpl_hook name="field_active"}
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label>
                 <div class="col-sm-9">
                     {tmpl_var name='active'}
                 </div>
             </div>
-        
+			{tmpl_hook name="end_form"}
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
@@ -235,6 +263,7 @@
     var serverId;
     var clientGroupId = jQuery('#client_group_id').val();
     var serverIdDisabled = jQuery('#server_id_disabled').val();
+	var serverType;
     if(serverIdDisabled > 0){
         serverId = serverIdDisabled;
     } else {
@@ -249,24 +278,38 @@
     }
     adjustForm(true);
     reloadFastcgiPHPVersions(true);
-		
+	
     jQuery('#client_group_id').change(function(){
         clientGroupId = $(this).val();
         reloadWebIP();
 		reloadFastcgiPHPVersions();
     });
 		
-    if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){
+    if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm' || (jQuery('#php').val() == 'hhvm' && serverType == 'nginx')){
         jQuery('.fastcgi_php_version:hidden').show();
+		if(jQuery('#php').val() == 'hhvm'){
+			jQuery('#fastcgi_php_version_txt').hide();
+			jQuery('#fastcgi_php_fallback_version_txt').show();
+		} else {
+			jQuery('#fastcgi_php_version_txt').show();
+			jQuery('#fastcgi_php_fallback_version_txt').hide();
+		}
     } else {
         jQuery('.fastcgi_php_version:visible').hide();
     }
-    //resetFormChanged();
+    //ISPConfig.resetFormChanged();
     
     jQuery('#php').change(function(){
         reloadFastcgiPHPVersions();
-        if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm'){
+        if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm' || (jQuery(this).val() == 'hhvm' && serverType == 'nginx')){	
             jQuery('.fastcgi_php_version:hidden').show();
+			if(jQuery(this).val() == 'hhvm'){
+				jQuery('#fastcgi_php_version_txt').hide();
+				jQuery('#fastcgi_php_fallback_version_txt').show();
+			} else {
+				jQuery('#fastcgi_php_version_txt').show();
+				jQuery('#fastcgi_php_fallback_version_txt').hide();
+			}
         } else {
             jQuery('.fastcgi_php_version:visible').hide();
         }
@@ -274,6 +317,21 @@
     jQuery('#parent_domain_id').change(function() {
         reloadServerId(false);
     });
+	// new Vhostsubdomains/Vhostaliasdomains
+	if(serverId == '') jQuery('#parent_domain_id').trigger('change');
+	
+	if(jQuery('#directive_snippets_id').val() > 0){
+		jQuery('.pagespeed').show();
+	} else {
+		jQuery('.pagespeed').hide();
+	}
+	jQuery('#directive_snippets_id').change(function(){
+		if(jQuery(this).val() > 0){
+			jQuery('.pagespeed').show();
+		} else {
+			jQuery('.pagespeed').hide();
+		}
+	});
     
     function reloadServerId(noFormChange) {
         var parentWebId = jQuery('#parent_domain_id').val();
@@ -287,8 +345,22 @@
     function adjustForm(noFormChange){
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
             if(data.servertype == "nginx"){
+				serverType = 'nginx';
                 var selected = jQuery('#php').val();
                 jQuery('.apache').hide();
+				jQuery('.nginx').show();
+				if(jQuery('#directive_snippets_id').val() > 0){
+					jQuery('.pagespeed').show();
+				} else {
+					jQuery('.pagespeed').hide();
+				}
+				jQuery('#directive_snippets_id').change(function(){
+					if(jQuery(this).val() > 0){
+						jQuery('.pagespeed').show();
+					} else {
+						jQuery('.pagespeed').hide();
+					}
+				});
                 if(selected != "no" && selected != "php-fpm" && selected != "hhvm") {
                     jQuery('#php option[value="php-fpm"]').attr('selected', 'selected').val('php-fpm');
                 }
@@ -297,6 +369,8 @@
                 jQuery('#php option[value="mod"]').hide();
                 jQuery('#php option[value="suphp"]').hide();
             } else {
+				serverType = 'apache';
+				jQuery('.nginx').hide();
                 jQuery('.apache').show();
                 jQuery('#php option[value="fast-cgi"]').show();
                 jQuery('#php option[value="cgi"]').show();
@@ -304,7 +378,7 @@
                 jQuery('#php option[value="suphp"]').show();
             }
             if(noFormChange) {
-                resetFormChanged();
+                ISPConfig.resetFormChanged();
                 jQuery('#php').addClass('no-page-form-change').change();
                 jQuery('#php').removeClass('no-page-form-change');
             } else {
@@ -315,52 +389,105 @@
 	
 	function reloadDirectiveSnippets() {
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getdirectivesnippet"}, function(data) {
-            var options = '<option value="0"></option>';
-			for (var i = 0, len = data.length; i < len; i++) {
+            var options = '<option value="0">-</option>';
+			options += "<optgroup label=\"{tmpl_var name='select_master_directive_snippet_txt'}\">";
+			for (var i = 0, len = data['m_snippets'].length; i < len; i++) {
 				var isSelected = '';
 
 				 if ($('#directive_snippets_id').val() == i + 1) {
 					 isSelected = 'selected="selected"';
 				 }
 
-				 options += '<option ' + isSelected + ' value="' + data[i]['directive_snippets_id'] + '">' + data[i]['name'] + '</option>';
+				 options += '<option ' + isSelected + ' value="' + data['m_snippets'][i]['directive_snippets_id'] + '">' + data['m_snippets'][i]['name'] + '</option>';
 			}
+			options += '</optgroup>';
+			
+			options += "<optgroup label=\"{tmpl_var name='select_directive_snippet_txt'}\">";
+			for (var i = 0, len = data['snippets'].length; i < len; i++) {
+				var isSelected = '';
+
+				 if ($('#directive_snippets_id').val() == i + 1) {
+					 isSelected = 'selected="selected"';
+				 }
+
+				 options += '<option ' + isSelected + ' value="' + data['snippets'][i]['directive_snippets_id'] + '">' + data['snippets'][i]['name'] + '</option>';
+			}
+			options += '</optgroup>';
 
 			$('#directive_snippets_id').html(options).change();
 		});
 	}
 		
     function reloadWebIP() {
-        loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId);
-        loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId);
+        ISPConfig.loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId<tmpl_if name="use_combobox" value="y">, rerenderSelect2</tmpl_if>);
+        ISPConfig.loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId<tmpl_if name="use_combobox" value="y">, rerenderSelect2</tmpl_if>);
+		<tmpl_if name="use_combobox" value="y">
+		//$('#ip_address').add('#ipv6_address').select2();
+		</tmpl_if>
     }
+	
+	function rerenderSelect2(elem) {
+		$('#'+elem).select2();
+	}
 		
     function reloadFastcgiPHPVersions(noFormChange) {
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) {
             var options = '<option value="">Default</option>';
+			//var options = '';
             var phpfastcgiselected = '';
             $.each(data, function(key, val) {
+				<tmpl_if name="id">
                 if($('#fastcgi_php_version').val() == key){
                     phpfastcgiselected = ' selected="selected"';
                 } else {
                     phpfastcgiselected = '';
                 }
+				</tmpl_else>
+					phpfastcgiselected = '';
+				</tmpl_if>
                 options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>';
             });
+			<tmpl_if name="id">
+			if($('#fastcgi_php_version').val() == ''){
+                phpfastcgiselected = ' selected="selected"';
+            } else {
+                phpfastcgiselected = '';
+            }
+			</tmpl_else>
+				phpfastcgiselected = '';
+			</tmpl_if>
+			options += '<option value=""'+phpfastcgiselected+'>{tmpl_var name="default_php_txt"}</option>';
             $('#fastcgi_php_version').html(options).change();
-            if(noFormChange) resetFormChanged();
+            if(noFormChange) ISPConfig.resetFormChanged();
         });
     }
     
     <tmpl_if name="readonly_tab">
         jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').not('#directive_snippets_id').bind('click mousedown', function(e) { e.preventDefault(); }).focus(function() { $(this).blur(); });
         jQuery('#dom-edit-submit').click(function() {
-			submitForm('pageForm','sites/web_vhost_domain_edit.php');
+			ISPConfig.submitForm('pageForm','sites/web_vhost_domain_edit.php');
         });
     <tmpl_else>
         jQuery('#dom-edit-submit').click(function() {
-            submitForm('pageForm','sites/web_vhost_domain_edit.php');
+            ISPConfig.submitForm('pageForm','sites/web_vhost_domain_edit.php');
         });
     </tmpl_if>
+	
+	if($('#domain').val() == ''){
+		$('#web_folder_domain').text('[DOMAIN]');
+	} else {
+		$('#web_folder_domain').text($('#domain').val());
+	}
+	$('#domain').bind('change keyup', function(){
+		if($(this).val() == ''){
+			$('#web_folder_domain').text('[DOMAIN]');
+		} else {
+			$('#web_folder_domain').text($('#domain').val());
+		}
+	});
+	
+	$('#more_folder_directive_snippets').click(function(){
+		$('.folder_directive_snippets:hidden:first').removeClass('hidden');
+	});
 			
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.9.1