page_settings.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. /**
  3. * @fileoverview function used for page-related settings
  4. * @name Page-related settings
  5. *
  6. * @requires jQuery
  7. * @requires jQueryUI
  8. * @required js/functions.js
  9. */
  10. function showSettings(selector) {
  11. var buttons = {};
  12. buttons[Messages.strApply] = function () {
  13. $('.config-form').trigger('submit');
  14. };
  15. buttons[Messages.strCancel] = function () {
  16. $(this).dialog('close');
  17. }; // Keeping a clone to restore in case the user cancels the operation
  18. var $clone = $(selector + ' .page_settings').clone(true);
  19. $(selector).dialog({
  20. title: Messages.strPageSettings,
  21. width: 700,
  22. minHeight: 250,
  23. modal: true,
  24. open: function open() {
  25. $(this).dialog('option', 'maxHeight', $(window).height() - $(this).offset().top);
  26. },
  27. close: function close() {
  28. $(selector + ' .page_settings').replaceWith($clone);
  29. },
  30. buttons: buttons
  31. });
  32. }
  33. function showPageSettings() {
  34. showSettings('#page_settings_modal');
  35. }
  36. function showNaviSettings() {
  37. showSettings('#pma_navigation_settings');
  38. }
  39. AJAX.registerTeardown('page_settings.js', function () {
  40. $('#page_settings_icon').css('display', 'none');
  41. $('#page_settings_icon').off('click');
  42. $('#pma_navigation_settings_icon').off('click');
  43. });
  44. AJAX.registerOnload('page_settings.js', function () {
  45. if ($('#page_settings_modal').length) {
  46. $('#page_settings_icon').css('display', 'inline');
  47. $('#page_settings_icon').on('click', showPageSettings);
  48. }
  49. $('#pma_navigation_settings_icon').on('click', showNaviSettings);
  50. });