Update of
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
In directory james.mmbase.org:/tmp/cvs-serv493/forms
Modified Files:
ChannelDelete.java LinkToChannelAction.java
Log Message:
CMSC-681 Asset -Deleting the Assets when deleting the channel
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
See also: http://www.mmbase.org/jira/browse/CMSC-681
Index: ChannelDelete.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ChannelDelete.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- ChannelDelete.java 1 Oct 2008 11:04:48 -0000 1.10
+++ ChannelDelete.java 18 Nov 2008 01:52:47 -0000 1.11
@@ -96,6 +96,14 @@
moveElementToTrash(cloud, channelNode, elementNode);
}
}
+ // get relations of content elements to channels other then the
creationchannel
+ NodeList createdAssetElements =
RepositoryUtil.getCreatedAssetElements(channelNode);
+
+ for (Iterator<Node> iter = createdAssetElements.iterator();
iter.hasNext();) {
+ Node elementNode = iter.next();
+ // get relations
+ moveAssetElementToTrash(cloud, channelNode, elementNode);
+ }
deleteChannel(channelNode);
}
@@ -106,18 +114,21 @@
deleteAction(cloud, childChannel);
}
- NodeList createdElements =
RepositoryUtil.getCreatedElements(channelNode);
- for (Iterator<Node> iter = createdElements.iterator(); iter.hasNext();) {
+ NodeList createdContentElements =
RepositoryUtil.getCreatedElements(channelNode);
+ for (Iterator<Node> iter = createdContentElements.iterator();
iter.hasNext();) {
Node objectNode = iter.next();
moveElementToTrash(cloud, channelNode, objectNode);
}
+ NodeList createdAssetElements =
RepositoryUtil.getCreatedAssetElements(channelNode);
+ for (Iterator<Node> iter = createdAssetElements.iterator();
iter.hasNext();) {
+ Node objectNode = iter.next();
+ moveAssetElementToTrash(cloud, channelNode, objectNode);
+ }
deleteChannel(channelNode);
}
private void deleteChannel(Node channelNode) {
- Publish.remove(channelNode);
- Publish.unpublish(channelNode);
- Workflow.remove(channelNode);
+ unpublish(channelNode);
channelNode.delete(true);
}
@@ -128,24 +139,34 @@
RepositoryUtil.removeCreationRelForContent(elementNode);
RepositoryUtil.addCreationChannel(elementNode, newChannelNode);
- // unpublish and remove from workflow
- Publish.remove(elementNode);
- Publish.unpublish(elementNode);
- Workflow.remove(elementNode);
+ unpublish(elementNode);
}
private void moveElementToTrash(Cloud cloud, Node channelNode, Node
elementNode) {
- // remove the element
+ // remove the Content element
RepositoryUtil.removeContentFromChannel(elementNode, channelNode);
RepositoryUtil.removeCreationRelForContent(elementNode);
RepositoryUtil.removeContentFromAllChannels(elementNode);
RepositoryUtil.addContentToChannel(elementNode,
RepositoryUtil.getTrashNode(cloud));
+ //remove the Asset Element
+ RepositoryUtil.removeContentFromChannel(elementNode, channelNode);
+ unpublish(elementNode);
+ }
+ private void moveAssetElementToTrash(Cloud cloud, Node channelNode, Node
elementNode) {
+
+ //remove the Asset Element
+ RepositoryUtil.removeAssetFromChannel(elementNode, channelNode);
+ RepositoryUtil.removeCreationRelForAsset(elementNode);
+ RepositoryUtil.addAssetToChannel(elementNode,
RepositoryUtil.getTrashNode(cloud));
// unpublish and remove from workflow
+ unpublish(elementNode);
+ }
+
+ private void unpublish(Node elementNode) {
Publish.remove(elementNode);
Publish.unpublish(elementNode);
Workflow.remove(elementNode);
}
-
}
Index: LinkToChannelAction.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/LinkToChannelAction.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- LinkToChannelAction.java 27 Jun 2008 01:51:56 -0000 1.12
+++ LinkToChannelAction.java 18 Nov 2008 01:52:47 -0000 1.13
@@ -15,8 +15,10 @@
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.apache.struts.util.LabelValueBean;
import org.mmbase.bridge.*;
+import com.finalist.cmsc.repository.AssetElementUtil;
import com.finalist.cmsc.repository.RepositoryUtil;
import com.finalist.cmsc.struts.MMBaseFormlessAction;
import com.finalist.cmsc.services.publish.Publish;
@@ -41,10 +43,28 @@
if (RepositoryUtil.isCreationChannel(objectNode, channelNode)) {
NodeList contentchannels =
RepositoryUtil.getContentChannelsForContent(objectNode);
if (contentchannels.size() <= 1) {
+ List<NodeManager> types = AssetElementUtil.getAssetTypes(cloud);
+ List<String> hiddenTypes =
AssetElementUtil.getHiddenAssetTypes();
+ boolean isAssetObject = false;
+ for (NodeManager manager : types) {
+ String name = manager.getName();
+ if (!hiddenTypes.contains(name)) {
+ if(name.equals(objectNode.getNodeManager().getName())) {
+ isAssetObject = true;
+ break;
+ }
+ }
+ }
+ if (isAssetObject) {
+ RepositoryUtil.removeAssetFromChannel(objectNode,
channelNode);
+ RepositoryUtil.removeCreationRelForAsset(objectNode);
+ RepositoryUtil.addAssetToChannel(objectNode,
RepositoryUtil.getTrashNode(cloud));
+ }
+ else {
RepositoryUtil.removeContentFromChannel(objectNode,
channelNode);
RepositoryUtil.removeCreationRelForContent(objectNode);
RepositoryUtil.addContentToChannel(objectNode,
RepositoryUtil.getTrash(cloud));
-
+ }
// unpublish and remove from workflow
Publish.remove(objectNode);
Publish.unpublish(objectNode);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs