Author: michiel
Date: 2010-03-30 12:02:30 +0200 (Tue, 30 Mar 2010)
New Revision: 41667
Added:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
Modified:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
Log:
mm-sr:pathsearch plus some cleanups
Modified:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
2010-03-30 10:01:24 UTC (rev 41666)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
2010-03-30 10:02:30 UTC (rev 41667)
@@ -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;
@@ -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" ) {
Added:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
(rev 0)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
2010-03-30 10:02:30 UTC (rev 41667)
@@ -0,0 +1,72 @@
+/*
+<%@ 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.node = 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/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
2010-03-30 10:01:24 UTC (rev 41666)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
2010-03-30 10:02:30 UTC (rev 41667)
@@ -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/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
2010-03-30 10:01:24 UTC (rev 41666)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
2010-03-30 10:02:30 UTC (rev 41667)
@@ -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>
Added:
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
===================================================================
---
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
(rev 0)
+++
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
2010-03-30 10:02:30 UTC (rev 41667)
@@ -0,0 +1,42 @@
+<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" />
+ <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.Query" />
+
+ <mm:cloud>
+ <mm:import externid="step" vartype="integer" required="true"
jspvar="step"/>
+ <mm:import externid="node" required="${step gt 0}" />
+
+ <jsp:scriptlet>Node node = null;</jsp:scriptlet>
+ <mm:present referid="node">
+ <mm:node referid="node" jspvar="n">
+ <jsp:scriptlet>node = n;</jsp:scriptlet>
+ </mm:node>
+ </mm:present>
+ <jsp:scriptlet>
+ NodeQuery nodeQuery = Queries.getSubQuery(q, node, step);
+ pageContext.setAttribute("nodeQuery", nodeQuery);
+ </jsp:scriptlet>
+
+ <mm-sr:relate
+ styleClass="pathsearcher_${fn:length(query.steps) - 1 eq step ? 'end'
: 'ontheway'}"
+ repository="${nodeQuery}"
+ load="false"
+ implicitRepository="true"
+ create="false"
+ />
+ </mm:cloud>
+
+</div>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs