]> code.citadel.org Git - citadel.git/blobdiff - webcit/tiny_mce/plugins/fullscreen/fullscreen.htm
Upgrade of TinyMCE is in progress.
[citadel.git] / webcit / tiny_mce / plugins / fullscreen / fullscreen.htm
diff --git a/webcit/tiny_mce/plugins/fullscreen/fullscreen.htm b/webcit/tiny_mce/plugins/fullscreen/fullscreen.htm
new file mode 100755 (executable)
index 0000000..5e455cd
--- /dev/null
@@ -0,0 +1,91 @@
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>{$lang_fullscreen_title}</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+       <script language="javascript" type="text/javascript" src="../../tiny_mce.js"></script>\r
+       <script language="javascript" type="text/javascript">\r
+               function patchCallback(settings, key) {\r
+                       if (settings[key])\r
+                               settings[key] = "window.opener." + settings[key];\r
+               }\r
+\r
+               var settings = new Array();\r
+\r
+               // Clone array\r
+               for (var name in window.opener.tinyMCE.settings)\r
+                       settings[name] = window.opener.tinyMCE.settings[name];\r
+\r
+               // Override options for fullscreen\r
+               for (var name in window.opener.tinyMCE.settings.fullscreen_settings)\r
+                       settings[name] = window.opener.tinyMCE.settings.fullscreen_settings[name];\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
+               settings['mode'] = 'exact';\r
+               settings['elements'] = 'fullscreenarea';\r
+               settings['ask'] = false;\r
+               settings['setupcontent_callback'] = 'setupContent';\r
+               settings['fullscreen_is_enabled'] = true;\r
+               settings['fullscreen_editor_id'] = window.opener.tinyMCE.getWindowArg("editor_id");\r
+               settings['theme_advanced_resizing'] = false;\r
+\r
+               // Init\r
+               tinyMCE.init(settings);\r
+               tinyMCE.documentBasePath = window.opener.tinyMCE.documentBasePath;\r
+\r
+               function setupContent(editor_id, body, doc) {\r
+                       var inst = tinyMCE.getInstanceById(editor_id);\r
+                       var content = window.opener.tinyMCE.getContent(tinyMCE.getParam('fullscreen_editor_id'));\r
+\r
+                       // Setup title\r
+                       var divElm = document.createElement("div");\r
+                       divElm.innerHTML = tinyMCELang['lang_fullscreen_title'];\r
+                       document.title = divElm.innerHTML;\r
+\r
+                       // Get content\r
+                       inst.execCommand('mceSetContent', false, content);\r
+               }\r
+\r
+               function unloadHandler(e) {\r
+                       moveContent();\r
+               }\r
+\r
+               function moveContent() {\r
+                       var doc = tinyMCE.isMSIE ? window.frames['mce_editor_0'].window.document : document.getElementById('mce_editor_0').contentDocument;\r
+                       window.opener.tinyMCE.setInnerHTML(window.opener.tinyMCE.selectedInstance.getBody(), doc.body.innerHTML);\r
+               }\r
+\r
+               // Add onunload\r
+               tinyMCE.addEvent(window, "beforeunload", unloadHandler);\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
+       </script>\r
+       <base target="_self" />\r
+</head>\r
+<body style="margin: 0; overflow: hidden; height: 100%" scrolling="no" scroll="no">\r
+<form onsubmit="doParentSubmit();" style="height: 100%">\r
+<textarea id="fullscreenarea" style="width: 100%; height: 100%"></textarea>\r
+</form>\r
+</body>\r
+</html>\r