scratch – Blame information for rev 58

Subversion Repositories:
Rev:
Rev Author Line No. Line
58 office 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  
9 (function ($) {
10 'use strict';
11  
12 var insertAudioOptions = {
13 src: {
14 label: 'URL',
15 required: true
16 },
17 autoplay: {
18 label: 'AutoPlay',
19 required: false,
20 type: 'checkbox'
21 },
22 muted: {
23 label: 'Muted',
24 required: false,
25 type: 'checkbox'
26 },
27 preload: {
28 label: 'preload options',
29 required: false
30 }
31 };
32  
33  
34 $.extend(true, $.trumbowyg, {
35 langs: {
36 en: {
37 insertAudio: 'Insert Audio'
38 }
39 },
40 plugins: {
41 insertAudio: {
42 init: function (trumbowyg) {
43 var btnDef = {
44 fn: function () {
45 var insertAudioCallback = function (v) {
46 // controls should always be show otherwise the audio will
47 // be invisible defeating the point of a wysiwyg
48 var html = '<audio controls';
49 if (v.src) {
50 html += ' src=\'' + v.src + '\'';
51 }
52 if (v.autoplay) {
53 html += ' autoplay';
54 }
55 if (v.muted) {
56 html += ' muted';
57 }
58 if (v.preload) {
59 html += ' preload=\'' + v + '\'';
60 }
61 html += '></audio>';
62 var node = $(html)[0];
63 trumbowyg.range.deleteContents();
64 trumbowyg.range.insertNode(node);
65 return true;
66 };
67  
68 trumbowyg.openModalInsert(trumbowyg.lang.insertAudio, insertAudioOptions, insertAudioCallback);
69 }
70 };
71  
72 trumbowyg.addBtnDef('insertAudio', btnDef);
73 }
74 }
75 }
76 });
77 })(jQuery);