add multi drop for functions
authorioguix <ioguix>
Sun, 16 Dec 2007 01:14:22 +0000 (01:14 +0000)
committerioguix <ioguix>
Sun, 16 Dec 2007 01:14:22 +0000 (01:14 +0000)
functions.php
lang/english.php
lang/recoded/english.php

index 250dfe9093c555cb2394f32a50b6900442705242..dd5ca07b4693236fed3b1209d8d4b3ad5fe63c4f 100644 (file)
@@ -3,7 +3,7 @@
        /**
         * Manage functions in a database
         *
-        * $Id: functions.php,v 1.73 2007/11/16 18:34:24 ioguix Exp $
+        * $Id: functions.php,v 1.74 2007/12/16 01:14:22 ioguix Exp $
         */
 
        // Include application functions
        function doDrop($confirm) {
                global $data, $misc;
                global $lang, $_reload_browser;
+               
+               if (empty($_REQUEST['function']) && empty($_REQUEST['ma'])) {
+                       doDefault($lang['strspecifyfunctiontodrop']);
+                       exit();
+               }
 
                if ($confirm) {
                        $misc->printTrail('schema');
                        $misc->printTitle($lang['strdrop'],'pg.function.drop');
-
-                       echo "<p>", sprintf($lang['strconfdropfunction'], $misc->printVal($_REQUEST['function'])), "</p>\n";
-
+                       
                        echo "<form action=\"functions.php\" method=\"post\">\n";
+                       
+                       //If multi drop
+                       if (isset($_REQUEST['ma'])) {
+                               foreach($_REQUEST['ma'] as $v) {
+                                       $a = unserialize(htmlspecialchars_decode($v, ENT_QUOTES));
+                                       echo "<p>", sprintf($lang['strconfdropfunction'], $misc->printVal($a['function'])), "</p>\n";
+                                       echo '<input type="hidden" name="function[]" value="', htmlspecialchars($a['function']), "\" />\n";
+                                       echo "<input type=\"hidden\" name=\"function_oid[]\" value=\"", htmlspecialchars($a['function_oid']), "\" />\n";
+                               }
+                       }
+                       else {
+                               echo "<p>", sprintf($lang['strconfdropfunction'], $misc->printVal($_REQUEST['function'])), "</p>\n";
+                               echo "<input type=\"hidden\" name=\"function\" value=\"", htmlspecialchars($_REQUEST['function']), "\" />\n";
+                               echo "<input type=\"hidden\" name=\"function_oid\" value=\"", htmlspecialchars($_REQUEST['function_oid']), "\" />\n";
+                       }
+
                        echo "<input type=\"hidden\" name=\"action\" value=\"drop\" />\n";
-                       echo "<input type=\"hidden\" name=\"function\" value=\"", htmlspecialchars($_REQUEST['function']), "\" />\n";
-                       echo "<input type=\"hidden\" name=\"function_oid\" value=\"", htmlspecialchars($_REQUEST['function_oid']), "\" />\n";
+                       
                        echo $misc->form;
                        // Show cascade drop option if supportd
                        if ($data->hasDropBehavior()) {
                        echo "</form>\n";
                }
                else {
-                       $status = $data->dropFunction($_POST['function_oid'], isset($_POST['cascade']));
-                       if ($status == 0) {
-                               $_reload_browser = true;
-                               doDefault($lang['strfunctiondropped']);
-                        }
-                       else {
-                               doDefault($lang['strfunctiondroppedbad']);
-                        }
+                       if (is_array($_POST['function_oid'])) {
+                               $msg='';
+                               $status = $data->beginTransaction();
+                               if ($status == 0) {
+                                       foreach($_POST['function_oid'] as $k => $s) {
+                                               $status = $data->dropFunction($s, isset($_POST['cascade']));
+                                               if ($status == 0)
+                                                       $msg.= sprintf('%s: %s<br />', htmlentities($_POST['function'][$k]), $lang['strfunctiondropped']);
+                                               else {
+                                                       $data->endTransaction();
+                                                       doDefault(sprintf('%s%s: %s<br />', $msg, htmlentities($_POST['function'][$k]), $lang['strfunctiondroppedbad']));
+                                                       return;
+                                               }
+                                       }
+                               }
+                               if($data->endTransaction() == 0) {
+                                       // Everything went fine, back to the Default page....
+                                       $_reload_browser = true;
+                                       doDefault($msg);
+                               }
+                               else doDefault($lang['strfunctiondroppedbad']);
+                       }
+                       else{
+                               $status = $data->dropFunction($_POST['function_oid'], isset($_POST['cascade']));
+                               if ($status == 0) {
+                                       $_reload_browser = true;
+                                       doDefault($lang['strfunctiondropped']);
+                               }
+                               else {
+                                       doDefault($lang['strfunctiondroppedbad']);
+                               }
+                       }
                }
 
        }
                );
 
                $actions = array(
+                       'multiactions' => array(
+                               'keycols' => array('function' => 'proproto', 'function_oid' => 'prooid'),
+                               'url' => 'functions.php',
+                       ),
                        'alter' => array(
                                'title' => $lang['stralter'],
                                'url'   => "functions.php?action=edit&amp;{$misc->href}&amp;",
                                'title' => $lang['strdrop'],
                                'url'   => "functions.php?action=confirm_drop&amp;{$misc->href}&amp;",
                                'vars'  => array('function' => 'proproto', 'function_oid' => 'prooid'),
+                               'multiaction' => 'confirm_drop',
                        ),
                        'privileges' => array(
                                'title' => $lang['strprivileges'],
index bad7930df020085a0bfd7bdfe85c64f8415d28bf..17e3b3fb711511a7232db2fde2ca438b55a4c6e6 100755 (executable)
@@ -4,7 +4,7 @@
         * English language file for phpPgAdmin.  Use this as a basis
         * for new translations.
         *
-        * $Id: english.php,v 1.226 2007/12/15 22:57:43 ioguix Exp $
+        * $Id: english.php,v 1.227 2007/12/16 01:14:22 ioguix Exp $
         */
 
        // Language and character set
        $lang['strfunctioncosting'] = 'Function Costing';
        $lang['strresultrows'] = 'Result Rows';
        $lang['strexecutioncost'] = 'Execution Cost';
+       $lang['strspecifyfunctiontodrop'] = 'You must specify at least one function to drop';
 
        // Triggers
        $lang['strtrigger'] = 'Trigger';
index e4b68522f6b3de6f57dbe15618b6c96cb27ab613..fb2c510257cca33ceb173699a679409926b4b516 100644 (file)
@@ -4,7 +4,7 @@
         * English language file for phpPgAdmin.  Use this as a basis
         * for new translations.
         *
-        * $Id: english.php,v 1.177 2007/12/15 22:57:43 ioguix Exp $
+        * $Id: english.php,v 1.178 2007/12/16 01:14:22 ioguix Exp $
         */
 
        // Language and character set
        $lang['strfunctioncosting'] = 'Function Costing';
        $lang['strresultrows'] = 'Result Rows';
        $lang['strexecutioncost'] = 'Execution Cost';
+       $lang['strspecifyfunctiontodrop'] = 'You must specify at least one function to drop';
 
        // Triggers
        $lang['strtrigger'] = 'Trigger';