Epoz/epoz/epoz_core epoz_iframe_trigger.js.dtml,NONE,1.1 epoz_redirect.js.dtml,NONE,1.1 epoz_script_main.js.dtml,1.2,1.3 epoz_blank_iframe.html.pt,1.1,1.2 epoz_script_widget.js.dtml,1.1,1.2
Maik Jablonski <[email protected]>
| Newsgroups | gmane.comp.web.zope.epoz |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/epoz/Epoz/epoz/epoz_core
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17027/epoz/epoz_core
Modified Files:
epoz_script_main.js.dtml epoz_blank_iframe.html.pt
epoz_script_widget.js.dtml
Added Files:
epoz_iframe_trigger.js.dtml epoz_redirect.js.dtml
Log Message:
Multi-Wysiwyg-Area-enabled Epoz... it's worth the jump to 2.x.
Index: epoz_script_main.js.dtml
===================================================================
RCS file: /cvsroot/epoz/Epoz/epoz/epoz_core/epoz_script_main.js.dtml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** epoz_script_main.js.dtml 19 Feb 2005 13:59:53 -0000 1.2
--- epoz_script_main.js.dtml 23 May 2005 20:47:34 -0000 1.3
***************
*** 26,137 ****
var form_pageurl; // real url for the edited page
- // Detect browser type and create Epoz- or Default-Textbox
-
- function InitEpoz(name, data, path, toolbox, style, button, css, customcss, charset, pageurl) {
-
- form_name = name;
- form_data = data;
- form_path = path;
- form_toolbox = toolbox;
- form_area_style = style;
- form_button_style = button;
- form_css = css;
- form_customcss = customcss;
- form_charset = charset;
- form_pageurl = pageurl;
-
- if (browser.isIE55 || browser.isIE6up) {
- // Mac-IE doesn't support RichText-Edit at the moment
- if (browser.isMac) {
- CreateTextarea();
- } else {
- CreateEpoz();
- }
- }
- else if (browser.isGecko) {
- //check to see if midas is enabled
- try {
- // Just a few cleanups for Mozilla
-
- form_data = form_data.replace(/<strong>/ig,'<b>');
- form_data = form_data.replace(/<strong(\s[^>]*)>/ig,'<b$1>');
- form_data = form_data.replace(/<\/strong>/ig,'</b>');
-
- form_data = form_data.replace(/<em>/ig,'<i>');
- form_data = form_data.replace(/<em(\s[^>]*)>/ig,'<i$1>');
- form_data = form_data.replace(/<\/em>/ig,'</i>');
-
- document.getElementById('EpozIFrame').contentDocument.designMode = "on";
- document.getElementById('EpozIFrame').contentWindow.document.execCommand("undo", false, null);
- CreateEpoz();
- } catch (e) {
- CreateTextarea();
- }
- }
- else {
- CreateTextarea();
- }
- }
-
- // Needs to be called by timeout for Mozilla...
-
- function EnableDesignMode() {
-
- if (browser.isIE5up) {
- frames[Epoz].document.designMode = "On";
- }
- else {
- // just a try-catch-poll to see
- // when Mozilla is ready to go...
- try {
- EpozElement.contentDocument.designMode = "on";
- EpozElement.contentWindow.document.addEventListener("keypress", HandleKeyboardEvent, true);
- } catch (e) {
- setTimeout(EnableDesignMode, 10);
- return;
- }
- }
-
- // Set all forms in sync with Epoz
-
- if (document.getElementsByTagName)
- var x = document.getElementsByTagName('FORM');
- else if (document.all)
- var x = document.all.tags('FORM');
-
- for (var i=0;i<x.length;i++) {
- x[i].onsubmit = SyncEpoz;
- }
- }
-
-
- // A submit-wrapper to pass the parameters into the form-element
-
- function SyncEpoz() {
- var html = TidyHTML(GetHTML());
-
- // strip trailing whitespace
- html = (html.replace(/^\s*/,'')).replace(/\s*$/,'')
-
- // remove single br left by Firefox / Mozilla
- if (html=="<br />" || html=="<br>" || html=="<p></p>") {
- html = "";
- }
-
- document.getElementById(form_name).value = html;
- }
-
- // Intialize the document
-
- function InitDocument() {
- // Store the Editor-Element in a global variable
- EpozElement = document.getElementById(Epoz);
- EpozTextArea = document.getElementById(form_name);
-
- setTimeout(EnableDesignMode, 10);
-
- // Put data into Epoz-Editor
- EpozElement.contentWindow.document.body.innerHTML = form_data;
- }
// Returns the current HTML.
--- 26,29 ----
***************
*** 156,163 ****
function TidyHTML(html) {
window.status = EpozLang["TidyStart"];
try {
// Call EpozTidy one step above the given pageurl.
// This should avoid some problems with VHM & PageTemplates etc.
! xmlrpchost = form_pageurl + "/..";
result = XMLRPC.call(xmlrpchost, "EpozTidy", html, form_pageurl);
--- 48,56 ----
function TidyHTML(html) {
window.status = EpozLang["TidyStart"];
+
try {
// Call EpozTidy one step above the given pageurl.
// This should avoid some problems with VHM & PageTemplates etc.
! xmlrpchost = form_pageurl + "/..";
result = XMLRPC.call(xmlrpchost, "EpozTidy", html, form_pageurl);
***************
*** 378,383 ****
EpozTextArea.style.display="inline";
} else {
! html = html.replace(/<script/i, '<epoz:script style="display: none;"');
! html = html.replace(/<\/script>/i, '</epoz:script>');
EpozElement.contentWindow.document.body.innerHTML = html;
--- 271,276 ----
EpozTextArea.style.display="inline";
} else {
! html = html.replace('<script ', '<epoz:script style="display: none" ')
! html = html.replace('</script>', '</epoz:script>')
EpozElement.contentWindow.document.body.innerHTML = html;
--- NEW FILE: epoz_redirect.js.dtml ---
(This appears to be a binary file; contents omitted.)
Index: epoz_script_widget.js.dtml
===================================================================
RCS file: /cvsroot/epoz/Epoz/epoz/epoz_core/epoz_script_widget.js.dtml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** epoz_script_widget.js.dtml 19 Jan 2005 22:54:01 -0000 1.1
--- epoz_script_widget.js.dtml 23 May 2005 20:47:34 -0000 1.2
***************
*** 109,117 ****
widget += '\n<br />\n';
! widget += '<iframe src="'+form_pageurl+'/epoz_blank_iframe.html?charset='+form_charset+'&css='+form_css+'&customcss='+form_customcss+'&pageurl='+form_pageurl+'" frameborder="0" id="' + Epoz + '" style="' + form_area_style + '" onload="InitDocument();"></iframe>';
widget += '</div>';
widget += '<textarea style="display: none; ' + form_area_style + '" id="' + form_name + '" name="' + form_name + '" value=""></textarea>';
! widget += '<div style="margin: 0px;"><input id="EpozViewMode" style="margin: 0px; width: 10px; height: 10px;" type="checkbox" onclick="SwitchViewMode(this.checked)" /> <span style="font-size: 10px;">' + EpozLang["HTML"] + '</span></div>';
document.writeln(widget);
--- 109,117 ----
widget += '\n<br />\n';
! widget += '<iframe src="'+form_pageurl+'/epoz_blank_iframe.html?charset='+form_charset+'&css='+form_css+'&customcss='+form_customcss+'&pageurl='+form_pageurl+'" frameborder="0" id="' + Epoz + '" style="' + form_area_style + '" onload="InitDocument(this);"></iframe>';
widget += '</div>';
widget += '<textarea style="display: none; ' + form_area_style + '" id="' + form_name + '" name="' + form_name + '" value=""></textarea>';
! widget += '<div style="margin: 0px;"><input id="EpozViewMode" style="margin: 0px; width: 10px; height: 10px;" type="checkbox" onclick="redirectAndSwitchViewMode(this);" /> <span style="font-size: 10px;">' + EpozLang["HTML"] + '</span></div>';
document.writeln(widget);
--- NEW FILE: epoz_iframe_trigger.js.dtml ---
var IFramePrefix = "Iframe_";
var IFramePrefixLength = IFramePrefix.length;
var DocPrefix = "doc_";
var DocPrefixLength = DocPrefix.length;
function raiseEpozRedirect() {
docid = document.id;
if (!docid) return; // single mode
docid = document.id.slice(DocPrefixLength);
frameId = IFramePrefix + docid;
iframe = window.parent.document.getElementById(frameId);
if (iframe)
raiseEvent(iframe, "click");
}
function raiseEvent(ob, eventName) {
if (browser.isIE55 || browser.isIE6up) {
eventName = "on" + eventName;
ob.fireEvent(eventName);
}
else if (browser.isGecko) {
event = document.createEvent("MouseEvents");
event.initEvent(eventName, true, true);
ob.dispatchEvent(event);
}
}
function addMouseDownListener() {
if (browser.isIE55 || browser.isIE6up) {
document.attachEvent("onmousedown", raiseEpozRedirect);
}
else if (browser.isGecko) {
document.addEventListener("mousedown", raiseEpozRedirect, false);
}
}
window.onload = addMouseDownListener;
Index: epoz_blank_iframe.html.pt
===================================================================
RCS file: /cvsroot/epoz/Epoz/epoz/epoz_core/epoz_blank_iframe.html.pt,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** epoz_blank_iframe.html.pt 19 Jan 2005 22:54:01 -0000 1.1
--- epoz_blank_iframe.html.pt 23 May 2005 20:47:34 -0000 1.2
***************
*** 26,31 ****
<style tal:condition="python: request.get('customcss')" type="text/css" media="all"
tal:content="string:@import url(${request/customcss});"></style>
</head>
! <body class="visualFontSizeCorrection">
</body>
</html>
\ No newline at end of file
--- 26,33 ----
<style tal:condition="python: request.get('customcss')" type="text/css" media="all"
tal:content="string:@import url(${request/customcss});"></style>
+ <script language="javascript" type="text/javascript" src="misc_/Epoz/epoz_script_detect.js"></script>
+ <script language="javascript" type="text/javascript" src="misc_/Epoz/epoz_iframe_trigger.js"></script>
</head>
! <body class="visualFontSizeCorrection" contentEditable="true" style="height:100%">
</body>
</html>
\ No newline at end of file
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click