From 80fa502e22a68ee0bc86ae9ea6f71f01e6ff544f Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Wed, 1 Jun 2011 15:27:50 +0100 Subject: [PATCH] Refactored JS used to export Routines, Triggers and Events. --- js/db_events.js | 25 --------------------- js/db_routines.js | 29 ------------------------- js/display_triggers.js | 25 --------------------- js/functions.js | 35 ++++++++++++++++++++++++++++++ libraries/db_events.inc.php | 25 +++++++++++++++++---- libraries/display_triggers.inc.php | 27 +++++++++++++++++++---- 6 files changed, 79 insertions(+), 87 deletions(-) diff --git a/js/db_events.js b/js/db_events.js index 0c0122a7db..a72ab5fe88 100644 --- a/js/db_events.js +++ b/js/db_events.js @@ -43,29 +43,4 @@ $(document).ready(function() { }) // end $.get() }) // end $.PMA_confirm() }) // end Drop Event - - /** - * Ajax Event handler for 'Export Event' - * - * @see $cfg['AjaxEnable'] - */ - $('.export_event_anchor').live('click', function(event) { - event.preventDefault(); - - /** - * @var button_options Object containing options for jQueryUI dialog buttons - */ - var button_options = {}; - button_options[PMA_messages['strClose']] = function() {$(this).dialog("close").remove();} - /** - * @var button_options The export SQL query to display to the user - */ - var query = $(this).parents('tr').find('.create_sql').html(); - - // show dialog - $('
').dialog({ - width: 450, - buttons: button_options - }).find('textarea').width('100%'); - }); // end Export Procedure }, 'top.frame_content'); //end $(document).ready() for Drop Event diff --git a/js/db_routines.js b/js/db_routines.js index aaca0ae7c0..ee7b2a1371 100644 --- a/js/db_routines.js +++ b/js/db_routines.js @@ -45,33 +45,4 @@ $(document).ready(function() { }) // end $.PMA_confirm() }); // end Drop Procedure - /** - * Ajax Event handler for 'Export Routine' - * - * @see $cfg['AjaxEnable'] - */ - $('.export_routine_anchor').live('click', function(event) { - event.preventDefault(); - var $msg = PMA_ajaxShowMessage(PMA_messages['strLoading']); - $.get($(this).attr('href'), {'ajax_request': true}, function(data) { - if(data.success == true) { - PMA_ajaxRemoveMessage($msg); - /** - * @var button_options Object containing options for jQueryUI dialog buttons - */ - var button_options = {}; - button_options[PMA_messages['strClose']] = function() {$(this).dialog("close").remove();} - /** - * Display the dialog to the user - */ - $('
'+data.message+'
').dialog({ - width: 450, - buttons: button_options, - title: data.title - }).find('textarea').width('100%'); - } else { - PMA_ajaxShowMessage(data.error); - } - }) - }); // end Export Procedure }, 'top.frame_content'); //end $(document).ready() for Drop Procedure diff --git a/js/display_triggers.js b/js/display_triggers.js index e7bd57a9b1..fed1dee949 100644 --- a/js/display_triggers.js +++ b/js/display_triggers.js @@ -43,29 +43,4 @@ $(document).ready(function() { }) // end $.get() }) // end $.PMA_confirm() }) // end $().live() - - /** - * Ajax Event handler for 'Export Trigger' - * - * @see $cfg['AjaxEnable'] - */ - $('.export_trigger_anchor').live('click', function(event) { - event.preventDefault(); - - /** - * @var button_options Object containing options for jQueryUI dialog buttons - */ - var button_options = {}; - button_options[PMA_messages['strClose']] = function() {$(this).dialog("close").remove();} - /** - * @var button_options The export SQL query to display to the user - */ - var query = $(this).parents('tr').find('.create_sql').html(); - - // show dialog - $('
').dialog({ - width: 450, - buttons: button_options - }).find('textarea').width('100%'); - }); // end Export Procedure }, 'top.frame_content'); //end $(document).ready() for Drop Trigger diff --git a/js/functions.js b/js/functions.js index cbd67b0545..a36f3aef4e 100644 --- a/js/functions.js +++ b/js/functions.js @@ -2330,3 +2330,38 @@ $(document).ready(function() { }); // end $.PMA_confirm() }); //end of Drop Table Ajax action }) // end of $(document).ready() for Drop Table + +/** + * Attach Ajax event handlers for Export of Routines, Triggers and Events. + * + * @uses PMA_ajaxShowMessage() + * @uses PMA_ajaxRemoveMessage() + * + * @see $cfg['AjaxEnable'] + */ +$(document).ready(function() { + $('.export_routine_anchor, .export_event_anchor, .export_trigger_anchor').live('click', function(event) { + event.preventDefault(); + var $msg = PMA_ajaxShowMessage(PMA_messages['strLoading']); + $.get($(this).attr('href'), {'ajax_request': true}, function(data) { + if(data.success == true) { + PMA_ajaxRemoveMessage($msg); + /** + * @var button_options Object containing options for jQueryUI dialog buttons + */ + var button_options = {}; + button_options[PMA_messages['strClose']] = function() {$(this).dialog("close").remove();} + /** + * Display the dialog to the user + */ + $('
'+data.message+'
').dialog({ + width: 450, + buttons: button_options, + title: data.title + }).find('textarea').width('100%'); + } else { + PMA_ajaxShowMessage(data.error); + } + }) + }); // end Export Procedure +}); // end of $(document).ready() for Export of Routines, Triggers and Events. diff --git a/libraries/db_events.inc.php b/libraries/db_events.inc.php index 9304135eb9..27d6942b7a 100644 --- a/libraries/db_events.inc.php +++ b/libraries/db_events.inc.php @@ -23,11 +23,28 @@ if ($GLOBALS['cfg']['AjaxEnable']) { * Display the export for a event. This is for when JS is disabled. */ if (! empty($_GET['exportevent']) && ! empty($_GET['eventname'])) { + $event_name = htmlspecialchars(PMA_backquote($_GET['eventname'])); if ($create_event = PMA_DBI_get_definition($db, 'EVENT', $_GET['eventname'])) { - echo '
' . "\n" - . ' ' . sprintf(__('Export for event "%s"'), $_GET['eventname']) . '' . "\n" - . '' . "\n" - . '
'; + $create_event = ''; + if (! empty($_REQUEST['ajax_request'])) { + $extra_data = array('title' => sprintf(__('Export of event %s'), $event_name)); + PMA_ajaxResponse($create_event, true, $extra_data); + } else { + echo '
' . "\n" + . ' ' . sprintf(__('Export of event "%s"'), $event_name) . '' . "\n" + . $create_event + . '
'; + } + } else { + $response = __('Error in Processing Request') . ' : ' + . sprintf(__('No event with name %s found in database %s'), + $event_name, htmlspecialchars(PMA_backquote($db))); + $response = PMA_message::error($response); + if (! empty($_REQUEST['ajax_request'])) { + PMA_ajaxResponse($response, false); + } else { + $response->display(); + } } } diff --git a/libraries/display_triggers.inc.php b/libraries/display_triggers.inc.php index a8cd4c6dd6..5f1e603008 100644 --- a/libraries/display_triggers.inc.php +++ b/libraries/display_triggers.inc.php @@ -25,12 +25,31 @@ if ($GLOBALS['cfg']['AjaxEnable']) { * Display the export for a trigger. This is for when JS is disabled. */ if (! empty($_GET['exporttrigger']) && ! empty($_GET['triggername'])) { + $success = false; foreach ($triggers as $trigger) { if ($trigger['name'] === $_GET['triggername']) { - echo '
' . "\n" - . ' ' . sprintf(__('Export for trigger "%s"'), $trigger['name']) . '' . "\n" - . '' . "\n" - . '
'; + $success = true; + $trigger_name = htmlspecialchars(PMA_backquote($_GET['triggername'])); + $create_trig = ''; + if (! empty($_REQUEST['ajax_request'])) { + $extra_data = array('title' => sprintf(__('Export of trigger %s'), $trigger_name)); + PMA_ajaxResponse($create_trig, true, $extra_data); + } else { + echo '
' . "\n" + . ' ' . sprintf(__('Export of trigger "%s"'), $trigger_name) . '' . "\n" + . $create_trig + . '
'; + } + } + } + if (! $success) { + $response = __('Error in Processing Request') . ' : ' + . sprintf(__('No trigger with name %s found'), $event_name); + $response = PMA_message::error($response); + if (! empty($_REQUEST['ajax_request'])) { + PMA_ajaxResponse($response, false); + } else { + $response->display(); } } }