openlayers.editor.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. (function ($, Drupal) {
  2. "use strict";
  3. Drupal.behaviors.openlayers_editor = {
  4. attach: function (context, settings) {
  5. $('textarea[data-editor]').each(function () {
  6. var textarea = $(this);
  7. var mode = textarea.data('editor');
  8. var editDiv = $('<div>', {
  9. position: 'absolute',
  10. width: textarea.width(),
  11. height: textarea.height(),
  12. 'class': textarea.attr('class')
  13. }).insertBefore(textarea);
  14. textarea.css('visibility', 'hidden');
  15. textarea.css('display', 'none');
  16. var editor = ace.edit(editDiv[0]);
  17. editor.renderer.setShowGutter(true);
  18. editor.renderer.setDisplayIndentGuides(true);
  19. editor.renderer.setShowInvisibles(true);
  20. editor.session.setUseSoftTabs(true);
  21. editor.getSession().setValue(textarea.val());
  22. editor.getSession().setMode("ace/mode/" + mode);
  23. editor.setTheme("ace/theme/textmate");
  24. // copy back to textarea on form submit...
  25. textarea.closest('form').submit(function () {
  26. textarea.val(editor.getSession().getValue());
  27. });
  28. });
  29. }
  30. };
  31. }(jQuery, Drupal));