From: <die...@us...> - 2010-06-17 10:30:25
|
Revision: 2652 http://openutils.svn.sourceforge.net/openutils/?rev=2652&view=rev Author: diego_schivo Date: 2010-06-17 10:30:19 +0000 (Thu, 17 Jun 2010) Log Message: ----------- MEDIA-152 batch-adding entries to a playlist Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/js/playlist-view.js trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.html trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.html trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistsBrowserPage.html Added Paths: ----------- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-mediaFolder.html Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.java 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.java 2010-06-17 10:30:19 UTC (rev 2652) @@ -34,6 +34,8 @@ private String cacheKiller = String.valueOf((new Date()).getTime()); + private String parentFrame; + private String sourceNode; private String action; @@ -67,6 +69,24 @@ } /** + * Returns the parentFrame. + * @return the parentFrame + */ + public String getParentFrame() + { + return parentFrame; + } + + /** + * Sets the parentFrame. + * @param parentFrame the parentFrame to set + */ + public void setParentFrame(String parentFrame) + { + this.parentFrame = parentFrame; + } + + /** * Returns the sourceNode. * @return the sourceNode */ Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java 2010-06-17 10:30:19 UTC (rev 2652) @@ -39,6 +39,8 @@ import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaTypeConfiguration; import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule; +import net.sourceforge.openutils.mgnlmedia.media.pages.MediaBean; +import net.sourceforge.openutils.mgnlmedia.media.pages.MediaBeanBuilder; import net.sourceforge.openutils.mgnlmedia.media.pages.MessagesTemplatedMVCHandler; import net.sourceforge.openutils.mgnlmedia.media.tags.el.MediaEl; import net.sourceforge.openutils.mgnlmedia.playlist.PlaylistConstants; @@ -79,6 +81,8 @@ private List<Content> mediaContentList; + private List<MediaBean> mediaBeans; + /** * */ @@ -302,6 +306,23 @@ return VIEW_XSPF; } + public String mediaFolder() + { + Content folder = ContentUtil.getContent(MediaModule.REPO, path); + if (folder != null) + { + Collection<Content> nodes = folder.getChildren(MediaConfigurationManager.MEDIA); + mediaBeans = new ArrayList<MediaBean>(nodes.size()); + for (Content node : nodes) + { + MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getMediaTypeConfigurationFromMedia(node); + MediaBean bean = new MediaBeanBuilder(mtc).apply(node); + mediaBeans.add(bean); + } + } + return "-mediaFolder"; + } + /** * Returns the locale. * @return the locale @@ -338,4 +359,12 @@ this.mediaContentList = mediaContentList; } + /** + * Returns the mediaBeans. + * @return the mediaBeans + */ + public List<MediaBean> getMediaBeans() + { + return mediaBeans; + } } Modified: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/js/playlist-view.js =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/js/playlist-view.js 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/js/playlist-view.js 2010-06-17 10:30:19 UTC (rev 2652) @@ -1,6 +1,6 @@ -var container, playlistView, grid; +var playlist, container, playlistView, grid; -function initPlaylistView(playlist){ +function initPlaylistView(){ container = parent.viewport.getComponent('center-panel'); var dataStore = new Ext.data.SimpleStore({ @@ -57,6 +57,15 @@ } }, { + text: playlist.msgs.addEntries, + icon: contextPath + '/.resources/media/icons/ico16-add.png', + iconCls: 'button-add', + handler: function(){ + var mgnlWin = parent.parent; + parent.openWindow(".magnolia/pages/mediaFolderSelection.html?parentFrame=playlistView&action=addEntries&mgnlCK=" + mgnlWin.mgnlGetCacheKiller()); + } + }, + { id: 'removeEntryBtn', text: playlist.msgs.removeEntry, icon: contextPath + '/.resources/media/icons/ico16-remove.png', @@ -262,3 +271,51 @@ playlistView.setWidth(container.body.getWidth(true)); grid.setHeight(container.body.getHeight(true) - 13); }; + +function performAction(action, sourceNode, destPath){ + Ext.MessageBox.show({ + title: 'Wait', + msg: 'Adding entries...', + progressText: 'Loading folder...', + width: 300, + progress: true, + closable: false + }); + Ext.Ajax.request({ + method: 'post', + url: contextPath + '/.magnolia/pages/playlistView.html', + params: { + command: 'mediaFolder', + path: destPath + }, + success: function(r){ + var items = Ext.decode(r.responseText).items; + var index = 0; + var addNextEntry = function(){ + if (index == items.length){ + Ext.MessageBox.updateProgress(1, 'All entries added!'); + Ext.MessageBox.hide.defer(1000, Ext.MessageBox); + } + else{ + Ext.Ajax.request({ + form: 'addEntryForm', + params: { + mgnlPath: playlist.handle, + media: items[index] + }, + success: function(){ + var p = (index + 1) / items.length; + Ext.MessageBox.updateProgress(p, parseInt(p * 100, 10) + '% completed'); + index++; + addNextEntry(); + } + }); + } + }; + addNextEntry(); + }, + failure: function(){ + // todo + } + }); +} Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages.properties 2010-06-17 10:30:19 UTC (rev 2652) @@ -109,6 +109,7 @@ tree.playlists.column=Playlists tree.playlists.xspf=xspf format playlist.entries.add=Add entry +playlist.entries.addMany=Add entries playlist.entries.remove=Remove entry playlist.media.edit=Edit media Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/lang/messages_it.properties 2010-06-17 10:30:19 UTC (rev 2652) @@ -112,6 +112,7 @@ tree.playlists.column=Playlists tree.playlists.xspf=Formato xspf playlist.entries.add=Aggiungi elemento +playlist.entries.addMany=Aggiungi elementi playlist.entries.remove=Rimuovi elemento playlist.media.edit=Modifica media Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.html =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.html 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderSelectionPage.html 2010-06-17 10:30:19 UTC (rev 2652) @@ -45,7 +45,7 @@ if (destPath == null || destPath.length == 0) { alert('${this.msgs.get('media.move.error.selectnode')}'); } else { - parent.frames['mediaFolderView'].performAction('${this.action}', '${this.sourceNode}', destPath); + parent.frames['${this.parentFrame!'mediaFolderView'}'].performAction('${this.action!''}', '${this.sourceNode!''}', destPath); parent.closeLayer(); } } Added: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-mediaFolder.html =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-mediaFolder.html (rev 0) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-mediaFolder.html 2010-06-17 10:30:19 UTC (rev 2652) @@ -0,0 +1,9 @@ +{ + success: true, + items: [ + [#list this.mediaBeans as bean] + '${bean.uuid!''}' + [#if bean_has_next],[/#if] + [/#list] + ] +} Property changes on: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-mediaFolder.html ___________________________________________________________________ Added: svn:mime-type + text/html Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.html =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.html 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.html 2010-06-17 10:30:19 UTC (rev 2652) @@ -14,7 +14,7 @@ var contextPath = '${this.request.contextPath}'; Ext.onReady(function(){ [#if this.playlist?exists] - initPlaylistView({ + playlist = { handle: '${this.playlist.handle}', title: '${(this.playlist.title!'')?js_string}', description: '${(this.playlist.description!'')?js_string}', @@ -34,10 +34,12 @@ ], msgs: { addEntry: '${this.msgs.get('playlist.entries.add')?js_string}', + addEntries: '${this.msgs.get('playlist.entries.addMany')?js_string}', removeEntry: '${this.msgs.get('playlist.entries.remove')?js_string}', editMedia: '${this.msgs.get('playlist.media.edit')?js_string}' } - }); + }; + initPlaylistView(); [/#if] }); //]]> Modified: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistsBrowserPage.html =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistsBrowserPage.html 2010-06-15 10:11:29 UTC (rev 2651) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistsBrowserPage.html 2010-06-17 10:30:19 UTC (rev 2652) @@ -96,6 +96,17 @@ } } +// resize dialog +function resizeTo(w, h) +{ + if (ulDialog) + { + ulDialog.setWidth(w); + ulDialog.setHeight(h); + ulDialog.center(); + } +} + // close dialog function closeLayer() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |