diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index e00c48f74..09033fc87 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -125,17 +125,20 @@ class Application_Model_Schedule { if ( $i - 1 >= 0){ $results['previous'] = array("name"=>$rows[$i-1]["artist_name"]." - ".$rows[$i-1]["track_title"], "starts"=>$rows[$i-1]["starts"], - "ends"=>$rows[$i-1]["ends"]); + "ends"=>$rows[$i-1]["ends"], + "type"=>'track'); } $results['current'] = array("name"=>$rows[$i]["artist_name"]." - ".$rows[$i]["track_title"], "starts"=>$rows[$i]["starts"], "ends"=> (($rows[$i]["ends"] > $rows[$i]["show_ends"]) ? $rows[$i]["show_ends"]: $rows[$i]["ends"]), "media_item_played"=>$rows[$i]["media_item_played"], - "record"=>0); + "record"=>0, + "type"=>'track'); if ( isset($rows[$i+1])){ $results['next'] = array("name"=>$rows[$i+1]["artist_name"]." - ".$rows[$i+1]["track_title"], "starts"=>$rows[$i+1]["starts"], - "ends"=>$rows[$i+1]["ends"]); + "ends"=>$rows[$i+1]["ends"], + "type"=>'track'); } break; } @@ -145,7 +148,8 @@ class Application_Model_Schedule { if (strtotime($rows[$i]['starts']) > $timeNowAsMillis) { $results['next'] = array("name"=>$rows[$i]["artist_name"]." - ".$rows[$i]["track_title"], "starts"=>$rows[$i]["starts"], - "ends"=>$rows[$i]["ends"]); + "ends"=>$rows[$i]["ends"], + "type"=>'track'); break; } } diff --git a/airtime_mvc/application/models/Show.php b/airtime_mvc/application/models/Show.php index 62a94cff8..d5d992d66 100644 --- a/airtime_mvc/application/models/Show.php +++ b/airtime_mvc/application/models/Show.php @@ -1764,6 +1764,7 @@ class Application_Model_Show { for( $i = 0; $i < $numberOfRows; ++$i ){ //Find the show that is within the current time. + $rows[$i]['type'] = 'show'; if ((strtotime($rows[$i]['starts']) <= $timeNowAsMillis) && (strtotime($rows[$i]['ends']) >= $timeNowAsMillis)){ if ( $i - 1 >= 0){ $results['previousShow'][0] = array( @@ -1774,7 +1775,8 @@ class Application_Model_Show { "start_timestamp"=>$rows[$i-1]['start_timestamp'], "end_timestamp"=>$rows[$i-1]['end_timestamp'], "starts"=>$rows[$i-1]['starts'], - "ends"=>$rows[$i-1]['ends']); + "ends"=>$rows[$i-1]['ends'], + "type"=>$rows[$i-1]['type']); } $results['currentShow'][0] = $rows[$i]; @@ -1788,7 +1790,8 @@ class Application_Model_Show { "start_timestamp"=>$rows[$i+1]['start_timestamp'], "end_timestamp"=>$rows[$i+1]['end_timestamp'], "starts"=>$rows[$i+1]['starts'], - "ends"=>$rows[$i+1]['ends']); + "ends"=>$rows[$i+1]['ends'], + "type"=>$rows[$i+1]['type']); } break; @@ -1807,7 +1810,8 @@ class Application_Model_Show { "start_timestamp"=>$rows[$i]['start_timestamp'], "end_timestamp"=>$rows[$i]['end_timestamp'], "starts"=>$rows[$i]['starts'], - "ends"=>$rows[$i]['ends']); + "ends"=>$rows[$i]['ends'], + "type"=>$rows[$i]['type']); break; } } @@ -1821,8 +1825,10 @@ class Application_Model_Show { "start_timestamp"=>$rows[$previousShowIndex]['start_timestamp'], "end_timestamp"=>$rows[$previousShowIndex]['end_timestamp'], "starts"=>$rows[$previousShowIndex]['starts'], - "ends"=>$rows[$previousShowIndex]['ends']); + "ends"=>$rows[$previousShowIndex]['ends'], + "type"=>$rows[$previousShowIndex]['type']); } + return $results; } diff --git a/airtime_mvc/public/js/airtime/dashboard/dashboard.js b/airtime_mvc/public/js/airtime/dashboard/dashboard.js index 7e0770bc0..8c4616f4b 100644 --- a/airtime_mvc/public/js/airtime/dashboard/dashboard.js +++ b/airtime_mvc/public/js/airtime/dashboard/dashboard.js @@ -47,8 +47,10 @@ function secondsTimer(){ function newSongStart(){ nextSongPrepare = true; - currentSong = nextSong; - nextSong = null; + if (nextSong.type == 'track') { + currentSong = nextSong; + nextSong = null; + } } function nextShowStart(){ @@ -74,12 +76,14 @@ function updateProgressBarValue(){ var scheduled_play_line_to_switch = scheduled_play_div.parent().find(".line-to-switch"); if (currentSong !== null){ + var songElpasedTime = 0; songPercentDone = (estimatedSchedulePosixTime - currentSong.songStartPosixTime)/currentSong.songLengthMs*100; + songElapsedTime = estimatedSchedulePosixTime - currentSong.songStartPosixTime; if (songPercentDone < 0 || songPercentDone > 100){ songPercentDone = 0; currentSong = null; } else { - if (currentSong.media_item_played == true && currentShow.length > 0) { + if ((currentSong.media_item_played == true && currentShow.length > 0) || songElapsedTime < 5000) { scheduled_play_line_to_switch.attr("class", "line-to-switch on"); scheduled_play_div.addClass("ready"); scheduled_play_source = true;