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&lt;Integer&gt; iorigOrder = new ArrayList&lt;Integer&gt;();
-        for (Object o : origOrder) {
-          iorigOrder.add(org.mmbase.util.Casting.toInt(o));
-        }
-        List&lt;Integer&gt; iorder = new ArrayList&lt;Integer&gt;(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> -&gt; 
<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

Reply via email to