Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / plugins / advimage / js / image.js
index 3bda86a2d38e378d31074be4ec621765b207c90e..546b69c0de705f4e51886264a1c2cb650652123c 100644 (file)
@@ -9,13 +9,13 @@ var ImageDialog = {
        },\r
 \r
        init : function(ed) {\r
-               var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
+               var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode(), fl = tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList');\r
 \r
                tinyMCEPopup.resizeToInnerSize();\r
                this.fillClassList('class_list');\r
-               this.fillFileList('src_list', 'tinyMCEImageList');\r
-               this.fillFileList('over_list', 'tinyMCEImageList');\r
-               this.fillFileList('out_list', 'tinyMCEImageList');\r
+               this.fillFileList('src_list', fl);\r
+               this.fillFileList('over_list', fl);\r
+               this.fillFileList('out_list', fl);\r
                TinyMCE_EditableSelects.init();\r
 \r
                if (n.nodeName == 'IMG') {\r
@@ -142,7 +142,7 @@ var ImageDialog = {
                }\r
 \r
                tinymce.extend(args, {\r
-                       src : nl.src.value,\r
+                       src : nl.src.value.replace(/ /g, '%20'),\r
                        width : nl.width.value,\r
                        height : nl.height.value,\r
                        alt : nl.alt.value,\r
@@ -171,12 +171,18 @@ var ImageDialog = {
                if (el && el.nodeName == 'IMG') {\r
                        ed.dom.setAttribs(el, args);\r
                } else {\r
-                       ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
-                       ed.dom.setAttribs('__mce_tmp', args);\r
-                       ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+                       tinymce.each(args, function(value, name) {\r
+                               if (value === "") {\r
+                                       delete args[name];\r
+                               }\r
+                       });\r
+\r
+                       ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1});\r
                        ed.undoManager.add();\r
                }\r
 \r
+               tinyMCEPopup.editor.execCommand('mceRepaint');\r
+               tinyMCEPopup.editor.focus();\r
                tinyMCEPopup.close();\r
        },\r
 \r
@@ -285,7 +291,7 @@ var ImageDialog = {
        fillFileList : function(id, l) {\r
                var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
 \r
-               l = window[l];\r
+               l = typeof(l) === 'function' ? l() : window[l];\r
                lst.options.length = 0;\r
 \r
                if (l && l.length > 0) {\r
@@ -359,7 +365,7 @@ var ImageDialog = {
        },\r
 \r
        updateStyle : function(ty) {\r
-               var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});\r
+               var dom = tinyMCEPopup.dom, b, bStyle, bColor, v, isIE = tinymce.isIE, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});\r
 \r
                if (tinyMCEPopup.editor.settings.inline_styles) {\r
                        // Handle align\r
@@ -378,14 +384,27 @@ var ImageDialog = {
 \r
                        // Handle border\r
                        if (ty == 'border') {\r
+                               b = img.style.border ? img.style.border.split(' ') : [];\r
+                               bStyle = dom.getStyle(img, 'border-style');\r
+                               bColor = dom.getStyle(img, 'border-color');\r
+\r
                                dom.setStyle(img, 'border', '');\r
 \r
                                v = f.border.value;\r
                                if (v || v == '0') {\r
                                        if (v == '0')\r
-                                               img.style.border = '0';\r
-                                       else\r
-                                               img.style.border = v + 'px solid black';\r
+                                               img.style.border = isIE ? '0' : '0 none none';\r
+                                       else {\r
+                                               if (b.length == 3 && b[isIE ? 2 : 1])\r
+                                                       bStyle = b[isIE ? 2 : 1];\r
+                                               else if (!bStyle || bStyle == 'none')\r
+                                                       bStyle = 'solid';\r
+                                               if (b.length == 3 && b[isIE ? 0 : 2])\r
+                                                       bColor = b[isIE ? 0 : 2];\r
+                                               else if (!bColor || bColor == 'none')\r
+                                                       bColor = 'black';\r
+                                               img.style.border = v + 'px ' + bStyle + ' ' + bColor;\r
+                                       }\r
                                }\r
                        }\r
 \r