Author: michiel
Date: 2010-03-30 17:14:48 +0200 (Tue, 30 Mar 2010)
New Revision: 41681

Added:
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/pathsearch.jspx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-search.jspx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/pathsearch.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
Removed:
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
Modified:
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/form.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relate.jspx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/style.css
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/searchrelate.tld
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relatednodes.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
   
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
Log:
ported changed from yesterday and today (mm-sr:pathsearch)

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/form.tagx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/form.tagx
   2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/form.tagx
   2010-03-30 15:14:48 UTC (rev 41681)
@@ -24,6 +24,7 @@
   </mm:link>
 
 
+
   <mm:form
       name="${name}" jspvar="trans">
 

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
   2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
   2010-03-30 15:14:48 UTC (rev 41681)
@@ -47,6 +47,13 @@
         <mm:link page="/style.css">
           <link rel="stylesheet" href="${_}" type="text/css" />
         </mm:link>
+        <mm:link page="/mmbase/searchrelate/PathSearcher.js.jsp">
+          <script type="text/javascript" src="${_}"><jsp:text> 
</jsp:text></script>
+        </mm:link>
+        <mm:link page="/mmbase/searchrelate/Toggle.js.jsp">
+          <script type="text/javascript" src="${_}"><jsp:text> 
</jsp:text></script>
+        </mm:link>
+
         <meta name="ContentRoot" content="${mm:link('/')}" />
 
         <c:if test="${! empty prefetch}">

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
      2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
      2010-03-30 15:14:48 UTC (rev 41681)
@@ -181,6 +181,11 @@
               <a href="${_}">Lazy loaded items</a>
             </mm:link>
           </li>
+          <li>
+            <mm:link page="relatednodes-search.jspx" referids="${referids}">
+              <a href="${_}">Using your own searcher implementation</a>
+            </mm:link>
+          </li>
         </ul>
 
         <h3>TODO</h3>
@@ -266,6 +271,14 @@
 
           <li>Make more test-cases for this tag</li>
         </ul>
+        <h2>mm-sr:pathsearch</h2>
+        <ul>
+          <li class="">
+            <mm:link page="pathsearch.jspx" referids="${referids}">
+              <a href="${_}">mm-sr:pathsearch</a>
+            </mm:link>
+          </li>
+        </ul>
         <hr />
         <p>
           <mm:link referids="ct?">

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/pathsearch.jspx
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/pathsearch.jspx)
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/pathsearch.jspx
                         (rev 0)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/pathsearch.jspx
 2010-03-30 15:14:48 UTC (rev 41681)
@@ -0,0 +1,35 @@
+<?xml version="1.0" ?>
+<mm-sre:html
+    xmlns:mm-sre="urn:jsptagdir:/WEB-INF/tags/mm/searchrelateexample"
+    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate"
+    xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
+    xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";>
+
+  <script type="text/javascript">
+    // Like this you can make something happen when the user finds a node.
+    $("div.mm_related.pathsearcher_end").
+       live("mmsrRelate",
+            function (e, tr, relater) {
+               alert("Found " + relater.getNumber(tr) + " for " + 
$(e.target).closest("table.mmsr_pathsearch").attr("id"));
+            }
+       );
+  </script>
+
+  <p>Straight forward two step searcher, also indicated role. Finds news.</p>
+  <mm-sr:pathsearch path="mags,posrel,news" />
+
+  <p>Straight forward two step searcher, not indicated role, finding people</p>
+  <mm-sr:pathsearch path="news,people" />
+
+  <p>Straight forward three step searcher to find people</p>
+  <mm-sr:pathsearch path="mags,news,people" />
+
+  <p>Three step searcher, but element is set to the second step. You only find 
news to which people are related now.</p>
+  <mm-sr:pathsearch path="mags,news,people" element="news" />
+
+
+  <hr />
+  <mm:escape escape="links">$URL$</mm:escape>
+
+</mm-sre:html>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relate.jspx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relate.jspx
     2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relate.jspx
     2010-03-30 15:14:48 UTC (rev 41681)
@@ -39,7 +39,8 @@
           unrelate="true"
           create="true"
           submit="#save"
-          extracreate="">
+          implicitRepository="false"
+          >
         <jsp:attribute name="currentTitle"><b>News</b></jsp:attribute>
         <jsp:attribute name="repositoryTitle"><b>Add other 
news</b></jsp:attribute>
       </mm-srt:relate>

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-search.jspx
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-search.jspx)
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-search.jspx
                                (rev 0)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-search.jspx
        2010-03-30 15:14:48 UTC (rev 41681)
@@ -0,0 +1,27 @@
+<?xml version="1.0" ?>
+<mm-sre:html
+    xmlns:mm-sre="urn:jsptagdir:/WEB-INF/tags/mm/searchrelateexample"
+    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate"
+    xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
+    xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";>
+  <mm-sre:form>
+
+    <mm:node number="default.mags">
+      <mm-sr:relatednodes
+          type="news" orderby="posrel.pos" unlink="true" sortable="true" 
role="posrel"
+          >
+        <jsp:attribute name="searcher">
+          <mm-sr:pathsearch path="mags,posrel,news">
+            <!-- you could constraint the query further
+            <mm:constraint field="news.title" operator="LIKE" value="%a%" />
+            -->
+          </mm-sr:pathsearch>
+        </jsp:attribute>
+      </mm-sr:relatednodes>
+    </mm:node>
+  </mm-sre:form>
+  <hr />
+  <mm:escape escape="links">$URL$</mm:escape>
+
+</mm-sre:html>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/style.css
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/style.css
       2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/example-webapp/src/main/webapp/style.css
       2010-03-30 15:14:48 UTC (rev 41681)
@@ -4,10 +4,16 @@
 
 }
 
-.searchresult.implicit {
+
+div.searchneeded .searchresult.implicit {
   display: none;
 }
+div.nosearchneeded form.searchform {
+  display: none;
+}
 
+
+
 body.search .searchresult.implicit {
   display: block;
 }
@@ -185,4 +191,8 @@
   background-color: #fff;
   border-bottom: solid 1px #999;
   cursor: pointer;
+}
+
+table.mmsr_pathsearch td {
+  vertical-align: top;
 }
\ No newline at end of file

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/searchrelate.tld
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/searchrelate.tld
   2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/searchrelate.tld
   2010-03-30 15:14:48 UTC (rev 41681)
@@ -57,4 +57,9 @@
     <path>/META-INF/tags/mm/searchrelate/lazy.tagx</path>
   </tag-file>
 
+  <tag-file>
+    <name>pathsearch</name>
+    <path>/META-INF/tags/mm/searchrelate/pathsearch.tagx</path>
+  </tag-file>
+
 </taglib>

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/pathsearch.tagx
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/pathsearch.tagx)
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/pathsearch.tagx
                               (rev 0)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/pathsearch.tagx
       2010-03-30 15:14:48 UTC (rev 41681)
@@ -0,0 +1,62 @@
+<jsp:root
+    xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
+    xmlns:c="http://java.sun.com/jsp/jstl/core";
+    xmlns:fn="http://java.sun.com/jsp/jstl/functions";
+    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate/"
+    version="2.0"
+    >
+  <!--
+
+
+      @author Michiel Meeuwissen
+      @version $Id$
+  -->
+  <jsp:directive.tag
+      description="Combines mm-sr:search's to a an 'accordion' search" />
+
+  <jsp:directive.attribute name="path"        type="java.lang.String"  
required="true"
+                           description="Node types to search. This is 
equivalent to the path attribute of an mm:listnodescontainer" />
+
+  <jsp:directive.attribute name="element"        type="java.lang.String"
+                           description="This is equivalent to the element 
attribute of an mm:listnodescontainer, but it defaults to the _last_ element." 
/>
+
+  <jsp:directive.attribute name="config"               type="java.lang.String"
+                           description="Configuration file defaults to 
('searchrelate')" />
+
+  <mm:import id="requestid">P<mm:escape 
escape="crc32,radix(36)">${pageContext.request.requestURI}</mm:escape>${param.requestID}</mm:import>
+  <mm:import from="request" id="seq" externid="${requestid}_sequence" 
vartype="integer">0</mm:import>
+  <mm:write request="${requestid}_sequence" value="${seq + 1}" />
+  <mm:import id="pid">${requestid}_${seq}</mm:import>
+
+
+  <mm:listnodescontainer path="${path}" element="${element}" id="query" 
jspvar="q">
+    <c:if test="${empty element}">
+      <jsp:scriptlet>q.setNodeStep(q.getSteps().get(q.getSteps().size() - 
1));</jsp:scriptlet>
+    </c:if>
+    <jsp:doBody />
+    <mm:import externid="laststep" 
vartype="integer"><jsp:expression>q.getSteps().indexOf(q.getNodeStep())</jsp:expression></mm:import>
+  </mm:listnodescontainer>
+
+  <mm:write session="${pid}" referid="query" />
+
+
+  <table class="mmsr_pathsearch"
+         id="${pid}">
+    <tr>
+      <c:forEach begin="0" end="${laststep + 1}"  var="i" step="2">
+        <th><mm:nodeinfo nodetype="${query.steps[i].tableName}" 
type="plural_guinodemanager" /></th>
+      </c:forEach>
+    </tr>
+    <tr>
+      <td>
+        <mm:include page="/mmbase/searchrelate/path/searcher.jspx" 
referids="pid">
+          <mm:param name="step">0</mm:param>
+        </mm:include>
+      </td>
+      <c:forEach begin="3" end="${laststep + 1}" step="2">
+        <td />
+      </c:forEach>
+    </tr>
+  </table>
+</jsp:root>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
   2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
   2010-03-30 15:14:48 UTC (rev 41681)
@@ -80,10 +80,11 @@
   <jsp:directive.attribute name="config"             type="java.lang.String"
                            description="Configuration file defaults to 
('searchrelate')" />
 
-  <jsp:directive.attribute name="load"               type="java.lang.Boolean"
+  <jsp:directive.attribute name="load"               type="java.lang.String"
                            description="Wether or not to load the javascript. 
Default should be ok, but sometimes it isn't (e.g. when using in ajax-included 
pieces of HTML)" />
 
 
+
   <mm:import externid="current" from="this" />
 
   <mm:import id="requestid">S<mm:escape 
escape="crc32,radix(36)">${pageContext.request.requestURI}?${pageContext.request.queryString}</mm:escape></mm:import>
@@ -93,10 +94,12 @@
   <mm:write request="${requestid}_sequence" value="${seq + 1}" />
   <mm:import id="sid">${requestid}_${seq}</mm:import>
 
+
   <mm:write session="mm_related_${sid}_repository" referid="repository" />
   <mm:write session="mm_related_${sid}_current"    referid="current" />
   <mm:write session="mm_related_${sid}_extracreate"  value="${extracreate}" />
-  <c:if test="${seq eq 0 and (empty load ? true : load)}">
+
+  <c:if test="${seq eq 0 and (empty load ? true : 'true' eq load)}">
     <jsp:directive.include file="/mmbase/validation/javascript.jspxf" />
     <mm:include page="/mmbase/jquery/jquery.jspx" />
     <mm:link page="/mmbase/searchrelate/Searcher.js.jsp">
@@ -106,15 +109,6 @@
   </c:if>
   <jsp:directive.include file="/mmbase/searchrelate/settings.jspf" />
   <script type="text/javascript">
-    $(document).ready(function(){
-    $("body").find("div.mm_related").each(function() {
-    if (this.relater == null) {
-      this.relater = new MMBaseRelater(this);
-      }
-    });
-    });
-  </script>
-  <script type="text/javascript">
     $(document).ready(function() {
     <c:if test="${! empty submit}"><!-- submit attribute given: commit 
search/relate on click of that element -->
       $("${submit}").click(function(el) {
@@ -180,7 +174,11 @@
         </div>
       </c:if>
 
-      <div class="mm_relate_repository searchable">
+      <mm:listnodescontainer referid="repository">
+        <mm:size id="nosearchsize" write="false" />
+      </mm:listnodescontainer>
+
+      <div class="mm_relate_repository searchable ${nosearchsize lt (empty 
pagesize ? 10 : pagesize) ? 'nosearchneeded' : 'searchneeded'}">
         <jsp:invoke fragment="repositoryTitle" />
         <c:choose>
           <c:when test="${empty forms or forms}">
@@ -212,7 +210,7 @@
             <c:if test="${select}">
               <jsp:text> </jsp:text>
               <a href="#move" class="move"><mm-sr:button type="move" 
alt="move" /></a>
-            </c:if>            
+            </c:if>
           </c:otherwise>
         </c:choose>
 
@@ -222,12 +220,12 @@
                         referids="customizedir?,relations?,fields?">
               <c:if test="${! empty pagesize}">
                 <mm:param name="pagesize" referid="pagesize" />
-            </c:if>
-            <c:if test="${! empty maxpages}">
-              <mm:param name="maxpages" referid="maxpages" />
-            </c:if>
-            <mm:param name="id">mm_related_${sid}_repository</mm:param>
-            <mm:param name="extraClass">implicit</mm:param>
+              </c:if>
+              <c:if test="${! empty maxpages}">
+                <mm:param name="maxpages" referid="maxpages" />
+              </c:if>
+              <mm:param name="id">mm_related_${sid}_repository</mm:param>
+              <mm:param name="extraClass">implicit</mm:param>
             </mm:include>
           </c:when>
           <c:otherwise>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relatednodes.tagx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relatednodes.tagx
     2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relatednodes.tagx
     2010-03-30 15:14:48 UTC (rev 41681)
@@ -101,6 +101,10 @@
                            description="Include also the possibility to search 
existing nodes"
                            />
 
+  <jsp:directive.attribute name="searcher"    fragment="true"
+                           description="You may provide your own 
implementation of the search tool"
+                           />
+
   <jsp:directive.attribute name="implicitSearch"    type="java.lang.Boolean"
                            description="Wether to fill automaticly even when 
not yet explicitely searched (defaults to the property 'implicitRepository' of 
searchrelate.xml, which itself defaults to 'true')" />
 
@@ -196,7 +200,7 @@
   <mm:import id="_formtag">${empty __formtag ? parentformtag : 
__formtag}</mm:import>
   <mm:import id="_orderby">${empty orderby ? _role : orderby}${empty orderby ? 
(_role eq 'posrel' ? '.pos' : '.number') : ''}</mm:import>
   <mm:import id="_fields">${fields}</mm:import>
-  <mm:import id="_search">${empty searchRepository ? (empty search ? false : 
search) : true}</mm:import>
+  <mm:import id="_search">${empty searchRepository and empty searcher ? (empty 
search ? false : search) : true}</mm:import>
   <mm:import id="_delete">${empty delete ? (! _search) : delete}</mm:import>
   <mm:import id="_confirm">${empty confirm ? false : confirm}</mm:import>
   <mm:import id="_create">${empty create ? 'true' : create}</mm:import>
@@ -368,18 +372,30 @@
       </mm:relatednodescontainer>
 
       <mm:import id="searcher">
-        <c:if test="${parameters.search}">
+        <c:if test="${parameters.search || ! empty searcher}">
           <mm:cloud>
             <c:choose>
-              <c:when test="${empty searchRepository}">
-                <mm-sr:search type="${query.nodeManager.name}" load="false" 
implicit="${empty implicitSearch ? settings['implicitRepository'] : 
implicitSearch}">
-                  <mm:constraint field="number" operator="IN" inverse="true" 
referid="related" />
-                </mm-sr:search>
+              <c:when test="${empty searcher}">
+                <c:choose>
+                  <c:when test="${empty searchRepository}">
+                    <mm-sr:search
+                        styleClass="relatednodes_search_simple"
+                        type="${query.nodeManager.name}" load="false" 
implicit="${empty implicitSearch ? settings['implicitRepository'] : 
implicitSearch}">
+                      <mm:constraint field="number" operator="IN" 
inverse="true" referid="related" />
+                    </mm-sr:search>
+                  </c:when>
+                  <c:otherwise>
+                    <mm-sr:relate
+                        repository="${searchRepository}" load="false"
+                        styleClass="relatednodes_search_simple"
+                        >
+                      <mm:constraint field="number" operator="IN" 
inverse="true" referid="related" />
+                    </mm-sr:relate>
+                  </c:otherwise>
+                </c:choose>
               </c:when>
               <c:otherwise>
-                <mm-sr:relate repository="${searchRepository}" load="false">
-                  <mm:constraint field="number" operator="IN" inverse="true" 
referid="related" />
-                </mm-sr:relate>
+                <jsp:invoke fragment="searcher" />
               </c:otherwise>
             </c:choose>
           </mm:cloud>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
   2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
   2010-03-30 15:14:48 UTC (rev 41681)
@@ -3,7 +3,6 @@
     xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
     xmlns:c="http://java.sun.com/jsp/jstl/core";
     xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
-    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate/"
     version="2.0"
     >
   <!--
@@ -33,11 +32,25 @@
   <jsp:directive.attribute name="create"        type="java.lang.Boolean"
                            />
 
+  <jsp:directive.attribute name="styleClass"               
type="java.lang.String"
+                           description="Extra style class" />
 
