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

Reply via email to