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

Reply via email to