mirror of
https://github.com/vrana/adminer.git
synced 2026-03-16 01:21:02 +01:00
Recover original view, trigger, routine if creating fails (bug #3601088)
This commit is contained in:
@@ -2,28 +2,26 @@
|
||||
$TABLE = $_GET["trigger"];
|
||||
$trigger_options = trigger_options();
|
||||
$trigger_event = array("INSERT", "UPDATE", "DELETE");
|
||||
$row = (array) trigger($_GET["name"]) + array("Trigger" => $TABLE . "_bi");
|
||||
|
||||
$dropped = false;
|
||||
if ($_POST && !$error && in_array($_POST["Timing"], $trigger_options["Timing"]) && in_array($_POST["Event"], $trigger_event) && in_array($_POST["Type"], $trigger_options["Type"])) {
|
||||
$timing_event = " $_POST[Timing] $_POST[Event]";
|
||||
$on = " ON " . table($TABLE);
|
||||
$dropped = drop_create(
|
||||
"DROP TRIGGER " . idf_escape($_GET["name"]) . ($jush == "pgsql" ? $on : ""),
|
||||
"CREATE TRIGGER " . idf_escape($_POST["Trigger"]) . ($jush == "mssql" ? $on . $timing_event : $timing_event . $on) . rtrim(" $_POST[Type]\n$_POST[Statement]", ";") . ";",
|
||||
ME . "table=" . urlencode($TABLE),
|
||||
lang('Trigger has been dropped.'),
|
||||
lang('Trigger has been altered.'),
|
||||
lang('Trigger has been created.'),
|
||||
$_GET["name"]
|
||||
);
|
||||
if ($_POST) {
|
||||
if (!$error && in_array($_POST["Timing"], $trigger_options["Timing"]) && in_array($_POST["Event"], $trigger_event) && in_array($_POST["Type"], $trigger_options["Type"])) {
|
||||
$on = " ON " . table($TABLE);
|
||||
drop_create(
|
||||
"DROP TRIGGER " . idf_escape($_GET["name"]) . ($jush == "pgsql" ? $on : ""),
|
||||
create_trigger($on, $_POST),
|
||||
create_trigger($on, $row + array("Type" => reset($trigger_options["Type"]))),
|
||||
ME . "table=" . urlencode($TABLE),
|
||||
lang('Trigger has been dropped.'),
|
||||
lang('Trigger has been altered.'),
|
||||
lang('Trigger has been created.'),
|
||||
$_GET["name"]
|
||||
);
|
||||
}
|
||||
$row = $_POST;
|
||||
}
|
||||
|
||||
page_header(($_GET["name"] != "" ? lang('Alter trigger') . ": " . h($_GET["name"]) : lang('Create trigger')), $error, array("table" => $TABLE));
|
||||
|
||||
$row = $_POST;
|
||||
if (!$row) {
|
||||
$row = trigger($_GET["name"]) + array("Trigger" => $TABLE . "_bi");
|
||||
}
|
||||
?>
|
||||
|
||||
<form action="" method="post" id="form">
|
||||
@@ -37,6 +35,5 @@ if (!$row) {
|
||||
<p>
|
||||
<input type="submit" value="<?php echo lang('Save'); ?>">
|
||||
<?php if ($_GET["name"] != "") { ?><input type="submit" name="drop" value="<?php echo lang('Drop'); ?>"<?php echo confirm(); ?>><?php } ?>
|
||||
<?php if ($dropped) { ?><input type="hidden" name="dropped" value="1"><?php } ?>
|
||||
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user