Author: snoopdave
Date: Thu Oct 22 05:05:29 2009
New Revision: 828305

URL: http://svn.apache.org/viewvc?rev=828305&view=rev
Log:
To make room for a file update field 
(https://issues.apache.org/jira/browse/ROL-1838) in the Edit Media File page, 
I'm moving the "create weblog post" and "create weblog podcast post" action 
from the Media File Edit page to the Media File View page. In the Media File 
View page each Media File now has an add button, a YUI menu button that offers 
two options: create weblog post and create weblog podcast post.

Modified:
    
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
    
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
    
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
    roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileEdit.jsp
    roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileView.jsp

Modified: 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java?rev=828305&r1=828304&r2=828305&view=diff
==============================================================================
--- 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
 (original)
+++ 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java
 Thu Oct 22 05:05:29 2009
@@ -36,10 +36,10 @@
     // bean for managing form data
     private EntryBean bean = new EntryBean();
 
-    private String weblog = null;
-    private String enclosureUrl = null;
+    private String   weblog = null;
+    private String   type = null;
     private String[] selectedImages = null;
-    private String selectedImage = null;
+    private String   selectedImage = null;
     
 
     public EntryAddWithMediaFile() {
@@ -65,7 +65,7 @@
 
             StringBuilder sb = new StringBuilder();
 
-            if (selectedImages != null) {
+            if ("weblog".equals(type) && selectedImages != null) {
 
                 for (int i=0; i<selectedImages.length; i++) {
                     MediaFile mediaFile = 
manager.getMediaFile(selectedImages[i]);
@@ -73,14 +73,14 @@
 
                     if (mediaFile.isImageFile()) {
                         link = "<p>" + mediaFile.getName() + "</p>";
-                        link += "<a href='<url>'><img src='<url>?t=true' 
alt='<name>' width='<width>' height='<height>'></img></a>";
-                        link = link.replace("<url>", 
getMediaFileURL(mediaFile))
+                        link += "<a href='<url>'><img src='<url>' alt='<name>' 
width='<width>' height='<height>'></img></a>";
+                        link = link.replace("<url>", 
mediaFile.getThumbnailURL())
                                    .replace("<name>", mediaFile.getName())
                                    .replace("<width>", 
""+mediaFile.getThumbnailWidth())
                                    .replace("<height>", 
""+mediaFile.getThumbnailHeight());
                     } else {
                         link = "<a href='<url>'><name></a> (<size> bytes, 
<type>)";
-                        link = link.replace("<url>", 
getMediaFileURL(mediaFile))
+                        link = link.replace("<url>", mediaFile.getPermalink())
                                    .replace("<name>", mediaFile.getName())
                                    .replace("<size>",""+mediaFile.getLength())
                                    
.replace("<type>",mediaFile.getContentType());
@@ -89,14 +89,15 @@
                 }
             }
 
-            if (StringUtils.isNotEmpty(enclosureUrl)) {
+            else if ("podcast".equals(type) && 
StringUtils.isNotEmpty(selectedImage)) {
+                MediaFile podcastFile = manager.getMediaFile(selectedImage);
                 sb.append("<p>")
                   .append(getText("mediaFileEdit.includesEnclosure"))
                   .append("<br />")
                   .append("<a href=''>")
-                  .append(enclosureUrl)
+                  .append(podcastFile.getPermalink())
                   .append("</a></p>");
-                bean.setEnclosureURL(enclosureUrl);
+                bean.setEnclosureURL(podcastFile.getPermalink());
             }
 
             bean.setText(sb.toString());
@@ -130,17 +131,17 @@
     }
 
     /**
-     * @return the enclosureUrl
+     * @return the type
      */
-    public String getEnclosureUrl() {
-        return enclosureUrl;
+    public String getType() {
+        return type;
     }
 
     /**
-     * @param enclosureUrl the enclosureUrl to set
+     * @param type the enclosureUrl to set
      */
-    public void setEnclosureUrl(String enclosureUrl) {
-        this.enclosureUrl = enclosureUrl;
+    public void setType(String type) {
+        this.type = type;
     }
 
     /**

Modified: 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java?rev=828305&r1=828304&r2=828305&view=diff
==============================================================================
--- 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
 (original)
+++ 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java
 Thu Oct 22 05:05:29 2009
@@ -185,13 +185,6 @@
         }
     }
 
-    /**
-     * Constructs the external URL for a given media file
-     */
-    protected String getMediaFileURL(MediaFile mediaFile) {
-        return mediaFile.getWeblog().getAbsoluteURL() + "/mediaresource/" + 
mediaFile.getId();
-    }
-
     public String[] getSelectedMediaFiles() {
         return selectedMediaFiles;
     }

Modified: 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?rev=828305&r1=828304&r2=828305&view=diff
==============================================================================
--- 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
(original)
+++ 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
Thu Oct 22 05:05:29 2009
@@ -1043,14 +1043,8 @@
 mediaFileEdit.includeGalleryHelp=Check this box if you would like this media \
 file included in the new media file RSS and Atom feeds for your weblog.
 
-mediaFileEdit.createWeblogPost=Create Weblog Post
-mediaFileEdit.createWeblogPostTip=Create a new weblog post with this file \
-included as an image.
-
-mediaFileEdit.createPodcastPost=Create Podcast Post
-mediaFileEdit.createPodcastPostTip=Create a new weblog post with this file \
-included as a podcast, an enclosure that is included in your RSS/Atom feeds \
-and automatically downloaded by feed readers and podcast clients (e.g. iTunes).
+mediaFile.createWeblogPost=Post in weblog
+mediaFile.createPodcastPost=Post in weblog as podcast
 
 mediaFileEdit.includesEnclosure=This weblog entry includes the following media 
file enclosure:
 

Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileEdit.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileEdit.jsp?rev=828305&r1=828304&r2=828305&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileEdit.jsp 
(original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileEdit.jsp Thu 
Oct 22 05:05:29 2009
@@ -131,20 +131,3 @@
 </s:form>
 
 
-<%-- Create Weblog Entry and Create Podcast Entry links --%>
-<br />
-
-<p>
-<a href='#' 
onclick='javascript:window.parent.onCreateWeblogPost($("#mediaFileId").get(0).value)'>
-    <s:text name="mediaFileEdit.createWeblogPost" />
-</a><br />
-<s:text name="mediaFileEdit.createWeblogPostTip" />
-</p>
-
-<p>
-<a href='#' 
onclick='javascript:window.parent.onCreatePodcastPost($("#entry_bean_permalink").get(0).value)'>
-    <s:text name="mediaFileEdit.createPodcastPost" />
-</a><br />
-<s:text name="mediaFileEdit.createPodcastPostTip" /><br />
-</p>
-

Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileView.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileView.jsp?rev=828305&r1=828304&r2=828305&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileView.jsp 
(original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/MediaFileView.jsp Thu 
Oct 22 05:05:29 2009
@@ -19,7 +19,6 @@
 
 <link rel="stylesheet" type="text/css" href="<s:url 
value='/roller-ui/yui/assets/skins/sam/container.css'/>" />
 <link rel="stylesheet" type="text/css" href="<s:url 
value='/roller-ui/yui/menu/assets/skins/sam/menu.css'/>" />
-<link rel="stylesheet" type="text/css" href="<s:url 
value='/roller-ui/yui/button/assets/skins/sam/button.css'/>" />
 
 <script type="text/javascript" src="<s:url 
value='/roller-ui/yui/yahoo-dom-event/yahoo-dom-event.js'/>"></script>
 <script type="text/javascript" src="<s:url 
value='/roller-ui/yui/container/container-min.js'/>"></script>
@@ -47,6 +46,23 @@
     #myMenu {
         margin-left: 0;
     }
+    span.button {
+        height:15px;
+        width:15px;
+        float:right;
+    }
+    .yui-button button {
+        border-style: none;
+        background-color:transparent;
+        *overflow:visible;
+        cursor:pointer;
+    }
+    .yui-menu-button button {
+        width:15px; height: 15px;
+        background-repeat: no-repeat;
+        background-position: center;
+        background-image: url(<s:url value="/images/add.png"/>);
+    }
 </style>
 
 
@@ -75,8 +91,41 @@
         }
     }
 
+    var menuButtons = {};
+
+    function setupMenuButton(id) {
+        if (!menuButtons[id]) {
+            var mediaFileMenu = [
+                { text: "<s:text name='mediaFile.createWeblogPost' />", value: 
1, onclick: { fn: onCreateWeblogPost, obj:id } },
+                { text: "<s:text name='mediaFile.createPodcastPost' />", 
value: 2, onclick: { fn: onCreatePodcastPost, obj:id } }
+            ];
+            menuButtons[id] = new YAHOO.widget.Button({
+                type: "menu", label: "", name: id,
+                menu: mediaFileMenu, container: 'addbutton-' + id });
+            $('#addbutton-img' + id).hide();
+        }
+    }
+
+    function onCreateWeblogPost(p_sType, p_aArgs, id) {
+        $("#selectedImage").get(0).value = id;
+        $("#type").get(0).value = 'weblog';
+        $("#createPostForm").get(0).submit();
+    }
+
+    function onCreatePodcastPost(p_sType, p_aArgs, id) {
+        $("#selectedImage").get(0).value = id;
+        $("#type").get(0).value = 'podcast';
+        $("#createPostForm").get(0).submit();
+    }
+
 </script>
 
+<s:form id="createPostForm" action='entryAddWithMediaFile'>
+    <input type="hidden" name="weblog" value='<s:property 
value="actionWeblog.handle" />' />
+    <input type="hidden" name="selectedImage" id="selectedImage" />
+    <input type="hidden" name="type" id="type" />
+</s:form>
+
 
 <%-- ********************************************************************* --%>
 
@@ -164,7 +213,7 @@
                 <s:param name="weblog" value="%{actionWeblog.handle}" />
             </s:url>
             <s:a href="%{getDirectoryByPathUrl}"><s:property 
value="#directory.value" /></s:a> /
-            
+
         </s:iterator>
     </p>
     <p class="pagetip">
@@ -241,12 +290,12 @@
                                   onclick="onSelectDirectory('<s:property 
value="#directory.id"/>')"/>
                         </div>
                         <div class="mediaObjectInfo">
-                            <label><s:property value="#directory.name" 
/></label>
-                                <input type="checkbox" style="float:right"
-                                       name="selectedMediaFileDirectories"
-                                       value="<s:property 
value="#directory.id"/>"/>
-                                <inut type="hidden" id="mediadiridentity"
-                                       value="<s:property 
value='#directory.id'/>">
+                            <input type="checkbox"
+                                   name="selectedMediaFileDirectories"
+                                   value="<s:property 
value="#directory.id"/>"/>
+                            <inut type="hidden" id="mediadiridentity"
+                                   value="<s:property value='#directory.id'/>">
+                            <s:property value="#directory.name" />
                         </div>
                     </li>
                 </s:iterator>
@@ -275,20 +324,25 @@
 
                         </div>
 
-                        <div class="mediaObjectInfo">
+                        <div class="mediaObjectInfo"
+                             onmouseover='setupMenuButton("<s:property 
value='#mediaFile.id' />")'>
 
-                            <label class="mediaFile">
-                                <str:truncateNicely lower="40" upper="50">
-                                    <s:property value="#mediaFile.name" />
-                                </str:truncateNicely>
-                                <input type="checkbox" style="float:right"
-                                       name="selectedMediaFiles"
-                                       value="<s:property 
value="#mediaFile.id"/>"/>
-                                <inut type="hidden" id="mediafileidentity"
-                                       value="<s:property 
value='#mediaFile.id'/>">
-                            </label>
+                            <input type="checkbox"
+                                   name="selectedMediaFiles"
+                                   value="<s:property value="#mediaFile.id"/>" 
/>
+                            <input type="hidden" id="mediafileidentity"
+                                   value="<s:property value='#mediaFile.id'/>" 
/>
+
+                            <str:truncateNicely lower="40" upper="50">
+                                <s:property value="#mediaFile.name" />
+                            </str:truncateNicely>
+
+                            <span class="button" id="addbutton-<s:property 
value='#mediaFile.id' />">
+                                <img id="addbutton-img<s:property 
value='#mediaFile.id' />"
+                                     src="<s:url value="/images/add.png"/>" />
+                            </span>
 
-                        </div>
+                       </div>
 
                     </li>
 
@@ -324,19 +378,23 @@
 
                         </div>
 
-                        <div class="mediaObjectInfo">
+                        <div class="mediaObjectInfo"
+                             onmouseover='setupMenuButton("<s:property 
value='#mediaFile.id' />")'>
 
-                            <label>
-                                <str:truncateNicely lower="40" upper="50">
-                                    <s:property value="#mediaFile.name" />
-                                </str:truncateNicely>
-                                <input type="checkbox" style="float:right"
+                                <input type="checkbox"
                                        name="selectedMediaFiles"
                                        value="<s:property 
value="#mediaFile.id"/>"/>
                                 <inut type="hidden" id="mediafileidentity"
                                        value="<s:property 
value='#mediaFile.id'/>">
-                            </label>
 
+                                <str:truncateNicely lower="40" upper="50">
+                                    <s:property value="#mediaFile.name" />
+                                </str:truncateNicely>
+
+                                <span class="button" id="addbutton-<s:property 
value='#mediaFile.id' />">
+                                    <img id="addbutton-img<s:property 
value='#mediaFile.id' />"
+                                         src="<s:url 
value="/images/add.png"/>" />
+                                </span>
 
                         </div>
 
@@ -371,32 +429,6 @@
 </s:if>
 
 
-
-<%-- ***************************************************************** --%>
-
-<%-- code to create new weblog post when Media File Edit lightbox requests it 
--%>
-
-<script type="text/javascript">
-
-    function onCreateWeblogPost(mediaFileId) {
-        $("#selectedImage").get(0).value = mediaFileId;
-        $("#createPostForm").get(0).submit();
-    }
-
-    function onCreatePodcastPost(enclosureURL) {
-        $("#enclosureUrl").get(0).value = enclosureURL;
-        $("#createPostForm").get(0).submit();
-    }
-
-</script>
-
-<s:form id="createPostForm" action='entryAddWithMediaFile'>
-    <input type="hidden" name="weblog" value='<s:property 
value="actionWeblog.handle" />' />
-    <input type="hidden" name="selectedImage" id="selectedImage" />
-    <input type="hidden" name="enclosureUrl" id="enclosureUrl" />
-</s:form>
-
-
 <%-- ***************************************************************** --%>
 
 <%-- code to toggle buttons on/off as media file/directory selections change 
--%>
@@ -475,4 +507,4 @@
         </iframe>
     </div>
     <div class="ft"></div>
-</div> 
+</div>


Reply via email to