+  <jsp:directive.attribute name="pagesize"               
type="java.lang.Integer"
+                           description="Size of one page. Defaults to 10." />
+
+  <mm:import id="_pagesize" vartype="integer">${empty pagesize ? 10 : 
pagesize}</mm:import>
+
   <mm:listnodescontainer type="${type}" id="repository">
     <jsp:doBody />
     <mm:sortorder field="number" direction="down" />
   </mm:listnodescontainer>
   <jsp:directive.include file="/mmbase/searchrelate/settings.jspf" />
-  <mm-sr:relate repository="${repository}" load="${empty load ? true : load}" 
implicitRepository="${empty implicit ? settings['implicitRepository'] : 
implicit}" create="${create}" />
+  <mm-sr:relate
+      repository="${repository}"
+      load="${load}"
+      pagesize="${_pagesize}"
+      implicitRepository="${empty implicit ? settings['implicitRepository'] : 
implicit}"
+      create="${create}"
+      styleClass="${styleClass}"
+      />
 </jsp:root>

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
        2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
        2010-03-30 15:14:48 UTC (rev 41681)
@@ -29,6 +29,30 @@
 $(document).ready(
     function() {
         List.prototype.init(document, false);
+
+        // we allow mm-sr:search to be used for your own implementation of 
searcher.
+        // This arranges the version arranged by mm-sr:relatednodes itself
+        // (recognizable by the class).
+        $("div.mm_related.relatednodes_search_simple").
+            live("mmsrRelate",
+                 function (e, tr, relater) {
+                     var number = relater.getNumber(tr);
+                     relater.repository.searcher.dec();
+                     $(tr).addClass("removed");
+                     relater.repository.searcher.resetTrClasses();
+                     $(e.target).trigger("mmsrAddToList", [number]);
+                 });
+
+        // i.e, we bind to the 'mmsrRelate' event to put the selected
+        // tr in the list as a new item.
+        $("div.mm_related").
+            live("mmsrAddToList",
+                 function (e, number) {
+                     var div = $(e.target).closest("div.list")[0];
+                     var list = div.list;
+                     list.relate(e, number);
+                 });
+
     }
 );
 
@@ -149,20 +173,8 @@
         this.validator.validatePage(false);
     }
 
-    // If a searcher was requested for this list, then set that up too.
-    if (this.search) {
-        // i.e, we bind to the 'mmsrRelate' event to put the selected
-        // tr in the list as a new item.
-        this.find("mm_related", "div").bind("mmsrRelate", function (e, relate, 
relater) {
-                self.relate(e, relate, relater);
-                relater.repository.searcher.dec();
-                $(relate).addClass("removed");
-                relater.repository.searcher.resetTrClasses();
-            });
-    }
 
 
-
     // Whether at this moment a save is performed.
     this.saving = false;
 
@@ -730,7 +742,7 @@
                 $(self.div).trigger("mmsrStartSave", [self]);
                 result = null;
                 self.saving = true;
-                //console.log("ASYNC " + (leavePage == null ? true : 
!leavePage));
+                console.log("ASYNC " + (leavePage == null ? true : 
!leavePage));
                 $.ajax({ type: "POST",
                          async: leavePage == null ? true : !leavePage,
                          url: 
"${mm:link('/mmbase/searchrelate/list/save.jspx')}",
@@ -888,13 +900,14 @@
     //console.log(order);
 };
 
-List.prototype.relate = function(event, relate, relater) {
+List.prototype.relate = function(event, number) {
     var list = this;
     var params = this.getListParameters();
     var url = "${mm:link('/mmbase/searchrelate/list/relate.jspx')}";
-    params.destination = relater.getNumber(relate);
+    params.destination = number;
     params.order = this.getOrder(event.target);
-    $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params,
+    $.ajax({async: false,
+            url: url, type: "GET", dataType: "xml", data: params,
             complete: function(res, status){
                 try {
                     if ( status == "success" || status == "notmodified" ) {

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp)
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
                                (rev 0)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
        2010-03-30 15:14:48 UTC (rev 41681)
@@ -0,0 +1,74 @@
+/*
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0"; prefix="mm" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"; %>
+<mm:content type="text/javascript" language="${param.locale}">
+<fmt:bundle basename="org.mmbase.searchrelate.resources.searchrelate">
+*/
+/**
+ * Generic mmbase search & relate tool. Javascript part.
+ *
+ * @author Michiel Meeuwissen
+ * @version $Id: Searcher.js.jsp 41486 2010-03-17 22:35:11Z michiel $
+ */
+
+
+
+$(document).ready(
+    function() {
+        $("table.mmsr_pathsearch").each(
+            function() {
+                this.pathSearcher = new MMBasePathSearcher(this);
+            });
+    }
+);
+
+$("div.mm_related.pathsearcher_ontheway").
+    live("mmsrRelate",
+         function (e, tr, relater) {
+             var number = relater.getNumber(tr);
+             var pathSearcher = 
$(e.target).closest("table.mmsr_pathsearch")[0].searcher;
+             var index = $(e.target).closest("td").index() + 1;
+             pathSearcher.fillStep(index + 1, number);
+         });
+
+$("div.mm_related.pathsearcher_end").
+    live("mmsrRelate",
+         function (e, tr, relater) {
+             var number = relater.getNumber(tr);
+             relater.repository.searcher.dec();
+             $(tr).addClass("removed");
+             relater.repository.searcher.resetTrClasses();
+             $(e.target).trigger("mmsrAddToList", [number]);
+         });
+
+function MMBasePathSearcher(table) {
+    this.table = table;
+    this.table.searcher = this;
+    this.pid = $(this.table).attr("id");
+    this.searcher = $(this.table).find("> tr > td > div");
+}
+
+MMBasePathSearcher.prototype.fillStep = function(step, node) {
+    var td = $(this.table).find("> tr > td")[step - 1];
+    var params = {};
+    params.step = (step - 1) * 2;
+    params.nodeNumber = node;
+    params.pid = this.pid;
+    var url = "${mm:link('/mmbase/searchrelate/path/searcher.jspx')}";
+    $(td).load(url, params,
+               function() {
+                   $(td).find("div.mm_related").each(
+                       function() {
+                           if (this.relater == null) {
+                               this.relater = new MMBaseRelater(this);
+                           }
+                       });
+               });
+
+}
+
+
+/*
+</fmt:bundle>
+</mm:content>
+*/
\ No newline at end of file

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
    2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
    2010-03-30 15:14:48 UTC (rev 41681)
@@ -26,6 +26,15 @@
  */
 
 
+$(document).ready(
+    function(){
+        $("body").find("div.mm_related").each(
+            function() {
+                if (this.relater == null) {
+                    this.relater = new MMBaseRelater(this);
+                }
+            });
+    });
 
 /**
  * Logger, a bit like org.mmbase.util.logging.Logger. Logs to firebug console 
or a dedicated area.

Modified: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
  2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
  2010-03-30 15:14:48 UTC (rev 41681)
@@ -124,13 +124,13 @@
           </tfoot>
           <!--  ACTUAL SEARCHRESULT -->
           <tbody>
-            
+
             <mm:compare referid="id" regexp="\w*current">
               <mm:import id="relations" vartype="List" />
             </mm:compare>
-            
+
             <mm:listnodes varStatus="status" jspvar="n">
-              
+
               <mm:compare referid="id" regexp="\w*current">
                 <jsp:scriptlet>
                   NodeList rl = Queries.getRelations(q, n);
@@ -147,15 +147,15 @@
                   </mm:listnodes>
                 </mm:isnotempty>
               </mm:compare>
-              
+
               <mm:include page="node.tr.jspx" 
attributes="status,_n...@node,customizedir?,f...@fields?,editrelations?,relation?"
 />
-              
+
               <c:if test="${editrelations == true}">
                 <mm:compare referid="id" regexp="\w*current">
                   <mm:include page="relations.tr.jspx" 
attributes="_n...@node,query,customizedir?,f...@fields?,relation" />
                 </mm:compare>
               </c:if>
-              
+
             </mm:listnodes>
           </tbody>
         </table>

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path)

Deleted: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
       2010-03-30 15:11:05 UTC (rev 41680)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
 2010-03-30 15:14:48 UTC (rev 41681)
@@ -1,50 +0,0 @@
-<div
-    class="searchresult ${param.extraClass}"
-    xmlns:jsp="http://java.sun.com/JSP/Page";
-    xmlns:c="http://java.sun.com/jsp/jstl/core";
-    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
-    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt";
-    xmlns:fn="http://java.sun.com/jsp/jstl/functions";
-    xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
-    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate"
-    >
-  <jsp:output omit-xml-declaration="true" />
-  <mm:content expires="0" postprocessor="none">
-
-  <jsp:directive.page 
import="org.mmbase.bridge.util.Queries,org.mmbase.bridge.*" />
-
-  <mm:import externid="pid" from="parameters" required="true" />
-  <mm:import from="session" externid="${pid}" id="query" jspvar="q" 
required="true" vartype="org.mmbase.bridge.NodeQuery" />
-
-  <mm:cloud>
-    <mm:import externid="step" from="request,parameters" vartype="integer" 
required="true"  jspvar="step"/>
-    <mm:import externid="nodeNumber" from="request,parameters" 
required="${step gt 0}"   />
-
-    <jsp:scriptlet>Node node = null;</jsp:scriptlet>
-    <c:if test="${!empty nodeNumber}">
-      <mm:node referid="nodeNumber" jspvar="n">
-        <jsp:scriptlet>node = n;</jsp:scriptlet>
-      </mm:node>
-    </c:if>
-    <jsp:scriptlet>
-      pageContext.setAttribute("laststep", 
q.getSteps().indexOf(q.getNodeStep()));
-      NodeQuery nodeQuery = Queries.getSubQuery(q, node, step);
-      pageContext.setAttribute("nodeQuery", nodeQuery);
-    </jsp:scriptlet>
-
-    <mm-srt:relate
-        styleClass="pathsearcher_${laststep eq step ? 'end' : 'ontheway'}"
-        repository="${nodeQuery}"
-        load="${step eq 0 ? null : false}"
-        implicitRepository="true"
-        create="false"
-        >
-      <jsp:attribute name="repositoryTitle">
-        <c:if test="${! empty nodeNumber}">
-          <mm:node number="${nodeNumber}"><mm:nodeinfo type="gui" /></mm:node>
-        </c:if>
-      </jsp:attribute>
-    </mm-srt:relate>
-  </mm:cloud>
-  </mm:content>
-</div>

Copied: 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
 (from rev 41680, 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx)
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
                         (rev 0)
+++ 
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
 2010-03-30 15:14:48 UTC (rev 41681)
@@ -0,0 +1,50 @@
+<div
+    class="searchresult ${param.extraClass}"
+    xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:c="http://java.sun.com/jsp/jstl/core";
+    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
+    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt";
+    xmlns:fn="http://java.sun.com/jsp/jstl/functions";
+    xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
+    xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate"
+    >
+  <jsp:output omit-xml-declaration="true" />
+  <mm:content expires="0" postprocessor="none">
+
+  <jsp:directive.page 
import="org.mmbase.bridge.util.Queries,org.mmbase.bridge.*" />
+
+  <mm:import externid="pid" from="parameters" required="true" />
+  <mm:import from="session" externid="${pid}" id="query" jspvar="q" 
required="true" vartype="org.mmbase.bridge.NodeQuery" />
+
+  <mm:cloud>
+    <mm:import externid="step" from="request,parameters" vartype="integer" 
required="true"  jspvar="step"/>
+    <mm:import externid="nodeNumber" from="request,parameters" 
required="${step gt 0}"   />
+
+    <jsp:scriptlet>Node node = null;</jsp:scriptlet>
+    <c:if test="${!empty nodeNumber}">
+      <mm:node referid="nodeNumber" jspvar="n">
+        <jsp:scriptlet>node = n;</jsp:scriptlet>
+      </mm:node>
+    </c:if>
+    <jsp:scriptlet>
+      pageContext.setAttribute("laststep", 
q.getSteps().indexOf(q.getNodeStep()));
+      NodeQuery nodeQuery = Queries.getSubQuery(q, node, step);
+      pageContext.setAttribute("nodeQuery", nodeQuery);
+    </jsp:scriptlet>
+
+    <mm-srt:relate
+        styleClass="pathsearcher_${laststep eq step ? 'end' : 'ontheway'}"
+        repository="${nodeQuery}"
+        load="${step eq 0 ? null : false}"
+        implicitRepository="true"
+        create="false"
+        >
+      <jsp:attribute name="repositoryTitle">
+        <c:if test="${! empty nodeNumber}">
+          <mm:node number="${nodeNumber}"><mm:nodeinfo type="gui" /></mm:node>
+        </c:if>
+      </jsp:attribute>
+    </mm-srt:relate>
+  </mm:cloud>
+  </mm:content>
+</div>

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to