Author: kevinshen
Date: 2009-09-18 05:05:54 +0200 (Fri, 18 Sep 2009)
New Revision: 38677
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AbstractUploadAction.java
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AttachmentUploadAction.java
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ImageUploadAction.java
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentsearch.jsp
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentupload.jsp
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imagesearch.jsp
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imageupload.jsp
Log:
CMSC-1528 Make uploading images/attachments possible again in the rich text
editor popups
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AbstractUploadAction.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AbstractUploadAction.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AbstractUploadAction.java
2009-09-18 03:05:54 UTC (rev 38677)
@@ -0,0 +1,113 @@
+package com.finalist.cmsc.repository.forms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.upload.FormFile;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.NodeManager;
+
+import com.finalist.cmsc.repository.AssetElementUtil;
+import com.finalist.cmsc.repository.RepositoryUtil;
+import com.finalist.cmsc.struts.MMBaseAction;
+import com.finalist.util.http.BulkUploadUtil;
+
+public abstract class AbstractUploadAction extends MMBaseAction {
+
+ private static final String ATTACHMENTS = "attachments";
+ private static final String IMAGES = "images";
+ private static final String ALL = "all";
+ private static final String SITEASSETS = "siteassets";
+ private static final String SESSION_CREATION = "creation";
+
+ protected static final Log log =
LogFactory.getLog(AbstractUploadAction.class);
+
+ @Override
+ public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
+ HttpServletResponse response, Cloud cloud) throws Exception {
+
+ AssetUploadForm imageUploadForm = (AssetUploadForm) form;
+ String parentchannel = imageUploadForm.getParentchannel();
+ FormFile file = imageUploadForm.getFile();
+ String strict = imageUploadForm.getStrict();
+
+ String exist = "1";
+ String exceed = "yes";
+ int nodeId = 0;
+
+ if (parentchannel.equalsIgnoreCase(SITEASSETS)) {
+ parentchannel = RepositoryUtil.getRoot(cloud);
+ } else if (parentchannel.equalsIgnoreCase(ALL) ||
StringUtils.isEmpty(parentchannel)) {
+ parentchannel = (String)
request.getSession().getAttribute(SESSION_CREATION);
+ }
+ List<String> notUploadedFiles = new ArrayList<String>();
+ List<String> uploadedFiles = new ArrayList<String>();
+ int fileSize = file.getFileSize();
+ if (isValidFile(file)) {
+ if (BulkUploadUtil.maxFileSizeBiggerThan(fileSize)) {
+ NodeManager manager = cloud.getNodeManager(getManagerName());
+ exceed = "no";
+ if (IMAGES.equals(getManagerName())) {
+ if (BulkUploadUtil.isImage(file.getFileName()) ||
BulkUploadUtil.isZipFile(file.getContentType(), file.getFileName())) {
+ if (AssetElementUtil.isNewFile(file, manager)) {
+ exist = "0";
+ List<Integer> nodes = null;
+ nodes = BulkUploadUtil.store(cloud, manager,
parentchannel, file,notUploadedFiles,
+ uploadedFiles);
+ // to archive the upload asset
+ if (nodes != null && nodes.size() > 0 ) {
+ AssetElementUtil.addRelationsForNodes(nodes, cloud);
+ nodeId = nodes.get(0);
+ }
+ }
+ else {
+ exist = "1";
+ }
+ }
+ else {
+ exist = "0";
+ exceed = "no";
+ }
+ }
+ else if (ATTACHMENTS.equals(getManagerName())) {
+ if (AssetElementUtil.isNewFile(file, manager)) {
+ exist = "0";
+ List<Integer> nodes = null;
+ nodes = BulkUploadUtil.store(cloud, manager, parentchannel,
file,notUploadedFiles,
+ uploadedFiles);
+ // to archive the upload asset
+ if (nodes != null && nodes.size() > 0 ) {
+ AssetElementUtil.addRelationsForNodes(nodes, cloud);
+ nodeId = nodes.get(0);
+ }
+ }
+ else {
+ exist = "1";
+ }
+ }
+ }
+ else {
+ exist = "0";
+ }
+ }
+ return new ActionForward(mapping.findForward(SUCCESS).getPath() +
"?uploadAction=select&strict=" + strict + "&exist=" + exist
+ + "&exceed=" + exceed + "&channelid=" + parentchannel +
"&uploadedNodes=" + nodeId, true);
+ }
+
+ protected abstract String getManagerName() ;
+
+ private boolean isValidFile(FormFile file) {
+ return (BulkUploadUtil.maxFileSizeBiggerThan(file.getFileSize()) ||
BulkUploadUtil.isZipFile(file
+ .getContentType(), file.getFileName()))
+ && file.getFileSize() != 0 &&
StringUtils.isNotEmpty(file.getFileName());
+ }
+}
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AttachmentUploadAction.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AttachmentUploadAction.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AttachmentUploadAction.java
2009-09-18 03:05:54 UTC (rev 38677)
@@ -0,0 +1,11 @@
+package com.finalist.cmsc.repository.forms;
+
+
+public class AttachmentUploadAction extends AbstractUploadAction {
+
+
+ @Override
+ protected String getManagerName() {
+ return "attachments";
+ }
+}
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ImageUploadAction.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ImageUploadAction.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ImageUploadAction.java
2009-09-18 03:05:54 UTC (rev 38677)
@@ -0,0 +1,11 @@
+package com.finalist.cmsc.repository.forms;
+
+
+public class ImageUploadAction extends AbstractUploadAction {
+
+ @Override
+ protected String getManagerName() {
+ return "images";
+ }
+
+}
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentsearch.jsp
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentsearch.jsp
2009-09-17 19:40:24 UTC (rev 38676)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentsearch.jsp
2009-09-18 03:05:54 UTC (rev 38677)
@@ -37,6 +37,15 @@
</div>
</div>
</a>
+ <a
href="attachmentupload.jsp?uploadAction=${action}&uploadedNodes=0&strict=${param.strict}">
+ <div class="tab">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="attachments.upload.title" />
+ </div>
+ </div>
+ </div>
+ </a>
</div>
</c:if>
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentupload.jsp
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentupload.jsp
2009-09-17 19:40:24 UTC (rev 38676)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/attachmentupload.jsp
2009-09-18 03:05:54 UTC (rev 38677)
@@ -33,6 +33,24 @@
</cmscedit:head>
<body>
<mm:cloud jspvar="cloud" loginpage="../../editors/login.jsp">
+ <div class="tabs">
+ <a href="AttachmentInitAction.do">
+ <div class="tab">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="attachments.title" />
+ </div>
+ </div>
+ </div>
+ </a>
+ <div class="tab_active">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="attachments.upload.title" />
+ </div>
+ </div>
+ </div>
+ </div>
<div class="editor" style="height:580px">
<div class="body">
<html:form
action="/editors/repository/AttachmentUploadAction.do"
enctype="multipart/form-data" method="post">
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imagesearch.jsp
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imagesearch.jsp
2009-09-17 19:40:24 UTC (rev 38676)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imagesearch.jsp
2009-09-18 03:05:54 UTC (rev 38677)
@@ -29,15 +29,22 @@
<mm:import externid="assetShow">list</mm:import><%-- either list or thumbnail
--%>
<c:set var="pagerDOToffset"><%=request.getParameter("pager.offset")%></c:set>
-<div class="tabs"><!-- actieve TAB -->
- <a>
+ <div class="tabs"><!-- actieve TAB -->
<div class="tab_active">
<div class="body">
<div class="title"><fmt:message key="images.title"
/></div>
</div>
</div>
- </a>
-</div>
+ <a
href="imageupload.jsp?uploadAction=${param.action}&uploadedNodes=0&strict=${param.strict}">
+ <div class="tab">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="images.upload.title" />
+ </div>
+ </div>
+ </div>
+ </a>
+ </div>
<div class="editor">
<mm:import id="formAction">/editors/resources/ImageAction</mm:import>
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imageupload.jsp
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imageupload.jsp
2009-09-17 19:40:24 UTC (rev 38676)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/resources/imageupload.jsp
2009-09-18 03:05:54 UTC (rev 38677)
@@ -33,6 +33,25 @@
</cmscedit:head>
<body>
<mm:cloud jspvar="cloud" loginpage="../../editors/login.jsp">
+ <div class="tabs">
+ <a href="ImageInitAction.do">
+ <div class="tab">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="images.title" />
+ </div>
+ </div>
+ </div>
+ </a>
+ <div class="tab_active">
+ <div class="body">
+ <div class="title">
+ <fmt:message key="images.upload.title" />
+ </div>
+ </div>
+ </div>
+ </div>
+
<div class="editor" style="height:580px">
<div class="body">
<html:form action="/editors/repository/ImageUploadAction.do"
enctype="multipart/form-data" method="post">
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs