Update of 
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository
In directory james.mmbase.org:/tmp/cvs-serv20797/webapp/editors/repository

Modified Files:
        asset.jsp assetupload.jsp 
Added Files:
        assetsearch.jsp 
Log Message:
CMSC-1089 change Assets display in two ways. list and thumbnails. upload 
image/attachment


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository
See also: http://www.mmbase.org/jira/browse/CMSC-1089


assetsearch.jsp is new



Index: asset.jsp
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/asset.jsp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- asset.jsp   4 Nov 2008 09:14:43 -0000       1.5
+++ asset.jsp   7 Nov 2008 02:54:48 -0000       1.6
@@ -4,58 +4,31 @@
 %><%@ page import="com.finalist.cmsc.security.*" 
 %><mm:content type="text/html" encoding="UTF-8" expires="0">
 
-   <mm:cloud jspvar="cloud" rank="basic user" loginpage="../login.jsp">
-      <html:html xhtml="true">
-         <mm:import externid="parentchannel" jspvar="parentchannel" 
vartype="Integer" from="parameters" required="true"/>
-         <mm:import jspvar="returnurl" 
id="returnurl">/editors/repository/Asset.do?type=asset&parentchannel=<mm:write
+<mm:cloud jspvar="cloud" rank="basic user" loginpage="../login.jsp">
+<mm:import externid="parentchannel" jspvar="parentchannel" vartype="Integer" 
from="parameters" required="true"/>
+<mm:import jspvar="returnurl" 
id="returnurl">/editors/repository/Asset.do?type=asset&parentchannel=<mm:write
          referid="parentchannel"/>&direction=down</mm:import>
 
-         <cmscedit:head title="images.title">
-            <script type="text/javascript"> 
+<div class="editor">
+<div class="body">
 
-               function showEditItems(id){
-                  document.getElementById('asset-info-'+id).style.display = 
'block';
-                  document.getElementById('asset-info-'+id).style.display = 
2001;
-               }
-               function hideEditItems(id){
-                  document.getElementById('asset-info-'+id).style.display = 
'none';
-                  document.getElementById('asset-info-'+id).style.display = 
2000;
-               }
-               function changeMode(){
-                  var assetsMode = document.getElementsByTagName("option");
-                  for(i = 0; i < assetsMode.length; i++){
-                     if(assetsMode[i].selected & assetsMode[i].id=="a_list"){
-                        document.location.href = 
'Asset.do?type=asset&parentchannel=<mm:write 
referid="parentchannel"/>&direction=down';
-                     }else if(assetsMode[i].selected & 
assetsMode[i].id=="a_thumbnail"){
-                        document.location.href = 
'Asset.do?type=asset&parentchannel=<mm:write 
referid="parentchannel"/>&direction=down&show=0';
-                     }
-                  }
-               }
-            </script>
-         </cmscedit:head>
-
-
-
-
-         <div class="editor">
-            <div class="body">
-               <!-- check to see if we have workflow, this is done by looking 
if the editors for the workflow are on the HD -->
-               <c:set var="hasWorkflow" value="false"/>
-               <mm:haspage page="/editors/workflow">
+<!-- check to see if we have workflow, this is done by looking if the editors 
for the workflow are on the HD -->
+<c:set var="hasWorkflow" value="false"/>
+<mm:haspage page="/editors/workflow">
                   <c:set var="hasWorkflow" value="true"/>
-               </mm:haspage>
+</mm:haspage>
 
 
-               <mm:node number="$parentchannel" jspvar="parentchannelnode">
-               <% UserRole role = RepositoryUtil.getRole(cloud, 
parentchannelnode, false); %>
-               <p>
+<mm:node number="$parentchannel" jspvar="parentchannelnode">
+<% UserRole role = RepositoryUtil.getRole(cloud, parentchannelnode, false); %>
+<p>
                   <fmt:message key="asset.channel">
                      <fmt:param><mm:field name="path"/></fmt:param>
                   </fmt:message>
