From 8173c6f28d9fd55fa249d76330bf7709923c4fcd Mon Sep 17 00:00:00 2001
From: Falko Timme <ft@falkotimme.com>
Date: Wed, 07 Jan 2015 08:40:35 -0500
Subject: [PATCH] - Added option to fill fields on SSL tab with client data by clicking on a link.

---
 interface/web/sites/web_vhost_domain_edit.php          |   12 ++++++
 interface/web/sites/ajax_get_json.php                  |   38 +++++++++++++++++++
 interface/web/sites/lib/lang/en_web_vhost_domain.lng   |    3 +
 interface/lib/classes/db_mysql.inc.php                 |    2 
 interface/web/sites/lib/lang/de_web_vhost_domain.lng   |    3 +
 interface/web/sites/templates/web_vhost_domain_ssl.htm |   34 ++++++++++++++++
 6 files changed, 90 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index d9ec9b8..c076c35 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -252,7 +252,7 @@
 		$sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs);
 		$this->securityScan($sQuery);
 
-		$this->_iQueryId = mysqli_query($this->_iConnId, $sQuery);
+		$this->_iQueryId = @mysqli_query($this->_iConnId, $sQuery);
 		if (!$this->_iQueryId) {
 			$this->_sqlerror('Falsche Anfrage / Wrong Query', false, 'SQL-Query = ' . $sQuery);
 			return false;
diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php
index fb2f1c0..243c158 100644
--- a/interface/web/sites/ajax_get_json.php
+++ b/interface/web/sites/ajax_get_json.php
@@ -201,6 +201,44 @@
 	$json = json_encode($snippets);
 }
 
+if($type == 'getclientssldata'){
+	$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", intval($web_id));
+	$sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", intval($web['sys_groupid']));
+	$client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", intval($sys_group['client_id']));
+	if(is_array($client) && !empty($client)){
+		if($client['telephone'] == '' && $client['mobile'] != '') $client['telephone'] = $client['mobile'];
+		
+		$fname = '';
+		$lname = '';
+		$parts = preg_split("/\s+/", $client['contact_name']);
+		if(sizeof($parts) == 2){
+			$fname = $parts[0];
+			$lname = $parts[1];
+		}
+		if(sizeof($parts) > 2){
+			$fname = $parts[0].' ';
+			for($i=1;$i<sizeof($parts);$i++){
+				if($i == (sizeof($parts) - 1)){
+					$lname .= $parts[$i];
+				} else {
+					if(preg_match('@^(von|van|ten|ter|zur|zu|auf|sieber)$@i', $parts[$i])){
+						$lname .= implode(' ', array_slice($parts, $i));
+						break;
+					} else {
+						$fname .= $parts[$i].' ';
+					}
+				}
+			}
+		}
+		$fname = trim($fname);
+		$lname = trim($lname);
+		$client['fname'] = $fname;
+		$client['lname'] = $lname;
+		if(trim($client['company_name']) == '') $client['company_name'] = $fname.' '.$lname;
+	}
+	$json = $app->functions->json_encode($client);
+}
+
 //}
 
 header('Content-type: application/json');
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
index a6b866d..7917cae 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -137,4 +137,7 @@
 $wb['btn_save_txt'] = 'Speichern';
 $wb['btn_cancel_txt'] = 'Abbrechen';
 $wb['enable_spdy_txt'] = 'Aktiviere SPDY';
+$wb['load_client_data_txt'] = 'Kundendaten übernehmen';
+$wb['load_my_data_txt'] = 'Meine Kontaktdaten laden';
+$wb['reset_client_data_txt'] = 'Daten verwerfen';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
index 3be30d0..8af57ff 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -140,4 +140,7 @@
 $wb['btn_save_txt'] = "Save";
 $wb['btn_cancel_txt'] = "Cancel";
 $wb['enable_spdy_txt'] = 'Enable SPDY';
+$wb['load_client_data_txt'] = 'Load client details';
+$wb['load_my_data_txt'] = 'Load my contact details';
+$wb['reset_client_data_txt'] = 'Reset data';
 ?>
diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm
index e910e22..9046746 100644
--- a/interface/web/sites/templates/web_vhost_domain_ssl.htm
+++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm
@@ -14,6 +14,12 @@
 
     <div class="pnl_formsarea">
         <fieldset class="inlineLabels">
+			<tmpl_if name='show_helper_links'>
+				<div class="ctrlHolder" id="show_helper_links" style="display:none;">
+					<label></label>
+					<a href="javascript:void(0);" id="load_data"><tmpl_if name='is_admin'>{tmpl_var name='load_client_data_txt'}</tmpl_else>{tmpl_var name='load_my_data_txt'}</tmpl_if></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" id="reset_data">{tmpl_var name='reset_client_data_txt'}</a>
+				</div>
+			</tmpl_if>
             <div class="ctrlHolder">
                 <label for="ssl_state">{tmpl_var name='ssl_state_txt'}</label>
                 <input name="ssl_state" id="ssl_state" value="{tmpl_var name='ssl_state'}" size="30" maxlength="255" type="text" class="textInput" />
@@ -37,7 +43,7 @@
                 </select>
             </div>
             <div class="ctrlHolder">
-                <label for="client_group_id">{tmpl_var name='ssl_domain_txt'}</label>
+                <label for="ssl_domain">{tmpl_var name='ssl_domain_txt'}</label>
                 <select name="ssl_domain" id="ssl_domain" class="selectInput">
                     {tmpl_var name='ssl_domain'}
                 </select>
@@ -83,3 +89,29 @@
     </div>
 
 </div>
+<script language="JavaScript" type="text/javascript">
+	<tmpl_if name='show_helper_links'>
+	if($("input[name=id]").val() > 0) $('#show_helper_links:hidden').show();
+
+	$('#reset_data').click(function(){
+		$('#ssl_organisation').add('#ssl_locality').add('#ssl_state').add('#ssl_organisation_unit').val('');
+		$('#ssl_country').val($("#ssl_country option:first").val());
+	});
+	$('#load_data').click(function(){
+		loadClientData();
+	});
+	
+	
+	function loadClientData() {
+        var web_id = $("input[name=id]").val();
+        
+        jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {'web_id': web_id, 'type': "getclientssldata"}, function(data) {
+			$('#ssl_organisation').val(data['company_name']);
+			$('#ssl_locality').val(data['city']);
+			$('#ssl_country').val(data['country']);
+			$('#ssl_state').val(data['state']);
+			$('#ssl_organisation_unit').val('IT');
+        });
+    }
+	</tmpl_if>
+</script>
\ No newline at end of file
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 27ece43..6e7d434 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -142,6 +142,8 @@
 		$read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl');
 
 		if($this->_vhostdomain_type != 'domain') $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
+		
+		$is_admin = false;
 
 		//* Client: If the logged in user is not admin and has no sub clients (no reseller)
 		if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
@@ -451,6 +453,8 @@
 
 			//* Admin: If the logged in user is admin
 		} else {
+		
+			$is_admin = true;
 
 			if($this->_vhostdomain_type == 'domain') {
 				// The user is admin, so we fill in all IP addresses of the server
@@ -700,6 +704,14 @@
 		$app->tpl->setVar('vhostdomain_type', $this->_vhostdomain_type);
 
 		$app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y'));
+		$app->tpl->setVar("is_admin", $is_admin);
+		
+		if($this->id > 0) {
+			$tmp_web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", intval($this->id));
+			$tmp_sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", intval($tmp_web['sys_groupid']));
+			if(intval($tmp_sys_group['client_id']) > 0) $tmp_client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", intval($tmp_sys_group['client_id']));
+			if(is_array($tmp_client) && !empty($tmp_client) && trim($this->dataRecord['ssl_organisation']) == '' && trim($this->dataRecord['ssl_locality']) == '' && trim($this->dataRecord['ssl_state']) == '' && trim($this->dataRecord['ssl_organisation_unit']) == '') $app->tpl->setVar("show_helper_links", true);
+		}
 
 		parent::onShowEnd();
 	}

--
Gitblit v1.9.1