From 94c9617ebd5497ae8801a0c6e4b30999fcf23872 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 10 Jan 2014 09:17:39 -0500
Subject: [PATCH] - Added support for reseller templates. - Resellers can use templates for their clients.

---
 interface/web/client/lib/lang/pl.lng                           |    3 
 interface/web/client/lib/lang/fi.lng                           |    3 
 interface/web/client/lib/lang/id.lng                           |    3 
 interface/web/client/lib/lang/hu.lng                           |    3 
 interface/web/client/lib/lang/bg.lng                           |    3 
 interface/web/client/lib/lang/el.lng                           |    3 
 interface/web/client/client_edit.php                           |    5 +
 interface/web/client/templates/reseller_edit_limits.htm        |   79 ++++++++++++---
 interface/web/client/lib/lang/sk.lng                           |    3 
 interface/web/client/lib/lang/pt.lng                           |    3 
 interface/web/client/lib/lang/ar.lng                           |    3 
 interface/web/client/templates/client_template_edit_limits.htm |    8 +
 interface/web/client/lib/module.conf.php                       |   15 +++
 interface/web/client/reseller_edit.php                         |   47 +++++++++
 interface/web/client/lib/lang/ru.lng                           |    3 
 interface/web/client/templates/client_edit_limits.htm          |    9 -
 interface/web/client/lib/lang/de.lng                           |    3 
 interface/web/client/lib/lang/tr.lng                           |    3 
 interface/web/client/lib/lang/hr.lng                           |    3 
 interface/web/client/lib/lang/en.lng                           |    3 
 interface/web/client/client_template_edit.php                  |   12 ++
 interface/web/client/lib/lang/br.lng                           |    3 
 interface/web/client/lib/lang/ja.lng                           |    3 
 interface/web/client/lib/lang/ro.lng                           |    3 
 interface/lib/classes/client_templates.inc.php                 |    4 
 interface/web/client/lib/lang/nl.lng                           |    3 
 interface/lib/classes/custom_datasource.inc.php                |    2 
 interface/web/client/lib/lang/cz.lng                           |    3 
 interface/web/client/form/client_template.tform.php            |   14 ++
 interface/web/client/lib/lang/es.lng                           |    3 
 interface/web/client/lib/lang/se.lng                           |    3 
 interface/web/client/lib/lang/fr.lng                           |    3 
 32 files changed, 211 insertions(+), 50 deletions(-)

diff --git a/interface/lib/classes/client_templates.inc.php b/interface/lib/classes/client_templates.inc.php
index bdf9b16..64beb9e 100644
--- a/interface/lib/classes/client_templates.inc.php
+++ b/interface/lib/classes/client_templates.inc.php
@@ -106,9 +106,10 @@
 		/*
          * Get the master-template for the client
          */
-		$sql = "SELECT template_master, template_additional FROM client WHERE client_id = " . $app->functions->intval($clientId);
+		$sql = "SELECT template_master, template_additional,limit_client FROM client WHERE client_id = " . $app->functions->intval($clientId);
 		$record = $app->db->queryOneRecord($sql);
 		$masterTemplateId = $record['template_master'];