-               </p>
-               <%@ include file="assetupload.jsp" %>
-               <% if (role != null && SecurityUtil.isWriter(role)) { %>
-                  <ul class="shortcuts">
+</p>
+<%@ include file="assetupload.jsp" %>
+<% if (role != null && SecurityUtil.isWriter(role)) { %>
+<ul class="shortcuts">
                      <li class="new" style="text-decoration: 
none;"><fmt:message key="asset.new"/>
                         <form name="initForm" action="../AssetInitAction.do" 
method="post" style="display:inline;text-decoration:none">
                            <input type="hidden" name="action" value="create"/>
@@ -64,7 +37,7 @@
                            <input type="hidden" name="order" 
value="${orderby}" />
                            <input type="hidden" name="direction" 
value="${direction}"/>
                            <input type="hidden" name="offset" 
value="${param.offset}"/>
-                           <select name="assettype">
+            <select name="assettype" id="atype" 
onchange="document.getElementById('assetType').value=this.value">
                               <c:forEach var="type" items="${typesList}">
                                  <option 
value="${type.value}">${type.label}</option>
                               </c:forEach>
@@ -72,108 +45,138 @@
                            <input type="submit" name="submitButton" 
value="<fmt:message key="asset.create" />" class="button"/>
                         </form>
                      </li>
-                  </ul>
-               <% } %>
-            </div>
+</ul>
+<% } %>
+</div>
 
-            <div class="ruler_green">
+<div class="ruler_green">
                <div><fmt:message key="asset.asset"/></div>
-            </div>
-
-            <div>
-               <select name="assesMode" onchange="javascript:changeMode()">
-                  <c:if test="${empty show}">
-                     <option id="a_list" selected="selected">list</option>
-                     <option id = "a_thumbnail" >thumbnail</option>
-                  </c:if>
-                  <c:if test="${!empty show}">
-                     <option id="a_list">list</option>
-                     <option id = "a_thumbnail" selected="selected" 
>thumbnail</option>
-                  </c:if>
-               </select>
-            </div>
-            <c:if test="${empty show}">
-               <div class="body" >
-                  <mm:import externid="elements" from="request" 
required="true"/>
-                  <mm:import externid="elementCount" from="request" 
vartype="Integer">0</mm:import>
-                  <mm:import externid="resultsPerPage" from="request" 
vartype="Integer">25</mm:import>
-                  <c:set var="listSize" value="${elementCount}"/>
-                  <c:set var="offset" value="${param.offset}"/>
-                  <c:set var="extraparams" 
value="&direction=${param.direction}&parentchannel=${param.parentchannel}"/>
-                  <c:set var="orderby" value="${param.orderby}" scope="page" />
-                  <c:set var="type" value="asset" scope="page" />
-                  <%@ include file="../pages.jsp" %>
-
-                  <form action="assetMassDelete.do" name="assetForm">
-                     <input type="hidden" name="offset" 
value="${param.offset}"/>
-                     <input type="hidden" name="orderby" value="${orderby}" />
-                     <input type="hidden" name="direction" 
value="${direction}"/>
-                     <input type="hidden" name="channelnumber" 
value="<mm:write referid="parentchannel" />"/>
-                     <% if (role != null && SecurityUtil.isWriter(role)) { %>
-                        <c:if test="${fn:length(elements) >1}">
-                           <input type="submit" class="button" 
value="<fmt:message key="asset.delete.massdelete" />"/>
-                        </c:if>
-                     <% } %>
-                     <table>
-                        <thead>
+</div>
+<div class="body">
+<mm:import externid="elements" from="request" required="true"/>
+<mm:import externid="elementCount" from="request" 
vartype="Integer">0</mm:import>
+<mm:import externid="resultsPerPage" from="request" 
vartype="Integer">25</mm:import>
+<c:set var="listSize" value="${elementCount}"/>
+<c:set var="offset" value="${param.offset}"/>
+<c:set var="extraparams" 
value="&direction=${param.direction}&parentchannel=${param.parentchannel}"/>
+<c:set var="orderby" value="${param.orderby}" scope="page" />
+<c:set var="type" value="asset" scope="page" />
+<%@ include file="../pages.jsp" %>
+
+<form action="AssetMassDelete.do" name="assetForm">
+<input type="hidden" name="offset" value="${param.offset}"/>
+<input type="hidden" name="orderby" value="${orderby}" />
+<input type="hidden" name="direction" value="${direction}"/>
+<input type="hidden" name="channelnumber" value="<mm:write 
referid="parentchannel" />"/>
+<% if (role != null && SecurityUtil.isWriter(role)) { %>
+<c:if test="${fn:length(elements) >1}">
+<input type="submit" class="button" value="<fmt:message 
key="asset.delete.massdelete" />"/>
+</c:if>
+<% } %>
+<table>
+<thead>
                            <tr>
                               <th><% if (role != null && 
SecurityUtil.isWriter(role)) { %>
                                     <c:if test="${fn:length(elements) >1}">
-                                     <input type="checkbox"  name="selectall"  
onclick="selectAll(this.checked, 'assetForm', 'chk_');" value="on"/></c:if> <% 
} %></th>
+        <input type="checkbox"  name="selectall"  
onclick="selectAll(this.checked, 'assetForm', 'chk_');" value="on"/>
+        </c:if>
+        <% } %>
+        </th>
                               <th><a href="javascript:sortBy('Asset', 
'otype','<mm:write referid="parentchannel" />')" class="headerlink">
                                     <fmt:message 
key="asset.typecolumn"/></a></th>
                               <th><a href="javascript:sortBy('Asset', 
'title','<mm:write referid="parentchannel" />')" class="headerlink">
                                     <fmt:message 
key="asset.titlecolumn"/></a></th>
                               <th><a href="javascript:sortBy('Asset', 
'creator','<mm:write referid="parentchannel" />')" class="headerlink">
-                                    <fmt:message 
key="asset.authorcolumn"/></a> </th>
+        <fmt:message key="asset.authorcolumn"/></a></th>
                               <th><a href="javascript:sortBy('Asset', 
'lastmodifieddate','<mm:write referid="parentchannel" />')" class="headerlink">
                                     <fmt:message 
key="asset.lastmodifiedcolumn"/></a></th>
                               <th><a href="javascript:sortBy('Asset', 
'number','<mm:write referid="parentchannel" />')" class="headerlink">
                                     <fmt:message 
key="asset.numbercolumn"/></a></th>
-                              <th>&nbsp;</th>
+        <th></th>
                            </tr>
-                        </thead>
+</thead>
 
 <script src="../repository/asset.js" language="JavaScript" 
type="text/javascript"></script>
 
-                        <tbody class="hover">
-                           <mm:listnodes referid="elements" jspvar="node">
-                              <mm:field name="number" write="false" 
id="number" vartype="String"/>
-                              <mm:field name="number" write="false" 
id="relnumber"/>
+<tbody class="hover">
+<mm:listnodes referid="elements" jspvar="node">
+<mm:field name="number" write="false" id="number" vartype="String"/>
+<mm:field name="number" write="false" id="relnumber"/>
 
-                              <mm:url page="../WizardInitAction.do" id="url" 
write="false">
+<mm:url page="../WizardInitAction.do" id="url" write="false">
                                  <mm:param name="objectnumber" 
value="$number"/>
                                  <mm:param name="returnurl" 
value="$returnurl"/>
-                              </mm:url>
-                              <tr <mm:even 
inverse="true">class="swap"</mm:even> href="<mm:write referid="url"/>">
+</mm:url>
+<tr   <mm:even inverse="true">class="swap"</mm:even> href="<mm:write 
referid="url"/>">
                               <td style="white-space: nowrap;">
                                  <% if (role != null && 
SecurityUtil.isWriter(role)) { %>
                                     <c:if test="${fn:length(elements) >1}">
                                        <input type="checkbox"  
name="chk_<mm:field name="number" />" value="<mm:field name="number" />" 
onClick="document.forms['contentForm'].elements.selectall.checked=false;"/>
                                     </c:if>
                                  <% } %>
-                                 <%@ include file="icons.jspf"%>
-                              </td>
-                              <td onMouseDown="objClick(this);">
-                                 <mm:nodeinfo type="guitype"/></td>
-                              <td onMouseDown="objClick(this);">
+     <a href="javascript:callEditWizard('<mm:field name="number" />');"
+       title="<fmt:message key="asset.edit" />"><img 
src="../gfx/icons/edit.png" width="16" height="16"
+                                                       title="<fmt:message 
key="asset.edit" />"
+                                                       alt="<fmt:message 
key="asset.edit" />"/></a>
+    <a href="<cmsc:contenturl number="${number}"/>" target="_blank"><img 
src="../gfx/icons/preview.png"
+                                                                         
alt="<fmt:message key="asset.preview.title" />"
+                                                                         
title="<fmt:message key="asset.preview.title" />"/></a>
+    <a href="javascript:showInfo('<mm:nodeinfo type="guitype"/>', '<mm:field 
name="number" />');">
+                              <img src="../gfx/icons/info.png" 
title="<fmt:message key="asset.info"/>" alt="<fmt:message 
key="asset.info"/>"/></a>
+    <mm:haspage page="/editors/versioning">
+        <c:url value="/editors/versioning/ShowVersions.do" var="showVersions">
+            <c:param name="nodenumber"><mm:field name="number"/></c:param>
+        </c:url>
+        <a href="#" onclick="openPopupWindow('versioning', 750, 550, 
'${showVersions}')"><img
+                src="../gfx/icons/versioning.png" title="<fmt:message 
key="asset.icon.versioning.title" />"
+                alt="<fmt:message key="asset.icon.versioning.title" />"/></a>
+    </mm:haspage>
+    <% if (role != null && SecurityUtil.isWriter(role)) { %>
+    <a href="javascript:unpublish('<mm:write referid="parentchannel" 
/>','<mm:field name="number" />');"
+       title="<fmt:message key="asset.delete" />"><img 
src="../gfx/icons/delete.png" width="16" height="16"
+                                                         title="<fmt:message 
key="asset.delete" />"
+                                                         alt="<fmt:message 
key="asset.delete" />"/></a>
+    <% } %>
+
+    <cmsc:hasfeature name="savedformmodule">
+        <c:set var="typeval">
+            <mm:nodeinfo type="type"/>
+        </c:set>
+        <c:if test="${typeval == 'responseform'}">
+            <mm:url page="/editors/savedform/ShowSavedForm.do" 
id="showSavedForms" write="false">
+                <mm:param name="nodenumber"><mm:field 
name="number"/></mm:param>
+                <mm:param name="initreturnurl" value="${returnurl}"/>
+            </mm:url>
+            <a href="<mm:write referid="showSavedForms"/>"><img 
src="../gfx/icons/application_form_magnify.png"
+                                                                
title="<fmt:message key="asset.icon.savedform.title" />"
+                                                                
alt="<fmt:message key="asset.icon.savedform.title" />"/></a>
+        </c:if>
+    </cmsc:hasfeature>
+</td>
+<td onMouseDown="objClick(this);">
+    <mm:nodeinfo type="guitype"/>
+</td>
+<td onMouseDown="objClick(this);">
                                  <mm:field id="title" write="false" 
name="title"/>
                                  <c:if test="${fn:length(title) > 50}">
                                     <c:set 
var="title">${fn:substring(title,0,49)}...</c:set>
-                                 </c:if>${title}</td>
-                              <td onMouseDown="objClick(this);" 
style="white-space: nowrap;">
+    </c:if>
+        ${title}
+</td>
+<td onMouseDown="objClick(this);" style="white-space: nowrap;">
                                  <mm:field name="lastmodifier" 
id="lastmodifier" write="false"/>
                                  <mm:listnodes type="user" 
constraints="username = '${lastmodifier}'">
                                     <c:set var="lastmodifierFull"><mm:field 
name="firstname"/> <mm:field name="prefix"/> <mm:field
                                     name="surname"/></c:set>
                                     <c:if test="${lastmodifierFull != 
''}"><c:set var="lastmodifier" value="${lastmodifierFull}"/></c:if>
                                  </mm:listnodes>
