From f46b72d3a0f790703f745a9ae973fafc7d10e289 Mon Sep 17 00:00:00 2001 From: Ariel Backenroth Date: Tue, 16 Jan 2007 22:03:03 +0000 Subject: [PATCH] fix for IE and tinymce. IE doesn't pay attention to blur event. need to use beforedeactivate which is kinda funky. also quieting down certain unimplemented errors and a not particularly consequential error with IE and tiny mce involving setValue. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4856 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../ROOT/assets/include_main_navigation.html | 2 +- source/web/scripts/ajax/xforms.js | 65 +++++++++++++++++-- 2 files changed, 59 insertions(+), 8 deletions(-) diff --git a/source/test-resources/websites/alfresco/ROOT/assets/include_main_navigation.html b/source/test-resources/websites/alfresco/ROOT/assets/include_main_navigation.html index 4e458c2851..80e645e0fd 100644 --- a/source/test-resources/websites/alfresco/ROOT/assets/include_main_navigation.html +++ b/source/test-resources/websites/alfresco/ROOT/assets/include_main_navigation.html @@ -34,7 +34,7 @@
-

Company  |  Contact  |  News  |  Events  |  People

+

Company  |  Contact  |  News  |  Events  |  People

diff --git a/source/web/scripts/ajax/xforms.js b/source/web/scripts/ajax/xforms.js index 12788826ab..6e31ce29d5 100644 --- a/source/web/scripts/ajax/xforms.js +++ b/source/web/scripts/ajax/xforms.js @@ -515,7 +515,14 @@ dojo.declare("alfresco.xforms.DatePicker", setValue: function(value) { - throw new Error("setValue unimplemented for DatePicker"); + if (!this.widget) + { + this.setInitialValue(value); + } + else + { + throw new Error("setValue unimplemented for DatePicker"); + } }, getValue: function() @@ -637,7 +644,10 @@ dojo.declare("alfresco.xforms.TextArea", var editorDocument = tinyMCE.getInstanceById(this.id).getDoc(); editorDocument.widget = this; - tinyMCE.addEvent(editorDocument, "blur", this._tinyMCE_blurHandler); + + tinyMCE.addEvent(editorDocument, + dojo.render.html.ie ? "beforedeactivate" : "blur", + this._tinyMCE_blurHandler); tinyMCE.addEvent(editorDocument, "focus", this._tinyMCE_focusHandler); }, @@ -668,7 +678,15 @@ dojo.declare("alfresco.xforms.TextArea", else { tinyMCE.selectedInstance = tinyMCE.getInstanceById(this.id); - tinyMCE.setContent(value); + try + { + tinyMCE.setContent(value); + } + catch (e) + { + //XXXarielb figure this out - getting intermittent errors in IE. + dojo.debug(e); + } } }, @@ -707,6 +725,10 @@ dojo.declare("alfresco.xforms.TextArea", _tinyMCE_blurHandler: function(event) { + if (event.type == "beforedeactivate") + { + event.target = event.srcElement.ownerDocument; + } var widget = event.target.widget; widget.xform.setXFormsValue(widget.id, widget.getValue()); this.focused = false; @@ -867,7 +889,14 @@ dojo.declare("alfresco.xforms.Select", setValue: function(value) { - throw new Error("setValue unimplemented for Select"); + if (!this.widget) + { + this.setInitialValue(value); + } + else + { + throw new Error("setValue unimplemented for Select"); + } }, getValue: function() @@ -984,7 +1013,14 @@ dojo.declare("alfresco.xforms.Select1", setValue: function(value) { - throw new Error("setValue unimplemented for Select1"); + if (!this.widget) + { + this.setInitialValue(value); + } + else + { + throw new Error("setValue unimplemented for Select1"); + } }, getValue: function() @@ -1051,7 +1087,14 @@ dojo.declare("alfresco.xforms.Checkbox", setValue: function(value) { - this.widget.checked = value == "true"; + if (!this.widget) + { + this.setInitialValue(value); + } + else + { + this.widget.checked = value == "true"; + } }, getValue: function() @@ -2444,7 +2487,15 @@ dojo.declare("alfresco.xforms.XForm", if ("value" in xfe.properties) { dojo.debug("setting " + xfe.getTarget().id + " = " + xfe.properties["value"]); - xfe.getTarget().setValue(xfe.properties["value"]); + try + { + xfe.getTarget().setValue(xfe.properties["value"]); + } + catch(e) + { + //XXXarielb remove once setValues are implemented. + dojo.debug("Error in set value: " + e); + } } break; }