Index: lams_central/src/java/org/lamsfoundation/lams/webservice/GetRecordingServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/GetRecordingServlet.java,v diff -u -r1.1 -r1.2 --- lams_central/src/java/org/lamsfoundation/lams/webservice/GetRecordingServlet.java 19 Feb 2009 05:36:36 -0000 1.1 +++ lams_central/src/java/org/lamsfoundation/lams/webservice/GetRecordingServlet.java 19 Mar 2009 06:35:47 -0000 1.2 @@ -28,12 +28,13 @@ import java.util.HashMap; import javax.servlet.ServletException; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.util.ExternalServerUtil; +import org.lamsfoundation.lams.util.HttpUrlConnectionUtil; import org.lamsfoundation.lams.util.WebUtil; /** @@ -51,15 +52,28 @@ try { String urlStr = WebUtil.readStrParam(request, "urlStr"); - //HashMap params = (HashMap)request.getAttribute("params"); String filename = WebUtil.readStrParam(request, "filename"); String dir = WebUtil.readStrParam(request, "dir"); - InputStream is = ExternalServerUtil.getResponseInputStreamFromExternalServer(urlStr, new HashMap()); - File file = ExternalServerUtil.writeFileAndDir(is, filename, dir); + String absoluteFilePath = dir + filename; - logger.debug("file copy complete"); + File newPath = new File(dir); + newPath.mkdirs(); + File newFile = new File(absoluteFilePath); + newFile.createNewFile(); + + // get the stream from the external server + int success = HttpUrlConnectionUtil.writeResponseToFile(urlStr, dir, filename, new Cookie[0]); + + // if success + if(success == 1){ + // add the filename to the list + logger.debug("file copy complete"); + }else{ + logger.debug("file copy failed"); + } + } catch (Exception e) { logger.error(e.getMessage()); } Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/AC_OETags.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/VideoRecorderFCKEditor.html'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_central/web/fckeditor/editor/plugins/videorecorder/VideoRecorderFCKEditor.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/fckeditor/editor/plugins/videorecorder/Attic/VideoRecorderFCKEditor.jsp,v diff -u -r1.1 -r1.2 --- lams_central/web/fckeditor/editor/plugins/videorecorder/VideoRecorderFCKEditor.jsp 19 Feb 2009 05:36:34 -0000 1.1 +++ lams_central/web/fckeditor/editor/plugins/videorecorder/VideoRecorderFCKEditor.jsp 19 Mar 2009 06:35:46 -0000 1.2 @@ -21,7 +21,7 @@ - + @@ -67,7 +67,7 @@ function getLanguageXML(){ var languageCollection = new Array('videorecorder_video_player', 'videorecorder_video_recorder', - 'videorecorder_web_application_not_available', 'videorecorder_net_connection_not_connected', + 'videorecorder_web_application_not_available', 'videorecorder_net_connection_not_connected', 'videorecorder_buffering', 'videorecorder_net_connection_closed', 'videorecorder_playing', 'videorecorder_ready', 'videorecorder_recording', 'videorecorder_paused', 'videorecorder_waiting', 'videorecorder_description', 'videorecorder_title', 'videorecorder_new_recording_details', 'videorecorder_recording_complete_authoring', @@ -147,7 +147,7 @@ var MMdoctitle = document.title; AC_FL_RunContent( - "src", "playerProductInstall", + "src", "/includes/flash/playerProductInstall", "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"", "width", "361", "height", "331", Index: lams_central/web/fckeditor/editor/plugins/videorecorder/VideoRecorderFCKEditor.swf =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/fckeditor/editor/plugins/videorecorder/Attic/VideoRecorderFCKEditor.swf,v diff -u -r1.2 -r1.3 Binary files differ Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/assets/styles/main.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/history/history.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/history/history.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_central/web/fckeditor/editor/plugins/videorecorder/history/historyFrame.html'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_central/web/images/ajax-loader-big.gif =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/images/ajax-loader-big.gif,v diff -u Binary files differ Index: lams_central/web/images/ajax-loader-big.swf =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/images/Attic/ajax-loader-big.swf,v diff -u Binary files differ Index: lams_central/web/images/ajax-loader-snake.gif =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/images/Attic/ajax-loader-snake.gif,v diff -u Binary files differ Index: lams_central/web/images/ajax-loader.gif =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/images/ajax-loader.gif,v diff -u Binary files differ Index: lams_flash/src/central/flex/VideoRecorder/src/AddCommentPopUp.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorder/src/AddCommentPopUp.mxml,v diff -u -r1.2 -r1.3 --- lams_flash/src/central/flex/VideoRecorder/src/AddCommentPopUp.mxml 19 Feb 2009 05:36:32 -0000 1.2 +++ lams_flash/src/central/flex/VideoRecorder/src/AddCommentPopUp.mxml 19 Mar 2009 06:35:45 -0000 1.3 @@ -24,7 +24,7 @@ ]]> - + Index: lams_flash/src/central/flex/VideoRecorder/src/GetRecordingDetailsPopUp.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorder/src/GetRecordingDetailsPopUp.mxml,v diff -u -r1.3 -r1.4 --- lams_flash/src/central/flex/VideoRecorder/src/GetRecordingDetailsPopUp.mxml 19 Feb 2009 05:36:32 -0000 1.3 +++ lams_flash/src/central/flex/VideoRecorder/src/GetRecordingDetailsPopUp.mxml 19 Mar 2009 06:35:45 -0000 1.4 @@ -36,8 +36,8 @@ - - + + Index: lams_flash/src/central/flex/VideoRecorder/src/HTTPServices.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorder/src/HTTPServices.as,v diff -u -r1.2 -r1.3 Binary files differ Index: lams_flash/src/central/flex/VideoRecorder/src/VideoProfile.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorder/src/VideoProfile.mxml,v diff -u -r1.2 -r1.3 --- lams_flash/src/central/flex/VideoRecorder/src/VideoProfile.mxml 19 Feb 2009 05:36:32 -0000 1.2 +++ lams_flash/src/central/flex/VideoRecorder/src/VideoProfile.mxml 19 Mar 2009 06:35:45 -0000 1.3 @@ -1,48 +1,76 @@ - + - + - - - - + + + + + + + + + + + + + + + + - - + Index: lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml,v diff -u -r1.3 -r1.4 --- lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml 19 Feb 2009 05:36:32 -0000 1.3 +++ lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml 19 Mar 2009 06:35:45 -0000 1.4 @@ -3,12 +3,15 @@ - - - + + - + - + Index: lams_flash/src/central/flex/VideoRecorderFCKEditor/src/GetRecordingDetailsPopUp.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorderFCKEditor/src/GetRecordingDetailsPopUp.mxml,v diff -u -r1.1 -r1.2 --- lams_flash/src/central/flex/VideoRecorderFCKEditor/src/GetRecordingDetailsPopUp.mxml 19 Feb 2009 05:36:32 -0000 1.1 +++ lams_flash/src/central/flex/VideoRecorderFCKEditor/src/GetRecordingDetailsPopUp.mxml 19 Mar 2009 06:35:44 -0000 1.2 @@ -1,26 +1,34 @@ - + - - + + - + Index: lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoControlBar.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoControlBar.mxml,v diff -u -r1.2 -r1.3 --- lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoControlBar.mxml 19 Feb 2009 05:36:32 -0000 1.2 +++ lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoControlBar.mxml 19 Mar 2009 06:35:44 -0000 1.3 @@ -1,8 +1,9 @@ - + - - + \ No newline at end of file Index: lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml,v diff -u -r1.2 -r1.3 --- lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml 19 Feb 2009 05:36:32 -0000 1.2 +++ lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml 19 Mar 2009 06:35:44 -0000 1.3 @@ -54,11 +54,11 @@ private static var toolServletLocation:String = "tool/lavidr10/videoRecorderActions.do"; private static var saveToLamsServletLocation:String = "GetRecording"; - // embeds - [Embed(source="./assets/images/playIcon.swf")] [Bindable] private var playIcon:Class; - [Embed(source="./assets/images/pauseIcon.swf")] [Bindable] private var pauseIcon:Class; - [Embed(source="./assets/images/recordIcon.swf")] [Bindable] private var recordIcon:Class; - [Embed(source="./assets/images/okIcon.swf")] [Bindable] private var saveIcon:Class; + // icon embeds + [Embed(source="../../../../../../lams_central/web/images/icons/control_play.png")] [Bindable] private var playIcon:Class; + [Embed(source="../../../../../../lams_central/web/images/icons/control_pause.png")] [Bindable] private var pauseIcon:Class; + [Embed(source="../../../../../../lams_central/web/images/icons/control_record.png")] [Bindable] private var recordIcon:Class; + [Embed(source="../../../../../../lams_central/web/images/icons/accept.png")] [Bindable] private var saveIcon:Class; // called first of all, before any components are initialized private function onPreinitialize(event:Event):void{ @@ -108,7 +108,7 @@ // init buttons states videoControlBar.playButton.enabled = false; - videoControlBar.seekSlider.enabled = false; + videoControlBar.seekSlider.enable(false); videoControlBar.saveAndCloseButton.enabled = false; // add listeners @@ -148,7 +148,6 @@ case "playerModeOffline":{ var nc:NetConnection = new NetConnection(); nc.connect(null); - videoDisplay.bufferTime = 0; videoDisplay.setNetConnection(nc); videoDisplay.makeReadyVideo(filename); break; @@ -166,7 +165,6 @@ mic = VideoDisplayUtil.setupMic(); videoDisplay.attachCamera(cam); videoDisplay.attachMic(mic); - videoDisplay.bufferTime = 2; createConnection(); break; } @@ -183,7 +181,6 @@ mic = VideoDisplayUtil.setupMic(); videoDisplay.attachCamera(cam); videoDisplay.attachMic(mic); - videoDisplay.bufferTime = 2; createConnection(); break; @@ -216,13 +213,14 @@ videoDisplay.addEventListener(VideoDisplayEvent.COMPLETE, onComplete); videoDisplay.addEventListener(VideoDisplayEvent.STARTPUBLISH, onStartPublish); videoDisplay.addEventListener(VideoDisplayEvent.STOPPUBLISH, onStopPublish); + videoDisplay.addEventListener(VideoDisplayEvent.PAUSESEEK, onPauseSeek); + videoDisplay.addEventListener(VideoDisplayEvent.READYSEEK, onReadySeek); videoControlBar.playButton.addEventListener(MouseEvent.CLICK, playClick); - videoControlBar.seekSlider.addEventListener(SliderEvent.CHANGE, seekSliderChange); - videoControlBar.seekSlider.addEventListener(SliderEvent.THUMB_PRESS, seekSliderClick); - videoControlBar.seekSlider.addEventListener(SliderEvent.THUMB_RELEASE, seekSliderClick); - videoControlBar.seekSlider.dataTipFormatFunction = VideoDisplayUtil.secondsToString; + videoControlBar.seekSlider.addEventListener(SliderEvent.THUMB_PRESS, onSeekPress); + videoControlBar.seekSlider.addEventListener(SliderEvent.THUMB_RELEASE, onSeekRelease); + switch(mode){ case "recorderModeFCK":{ videoControlBar.recordButton.addEventListener(MouseEvent.CLICK, recordClick); @@ -356,10 +354,7 @@ videoDisplay.makeReadyVideo(filename); // update tooltip - videoControlBar.recordButton.toolTip = dictionary.getLabel("videorecorder.tooltip.start.recording.next"); - - // change the panel status - videoDisplayPanel.status = dictionary.getLabel("videorecorder.ready"); + videoControlBar.recordButton.toolTip = dictionary.getLabel("videorecorder.tooltip.start.recording.again"); } } @@ -391,10 +386,10 @@ trace("securityErrorHandler: " + event); } - // ugly onBW callback - NetConnection.prototype.onBWDone = function(infoObject) { + // bw detection handler + public function onBWDone(infoObject:Object):void { // print its properties - VideoDisplayUtil.printInfoObject("onBWDone", infoObject) + trace(VideoDisplayUtil.printInfoObject(infoObject, "onBWDone")); } // play button click handler @@ -447,18 +442,15 @@ // onMetaData callback, called from videoDisplay private function onMetaData(event:VideoDisplayEvent):void{ videoDisplayPanel.status = dictionary.getLabel("videorecorder.buffering"); - videoControlBar.seekSlider.minimum = 0; - videoControlBar.seekSlider.maximum = event.metadata.duration; - - playTimer = new Timer(10); - playTimer.addEventListener(TimerEvent.TIMER, updateSeekSlider); - playTimer.start(); + videoControlBar.seekSlider.setMiniMaxValues(0, event.metadata.duration); + videoControlBar.seekSlider.setValue(0); + videoControlBar.seekSlider.startTimerLabel(); } // onReady callback, called from videoDisplay private function onReady(event:VideoDisplayEvent):void{ videoControlBar.playButton.enabled = true; - videoControlBar.seekSlider.enabled = true; + videoControlBar.seekSlider.enable(true); videoControlBar.playButton.setStyle("icon", playIcon); videoControlBar.playButton.toolTip = dictionary.getLabel("videorecorder.tooltip.play"); videoDisplayPanel.status = dictionary.getLabel("videorecorder.ready"); @@ -494,17 +486,18 @@ videoControlBar.playButton.enabled = false; videoControlBar.playButton.toolTip = dictionary.getLabelAndConcatenate("videorecorder.tooltip.play", [" (", dictionary.getLabel("videorecorder.disabled"), ")"]); - videoControlBar.seekSlider.enabled = false; - videoControlBar.seekSlider.minimum = 0; - videoControlBar.seekSlider.maximum = 0; - videoControlBar.seekSlider.value = videoControlBar.seekSlider.minimum; + // reset the seek slider timer + videoControlBar.seekSlider.resetTimerLabel(); + videoControlBar.seekSlider.setMiniMaxValues(0, 0); + videoControlBar.seekSlider.setValue(0); + videoControlBar.seekSlider.enable(false); videoControlBar.recordButton.toolTip = dictionary.getLabel("videorecorder.tooltip.stop.recording"); videoDisplayPanel.status = dictionary.getLabel("videorecorder.recording"); recTimer = new Timer(250); - recTimer.addEventListener(TimerEvent.TIMER, updateTimerLabelForRecording); + recTimer.addEventListener(TimerEvent.TIMER, videoControlBar.seekSlider.updateTimerLabelForRecording); recTimer.start(); } @@ -541,49 +534,33 @@ recTimer.stop(); } - // update method called from a timer (launched when metadata is received) - private function updateSeekSlider(event:TimerEvent):void{ - // if the video isn't actually playing yet - if(videoDisplay.playMode == videoDisplay.INIT_MODE || videoDisplay. playMode == videoDisplay.READY_MODE){ - videoControlBar.seekSlider.value = 0; - videoControlBar.timerLabel.text = "0:00" + " / " + VideoDisplayUtil.secondsToString(String(videoDisplay.duration)); - } - // otherwise, if it is playing - else if(videoDisplay.playMode == videoDisplay.PLAY_MODE || videoDisplay.playMode == videoDisplay.PAUSE_MODE){ - videoControlBar.seekSlider.value = videoDisplay.time; - videoControlBar.timerLabel.text = VideoDisplayUtil.secondsToString(String(videoDisplay.time)) + " / " + VideoDisplayUtil.secondsToString(String(videoDisplay.duration)); - } + // onSeekPress callback, called from seekSlider + private function onSeekPress(event:SliderEvent):void{ + } - // updates timerLabel when recording - private function updateTimerLabelForRecording(event:TimerEvent):void{ - var timer:Timer = Timer(event.currentTarget); - videoControlBar.timerLabel.text = VideoDisplayUtil.secondsToString(String(timer.currentCount * timer.delay / 1000)); + // onSeekRelease callback, called from seekSlider + private function onSeekRelease(event:SliderEvent):void{ + videoDisplayPanel.status = dictionary.getLabel("videorecorder.buffering"); + videoControlBar.playButton.setStyle("icon", playIcon); + videoControlBar.playButton.enabled = false; + videoControlBar.playButton.toolTip = dictionary.getLabelAndConcatenate("videorecorder.tooltip.play", [" (", dictionary.getLabel("videorecorder.disabled"), ")"]); + videoControlBar.seekSlider.enable(false); } - // seek slider click handler - private function seekSliderClick(event:SliderEvent):void { - // if seekslider is enabled - - if(videoControlBar.seekSlider.enabled){ - // if the mouse is pressed - if(event.type == SliderEvent.THUMB_PRESS){ - // stop the timer so that the bar seekSlider can manually be controlled - playTimer.stop(); - } - // if the mouse is released - else if(event.type == SliderEvent.THUMB_RELEASE){ - // start the timer again and allow it to regain control of the seekSlider - playTimer.start(); - } - } + // onPauseSeek callback, called from seekSlider + private function onPauseSeek(event:VideoDisplayEvent):void{ + } - // seeks to the given place in the movie - private function seekSliderChange(event:SliderEvent):void { - videoDisplay.seek(event.value); + // onReadySeek callback, called from videoDisplay + private function onReadySeek(event:VideoDisplayEvent):void{ + videoControlBar.playButton.enabled = true; + videoControlBar.playButton.toolTip = dictionary.getLabel("videorecorder.tooltip.resume"); + videoControlBar.seekSlider.enable(true); + videoDisplayPanel.status = dictionary.getLabel("videorecorder.ready"); } - + ]]> Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/managers/LamsAjaxOverlayManager.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/common/flex/org/lamsfoundation/lams/common/managers/LamsAjaxOverlayManager.as,v diff -u Binary files differ Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/SeekSlider.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/SeekSlider.mxml,v diff -u -r1.1 -r1.2 --- lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/SeekSlider.mxml 18 Mar 2009 00:24:38 -0000 1.1 +++ lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/SeekSlider.mxml 19 Mar 2009 06:35:45 -0000 1.2 @@ -136,5 +136,5 @@ - + Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/VideoDisplay.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/VideoDisplay.mxml,v diff -u -r1.3 -r1.4 --- lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/VideoDisplay.mxml 18 Mar 2009 00:24:38 -0000 1.3 +++ lams_flash/src/common/flex/org/lamsfoundation/lams/common/ui/components/VideoDisplay.mxml 19 Mar 2009 06:35:45 -0000 1.4 @@ -179,7 +179,8 @@ // called from metadata callback private function checkReady(event:TimerEvent):void{ - if(playMode == INIT_MODE && _isBufferFull){ + // if we are in init and the buffer is full or the movie is completely loaded + if(playMode == INIT_MODE && (_isBufferFull || _ns.bytesLoaded == _ns.bytesTotal)){ setReady(event); } } @@ -205,7 +206,7 @@ // called from metadata callback private function checkReadySeek(event:TimerEvent):void{ - if(playMode == PAUSE_MODE && _isBufferFull){ + if(playMode == PAUSE_MODE && (_isBufferFull || _ns.bytesLoaded == _ns.bytesTotal)){ setReadySeek(event); } } @@ -611,7 +612,7 @@ } case "NetStream.Play.Complete":{ // alert - //Alert.show("NetStream.Play.Complete"); + // Alert.show("NetStream.Play.Complete from red5 callback"); makeReadyAgain(); dispatchEvent(new VideoDisplayEvent(VideoDisplayEvent.COMPLETE)); break; @@ -623,6 +624,7 @@ // checks end of the stream (called every second from the timer) private function checkEndStream(event:TimerEvent):void{ if(_ns.time >= metadata.duration){ + // Alert.show("NetStream.Play.Complete from checkStream"); makeReadyAgain(); dispatchEvent(new VideoDisplayEvent(VideoDisplayEvent.COMPLETE)); } Index: lams_tool_videorecorder/build.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/build.xml,v diff -u -r1.1 -r1.2 --- lams_tool_videorecorder/build.xml 18 Dec 2008 02:20:34 -0000 1.1 +++ lams_tool_videorecorder/build.xml 19 Mar 2009 06:35:48 -0000 1.2 @@ -480,7 +480,7 @@ - Index: lams_tool_videorecorder/conf/hibernate/mappings/org/lamsfoundation/lams/tool/videoRecorder/model/VideoRecorder.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/conf/hibernate/mappings/org/lamsfoundation/lams/tool/videoRecorder/model/Attic/VideoRecorder.hbm.xml,v diff -u -r1.2 -r1.3 --- lams_tool_videorecorder/conf/hibernate/mappings/org/lamsfoundation/lams/tool/videoRecorder/model/VideoRecorder.hbm.xml 3 Feb 2009 02:41:05 -0000 1.2 +++ lams_tool_videorecorder/conf/hibernate/mappings/org/lamsfoundation/lams/tool/videoRecorder/model/VideoRecorder.hbm.xml 19 Mar 2009 06:35:48 -0000 1.3 @@ -69,6 +69,24 @@ /> + + + + + + + + - + Index: lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderCommentComparator.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderCommentComparator.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderCommentComparator.java 19 Mar 2009 06:35:48 -0000 1.1 @@ -0,0 +1,46 @@ +package org.lamsfoundation.lams.tool.videoRecorder.util; + +import java.util.Comparator; +import java.util.Date; + +import org.lamsfoundation.lams.tool.videoRecorder.dto.VideoRecorderCommentDTO; + +/** + * + * @author Paul Georges + * + */ +public class VideoRecorderCommentComparator implements Comparator { + + private String sortBy; + private String sortDirection; + + public VideoRecorderCommentComparator(String sortBy, String sortDirection){ + this.sortBy = sortBy; + this.sortDirection = sortDirection; + } + + public int compare(VideoRecorderCommentDTO dto1, VideoRecorderCommentDTO dto2) { + if(sortBy.compareTo("date") == 0){ + Date date1 = dto1.getCreateDate(); + Date date2 = dto2.getCreateDate(); + + int difference = date1.compareTo(date2); + + if(Math.abs(difference) == 0) + return 1; + + if(sortDirection.compareTo("ascending") == 0){ + int result = difference / Math.abs(difference); + return result; + } + else if(sortDirection.compareTo("descending") == 0){ + int result = -difference / Math.abs(difference); + return result; + } + + } + + return 0; + } +} \ No newline at end of file Index: lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderRecordingComparator.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderRecordingComparator.java,v diff -u -r1.3 -r1.4 --- lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderRecordingComparator.java 19 Feb 2009 05:39:08 -0000 1.3 +++ lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/util/VideoRecorderRecordingComparator.java 19 Mar 2009 06:35:48 -0000 1.4 @@ -32,22 +32,25 @@ if(user2 == null) return 1; - Long userId1 = user1.getUid(); - Long userId2 = user2.getUid(); + String userName1 = user1.getFirstName() + " " + user1.getLastName(); + String userName2 = user2.getFirstName() + " " + user2.getLastName(); + userName1 = userName1.toLowerCase(); + userName2 = userName2.toLowerCase(); - if(userId1 > userId2) { - if(sortDirection == "ascending") - return -1; - else - return 1; - } else if(userId1 == userId2) { - return 0; - } else { - if(sortDirection == "ascending") - return 1; - else - return -1; + int difference = userName1.compareTo(userName2); + + if(Math.abs(difference) == 0) + return 1; + + if(sortDirection.compareTo("ascending") == 0){ + + int result = difference / Math.abs(difference); + return result; } + else if(sortDirection.compareTo("descending") == 0){ + int result = -difference / Math.abs(difference); + return result; + } } else if(sortBy.compareTo("date") == 0){ VideoRecorderUser user1 = dto1.getCreateBy(); @@ -87,8 +90,8 @@ if(user2 == null) return 1; - String title1 = dto1.getTitle(); - String title2 = dto2.getTitle(); + String title1 = dto1.getTitle().toLowerCase(); + String title2 = dto2.getTitle().toLowerCase(); int difference = title1.compareTo(title2); Index: lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/ExportServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/ExportServlet.java,v diff -u -r1.3 -r1.4 --- lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/ExportServlet.java 19 Feb 2009 05:39:08 -0000 1.3 +++ lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/ExportServlet.java 19 Mar 2009 06:35:48 -0000 1.4 @@ -64,6 +64,7 @@ import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.ExternalServerUtil; +import org.lamsfoundation.lams.util.HttpUrlConnectionUtil; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -336,14 +337,17 @@ VideoRecorderRecordingDTO vr = (VideoRecorderRecordingDTO) iter.next(); // get the stream from the external server - InputStream is = ExternalServerUtil.getResponseInputStreamFromExternalServer(VIDEORECORDER_RECORDINGS_FOLDER_SRC + vr.getFilename(), new HashMap()); + int success = HttpUrlConnectionUtil.writeResponseToFile(VIDEORECORDER_RECORDINGS_FOLDER_SRC, VIDEORECORDER_RECORDINGS_FOLDER_DEST, vr.getFilename(), new Cookie[0]); - // write the flv file locally - File file = ExternalServerUtil.writeFile(is, VIDEORECORDER_RECORDINGS_FOLDER_DEST + vr.getFilename()); - - // add the filename to the list - fileArray[1].add(vr.getFilename()); - } + // if success + if(success == 1){ + // add the filename to the list + fileArray[1].add(vr.getFilename()); + logger.debug("file copy complete"); + }else{ + logger.debug("file copy failed"); + } + } } catch (Exception e) { logger.error("Could not find files on Red5 server", e); } Index: lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/VideoRecorderAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/Attic/VideoRecorderAction.java,v diff -u -r1.3 -r1.4 --- lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/VideoRecorderAction.java 19 Feb 2009 05:39:08 -0000 1.3 +++ lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/web/servlets/VideoRecorderAction.java 19 Mar 2009 06:35:48 -0000 1.4 @@ -57,6 +57,7 @@ import org.lamsfoundation.lams.tool.videoRecorder.service.IVideoRecorderService; import org.lamsfoundation.lams.tool.videoRecorder.service.VideoRecorderService; import org.lamsfoundation.lams.tool.videoRecorder.service.VideoRecorderServiceProxy; +import org.lamsfoundation.lams.tool.videoRecorder.util.VideoRecorderCommentComparator; import org.lamsfoundation.lams.tool.videoRecorder.util.VideoRecorderRecordingComparator; import org.lamsfoundation.lams.tool.videoRecorder.dto.VideoRecorderCommentDTO; import org.lamsfoundation.lams.tool.videoRecorder.dto.VideoRecorderRatingDTO; @@ -470,6 +471,7 @@ for(VideoRecorderRecordingDTO videoRecorderRecordingDTO: videoRecorderRecordingDTOs){ VideoRecorderUser user = videoRecorderRecordingDTO.getCreateBy(); Set comments = videoRecorderRecordingDTO.getComments(); + Set ratings = videoRecorderRecordingDTO.getRatings(); xmlOutput += ""; @@ -508,7 +510,11 @@ private String buildVideoCommentsXML(Set comments){ String xmlOutput = ""; - for(VideoRecorderCommentDTO comment: comments){ + VideoRecorderCommentDTO[] commentArray = (VideoRecorderCommentDTO[])comments.toArray(new VideoRecorderCommentDTO[comments.size()]); + + //for(VideoRecorderCommentDTO comment: comments){ + for(int i = commentArray.length - 1; i >= 0; i--){ + VideoRecorderCommentDTO comment = commentArray[i]; xmlOutput += ""; xmlOutput += "" + comment.getCreateBy().getFirstName() + " " + comment.getCreateBy().getLastName() + ""; xmlOutput += "" + comment.getCreateDate().toLocaleString() + ""; Index: lams_tool_videorecorder/web/includes/flash/VideoRecorder.swf =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/web/includes/flash/VideoRecorder.swf,v diff -u -r1.4 -r1.5 Binary files differ Index: lams_tool_videorecorder/web/includes/flash/VideoRecorderFCKEditor.swf =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/web/includes/flash/VideoRecorderFCKEditor.swf,v diff -u -r1.3 -r1.4 Binary files differ Index: lams_tool_videorecorder/web/pages/authoring/basic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_videorecorder/web/pages/authoring/basic.jsp,v diff -u -r1.3 -r1.4 --- lams_tool_videorecorder/web/pages/authoring/basic.jsp 19 Feb 2009 05:39:09 -0000 1.3 +++ lams_tool_videorecorder/web/pages/authoring/basic.jsp 19 Mar 2009 06:35:48 -0000 1.4 @@ -9,7 +9,7 @@ - +