-                                 ${lastmodifier}</td>
-                              <td style="white-space: nowrap;"><mm:field 
name="lastmodifieddate"><cmsc:dateformat
+        ${lastmodifier}
+</td>
+<td style="white-space: nowrap;"><mm:field 
name="lastmodifieddate"><cmsc:dateformat
                                  displaytime="true"/></mm:field></td>
-                              <td><mm:field name="number"/></td>
-                              </td>
-                              <c:if test="${hasWorkflow}">
+<td><mm:field name="number"/></td>
+</td>
+<c:if test="${hasWorkflow}">
                                  <td width="10" onMouseDown="objClick(this);">
                                     <c:set var="status" value="waiting"/>
                                        <mm:relatednodes type="workflowitem" 
constraints="type='asset'">
@@ -188,85 +191,20 @@
                                     alt="<fmt:message key="asset.status" />: 
<fmt:message key="asset.status.${status}" />"
                                     title="<fmt:message key="asset.status" />: 
<fmt:message key="asset.status.${status}" />"/>
                                  </td>
-                              </c:if>
-                              </tr>
-                           </mm:listnodes>
-                        </tbody>
-                     </table>
-                     <% if (role != null && SecurityUtil.isWriter(role)) { %>
-                     <c:if test="${fn:length(elements) >1}">
-                        <input type="submit" class="button" 
value="<fmt:message key="asset.delete.massdelete" />"/>
-                     </c:if>
-                     <% } %>
-                  </form>
-                  <%@ include file="../pages.jsp" %>
-               </div>
-            </c:if>
-
-
-
-            <c:if test="${!empty show}">
-               <div class="body">
-                  <mm:import externid="elements" from="request" 
required="true"/>
-                  <mm:import externid="elementCount" from="request" 
vartype="Integer">0</mm:import>
-                  <mm:import externid="resultsPerPage" from="request" 
vartype="Integer">25</mm:import>
-                  <c:set var="listSize" value="${elementCount}"/>
-                  <c:set var="offset" value="${param.offset}"/>
-                  <c:set var="orderby" value="${param.orderby}" scope="page" />
-                  <c:set var="type" value="asset" scope="page" />
-                  <c:set var="extraparams" 
value="&direction=${param.direction}&parentchannel=${param.parentchannel}&show=0"/>
-                  <%@ include file="../pages.jsp" %>
-                  <form>
-                     <input type="hidden" name="offset" 
value="${param.offset}"/>
-                     <input type="hidden" name="orderby" value="${orderby}" />
-                     <input type="hidden" name="direction" 
value="${direction}"/>
-                     
-                     <div width="100%;float:left;">
-                        <mm:listnodes referid="elements">
-                           <div style="width:150px; 
height:150px;float:left;text-align:center;" 
onMouseOut="javascript:hideEditItems(<mm:field name='number'/>)" 
onMouseOver="showEditItems(<mm:field name='number'/>)"  >
-                              <div class="asset-info" id="asset-info-<mm:field 
name='number'/>" style="display: none; position: absolute; border-style: 
ridge;" >
-                                 <%@ include file="icons.jspf" %>
-                              </div>
-                              <div 
style="width:100%;height:100px;text-align:center;padding:10px;vertical-align:middle;">
-                                 <a href="javascript:showInfo(<mm:field 
name="number" />)">
-                                    <c:set var="type" ><mm:nodeinfo 
type="guitype"/></c:set>
-                                    <c:if test="${type eq 'Image'}">
-                                       <img src="<mm:image 
template="s(120x100)"/>" alt=""/>
-                                    </c:if>
-                                    <c:if test="${type eq 'Attachment'}">
-                                       <img src="../gfx/alert_green_left.gif" 
alt=""/>change
-                                    </c:if>
-                                     <c:if test="${type eq 'URL'}">
-                                       need to add
-                                    </c:if>
-                                    
-                                 </a>
-                              </div>
-                              <div 
style="width:130px;text-align:center;margin:0px 10px 0px 
10px;overflow-x:hidden;">
-                                 <c:set var="type" ><mm:nodeinfo 
type="guitype"/></c:set>
-                                 <c:if test="${type eq 'Image'}">
-                                    <mm:field name="title"/><br/><mm:field 
name="itype"/>
-                                 </c:if>
-                                 <c:if test="${type eq 'Attachment'}">
-                                    need to change
-                                 </c:if>
-                                  <c:if test="${type eq 'URL'}">
-                                    need to add
-                                 </c:if>
-                              </div>
-                           </div>
-                        </mm:listnodes>
-                        <div style="clear:both;"></div>
-                     <div>
-                  </form>
-                  <%@ include file="../pages.jsp" %>
-               </div>
-            </c:if>
-         </mm:node>
-         </div>
-
-
-    
-      </html:html>
-   </mm:cloud>
+</c:if>
+</tr>
+</mm:listnodes>
+</tbody>
+</table>
+<% if (role != null && SecurityUtil.isWriter(role)) { %>
+<c:if test="${fn:length(elements) >1}">
+<input type="submit" class="button" value="<fmt:message 
key="asset.delete.massdelete" />"/>
+</c:if>
+<% } %>
+</form>
+<%@ include file="../pages.jsp" %>
+</div>
+</div>
+</mm:node>
+</mm:cloud>
 </mm:content>
\ No newline at end of file


Index: assetupload.jsp
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/assetupload.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- assetupload.jsp     3 Nov 2008 02:37:39 -0000       1.2
+++ assetupload.jsp     7 Nov 2008 02:54:48 -0000       1.3
@@ -2,51 +2,45 @@
 <script src="../repository/search.js" type="text/javascript"></script>
 <script type="text/javascript">
        function upload() {
-           var f=document.forms[0];
-           f.submit();
+           
if(document.getElementById("atype").options[document.getElementById("atype").options.selectedIndex].value=="urls"){
+              document.getElementByName("uploadButton").disable=true;
+              alert("Only attachments and images can be uploaded!");
+               }
            setTimeout('sayWait();',0);
-   
        }
    
        function sayWait() {
            document.getElementById("busy").style.visibility="visible";
-           document.getElementById("notbusy").style.visibility="hidden";
+           //document.getElementById("notbusy").style.visibility="hidden";
        }
-   </script>
+</script>
 
-<form action="" enctype="multipart/form-data" method="post"><input
-       type="hidden" name="uploadAction" value="${param.uploadAction}" />
+<html:form action="/editors/repository/AssetUploadAction.do" 
enctype="multipart/form-data" method="post">
+<input type="hidden" id="assetType" name="assetType" value="attachments"/>
+<input type="hidden" id="parentchannel" name="parentchannel" 
value="${parentchannel}"/>
 <table border="0">
        <tr>
                <td><fmt:message key="asset.upload.explanation" /></td>
        </tr>
        <tr>
-               <td><input type="file" name="zipfile" /></td>
+      <td><html:file property="file" /></td>
        </tr>
        <tr>
-               <td><input type="button" name="uploadButton" onclick="upload();"
-                       value="<fmt:message key="assets.upload.submit" />" 
/></td>
+      <td><html:submit property="uploadButton" onclick="upload();">
+         <fmt:message key='assets.upload.submit' /></html:submit></td>
        </tr>
 </table>
-</form>
+</html:form>
 <div id="busy"><fmt:message key="uploading.message.wait" /><br />
 </div>
 <%
    // retrieve list op node id's from either the recent upload
    // or from the request url to enable a return url
-   // TODO move this to a struts action there are some issue with HttpUpload
    // in combination with struts which have to be investigated first
-
-   String assetType = "attachments";
-   //assetType = get value from the submitted form as the asset type
-   //if(assetType == null){
-      //assetType = "attachments";
-   //}
    String uploadedNodes = "";
    int numberOfUploadedNodes = -1;
    if ("post".equalsIgnoreCase(request.getMethod())) {
-      NodeManager manager = cloud.getNodeManager(assetType);
-      List<Integer> nodes = BulkUploadUtil.uploadAndStore(manager, request);
+      List<Integer> nodes = 
(ArrayList<Integer>)(request.getAttribute("uploadedAssets"));
       uploadedNodes = BulkUploadUtil.convertToCommaSeparated(nodes);
       numberOfUploadedNodes = nodes.size();
    } else {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to