From ffa508de34cd9f682fb7bafceb5daf74da54bf97 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 30 Dec 2010 09:41:52 -0500 Subject: [PATCH] -synchronize --- .../controllers/ScheduleController.php | 1 + .../scripts/schedule/get-scheduler-time.phtml | 2 +- public/js/playlist/playlist.js | 285 +++++++++--------- 3 files changed, 148 insertions(+), 140 deletions(-) diff --git a/application/controllers/ScheduleController.php b/application/controllers/ScheduleController.php index 6cc2b0e49..0121038cb 100644 --- a/application/controllers/ScheduleController.php +++ b/application/controllers/ScheduleController.php @@ -178,6 +178,7 @@ class ScheduleController extends Zend_Controller_Action public function getSchedulerTimeAction() { $this->view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript'); + $this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript'); } public function getCurrentPlaylistAction() diff --git a/application/views/scripts/schedule/get-scheduler-time.phtml b/application/views/scripts/schedule/get-scheduler-time.phtml index 48f23dee4..4152f4c54 100644 --- a/application/views/scripts/schedule/get-scheduler-time.phtml +++ b/application/views/scripts/schedule/get-scheduler-time.phtml @@ -6,5 +6,5 @@ });
- +
diff --git a/public/js/playlist/playlist.js b/public/js/playlist/playlist.js index b4ea360e4..4983117e5 100644 --- a/public/js/playlist/playlist.js +++ b/public/js/playlist/playlist.js @@ -1,142 +1,149 @@ -(function($) { - // jQuery plugin definition - $.fn.playlistViewer = function(params) { - // merge default and user parameters - params = $.extend( {minlength: 0, maxlength: 99999}, params); +(function($) { + // jQuery plugin definition + $.fn.playlistViewer = function(params) { + var cc = this; + cc.estimatedSchedulePosixTime = -1; + cc.schedulePosixTime; - - var $t; - - // traverse all nodes - return this.each(function() { - // express a single node as a jQuery object - $t = $(this); - - getScheduleFromServer(); - updateProgressBarValue(); - }); - - function convertDateToPosixTime(s){ - var year = s.substring(0, 4); - var month = s.substring(5, 7); - var day = s.substring(8, 10); - var hour = s.substring(11, 13); - var minute = s.substring(14, 16); - var sec = 0; - var msec = 0; - if (s.length >= 20){ - sec = s.substring(17, 19); - msec = s.substring(20); - } else { - sec = s.substring(17); - } - - return Date.UTC(year, month, day, hour, minute, sec, msec); - } - - var estimatedSchedulePosixTime = -1; - var schedulePosixTime; - - var previousSongs; - var currentSong; - var nextSongs; - - function secondsTimer(){ - estimatedSchedulePosixTime += 1000; - updateProgressBarValue(); - } - - function updateProgressBarValue(){ - alert(estimatedSchedulePosixTime); - if (estimatedSchedulePosixTime != -1){ - if (currentSong.length > 0){ - var percentDone = (estimatedSchedulePosixTime - currentSong[0].songStartPosixTime)/currentSong[0].songLengthMs*100; - if (percentDone <= 100){ - //$('#spaceused1').progressBar(percentDone); - } else { - if (nextSongs.length > 0){ - currentSong[0] = nextSongs.shift(); - } else { - currentSong = new Array(); - } - //$('#spaceused1').progressBar(0); - estimatedSchedulePosixTime = schedulePosixTime; - } - } - updatePlaylist(); - } - setTimeout(secondsTimer, 1000); - } - - function createPlaylistElementString(song){ - return "Start time: " + song.starts + "
" + - "End time: " + song.ends + "
" + - "Clip length: " + song.clip_length + "
" + - "Name: " + song.name + "
"; - } - - function updatePlaylist(){ - $('#previous').empty(); - $('#current').empty(); - $('#next').empty(); - for (var i=0; i 0){ - var nextItem = obj.next[0]; - } - } - - function parseItems(obj){ - schedulePosixTime = convertDateToPosixTime(obj.schedulerTime); + cc.previousSongs; + cc.currentSong; + cc.nextSongs; - if (estimatedSchedulePosixTime == -1) - estimatedSchedulePosixTime = schedulePosixTime; - - previousSongs = obj.previous; - currentSong = obj.current; - nextSongs = obj.next; - - calcAdditionalData(previousSongs); - calcAdditionalData(currentSong); - calcAdditionalData(nextSongs); - - //updatePlaylist(); - //updateProgressBarValue(); - } + cc.currentElem; - function getScheduleFromServer(){ - $.ajax({ url: "http://localhost/Schedule/get-current-playlist/format/json", dataType:"json", success:function(data){ - parseItems(data.entries); - }}); - setTimeout(getScheduleFromServer, 5000); - } - - }; -})(jQuery); + // traverse all nodes + return this.each(function() { + // express a single node as a jQuery object + cc.currentElem = $(this); + + var prevDiv = document.createElement('div'); + prevDiv.setAttribute("id", "previous"); + $(cc.currentElem).append(prevDiv); + + var currDiv = document.createElement('div'); + currDiv.setAttribute("id", "current"); + $(cc.currentElem).append(currDiv); + + var nextDiv = document.createElement('div'); + nextDiv.setAttribute("id", "next"); + $(cc.currentElem).append(nextDiv); + + $('#spaceused1').progressBar(0); + + getScheduleFromServer(); + updateProgressBarValue(); + }); + + function convertDateToPosixTime(s){ + var year = s.substring(0, 4); + var month = s.substring(5, 7); + var day = s.substring(8, 10); + var hour = s.substring(11, 13); + var minute = s.substring(14, 16); + var sec = 0; + var msec = 0; + if (s.length >= 20){ + sec = s.substring(17, 19); + msec = s.substring(20); + } else { + sec = s.substring(17); + } + + return Date.UTC(year, month, day, hour, minute, sec, msec); + } + + function secondsTimer(){ + cc.estimatedSchedulePosixTime += 1000; + updateProgressBarValue(); + } + + function updateProgressBarValue(){ + if (cc.estimatedSchedulePosixTime != -1){ + if (cc.currentSong.length > 0){ + var percentDone = (cc.estimatedSchedulePosixTime - cc.currentSong[0].songStartPosixTime)/cc.currentSong[0].songLengthMs*100; + if (percentDone <= 100){ + $('#spaceused1').progressBar(percentDone); + } else { + if (nextSongs.length > 0){ + cc.currentSong[0] = cc.nextSongs.shift(); + } else { + cc.currentSong = new Array(); + } + $('#spaceused1').progressBar(0); + cc.estimatedSchedulePosixTime = cc.schedulePosixTime; + } + } + updatePlaylist(); + } + setTimeout(secondsTimer, 1000); + } + + function createPlaylistElementString(song){ + return "Start time: " + song.starts + "
" + + "End time: " + song.ends + "
" + + "Clip length: " + song.clip_length + "
" + + "Name: " + song.name + "
"; + } + + function updatePlaylist(){ + $('#previous').empty(); + $('#current').empty(); + $('#next').empty(); + for (var i=0; i 0){ + var nextItem = obj.next[0]; + } + } + + function parseItems(obj){ + cc.schedulePosixTime = convertDateToPosixTime(obj.schedulerTime); + + if (cc.estimatedSchedulePosixTime == -1) + cc.estimatedSchedulePosixTime = cc.schedulePosixTime; + + cc.previousSongs = obj.previous; + cc.currentSong = obj.current; + cc.nextSongs = obj.next; + + calcAdditionalData(cc.previousSongs); + calcAdditionalData(cc.currentSong); + calcAdditionalData(cc.nextSongs); + } + + function getScheduleFromServer(){ + $.ajax({ url: "http://localhost/Schedule/get-current-playlist/format/json", dataType:"json", success:function(data){ + parseItems(data.entries); + }}); + setTimeout(getScheduleFromServer, 5000); + } + + }; +})(jQuery);