+		$is_reseller = ($record['limit_client'] > 0)?true:false;
 
 		if($record['template_additional'] != '') {
 			// we have to call the update_client_templates function
@@ -222,6 +223,7 @@
          * Write all back to the database
          */
 		$update = '';
+		if(!$is_reseller) unset($limits['limit_client']); // Only Resellers may have limit_client set in template to ensure that we do not convert a client to reseller accidently.
 		foreach($limits as $k => $v){
 			if ((strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
 				if ($update != '') $update .= ', ';
diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php
index 5fa0e9e..f8b11bd 100644
--- a/interface/lib/classes/custom_datasource.inc.php
+++ b/interface/lib/classes/custom_datasource.inc.php
@@ -32,7 +32,7 @@
 
 	function master_templates($field, $record) {
 		global $app, $conf;
-		$records = $app->db->queryAllRecords("SELECT template_id,template_name FROM client_template WHERE template_type ='m'");
+		$records = $app->db->queryAllRecords("SELECT template_id,template_name FROM client_template WHERE template_type ='m' and ".$app->tform->getAuthSQL('r'));
 		$records_new[0] = $app->lng('Custom');
 		foreach($records as $rec) {
 			$key = $rec['template_id'];
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index 402b0db..2e4f943 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -92,6 +92,11 @@
 				}
 			}
 		}
+		
+		//* Resellers shall not be able to create another reseller
+		if($_SESSION["s"]["user"]["typ"] == 'user') {
+			$this->dataRecord['limit_client'] = 0;
+		}
 
 		if($this->id != 0) {
 			$this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $this->id);
diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php
index d956faf..5a379ee 100644
--- a/interface/web/client/client_template_edit.php
+++ b/interface/web/client/client_template_edit.php
@@ -51,6 +51,18 @@
 
 class page_action extends tform_actions {
 
+	
+	function onSubmit() {
+		global $app;
+		
+		//* Resellers shall not be able to create another reseller
+		if($_SESSION["s"]["user"]["typ"] == 'user') {
+			$this->dataRecord['limit_client'] = 0;
+		}
+		
+		parent::onSubmit();
+	}
+	
 	function onBeforeUpdate() {
 		global $app;
 
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index ecf61f7..f9d9f6b 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -101,6 +101,20 @@
 		//#################################
 		// Begin Datatable fields
 		//#################################
+		'limit_client' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array ( 'type' => 'ISINT',
+					'errmsg'=> 'limit_client_error_notint'),
+			),
+			'default' => '1',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '10',
+			'maxlength' => '10',
+			'rows'  => '',
+			'cols'  => ''
+		),
 		'limit_maildomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
diff --git a/interface/web/client/lib/lang/ar.lng b/interface/web/client/lib/lang/ar.lng
index 88e0f8f..bb03af8 100644
--- a/interface/web/client/lib/lang/ar.lng
+++ b/interface/web/client/lib/lang/ar.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Add Client';
 $wb['Edit Client'] = 'Edit Client';
 $wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Edit Client-Templates';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Add Reseller';
 $wb['Edit Reseller'] = 'Edit Reseller';
 $wb['Resellers'] = 'Resellers';
diff --git a/interface/web/client/lib/lang/bg.lng b/interface/web/client/lib/lang/bg.lng
index e441730..836fc56 100644
--- a/interface/web/client/lib/lang/bg.lng
+++ b/interface/web/client/lib/lang/bg.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Добавяне на клиент';
 $wb['Edit Client'] = 'Редактиране на клиент';
 $wb['Clients'] = 'Клиенти';
-$wb['Edit Client-Templates'] = 'Редактирай Клиентски-Шаблон';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Добави дистрибутор';
 $wb['Edit Reseller'] = 'Редактирай дистрибутор';
 $wb['Resellers'] = 'Дистрибутори';
diff --git a/interface/web/client/lib/lang/br.lng b/interface/web/client/lib/lang/br.lng
index bb73de1..2604940 100644
--- a/interface/web/client/lib/lang/br.lng
+++ b/interface/web/client/lib/lang/br.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Adcionar Cliente';
 $wb['Edit Client'] = 'Editar Cliente';
 $wb['Clients'] = 'Clientes';
-$wb['Edit Client-Templates'] = 'Editar Gabaritos de Clientes';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Adcionar Revendedor';
 $wb['Edit Reseller'] = 'Editar Revendedor';
 $wb['Resellers'] = 'Revendedores';
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index fa1c78d..38d1ac8 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Přidat klienta';
 $wb['Edit Client'] = 'Upravit klienta';
 $wb['Clients'] = 'Klienti';
-$wb['Edit Client-Templates'] = 'Upravit klientské šablony';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Přidat distributora';
 $wb['Edit Reseller'] = 'Upravit distributora';
 $wb['Resellers'] = 'Distributoři (prodejci)';
diff --git a/interface/web/client/lib/lang/de.lng b/interface/web/client/lib/lang/de.lng
index 742acf4..6a41e0f 100644
--- a/interface/web/client/lib/lang/de.lng
+++ b/interface/web/client/lib/lang/de.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Kunde hinzufügen';
 $wb['Edit Client'] = 'Kunde bearbeiten';
 $wb['Clients'] = 'Kunden';
-$wb['Edit Client-Templates'] = 'Kundenvorlagen';
+$wb['Templates'] = 'Vorlagen';
+$wb['Limit-Templates'] = 'Kundenvorlagen';
 $wb['Add Reseller'] = 'Reseller hinzufügen';
 $wb['Edit Reseller'] = 'Reseller bearbeiten';
 $wb['Resellers'] = 'Reseller';
diff --git a/interface/web/client/lib/lang/el.lng b/interface/web/client/lib/lang/el.lng
index 7d4f4fa..fe70d3f 100644
--- a/interface/web/client/lib/lang/el.lng
+++ b/interface/web/client/lib/lang/el.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Νέος Πελάτης';
 $wb['Edit Client'] = 'Επεξεργασία Πελάτη';
 $wb['Clients'] = 'Πελάτες';
-$wb['Edit Client-Templates'] = 'Επεξεργασία προτύπων πελατών';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Νέος Μεταπωλητής';
 $wb['Edit Reseller'] = 'Επεξεργασία Μεταπωλητή';
 $wb['Resellers'] = 'Μεταπωλητές';
diff --git a/interface/web/client/lib/lang/en.lng b/interface/web/client/lib/lang/en.lng
index 46cdb4a..d901b7a 100644
--- a/interface/web/client/lib/lang/en.lng
+++ b/interface/web/client/lib/lang/en.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Add Client';
 $wb['Edit Client'] = 'Edit Client';
 $wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Edit Client-Templates';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Add Reseller';
 $wb['Edit Reseller'] = 'Edit Reseller';
 $wb['Resellers'] = 'Resellers';
diff --git a/interface/web/client/lib/lang/es.lng b/interface/web/client/lib/lang/es.lng
index fb636c3..da72048 100644
--- a/interface/web/client/lib/lang/es.lng
+++ b/interface/web/client/lib/lang/es.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Añadir cliente';
 $wb['Edit Client'] = 'Editar cliente';
 $wb['Clients'] = 'Clientes';
-$wb['Edit Client-Templates'] = 'Editar plantillas de clientes';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Añadir revendedor';
 $wb['Edit Reseller'] = 'Editar revendedor';
 $wb['Resellers'] = 'Revendedores';
diff --git a/interface/web/client/lib/lang/fi.lng b/interface/web/client/lib/lang/fi.lng
index 6f3dd5a..d440dfe 100755
--- a/interface/web/client/lib/lang/fi.lng
+++ b/interface/web/client/lib/lang/fi.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Lisää asiakas';
 $wb['Edit Client'] = 'Muokkaa asiakkaan tietoja';
 $wb['Clients'] = 'Asiakkaat';
-$wb['Edit Client-Templates'] = 'Muokkaa asiakasmalleja';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Lisää uusi jälleenmyyjä';
 $wb['Edit Reseller'] = 'Muokkaa jälleenmyyjää';
 $wb['Resellers'] = 'Jälleenmyyjät';
diff --git a/interface/web/client/lib/lang/fr.lng b/interface/web/client/lib/lang/fr.lng
index 8676a29..02d06df 100644
--- a/interface/web/client/lib/lang/fr.lng
+++ b/interface/web/client/lib/lang/fr.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Ajouter un Client';
 $wb['Edit Client'] = 'Editer un Client';
 $wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Editer les modèles de Clients';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Ajouter un Revendeur';
 $wb['Edit Reseller'] = 'Editer un Revendeur';
 $wb['Resellers'] = 'Revendeurs';
diff --git a/interface/web/client/lib/lang/hr.lng b/interface/web/client/lib/lang/hr.lng
index 74e37dd..137f9bb 100644
--- a/interface/web/client/lib/lang/hr.lng
+++ b/interface/web/client/lib/lang/hr.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Dodaj klijenta';
 $wb['Edit Client'] = 'Editiraj klijenta';
 $wb['Clients'] = 'Klijenti';
-$wb['Edit Client-Templates'] = 'Editiraj predložak za klijente';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Dodaj preprodavača';
 $wb['Edit Reseller'] = 'Editiraj preprodavača';
 $wb['Resellers'] = 'Preprodavači';
diff --git a/interface/web/client/lib/lang/hu.lng b/interface/web/client/lib/lang/hu.lng
index 84311fe..84beaf5 100644
--- a/interface/web/client/lib/lang/hu.lng
+++ b/interface/web/client/lib/lang/hu.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Ügyfél hozzáadása';
 $wb['Edit Client'] = 'Ügyfél adatok szerkesztése';
 $wb['Clients'] = 'Ügyfelek';
-$wb['Edit Client-Templates'] = 'Ügyfél-Sablonok szerkesztése';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Új Viszonteladó';
 $wb['Edit Reseller'] = 'Viszonteladók szerkesztése';
 $wb['Resellers'] = 'Viszonteladók';
diff --git a/interface/web/client/lib/lang/id.lng b/interface/web/client/lib/lang/id.lng
index 280dd42..8459d16 100644
--- a/interface/web/client/lib/lang/id.lng
+++ b/interface/web/client/lib/lang/id.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Tambah Klien';
 $wb['Edit Client'] = 'Sunting Klien';
 $wb['Clients'] = 'Klien';
-$wb['Edit Client-Templates'] = 'Sunting Template Klien';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Tambah Reseller';
 $wb['Edit Reseller'] = 'Sunting Reseller';
 $wb['Resellers'] = 'Reseller';
diff --git a/interface/web/client/lib/lang/ja.lng b/interface/web/client/lib/lang/ja.lng
index 716fc07..c0c0971 100644
--- a/interface/web/client/lib/lang/ja.lng
+++ b/interface/web/client/lib/lang/ja.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'クライアントを追加する';
 $wb['Edit Client'] = 'クライアントを編集する';
 $wb['Clients'] = 'クライアント';
-$wb['Edit Client-Templates'] = 'クライアントテンプレートを編集する';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'リセラーを追加する';
 $wb['Edit Reseller'] = 'リセラーを編集する';
 $wb['Resellers'] = 'リセラー';
diff --git a/interface/web/client/lib/lang/nl.lng b/interface/web/client/lib/lang/nl.lng
index 75add75..2ebe389 100644
--- a/interface/web/client/lib/lang/nl.lng
+++ b/interface/web/client/lib/lang/nl.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Toevoegen klant';
 $wb['Edit Client'] = 'Wijzigen klant';
 $wb['Clients'] = 'klanten';
-$wb['Edit Client-Templates'] = 'Wijzig klant-template';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Toevoegen Reseller';
 $wb['Edit Reseller'] = 'Wijzigen Reseller';
 $wb['Resellers'] = 'Resellers';
diff --git a/interface/web/client/lib/lang/pl.lng b/interface/web/client/lib/lang/pl.lng
index 2727435..12dc65c 100644
--- a/interface/web/client/lib/lang/pl.lng
+++ b/interface/web/client/lib/lang/pl.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Dodaj klienta';
 $wb['Edit Client'] = 'Edytuj klienta';
 $wb['Clients'] = 'Klienci';
-$wb['Edit Client-Templates'] = 'Edytuj szablony klientów';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Dodaj Resellera';
 $wb['Edit Reseller'] = 'Edytuj Resellera';
 $wb['Resellers'] = 'Resellerzy';
diff --git a/interface/web/client/lib/lang/pt.lng b/interface/web/client/lib/lang/pt.lng
index 181ab88..cd56569 100644
--- a/interface/web/client/lib/lang/pt.lng
+++ b/interface/web/client/lib/lang/pt.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Adicionar Cliente';
 $wb['Edit Client'] = 'Editar Cliente';
 $wb['Clients'] = 'Clientes';
-$wb['Edit Client-Templates'] = 'Editar Templates de Clientes';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Adicionar Revendedor';
 $wb['Edit Reseller'] = 'Editar Revendedor';
 $wb['Resellers'] = 'Revendedores';
diff --git a/interface/web/client/lib/lang/ro.lng b/interface/web/client/lib/lang/ro.lng
index 88e0f8f..bb03af8 100644
--- a/interface/web/client/lib/lang/ro.lng
+++ b/interface/web/client/lib/lang/ro.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Add Client';
 $wb['Edit Client'] = 'Edit Client';
 $wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Edit Client-Templates';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Add Reseller';
 $wb['Edit Reseller'] = 'Edit Reseller';
 $wb['Resellers'] = 'Resellers';
diff --git a/interface/web/client/lib/lang/ru.lng b/interface/web/client/lib/lang/ru.lng
index 5d37029..087e68b 100644
--- a/interface/web/client/lib/lang/ru.lng
+++ b/interface/web/client/lib/lang/ru.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Добавить клиента';
 $wb['Edit Client'] = 'Изменить клиента';
 $wb['Clients'] = 'Клиенты';
-$wb['Edit Client-Templates'] = 'Изменить шаблон клиента';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Добавить реселлера';
 $wb['Edit Reseller'] = 'Изменить реселлера';
 $wb['Resellers'] = 'Реселлеры';
diff --git a/interface/web/client/lib/lang/se.lng b/interface/web/client/lib/lang/se.lng
index 88e0f8f..bb03af8 100644
--- a/interface/web/client/lib/lang/se.lng
+++ b/interface/web/client/lib/lang/se.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Add Client';
 $wb['Edit Client'] = 'Edit Client';
 $wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Edit Client-Templates';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Add Reseller';
 $wb['Edit Reseller'] = 'Edit Reseller';
 $wb['Resellers'] = 'Resellers';
diff --git a/interface/web/client/lib/lang/sk.lng b/interface/web/client/lib/lang/sk.lng
index e9d300c..6351f3d 100644
--- a/interface/web/client/lib/lang/sk.lng
+++ b/interface/web/client/lib/lang/sk.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Pridať klienta';
 $wb['Edit Client'] = 'Upraviť klienta';
 $wb['Clients'] = 'Klienti';
-$wb['Edit Client-Templates'] = 'Upraviť klient-Šablónu';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Pridať nového predajcu';
 $wb['Edit Reseller'] = 'Upraviť predajcu';
 $wb['Resellers'] = 'Predajcovia';
diff --git a/interface/web/client/lib/lang/tr.lng b/interface/web/client/lib/lang/tr.lng
index 96dd7a0..8a98a13 100644
--- a/interface/web/client/lib/lang/tr.lng
+++ b/interface/web/client/lib/lang/tr.lng
@@ -5,7 +5,8 @@
 $wb['Add Client'] = 'Müşteri Ekle';
 $wb['Edit Client'] = 'Müşteri Düzenle';
 $wb['Clients'] = 'Müşteriler';
-$wb['Edit Client-Templates'] = 'Müşteri-Şablon Düzenle';
+$wb['Templates'] = 'Templates';
+$wb['Limit-Templates'] = 'Limit-Templates';
 $wb['Add Reseller'] = 'Reseller Ekle';
 $wb['Edit Reseller'] = 'Reseller Düzenle';
 $wb['Resellers'] = 'Resellerlar';
diff --git a/interface/web/client/lib/module.conf.php b/interface/web/client/lib/module.conf.php
index bfb6ac8..92775ea 100644
--- a/interface/web/client/lib/module.conf.php
+++ b/interface/web/client/lib/module.conf.php
@@ -66,6 +66,21 @@
 
 unset($items);
 
+//if($_SESSION["s"]["user"]["typ"] == 'admin'){
+	$items[] = array(   'title'  => "Limit-Templates",
+		'target'  => 'content',
+		'link' => 'client/client_template_list.php',
+		'html_id'   => 'client_template_list');
+
+
+$module["nav"][] = array(   'title' => 'Templates',
+	'open'  => 1,
+	'items' => $items);
+
+unset($items);
+//}
+
+
 $app->uses('ini_parser,getconf');
 $settings = $app->getconf->get_global_config('domains');
 
diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php
index 4f0a1db..c8868da 100644
--- a/interface/web/client/reseller_edit.php
+++ b/interface/web/client/reseller_edit.php
@@ -94,6 +94,26 @@
 				}
 			}
 		}
