LegacyInput.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * LegacyInput.js
  3. *
  4. * Copyright, Moxiecode Systems AB
  5. * Released under LGPL License.
  6. *
  7. * License: http://www.tinymce.com/license
  8. * Contributing: http://www.tinymce.com/contributing
  9. */
  10. define("tinymce/LegacyInput", [
  11. "tinymce/EditorManager",
  12. "tinymce/util/Tools"
  13. ], function(EditorManager, Tools) {
  14. var each = Tools.each, explode = Tools.explode;
  15. EditorManager.on('AddEditor', function(e) {
  16. var editor = e.editor;
  17. editor.on('preInit', function() {
  18. var filters, fontSizes, dom, settings = editor.settings;
  19. function replaceWithSpan(node, styles) {
  20. each(styles, function(value, name) {
  21. if (value) {
  22. dom.setStyle(node, name, value);
  23. }
  24. });
  25. dom.rename(node, 'span');
  26. }
  27. function convert(e) {
  28. dom = editor.dom;
  29. if (settings.convert_fonts_to_spans) {
  30. each(dom.select('font,u,strike', e.node), function(node) {
  31. filters[node.nodeName.toLowerCase()](dom, node);
  32. });
  33. }
  34. }
  35. if (settings.inline_styles) {
  36. fontSizes = explode(settings.font_size_legacy_values);
  37. filters = {
  38. font: function(dom, node) {
  39. replaceWithSpan(node, {
  40. backgroundColor: node.style.backgroundColor,
  41. color: node.color,
  42. fontFamily: node.face,
  43. fontSize: fontSizes[parseInt(node.size, 10) - 1]
  44. });
  45. },
  46. u: function(dom, node) {
  47. replaceWithSpan(node, {
  48. textDecoration: 'underline'
  49. });
  50. },
  51. strike: function(dom, node) {
  52. replaceWithSpan(node, {
  53. textDecoration: 'line-through'
  54. });
  55. }
  56. };
  57. editor.on('PreProcess SetContent', convert);
  58. }
  59. });
  60. });
  61. });