Dotclear

source: plugins/dcCKEditor/js/popup_media.js @ 3446:fee8f21c2bef

Revision 3446:fee8f21c2bef, 3.9 KB checked in by franck <carnet.franck.paul@…>, 9 years ago (diff)

Add legend and title insertion option for image insertion in entry, closes #2227

Line 
1$(function() {
2     $('#media-insert-cancel').click(function() {
3          window.close();
4     });
5
6     $('#media-insert-ok').click(function() {
7          var insert_form = $('#media-insert-form').get(0);
8          if (insert_form === undefined) {
9               return;
10          }
11
12          var editor_name = window.opener.$.getEditorName(),
13              editor = window.opener.CKEDITOR.instances[editor_name],
14              type = insert_form.elements.type.value,
15              media_align_grid = {
16                   left: 'float: left; margin: 0 1em 1em 0;',
17                   right: 'float: right; margin: 0 0 1em 1em;',
18                   center: 'margin: 0 auto; display: table;'
19              };
20
21          if (type == 'image') {
22               if (editor.mode == 'wysiwyg') {
23                    var media_legend = $('input[name="legend"]:checked',insert_form).val();
24                    if (media_legend != '' && media_legend != 'title' && media_legend != 'none') {
25                         media_legend = 'legend';
26                    }
27                    if (media_legend == 'legend') {
28                         var figure_template = '<figure style="{figureStyle}"><img class="media" src="{imgSrc}" alt="{imgAlt}"/><figcaption>{figCaption}</figcaption></figure>',
29                             a_figure_template = '<figure style="{figureStyle}"><a class="media-link" href="{aHref}"><img class="media" src="{imgSrc}" alt="{imgAlt}"/></a><figcaption>{figCaption}</figcaption></figure>';
30                    } else if (media_legend == 'title') {
31                         var figure_template = '<img style="{figureStyle}" class="media" src="{imgSrc}" alt="{imgAlt}"/>',
32                             a_figure_template = '<a class="media-link" href="{aHref}"><img class="media" style="{figureStyle}" src="{imgSrc}" alt="{imgAlt}"/></a>';
33                    } else {
34                         var figure_template = '<img style="{figureStyle}" class="media" src="{imgSrc}" alt=""/>',
35                             a_figure_template = '<a class="media-link" href="{aHref}"><img class="media" style="{figureStyle}" src="{imgSrc}" alt=""/></a>';
36                    }
37                    var figure_block = new window.opener.CKEDITOR.template(figure_template),
38                        a_figure_block = new window.opener.CKEDITOR.template(a_figure_template),
39                        params = {},
40                        templateBlock = null;
41
42                    var align = $('input[name="alignment"]:checked',insert_form).val();
43                    if (align!='' && align!='none') {
44                         params.figureStyle = media_align_grid[align];
45                    }
46
47                    var img_description = $('input[name="description"]',insert_form).val();
48                    params.figCaption = window.opener.CKEDITOR.tools.htmlEncodeAttr(img_description);
49
50                    var selected_element = '';
51                    if (editor.getSelection().getSelectedElement() !=null ) {
52                         selected_element = editor.getSelection().getSelectedElement();
53                    } else {
54                         selected_element = editor.getSelection().getNative().toString();
55                    }
56                    if (selected_element == '') {
57                         selected_element = window.opener.$.stripBaseURL($('input[name="title"]',insert_form).val());
58                    }
59                    params.imgAlt = window.opener.CKEDITOR.tools.htmlEncodeAttr(selected_element);
60                    params.imgSrc = window.opener.$.stripBaseURL($('input[name="src"]:checked',insert_form).val());
61
62                    if ($('input[name="insertion"]:checked',insert_form).val() == 'link') {
63                         params.aHref = window.opener.$.stripBaseURL($('input[name="url"]',insert_form).val());
64                         templateBlock = a_figure_block;
65                    } else {
66                         templateBlock = figure_block;
67                    }
68
69                    var figure = window.opener.CKEDITOR.dom.element.createFromHtml(
70                         templateBlock.output(params), editor.document
71                    );
72
73                    editor.insertElement(figure);
74               }
75          } else if (type=='mp3') {
76               var player = $('#public_player').val();
77               var align = $('input[name="alignment"]:checked',insert_form).val();
78
79               if (align != undefined && align != 'none') {
80                    player = '<div style="' + media_align_grid[align] + '">' + player + '</div>';
81               }
82               editor.insertElement(window.opener.CKEDITOR.dom.element.createFromHtml(player));
83          } else {
84               var link = '<a href="';
85               link += window.opener.$.stripBaseURL($('input[name="url"]',insert_form).val());
86               link += '">'+window.opener.CKEDITOR.tools.htmlEncodeAttr(insert_form.elements.title.value)+'</a>';
87               element = window.opener.CKEDITOR.dom.element.createFromHtml(link);
88
89               editor.insertElement(element);
90          }
91
92          window.close();
93     });
94});
Note: See TracBrowser for help on using the repository browser.

Sites map