diff options
Diffstat (limited to '')
| -rw-r--r-- | hugo/js/server_status_variables.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/hugo/js/server_status_variables.js b/hugo/js/server_status_variables.js new file mode 100644 index 0000000..2f67066 --- /dev/null +++ b/hugo/js/server_status_variables.js @@ -0,0 +1,110 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * + * + * @package PhpMyAdmin + */ + +/** + * Unbind all event handlers before tearing down a page + */ +AJAX.registerTeardown('server_status_variables.js', function() { + $('#filterAlert').unbind('change'); + $('#filterText').unbind('keyup'); + $('#filterCategory').unbind('change'); + $('#dontFormat').unbind('change'); +}); + +AJAX.registerOnload('server_status_variables.js', function() { + /*** Table sort tooltip ***/ + PMA_tooltip( + $('table.sortable>thead>tr:first').find('th'), + 'th', + PMA_messages['strSortHint'] + ); + initTableSorter('statustabs_allvars'); + + // Filters for status variables + var textFilter = null; + var alertFilter = $('#filterAlert').prop('checked'); + var categoryFilter = $('#filterCategory').find(':selected').val(); + var odd_row = false; + var text = ''; // Holds filter text + + /* 3 Filtering functions */ + $('#filterAlert').change(function() { + alertFilter = this.checked; + filterVariables(); + }); + + $('#filterCategory').change(function() { + categoryFilter = $(this).val(); + filterVariables(); + }); + + $('#dontFormat').change(function() { + // Hiding the table while changing values speeds up the process a lot + $('#serverstatusvariables').hide(); + $('#serverstatusvariables td.value span.original').toggle(this.checked); + $('#serverstatusvariables td.value span.formatted').toggle(! this.checked); + $('#serverstatusvariables').show(); + }).trigger('change'); + + $('#filterText').keyup(function(e) { + var word = $(this).val().replace(/_/g, ' '); + if (word.length == 0) { + textFilter = null; + } else { + textFilter = new RegExp("(^| )" + word, 'i'); + } + text = word; + filterVariables(); + }).trigger('keyup'); + + /* Filters the status variables by name/category/alert in the variables tab */ + function filterVariables() { + var useful_links = 0; + var section = text; + + if (categoryFilter.length > 0) { + section = categoryFilter; + } + + if (section.length > 1) { + $('#linkSuggestions span').each(function() { + if ($(this).attr('class').indexOf('status_' + section) != -1) { + useful_links++; + $(this).css('display', ''); + } else { + $(this).css('display', 'none'); + } + }); + } + + if (useful_links > 0) { + $('#linkSuggestions').css('display', ''); + } else { + $('#linkSuggestions').css('display', 'none'); + } + + odd_row = false; + $('#serverstatusvariables th.name').each(function() { + if ((textFilter == null || textFilter.exec($(this).text())) + && (! alertFilter || $(this).next().find('span.attention').length>0) + && (categoryFilter.length == 0 || $(this).parent().hasClass('s_' + categoryFilter)) + ) { + odd_row = ! odd_row; + $(this).parent().css('display', ''); + if (odd_row) { + $(this).parent().addClass('odd'); + $(this).parent().removeClass('even'); + } else { + $(this).parent().addClass('even'); + $(this).parent().removeClass('odd'); + } + } else { + $(this).parent().css('display', 'none'); + } + }); + } +}); |
