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)" />&nbsp;<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);" />&nbsp;<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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.