trumbowyg.insertaudio.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*/* ===========================================================
  2. * trumbowyg.insertaudio.js v1.0
  3. * InsertAudio plugin for Trumbowyg
  4. * http://alex-d.github.com/Trumbowyg
  5. * ===========================================================
  6. * Author : Adam Hess (AdamHess)
  7. */
  8. (function ($) {
  9. 'use strict';
  10. var insertAudioOptions = {
  11. src: {
  12. label: 'URL',
  13. required: true
  14. },
  15. autoplay: {
  16. label: 'AutoPlay',
  17. required: false,
  18. type: 'checkbox'
  19. },
  20. muted: {
  21. label: 'Muted',
  22. required: false,
  23. type: 'checkbox'
  24. },
  25. preload: {
  26. label: 'preload options',
  27. required: false
  28. }
  29. };
  30. $.extend(true, $.trumbowyg, {
  31. langs: {
  32. en: {
  33. insertAudio: 'Insert Audio'
  34. },
  35. da: {
  36. insertAudio: 'Indsæt lyd'
  37. },
  38. fr: {
  39. insertAudio: 'Insérer un son'
  40. },
  41. ru: {
  42. insertAudio: 'Вставить аудио'
  43. },
  44. ja: {
  45. insertAudio: '音声の挿入'
  46. },
  47. tr: {
  48. insertAudio: 'Ses Ekle'
  49. }
  50. },
  51. plugins: {
  52. insertAudio: {
  53. init: function (trumbowyg) {
  54. var btnDef = {
  55. fn: function () {
  56. var insertAudioCallback = function (v) {
  57. // controls should always be show otherwise the audio will
  58. // be invisible defeating the point of a wysiwyg
  59. var html = '<audio controls';
  60. if (v.src) {
  61. html += ' src=\'' + v.src + '\'';
  62. }
  63. if (v.autoplay) {
  64. html += ' autoplay';
  65. }
  66. if (v.muted) {
  67. html += ' muted';
  68. }
  69. if (v.preload) {
  70. html += ' preload=\'' + v + '\'';
  71. }
  72. html += '></audio>';
  73. var node = $(html)[0];
  74. trumbowyg.range.deleteContents();
  75. trumbowyg.range.insertNode(node);
  76. return true;
  77. };
  78. trumbowyg.openModalInsert(trumbowyg.lang.insertAudio, insertAudioOptions, insertAudioCallback);
  79. }
  80. };
  81. trumbowyg.addBtnDef('insertAudio', btnDef);
  82. }
  83. }
  84. }
  85. });
  86. })(jQuery);