Merge pull request #1041 from Tithugues/improveBookmarkedSearches

Improve bookmarked searches
This commit is contained in:
Marc Delisle 2014-03-11 08:24:42 -04:00
commit 8f2036cec3
3 changed files with 33 additions and 27 deletions

View File

@ -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));
?>

View File

@ -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());

View File

@ -1476,9 +1476,13 @@ class PMA_DbQbe
. 'value="' . $currentSearchName . '" />';
$html_output .= '<input type="hidden" name="action" id="action" value="" />';
$html_output .= '<input type="submit" name="saveSearch" id="saveSearch" '
. 'value="' . __('Save bookmark') . '" />';
$html_output .= '<input type="submit" name="deleteSearch" id="deleteSearch" '
. 'value="' . __('Delete bookmark') . '" />';
. 'value="' . __('Create bookmark') . '" />';
if (null !== $currentSearchId) {
$html_output .= '<input type="submit" name="updateSearch" '
. 'id="updateSearch" value="' . __('Update bookmark') . '" />';
$html_output .= '<input type="submit" name="deleteSearch" '
. 'id="deleteSearch" value="' . __('Delete bookmark') . '" />';
}
return $html_output;
}