Update of /var/cvs/applications/richtext/META-INF/tags/mm/rich
In directory james.mmbase.org:/tmp/cvs-serv26116/META-INF/tags/mm/rich
Modified Files:
versions.tagx
Log Message:
several improvements. 'format' atribute, inclusion of javascript
See also:
http://cvs.mmbase.org/viewcvs/applications/richtext/META-INF/tags/mm/rich
Index: versions.tagx
===================================================================
RCS file: /var/cvs/applications/richtext/META-INF/tags/mm/rich/versions.tagx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- versions.tagx 24 Jun 2008 12:54:55 -0000 1.1
+++ versions.tagx 30 Jun 2008 10:04:55 -0000 1.2
@@ -8,13 +8,32 @@
<jsp:directive.tag description="Renders a nice table to show diffs between
tables." />
<jsp:directive.tag import="org.mmbase.versioning.*,java.util.*" />
+ <jsp:directive.attribute name="format" />
+
+ <jsp:directive.include file="/mmbase/jquery/jquery.jspx" />
+ <script type="text/javascript">
+$(document).ready(function() {
+
+ // enables/disables only the logically possible options
+ $("ul.versionselector input[type=radio]").change(function() {
+ var oldSelected = $("ul.versionselector li
input[name=version1]:checked")[0].value;
+ var newSelected = $("ul.versionselector li
input[name=version2]:checked")[0].value;
+ $("ul.versionselector li").each(function() {
+ var version1 = $(this).find("input[name=version1]")[0];
+ var version2 = $(this).find("input[name=version2]")[0];
+ $(version1).css("visibility", (version1.value < newSelected ?
'visible' : 'hidden'));
+ $(version2).css("visibility", (version2.value > oldSelected ?
'visible' : 'hidden'));
+ });
+ });
+});
+ </script>
<mm:nodeinfo type="nodemanager">
- BLA
<mm:listnodescontainer type="${_}_versions">
<mm:constraint field="object" value="${_node}" />
<mm:sortorder field="version" direction="down" />
<form action="versions.jspx" method="POST">
+ <input name="n" type="hidden" value="${_node}" />
<ul class="versionselector">
<mm:listnodes id="versions" varStatus="status">
<c:if test="${status.index eq 1}">
@@ -28,7 +47,7 @@
<li>
<mm:field name="number" id="number" write="false"
vartype="integer" />
<mm:radio name="version1" value="${_node.number}"
compare="${version1}" style="visibility: ${number lt version2 ? 'visible' :
'hidden'};" />
- <mm:radio name="version2" value="${_node.number}"
compare="${version2}" style="visibility: ${number ge version1 ? 'visible' :
'hidden'};" />
+ <mm:radio name="version2" value="${_node.number}"
compare="${version2}" style="visibility: ${number gt version1 ? 'visible' :
'hidden'};" />
v${_node.version}: <mm:node
number="${_node.lastmodifiedby}"><mm:nodeinfo type="gui" /></mm:node>:
<mm:field name="comments" /></li>
</mm:listnodes>
</ul>
@@ -39,20 +58,31 @@
<c:if test="${not empty version1 and not empty version2}">
<mm:node id="version1" referid="version1" />
<mm:node id="version2" referid="version2" />
- <h2>Diff between v${version1.version} and v${version2.version}</h2>
- <mm:import jspvar="bodynow"><mm:node referid="version1"><mm:field
name="body" /></mm:node></mm:import>
- <mm:import jspvar="bodythen"><mm:node referid="version2"><mm:field
name="body" /></mm:node></mm:import>
+ <h2>
+ <jsp:text>Diff between v${version1.version} and
v${version2.version}</jsp:text>
+ <c:if test="${version2.version - 1 eq version1.version}">
(${version2.comments})</c:if>
+ </h2>
+ <mm:import jspvar="body1"><mm:node referid="version1"><mm:field
name="body" /></mm:node></mm:import>
+ <mm:import jspvar="body2"><mm:node referid="version2"><mm:field
name="body" /></mm:node></mm:import>
<jsp:scriptlet>
- String[] linesNow = bodynow.split("\n");
- String[] linesThen = bodythen.split("\n");
+ String[] lines1 = body1.split("\n+");
+ String[] lines2 = body2.split("\n+");
+
+ Diff diff = new Diff(Arrays.asList(lines1), Arrays.asList(lines2));
</jsp:scriptlet>
+ <c:choose>
+ <c:when test="${empty format or format == 'html'}">
<table class="versions">
<tr><th
class="difference"/><th>v${version1.version}</th><th>v${version2.version}</th></tr>
- <jsp:scriptlet>
- Diff diff = new Diff(Arrays.asList(linesNow),
Arrays.asList(linesThen));
- </jsp:scriptlet>
<jsp:expression>diff.toHtml()</jsp:expression>
</table>
+ </c:when>
+ <c:otherwise>
+ <pre>
+ <jsp:expression>diff.toUnixDiff()</jsp:expression>
+ </pre>
+ </c:otherwise>
+ </c:choose>
</c:if>
</mm:nodeinfo>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs