You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2009/10/22 07:05:29 UTC

svn commit: r828305 - in /roller/trunk/apps/weblogger: src/java/org/apache/roller/weblogger/ui/struts2/editor/ web/WEB-INF/classes/ web/WEB-INF/jsps/editor/

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>