+		
+		if($this->id != 0) {
+			$this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $this->id);
+			if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) {
+				// check previous type of storing templates
+				$tpls = explode('/', $this->oldDataRecord['template_additional']);
+				$this->oldTemplatesAssigned = array();
+				foreach($tpls as $item) {
+					$item = trim($item);
+					if(!$item) continue;
+					$this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $this->id);
+				}
+				unset($tpls);
+			}
+		} else {
+			$this->oldTemplatesAssigned = array();
+		}
+
+		$this->_template_additional = explode('/', $this->dataRecord['template_additional']);
+		$this->dataRecord['template_additional'] = '';
 
 		parent::onSubmit();
 	}
@@ -117,13 +137,27 @@
 		$result = $app->db->queryAllRecords('SELECT assigned_template_id, client_template_id FROM client_template_assigned WHERE client_id = ' . $this->id);
 		if($result && count($result) > 0) {
 			// new style
+			$items = array();
 			$text = '';
 			foreach($result as $item){
 				if (trim($item['client_template_id']) != ''){
 					if ($text != '') $text .= '';
-					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']]. '<a href="#" class="button icons16 icoDelete"></a></li>';
+					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
+					$text .= '<a href="#" class="button icons16 icoDelete"></a>';
+					$tmp = new stdClass();
+					$tmp->id = $item['assigned_template_id'];
+					$tmp->data = '';
+					$app->plugin->raiseEvent('get_client_template_details', $tmp);
+					if($tmp->data != '') $text .= '<br /><em>' . $tmp->data . '</em>';
+
+					$text .= '</li>';
+					$items[] = $item['assigned_template_id'] . ':' . $item['client_template_id'];
 				}
 			}
+
+			$tmprec = $app->tform->getHTML(array('template_additional' => implode('/', $items)), $this->active_tab, 'EDIT');
+			$app->tpl->setVar('template_additional', $tmprec['template_additional']);
+			unset($tmprec);
 		} else {
 			// old style
 			$sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
@@ -139,6 +173,7 @@
 		}
 
 		$app->tpl->setVar('template_additional_list', $text);
+		$app->tpl->setVar('app_module', 'client');
 		
 		//* Set the 'customer no' default value
 		if($this->id == 0) {
@@ -212,6 +247,11 @@
 
 		$sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_slave_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id;
 		$app->db->query($sql);
+		
+		if(isset($this->dataRecord['template_master'])) {
+			$app->uses('client_templates');
+			$app->client_templates->update_client_templates($this->id, $this->_template_additional);
+		}
 		
 		if($this->dataRecord['customer_no'] == $this->dataRecord['customer_no_org']) {
 			//* get the system config
@@ -288,6 +328,11 @@
 			$sql = "UPDATE sys_user SET modules = '$modules' WHERE client_id = $client_id";
 			$app->db->query($sql);
 		}
+		
+		if(isset($this->dataRecord['template_master'])) {
+			$app->uses('client_templates');
+			$app->client_templates->update_client_templates($this->id, $this->_template_additional);
+		}
 
 		parent::onAfterUpdate();
 	}
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index ba349b6..49be46b 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -3,7 +3,6 @@
 
 <div class="panel panel_client">
 
-    <tmpl_if name="is_admin">
         <div class="pnl_toolsarea">
             <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
                 <div class="buttons topbuttons">
@@ -11,11 +10,9 @@
                 </div>
             </fieldset>
         </div>
-    </tmpl_if>
 
     <div class="pnl_formsarea">
         <fieldset class="inlineLabels"><legend>Limits</legend>
-            <tmpl_if name="is_admin">
                 <div class="ctrlHolder">
                     <label for="template_master">{tmpl_var name='template_master_txt'}</label>
                     <select name="template_master" id="template_master" class="selectInput">
@@ -40,7 +37,6 @@
                 <div class="ctrlHolder">
                     &nbsp;
                 </div>
-            </tmpl_if>
             <div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div>
             <div>
                 <div class="ctrlHolder">
@@ -301,7 +297,7 @@
     </div>
 
 </div>
-<tmpl_if name="is_admin">
+
 <script type="text/javascript">
 <!--
 function custom_template_selected() {
@@ -329,5 +325,4 @@
         });
 
 //-->
-</script>
-</tmpl_if>
\ No newline at end of file
+</script>
\ No newline at end of file
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index 18abc9b..5f1e37b 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -5,7 +5,13 @@
 
     <div class="pnl_formsarea">
         <fieldset class="inlineLabels"><legend>Limits</legend>
-            <div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div>
+            <tmpl_if name="is_admin">
+			<div class="ctrlHolder">
+                <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
+                <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+            </div>
+			</tmpl_if>
+			<div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div>
             <div>
                 <div class="ctrlHolder">
                     <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label>
diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm
index a115dc8..0d3cb19 100644
--- a/interface/web/client/templates/reseller_edit_limits.htm
+++ b/interface/web/client/templates/reseller_edit_limits.htm
@@ -3,29 +3,44 @@
 
 <div class="panel panel_client">
 
+	<tmpl_if name="is_admin">
+		<div class="pnl_toolsarea">
+			<fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
+			<div class="buttons topbuttons">
+				<button class="positive iconstxt icoAdd" type="button" value="{tmpl_var name='add_additional_template_txt'}" onclick="addAdditionalTemplate();"><span>{tmpl_var name='add_additional_template_txt'}</span></button>
+			</div>
+			</fieldset>
+		</div>
+	</tmpl_if>
+
     <div class="pnl_formsarea">
         <fieldset class="inlineLabels"><legend>Limits</legend>
-            <!--
-            <tmpl_if name="is_admin">
-                  <div class="ctrlHolder">
+			<tmpl_if name="is_admin">
+                <div class="ctrlHolder">
                     <label for="template_master">{tmpl_var name='template_master_txt'}</label>
                     <select name="template_master" id="template_master" class="selectInput">
-                                                    {tmpl_var name='template_master'}
-                                            </select>
-                  </div>
-                  <div class="ctrlHolder">
+                        {tmpl_var name='template_master'}
+                    </select>
+                </div>
+                <div class="ctrlHolder">
                     <label for="template_additional">{tmpl_var name='template_additional_txt'}</label>
                     <select name="tpl_add_select" id="tpl_add_select" class="selectInput">
