1 23 24 28 29 package org.infoglue.cms.applications.contenttool.actions; 30 31 import java.io.UnsupportedEncodingException ; 32 import java.net.URLEncoder ; 33 import java.util.Collection ; 34 import java.util.Iterator ; 35 36 import org.apache.log4j.Logger; 37 import org.dom4j.Document; 38 import org.dom4j.DocumentHelper; 39 import org.dom4j.Element; 40 import org.infoglue.cms.applications.common.actions.SimpleXmlServiceAction; 41 import org.infoglue.cms.controllers.kernel.impl.simple.ContentController; 42 import org.infoglue.cms.controllers.kernel.impl.simple.ContentControllerProxy; 43 import org.infoglue.cms.controllers.kernel.impl.simple.ContentVersionController; 44 import org.infoglue.cms.controllers.kernel.impl.simple.DigitalAssetController; 45 import org.infoglue.cms.controllers.kernel.impl.simple.TransactionHistoryController; 46 import org.infoglue.cms.entities.content.ContentVersionVO; 47 import org.infoglue.cms.entities.content.DigitalAssetVO; 48 import org.infoglue.cms.entities.content.impl.simple.ContentVersionImpl; 49 import org.infoglue.cms.entities.kernel.BaseEntityVO; 50 import org.infoglue.cms.entities.management.LanguageVO; 51 import org.infoglue.cms.entities.management.TransactionHistoryVO; 52 import org.infoglue.cms.exception.Bug; 53 import org.infoglue.cms.exception.ConstraintException; 54 import org.infoglue.cms.exception.SystemException; 55 import org.infoglue.cms.security.InfoGluePrincipal; 56 import org.infoglue.cms.treeservice.ss.ContentNodeSupplier; 57 58 import com.frovi.ss.Tree.INodeSupplier; 59 60 public class SimpleContentXmlAction extends SimpleXmlServiceAction 61 { 62 private final static Logger logger = Logger.getLogger(SimpleContentXmlAction.class.getName()); 63 64 private static final long serialVersionUID = 1L; 65 66 private static String TYPE_FOLDER = "ContentFolder"; 67 private static String TYPE_ITEM = "ContentItem"; 68 private String digitalAssetKey; 69 private Integer digitalAssetId; 70 private Integer languageId; 71 72 public INodeSupplier getNodeSupplier() throws SystemException 73 { 74 ContentNodeSupplier sup = new ContentNodeSupplier(getRepositoryId(), this.getInfoGluePrincipal()); 75 sup.setShowLeafs(showLeafs.compareTo("yes")==0); 76 sup.setAllowedContentTypeIds(allowedContentTypeIds); 77 return sup; 78 } 79 80 public String doDigitalAssets() throws Exception 81 { 82 String ret = ""; 83 DigitalAssetVO digitalAssetVO = null; 84 85 if (digitalAssetId != null) { 86 digitalAssetVO = DigitalAssetController 87 .getDigitalAssetVOWithId(digitalAssetId); 88 } else { 89 digitalAssetVO = DigitalAssetController.getDigitalAssetVO( 90 parent, languageId, digitalAssetKey, true); 91 } 92 93 ret = "<digitalAssetInfo>" 94 + "<assetURL>" 95 + DigitalAssetController.getDigitalAssetUrl(digitalAssetVO.getId()) 96 + "</assetURL>" 97 + "<assetId>" 98 + digitalAssetVO.getId() 99 + "</assetId>" 100 + "</digitalAssetInfo>"; 101 102 return ret; 103 } 104 105 106 public ContentVersionVO getLatestContentVersionVO(Integer contentId, Integer languageId) 107 { 108 ContentVersionVO contentVersionVO = null; 109 try 110 { 111 contentVersionVO = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(contentId, languageId); 112 } 113 catch(Exception e) 114 { 115 logger.error("An error occurred when we tried to get the latest version for the content:" + e.getMessage(), e); 116 } 117 118 return contentVersionVO; 119 } 120 121 public Element getContentVersionElement(Integer contentVersionId) throws SystemException, Bug, UnsupportedEncodingException 122 { 123 ContentVersionController contentVersionController = ContentVersionController.getContentVersionController(); 124 ContentVersionVO vo = contentVersionController.getContentVersionVOWithId(contentVersionId); 125 return getContentVersionElement(vo); 126 } 127 128 public Element getContentVersionElement(ContentVersionVO vo) throws SystemException, Bug, UnsupportedEncodingException 129 { 130 Element element = DocumentHelper.createElement("contentVersion"); 131 Element head = DocumentHelper.createElement("head"); 132 Element value = DocumentHelper.createElement("value"); 133 134 head.addAttribute("id", "" + vo.getContentVersionId()); 135 head.addAttribute("languageId", "" + vo.getLanguageId()); 136 head.addAttribute("languageName", vo.getLanguageName()); 137 head.addAttribute("isActive", "" + vo.getIsActive()); 138 139 TransactionHistoryController transactionHistoryController = TransactionHistoryController.getController(); 140 TransactionHistoryVO transactionHistoryVO = transactionHistoryController.getLatestTransactionHistoryVOForEntity(ContentVersionImpl.class, vo.getContentVersionId()); 141 if(transactionHistoryVO!=null) 142 head.addAttribute("mod", formatDate(transactionHistoryVO.getTransactionDateTime())); 143 value.addCDATA(URLEncoder.encode(vo.getVersionValue(),"UTF-8")); 145 element.add(head); 146 element.add(value); 147 return element; 148 } 149 150 153 public String doContentVersion() throws Exception 154 { 155 Document doc = DocumentHelper.createDocument(); 156 doc.add(getContentVersionElement(parent)); 157 return out(getFormattedDocument(doc)); 158 } 159 160 163 public String doContentVersions() throws Exception 164 { 165 Document doc = DocumentHelper.createDocument(); 166 Element root = doc.addElement("contentVersions"); 167 Collection availableLanguages = ContentController.getContentController().getRepositoryLanguages(parent); 168 for(Iterator i=availableLanguages.iterator();i.hasNext();) 169 { 170 LanguageVO lvo = (LanguageVO) i.next(); 171 ContentVersionVO vo = getLatestContentVersionVO(parent, lvo.getLanguageId()); 172 if(vo!=null) 173 root.add(getContentVersionElement(vo)); 174 } 175 176 ContentVersionController contentVersionController = ContentVersionController.getContentVersionController(); 177 return out(getFormattedDocument(doc)); 178 } 179 180 183 protected BaseEntityVO getRootEntityVO(Integer repositoryId, InfoGluePrincipal principal) throws ConstraintException, SystemException { 184 return ContentControllerProxy.getController().getRootContentVO(repositoryId, principal.getName()); 185 } 186 187 } 188 | Popular Tags |