Author: michiel
Date: 2010-03-15 22:41:42 +0100 (Mon, 15 Mar 2010)
New Revision: 41379
Removed:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/submitOrder.jspx
Modified:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/order.jspx
Log:
submitting of the new order in a transaction happend with 'afterPost' events in
List.js.jsp. All horrible and a bit shakyt. Using fix for MMB-1941, to device
a more robust solution
Modified:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/order.jspx
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/order.jspx
2010-03-15 21:40:54 UTC (rev 41378)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/order.jspx
2010-03-15 21:41:42 UTC (rev 41379)
@@ -26,11 +26,17 @@
<jsp:expression>org.mmbase.bridge.util.Queries.reorderResult(query,
iorder)</jsp:expression>
</c:when>
<c:otherwise>
- <mm:import externid="order" required="true" jspvar="order"
vartype="string" />
+ <mm:import externid="order" required="true" jspvar="order"
vartype="list" />
<!-- do it later, there is little point, it won't work any way in a
transaction -->
+ <mm:write session="${rid}_order" referid="order" />
+ <jsp:text>${rid}_order: ${order}</jsp:text>
+ <mm:write value="${rid}_order" jspvar="sessionKey" vartype="string">
+
<jsp:scriptlet>org.mmbase.searchrelate.SessionCleaner.getInstance(pageContext.getSession()).addKey(sessionKey);</jsp:scriptlet>
+ </mm:write>
<mm:form name="${parameters.formtag}">
- <mm:write session="${rid}_order" referid="order" />
- <jsp:text>${rid}_order: ${order}</jsp:text>
+ <mm:write
value="${requestScope['org.mmbase.transaction'].account}" jspvar="fn"
vartype="string">
+
<jsp:scriptlet>org.mmbase.searchrelate.OrderSubmitter.getInstance(fn).setOrder(query,
order);</jsp:scriptlet>
+ </mm:write>
</mm:form>
</c:otherwise>
</c:choose>
Deleted:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/submitOrder.jspx
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/submitOrder.jspx
2010-03-15 21:40:54 UTC (rev 41378)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/list/submitOrder.jspx
2010-03-15 21:41:42 UTC (rev 41379)
@@ -1,61 +0,0 @@
-<mm:cloud
- method="asis"
- xmlns:c="http://java.sun.com/jsp/jstl/core"
- xmlns:jsp="http://java.sun.com/JSP/Page"
- xmlns:fn="http://java.sun.com/jsp/jstl/functions"
- xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0"
- >
- <mm:content expires="0">
-
- <jsp:output omit-xml-declaration="true" />
-
- <jsp:directive.page import="java.util.*,org.mmbase.*" />
- <jsp:directive.include file="parameters.jspf" />
- <!--
- <mm:import externid="order" from="parameters" vartype="list"
required="true" jspvar="order" />
- -->
- <mm:import externid="originalOrder" from="parameters" vartype="list"
required="true" jspvar="origOrder" />
-
- <!--
- Because there can be new nodes, which received a new number after
commit, the node number is not useable.
- We use the 'original position' here.
- -->
- <div class="saveresult" id="${parameters.rid}">
- <c:choose>
- <c:when test="${parameters.source_was_new}">
- <source>
- <!-- Fix The damn query hacks again (See
RelatedNodesContainerTag) -->
- <mm:node referid="parameters.source" jspvar="source"
commitonclose="false">
- <jsp:scriptlet>
- org.mmbase.bridge.util.Queries.setStartNode(query, source);
- </jsp:scriptlet>
- </mm:node>
- <mm:escape>${parameters._number} / ${parameters.source}</mm:escape>
- </source>
- </c:when>
- <c:otherwise>
- <source><mm:escape
escape="text/xml">${parameters.source}</mm:escape></source>
- </c:otherwise>
- </c:choose>
- <query><mm:escape
escape="text/xml">${parameters.query.sql}</mm:escape></query>
- <jsp:scriptlet>
- // convert parameters to a list of integers
- List<Integer> iorigOrder = new ArrayList<Integer>();
- for (Object o : origOrder) {
- iorigOrder.add(org.mmbase.util.Casting.toInt(o));
- }
- List<Integer> iorder = new ArrayList<Integer>(origOrder);
// the only reason for the copy is that it has the right length already then
- </jsp:scriptlet>
- <mm:relatednodescontainer clone="parameters.query">
- <mm:sortorder field="number" />
- <mm:relatednodes usetransaction="false" jspvar="n"
commitonclose="false">
- <mm:index offset="0" jspvar="i">
- <change
number="${_}"><jsp:expression>n.getNumber()</jsp:expression> ->
<jsp:expression>iorder.set(iorigOrder.indexOf(i),
n.getNumber())</jsp:expression></change>
- </mm:index>
- </mm:relatednodes>
- </mm:relatednodescontainer>
- <mm:log>Sorting ${origOrder} <jsp:expression>iorigOrder</jsp:expression>
to <jsp:expression>iorder</jsp:expression></mm:log>
- <changes><jsp:expression>iorder</jsp:expression>
<jsp:expression>org.mmbase.bridge.util.Queries.reorderResult(query,
iorder)</jsp:expression></changes>
- </div>
- </mm:content>
-</mm:cloud>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs