Update of /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util In directory james.mmbase.org:/tmp/cvs-serv28048/src/java/com/finalist/newsletter/util
Modified Files: CloneUtil.java NewsletterPublicationUtil.java Log Message: CMSC-811 auto create publication,clone attachment when add publication See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util See also: http://www.mmbase.org/jira/browse/CMSC-811 Index: CloneUtil.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/CloneUtil.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- CloneUtil.java 8 Jan 2008 10:45:00 -0000 1.1 +++ CloneUtil.java 4 May 2008 12:02:12 -0000 1.2 @@ -202,9 +202,9 @@ String relName = relationTypeNode.getStringValue("sname"); relationManager = localRelation.getCloud().getRelationManager(sourceNode.getNodeManager().getName(), destinationNode.getNodeManager().getName(), relName); + } Relation newRelation = relationManager.createRelation(sourceNode, destinationNode); - FieldIterator fields = localRelation.getNodeManager().getFields().fieldIterator(); while (fields.hasNext()) { Field field = fields.nextField(); @@ -248,7 +248,8 @@ Relation rel = ri.nextRelation(); if (rel.getSource().getNumber() == localNode.getNumber()) { cloneRelation(rel, newNode, rel.getDestination()); - } else { + } + else { if (rel.getDestination().getNumber() == localNode.getNumber()) { cloneRelation(rel, rel.getSource(), newNode); } Index: NewsletterPublicationUtil.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/NewsletterPublicationUtil.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- NewsletterPublicationUtil.java 30 Apr 2008 07:30:10 -0000 1.21 +++ NewsletterPublicationUtil.java 4 May 2008 12:02:12 -0000 1.22 @@ -19,36 +19,43 @@ public abstract class NewsletterPublicationUtil { - private static void copyContent(Node oldThemeNode, Node newThemeNode) { - RelationList contentList = oldThemeNode.getRelations("newslettercontent"); + private static void copyContent(Node oldTermNode, Node newTermNode) { + RelationList contentList = oldTermNode.getRelations("newslettercontent"); if (contentList != null && contentList.size() > 0) { for (int r = 0; r < contentList.size(); r++) { Relation contentRelation = contentList.getRelation(r); Node contentNode = contentRelation.getSource(); - RelationUtil.createRelation(newThemeNode, contentNode, "newslettercontent"); + RelationUtil.createRelation(newTermNode, contentNode, "newslettercontent"); } } } private static void copyOtherRelations(Node newsletterNode, Node publicationNode) { PagesUtil.copyPageRelations(newsletterNode, publicationNode); + copyImageAndAttachment(newsletterNode, publicationNode); } - private static void copyThemesAndContent(Node newsletterNode, Node publicationNode, boolean copyContent) { - copyThemesAndContent(newsletterNode, publicationNode, copyContent, "newslettertheme"); - copyThemesAndContent(newsletterNode, publicationNode, copyContent, "defaulttheme"); + + private static void copyImageAndAttachment(Node newsletterNode, Node publicationNode) { + CloneUtil.cloneRelations(newsletterNode,publicationNode,"namedrel","images"); + CloneUtil.cloneRelations(newsletterNode,publicationNode,"posrel","attachments"); + } + + private static void copyTermsAndContent(Node newsletterNode, Node publicationNode, boolean copyContent) { + copyTermsAndContent(newsletterNode, publicationNode, copyContent, "newslettertheme"); + copyTermsAndContent(newsletterNode, publicationNode, copyContent, "defaulttheme"); } - private static void copyThemesAndContent(Node newsletterNode, Node publicationNode, boolean copyContent, final String relationName) { - NodeList newsletterThemeList = newsletterNode.getRelatedNodes("newslettertheme", relationName, "DESTINATION"); - if (newsletterThemeList != null) { - for (int i = 0; i < newsletterThemeList.size(); i++) { - Node oldThemeNode = newsletterThemeList.getNode(i); - Node newThemeNode = CloneUtil.cloneNode(oldThemeNode, "newsletterpublicationtheme"); - if (newThemeNode != null) { - RelationUtil.createRelation(publicationNode, newThemeNode, relationName); + private static void copyTermsAndContent(Node newsletterNode, Node publicationNode, boolean copyContent, final String relationName) { + NodeList newsletterTermList = newsletterNode.getRelatedNodes("term", relationName, "DESTINATION"); + if (newsletterTermList != null) { + for (int i = 0; i < newsletterTermList.size(); i++) { + Node oldTermNode = newsletterTermList.getNode(i); + Node newTermNode = CloneUtil.cloneNode(oldTermNode, "newsletterpublicationtheme"); + if (newTermNode != null) { + RelationUtil.createRelation(publicationNode, newTermNode, relationName); if (copyContent == true) { - copyContent(oldThemeNode, newThemeNode); + copyContent(oldTermNode, newTermNode); } } } @@ -76,7 +83,7 @@ publicationNode.setStringValue("status", Publication.STATUS.INITIAL.toString()); publicationNode.commit(); - copyThemesAndContent(newsletterNode, publicationNode, copyContent); + // copyTermsAndContent(newsletterNode, publicationNode, copyContent); copyOtherRelations(newsletterNode, publicationNode); NavigationUtil.appendChild(newsletterNode, publicationNode); Node layoutNode = PagesUtil.getLayout(publicationNode); @@ -130,7 +137,7 @@ NavigationUtil.deleteItem(publicationNode); } - public static List<String> getAllThemesForPublication(int publicationNumber) { + public static List<String> getAllTermsForPublication(int publicationNumber) { List<String> themes = new ArrayList<String>(); Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud(); Node newsletterNode = cloud.getNode(publicationNumber); _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs