Update of /var/cvs/applications/searchrelate/mmbase/searchrelate
In directory james.mmbase.org:/tmp/cvs-serv3067

Modified Files:
        Searcher.js.jsp page.jspx 
Log Message:
changed html a bit, (added containing div's)


See also: 
http://cvs.mmbase.org/viewcvs/applications/searchrelate/mmbase/searchrelate


Index: Searcher.js.jsp
===================================================================
RCS file: 
/var/cvs/applications/searchrelate/mmbase/searchrelate/Searcher.js.jsp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- Searcher.js.jsp     1 Apr 2008 16:18:49 -0000       1.8
+++ Searcher.js.jsp     7 Apr 2008 10:13:06 -0000       1.9
@@ -11,16 +11,42 @@
 
  *
  * @author Michiel Meeuwissen
- * @version $Id: Searcher.js.jsp,v 1.8 2008/04/01 16:18:49 michiel Exp $
+ * @version $Id: Searcher.js.jsp,v 1.9 2008/04/07 10:13:06 michiel Exp $
  */
 
+$(document).ready(function(){
+    $("body").find("div.mm_related")
+    .each(function() {
+       var parent = this;
+       $(parent).find(".searchable").each(function() {
+           var searchable = this;
+           $(searchable).find("a.search").each(function() {
+               var anchor = this;
+               anchor.searcher = new MMBaseSearcher(searchable, parent);
+               $(anchor).click(function() {
+                   return this.searcher.search(0);
+               });
+               if (anchor.searcher.canUnrelate) {
+               $(parent).find("tr.click").each(function() {
+                   $(this).click(function() {
+                       anchor.searcher.unrelate(this);
+                       return false;
+                   })});
+               }
+           });
+       });
+    });
+});
+
 
-function MMBaseSearcher(d) {
-    this.logEnabled   = false;
-    this.traceEnabled = false;
+
+function MMBaseSearcher(d, p) {
+    this.logEnabled   = true;
+    this.traceEnabled = true;
     this.div = d;
+    this.parent = p;
     this.value = "";
-    this.canUnrelate = $(d).hasClass("can_unrelate");
+    this.canUnrelate = $(p).hasClass("can_unrelate");
     this.transaction   = null;
     var self = this;
     $(d).find("span.transactioname").each(function() {
@@ -51,13 +77,13 @@
  * The actual query is supposed to be on the user's session, and will be 
picked up in page.jspx.
  */
 MMBaseSearcher.prototype.search = function(offset) {
-    var newSearch = 
$(this.div).find("input.mm_relate_repository_search")[0].value;
+    var newSearch = $(this.div).find("input")[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 rep = $(this.div).find("> div")[0]
 
     var url = "${mm:link('/mmbase/searchrelate/page.jspx')}";
     var params = {id: id, offset: offset, search: this.value};
@@ -69,8 +95,9 @@
                complete: function(res, status){
                    if ( status == "success" || status == "notmodified" ) {
                        var r = $(res.responseText)[0];
+                       self.log(rep);
                        $(rep).empty();
-                       $(rep).append(r);
+                       $(rep).append($(r).find("> *"));
                        self.searchResults["" + offset] = r;
                        self.bindEvents(rep);
                    }
@@ -105,8 +132,11 @@
     if (typeof(this.unrelated[number]) == "undefined") {
        this.related[number] = el;
     }
+    this.log("Found number to relate " + number + "+" + 
this.getNumbers(this.related));
     this.unrelated[number] = null;
-    $(el).parents("div.mm_related").find("table.relatednodes 
tbody").append(el);
+    var current =  $(el).parents("div.mm_related").find("div.mm_relate_current 
table.searchresult tbody");
+    this.log(current[0]);
+    $(el).parents("div.mm_related").find("div.mm_relate_current 
table.searchresult tbody").append(el);
     $(el).unbind();
     var searcher = this;
     $(el).click(function() {
@@ -131,6 +161,18 @@
     });
 }
 
+
+MMBaseSearcher.prototype.getNumbers = function(map) {
+    var numbers = "";
+    $.each(map, function(key, value) {
+       if (value != null) {
+           if (numbers.length > 0) numbers += ",";
+           numbers += key;
+       }
+    });
+    return numbers;
+}
+
 /**
  * Commits made changes to MMBase. Depends on a jsp 
/mmbase/searchrelate/relate.jsp to do the actual work.
 *  This jsp, in turn, depends on the query in the user's session which defined 
what precisely must happen.
@@ -145,20 +187,8 @@
     var id = this.div.id;
     var url = "${mm:link('/mmbase/searchrelate/relate.jspx')}";
 
-    var relatedNumbers = "";
-    $.each(this.related, function(key, value) {
-       if (value != null) {
-           if (relatedNumbers.length > 0) relatedNumbers += ",";
-           relatedNumbers += key;
-       }
-    });
-    var unrelatedNumbers = "";
-    $.each(this.unrelated, function(key, value) {
-       if (value != null) {
-           if (unrelatedNumbers.length > 0) unrelatedNumbers += ",";
-           unrelatedNumbers += key + ",";
-       }
-    });
+    var relatedNumbers   = this.getNumbers(this.related);
+    var unrelatedNumbers = this.getNumbers(this.unrelated);
 
     this.log("+ " + relatedNumbers);
     this.log("- " + unrelatedNumbers);
@@ -166,7 +196,7 @@
     if (this.transaction != null) {
        params.transaction = this.transaction;
     }
-    $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params,
+    $.ajax({async: true, url: url, type: "GET", dataType: "xml", data: params,
            complete: function(res, status){
                $(a).removeClass("submitting");
                if (status == "success") {
@@ -182,25 +212,6 @@
 }
 
 
-$(document).ready(function(){
-    $("body").find("div.mm_related")
-    .each(function() {
-       var parent = this;
-       var anchor = $(parent).find("> a.search")[0];
-       anchor.searcher = new MMBaseSearcher(parent);
-       $(anchor).click(function() {
-           return this.searcher.search(0);
-       });
-       if (anchor.search.canUnrelate) {
-           $(parent).find("tr.click").each(function() {
-               $(this).click(function() {
-                   anchor.searcher.unrelate(this);
-                   return false;
-               })});
-       }
-    });
-
-});
 
 
 </mm:content>


Index: page.jspx
===================================================================
RCS file: /var/cvs/applications/searchrelate/mmbase/searchrelate/page.jspx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- page.jspx   1 Apr 2008 08:33:00 -0000       1.1
+++ page.jspx   7 Apr 2008 10:13:06 -0000       1.2
@@ -31,21 +31,6 @@
             </mm:fieldlist>
           </tr>
         </thead>
-        <tbody>
-          <mm:listnodes varStatus="status">
-            <tr class="click ${status.index % 2 eq 0 ? 'even' : 'odd'}" 
id="${id}_node_${_node}">
-              <td class="node number">
-                <mm:field name="number" />
-              </td>
-              <td class="node">
-                <mm:nodeinfo type="gui" />
-              </td>
-              <mm:fieldlist type="list">
-                <td class="fields"><mm:fieldinfo type="guivalue" /></td>
-              </mm:fieldlist>
-            </tr>
-          </mm:listnodes>
-        </tbody>
         <tfoot>
           <tr>
             <td colspan="10000">
@@ -61,6 +46,21 @@
             </td>
           </tr>
         </tfoot>
+        <tbody>
+          <mm:listnodes varStatus="status">
+            <tr class="click ${status.index % 2 eq 0 ? 'even' : 'odd'}" 
id="${id}_node_${_node}">
+              <td class="node number">
+                <mm:field name="number" />
+              </td>
+              <td class="node">
+                <mm:nodeinfo type="gui" />
+              </td>
+              <mm:fieldlist type="list">
+                <td class="fields"><mm:fieldinfo type="guivalue" /></td>
+              </mm:fieldlist>
+            </tr>
+          </mm:listnodes>
+        </tbody>
       </table>
     </mm:listnodescontainer>
   </mm:content>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to