Dotclear

source: plugins/dcCKEditor/js/popup_media.js @ 3041:5ff00abdc0a0

Revision 3041:5ff00abdc0a0, 2.8 KB checked in by Nicolas <nikrou77@…>, 10 years ago (diff)

Cop with #1485
Fix link around image.

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: block;'
19              };
20
21          if (type=='image') {
22               if (editor.mode=='wysiwyg') {
23                    var figure_template = '<figure style="{figureStyle}"><img class="media" src="{imgSrc}" alt="{imgAlt}"/><figcaption>{figCaption}</figcaption></figure>',
24                        a_figure_template = '<figure style="{figureStyle}"><a class="media-link" href="{aHref}"><img class="media" src="{imgSrc}" alt="{imgAlt}"/></a><figcaption>{figCaption}</figcaption></figure>',
25                        figure_block = new window.opener.CKEDITOR.template(figure_template),
26                        a_figure_block = new window.opener.CKEDITOR.template(a_figure_template),
27                        params = {},
28                        templateBlock = null;
29
30                    var align = $('input[name="alignment"]:checked',insert_form).val();
31                    if (align!='' && align!='none') {
32                         params.figureStyle = media_align_grid[align];
33                    }
34
35                    var img_description = $('input[name="description"]',insert_form).val();
36                    params.figCaption = window.opener.CKEDITOR.tools.htmlEncodeAttr(img_description);
37
38                    var selected_element = '';
39                    if (editor.getSelection().getSelectedElement() !=null ) {
40                         selected_element = editor.getSelection().getSelectedElement();
41                    } else {
42                         selected_element = editor.getSelection().getNative().toString();
43                    }
44                    if (selected_element == '') {
45                         selected_element = window.opener.$.stripBaseURL($('input[name="title"]',insert_form).val());
46                    }
47                    params.imgAlt = window.opener.CKEDITOR.tools.htmlEncodeAttr(selected_element);
48                    params.imgSrc = window.opener.$.stripBaseURL($('input[name="src"]:checked',insert_form).val());
49
50                    if ($('input[name="insertion"]:checked',insert_form).val() == 'link') {
51                         params.aHref = window.opener.$.stripBaseURL($('input[name="url"]',insert_form).val());
52                         templateBlock = a_figure_block;
53                    } else {
54                         templateBlock = figure_block;
55                    }
56
57                    var figure = window.opener.CKEDITOR.dom.element.createFromHtml(
58                         templateBlock.output(params), editor.document
59                    );
60
61                    editor.insertElement(figure);
62               }
63          } else {
64               var link = '<a href="';
65               link += window.opener.$.stripBaseURL($('input[name="url"]',insert_form).val());
66               link += '">'+window.opener.CKEDITOR.tools.htmlEncodeAttr(insert_form.elements.title.value)+'</a>';
67               element = window.opener.CKEDITOR.dom.element.createFromHtml(link);
68
69               editor.insertElement(element);
70          }
71
72          window.close();
73     });
74});
Note: See TracBrowser for help on using the repository browser.

Sites map