Author: andre
Date: 2010-02-26 16:30:20 +0100 (Fri, 26 Feb 2010)
New Revision: 41184
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.css.jsp
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspf
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspx
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relations.tr.jspx
Log:
MMB-1937 and MMB-1933 added an extra column in searchresults to store node nr
of relation, deletion of relations now based on relation nr, made it so that
when there is a attr. submit in tag that changes are not automatically
committed but stored untill submit is hit
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
2010-02-26 15:30:20 UTC (rev 41184)
@@ -17,9 +17,10 @@
* - mmsrUnrelate (use $("div.mm_related").bind("mmsrUnrelate",
function (e, tr, relater) ) )
* - mmsrPaged (use $("div.mm_related").bind("mmsrPaged",
function (e, status, relater) ) )
* - mmsrRelaterReady (use $("div.mm_related").bind("mmsrRelaterReady",
function (e, relater) ) )
- * - mmsrCommitted (use $("div.mm_related").bind("mmsrCommitted",
function (e, submitter, status, relater, relatedNumbers, unrelatedNumbers) ) )
+ * - mmsrCommitted (use $("div.mm_related").bind("mmsrCommitted",
function (e, submitter, status, relater, relatedNumbers, unrelatedNumbers,
deletedRelations) ) )
*
* @author Michiel Meeuwissen
+ * @author André van Toly
* @version $Id$
*/
@@ -57,8 +58,9 @@
*/
function MMBaseRelater(d, validator) {
this.div = d;
- this.related = {};
- this.unrelated = {};
+ this.related = {}; // related nodes
+ this.unrelated = {}; // unrelated nodes
+ this.deleterels = {}; // relations to delete
this.logger = new MMBaseLogger();
this.logger.debug(d);
this.logger.debug("setting up current");
@@ -91,7 +93,6 @@
fun(this);
}
this.sessionName = null;
- this.bindCommit();
var self = this;
$(this.div).trigger("mmsrRelaterReady", [self]);
}
@@ -102,7 +103,6 @@
* 'relateCallBack' function.
* @todo I think jquery provides something with user defined events.
*/
-
MMBaseRelater.readyFunctions = [];
MMBaseRelater.ready = function(fun) {
@@ -144,26 +144,11 @@
}
}
-MMBaseRelater.prototype.bindCommit = function() {
- var self = this;
- if (this.instant) {
- $(this.div).bind("mmsrRelate", function (e, tr, relater) {
- if (e) {
- self.commit(e);
- }
- });
- $(this.div).bind("mmsrUnrelate", function (e, tr, relater) {
- if (e) {
- self.commit(e);
- }
- });
- }
-}
-
MMBaseRelater.prototype.needsCommit = function() {
var relatedNumbers = this.getNumbers(this.related);
var unrelatedNumbers = this.getNumbers(this.unrelated);
- return relatedNumbers != "" || unrelatedNumbers != "";
+ var deletedRelations = this.getNumbers(this.deleterels);
+ return relatedNumbers != "" || unrelatedNumbers != "" || deletedRelations
!= "";
}
/**
@@ -173,8 +158,9 @@
MMBaseRelater.prototype.commit = function(ev) {
var relatedNumbers = this.getNumbers(this.related);
var unrelatedNumbers = this.getNumbers(this.unrelated);
+ var deletedRelations = this.getNumbers(this.deleterels)
- if (relatedNumbers != "" || unrelatedNumbers != "") {
+ if (relatedNumbers != "" || unrelatedNumbers != "" || deletedRelations !=
"") {
var a = ev.target;
$(a).addClass("submitting");
$(a).removeClass("failed");
@@ -186,7 +172,11 @@
this.logger.debug("+ " + relatedNumbers);
this.logger.debug("- " + unrelatedNumbers);
- var params = {id: id, related: relatedNumbers, unrelated:
unrelatedNumbers};
+ this.logger.debug("d " + deletedRelations);
+ if (!this.instant) {
+ this.commitSelections(id)
+ }
+ var params = {id: id, related: relatedNumbers, unrelated:
unrelatedNumbers, deleted: deletedRelations};
if (this.transaction != null) {
params.transaction = this.transaction;
}
@@ -211,8 +201,9 @@
}
self.related = {};
self.unrelated = {};
+ self.deleterels = {};
if (self.canEditrelations)
self.bindSaverelation(this.div);
- $(self.div).trigger("mmsrCommitted", [a, status, self,
relatedNumbers, unrelatedNumbers]);
+ $(self.div).trigger("mmsrCommitted", [a, status, self,
relatedNumbers, unrelatedNumbers, deletedRelations]);
return true;
} else {
$(a).addClass("failed");
@@ -220,7 +211,7 @@
return false;
}
}
- });
+ });
} else {
this.logger.debug("No changes, no need to commit");
$(this.div).trigger("mmsrCommitted", [a, "nochanges", this]);
@@ -229,15 +220,42 @@
}
/**
+ * Commits selected items after acknowledgment
+ */
+MMBaseRelater.prototype.commitSelections = function(id) {
+ var div = $('#' + id + ' div.mm_relate_current');
+ var self = this;
+ var done = false;
+
+ // unrelate
+ $.each(self.deleterels, function(key, value) {
+ self.logger.debug("= unrelated: " + key);
+ self.unrelate(value);
+ self.deleterels[key] = null
+ done = true;
+ });
+
+ // relate
+ $.each(self.related, function(key, value) {
+ self.logger.debug("= related: " + key);
+ if (value != null) { self.relate(value); }
+ self.related[key] = null;
+ done = true
+ });
+
+ if (done) {
+ self.logger.debug("done");
+ }
+}
+
+/**
* Gets a the relation tr for a newly created relation in which the relation
can be edited.
- *
*/
MMBaseRelater.prototype.getNewRelationTr = function(nodenr) {
var self = this;
var url = "${mm:link('/mmbase/searchrelate/relations.tr.jspx')}";
var queryid = this.repository.searcher.getQueryId();
queryid = queryid.replace(/repository/i, "current");
- self.logger.debug(url + ", id: " + queryid + ", node: " + nodenr + ",
fields: " + this.repository.searcher.fields);
var params = {id: queryid, node: nodenr, fields:
this.repository.searcher.fields};
var result;
@@ -251,7 +269,6 @@
result = res.responseText;
}
});
-
return result;
}
@@ -268,7 +285,6 @@
MMBaseRelater.prototype.bindSaverelation = function(div) {
var self = this;
- self.logger.debug("unbinding and binding relation forms");
$(div).find('form.relation').unbind('submit');
$(div).find("form.relation").each(function() {
$(this).submit(function(ev) {
@@ -281,18 +297,56 @@
var self = this;
if (type == "repository") {
$(rep).find("tr.click").each(function() {
- $(this).click(function() {
- self.relate(this);
+ var nr = self.getNumber(this);
+ if (typeof(self.related[nr]) != "undefined") {
+ $(this).toggleClass('selected');
+ self.logger.debug("found selected");
+ }
+
+ $(this).click(function(ev) {
+ if (self.instant) {
+ self.relate(this);
+ self.commit(ev);
+ } else {
+ $(this).toggleClass('selected');
+ if (typeof(self.related[nr]) == "undefined") {
+ self.related[nr] = this;
+ self.logger.debug("selected (relate): " + nr);
+ } else {
+ self.related[nr] = null;
+ self.logger.debug("unselected (relate): " + nr);
+ }
+ }
return false;
- })});
+ })
+ });
}
if (type == "current") {
$(rep).find("tr.click").each(function() {
- if ($(this).hasClass("new") || (self != null && self.canUnrelate))
{
- $(this).click(function() {
- self.unrelate(this);
+ var rel = self.getRelationNumber(this);
+ if (typeof(self.deleterels[rel]) != "undefined") {
+ self.logger.debug(self.deleterels[rel]);
+ self.logger.debug("found selected");
+ $(this).toggleClass('selected');
+ }
+
+ if ($(this).hasClass("new") || (self != null && self.canUnrelate))
{ // TODO: hasClass new moet nog wat mee
+ $(this).click(function(ev) {
+ if (self.instant) {
+ self.unrelate(this);
+ self.commit(ev);
+ } else {
+ $(this).toggleClass('selected');
+ if (typeof(self.deleterels[rel]) == "undefined") {
+ self.deleterels[rel] = this;
+ self.logger.debug("selected (unrelate): " + rel);
+ } else {
+ self.deleterels[rel] = null;
+ self.logger.debug("unselected (unrelate): " + rel);
+ }
+ }
return false;
- })
+ });
}
});
@@ -300,19 +354,20 @@
}
}
-
MMBaseRelater.prototype.resetTrClasses = function() {
if (this.current != null) {
this.current.searcher.resetTrClasses();
}
this.repository.searcher.resetTrClasses();
-
}
MMBaseRelater.prototype.getNumber = function(tr) {
return $(tr).find("td.node.number").text();
}
+MMBaseRelater.prototype.getRelationNumber = function(tr) {
+ return $(tr).find("td.node.relation").text();
+}
/**
* Moves a node from the 'unrelated' repository to the list of related nodes.
@@ -338,7 +393,8 @@
this.current.searcher.inc();
this.repository.searcher.dec();
-
+ this.current.searcher.searchResults = {}; // empty search cache
+
// Classes
if ($(tr).hasClass("removed")) {
$(tr).removeClass("removed");
@@ -351,8 +407,19 @@
$(tr).unbind();
var self = this;
- $(tr).click(function() {
- self.unrelate(this);
+ $(tr).click(function(ev) {
+ if (self.instant) {
+ self.unrelate(this);
+ self.commit(ev);
+ } else {
+ // TODO: need to have relation nr here (maybe reload data?)
+ $(this).toggleClass('selected');
+ if (typeof(self.unrelated[number]) == "undefined") {
+ self.unrelated[number] = this;
+ } else {
+ self.unrelated[number] = null;
+ }
+ }
});
}
if (this.relateCallBack != null) {
@@ -373,15 +440,17 @@
*/
MMBaseRelater.prototype.unrelate = function(tr) {
var number = this.getNumber(tr);
- this.logger.debug("Unrelating " + number);
-
- // relation tr's
+ var relnr = this.getRelationNumber(tr);
var relationTrs = this.getRelationTrs(number);
- this.logger.debug("+ relations: " + relationTrs.length);
+ this.logger.debug("Unrelating node #" + number + ", relation #" + relnr);
// Set up data
- if (typeof(this.unrelated[number]) == "undefined") {
- this.unrelated[number] = tr;
+ if (typeof(this.unrelated[number]) == "undefined" &&
typeof(this.unrelated[relnr] == "undefined")) {
+ if (this.instant) {
+ this.unrelated[number] = tr;
+ } else {
+ this.unrelated[relnr] = tr;
+ }
}
this.related[number] = null;
@@ -392,6 +461,7 @@
this.current.searcher.dec();
this.repository.searcher.inc();
+ this.current.searcher.searchResults = {}; // TODO: maybe reload in
stead of empty cache?
// Classes
if ($(tr).hasClass("new")) {
@@ -404,8 +474,19 @@
// Events
$(tr).unbind();
var self = this;
- $(tr).click(function() {
- self.relate(this)
+ $(tr).click(function(ev) {
+ if (self.instant) {
+ self.relate(this);
+ self.commit(ev);
+ } else {
+ $(this).toggleClass('selected');
+ if (typeof(self.related[number]) == "undefined") {
+ self.related[number] = this;
+ } else {
+ self.related[number] = null;
+ }
+ }
+ return false;
});
$(this.div).trigger("mmsrUnrelate", [tr, this]);
}
@@ -515,7 +596,6 @@
*
***********************************************************************************************************************
*/
-
function MMBaseSearcher(d, r, type, logger) {
this.div = d;
this.div.searcher = this;
@@ -648,8 +728,10 @@
//console.log($(result).find("*").length);
$(rep).append($(result).find("> *"));
self.searchResults["" + offset] = result;
- self.addNewlyRelated(rep);
- self.deleteNewlyRemoved(rep);
+ if (self.relater.instant) {
+ self.addNewlyRelated(rep);
+ self.deleteNewlyRemoved(rep);
+ }
self.bindEvents(rep);
$(self.relater.div).trigger("mmsrPaged", [status,
self.relater, self, anchor]);
}
@@ -661,8 +743,10 @@
this.logger.debug("reusing " + offset);
this.logger.debug(rep);
$(rep).append($(result).find("> *"));
- this.addNewlyRelated(rep);
- this.deleteNewlyRemoved(rep);
+ if (this.relater.instant) {
+ this.addNewlyRelated(rep);
+ this.deleteNewlyRemoved(rep);
+ }
this.bindEvents(rep);
$(this.relater.div).trigger("mmsrPaged", [status, this.relater, this,
anchor]);
}
@@ -833,7 +917,7 @@
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
+ return this.relater.related[number] != null; // already related, don't
show again
} else {
return false;
}
@@ -855,8 +939,6 @@
this.relater.bindEvents(this.div, this.type);
}
var self = this;
- this.logger.debug("binding to "+ $(this.div).find("a.navigate"));
-
$(this.div).find("a.navigate").click(function(ev) {
var anchor = ev.target;
self.logger.debug("navigating " + anchor);
@@ -869,9 +951,10 @@
MMBaseSearcher.prototype.resetTrClasses = function() {
this.logger.debug("Resetting tr's");
$(this.div).find("div.searchresult table tbody tr.click").each(function(i)
{
+ $(this).removeClass("selected");
$(this).removeClass("odd");
$(this).removeClass("even");
- $(this).addClass(i % 2 == 0 ? "even" : "odd");
+ $(this).addClass(i % 2 == 0 ? "odd" : "even");
});
}
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
2010-02-26 15:30:20 UTC (rev 41184)
@@ -11,11 +11,16 @@
<mm:import externid="node" required="true" from="request,parameters" />
<mm:import externid="fields" from="request,parameters" />
<mm:import externid="editrelations" from="request,parameters" />
- <mm:import externid="customizedir" from="request,parameters" />
+ <mm:import externid="customizedir" from="request,parameters" />
+ <mm:import externid="relation" from="request,parameters" />
+
<mm:node referid="node">
<mm:nodeinfo type="nodemanager" id="nodemanager" write="false" />
<tr class="click ${(! empty status and status.index % 2 eq 0) ? 'even'
: 'odd'} ${nodemanager}">
<td class="node number"><mm:field name="number" /></td>
+ <td class="node relation">
+ <mm:compare referid="id"
regexp="\w*current">${relation}</mm:compare>
+ </td>
<td class="node guitype"><mm:nodeinfo type="guitype" /></td>
<c:choose>
<c:when test="${!empty fields}">
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.css.jsp
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.css.jsp
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.css.jsp
2010-02-26 15:30:20 UTC (rev 41184)
@@ -126,7 +126,8 @@
display: none;
}
-.mm_related .searchable .node.guitype {
+.mm_related .searchable .node.guitype,
+.mm_related .searchable .node.relation {
display: none;
}
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
2010-02-26 15:30:20 UTC (rev 41184)
@@ -12,8 +12,9 @@
@version $Id$
-->
<jsp:output omit-xml-declaration="true" />
+ <jsp:directive.page
import="org.mmbase.bridge.util.Queries,org.mmbase.bridge.NodeList" />
<mm:import externid="id" from="parameters" required="true" />
- <mm:import from="session" externid="${id}" id="query" required="true" />
+ <mm:import from="session" externid="${id}" id="query" jspvar="q"
required="true" vartype="org.mmbase.bridge.Query" />
<mm:content expires="0" type="application/xml"
language="${query.cloud.locale}">
<fmt:bundle basename="org.mmbase.searchrelate.resources.searchrelate">
<mm:import externid="search" from="parameters" />
@@ -66,6 +67,7 @@
<c:choose>
<c:when test="${!empty flds}">
<th class="node number" scope="col">#</th>
+ <th class="node relation" scope="col">rel</th>
<th class="node guitype" scope="col"><fmt:message
key="nodetype" /></th>
<mm:fieldlist nodetype="${query.nodeManager.name}"
fields="$flds" varStatus="field">
<th class="fields ${field.current.name}"
scope="col"><mm:fieldinfo type="guiname" /></th>
@@ -74,6 +76,7 @@
</c:when>
<c:otherwise>
<th class="node number" scope="col">#</th>
+ <th class="node relation" scope="col">rel</th>
<th class="node guitype" scope="col"><fmt:message
key="nodetype" /></th>
<th class="node gui" scope="col"><jsp:text> </jsp:text></th>
<mm:fieldlist nodetype="${query.nodeManager.name}"
type="list" varStatus="field">
@@ -88,7 +91,7 @@
<!-- PAGING -->
<tfoot class="paging ${size gt pagesize ? 'needed' : 'notneeded'}">
<tr>
- <td colspan="${colcount + 4}">
+ <td colspan="${colcount + 5}">
<mm:previousbatches maxtotal="${maxpages}" indexoffset="1">
<mm:first>
<c:if test="${offset != 0}">
@@ -121,13 +124,38 @@
</tfoot>
<!-- ACTUAL SEARCHRESULT -->
<tbody>
+
+ <mm:compare referid="id" regexp="\w*current">
+ <mm:import id="relations" vartype="List" />
+ </mm:compare>
+
<mm:listnodes varStatus="status" jspvar="n">
- <mm:include page="node.tr.jspx"
attributes="status,_n...@node,customizedir?,f...@fields?,editrelations?" />
+
+ <mm:compare referid="id" regexp="\w*current">
+ <jsp:scriptlet>
+ NodeList rl = Queries.getRelations(q, n);
+ pageContext.setAttribute("rl", rl);
+ </jsp:scriptlet>
+ <mm:isnotempty referid="rl">
+ <c:set var="i" value="0" />
+ <mm:listnodes referid="rl" id="r">
+ <c:if test="${i lt 1 and ! mm:contains(relations, r)}">
+ <mm:import id="relations" reset="true"
vartype="List">${relations},${r}</mm:import>
+ <c:set var="i" value="${i + 1}" />
+ <mm:import id="relation" reset="true">${r}</mm:import>
+ </c:if>
+ </mm:listnodes>
+ </mm:isnotempty>
+ </mm:compare>
+
+ <mm:include page="node.tr.jspx"
attributes="status,_n...@node,customizedir?,f...@fields?,editrelations?,relation?"
/>
+
<c:if test="${editrelations == true}">
<mm:compare referid="id" regexp="\w*current">
- <mm:include page="relations.tr.jspx"
attributes="_n...@node,query,customizedir?,f...@fields?" />
+ <mm:include page="relations.tr.jspx"
attributes="_n...@node,query,customizedir?,f...@fields?,relation" />
</mm:compare>
</c:if>
+
</mm:listnodes>
</tbody>
</table>
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspf
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspf
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspf
2010-02-26 15:30:20 UTC (rev 41184)
@@ -4,3 +4,14 @@
<mm:listnodes referid="unrelated" jspvar="n">
<jsp:expression>Queries.removeFromResult(current, n)</jsp:expression>
</mm:listnodes>
+
+
+<mm:present referid="deleted">
+ <mm:listnodes referid="deleted">
+ <mm:maydelete>
+ <mm:hasfield name="dnumber">
+ <mm:field name="dnumber" /> <mm:deletenode />
+ </mm:hasfield>
+ </mm:maydelete>
+ </mm:listnodes>
+</mm:present>
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspx
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspx
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relate.jspx
2010-02-26 15:30:20 UTC (rev 41184)
@@ -11,6 +11,7 @@
<mm:import externid="id" required="true" />
<mm:import externid="related" vartype="list" required="true" />
<mm:import externid="unrelated" vartype="list" required="true" />
+ <mm:import externid="deleted" vartype="list" />
<mm:import from="session" externid="${id}_current" id="current"
required="true" jspvar="current" vartype="org.mmbase.bridge.Query" />
<mm:import externid="transaction" />
<mm:isempty referid="transaction">
Modified:
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relations.tr.jspx
===================================================================
---
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relations.tr.jspx
2010-02-26 12:35:47 UTC (rev 41183)
+++
mmbase/branches/MMBase-1_9/applications/searchrelate/src/main/webapp/mmbase/searchrelate/relations.tr.jspx
2010-02-26 15:30:20 UTC (rev 41184)
@@ -7,8 +7,9 @@
<mm:content expires="0" type="application/xml">
<mm:cloud method="asis">
- <mm:import externid="fields" from="request,parameters" />
- <mm:import externid="node" from="request,parameters" />
+ <mm:import externid="fields" from="request,parameters" />
+ <mm:import externid="node" from="request,parameters" />
+ <mm:import externid="relation" from="request,parameters" />
<mm:import externid="id" from="request,parameters" />
<mm:import from="session" externid="${id}" id="q" jspvar="q"
vartype="org.mmbase.bridge.Query" />
@@ -26,21 +27,25 @@
</c:otherwise>
</c:choose>
- <jsp:scriptlet>
- NodeList rl = Queries.getRelations(q, n);
- pageContext.setAttribute("rl", rl);
- </jsp:scriptlet>
+ <c:if test="${empty relation}">
+ <jsp:scriptlet>
+ NodeList rl = Queries.getRelations(q, n);
+ pageContext.setAttribute("rl", rl);
+ </jsp:scriptlet>
+ <mm:listnodes referid="rl" id="rel">
+ <mm:import id="relation" reset="true">${rel}</mm:import>
+ </mm:listnodes>
+ </c:if>
</mm:node>
- <mm:listnodes referid="rl" id="relation">
+ <mm:node number="$relation">
<mm:nodeinfo type="nodemanager" id="nodemanager" write="false" />
<tr class="relation relation_${relation} node_${node} ${nodemanager}">
<td colspan="${colcount + 3}">
<mm:form styleClass="relation">
<fieldset>
<legend>${nodemanager} relation</legend>
- <input name="id" type="hidden" value="${relation}" />
-
+ <input name="id" type="hidden" value="${relation}" />
<mm:fieldlist type="edit" id="fields${relation}"
varStatus="status">
<mm:maywrite><mm:import reset="true"
id="formtype">input</mm:import></mm:maywrite>
<mm:maywrite inverse="true"><mm:import
id="formtype">guivalue</mm:import></mm:maywrite>
@@ -53,7 +58,6 @@
<mm:fieldinfo type="$formtype" />
</div>
</mm:fieldlist>
-
<mm:maywrite>
<div class="relationrow submit">
<input type="submit" name="changerel" value="Change" />
@@ -61,10 +65,10 @@
</mm:maywrite>
</fieldset>
</mm:form>
+ </td>
+ </tr>
+ </mm:node>
- </td>
- </tr>
- </mm:listnodes>
</mm:cloud>
</mm:content>
</jsp:root>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs