Skip to content

Commit 418a6da

Browse files
author
Till Brehm
committed
Merge branch 'stable-3.1' into 'stable-3.1'
Extended client delete dialog (Implements #4370) See merge request ispconfig/ispconfig3!1060
2 parents 60f8368 + 09da773 commit 418a6da

27 files changed

+148
-38
lines changed

interface/web/client/client_del.php

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,32 @@
5151

5252
class page_action extends tform_actions {
5353

54+
// db_table => info_field for onDelete - empty = show only the amount
55+
private $tables = array(
56+
'cron' => '',
57+
'client' => 'contact_name',
58+
'dns_rr' => '',
59+
'dns_soa' => 'origin',
60+
'dns_slave' => 'origin',
61+
'domain' => 'domain',
62+
'ftp_user' => 'username',
63+
'mail_access' => 'source',
64+
'mail_content_filter' => '',
65+
'mail_domain' => 'domain',
66+
'mail_forwarding' => '',
67+
'mail_get' => '',
68+
'mail_mailinglist' => 'listname',
69+
'mail_user' => 'email',
70+
'mail_user_filter' => '',
71+
'shell_user' => 'username',
72+
'spamfilter_users' => '', 'spamfilter_wblist' => '',
73+
'support_message' => '',
74+
'web_domain' => 'domain',
75+
'web_folder' => 'path',
76+
'web_folder_user' => 'username',
77+
'web_database_user' => 'database_user',
78+
);
79+
5480
function onDelete() {
5581
global $app, $conf, $list_def_file, $tform_def_file;
5682

@@ -80,27 +106,29 @@ function onDelete() {
80106
$this->dataRecord = $app->tform->getDataRecord($this->id);
81107
$client_id = $app->functions->intval($this->dataRecord['client_id']);
82108
$client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ?", $client_id);
83-
84-
// Get all records (sub-clients, mail, web, etc....) of this client.
85-
$tables = 'cron,client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic,domain';
86-
$tables_array = explode(',', $tables);
87-
$client_group_id = $app->functions->intval($client_group['groupid']);
88-
89109
$table_list = array();
110+
$client_group_id = $app->functions->intval($client_group['groupid']);
90111
if($client_group_id > 1) {
91-
foreach($tables_array as $table) {
112+
foreach($this->tables as $table => $field) {
92113
if($table != '') {
93114
$records = $app->db->queryAllRecords("SELECT * FROM ?? WHERE sys_groupid = ?", $table, $client_group_id);
94-
$number = count($records);
95-
if($number > 0) $table_list[] = array('table' => $table."(".$number.")");
115+
if(is_array($records) && !empty($records) && $field !== false) {
116+
$data = array();
117+
$number = count($records);
118+
foreach($records as $rec) {
119+
if($field != '' && $field !== false) $data['data'] .= '<li>'.$rec[$field].'</li>';
120+
}
121+
$data['count'] = $number;
122+
$data['table'] = $table;
123+
$table_list[] = $data;
124+
}
96125
}
97126
}
98127
}
99128

100129
$app->tpl->setVar('id', $this->id);
101130
$app->tpl->setVar('number_records', $number);
102131
$app->tpl->setLoop('records', $table_list);
103-
104132
//* load language file
105133
$lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_client_del.lng';
106134
include $lng_file;
@@ -138,18 +166,17 @@ function onBeforeDelete() {
138166
$app->db->query("DELETE FROM sys_user WHERE client_id = ?", $client_id);
139167

140168
// Delete all records (sub-clients, mail, web, etc....) of this client.
141-
$tables = 'cron,client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_folder,web_folder_user,domain,mail_mailinglist,spamfilter_wblist';
142-
$tables_array = explode(',', $tables);
143169
$client_group_id = $app->functions->intval($client_group['groupid']);
144170
if($client_group_id > 1) {
145-
foreach($tables_array as $table) {
171+
foreach($this->tables as $table => $field) {
146172
if($table != '') {
147173
//* find the primary ID of the table
148174
$table_info = $app->db->tableInfo($table);
149175
$index_field = '';
150176
foreach($table_info as $tmp) {
151177
if($tmp['option'] == 'primary') $index_field = $tmp['name'];
152178
}
179+
153180
//* Delete the records
154181
if($index_field != '') {
155182
$records = $app->db->queryAllRecords("SELECT * FROM ?? WHERE sys_groupid = ? ORDER BY ?? DESC", $table, $client_group_id, $index_field);

interface/web/client/lib/lang/ar_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec
44
$wb['btn_save_txt'] = 'Delete the client';
55
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
66
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/bg_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'This action will delete the following number of rec
44
$wb['btn_save_txt'] = 'Изтрии клиента';
55
$wb['btn_cancel_txt'] = 'Отказ, без изтриване на клиента';
66
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/br_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Esta ação removerá os seguintes registros associ
44
$wb['btn_save_txt'] = 'Remover o cliente';
55
$wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente';
66
$wb['confirm_client_delete_txt'] = 'Você tem certeza que deseja remover este cliente?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/ca_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistreme
44
$wb['btn_save_txt'] = 'Effacer le client';
55
$wb['btn_cancel_txt'] = 'Annuler sans effacer le client';
66
$wb['confirm_client_delete_txt'] = 'Confirmez-vous la suppression de ce client ?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/cz_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Tato akce smaže následující počet záznamů p
44
$wb['btn_save_txt'] = 'Smazat klienta';
55
$wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta';
66
$wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/de_client_del.lng

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ $wb['confirm_action_txt'] = 'Aktion bestätigen';
33
$wb['delete_explanation'] = 'Diese Aktion wird folgende Anzahl an Datensätzen des Kunden löschen';
44
$wb['btn_save_txt'] = 'Kunden löschen';
55
$wb['btn_cancel_txt'] = 'Abbrechen, ohne den Kunden zu löschen';
6-
$wb['confirm_client_delete_txt'] = 'Sind Sie sicher, daß Sie den Kunden löschen möchten?';
6+
$wb['confirm_client_delete_txt'] = 'Sind Sie sicher, dass Sie den Kunden löschen möchte';
7+
$wb['table_txt'] = 'Tabelle';
8+
$wb['data_txt'] = 'Daten';
9+
$wb['list_head_txt'] = 'Kunde löschen';
710
?>

interface/web/client/lib/lang/dk_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Denne handling vil slette følgende antal poster fo
44
$wb['btn_save_txt'] = 'Slet kunden';
55
$wb['btn_cancel_txt'] = 'Annullere uden at slette kunden';
66
$wb['confirm_client_delete_txt'] = 'Er du sikker på at du vil slette denne kunde?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/el_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb['delete_explanation'] = 'Η ενέργεια θα διαγράψει τις
44
$wb['btn_save_txt'] = 'Διαγραφή πελάτη';
55
$wb['btn_cancel_txt'] = 'Ακύρωση χωρίς διαγραφή πελάτη';
66
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

interface/web/client/lib/lang/en_client_del.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ $wb["delete_explanation"] = 'This action will delete the following number of rec
44
$wb["btn_save_txt"] = 'Delete the client';
55
$wb["btn_cancel_txt"] = 'Cancel without deleting the client';
66
$wb["confirm_client_delete_txt"] = 'Are you sure you want to delete this client?';
7+
$wb['list_head_txt'] = 'Delete Client';
8+
$wb['table_txt'] = 'Table';
9+
$wb['data_txt'] = 'Data';
710
?>

0 commit comments

Comments
 (0)