Dotclear

source: plugins/dcCKEditor/js/popup_media.js @ 3709:c88e69474c34

Revision 3709:c88e69474c34, 5.3 KB checked in by franck <carnet.franck.paul@…>, 7 years ago (diff)

use strict and no more linter warnings/errors as far as possible, switch from inline js to separate loaded file

Line 
1/*global $ */
2'use strict';
3
4$(function() {
5  $('#media-insert-cancel').click(function() {
6    window.close();
7  });
8
9  $('#media-insert-ok').click(function() {
10    var insert_form = $('#media-insert-form').get(0);
11    if (insert_form === undefined) {
12      return;
13    }
14
15    var editor_name = window.opener.$.getEditorName(),
16      editor = window.opener.CKEDITOR.instances[editor_name],
17      type = insert_form.elements.type.value,
18      media_align_grid = {
19        left: 'float: left; margin: 0 1em 1em 0;',
20        right: 'float: right; margin: 0 0 1em 1em;',
21        center: 'margin: 0 auto; display: table;'
22      };
23
24    if (type == 'image') {
25      if (editor.mode == 'wysiwyg') {
26
27        var align = $('input[name="alignment"]:checked', insert_form).val();
28        var media_legend = $('input[name="legend"]:checked', insert_form).val();
29        var img_description = $('input[name="description"]', insert_form).val();
30        var style = '';
31        var template = '';
32        var template_figure = [
33          '',
34          ''
35        ];
36        var template_link = [
37          '',
38          ''
39        ];
40        var template_image = '';
41
42        if (media_legend != '' && media_legend != 'title' && media_legend != 'none') {
43          media_legend = 'legend';
44        }
45
46        // Build template
47        if (align != '' && align != 'none') {
48          // Set alignment
49          style = ' style="{figureStyle}"';
50        }
51        if (media_legend == 'legend') {
52          // With a legend
53          template_figure[0] = '<figure' + style + '>';
54          style = ''; // Do not use style further
55          if (img_description != '') {
56            template_figure[1] = '<figcaption>{figCaption}</figcaption>';
57          }
58          template_figure[1] = template_figure[1] + '</figure>';
59        }
60        template_image = '<img class="media" src="{imgSrc}" alt="{imgAlt}"' + style + '/>';
61        if ($('input[name="insertion"]:checked', insert_form).val() == 'link') {
62          // With a link to original
63          template_link[0] = '<a class="media-link" href="{aHref}">';
64          template_link[1] = '</a>';
65        }
66        template = template_figure[0] + template_link[0] + template_image + template_link[1] + template_figure[1];
67
68        var block = new window.opener.CKEDITOR.template(template);
69        var params = {};
70
71        // Set parameters for template
72        if (media_legend != '' && media_legend != 'none') {
73          params.imgAlt = window.opener.CKEDITOR.tools.htmlEncodeAttr(
74            window.opener.$.stripBaseURL($('input[name="title"]', insert_form).val()));
75        } else {
76          params.imgAlt = '';
77        }
78        params.imgSrc = window.opener.$.stripBaseURL($('input[name="src"]:checked', insert_form).val());
79        if (align != '' && align != 'none') {
80          params.figureStyle = media_align_grid[align];
81        }
82        params.figCaption = window.opener.CKEDITOR.tools.htmlEncodeAttr(img_description);
83        if ($('input[name="insertion"]:checked', insert_form).val() == 'link') {
84          params.aHref = window.opener.$.stripBaseURL($('input[name="url"]', insert_form).val());
85        }
86
87        // Insert element
88        var figure = window.opener.CKEDITOR.dom.element.createFromHtml(
89          block.output(params), editor.document
90        );
91        editor.insertElement(figure);
92      }
93    } else if (type == 'mp3') {
94      // Audio media
95      var player_audio = $('#public_player').val();
96      var align_audio = $('input[name="alignment"]:checked', insert_form).val();
97
98      if (align_audio != undefined && align_audio != 'none') {
99        player_audio = '<div style="' + media_align_grid[align_audio] + '">' + player_audio + '</div>';
100      }
101      editor.insertElement(window.opener.CKEDITOR.dom.element.createFromHtml(player_audio));
102    } else if (type == 'flv') {
103      // Video media
104      var oplayer = $('<div>' + $('#public_player').val() + '</div>');
105      var flashvars = $('[name=FlashVars]', oplayer).val();
106
107      var align_video = $('input[name="alignment"]:checked', insert_form).val();
108      var title = insert_form.elements.title.value;
109
110      $('video', oplayer).attr('width', $('#video_w').val());
111      $('video', oplayer).attr('height', $('#video_h').val());
112
113      if (title) {
114        flashvars = 'title=' + encodeURI(title) + '&amp;' + flashvars;
115      }
116      $('object', oplayer).attr('width', $('#video_w').val());
117      $('object', oplayer).attr('height', $('#video_h').val());
118      flashvars = flashvars.replace(/(width=\d*)/, 'width=' + $('#video_w').val());
119      flashvars = flashvars.replace(/(height=\d*)/, 'height=' + $('#video_h').val());
120
121      $('[name=FlashVars]', oplayer).val(flashvars);
122      var player_video = oplayer.html();
123
124      if (align_video != undefined && align_video != 'none') {
125        player_video = '<div style="' + media_align_grid[align_video] + '">' + player_video + '</div>';
126      }
127      editor.insertElement(window.opener.CKEDITOR.dom.element.createFromHtml(player_video));
128    } else {
129      // Unknown media type
130      var link = '<a href="';
131      link += window.opener.$.stripBaseURL($('input[name="url"]', insert_form).val());
132      link += '">' + window.opener.CKEDITOR.tools.htmlEncodeAttr(insert_form.elements.title.value) + '</a>';
133      var element = window.opener.CKEDITOR.dom.element.createFromHtml(link);
134
135      editor.insertElement(element);
136    }
137
138    window.close();
139  });
140});
Note: See TracBrowser for help on using the repository browser.

Sites map