Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / plugins / advlist / editor_plugin_src.js
index a61887a9220678c7f62f630a47a16abbf2dd80a4..a8f046b4188a3d1c669360d1a0ba0599466163ff 100644 (file)
                        // Setup number formats from config or default\r
                        t.numlist = ed.getParam("advlist_number_styles") || buildFormats("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");\r
                        t.bullist = ed.getParam("advlist_bullet_styles") || buildFormats("default,circle,disc,square");\r
+\r
+                       if (tinymce.isIE && /MSIE [2-7]/.test(navigator.userAgent))\r
+                               t.isIE7 = true;\r
                },\r
 \r
                createControl: function(name, cm) {\r
-                       var t = this, btn, format;\r
+                       var t = this, btn, format, editor = t.editor;\r
 \r
                        if (name == 'numlist' || name == 'bullist') {\r
                                // Default to first item if it's a default item\r
@@ -50,7 +53,7 @@
 \r
                                        each(format.styles, function(value, name) {\r
                                                // Format doesn't match\r
-                                               if (t.editor.dom.getStyle(node, name) != value) {\r
+                                               if (editor.dom.getStyle(node, name) != value) {\r
                                                        state = false;\r
                                                        return false;\r
                                                }\r
                                };\r
 \r
                                function applyListFormat() {\r
-                                       var list, ed = t.editor, dom = ed.dom, sel = ed.selection;\r
+                                       var list, dom = editor.dom, sel = editor.selection;\r
 \r
                                        // Check for existing list element\r
                                        list = dom.getParent(sel.getNode(), 'ol,ul');\r
 \r
                                        // Switch/add list type if needed\r
                                        if (!list || list.nodeName == (name == 'bullist' ? 'OL' : 'UL') || hasFormat(list, format))\r
-                                               ed.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList');\r
+                                               editor.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList');\r
 \r
                                        // Append styles to new list element\r
                                        if (format) {\r
                                                list = dom.getParent(sel.getNode(), 'ol,ul');\r
-\r
                                                if (list) {\r
                                                        dom.setStyles(list, format.styles);\r
-                                                       list.removeAttribute('_mce_style');\r
+                                                       list.removeAttribute('data-mce-style');\r
                                                }\r
                                        }\r
+\r
+                                       editor.focus();\r
                                };\r
 \r
                                btn = cm.createSplitButton(name, {\r
                                });\r
 \r
                                btn.onRenderMenu.add(function(btn, menu) {\r
+                                       menu.onHideMenu.add(function() {\r
+                                               if (t.bookmark) {\r
+                                                       editor.selection.moveToBookmark(t.bookmark);\r
+                                                       t.bookmark = 0;\r
+                                               }\r
+                                       });\r
+\r
                                        menu.onShowMenu.add(function() {\r
-                                               var dom = t.editor.dom, list = dom.getParent(t.editor.selection.getNode(), 'ol,ul'), fmtList;\r
+                                               var dom = editor.dom, list = dom.getParent(editor.selection.getNode(), 'ol,ul'), fmtList;\r
 \r
                                                if (list || format) {\r
                                                        fmtList = t[name];\r
                                                        if (!list)\r
                                                                menu.items[format.id].setSelected(1);\r
                                                }\r
+       \r
+                                               editor.focus();\r
+\r
+                                               // IE looses it's selection so store it away and restore it later\r
+                                               if (tinymce.isIE) {\r
+                                                       t.bookmark = editor.selection.getBookmark(1);\r
+                                               }\r
                                        });\r
 \r
-                                       menu.add({id : t.editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+                                       menu.add({id : editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle', titleItem: true}).setDisabled(1);\r
 \r
                                        each(t[name], function(item) {\r
-                                               item.id = t.editor.dom.uniqueId();\r
+                                               // IE<8 doesn't support lower-greek, skip it\r
+                                               if (t.isIE7 && item.styles.listStyleType == 'lower-greek')\r
+                                                       return;\r
+\r
+                                               item.id = editor.dom.uniqueId();\r
 \r
                                                menu.add({id : item.id, title : item.title, onclick : function() {\r
                                                        format = item;\r