diff --git a/db_qbe.php b/db_qbe.php
index 701f709c28..8735b10630 100644
--- a/db_qbe.php
+++ b/db_qbe.php
@@ -21,7 +21,6 @@ $cfgRelation = PMA_getRelationsParam();
$savedSearchList = array();
$currentSearchId = null;
-$displayUpdateSearchHint = false;
if ($cfgRelation['savedsearcheswork']) {
include 'libraries/SavedSearches.class.php';
$header = $response->getHeader();
@@ -35,16 +34,18 @@ if ($cfgRelation['savedsearcheswork']) {
if (!empty($_REQUEST['searchId'])) {
$savedSearch->setId($_REQUEST['searchId']);
- $displayUpdateSearchHint = true;
}
//Action field is sent.
if (isset($_REQUEST['action'])) {
$savedSearch->setSearchName($_REQUEST['searchName']);
- if ('save' === $_REQUEST['action']) {
+ if ('create' === $_REQUEST['action']) {
+ $saveResult = $savedSearch->setId(null)
+ ->setCriterias($_REQUEST)
+ ->save();
+ } elseif ('update' === $_REQUEST['action']) {
$saveResult = $savedSearch->setCriterias($_REQUEST)
->save();
- $displayUpdateSearchHint = true;
} elseif ('delete' === $_REQUEST['action']) {
$deleteResult = $savedSearch->delete();
//After deletion, reset search.
@@ -52,10 +53,16 @@ if ($cfgRelation['savedsearcheswork']) {
$savedSearch->setUsername($GLOBALS['cfg']['Server']['user'])
->setDbname($_REQUEST['db']);
$_REQUEST = array();
- $displayUpdateSearchHint = false;
} elseif ('load' === $_REQUEST['action']) {
- $loadResult = $savedSearch->load();
- $displayUpdateSearchHint = true;
+ if (empty($_REQUEST['searchId'])) {
+ //when not loading a search, reset the object.
+ $savedSearch = new PMA_SavedSearches($GLOBALS);
+ $savedSearch->setUsername($GLOBALS['cfg']['Server']['user'])
+ ->setDbname($_REQUEST['db']);
+ $_REQUEST = array();
+ } else {
+ $loadResult = $savedSearch->load();
+ }
}
//Else, it's an "update query"
}
@@ -120,15 +127,6 @@ if ($cfgRelation['designerwork']) {
)
);
}
-if ($displayUpdateSearchHint) {
- $response->addHTML(
- PMA_Message::notice(
- __(
- 'After saving or loading a bookmarked search, you can rename it and '
- . 'save the new criteria.'
- )
- )
- );
-}
+
$response->addHTML($db_qbe->getSelectionForm($cfgRelation));
?>
diff --git a/js/db_qbe.js b/js/db_qbe.js
index 8407afc1ac..a5666bf5dc 100644
--- a/js/db_qbe.js
+++ b/js/db_qbe.js
@@ -22,6 +22,7 @@
AJAX.registerTeardown('db_qbe.js', function () {
$("#searchId").die('change');
$("#saveSearch").die('click');
+ $("#updateSearch").die('click');
$("#deleteSearch").die('click');
});
@@ -31,23 +32,26 @@ AJAX.registerOnload('db_qbe.js', function () {
* Ajax event handlers for 'Select saved search'
*/
$("#searchId").live('change', function (event) {
- if ('' == $(this).val()) {
- return false;
- }
-
$('#action').val('load');
$('#formQBE').submit();
});
/**
- * Ajax event handlers for 'Save search'
+ * Ajax event handlers for 'Create bookmark'
*/
$("#saveSearch").live('click', function (event) {
- $('#action').val('save');
+ $('#action').val('create');
});
/**
- * Ajax event handlers for 'Delete search'
+ * Ajax event handlers for 'Update bookmark'
+ */
+ $("#updateSearch").live('click', function (event) {
+ $('#action').val('update');
+ });
+
+ /**
+ * Ajax event handlers for 'Delete bookmark'
*/
$("#deleteSearch").live('click', function (event) {
var question = $.sprintf(PMA_messages.strConfirmDeleteQBESearch, $("#searchId option:selected").text());
diff --git a/libraries/DBQbe.class.php b/libraries/DBQbe.class.php
index db65a02914..c8891c8a78 100644
--- a/libraries/DBQbe.class.php
+++ b/libraries/DBQbe.class.php
@@ -1476,9 +1476,13 @@ class PMA_DbQbe
. 'value="' . $currentSearchName . '" />';
$html_output .= '';
$html_output .= '';
- $html_output .= '';
+ . 'value="' . __('Create bookmark') . '" />';
+ if (null !== $currentSearchId) {
+ $html_output .= '';
+ $html_output .= '';
+ }
return $html_output;
}