Update of /var/cvs/applications/searchrelate/mmbase/searchrelate
In directory james.mmbase.org:/tmp/cvs-serv2355
Modified Files:
Searcher.js.jsp
Log Message:
some arrangemnets to now show again the already related tr's in the repository
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.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- Searcher.js.jsp 8 Apr 2008 15:19:33 -0000 1.15
+++ Searcher.js.jsp 8 Apr 2008 16:26:28 -0000 1.16
@@ -11,7 +11,7 @@
*
* @author Michiel Meeuwissen
- * @version $Id: Searcher.js.jsp,v 1.15 2008/04/08 15:19:33 michiel Exp $
+ * @version $Id: Searcher.js.jsp,v 1.16 2008/04/08 16:26:28 michiel Exp $
*/
$(document).ready(function(){
@@ -171,17 +171,21 @@
}
+MMBaseRelater.prototype.getNumber = function(tr) {
+ return $(tr).find("td.node.number")[0].textContent;
+}
+
/**
* Moves a node from the 'unrelated' repository to the list of related nodes.
*/
-MMBaseRelater.prototype.relate = function(el) {
- var number = $(el).find("td.node.number")[0].textContent;
+MMBaseRelater.prototype.relate = function(tr) {
+ var number = this.getNumber(tr);
// Set up data
if (typeof(this.unrelated[number]) == "undefined") {
- this.related[number] = el;
+ this.related[number] = tr;
}
this.logger.debug("Found number to relate " + number + "+" +
this.getNumbers(this.related));
this.unrelated[number] = null;
@@ -189,20 +193,20 @@
// Set up HTML
var current = $(this.div).find("div.mm_relate_current div.searchresult
table tbody");
this.logger.debug(current[0]);
- current.append(el);
+ current.append(tr);
// Classes
- if ($(el).hasClass("removed")) {
- $(el).removeClass("removed");
+ if ($(tr).hasClass("removed")) {
+ $(tr).removeClass("removed");
} else {
- $(el).addClass("new");
+ $(tr).addClass("new");
}
this.resetTrClasses();
// Events
- $(el).unbind();
+ $(tr).unbind();
var self = this;
- $(el).click(function() {
+ $(tr).click(function() {
self.unrelate(this);
});
}
@@ -212,31 +216,31 @@
/**
* Moves a node from the list of related nodes to the 'unrelated' repository.
*/
-MMBaseRelater.prototype.unrelate = function(el) {
- var number = $(el).find("td.node.number")[0].textContent;
+MMBaseRelater.prototype.unrelate = function(tr) {
+ var number = this.getNumber(tr);
// Set up data
if (typeof(this.related[number]) == "undefined") {
- this.unrelated[number] = el;
+ this.unrelated[number] = tr;
}
this.related[number] = null;
// Set up HTML
var repository = $(this.div).find("div.mm_relate_repository
div.searchresult table tbody");
- repository.append(el);
+ repository.append(tr);
// Classes
- if ($(el).hasClass("new")) {
- $(el).removeClass("new");
+ if ($(tr).hasClass("new")) {
+ $(tr).removeClass("new");
} else {
- $(el).addClass("removed");
+ $(tr).addClass("removed");
}
this.resetTrClasses();
// Events
- $(el).unbind();
+ $(tr).unbind();
var searcher = this;
- $(el).click(function() {
+ $(tr).click(function() {
searcher.relate(this)
});
}
@@ -295,6 +299,7 @@
$(rep).append($(result).find("> *"));
self.searchResults["" + offset] = result;
self.addNewlyRelated(rep);
+ self.deleteNewlyRemoved(rep);
self.bindEvents(rep);
}
@@ -304,13 +309,42 @@
} else {
this.logger.debug("reusing " + offset);
this.logger.debug(rep);
+ var self = this;
$(rep).append($(result).find("> *"));
this.addNewlyRelated(rep);
+ self.deleteNewlyRemoved(rep);
this.bindEvents(rep);
}
return false;
}
+MMBaseSearcher.prototype.deleteNewlyRemoved = function(rep) {
+ var self = this;
+ var deleted = false;
+ if (this.relater != null && this.type == "repository") {
+ $(rep).find("tr.click").each(function() {
+ if (self.filter(this)) {
+ document.createElement("removed").appendChild(this);
+ deleted = true;
+ }
+ });
+ }
+ if (deleted) {
+ this.resetTrClasses();
+ }
+
+}
+
+
+MMBaseSearcher.prototype.filter = function(tr) {
+ if (this.type == "repository" && this.relater != null) {
+ var number = this.relater.getNumber(tr);
+ return this.relater.related[number] != null; // if already related,
don't show again
+ } else {
+ return false;
+ }
+}
+
MMBaseSearcher.prototype.addNewlyRelated = function(rep) {
if (this.relater != null && this.type == "current") {
this.logger.debug("adding newly related");
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs