Skip to content

Commit 6aa0690

Browse files
committed
update affected websites when a directive snippet was updated (Implements #5632)
1 parent 3caef95 commit 6aa0690

33 files changed

+139
-5
lines changed

install/sql/incremental/upd_dev_collection.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,6 @@ ALTER TABLE `mail_user` MODIFY `move_junk` enum('y','a','n') NOT NULL DEFAULT 'y
6262

6363
-- Change id_rsa column to TEXT format
6464
ALTER TABLE `client` CHANGE `id_rsa` `id_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
65+
66+
ALTER TABLE `directive_snippets` ADD `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n' ;
67+

install/sql/ispconfig3.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` (
470470
`required_php_snippets` varchar(255) NOT NULL DEFAULT '',
471471
`active` enum('n','y') NOT NULL DEFAULT 'y',
472472
`master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0',
473+
`update_sites` ENUM('y','n') NOT NULL DEFAULT 'n',
473474
PRIMARY KEY (`directive_snippets_id`)
474475
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
475476

interface/web/admin/directive_snippets_edit.php

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,22 +75,52 @@ function onShowEnd() {
7575
$app->tpl->setVar("snippet", $this->dataRecord['snippet'], true);
7676
}
7777
}
78+
7879
$app->tpl->setVar("is_master", $is_master);
80+
81+
if($this->dataRecord['managed_snippet_id'] > 0) {
82+
}
7983

8084
parent::onShowEnd();
8185
}
8286

8387
function onSubmit() {
8488
global $app, $conf;
85-
89+
8690
if($this->id > 0){
8791
$record = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ?", $this->id);
8892
if($record['master_directive_snippets_id'] > 0){
8993
unset($app->tform->formDef["tabs"]['directive_snippets']['fields']['name'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['type'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['snippet'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['required_php_snippets']);
9094
}
95+
96+
if(isset($this->dataRecord['update_sites'])) {
97+
parent::onSubmit();
98+
} else {
99+
$app->db->query('UPDATE directive_snippets SET name = ?, type = ?, snippet = ?, customer_viewable = ?, required_php_snippets = ?, active = ? WHERE directive_snippets_id = ?', $this->dataRecord['name'], $this->dataRecord['type'], $this->dataRecord['snippet'], $this->dataRecord['customer_viewable'], implode(',', $this->dataRecord['required_php_snippets']), $this->dataRecord['active'], $this->id);
100+
101+
if($_REQUEST["next_tab"] == '') {
102+
$list_name = $_SESSION["s"]["form"]["return_to"];
103+
if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) {
104+
$redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"];
105+
$_SESSION["s"]["form"]["return_to"] = '';
106+
session_write_close();
107+
header($redirect);
108+
} elseif (isset($_SESSION["s"]["form"]["return_to_url"]) && $_SESSION["s"]["form"]["return_to_url"] != '') {
109+
$redirect = $_SESSION["s"]["form"]["return_to_url"];
110+
$_SESSION["s"]["form"]["return_to_url"] = '';
111+
session_write_close();
112+
header("Location: ".$redirect);
113+
exit;
114+
} else {
115+
header("Location: ".$app->tform->formDef['list_default']);
116+
}
117+
exit;
118+
}
119+
}
120+
91121
unset($record);
92122
}
93-
123+
94124
parent::onSubmit();
95125
}
96126

interface/web/admin/form/directive_snippets.tform.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@
110110
'default' => 'y',
111111
'value' => array(0 => 'n', 1 => 'y')
112112
),
113+
'update_sites' => array (
114+
'datatype' => 'VARCHAR',
115+
'formtype' => 'CHECKBOX',
116+
'default' => 'y',
117+
'value' => array(0 => 'n', 1 => 'y')
118+
),
113119
'required_php_snippets' => array (
114120
'datatype' => 'VARCHAR',
115121
'formtype' => 'CHECKBOXARRAY',

interface/web/admin/lib/lang/ar_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip
99
$wb['variables_txt'] = 'Variables';
1010
$wb['customer_viewable_txt'] = 'Customer viewable';
1111
$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

interface/web/admin/lib/lang/bg_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip
99
$wb['variables_txt'] = 'Variables';
1010
$wb['customer_viewable_txt'] = 'Customer viewable';
1111
$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

interface/web/admin/lib/lang/br_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva com este
99
$wb['variables_txt'] = 'Variáveis';
1010
$wb['customer_viewable_txt'] = 'Visualização personalizada';
1111
$wb['required_php_snippets_txt'] = 'Trecho de código exige php';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

interface/web/admin/lib/lang/ca_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip
99
$wb['variables_txt'] = 'Variables';
1010
$wb['customer_viewable_txt'] = 'Customer viewable';
1111
$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

interface/web/admin/lib/lang/cz_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip
99
$wb['variables_txt'] = 'Proměnné';
1010
$wb['customer_viewable_txt'] = 'Dostupná volba pro klienta';
1111
$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

interface/web/admin/lib/lang/de_directive_snippets.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven
99
$wb['variables_txt'] = 'Variablen';
1010
$wb['customer_viewable_txt'] = 'Sichtbar für Kunden';
1111
$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
12+
$wb['update_sites_txt'] = 'Update sites using this snippet';
1213
?>

0 commit comments

Comments
 (0)