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

Modified Files:
        Searcher.js.jsp 
Log Message:
details


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.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- Searcher.js.jsp     8 Apr 2008 12:56:19 -0000       1.14
+++ Searcher.js.jsp     8 Apr 2008 15:19:33 -0000       1.15
@@ -11,7 +11,7 @@
 
  *
  * @author Michiel Meeuwissen
- * @version $Id: Searcher.js.jsp,v 1.14 2008/04/08 12:56:19 michiel Exp $
+ * @version $Id: Searcher.js.jsp,v 1.15 2008/04/08 15:19:33 michiel Exp $
  */
 
 $(document).ready(function(){
@@ -46,9 +46,14 @@
     this.related       = {};
     this.unrelated     = {};
     this.logger        = new MMBaseLogger();
+    this.logger.debug(d);
     this.logger.debug("setting up current");
     this.current       = $(d).find(".mm_relate_current")[0];
-    if (this.current != null) this.addSearcher(this.current, "current");
+    if (this.current != null) {
+       this.addSearcher(this.current, "current");
+    } else {
+       log.debug("No current rep found");
+    }
     this.logger.debug("setting up repository");
     this.repository    = $(d).find(".mm_relate_repository")[0];
     if (this.repository != null) this.addSearcher(this.repository, 
"repository");
@@ -61,20 +66,21 @@
 MMBaseRelater.prototype.addSearcher = function(el, type) {
     var relater = this;
     if ($(el).hasClass("searchable")) {
+       var searcher =  new MMBaseSearcher(el, this, type, this.logger);
        $(el).find("a.search").each(function() {
            var anchor = this;
-           anchor.searcher = new MMBaseSearcher(el, relater, type, 
relater.logger);
+           anchor.searcher = searcher;
            $(anchor).click(function(el) {
                return this.searcher.search(anchor, 0);
            });
-           if (relater.canUnrelate) {
-               $(parent).find("tr.click").each(function() {
+       });
+       if (this.canUnrelate) {
+           $(el).find("tr.click").each(function() {
                    $(this).click(function() {
                        anchor.searcher.unrelate(this);
                        return false;
                    })});
            }
-       });
     }
 }
 
@@ -85,17 +91,18 @@
  */
 
 MMBaseRelater.prototype.commit = function(el) {
-    var a = el.target;
+    var relatedNumbers   = this.getNumbers(this.related);
+    var unrelatedNumbers = this.getNumbers(this.unrelated);
+
     $(a).addClass("submitting");
     $(a).removeClass("failed");
     $(a).removeClass("succeeded");
+    if (relatedNumbers != "" || unrelatedNumbers != "") {
+       var a = el.target;
     this.logger.debug("Commiting changed relations of " + this.div.id);
     var id = this.div.id;
     var url = "${mm:link('/mmbase/searchrelate/relate.jspx')}";
 
-    var relatedNumbers   = this.getNumbers(this.related);
-    var unrelatedNumbers = this.getNumbers(this.unrelated);
-
     this.logger.debug("+ " + relatedNumbers);
     this.logger.debug("- " + unrelatedNumbers);
     var params = {id: id, related: relatedNumbers, unrelated: 
unrelatedNumbers};
@@ -115,10 +122,15 @@
                }
            }
           });
+    } else {
+       this.logger.debug("No changes, no need to commit");
+       $(a).addClass("succeeded");
+    }
 }
 
 
 
+
 MMBaseRelater.prototype.getNumbers = function(map) {
     var numbers = "";
     $.each(map, function(key, value) {
@@ -142,12 +154,24 @@
     }
     if (type == "current") {
        $(rep).find("tr.click").each(function() {
+           if ($(this).hasClass("new") || (self.relater != null && 
self.relater.canUnrelate)) {
            $(this).click(function() {
                self.unrelate(this);
                return false;
-           })});
+               })
+           }
+       });
     }
 }
+
+
+MMBaseRelater.prototype.resetTrClasses  = function() {
+    $(this.div).find("div.mm_relate_current")[0].searcher.resetTrClasses();
+    $(this.div).find("div.mm_relate_repository")[0].searcher.resetTrClasses();
+
+}
+
+
 /**
  * Moves a node from the 'unrelated' repository to the list of related nodes.
  */
@@ -168,8 +192,11 @@
     current.append(el);
 
     // Classes
+    if ($(el).hasClass("removed")) {
     $(el).removeClass("removed");
+    } else {
     $(el).addClass("new");
+    }
     this.resetTrClasses();
 
     // Events
@@ -181,12 +208,6 @@
 }
 
 
-MMBaseRelater.prototype.resetTrClasses  = function() {
-    $(this.div).find("div.mm_relate_current")[0].searcher.resetTrClasses();
-    $(this.div).find("div.mm_relate_repository")[0].searcher.resetTrClasses();
-
-}
-
 
 /**
  * Moves a node from the list of related nodes to the 'unrelated' repository.
@@ -201,12 +222,15 @@
     this.related[number] = null;
 
     // Set up HTML
-    var repository =  
$(el).parents("div.mm_related").find("div.mm_relate_repository 
table.searchresult tbody");
+    var repository =  $(this.div).find("div.mm_relate_repository 
div.searchresult table tbody");
     repository.append(el);
 
     // Classes
+    if ($(el).hasClass("new")) {
     $(el).removeClass("new");
+    } else {
     $(el).addClass("removed");
+    }
     this.resetTrClasses();
 
     // Events
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to