trumbowyg.specialchars.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /* ===========================================================
  2. * trumbowyg.specialchars.js v0.99
  3. * Unicode characters picker plugin for Trumbowyg
  4. * http://alex-d.github.com/Trumbowyg
  5. * ===========================================================
  6. * Author : Renaud Hoyoux (geektortoise)
  7. */
  8. (function ($) {
  9. 'use strict';
  10. var defaultOptions = {
  11. symbolList: [
  12. // currencies
  13. '0024','20AC','00A3','00A2','00A5','00A4','2030', null,
  14. // legal signs
  15. '00A9','00AE', '2122', null,
  16. // textual sign
  17. '00A7','00B6','00C6','00E6','0152','0153', null,
  18. '2022','25CF','2023','25B6','2B29','25C6',null,
  19. //maths
  20. '00B1','00D7','00F7','21D2','21D4','220F','2211','2243','2264','2265'
  21. ]
  22. };
  23. $.extend(true, $.trumbowyg, {
  24. langs: {
  25. en: {
  26. specialChars: 'Special characters'
  27. },
  28. fr: {
  29. specialChars: 'Caractères spéciaux'
  30. }
  31. },
  32. plugins: {
  33. specialchars: {
  34. init: function (trumbowyg) {
  35. trumbowyg.o.plugins.specialchars = trumbowyg.o.plugins.specialchars || defaultOptions;
  36. var specialCharsBtnDef = {
  37. dropdown: buildDropdown(trumbowyg)
  38. };
  39. trumbowyg.addBtnDef('specialChars', specialCharsBtnDef);
  40. }
  41. }
  42. }
  43. });
  44. function buildDropdown(trumbowyg) {
  45. var dropdown = [];
  46. var isNull = false;
  47. $.each(trumbowyg.o.plugins.specialchars.symbolList, function (i, symbol) {
  48. if(symbol === null){
  49. symbol = '&nbsp';
  50. } else {
  51. symbol = '&#x' + symbol;
  52. }
  53. var btn = symbol.replace(/:/g, ''),
  54. defaultSymbolBtnName = 'symbol-' + btn,
  55. defaultSymbolBtnDef = {
  56. text: symbol,
  57. fn: function () {
  58. var encodedSymbol = String.fromCodePoint(symbol.replace("&#", "0"));
  59. trumbowyg.execCmd('insertText', encodedSymbol);
  60. return true;
  61. }
  62. };
  63. trumbowyg.addBtnDef(defaultSymbolBtnName, defaultSymbolBtnDef);
  64. dropdown.push(defaultSymbolBtnName);
  65. });
  66. return dropdown;
  67. }
  68. })(jQuery);