trumbowyg.noembed.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /* ===========================================================
  2. * trumbowyg.noembed.js v1.0
  3. * noEmbed plugin for Trumbowyg
  4. * http://alex-d.github.com/Trumbowyg
  5. * ===========================================================
  6. * Author : Jake Johns (jakejohns)
  7. */
  8. (function ($) {
  9. 'use strict';
  10. var defaultOptions = {
  11. proxy: 'https://noembed.com/embed?nowrap=on',
  12. urlFiled: 'url',
  13. data: [],
  14. success: undefined,
  15. error: undefined
  16. };
  17. $.extend(true, $.trumbowyg, {
  18. langs: {
  19. en: {
  20. noembed: 'Noembed',
  21. noembedError: 'Error'
  22. },
  23. da: {
  24. noembedError: 'Fejl'
  25. },
  26. sk: {
  27. noembedError: 'Chyba'
  28. },
  29. fr: {
  30. noembedError: 'Erreur'
  31. },
  32. cs: {
  33. noembedError: 'Chyba'
  34. },
  35. ru: {
  36. noembedError: 'Ошибка'
  37. },
  38. ja: {
  39. noembedError: 'エラー'
  40. },
  41. tr: {
  42. noembedError: 'Hata'
  43. },
  44. zh_tw: {
  45. noembed: '插入影片',
  46. noembedError: '錯誤'
  47. },
  48. },
  49. plugins: {
  50. noembed: {
  51. init: function (trumbowyg) {
  52. trumbowyg.o.plugins.noembed = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.noembed || {});
  53. var btnDef = {
  54. fn: function () {
  55. var $modal = trumbowyg.openModalInsert(
  56. // Title
  57. trumbowyg.lang.noembed,
  58. // Fields
  59. {
  60. url: {
  61. label: 'URL',
  62. required: true
  63. }
  64. },
  65. // Callback
  66. function (data) {
  67. $.ajax({
  68. url: trumbowyg.o.plugins.noembed.proxy,
  69. type: 'GET',
  70. data: data,
  71. cache: false,
  72. dataType: 'json',
  73. success: trumbowyg.o.plugins.noembed.success || function (data) {
  74. if (data.html) {
  75. trumbowyg.execCmd('insertHTML', data.html);
  76. setTimeout(function () {
  77. trumbowyg.closeModal();
  78. }, 250);
  79. } else {
  80. trumbowyg.addErrorOnModalField(
  81. $('input[type=text]', $modal),
  82. data.error
  83. );
  84. }
  85. },
  86. error: trumbowyg.o.plugins.noembed.error || function () {
  87. trumbowyg.addErrorOnModalField(
  88. $('input[type=text]', $modal),
  89. trumbowyg.lang.noembedError
  90. );
  91. }
  92. });
  93. }
  94. );
  95. }
  96. };
  97. trumbowyg.addBtnDef('noembed', btnDef);
  98. }
  99. }
  100. }
  101. });
  102. })(jQuery);