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