From 673e503d7c9a308d4e4552bc27fdff0de2157eb2 Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Sun, 20 Oct 2013 16:13:32 +0530 Subject: [PATCH] When selecting from navigation, show only the procedures of corresponding type --- .../navigation/Nodes/Node_Function_Container.class.php | 6 ++++-- .../navigation/Nodes/Node_Procedure_Container.class.php | 6 ++++-- libraries/rte/rte_main.inc.php | 6 +++++- libraries/rte/rte_routines.lib.php | 9 ++++++++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/libraries/navigation/Nodes/Node_Function_Container.class.php b/libraries/navigation/Nodes/Node_Function_Container.class.php index 9577bbc4a8..881e9fd154 100644 --- a/libraries/navigation/Nodes/Node_Function_Container.class.php +++ b/libraries/navigation/Nodes/Node_Function_Container.class.php @@ -27,9 +27,11 @@ class Node_Function_Container extends Node $this->icon = PMA_Util::getImage('b_routines.png'); $this->links = array( 'text' => 'db_routines.php?server=' . $GLOBALS['server'] - . '&db=%1$s&token=' . $GLOBALS['token'], + . '&db=%1$s&token=' . $GLOBALS['token'] + . '&type=FUNCTION', 'icon' => 'db_routines.php?server=' . $GLOBALS['server'] - . '&db=%1$s&token=' . $GLOBALS['token'], + . '&db=%1$s&token=' . $GLOBALS['token'] + . '&type=FUNCTION', ); $this->real_name = 'functions'; diff --git a/libraries/navigation/Nodes/Node_Procedure_Container.class.php b/libraries/navigation/Nodes/Node_Procedure_Container.class.php index ab7f9a3abd..8fde9518c4 100644 --- a/libraries/navigation/Nodes/Node_Procedure_Container.class.php +++ b/libraries/navigation/Nodes/Node_Procedure_Container.class.php @@ -27,9 +27,11 @@ class Node_Procedure_Container extends Node $this->icon = PMA_Util::getImage('b_routines.png'); $this->links = array( 'text' => 'db_routines.php?server=' . $GLOBALS['server'] - . '&db=%1$s&token=' . $GLOBALS['token'], + . '&db=%1$s&token=' . $GLOBALS['token'] + . '&type=PROCEDURE', 'icon' => 'db_routines.php?server=' . $GLOBALS['server'] - . '&db=%1$s&token=' . $GLOBALS['token'], + . '&db=%1$s&token=' . $GLOBALS['token'] + . '&type=PROCEDURE', ); $this->real_name = 'procedures'; diff --git a/libraries/rte/rte_main.inc.php b/libraries/rte/rte_main.inc.php index 6c440b318e..9abb9a3080 100644 --- a/libraries/rte/rte_main.inc.php +++ b/libraries/rte/rte_main.inc.php @@ -79,7 +79,11 @@ $errors = array(); */ switch ($_PMA_RTE) { case 'RTN': - PMA_RTN_main(); + $type = null; + if (isset($_REQUEST['type'])) { + $type = $_REQUEST['type']; + } + PMA_RTN_main($type); break; case 'TRI': PMA_TRI_main(); diff --git a/libraries/rte/rte_routines.lib.php b/libraries/rte/rte_routines.lib.php index fcd93e591e..52ffd5db28 100644 --- a/libraries/rte/rte_routines.lib.php +++ b/libraries/rte/rte_routines.lib.php @@ -33,9 +33,13 @@ function PMA_RTN_setGlobals() /** * Main function for the routines functionality * + * @param string $type 'FUNCTION' for functions, + * 'PROCEDURE' for procedures, + * null for both + * * @return nothing */ -function PMA_RTN_main() +function PMA_RTN_main($type) { global $db; @@ -52,6 +56,9 @@ function PMA_RTN_main() $columns = "`SPECIFIC_NAME`, `ROUTINE_NAME`, `ROUTINE_TYPE`, "; $columns .= "`DTD_IDENTIFIER`, `ROUTINE_DEFINITION`"; $where = "ROUTINE_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "'"; + if (PMA_isValid($type, array('FUNCTION','PROCEDURE'))) { + $where .= " AND `ROUTINE_TYPE`='" . $type . "'"; + } $items = $GLOBALS['dbi']->fetchResult( "SELECT $columns FROM `INFORMATION_SCHEMA`.`ROUTINES` WHERE $where;" );