Merge pull request #12052 from 007durgesh219/Issue#12047
Filtering databases on databases listing, Issue #12047
This commit is contained in:
commit
b7332a27cf
@ -14,6 +14,7 @@
|
||||
AJAX.registerTeardown('server_databases.js', function () {
|
||||
$(document).off('submit', "#dbStatsForm");
|
||||
$(document).off('submit', '#create_database_form.ajax');
|
||||
$('#filterText').unbind('keyup');
|
||||
});
|
||||
|
||||
/**
|
||||
@ -130,4 +131,56 @@ AJAX.registerOnload('server_databases.js', function () {
|
||||
}
|
||||
}); // end $.post()
|
||||
}); // end $(document).on()
|
||||
|
||||
/* Don't show filter if number of databases are very few */
|
||||
var databasesCount = $('#databases_count').html();
|
||||
if(databasesCount <= 10) {
|
||||
$('#tableFilter').hide();
|
||||
}
|
||||
|
||||
var $filterField = $('#filterText');
|
||||
/* Event handler for database filter */
|
||||
$filterField.keyup(function (){
|
||||
var textFilter = null, val = $(this).val();
|
||||
if(val.length != 0) {
|
||||
try {
|
||||
textFilter = new RegExp(val.replace(/_/g, ' '), 'i');
|
||||
$(this).removeClass('error');
|
||||
} catch(e) {
|
||||
if (e instanceof SyntaxError) {
|
||||
$(this).addClass('error');
|
||||
textFilter = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
filterVariables(textFilter);
|
||||
});
|
||||
|
||||
/* Trigger filtering of the list based on incoming database name */
|
||||
if ($filterField.val()) {
|
||||
$filterField.trigger('keyup').select();
|
||||
}
|
||||
|
||||
/* Filters the rows by the user given regexp */
|
||||
function filterVariables(textFilter) {
|
||||
var $row, odd_row = false, databasesCount = 0;
|
||||
$('#tabledatabases').find('.db-row').each(function () {
|
||||
$row = $(this);
|
||||
if (textFilter === null ||
|
||||
textFilter.exec($row.find('.name').text())
|
||||
) {
|
||||
odd_row = ! odd_row;
|
||||
$row.css('display', '');
|
||||
databasesCount += 1;
|
||||
if (odd_row) {
|
||||
$row.addClass('odd').removeClass('even');
|
||||
} else {
|
||||
$row.addClass('even').removeClass('odd');
|
||||
}
|
||||
} else {
|
||||
$row.css('display', 'none');
|
||||
}
|
||||
$('#databases_count').html(databasesCount);
|
||||
});
|
||||
}
|
||||
}); // end $()
|
||||
|
||||
@ -98,6 +98,8 @@ class ServerDatabasesController extends Controller
|
||||
$html .= Template::get('server/databases/create')->render();
|
||||
}
|
||||
|
||||
$html .= Template::get('filter')->render(array('filterValue'=>''));
|
||||
|
||||
/**
|
||||
* Gets the databases list
|
||||
*/
|
||||
@ -432,6 +434,7 @@ class ServerDatabasesController extends Controller
|
||||
|
||||
foreach ($this->_databases as $current) {
|
||||
$tr_class = $odd_row ? 'odd' : 'even';
|
||||
$tr_class .= ' db-row';
|
||||
if ($this->dbi->isSystemSchema($current['SCHEMA_NAME'], true)) {
|
||||
$tr_class .= ' noclick';
|
||||
}
|
||||
|
||||
@ -272,7 +272,7 @@ class ServerVariablesController extends Controller
|
||||
{
|
||||
// filter
|
||||
$filterValue = ! empty($_REQUEST['filter']) ? $_REQUEST['filter'] : '';
|
||||
$output = Template::get('server/variables/variable_filter')
|
||||
$output = Template::get('filter')
|
||||
->render(array('filterValue' => $filterValue));
|
||||
|
||||
$output .= '<table id="serverVariables" class="data filteredData noclick">';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user