Merge branch 'saas-dev' into saas-speedy

This commit is contained in:
Duncan Sommerville 2015-05-04 13:09:51 -04:00
commit 8b380086c3
32 changed files with 4981 additions and 1287 deletions

View file

@ -238,8 +238,8 @@
}
// variables for updating the player's metadata
var time_to_next_track_starts;
var metadataTimer;
var time_to_next_track_starts = 0;
var metadataTimer = null;
// Fetches the streams metadata from the Airtime live-info API
// and attaches it to the player UI.
@ -252,7 +252,12 @@
success: function(data) {
if (data.current === null) {
$("p.now_playing").html("Offline");
if (data.currentShow != null && data.currentShow.length != 0) {
// Master/show source have no current track but they do have a current show.
$("p.now_playing").html(data.currentShow[0].name);
} else {
$("p.now_playing").html("Offline");
}
time_to_next_track_starts = 20000;
} else {
var artist = data.current.name.split(" - ")[0];
@ -260,6 +265,12 @@
$("p.now_playing").html(artist + "<span>" + track + "</span>");
var current_track_end_time = new Date(data.current.ends);
if (current_track_end_time == "Invalid Date" || isNaN(current_track_end_time)) {
// If the conversion didn't work (since the String is not in ISO format)
// then change it to be ISO-compliant. This is somewhat hacky and may break
// if the date string format in live-info changes!
current_track_end_time = new Date((data.current.ends).replace(" ", "T"));
}
var current_time = new Date();
//convert current_time to UTC to match the timezone of time_to_next_track_starts
current_time = new Date(current_time.getTime() + current_time.getTimezoneOffset() * 60 * 1000);
@ -271,9 +282,14 @@
} else {
$("ul.schedule_list").find("li").html(data.next.name);
}
}
});
//Preventative code if the local and remote clocks are out of sync.
if (isNaN(time_to_next_track_starts) || time_to_next_track_starts < 0) {
time_to_next_track_starts = 0;
}
// Add 3 seconds to the timeout so Airtime has time to update the metadata before we fetch it
metadataTimer = setTimeout(attachStreamMetadataToPlayer, time_to_next_track_starts+3000);
}

View file

@ -23,6 +23,30 @@
<?php //echo $this->element->getElement('player_display_track_metadata'); ?>
<table id="player_compatibility_chart">
<th colspan="5">Stream Compatibility</th>
<tr>
<td colspan="3">Desktop</td>
<td colspan="2">Mobile</td>
</tr>
<tr>
<td>Firefox</td>
<td>Chrome</td>
<td>Internet Explorer</td>
<td>Android 5 - Chrome</td>
<td>iOS 7 - Safari</td>
</tr>
<tr>
<td>Yes (Flash)</td>
<td>Yes (Flash)</td>
<td>Yes (Flash)</td>
<td>MP3/OGG* only</td>
<td>MP3/AAC only</td>
</tr>
<tr>
<td colspan="5">* Chrome on Android is known to take about 4 seconds to buffer a 128 kbps MP3 stream. Lower bitrates take longer to buffer.</td>
</tr>
</table>
</dl>

View file

@ -0,0 +1,9 @@
<div class="suspension_notice">
<H2>Station Suspended</H2>
<p>
<?php echo(_pro(sprintf('Your station is suspended due to an <b>unpaid invoice</b>. To restore your station, <a href="%s">please pay any overdue invoices</a>.', '/billing/invoices'))); ?>
</p>
<p>
<?php echo(_pro(sprintf('Suspended stations will be <b>removed</b> if an invoice is unpaid for 30 days. If you believe this suspension was in error, <a href="%s">please contact support</a>.', 'https://sourcefabricberlin.zendesk.com/anonymous_requests/new'))); ?>
</p>
</div>

View file

@ -5,7 +5,10 @@
</style>
<?php if ($this->quotaLimitReached) { ?>
<div class="errors quota-reached">
Disk quota exceeded. You cannot upload files until you <a href="http://www.sourcefabric.org/en/airtime" target="_blank">upgrade your storage</a>.
Disk quota exceeded. You cannot upload files until you
<a target="_parent" href=<?php $baseUrl = Application_Common_OsPath::getBaseDir(); echo $baseUrl . "billing/upgrade"?>>
upgrade your storage
</a>.
</div>
<?php
}