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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs