db_operations.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 old_db_name = PMA_commonParams.get('db');
  34. var new_db_name = $('#new_db_name').val();
  35. if (new_db_name == old_db_name) {
  36. PMA_ajaxShowMessage(PMA_messages.strDropDatabaseStrongWarning);
  37. return false;
  38. }
  39. var $form = $(this);
  40. var question = escapeHtml('CREATE DATABASE ' + new_db_name + ' / DROP DATABASE ' + old_db_name);
  41. PMA_prepareForAjaxRequest($form);
  42. $form.PMA_confirm(question, $form.attr('action'), function (url) {
  43. PMA_ajaxShowMessage(PMA_messages.strRenamingDatabases, false);
  44. $.get(url, $("#rename_db_form").serialize() + '&is_js_confirmed=1', function (data) {
  45. if (data.success === true) {
  46. PMA_ajaxShowMessage(data.message);
  47. PMA_commonParams.set('db', data.newname);
  48. PMA_reloadNavigation(function () {
  49. $('#pma_navigation_tree')
  50. .find("a:not('.expander')")
  51. .each(function (index) {
  52. var $thisAnchor = $(this);
  53. if ($thisAnchor.text() == data.newname) {
  54. // simulate a click on the new db name
  55. // in navigation
  56. $thisAnchor.trigger('click');
  57. }
  58. });
  59. });
  60. } else {
  61. PMA_ajaxShowMessage(data.error, false);
  62. }
  63. }); // end $.get()
  64. });
  65. }); // end Rename Database
  66. /**
  67. * Ajax Event Handler for 'Copy Database'
  68. */
  69. $("#copy_db_form.ajax").live('submit', function (event) {
  70. event.preventDefault();
  71. PMA_ajaxShowMessage(PMA_messages.strCopyingDatabase, false);
  72. var $form = $(this);
  73. PMA_prepareForAjaxRequest($form);
  74. $.get($form.attr('action'), $form.serialize(), function (data) {
  75. // use messages that stay on screen
  76. $('div.success, div.error').fadeOut();
  77. if (data.success === true) {
  78. if ($("#checkbox_switch").is(":checked")) {
  79. PMA_commonParams.set('db', data.newname);
  80. PMA_commonActions.refreshMain(false, function () {
  81. PMA_ajaxShowMessage(data.message);
  82. });
  83. } else {
  84. PMA_commonParams.set('db', data.db);
  85. PMA_ajaxShowMessage(data.message);
  86. }
  87. PMA_reloadNavigation();
  88. } else {
  89. PMA_ajaxShowMessage(data.error, false);
  90. }
  91. }); // end $.get
  92. }); // end copy database
  93. /**
  94. * Ajax Event handler for 'Change Charset' of the database
  95. */
  96. $("#change_db_charset_form.ajax").live('submit', function (event) {
  97. event.preventDefault();
  98. var $form = $(this);
  99. PMA_prepareForAjaxRequest($form);
  100. PMA_ajaxShowMessage(PMA_messages.strChangingCharset);
  101. $.get($form.attr('action'), $form.serialize() + "&submitcollation=1", function (data) {
  102. if (data.success === true) {
  103. PMA_ajaxShowMessage(data.message);
  104. } else {
  105. PMA_ajaxShowMessage(data.error, false);
  106. }
  107. }); // end $.get()
  108. }); // end change charset
  109. });