Update of /var/cvs/speeltuin/mihxil/wiki/mmbase/taglib In directory james.mmbase.org:/tmp/cvs-serv3434
Modified Files: Searcher.js.jsp page.jspx Added Files: page.css.jsp page.js.jsp Log Message: See also: http://cvs.mmbase.org/viewcvs/speeltuin/mihxil/wiki/mmbase/taglib page.css.jsp is new page.js.jsp is new Index: Searcher.js.jsp =================================================================== RCS file: /var/cvs/speeltuin/mihxil/wiki/mmbase/taglib/Searcher.js.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- Searcher.js.jsp 26 Feb 2008 21:54:27 -0000 1.2 +++ Searcher.js.jsp 19 Mar 2008 14:01:31 -0000 1.3 @@ -2,12 +2,93 @@ <[EMAIL PROTECTED] uri="http://www.mmbase.org/mmbase-taglib-2.0" prefix="mm" %> <mm:content type="text/javascript" expires="0"> -function MMBaseSearcher(id, offset, search) { - $("#" + id).load("${mm:link('/mmbase/taglib/page.jspx?id=')}" + id + (offset != null ? ("&offset=" + offset) : "") + (search != null ? ("&search=" + search) : "") + " div"); - //$("#" + id).load("${mm:link('/wiki/edit/a.jspx')} div"); - //console.log($("#"+id)); +function MMBaseSearcher(d) { + this.div = d; + this.value = ""; + this.searchResults = {}; + this.related = {}; + this.unrelated = {}; +} + +MMBaseSearcher.prototype.search = function(offset) { + var newSearch = $(this.div).find("input.mm_relate_repository_search")[0].value; + if (newSearch != this.value) { + this.searchResults = {}; + this.value = newSearch; + } + var id = this.div.id; + var rep = $(this.div).find("div.mm_relate_repository")[0] + var url = "${mm:link('/mmbase/taglib/page.jspx')}"; + var params = {id: id, offset: offset, search: this.value}; + + var result = this.searchResults["" + offset]; + var self = this; + if (result == null) { + $.ajax({url: url, type: "GET", dataType: "xml", data: params, + complete: function(res, status){ + if ( status == "success" || status == "notmodified" ) { + var r = $(res.responseText)[0]; + $(rep).empty(); + $(rep).append(r); + self.searchResults["" + offset] = r; + $(rep).find("a.navigate").each(function() { + $(this).click(function() { + return self.search(this.name); + })}); + $(rep).find("tr.click").each(function() { + $(this).click(function() { + self.relate(this); + return false; + })}); + } + } + }); + } else { + console.log("resing " + offset); + $(rep).empty(); + $(rep).append(result); + } + + + return false; } +MMBaseSearcher.prototype.relate = function(el) { + this.related[el] = el; + this.unrelated[el] = null; + $(el).parents("div.mm_related").find("table.relatednodes tbody").append(el); + $(el).unbind(); + var searcher = this; + $(el).click(function() { + searcher.unrelate(this); + }); +} + +MMBaseSearcher.prototype.unrelate = function(el) { + this.unrelated[el] = el; + this.related[el] = null; + $(el).parents("div.mm_related").find("table.searchresult tbody").append(el); + $(el).unbind(); + var searcher = this; + $(el).click(function() { + searcher.relate(this) + }); +} + +MMBaseSearcher.prototype.commit = function(node) { + +} + +$(document).ready(function(){ + $("body").find(".mm_related a.search") + .each(function() { + var parent = $(this).parent("div.mm_related"); + this.searcher = new MMBaseSearcher(parent[0]); + $(this).click(function() { + return this.searcher.search(0); + }); + }); +}); </mm:content> Index: page.jspx =================================================================== RCS file: /var/cvs/speeltuin/mihxil/wiki/mmbase/taglib/page.jspx,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- page.jspx 26 Feb 2008 21:54:27 -0000 1.2 +++ page.jspx 19 Mar 2008 14:01:31 -0000 1.3 @@ -7,9 +7,9 @@ <mm:content expires="0" type="application/xml"> <mm:import externid="id" required="true" /> <mm:import externid="search" /> - <mm:import from="session" externid="${id}" id="query" /> + <mm:import from="session" externid="${id}" id="query" required="true" /> <mm:import externid="offset" vartype="integer">0</mm:import> - <mm:listnodescontainer clone="query"> + <mm:listnodescontainer id="b" clone="query"> <c:if test="${! empty search}"> <mm:composite operator="OR"> <mm:fieldlist type="search" id="field"> @@ -21,35 +21,47 @@ </c:if> <mm:maxnumber value="10" /> <mm:offset value="${offset}" /> - <table> + <table class="searchresult" summary="Search results for ${search}"> <thead> <tr> - <th>#</th> + <th class="node">#</th> + <th class="node"> </th> <mm:fieldlist nodetype="${query.nodeManager.name}" type="list"> - <th><mm:fieldinfo type="guiname" /></th> + <th class="fields"><mm:fieldinfo type="guiname" /></th> </mm:fieldlist> </tr> </thead> <tbody> - <mm:listnodes> - <tr> - <th><mm:nodeinfo type="gui" /></th> + <mm:listnodes varStatus="status"> + <tr class="click ${status.index % 2 eq 0 ? 'even' : 'odd'}" id="${id}_node_${_node}"> + <td class="node"> + <mm:field name="number" /> + </td> + <td class="node"> + <mm:nodeinfo type="gui" /> + </td> <mm:fieldlist type="list"> - <td><mm:fieldinfo type="guivalue" /></td> + <td class="fields"><mm:fieldinfo type="guivalue" /></td> </mm:fieldlist> </tr> </mm:listnodes> </tbody> - </table> + <tfoot> + <tr> + <td colspan="10000"> <mm:previousbatches> - <a href="${_}" onclick="return Searcher('${id}', ${_}, '${search}')"><mm:index /></a> + <a class="navigate" href="${'#'}${id}_${_}" name="${_}"><mm:index /></a> <jsp:text>, </jsp:text> </mm:previousbatches> <mm:index /> <mm:nextbatches> <jsp:text>, </jsp:text> - <a href="${_}" onclick="return Searcher('${id}', ${_}, '${search}')"><mm:index /></a> + <a class="navigate" href="${'#'}${id}_${_}" name="${_}"><mm:index /></a> </mm:nextbatches> + </td> + </tr> + </tfoot> + </table> </mm:listnodescontainer> </mm:content> </div> _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs