From 8b84cf0d91669b4a359b2f20bb014a95d7b64013 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 23 Feb 2014 14:52:48 +0100 Subject: Feature #569 Load/Save Query By Example Implement possibility to save/load/delete a QBE on a DB. Signed-off-by: Hugues Peccatte --- db_qbe.php | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'db_qbe.php') diff --git a/db_qbe.php b/db_qbe.php index e1ed199d1f..37845edbb4 100644 --- a/db_qbe.php +++ b/db_qbe.php @@ -19,6 +19,47 @@ $response = PMA_Response::getInstance(); // Gets the relation settings $cfgRelation = PMA_getRelationsParam(); +$savedSearchList = array(); +$currentSearchId = null; +if ($cfgRelation['savedsearcheswork']) { + include 'libraries/SavedSearches.php'; + $header = $response->getHeader(); + $scripts = $header->getScripts(); + $scripts->addFile('db_qbe.js'); + + //Get saved search list. + $savedSearch = new PMA_SavedSearches($GLOBALS); + $savedSearch->setId($_REQUEST['searchId']) + ->setUsername($GLOBALS['cfg']['Server']['user']) + ->setDbname($_REQUEST['db']) + ->setSearchName($_REQUEST['searchName']); + + //Criterias field is filled only when clicking on "Save search". + if (!empty($_REQUEST['action'])) { + if ('save' === $_REQUEST['action']) { + $saveResult = $savedSearch->setCriterias($_REQUEST) + ->save(); + /*if (!$saveResult) { + $response->addHTML('raté'); + exit(); + }*/ + } elseif ('delete' === $_REQUEST['action']) { + $deleteResult = $savedSearch->delete(); + //After deletion, reset search. + $savedSearch = new PMA_SavedSearches($GLOBALS); + $savedSearch->setUsername($GLOBALS['cfg']['Server']['user']) + ->setDbname($_REQUEST['db']); + $_REQUEST = array(); + } elseif ('load' === $_REQUEST['action']) { + $loadResult = $savedSearch->load(); + } + //Else, it's an "update query" + } + + $savedSearchList = $savedSearch->getList(); + $currentSearchId = $savedSearch->getId(); +} + /** * A query has been submitted -> (maybe) execute it */ @@ -52,7 +93,7 @@ if ($message_to_display) { unset($message_to_display); // create new qbe search instance -$db_qbe = new PMA_DBQbe($GLOBALS['db']); +$db_qbe = new PMA_DBQbe($GLOBALS['db'], $savedSearchList, $savedSearch); /** * Displays the Query by example form -- cgit v1.2.3