From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/js/server/status/advisor.js | 100 ++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 srcs/phpmyadmin/js/server/status/advisor.js (limited to 'srcs/phpmyadmin/js/server/status/advisor.js') diff --git a/srcs/phpmyadmin/js/server/status/advisor.js b/srcs/phpmyadmin/js/server/status/advisor.js new file mode 100644 index 0000000..8fe43cf --- /dev/null +++ b/srcs/phpmyadmin/js/server/status/advisor.js @@ -0,0 +1,100 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Server Status Advisor + * + * @package PhpMyAdmin + */ + +/** + * Unbind all event handlers before tearing down a page + */ +AJAX.registerTeardown('server/status/advisor.js', function () { + $('a[href="#openAdvisorInstructions"]').off('click'); + $('#statustabs_advisor').html(''); + $('#advisorDialog').remove(); + $('#instructionsDialog').remove(); +}); + +AJAX.registerOnload('server/status/advisor.js', function () { + // if no advisor is loaded + if ($('#advisorData').length === 0) { + return; + } + + /** ** Server config advisor ****/ + var $dialog = $('
').attr('id', 'advisorDialog'); + var $instructionsDialog = $('
') + .attr('id', 'instructionsDialog') + .html($('#advisorInstructionsDialog').html()); + + $('a[href="#openAdvisorInstructions"]').on('click', function () { + var dlgBtns = {}; + dlgBtns[Messages.strClose] = function () { + $(this).dialog('close'); + }; + $instructionsDialog.dialog({ + title: Messages.strAdvisorSystem, + width: '60%', + buttons: dlgBtns + }); + }); + + var $cnt = $('#statustabs_advisor'); + var $tbody; + var $tr; + var even = true; + + var data = JSON.parse($('#advisorData').text()); + $cnt.html(''); + + if (data.parse.errors.length > 0) { + $cnt.append('Rules file not well formed, following errors were found:
- '); + $cnt.append(data.parse.errors.join('
- ')); + $cnt.append('

'); + } + + if (data.run.errors.length > 0) { + $cnt.append('Errors occurred while executing rule expressions:
- '); + $cnt.append(data.run.errors.join('
- ')); + $cnt.append('

'); + } + + if (data.run.fired.length > 0) { + $cnt.append('

' + Messages.strPerformanceIssues + '

'); + $cnt.append('' + + '
' + Messages.strIssuse + '' + Messages.strRecommendation + + '
'); + $tbody = $cnt.find('table#rulesFired'); + + var rcStripped; + + $.each(data.run.fired, function (key, value) { + // recommendation may contain links, don't show those in overview table (clicking on them redirects the user) + rcStripped = $.trim($('
').html(value.recommendation).text()); + $tbody.append($tr = $('' + + value.issue + '' + rcStripped + ' ')); + even = !even; + $tr.data('rule', value); + + $tr.on('click', function () { + var rule = $(this).data('rule'); + $dialog + .dialog({ title: Messages.strRuleDetails }) + .html( + '

' + Messages.strIssuse + ':
' + rule.issue + '

' + + '

' + Messages.strRecommendation + ':
' + rule.recommendation + '

' + + '

' + Messages.strJustification + ':
' + rule.justification + '

' + + '

' + Messages.strFormula + ':
' + rule.formula + '

' + + '

' + Messages.strTest + ':
' + rule.test + '

' + ); + + var dlgBtns = {}; + dlgBtns[Messages.strClose] = function () { + $(this).dialog('close'); + }; + + $dialog.dialog({ width: 600, buttons: dlgBtns }); + }); + }); + } +}); -- cgit