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