aboutsummaryrefslogtreecommitdiffstats
path: root/js/mce-button.js
blob: be2d6cd096fe2b26bc004f3afdc2b8779c645d6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*!
 * @source: here
 *
 * @licstart  The following is the entire license notice for the
 *  JavaScript code in this page.
 *
 * Copyleft 2016 Jorge Maldonado Ventura
 *
 * The JavaScript code in this page is free software: you can
 * redistribute it and/or modify it under the terms of the GNU
 * General Public License (GNU GPL) as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option)
 * any later version.  The code is distributed WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
 *
 * As additional permission under GNU GPL version 3 section 7, you
 * may distribute non-source (e.g., minimized or compacted) forms of
 * that code without the copy of the GNU GPL normally required by
 * section 4, provided you include this license notice and a URL
 * through which recipients can access the Corresponding Source.
 *
 * @licend  The above is the entire license notice
 * for the JavaScript code in this page.
 *
 */
/**
 *
 */
(function() {
    tinymce.PluginManager.add('vinotjs', function(editor, url) {
        var sh_tag = 'vinotjs';

        //add popup
        editor.addCommand('vinotjs_popup', function(ui, v) {
            //setup defaults
            var url = '';
            if (v.url)
                url = v.url;
            var poster = '';
            if (v.poster)
                poster = v.poster;
            var code = 'webm';
            if (v.color)
                code = v.color;
            var content = '';
            if (v.content)
                content = v.content;

            editor.windowManager.open( {
                title: 'ViNotJS - Inserción de vídeo',
                body: [
                    {
                        type: 'textbox',
                        name: 'url',
                        label: 'URL',
                        value: url,
                        tooltip: 'Inserta la URL del vídeo'
                    },
                    {
                        type: 'textbox',
                        name: 'poster',
                        label: 'Poster',
                        value: poster,
                        tooltip: 'Escribe aquí la URL de la imagen que deseas que se visualice antes de reproducir el vídeo'
                    },
                    {
                        type: 'listbox',
                        name: 'code',
                        label: 'Formato',
                        value: code,
                        'values': [
                            {text: 'webm', value: 'webm'},
                            {text: 'ogv', value: 'ogg'},
                            {text: 'mp4', value: 'mp4'}
                        ],
                        tooltip: 'Selecciona el formato del vídeo'
                    },
                    {
                        type: 'textbox',
                        name: 'content',
                        label: 'Extra',
                        value: content,
                        multiline: true,
                        minWidth: 300,
                        minHeight: 100
                    }
                ],
                onsubmit: function(e) {
                    var shortcode_str = '[' + sh_tag;
                    if (typeof e.data.url != 'undefined' && e.data.url.length)
                        shortcode_str += ' url="' + e.data.url + '"';
                    if (typeof e.data.poster != 'undefined' && e.data.poster.length)
                        shortcode_str += ' poster="' + e.data.poster + '"';
                    if (typeof e.data.code != 'undefined' && e.data.code.length)
                        shortcode_str += ' code="' + e.data.code + '"';
                    if (typeof e.data.color != 'undefined' && e.data.color.length)
                        shortcode_str += ' skin="' + e.data.color + '"';

                    //add panel content
                    shortcode_str += ']' + e.data.content + '[/' + sh_tag  + ']';
                    //insert shortcode to tinymce
                    editor.insertContent(shortcode_str);
                }
            });
        });

        editor.addButton('vinotjs', {
            icon: 'vinotjs',
            tooltip: 'ViNotJS',
            onclick: function() {
                editor.execCommand('vinotjs_popup', '', {
                    url : '',
                    poster: '',
                    code: 'webm',
                    color: '',
                    content: '',
                });
            }
        });
    });
})();