db_operations.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /* vim: set expandtab sw=4 ts=4 sts=4: */
  2. /**
  3. * @fileoverview function used in server privilege pages
  4. * @name Database Operations
  5. *
  6. * @requires jQuery
  7. * @requires jQueryUI
  8. * @requires js/functions.js
  9. *
  10. */
  11. /**
  12. * Ajax event handlers here for db_operations.php
  13. *
  14. * Actions Ajaxified here:
  15. * Rename Database
  16. * Copy Database
  17. * Change charset
  18. */
  19. /**
  20. * Unbind all event handlers before tearing down a page
  21. */
  22. AJAX.registerTeardown('db_operations.js', function() {
  23. $("#rename_db_form.ajax").die('submit');
  24. $("#copy_db_form.ajax").die('submit');
  25. $("#change_db_charset_form.ajax").die('submit');
  26. });
  27. AJAX.registerOnload('db_operations.js', function() {
  28. /**
  29. * Ajax event handlers for 'Rename Database'
  30. */
  31. $("#rename_db_form.ajax").live('submit', function(event) {
  32. event.preventDefault();
  33. var $form = $(this);
  34. var question = escapeHtml('CREATE DATABASE ' + $('#new_db_name').val() + ' / DROP DATABASE ' + PMA_commonParams.get('db'));
  35. PMA_prepareForAjaxRequest($form);
  36. $form.PMA_confirm(question, $form.attr('action'), function(url) {
  37. PMA_ajaxShowMessage(PMA_messages['strRenamingDatabases'], false);
  38. $.get(url, $("#rename_db_form").serialize() + '&is_js_confirmed=1', function(data) {
  39. if (data.success == true) {
  40. PMA_ajaxShowMessage(data.message);
  41. PMA_commonParams.set('db', data.newname);
  42. PMA_reloadNavigation(function() {
  43. $('#pma_navigation_tree')
  44. .find("a:not('.expander')")
  45. .each(function(index) {
  46. var $thisAnchor = $(this);
  47. if ($thisAnchor.text() == data.newname) {
  48. // simulate a click on the new db name
  49. // in navigation
  50. $thisAnchor.trigger('click');
  51. }
  52. });
  53. });
  54. } else {
  55. PMA_ajaxShowMessage(data.error, false);
  56. }
  57. }); // end $.get()
  58. })
  59. }); // end Rename Database
  60. /**
  61. * Ajax Event Handler for 'Copy Database'
  62. */
  63. $("#copy_db_form.ajax").live('submit', function(event) {
  64. event.preventDefault();
  65. PMA_ajaxShowMessage(PMA_messages['strCopyingDatabase'], false);
  66. var $form = $(this);
  67. PMA_prepareForAjaxRequest($form);
  68. $.get($form.attr('action'), $form.serialize(), function(data) {
  69. // use messages that stay on screen
  70. $('div.success, div.error').fadeOut();
  71. if (data.success == true) {
  72. if ( $("#checkbox_switch").is(":checked")) {
  73. PMA_commonParams.set('db', data.newname);
  74. PMA_commonActions.refreshMain(false, function () {
  75. PMA_ajaxShowMessage(data.message);
  76. });
  77. } else {
  78. PMA_commonParams.set('db', data.db);
  79. PMA_ajaxShowMessage(data.message);
  80. }
  81. PMA_reloadNavigation();
  82. } else {
  83. PMA_ajaxShowMessage(data.error, false);
  84. }
  85. }); // end $.get
  86. }); // end copy database
  87. /**
  88. * Ajax Event handler for 'Change Charset' of the database
  89. */
  90. $("#change_db_charset_form.ajax").live('submit', function(event) {
  91. event.preventDefault();
  92. var $form = $(this);
  93. PMA_prepareForAjaxRequest($form);
  94. PMA_ajaxShowMessage(PMA_messages['strChangingCharset']);
  95. $.get($form.attr('action'), $form.serialize() + "&submitcollation=1", function(data) {
  96. if (data.success == true) {
  97. PMA_ajaxShowMessage(data.message);
  98. } else {
  99. PMA_ajaxShowMessage(data.error, false);
  100. }
  101. }); // end $.get()
  102. }); // end change charset
  103. });