sintonia/airtime_mvc/public/js/airtime/player/player.js

102 lines
2.8 KiB
JavaScript

function updateEmbedSrcParams()
{
var $embedCodeParams = "?";
var $streamMode = getStreamMode();
if ($streamMode == "manual") {
var $stream = $("input[name=player_stream_url]:radio:checked").val();
$embedCodeParams += "stream="+$stream;
} else if ($streamMode == "auto") {
$embedCodeParams += "stream=auto";
}
var playerTitle = getPlayerTitle();
if (playerTitle !== null) {
$embedCodeParams += "&title="+playerTitle;
}
$embedCodeParams += "\"";
$("textarea[name=player_embed_src]").val(function(index, value) {
return value.replace(/\?.*?"/, $embedCodeParams);
});
updatePlayerIframeSrc($("textarea[name=player_embed_src]").val());
}
function updatePlayerIframeSrc(iframe_text) {
var $player_iframe = $("#player_form iframe");
var player_iframe_src = iframe_text.match(/http.*?"/)[0].slice(0, -1);
$player_iframe.attr('src', player_iframe_src);
}
function getStreamMode() {
return $("input[name=player_stream_mode]:radio:checked").val();
}
function getPlayerTitle() {
if ($("#player_display_title").prop("checked")) {
return $("input[name=player_title]").val();
} else {
return null;
}
}
$(document).ready(function() {
$("#player_stream_url-element").hide();
// stream mode change event
$("#player_stream_mode-element").change(function() {
var $streamMode = getStreamMode();
if ($streamMode == "auto") {
$("#player_stream_url-element").hide();
} else if ($streamMode == "manual") {
$("#player_stream_url-element").show();
$("input[name=player_stream_url]").each(function(i, obj) {
if ($(this).parent().text().toLowerCase().indexOf("opus") >= 0) {
$(this).attr("disabled", "disabled");
}
});
}
updateEmbedSrcParams();
});
// stream url change event
$("#player_stream_url-element").change(function() {
updateEmbedSrcParams();
});
// display title checkbox change event
$("#player_display_title").change(function() {
if ($(this).prop("checked")) {
$("#player_title-label").show();
$("#player_title-element").show();
} else {
$("#player_title-label").hide();
$("#player_title-element").hide();
}
updateEmbedSrcParams();
});
// title textbox change event
// setup before functions
var typingTimer;
var doneTypingInterval = 3000;
// on keyup, start the countdown
$("input[name=player_title]").keyup(function(){
clearTimeout(typingTimer);
typingTimer = setTimeout(updateEmbedSrcParams, doneTypingInterval);
});
// on keydown, clear the countdown
$("input[name=player_title]").keydown(function(){
clearTimeout(typingTimer);
});
});