Update of
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository
In directory james.mmbase.org:/tmp/cvs-serv6688/src/webapp/editors/repository
Modified Files:
content.js content.jsp reorder.js reordercontent.jsp
search.jsp unlinkcreation.jsp
Log Message:
CMSC-412, mass move, delete of content elements
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository
See also: http://www.mmbase.org/jira/browse/CMSC-412
Index: content.js
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/content.js,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- content.js 5 Jun 2008 02:32:19 -0000 1.7
+++ content.js 23 Jun 2008 10:18:22 -0000 1.8
@@ -91,13 +91,29 @@
function deleteContent(objectnumber, confirmmessage) {
if (confirmmessage) {
if (confirm(confirmmessage)) {
+ if(objectnumber == 'massdelete'){
+ var checkboxs = document.getElementsByTagName("input");
+ var objectnumbers = '';
+ for(i = 0; i < checkboxs.length; i++) {
+ if(checkboxs[i].type == 'checkbox' &&
checkboxs[i].name.indexOf('chk_') == 0 && checkboxs[i].checked) {
+ objectnumbers += checkboxs[i].value+",";
+ }
+ }
+ if(objectnumbers == ''){
+ return ;
+ }
+ objectnumbers = objectnumbers.substr(0,objectnumbers.length -
1);
+ document.forms[0].deleteContentRequest.value =
"massDelete:"+objectnumbers;
+ document.forms[0].submit();
+ }
+ else {
document.forms[0].deleteContentRequest.value = "permanentDelete:"
+ objectnumber;
document.forms[0].submit();
}
}
+ }
else {
document.forms[0].deleteContentRequest.value = "moveToRecyclebin:" +
objectnumber;
document.forms[0].submit();
}
-
}
Index: content.jsp
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/content.jsp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- content.jsp 18 Jun 2008 08:04:58 -0000 1.26
+++ content.jsp 23 Jun 2008 10:18:22 -0000 1.27
@@ -7,6 +7,7 @@
<html:html xhtml="true">
<cmscedit:head title="content.title">
<script src="content.js" type="text/javascript"></script>
+ <script src="search.js" type="text/javascript"></script>
</cmscedit:head>
<body>
<script type="text/javascript">
@@ -120,11 +121,14 @@
<c:set var="orderby" value="${param.orderby}" scope="page" />
<%@ include file="../pages.jsp" %>
-
+<form action="contentMassDelete.do" name="contentForm">
+<input type="hidden" name="offset" value="${param.offset}"/>
+<input type="hidden" name="channelnumber" value="<mm:write
referid="parentchannel" />"/>
+<input type="submit" class="button" value="<fmt:message
key="content.delete.massdelete" />"/>
<table>
<thead>
<tr>
- <th></th>
+ <th><input type="checkbox" name="selectall"
onclick="selectAll(this.checked, 'contentForm', 'chk_');" value="on"/></th>
<th><a href="javascript:sortBy('otype','<mm:write
referid="parentchannel" />')" class="headerlink">
<fmt:message key="content.typecolumn"/></a></th>
<th><a href="javascript:sortBy('title','<mm:write
referid="parentchannel" />')" class="headerlink">
@@ -145,9 +149,9 @@
<mm:param name="objectnumber" value="$number"/>
<mm:param name="returnurl" value="$returnurl"/>
</mm:url>
-<tr
- <mm:even inverse="true">class="swap"</mm:even> href="<mm:write
referid="url"/>">
-<td style="white-space: nowrap;">
+<tr <mm:even inverse="true">class="swap"</mm:even> href="<mm:write
referid="url"/>">
+ <td style="white-space: nowrap;">
+ <input type="checkbox" name="chk_<mm:field name="number" />"
value="<mm:field name="number" />"
onClick="document.forms['contentForm'].elements.selectall.checked=false;"/>
<a href="javascript:info('<mm:field name="number" />')"><img
src="../gfx/icons/info.png" width="16" height="16"
title="<fmt:message key="content.info" />"
alt="<fmt:message key="content.info" />"/></a>
@@ -176,8 +180,7 @@
src="../gfx/icons/versioning.png" title="<fmt:message
key="content.icon.versioning.title" />"
alt="<fmt:message key="content.icon.versioning.title" />"/></a>
</mm:haspage>
- <% if (role != null && SecurityUtil.isEditor(role)) { %>
-
+ <% if (role != null && SecurityUtil.isWriter(role)) { %>
<mm:last inverse="true">
<a href="javascript:moveDown('<mm:field name="number" />','<mm:write
referid="parentchannel" />')"><img
src="../gfx/icons/down.png" width="16" height="16"
title="<fmt:message key="content.move.down" />"
@@ -189,8 +192,7 @@
src="../gfx/icons/up.png" width="16" height="16"
title="<fmt:message key="content.move.up" />"
alt="<fmt:message key="content.move.up" />"/></a>
</mm:first>
-
- <%}%>
+ <% } %>
<cmsc:hasfeature name="savedformmodule">
<c:set var="typeval">
<mm:nodeinfo type="type"/>
@@ -270,6 +272,8 @@
</mm:listnodes>
</tbody>
</table>
+<input type="submit" class="button" value="<fmt:message
key="content.delete.massdelete" />"/>
+</form>
<%@ include file="../pages.jsp" %>
</div>
</div>
Index: reorder.js
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/reorder.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- reorder.js 12 Jun 2006 13:08:44 -0000 1.1
+++ reorder.js 23 Jun 2008 10:18:22 -0000 1.2
@@ -1,22 +1,43 @@
function moveUp() {
var select = document.forms[0].channels;
- var elementToMove = select.selectedIndex;
- if (elementToMove>0) {
+ var options = select.options;
+ for (i=0; i<options.length; i++) {
+ if (select.options[i].selected) {
+ var elementToMove = options[i].index;
+ if (elementToMove>0 && !options[elementToMove-1].selected) {
swap(elementToMove,elementToMove-1);
- select.selectedIndex--;
- fillHidden();
+ if(options[elementToMove-1].selected) {
+ options[elementToMove].selected = true;
+ }
+ else {
+ options[elementToMove].selected = false;
+ }
+ options[elementToMove-1].selected = true;
}
+ }
+ }
+ fillHidden();
}
+
function moveDown() {
var select = document.forms[0].channels;
- var elementToMove = select.selectedIndex;
- if (elementToMove!=-1) {
- if (elementToMove<document.forms[0].channels.options.length-1) {
+ var options = select.options;
+ for (i=options.length-1; i > -1; i--) {
+ if (options[i].selected) {
+ var elementToMove = options[i].index;
+ if (elementToMove!=-1 &&
elementToMove<document.forms[0].channels.options.length-1 &&
!options[elementToMove+1].selected) {
swap(elementToMove+1,elementToMove);
- select.selectedIndex++;
- fillHidden();
+ if(options[elementToMove+1].selected) {
+ options[elementToMove].selected = true;
+ }
+ else {
+ options[elementToMove].selected = false;
+ }
+ options[elementToMove+1].selected = true;
}
}
+ }
+ fillHidden();
}
function swap(index1, index2) {
@@ -29,6 +50,7 @@
var t = options[index1].text;
options[index1].text = options[index2].text;
options[index2].text = t;
+
}
function fillHidden() {
Index: reordercontent.jsp
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/reordercontent.jsp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- reordercontent.jsp 21 May 2007 18:06:14 -0000 1.3
+++ reordercontent.jsp 23 Jun 2008 10:18:22 -0000 1.4
@@ -50,7 +50,7 @@
<table>
<tr>
<td width="300">
- <select size='20' style="width:100%" name="channels">
+ <select size='20' style="width:100%" name="channels" multiple="true">
<mm:listnodes>
<option><mm:field name="title"/></option>
</mm:listnodes>
Index: search.jsp
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/search.jsp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- search.jsp 4 Jun 2008 05:18:09 -0000 1.20
+++ search.jsp 23 Jun 2008 10:18:22 -0000 1.21
@@ -322,12 +322,13 @@
<mm:first>
<[EMAIL PROTECTED] file="searchpages.jsp" %>
-
- <mm:compare referid="action" value="link" >
<form action="LinkToChannelAction.do" name="linkForm">
+ <mm:compare referid="action" value="link" inverse="true">
+ <input type="button" class="button" name="massdelete"
onclick="javascript:deleteContent('massdelete','<fmt:message
key="recyclebin.massremoveconfirm"/>' )" value="<fmt:message
key="content.delete.massdelete" />"/>
+ </mm:compare>
+ <mm:compare referid="action" value="link" >
<input type="submit" class="button" value="<fmt:message
key="searchform.link.submit" />"/>
</mm:compare>
-
<table>
<thead>
<tr>
@@ -336,8 +337,8 @@
<input type="hidden" name="channelnumber"
value="<mm:write referid="linktochannel"/>" />
<input type="hidden" name="channel" value="<mm:write
referid="linktochannel"/>" />
<mm:present referid="returnurl"><input type="hidden"
name="returnurl" value="<mm:write referid="returnurl"/>"/></mm:present>
- <input type="checkbox"
onclick="selectAll(this.checked, 'linkForm', 'link_');" value="on"
name="selectall" />
</mm:compare>
+ <input type="checkbox" onclick="selectAll(this.checked,
'linkForm', 'chk_');" value="on" name="selectall" />
</th>
<th><a href="javascript:orderBy('otype')" class="headerlink"
><fmt:message key="locate.typecolumn" /></a></th>
<th><a href="javascript:orderBy('title')" class="headerlink"
><fmt:message key="locate.titlecolumn" /></a></th>
@@ -378,6 +379,16 @@
<tr <mm:even inverse="true">class="swap"</mm:even>>
<td style="white-space: nowrap;">
+ <cmsc:rights nodeNumber="${creationRelNumber}" var="rights"/>
+ <c:if test="${creationRelNumber == trashnumber && rights ==
'webmaster'}">
+ <input type="checkbox" value="permanentDelete:<mm:field
name="number" />" name="chk_<mm:field name="number" />"
onClick="document.forms['linkForm'].elements.selectall.checked=false;"/>
+ </c:if>
+ <c:if test="${creationRelNumber != trashnumber
&& (rights == 'writer' || rights == 'chiefeditor' || rights == 'editor' ||
rights == 'webmaster')}">
+ <input type="checkbox" value="moveToRecyclebin:<mm:field
name="number" />" name="chk_<mm:field name="number" />"
onClick="document.forms['linkForm'].elements.selectall.checked=false;"/>
+ </c:if>
+
+
+
<%-- also show the edit icon when we return
from an edit wizard! --%>
<mm:write referid="action" jspvar="action"
write="false"/>
<c:if test="${action == 'search' || action ==
'save' || action == 'cancel'}">
@@ -387,9 +398,7 @@
</mm:url>">
<img src="../gfx/icons/page_edit.png"
alt="<fmt:message key="searchform.icon.edit.title" />" title="<fmt:message
key="searchform.icon.edit.title" />" /></a>
</c:if>
- <mm:compare referid="action" value="link">
- <input type="checkbox" value="<mm:field
name="number" />" name="link_<mm:field name="number" />"
onClick="document.forms['linkForm'].elements.selectall.checked=false;"/>
- </mm:compare>
+
<mm:compare referid="action" value="select">
<script>
function link<mm:field
name="number"/>() {
@@ -407,7 +416,7 @@
<img src="../gfx/icons/link.png"
title="<fmt:message key="searchform.icon.select.title" />" /></a>
</mm:compare>
- <cmsc:rights nodeNumber="${creationRelNumber}"
var="rights"/>
+
<c:if test="${creationRelNumber == trashnumber
&& rights == 'webmaster'}">
<a
href="javascript:deleteContent('<mm:field name='number'/>','<fmt:message
key="recyclebin.removeconfirm"/>' )">
<img
src="../gfx/icons/delete.png" title="<fmt:message
key="searchform.icon.delete.recyclebin" />" alt="<fmt:message
key="searchform.icon.delete.recyclebin" />"/>
@@ -493,10 +502,15 @@
<mm:last>
</tbody>
</table>
+ <mm:compare referid="action" value="link" inverse="true">
+ <input type="submit" class="button" name="massdelete"
onclick="javascript:deleteContent('massdelete','<fmt:message
key="recyclebin.removeconfirm"/>' )" value="<fmt:message
key="content.delete.massdelete" />"/>
+ </mm:compare>
<mm:compare referid="linktochannel" value="" inverse="true">
<input type="submit" class="button" value="<fmt:message
key="searchform.link.submit" />"/>
- </form>
+
</mm:compare>
+
+ </form>
<[EMAIL PROTECTED] file="searchpages.jsp" %>
</mm:last>
</mm:list>
Index: unlinkcreation.jsp
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/unlinkcreation.jsp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- unlinkcreation.jsp 21 May 2007 18:06:14 -0000 1.3
+++ unlinkcreation.jsp 23 Jun 2008 10:18:22 -0000 1.4
@@ -23,9 +23,12 @@
<mm:import externid="creationchannel" vartype="Node"/>
<mm:import externid="contentchannels" vartype="List"/>
<mm:import externid="trashchannel" vartype="Node"/>
-
+<c:set value="LinkToChannelAction.do" var="url"/>
+<c:if test="${not empty action && action =='massmove'}">
+ <c:set value="contentMassDelete.do" var="url"/>
+</c:if>
<mm:import externid="returnurl" />
-
+<mm:import externid="offset" />
<mm:node referid="creationchannel">
<mm:import id="creationnumber"><mm:field name="number"/></mm:import>
</mm:node>
@@ -48,7 +51,7 @@
<mm:import id="channelnumber"><mm:field name="number"/></mm:import>
<mm:compare referid="channelnumber" referid2="creationnumber"
inverse="true">
- <mm:url page="LinkToChannelAction.do" id="url" write="false" >
+ <mm:url page="${url}" id="url" write="false" >
<mm:param name="action" value="unlink"/>
<mm:param name="channelnumber" value="$creationnumber"/>
<mm:param name="objectnumber" value="$contentnumber"/>
@@ -56,6 +59,9 @@
<mm:present referid="returnurl">
<mm:param name="returnurl" value="$returnurl"/>
</mm:present>
+ <mm:present referid="offset">
+ <mm:param name="offset" value="$offset"/>
+ </mm:present>
</mm:url>
<li>
<a href="<mm:write referid="url"/>">
@@ -67,11 +73,14 @@
<mm:node referid="trashchannel">
<mm:import id="trashnumber"><mm:field name="number"/></mm:import>
- <mm:url page="LinkToChannelAction.do" id="trashurl" write="false" >
+ <mm:url page="${url}" id="trashurl" write="false" >
<mm:param name="action" value="unlink"/>
<mm:param name="channelnumber" value="$creationnumber"/>
<mm:param name="objectnumber" value="$contentnumber"/>
<mm:param name="destionationchannel" value="$trashnumber"/>
+ <mm:present referid="offset">
+ <mm:param name="offset" value="$offset"/>
+ </mm:present>
</mm:url>
<li class="trashbin">
<a href="<mm:write referid="trashurl"/>"><fmt:message
key="unlinkcreation.remove" /></a>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs