You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2007/03/06 17:04:36 UTC
svn commit: r515168 - in /cocoon/trunk/blocks/cocoon-portal:
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/
cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/
cocoon-portal-sample/src/main/resources/COB-...
Author: cziegeler
Date: Tue Mar 6 08:04:29 2007
New Revision: 515168
URL: http://svn.apache.org/viewvc?view=rev&rev=515168
Log:
Fix ajax handling after recent refactorings of ajax and forms block
Modified:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/cocoon-portal.js
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/sitemap.xmap
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/forms-styling.xsl
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java?view=diff&rev=515168&r1=515167&r2=515168
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java Tue Mar 6 08:04:29 2007
@@ -21,6 +21,7 @@
import java.util.Properties;
import org.apache.cocoon.ajax.AjaxHelper;
+import org.apache.cocoon.ajax.BrowserUpdateTransformer;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.portal.PortalException;
@@ -98,6 +99,7 @@
/**
* Initialize
+ * @throws PortalException
*/
public void init()
throws PortalException {
@@ -161,7 +163,9 @@
// only render the changed coplets
if ( portalLayout == null && AjaxHelper.isAjaxRequest(req) ) {
Layout rootLayout = profileManager.getLayout(null);
- XMLUtils.startElement(ch, "coplets");
+ ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
+ ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+
final List changed = CopletInstanceFeatures.getChangedCopletInstanceDataObjects(this.portalService);
final Iterator i = changed.iterator();
while ( i.hasNext() ) {
@@ -178,14 +182,20 @@
}
XMLUtils.endElement(ch, "coplet");
}
- XMLUtils.endElement(ch, "coplets");
+ ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+ ch.endPrefixMapping("bu");
} else {
if ( StringUtils.isNotEmpty(copletId) ) {
- XMLUtils.startElement(ch, "coplets");
+ ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
+ ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+
final AttributesImpl a = new AttributesImpl();
a.addCDATAAttribute("id", copletId);
XMLUtils.startElement(ch, "coplet", a);
} else if ( StringUtils.isNotEmpty(layoutId) ) {
+ ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
+ ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+
final AttributesImpl a = new AttributesImpl();
a.addCDATAAttribute("id", layoutId);
XMLUtils.startElement(ch, "layout", a);
@@ -209,9 +219,12 @@
}
if ( StringUtils.isNotEmpty(copletId) ) {
XMLUtils.endElement(ch, "coplet");
- XMLUtils.endElement(ch, "coplets");
+ ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+ ch.endPrefixMapping("bu");
} else if ( StringUtils.isNotEmpty(layoutId) ) {
XMLUtils.endElement(ch, "layout");
+ ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+ ch.endPrefixMapping("bu");
}
}
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/cocoon-portal.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/cocoon-portal.js?view=diff&rev=515168&r1=515167&r2=515168
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/cocoon-portal.js (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/resources/cocoon-portal.js Tue Mar 6 08:04:29 2007
@@ -14,6 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+dojo.registerModulePath("cocoon.ajax", "../ajax/js");
+dojo.require("cocoon.ajax.BUHandler");
+
cocoon.portal = {};
cocoon.portal.process = function(uri) {
@@ -22,47 +25,36 @@
} else {
uri = uri + "&cocoon-ajax=true";
}
- var req = dojo.hostenv.getXmlhttpObject()
- req.open("POST", uri, true);
- req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
- req.onreadystatechange = function() {
- if (req.readyState == 4) {
- cocoon.portal.handleBrowserUpdate(req);
- }
- }
- req.send(null);
+ dojo.io.bind({
+ url : uri,
+ load : function(type, data, evt) {
+ cocoon.portal.handleBrowserUpdate(data);
+ },
+ method: "POST",
+ mimetype: "text/xml"
+ });
}
-cocoon.portal.handleBrowserUpdate = function(req) {
+cocoon.portal.handleBrowserUpdate = function(doc) {
var updater = new cocoon.ajax.BUHandler();
- if (req.status == 200) {
- // Handle browser update directives
- var doc = req.responseXML;
- if (!doc) {
- cocoon.ajax.BUHandler.handleError("No xml answer", req);
- return;
+ updater.handlers['coplet'] = function(element) {
+ var content = dojo.dom.getFirstChildElement(element);
+ var id = content.getAttribute("id");
+ if (!id) {
+ alert("no id found on update element");
+ return;
}
- updater.handlers['coplet'] = function(element) {
- var content = dojo.dom.getFirstChildElement(element);
- var id = content.getAttribute("id");
- if (!id) {
- alert("no id found on update element");
- return;
- }
- var oldElement = document.getElementById(id);
- // in some cases, the server sends a coplet that
- // is currently not displayed. So it's not an
- // error if the element can't be found.
- if (oldElement) {
- var newElement = cocoon.ajax.insertionHelper.importNode(content, document).element;
- // Warn: it's replace(new, old)!!
- oldElement.parentNode.replaceChild(newElement, oldElement);
- // Ensure the new node has the correct id
- newElement.setAttribute("id", id);
- }
+ var oldElement = document.getElementById(id);
+ // in some cases, the server sends a coplet that
+ // is currently not displayed. So it's not an
+ // error if the element can't be found.
+ if (oldElement) {
+ var newElement = cocoon.ajax.insertionHelper.importNode(content, document).element;
+ // Warn: it's replace(new, old)!!
+ oldElement.parentNode.replaceChild(newElement, oldElement);
+ // Ensure the new node has the correct id
+ newElement.setAttribute("id", id);
}
- updater.processResponse(doc, req);
- } else {
- updater.handleError("Request failed - status=" + req.status, req);
- }
+ };
+ updater.processResponse(doc);
}
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/sitemap.xmap
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/sitemap.xmap?view=diff&rev=515168&r1=515167&r2=515168
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/sitemap.xmap (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/sitemap.xmap Tue Mar 6 08:04:29 2007
@@ -221,11 +221,9 @@
<map:parameter name="title" value="{global:mainTitle}"/>
<map:parameter name="skin" value="{portal-skin:skin}"/>
</map:transform>
- <!--
<map:transform src="{portal-skin:skin.basepath}/styles/forms-styling.xsl">
<map:parameter name="resources-uri" value="{request:contextPath}/_cocoon/resources"/>
</map:transform>
- -->
<map:transform type="cinclude"/>
<map:transform type="portal-coplet"/>
<map:transform type="portal-new-eventlink"/>
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/forms-styling.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/forms-styling.xsl?view=diff&rev=515168&r1=515167&r2=515168
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/forms-styling.xsl (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/forms-styling.xsl Tue Mar 6 08:04:29 2007
@@ -31,9 +31,9 @@
<xsl:template match="head">
<head>
- <xsl:apply-templates/>
<xsl:apply-templates select="." mode="forms-page"/>
<xsl:apply-templates select="." mode="forms-field"/>
+ <xsl:apply-templates/>
<script src="{$resources-uri}/portal/cocoon-portal.js" type="text/javascript"/>
</head>
</xsl:template>