Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / plugins / fullscreen / fullscreen.htm
index 3b1f8a21643d836cba83a0b8a38037a8321a0668..ffe528e41737d68d98a4929c299dbe5e37920990 100644 (file)
-<html>
-<title></title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<script language="javascript" type="text/javascript" src="../../tiny_mce.js"></script>
-<script language="javascript" type="text/javascript">
-       function patchCallback(settings, key) {
-               if (settings[key])
-                       settings[key] = "window.opener." + settings[key];
-       }
-
-       var settings = new Array();
-
-       // Clone array
-       for (var name in window.opener.tinyMCE.settings)
-               settings[name] = window.opener.tinyMCE.settings[name];
-
-       // Override options for fullscreen
-       for (var name in window.opener.tinyMCE.settings.fullscreen_settings)
-               settings[name] = window.opener.tinyMCE.settings.fullscreen_settings[name];
-
-       // Patch callbacks, make them point to window.opener
-       patchCallback(settings, 'urlconverter_callback');
-       patchCallback(settings, 'insertlink_callback');
-       patchCallback(settings, 'insertimage_callback');
-       patchCallback(settings, 'setupcontent_callback');
-       patchCallback(settings, 'save_callback');
-       patchCallback(settings, 'onchange_callback');
-       patchCallback(settings, 'init_instance_callback');
-       patchCallback(settings, 'file_browser_callback');
-       patchCallback(settings, 'cleanup_callback');
-       patchCallback(settings, 'oninit');
-
-       // Set options
-       settings['mode'] = 'exact';
-       settings['elements'] = 'fullscreenarea';
-       settings['ask'] = false;
-       settings['setupcontent_callback'] = 'setupContent';
-       settings['fullscreen_is_enabled'] = true;
-       settings['fullscreen_editor_id'] = window.opener.tinyMCE.getWindowArg("editor_id");
-       settings['theme_advanced_resizing'] = false;
-
-       // Init
-       tinyMCE.init(settings);
-       tinyMCE.documentBasePath = window.opener.tinyMCE.documentBasePath;
-
-       function setupContent(editor_id, body, doc) {
-               var inst = tinyMCE.getInstanceById(editor_id);
-               var backInst = window.opener.tinyMCE.getInstanceById(tinyMCE.getParam('fullscreen_editor_id'));
-
-               // Setup title
-               var divElm = document.createElement("div");
-               divElm.innerHTML = tinyMCELang['lang_fullscreen_title'];
-               document.title = divElm.innerHTML;
-
-               // Get content
-               inst.getBody().innerHTML = backInst.getBody().innerHTML;
-       }
-
-       function unloadHandler(e) {
-               window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent', false, tinyMCE.getContent("mce_editor_0"));
-       }
-
-       // Add onunload
-       tinyMCE.addEvent(window, "beforeunload", unloadHandler);
-</script>
-</head>
-<body style="margin: 0px; overflow: hidden; height: 100%" scrolling="no" scroll="no">
-
-<textarea id="fullscreenarea" style="width: 100%; height: 100%"></textarea>
-
-</body>
-</html>
+<!DOCTYPE html>\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="X-UA-Compatible" content="IE=edge" />\r
+       <script type="text/javascript" src="../../tiny_mce.js"></script>\r
+       <script type="text/javascript">\r
+               function patchCallback(settings, key) {\r
+                       if (settings[key])\r
+                               settings[key] = "window.opener." + settings[key];\r
+               }\r
+\r
+               var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;\r
+\r
+               // Clone array\r
+               for (var n in paSe)\r
+                       settings[n] = paSe[n];\r
+\r
+               // Override options for fullscreen\r
+               for (var n in paSe.fullscreen_settings)\r
+                       settings[n] = paSe.fullscreen_settings[n];\r
+\r
+               // Patch callbacks, make them point to window.opener\r
+               patchCallback(settings, 'urlconverter_callback');\r
+               patchCallback(settings, 'insertlink_callback');\r
+               patchCallback(settings, 'insertimage_callback');\r
+               patchCallback(settings, 'setupcontent_callback');\r
+               patchCallback(settings, 'save_callback');\r
+               patchCallback(settings, 'onchange_callback');\r
+               patchCallback(settings, 'init_instance_callback');\r
+               patchCallback(settings, 'file_browser_callback');\r
+               patchCallback(settings, 'cleanup_callback');\r
+               patchCallback(settings, 'execcommand_callback');\r
+               patchCallback(settings, 'oninit');\r
+\r
+               // Set options\r
+               delete settings.id;\r
+               settings['mode'] = 'exact';\r
+               settings['elements'] = 'fullscreenarea';\r
+               settings['add_unload_trigger'] = false;\r
+               settings['ask'] = false;\r
+               settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();\r
+               settings['fullscreen_is_enabled'] = true;\r
+               settings['fullscreen_editor_id'] = oeID;\r
+               settings['theme_advanced_resizing'] = false;\r
+               settings['strict_loading_mode'] = true;\r
+\r
+               settings.save_onsavecallback = function() {\r
+                       window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});\r
+                       window.opener.tinyMCE.get(oeID).execCommand('mceSave');\r
+                       window.close();\r
+               };\r
+\r
+               function unloadHandler(e) {\r
+                       moveContent();\r
+               }\r
+\r
+               function moveContent() {\r
+                       window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());\r
+               }\r
+\r
+               function closeFullscreen() {\r
+                       moveContent();\r
+                       window.close();\r
+               }\r
+\r
+               function doParentSubmit() {\r
+                       moveContent();\r
+\r
+                       if (window.opener.tinyMCE.selectedInstance.formElement.form)\r
+                               window.opener.tinyMCE.selectedInstance.formElement.form.submit();\r
+\r
+                       window.close();\r
+\r
+                       return false;\r
+               }\r
+\r
+               function render() {\r
+                       var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;\r
+\r
+                       e.value = window.opener.tinyMCE.get(oeID).getContent();\r
+\r
+                       vp = dom.getViewPort();\r
+                       settings.width = vp.w;\r
+                       settings.height = vp.h - 15;\r
+\r
+                       tinymce.dom.Event.add(window, 'resize', function() {\r
+                               var vp = dom.getViewPort();\r
+\r
+                               tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);\r
+                       });\r
+\r
+                       tinyMCE.init(settings);\r
+               }\r
+\r
+               // Add onunload\r
+               tinymce.dom.Event.add(window, "beforeunload", unloadHandler);\r
+       </script>\r
+</head>\r
+<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">\r
+<form onsubmit="doParentSubmit();">\r
+<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>\r
+</form>\r
+\r
+<script type="text/javascript">\r
+       render();\r
+</script>\r
+\r
+</body>\r
+</html>\r