From b5d8109898be8ff99b1567c5350bf4e2f5e9cf59 Mon Sep 17 00:00:00 2001 From: ioguix Date: Sat, 15 Dec 2007 22:21:54 +0000 Subject: [PATCH] multi drop sequences --- lang/english.php | 5 +-- lang/recoded/english.php | 6 ++-- sequences.php | 66 ++++++++++++++++++++++++++++++++++------ 3 files changed, 63 insertions(+), 14 deletions(-) diff --git a/lang/english.php b/lang/english.php index e72e9411..57f07499 100755 --- a/lang/english.php +++ b/lang/english.php @@ -4,7 +4,7 @@ * English language file for phpPgAdmin. Use this as a basis * for new translations. * - * $Id: english.php,v 1.224 2007/12/15 21:46:44 ioguix Exp $ + * $Id: english.php,v 1.225 2007/12/15 22:21:54 ioguix Exp $ */ // Language and character set @@ -427,7 +427,8 @@ $lang['strnextval'] = 'Increment value'; $lang['strsequencenextval'] = 'Sequence incremented.'; $lang['strsequencenextvalbad'] = 'Sequence increment failed.'; - + $lang['strspecifysequencetodrop'] = 'You must specify at least one sequence to drop'; + // Indexes $lang['strindex'] = 'Index'; $lang['strindexes'] = 'Indexes'; diff --git a/lang/recoded/english.php b/lang/recoded/english.php index 44c497c8..209e7fa8 100644 --- a/lang/recoded/english.php +++ b/lang/recoded/english.php @@ -4,7 +4,7 @@ * English language file for phpPgAdmin. Use this as a basis * for new translations. * - * $Id: english.php,v 1.175 2007/11/30 01:06:00 xzilla Exp $ + * $Id: english.php,v 1.176 2007/12/15 22:21:54 ioguix Exp $ */ // Language and character set @@ -427,7 +427,8 @@ $lang['strnextval'] = 'Increment value'; $lang['strsequencenextval'] = 'Sequence incremented.'; $lang['strsequencenextvalbad'] = 'Sequence increment failed.'; - + $lang['strspecifysequencetodrop'] = 'You must specify at least one sequence to drop'; + // Indexes $lang['strindex'] = 'Index'; $lang['strindexes'] = 'Indexes'; @@ -621,6 +622,7 @@ $lang['strschemaaltered'] = 'Schema altered.'; $lang['strschemaalteredbad'] = 'Schema alteration failed.'; $lang['strsearchpath'] = 'Schema search path'; + $lang['strspecifyschematodrop'] = 'You must specify at least one schema to drop'; // Reports $lang['strreport'] = 'Report'; diff --git a/sequences.php b/sequences.php index 0abcef8b..e46e0593 100644 --- a/sequences.php +++ b/sequences.php @@ -3,7 +3,7 @@ /** * Manage sequences in a database * - * $Id: sequences.php,v 1.48 2007/11/21 19:10:40 ioguix Exp $ + * $Id: sequences.php,v 1.49 2007/12/15 22:21:54 ioguix Exp $ */ // Include application functions @@ -47,6 +47,10 @@ ); $actions = array( + 'multiactions' => array( + 'keycols' => array('sequence' => 'seqname'), + 'url' => 'sequences.php', + ), 'alter' => array( 'title' => $lang['stralter'], 'url' => "sequences.php?action=confirm_alter&{$misc->href}&subject=sequence&", @@ -56,6 +60,7 @@ 'title' => $lang['strdrop'], 'url' => "sequences.php?action=confirm_drop&{$misc->href}&", 'vars' => array('sequence' => 'seqname'), + 'multiaction' => 'confirm_drop', ), 'privileges' => array( 'title' => $lang['strprivileges'], @@ -160,31 +165,72 @@ global $data, $misc; global $lang; + if (empty($_REQUEST['sequence']) && empty($_REQUEST['ma'])) { + doDefault($lang['strspecifysequencetodrop']); + exit(); + } + if ($confirm) { $misc->printTrail('sequence'); $misc->printTitle($lang['strdrop'],'pg.sequence.drop'); $misc->printMsg($msg); - - echo "

", sprintf($lang['strconfdropsequence'], $misc->printVal($_REQUEST['sequence'])), "

\n"; - + echo "
\n"; + + //If multi drop + if (isset($_REQUEST['ma'])) { + foreach($_REQUEST['ma'] as $v) { + $a = unserialize(htmlspecialchars_decode($v, ENT_QUOTES)); + echo "

", sprintf($lang['strconfdropsequence'], $misc->printVal($a['sequence'])), "

\n"; + printf('', htmlspecialchars($a['sequence'])); + } + } else { + echo "

", sprintf($lang['strconfdropsequence'], $misc->printVal($_REQUEST['sequence'])), "

\n"; + echo "\n"; + } + // Show cascade drop option if supportd if ($data->hasDropBehavior()) { echo "

\n"; } echo "

\n"; - echo "\n"; echo $misc->form; echo "\n"; echo "

\n"; echo "
\n"; } else { - $status = $data->dropSequence($_POST['sequence'], isset($_POST['cascade'])); - if ($status == 0) - doDefault($lang['strsequencedropped']); - else - doDrop(true, $lang['strsequencedroppedbad']); + if (is_array($_POST['sequence'])) { + $msg=''; + $status = $data->beginTransaction(); + if ($status == 0) { + foreach($_POST['sequence'] as $s) { + $status = $data->dropSequence($s, isset($_POST['cascade'])); + if ($status == 0) + $msg.= sprintf('%s: %s
', htmlentities($s), $lang['strsequencedropped']); + else { + $data->endTransaction(); + doDefault(sprintf('%s%s: %s
', $msg, htmlentities($s), $lang['strsequencedroppedbad'])); + return; + } + } + } + if($data->endTransaction() == 0) { + // Everything went fine, back to the Default page.... + $_reload_browser = true; + doDefault($msg); + } + else doDefault($lang['strsequencedroppedbad']); + } + else{ + $status = $data->dropSequence($_POST['sequence'], isset($_POST['cascade'])); + if ($status == 0) { + $_reload_browser = true; + doDefault($lang['strsequencedropped']); + } + else + doDrop(true, $lang['strsequencedroppedbad']); + } } } -- 2.39.5