-                                                    {tmpl_var name='tpl_add_select'}
-                                            </select>
-                          <span id="template_additional_list">{tmpl_var name='template_additional_list'}</span>
-                              <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}">
-                  </div>
-                      <div class="ctrlHolder">
-                        &nbsp;
-                      </div>
+                        {tmpl_var name='tpl_add_select'}
+                    </select>
+                </div>
+                <div class="ctrlHolder">
+                    <p class="label">{tmpl_var name='active_template_additional_txt'}</p>
+                    <div id="template_additional_list" class="multiField">
+                        <ul>
+                        {tmpl_var name='template_additional_list'}
+                        </ul>
+                    </div>
+                    <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}">
+                </div>
+                <div class="ctrlHolder">
+                    &nbsp;
+                </div>
             </tmpl_if>
-            -->
             <div class="ctrlHolder">
                 <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
                 <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
@@ -301,4 +316,34 @@
         </div>
     </div>
 
-</div>
\ No newline at end of file
+</div>
+<tmpl_if name="is_admin">
+<script type="text/javascript">
+<!--
+function custom_template_selected() {
+    return ($('#template_master').val() == '0' ? true : false);
+}
+
+jQuery('#template_additional_list').find('li > a').click(function(e) {
+    e.preventDefault();
+    delAdditionalTemplate($(this).parent().attr('rel'));
+});
+
+jQuery('div.panel_client')
+        .find('div.pnl_formsarea')
+        .find('fieldset')
+        .find('input,select,button')
+        .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver')
+        .click(function(e) {
+            if(custom_template_selected()) return true;
+            e.preventDefault();
+            alert('{tmpl_var name="err_msg_master_tpl_set"}');
+        })
+        .focus(function() {
+            if(custom_template_selected()) return true;
+            $(this).blur();
+        });
+
+//-->
+</script>
+</tmpl_if>
\ No newline at end of file

--
Gitblit v1.9.1