style(legacy): format (#2039)
This commit is contained in:
parent
7082c9693d
commit
1550d44ac5
|
@ -32,7 +32,7 @@ repos:
|
|||
hooks:
|
||||
- id: prettier
|
||||
files: \.(md|mdx|yml|yaml|js|jsx|ts|tsx|json|css)$
|
||||
exclude: ^legacy/public
|
||||
exclude: ^legacy/public(?!/js/airtime)
|
||||
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v2.34.0
|
||||
|
|
|
@ -21,7 +21,10 @@
|
|||
$scs = $this->SourceConnectionStatus();
|
||||
?>
|
||||
<?php echo $this->partial('partialviews/header.phtml', array(
|
||||
"live_dj_switch" => $sss['live_dj'], "live_dj_connection" => $scs['live_dj'], "master_dj_switch" => $sss['master_dj'], "master_dj_connection" => $scs['master_dj'],
|
||||
"live_dj_switch" => $sss['live_dj'],
|
||||
"live_dj_connection" => $scs['live_dj'],
|
||||
"master_dj_switch" => $sss['master_dj'],
|
||||
"master_dj_connection" => $scs['master_dj'],
|
||||
"scheduled_play_switch" => $sss['scheduled_play']
|
||||
)) ?>
|
||||
<?php $partial = array('menu.phtml', 'default');
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
|
||||
<div id="jp_container_1" class="jp-audio">
|
||||
<?php if (isset($this->playlistID)): ?>
|
||||
<span class='playlistID'><?php echo "$this->playlistID" ?></span>
|
||||
<span class='playlistIndex'><?php echo "$this->playlistIndex" ?></span>
|
||||
<?php elseif (isset($this->blockId)): ?>
|
||||
<span class='blockId' style="display: none;"><?php echo "$this->blockId" ?></span>
|
||||
<span class='blockIndex' style="display: none;"><?php echo "$this->blockIndex" ?></span>
|
||||
<?php elseif (isset($this->uri)): ?>
|
||||
<span class='audioUri' style="display: none;"><?php echo "$this->uri" ?></span>
|
||||
<span class='audioMime' style="display: none;"><?php echo "$this->mime" ?></span>
|
||||
<span class='audioFileTitle'><?php echo "$this->audioFileTitle" ?></span>
|
||||
<span class='audioFileArtist'><?php echo "$this->audioFileArtist" ?></span>
|
||||
<?php elseif (isset($this->showID)): ?>
|
||||
<span class='showID'><?php echo "$this->showID" ?></span>
|
||||
<span class='showIndex'><?php echo "$this->showIndex" ?></span>
|
||||
<?php endif;?>
|
||||
<?php if (isset($this->playlistID)) : ?>
|
||||
<span class='playlistID'><?php echo "$this->playlistID" ?></span>
|
||||
<span class='playlistIndex'><?php echo "$this->playlistIndex" ?></span>
|
||||
<?php elseif (isset($this->blockId)) : ?>
|
||||
<span class='blockId' style="display: none;"><?php echo "$this->blockId" ?></span>
|
||||
<span class='blockIndex' style="display: none;"><?php echo "$this->blockIndex" ?></span>
|
||||
<?php elseif (isset($this->uri)) : ?>
|
||||
<span class='audioUri' style="display: none;"><?php echo "$this->uri" ?></span>
|
||||
<span class='audioMime' style="display: none;"><?php echo "$this->mime" ?></span>
|
||||
<span class='audioFileTitle'><?php echo "$this->audioFileTitle" ?></span>
|
||||
<span class='audioFileArtist'><?php echo "$this->audioFileArtist" ?></span>
|
||||
<?php elseif (isset($this->showID)) : ?>
|
||||
<span class='showID'><?php echo "$this->showID" ?></span>
|
||||
<span class='showIndex'><?php echo "$this->showIndex" ?></span>
|
||||
<?php endif; ?>
|
||||
<div class="jp-type-playlist">
|
||||
<div class="jp-gui jp-interface">
|
||||
<ul class="jp-controls">
|
||||
<?php if ($this->type != "audioclip"): ?>
|
||||
<li class="ui-state-default ui-corner-all jp-previous">
|
||||
<span class="ui-icon ui-icon-seek-prev" tabindex="1"><?php echo _("previous") ?></span>
|
||||
</li>
|
||||
<?php endif;?>
|
||||
<?php if ($this->type != "audioclip") : ?>
|
||||
<li class="ui-state-default ui-corner-all jp-previous">
|
||||
<span class="ui-icon ui-icon-seek-prev" tabindex="1"><?php echo _("previous") ?></span>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="ui-state-default ui-corner-all jp-play">
|
||||
<span class="ui-icon ui-icon-play" tabindex="1"><?php echo _("play") ?></span>
|
||||
|
@ -32,11 +32,11 @@
|
|||
<span class="ui-icon ui-icon-pause" tabindex="1"><?php echo _("pause") ?></span>
|
||||
</li>
|
||||
|
||||
<?php if ($this->type != "audioclip"): ?>
|
||||
<li class="ui-state-default ui-corner-all jp-next">
|
||||
<span class="ui-icon ui-icon-seek-next" tabindex="1"><?php echo _("next") ?></span>
|
||||
</li>
|
||||
<?php endif;?>
|
||||
<?php if ($this->type != "audioclip") : ?>
|
||||
<li class="ui-state-default ui-corner-all jp-next">
|
||||
<span class="ui-icon ui-icon-seek-next" tabindex="1"><?php echo _("next") ?></span>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="ui-state-default ui-corner-all jp-stop">
|
||||
<span class="ui-icon ui-icon-stop" tabindex="1"><?php echo _("stop") ?></span>
|
||||
|
@ -50,9 +50,9 @@
|
|||
</div>
|
||||
<div class="jp-time-holder">
|
||||
<div class="jp-current-time"></div>
|
||||
<?php if ($this->type == "audioclip"): ?>
|
||||
<div class="jp-duration"></div>
|
||||
<?php endif;?>
|
||||
<?php if ($this->type == "audioclip") : ?>
|
||||
<div class="jp-duration"></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jp-volume-block">
|
||||
|
@ -77,9 +77,11 @@
|
|||
</div>
|
||||
<div class="jp-no-solution">
|
||||
<span><?php echo _("Update Required") ?></span>
|
||||
<?php sprintf(_("To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."),
|
||||
<?php sprintf(
|
||||
_("To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."),
|
||||
"<a href='http://get.adobe.com/flashplayer/' target='_blank'>",
|
||||
"</a>") ?>
|
||||
"</a>"
|
||||
) ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,28 +1,34 @@
|
|||
<div class="text-content">
|
||||
<h2><?php echo _("About") ?></h2>
|
||||
<p>
|
||||
<?php
|
||||
<p>
|
||||
<?php
|
||||
|
||||
$productSiteAnchor = "<a href='" . PRODUCT_SITE_URL . "' target='_blank'>"
|
||||
. PRODUCT_NAME
|
||||
. "</a>";
|
||||
echo sprintf(_('%1$s %2$s, the open radio software for scheduling and remote station management.'),
|
||||
$productSiteAnchor,
|
||||
$this->airtime_version)
|
||||
?>
|
||||
<br />
|
||||
<br />© <?php echo(gmdate('Y')); ?>
|
||||
<?php
|
||||
$companySiteAnchor = "<a href='" . COMPANY_SITE_URL . "' target='_blank'>"
|
||||
. COMPANY_NAME . " " . COMPANY_SUFFIX
|
||||
. "</a>";
|
||||
$licenseAnchor = "<a href='" . LICENSE_URL . "' target='_blank'>"
|
||||
. LICENSE_VERSION
|
||||
. "</a>";
|
||||
echo sprintf(_('%1$s %2$s is distributed under the %3$s'),
|
||||
$companySiteAnchor, PRODUCT_NAME, $licenseAnchor)
|
||||
?>
|
||||
</p>
|
||||
$productSiteAnchor = "<a href='" . PRODUCT_SITE_URL . "' target='_blank'>"
|
||||
. PRODUCT_NAME
|
||||
. "</a>";
|
||||
echo sprintf(
|
||||
_('%1$s %2$s, the open radio software for scheduling and remote station management.'),
|
||||
$productSiteAnchor,
|
||||
$this->airtime_version
|
||||
)
|
||||
?>
|
||||
<br />
|
||||
<br />© <?php echo (gmdate('Y')); ?>
|
||||
<?php
|
||||
$companySiteAnchor = "<a href='" . COMPANY_SITE_URL . "' target='_blank'>"
|
||||
. COMPANY_NAME . " " . COMPANY_SUFFIX
|
||||
. "</a>";
|
||||
$licenseAnchor = "<a href='" . LICENSE_URL . "' target='_blank'>"
|
||||
. LICENSE_VERSION
|
||||
. "</a>";
|
||||
echo sprintf(
|
||||
_('%1$s %2$s is distributed under the %3$s'),
|
||||
$companySiteAnchor,
|
||||
PRODUCT_NAME,
|
||||
$licenseAnchor
|
||||
)
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
|
|
|
@ -1,24 +1,32 @@
|
|||
<div class="text-content">
|
||||
<h2><?php echo sprintf(_("Welcome to %s!"), PRODUCT_NAME) ?></h2>
|
||||
<p><?php echo sprintf(_("Here's how you can get started using %s to automate your broadcasts: "), PRODUCT_NAME)?></p>
|
||||
<h2><?php echo sprintf(_("Welcome to %s!"), PRODUCT_NAME) ?></h2>
|
||||
<p><?php echo sprintf(_("Here's how you can get started using %s to automate your broadcasts: "), PRODUCT_NAME) ?></p>
|
||||
|
||||
<ol>
|
||||
<li><h4><?php echo _("Upload audio tracks");?></h4>
|
||||
<?php echo _("Click the 'Upload' button in the left corner to upload tracks to your library.")?></li>
|
||||
<li><h4><?php echo _("Schedule a show");?></h4>
|
||||
<?php echo _("Click on 'Calendar' in the navigation bar on the left. From there click the '+ New Show' button and fill out the required fields.")?></li>
|
||||
<li><h4><?php echo _("Add tracks to your show"); ?></h4>
|
||||
<?php echo _("Click on your show in the calendar and select 'Schedule Show'. In the popup window drag tracks into your show."); ?>
|
||||
</li>
|
||||
<ol>
|
||||
<li>
|
||||
<h4><?php echo _("Upload audio tracks"); ?></h4>
|
||||
<?php echo _("Click the 'Upload' button in the left corner to upload tracks to your library.") ?>
|
||||
</li>
|
||||
<li>
|
||||
<h4><?php echo _("Schedule a show"); ?></h4>
|
||||
<?php echo _("Click on 'Calendar' in the navigation bar on the left. From there click the '+ New Show' button and fill out the required fields.") ?>
|
||||
</li>
|
||||
<li>
|
||||
<h4><?php echo _("Add tracks to your show"); ?></h4>
|
||||
<?php echo _("Click on your show in the calendar and select 'Schedule Show'. In the popup window drag tracks into your show."); ?>
|
||||
</li>
|
||||
|
||||
|
||||
</ol>
|
||||
<p><strong><?php echo _("Now you're good to go!")?></strong><br />
|
||||
<?php
|
||||
$userManualAnchorOpen = "<a href='" . USER_MANUAL_URL . "' target='_blank'>";
|
||||
echo sprintf(_("For more detailed help, read the %suser manual%s."),
|
||||
$userManualAnchorOpen, "</a>")
|
||||
</ol>
|
||||
<p><strong><?php echo _("Now you're good to go!") ?></strong><br />
|
||||
<?php
|
||||
$userManualAnchorOpen = "<a href='" . USER_MANUAL_URL . "' target='_blank'>";
|
||||
echo sprintf(
|
||||
_("For more detailed help, read the %suser manual%s."),
|
||||
$userManualAnchorOpen,
|
||||
"</a>"
|
||||
)
|
||||
|
||||
?>
|
||||
</p>
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -1,99 +1,99 @@
|
|||
<div id="content" class="jp-container">
|
||||
<h1><?php echo _("Live stream") ?></h1>
|
||||
<a id="popup-link" href="#"><?php echo _("Share") ?></a>
|
||||
<?php $ids = Application_Model_StreamSetting::getEnabledStreamIds(); ?>
|
||||
<script>
|
||||
function setjPlayer(url, type, serverType){
|
||||
var obj = new Object();
|
||||
obj[type] = url;
|
||||
<h1><?php echo _("Live stream") ?></h1>
|
||||
<a id="popup-link" href="#"><?php echo _("Share") ?></a>
|
||||
<?php $ids = Application_Model_StreamSetting::getEnabledStreamIds(); ?>
|
||||
<script>
|
||||
function setjPlayer(url, type, serverType) {
|
||||
var obj = new Object();
|
||||
obj[type] = url;
|
||||
|
||||
if(serverType == 'shoutcast'){
|
||||
obj[type] = url + ";stream/1";
|
||||
}
|
||||
if (serverType == 'shoutcast') {
|
||||
obj[type] = url + ";stream/1";
|
||||
}
|
||||
|
||||
$("#jquery_jplayer_1").jPlayer("destroy");
|
||||
$("#jquery_jplayer_1").jPlayer({
|
||||
ready: function () {
|
||||
$(this).jPlayer("setMedia", obj).jPlayer("play");
|
||||
},
|
||||
ended: function (event) {
|
||||
$(this).jPlayer("play");
|
||||
},
|
||||
swfPath: "/js/jplayer/",
|
||||
supplied: type,
|
||||
wmode: "window"
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$("#combo-box").change(function(eventObject){
|
||||
var elem = $("#combo-box option:selected");
|
||||
setjPlayer(elem.attr("data-url"), elem.attr("data-type"), elem.attr("server-type"));
|
||||
});
|
||||
|
||||
<?php
|
||||
if (count($ids) > 0){
|
||||
$id = $ids[0];
|
||||
$streamData = Application_Model_StreamSetting::getStreamData($id);
|
||||
$url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"];
|
||||
$type = $streamData["${id}_type"];
|
||||
$serverType = $streamData["${id}_output"];
|
||||
if ($type == "ogg")
|
||||
$type = "oga";
|
||||
echo "setjPlayer('$url', '$type', '$serverType');";
|
||||
$("#jquery_jplayer_1").jPlayer("destroy");
|
||||
$("#jquery_jplayer_1").jPlayer({
|
||||
ready: function() {
|
||||
$(this).jPlayer("setMedia", obj).jPlayer("play");
|
||||
},
|
||||
ended: function(event) {
|
||||
$(this).jPlayer("play");
|
||||
},
|
||||
swfPath: "/js/jplayer/",
|
||||
supplied: type,
|
||||
wmode: "window"
|
||||
});
|
||||
}
|
||||
?>
|
||||
|
||||
$("#popup-link").click(function() {
|
||||
$("#popup-share").show("slow");
|
||||
$("#popup-share-link").val($("#combo-box option:selected").attr("data-url"));
|
||||
});
|
||||
$(document).ready(function() {
|
||||
|
||||
$("#popup-close").click(function() {
|
||||
$("#popup-share").hide("slow");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div class="jp-logo"><img id="logo-img" onload='resizeToMaxHeight(this, 40);' src="<?php echo $this->logo ?>" /></div>
|
||||
<div id="popup-share">
|
||||
<a class="close-round" href="#" id="popup-close"></a>
|
||||
<input id="popup-share-link" type="text" readonly="readonly"/>
|
||||
</div>
|
||||
<div class="jp-stream stream-player-label">
|
||||
<div class="jp-stream-text"><?php echo _("Select stream:"); ?></div>
|
||||
$("#combo-box").change(function(eventObject) {
|
||||
var elem = $("#combo-box option:selected");
|
||||
setjPlayer(elem.attr("data-url"), elem.attr("data-type"), elem.attr("server-type"));
|
||||
});
|
||||
|
||||
<form id="form1" method="post" action="">
|
||||
<select id="combo-box">
|
||||
<?php
|
||||
foreach($ids as $id) {
|
||||
$streamData = Application_Model_StreamSetting::getStreamData($id);
|
||||
$url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"];
|
||||
$type = $streamData["${id}_type"];
|
||||
$serverType = $streamData["${id}_output"];
|
||||
if ($type == "ogg")
|
||||
$type = "oga";
|
||||
<?php
|
||||
if (count($ids) > 0) {
|
||||
$id = $ids[0];
|
||||
$streamData = Application_Model_StreamSetting::getStreamData($id);
|
||||
$url = "http://" . $streamData["${id}_host"] . ":" . $streamData["${id}_port"] . "/" . $streamData["${id}_mount"];
|
||||
$type = $streamData["${id}_type"];
|
||||
$serverType = $streamData["${id}_output"];
|
||||
if ($type == "ogg")
|
||||
$type = "oga";
|
||||
echo "setjPlayer('$url', '$type', '$serverType');";
|
||||
}
|
||||
?>
|
||||
|
||||
$label = "(".$streamData["${id}_host"].") ".$streamData["${id}_description"]." - ".$streamData["${id}_bitrate"]." kbit/s";
|
||||
echo sprintf("<option class='stream' value='%s' data-url='%s' data-type='%s' server-type='%s'>%s</option>", $id, $url, $type, $serverType, $label);
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
|
||||
$("#popup-link").click(function() {
|
||||
$("#popup-share").show("slow");
|
||||
$("#popup-share-link").val($("#combo-box option:selected").attr("data-url"));
|
||||
});
|
||||
|
||||
<div id="jp_container_1" class="jp-audio">
|
||||
<div class="jp-type-single">
|
||||
<div id="jp_interface_1" class="jp-gui jp-interface">
|
||||
<ul class="jp-controls">
|
||||
<li><a title="mute" tabindex="1" class="jp-mute" href="javascript:;"><?php echo _("mute") ?></a></li>
|
||||
<li><a title="unmute" tabindex="1" class="jp-unmute" href="javascript:;"><?php echo _("unmute") ?></a></li>
|
||||
</ul>
|
||||
<div class="jp-volume-bar">
|
||||
<div class="jp-volume-bar-value"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="jp_playlist_1" class="jp-playlist"></div>
|
||||
$("#popup-close").click(function() {
|
||||
$("#popup-share").hide("slow");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div class="jp-logo"><img id="logo-img" onload='resizeToMaxHeight(this, 40);' src="<?php echo $this->logo ?>" /></div>
|
||||
<div id="popup-share">
|
||||
<a class="close-round" href="#" id="popup-close"></a>
|
||||
<input id="popup-share-link" type="text" readonly="readonly" />
|
||||
</div>
|
||||
<div class="jp-stream stream-player-label">
|
||||
<div class="jp-stream-text"><?php echo _("Select stream:"); ?></div>
|
||||
|
||||
<form id="form1" method="post" action="">
|
||||
<select id="combo-box">
|
||||
<?php
|
||||
foreach ($ids as $id) {
|
||||
$streamData = Application_Model_StreamSetting::getStreamData($id);
|
||||
$url = "http://" . $streamData["${id}_host"] . ":" . $streamData["${id}_port"] . "/" . $streamData["${id}_mount"];
|
||||
$type = $streamData["${id}_type"];
|
||||
$serverType = $streamData["${id}_output"];
|
||||
if ($type == "ogg")
|
||||
$type = "oga";
|
||||
|
||||
$label = "(" . $streamData["${id}_host"] . ") " . $streamData["${id}_description"] . " - " . $streamData["${id}_bitrate"] . " kbit/s";
|
||||
echo sprintf("<option class='stream' value='%s' data-url='%s' data-type='%s' server-type='%s'>%s</option>", $id, $url, $type, $serverType, $label);
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
|
||||
|
||||
<div id="jp_container_1" class="jp-audio">
|
||||
<div class="jp-type-single">
|
||||
<div id="jp_interface_1" class="jp-gui jp-interface">
|
||||
<ul class="jp-controls">
|
||||
<li><a title="mute" tabindex="1" class="jp-mute" href="javascript:;"><?php echo _("mute") ?></a></li>
|
||||
<li><a title="unmute" tabindex="1" class="jp-unmute" href="javascript:;"><?php echo _("unmute") ?></a></li>
|
||||
</ul>
|
||||
<div class="jp-volume-bar">
|
||||
<div class="jp-volume-bar-value"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="jp_playlist_1" class="jp-playlist"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="<?php echo $this->css?>" type="text/css">
|
||||
<script src="<?php echo $this->playerhtml5_js?>" type="text/javascript"></script>
|
||||
<script src="<?php echo $this->jquery?>" type="text/javascript"></script>
|
||||
<link rel="stylesheet" href="<?php echo $this->css ?>" type="text/css">
|
||||
<script src="<?php echo $this->playerhtml5_js ?>" type="text/javascript"></script>
|
||||
<script src="<?php echo $this->jquery ?>" type="text/javascript"></script>
|
||||
|
||||
<script src="<?php echo $this->jquery_i18n?>" type="text/javascript"></script>
|
||||
<script src="<?php echo $this->jquery_i18n ?>" type="text/javascript"></script>
|
||||
<script src="/locale/general-translation-table" type="text/javascript"></script>
|
||||
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,700' rel='stylesheet' type='text/css'>
|
||||
<script type="text/javascript">
|
||||
|
@ -15,15 +15,15 @@
|
|||
var MAX_MOBILE_SCREEN_WIDTH = 760;
|
||||
|
||||
var Html5Player = function() {
|
||||
var id_element=getRandomIdPlayer(3000);
|
||||
var id_element = getRandomIdPlayer(3000);
|
||||
this.mobileDetect = this.mobileDetect();
|
||||
this.playerMode = "<?php echo $this->playerMode ?>";
|
||||
this.settings = {
|
||||
'elementId': id_element, // leave alone
|
||||
'autoplay': false, // or true (only works on some browsers)
|
||||
'forceHTTPS': false, // or true if the stream is in SSL (beware of the listening port, usually 8000)
|
||||
'replacePort': false, // false for disabled or '8000' as the usual start port, forces to specify replacePortTo.
|
||||
'replacePortTo': '' // either '' to use the default port of the browser (80/http, 443/https) or '8443' to force the port of the stream.
|
||||
'elementId': id_element, // leave alone
|
||||
'autoplay': false, // or true (only works on some browsers)
|
||||
'forceHTTPS': false, // or true if the stream is in SSL (beware of the listening port, usually 8000)
|
||||
'replacePort': false, // false for disabled or '8000' as the usual start port, forces to specify replacePortTo.
|
||||
'replacePortTo': '' // either '' to use the default port of the browser (80/http, 443/https) or '8443' to force the port of the stream.
|
||||
};
|
||||
|
||||
if (this.playerMode == "manual") {
|
||||
|
@ -33,8 +33,8 @@
|
|||
this.settings.url = <?php echo $this->streamURL ?>;
|
||||
this.settings.codec = "<?php echo $this->codec ?>";
|
||||
} else if (this.playerMode == "auto") {
|
||||
this.availableMobileStreamQueue = <?php echo $this->availableMobileStreams?>;
|
||||
this.availableDesktopStreamQueue = <?php echo $this->availableDesktopStreams?>;
|
||||
this.availableMobileStreamQueue = <?php echo $this->availableMobileStreams ?>;
|
||||
this.availableDesktopStreamQueue = <?php echo $this->availableDesktopStreams ?>;
|
||||
var stream = this.getNextAvailableStream();
|
||||
this.settings.url = stream["url"];
|
||||
this.settings.codec = stream["codec"];
|
||||
|
@ -43,10 +43,10 @@
|
|||
// Create the Muses player object
|
||||
playerhtml5_insert(this.settings);
|
||||
playerhtml5_audio = document.getElementById(id_element);
|
||||
if(playerhtml5_audio.played==true) togglePlayStopButton();
|
||||
if (playerhtml5_audio.played == true) togglePlayStopButton();
|
||||
|
||||
// Configure player title
|
||||
var player_title = <?php echo $this->player_title?>;
|
||||
var player_title = <?php echo $this->player_title ?>;
|
||||
if (player_title === null) {
|
||||
$(".airtime_header").hide();
|
||||
$(".airtime_player").css('height', '150px');
|
||||
|
@ -119,13 +119,14 @@
|
|||
playerhtml5_audio.pause();
|
||||
togglePlayStopButton();
|
||||
};
|
||||
|
||||
function togglePlayStopButton() {
|
||||
document.getElementById("play_button").classList.toggle("hide_button");
|
||||
document.getElementById("stop_button").classList.toggle("hide_button");
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$(".play").click(function () {
|
||||
$(".play").click(function() {
|
||||
if ($(this).hasClass("pause")) {
|
||||
html5Player.stop();
|
||||
} else {
|
||||
|
@ -144,9 +145,13 @@
|
|||
// and attaches it to the player UI.
|
||||
//
|
||||
// The metadata is fetched when the current track is about to end.
|
||||
function attachStreamMetadataToPlayer(){
|
||||
$.ajax({url: "<?php echo $this->metadata_api_url?>",
|
||||
data: {type:"interval",limit:"5"},
|
||||
function attachStreamMetadataToPlayer() {
|
||||
$.ajax({
|
||||
url: "<?php echo $this->metadata_api_url ?>",
|
||||
data: {
|
||||
type: "interval",
|
||||
limit: "5"
|
||||
},
|
||||
dataType: "jsonp",
|
||||
success: function(data) {
|
||||
|
||||
|
@ -155,7 +160,7 @@
|
|||
//Master/show source have no current track but they do have a current show.
|
||||
$("p.now_playing").html($.i18n._("On Air") + "<span>" + data.currentShow[0].name + "</span>");
|
||||
} else {
|
||||
$("p.now_playing").html($.i18n._("Off Air") + "<span>"+ $.i18n._("Offline") + "</span>");
|
||||
$("p.now_playing").html($.i18n._("Off Air") + "<span>" + $.i18n._("Offline") + "</span>");
|
||||
}
|
||||
time_to_next_track_starts = 20000;
|
||||
} else {
|
||||
|
@ -197,12 +202,10 @@
|
|||
}
|
||||
|
||||
// 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);
|
||||
metadataTimer = setTimeout(attachStreamMetadataToPlayer, time_to_next_track_starts + 3000);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
|
@ -212,59 +215,66 @@
|
|||
not work. It has to be "visible" on the page. As a hacky work around we
|
||||
set the height and width to 1px so users will not see it.
|
||||
*/
|
||||
#html5player_skin{width:0; height:0; overflow: hidden;}
|
||||
#html5player_skin {
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="player" <?php if ($this->player_style == "basic") echo "style='display:block;'"; else echo "style='display:none'"; ?>>
|
||||
<div class="airtime_player">
|
||||
<div id="player" <?php if ($this->player_style == "basic") echo "style='display:block;'";
|
||||
else echo "style='display:none'"; ?>>
|
||||
<div class="airtime_player">
|
||||
|
||||
<div class="airtime_header">
|
||||
<p class="station_name">fff</p>
|
||||
</div>
|
||||
|
||||
<div class="airtime_box">
|
||||
|
||||
<div class="airtime_button">
|
||||
<span id="play_button" class="play_button" onclick="html5Player.play()"></span>
|
||||
<span id="stop_button" class="stop_button hide_button" onclick="html5Player.stop()"></span>
|
||||
<div class="airtime_header">
|
||||
<p class="station_name">fff</p>
|
||||
</div>
|
||||
<p class="now_playing"></p>
|
||||
|
||||
</div>
|
||||
<div class="airtime_box">
|
||||
|
||||
<div style="clear:both"></div>
|
||||
<div class="airtime_button">
|
||||
<span id="play_button" class="play_button" onclick="html5Player.play()"></span>
|
||||
<span id="stop_button" class="stop_button hide_button" onclick="html5Player.stop()"></span>
|
||||
</div>
|
||||
<p class="now_playing"></p>
|
||||
|
||||
<div class="airtime_schedule">
|
||||
<p class="airtime_next"><?php echo _("Next") ?></p>
|
||||
<ul class="schedule_list">
|
||||
<li></li>
|
||||
</ul>
|
||||
</div>
|
||||
<a class="airtime_pro" target="_blank" href="<?php echo PRODUCT_SITE_URL; ?>"><?php printf(_('Powered by %s'), PRODUCT_NAME); ?></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both"></div>
|
||||
|
||||
<div id="premium_player" <?php if ($this->player_style == "premium") echo "style='display:block;'"; else echo "style='display:none'"; ?>>
|
||||
<div class="bottom_bar">
|
||||
<div class="play cont_btn"></div>
|
||||
<div class="airtime_schedule">
|
||||
<p class="airtime_next"><?php echo _("Next") ?></p>
|
||||
<ul class="schedule_list">
|
||||
<li></li>
|
||||
</ul>
|
||||
</div>
|
||||
<a class="airtime_pro" target="_blank" href="<?php echo PRODUCT_SITE_URL; ?>"><?php printf(_('Powered by %s'), PRODUCT_NAME); ?></a>
|
||||
|
||||
<div class="on_air">
|
||||
<p class="now_playing"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="premium_player" <?php if ($this->player_style == "premium") echo "style='display:block;'";
|
||||
else echo "style='display:none'"; ?>>
|
||||
<div class="bottom_bar">
|
||||
<div class="play cont_btn"></div>
|
||||
|
||||
<div id="html5player_skin">
|
||||
<script type="text/javascript">
|
||||
var html5Player = new Html5Player();
|
||||
</script>
|
||||
</div>
|
||||
<div class="on_air">
|
||||
<p class="now_playing"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="html5player_skin">
|
||||
<script type="text/javascript">
|
||||
var html5Player = new Html5Player();
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="<?php echo $this->css?>" type="text/css">
|
||||
<link rel="stylesheet" href="<?php echo $this->css ?>" type="text/css">
|
||||
<script src="<?php echo $this->jquery ?>" type="text/javascript"></script>
|
||||
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,700' rel='stylesheet' type='text/css'>
|
||||
<script src="/js/libs/handlebars.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="wpBody" class="schedule tab_content current">
|
||||
<script id="wpWidget" type="text/x-handlebars-template">
|
||||
<ul class="tabs">
|
||||
<div id="wpBody" class="schedule tab_content current">
|
||||
<script id="wpWidget" type="text/x-handlebars-template">
|
||||
<ul class="tabs">
|
||||
{{#each this}}
|
||||
<li>
|
||||
{{dayOfWeek}}<span>{{dayOfMonth}}</span>
|
||||
|
@ -40,65 +40,70 @@
|
|||
<a href="<?php echo PRODUCT_SITE_URL; ?>" target="_blank"><?php printf(_('Powered by %s'), PRODUCT_NAME); ?></a>
|
||||
</div>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
let importSchedule = <?php echo $this->schedule_data; ?>; // Object prepared in JSON, w/o API call
|
||||
let cleanSchedule = [];
|
||||
<script type="text/javascript">
|
||||
let importSchedule = <?php echo $this->schedule_data; ?>; // Object prepared in JSON, w/o API call
|
||||
let cleanSchedule = [];
|
||||
|
||||
// Insert shows into correct locations in importShows array (work-around for API v.1)
|
||||
let importShows = importSchedule["shows"];
|
||||
importShows.forEach(element => {
|
||||
// Convert timestamps to JS (sec -> millisec)
|
||||
var start_date = new Date(element.starts_timestamp*1000);
|
||||
var end_date = new Date(element.ends_timestamp*1000);
|
||||
// Check date of show so we know where to assign it to
|
||||
var format_start_date = start_date.getFullYear() + "-" + (start_date.getMonth()+1) + "-" + start_date.getDate();
|
||||
// Assign show to correct location
|
||||
if (importSchedule["weekDays"][format_start_date] !== undefined) {
|
||||
importSchedule["weekDays"][format_start_date]["shows"].push(
|
||||
{
|
||||
"show_start_hour": start_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
|
||||
"show_end_hour": end_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
|
||||
// Insert shows into correct locations in importShows array (work-around for API v.1)
|
||||
let importShows = importSchedule["shows"];
|
||||
importShows.forEach(element => {
|
||||
// Convert timestamps to JS (sec -> millisec)
|
||||
var start_date = new Date(element.starts_timestamp * 1000);
|
||||
var end_date = new Date(element.ends_timestamp * 1000);
|
||||
// Check date of show so we know where to assign it to
|
||||
var format_start_date = start_date.getFullYear() + "-" + (start_date.getMonth() + 1) + "-" + start_date.getDate();
|
||||
// Assign show to correct location
|
||||
if (importSchedule["weekDays"][format_start_date] !== undefined) {
|
||||
importSchedule["weekDays"][format_start_date]["shows"].push({
|
||||
"show_start_hour": start_date.toLocaleTimeString([], {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric'
|
||||
}),
|
||||
"show_end_hour": end_date.toLocaleTimeString([], {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric'
|
||||
}),
|
||||
"name": element.name
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Re-arraying data into a Handlebars-friendly format
|
||||
for (var i = 0; i <= 6; i++) {
|
||||
cleanSchedule.push(Object.values(importSchedule.weekDays)[i]);
|
||||
}
|
||||
|
||||
// Checker
|
||||
Handlebars.registerHelper('noShowsCheck', function(obj){
|
||||
return obj.length == 0;
|
||||
});
|
||||
|
||||
// Templating with Handlebars.js
|
||||
var wpWidget = document.querySelector('#wpWidget').innerHTML;
|
||||
var wpTemplate = Handlebars.compile(wpWidget);
|
||||
var compiledHTML = wpTemplate(cleanSchedule);
|
||||
document.querySelector('#wpBody').innerHTML = compiledHTML;
|
||||
|
||||
// Tabs logic
|
||||
$(document).ready(function() {
|
||||
//initialize first day to active
|
||||
$('.tabs').find("li").first().addClass("active");
|
||||
$('.schedule_content').find('.schedule_item').first().addClass("active");
|
||||
|
||||
$('.tabs li').click(function(){
|
||||
//var tab_id = $(this).attr('data-tab');
|
||||
var tab_id = "day-"+$(this).find('span').text();
|
||||
|
||||
$('.tabs li').removeClass('active');
|
||||
$('.schedule_item').removeClass('active');
|
||||
|
||||
$(this).addClass('active');
|
||||
$("#"+tab_id).addClass('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
// Re-arraying data into a Handlebars-friendly format
|
||||
for (var i = 0; i <= 6; i++) {
|
||||
cleanSchedule.push(Object.values(importSchedule.weekDays)[i]);
|
||||
}
|
||||
|
||||
// Checker
|
||||
Handlebars.registerHelper('noShowsCheck', function(obj) {
|
||||
return obj.length == 0;
|
||||
});
|
||||
|
||||
// Templating with Handlebars.js
|
||||
var wpWidget = document.querySelector('#wpWidget').innerHTML;
|
||||
var wpTemplate = Handlebars.compile(wpWidget);
|
||||
var compiledHTML = wpTemplate(cleanSchedule);
|
||||
document.querySelector('#wpBody').innerHTML = compiledHTML;
|
||||
|
||||
// Tabs logic
|
||||
$(document).ready(function() {
|
||||
//initialize first day to active
|
||||
$('.tabs').find("li").first().addClass("active");
|
||||
$('.schedule_content').find('.schedule_item').first().addClass("active");
|
||||
|
||||
$('.tabs li').click(function() {
|
||||
//var tab_id = $(this).attr('data-tab');
|
||||
var tab_id = "day-" + $(this).find('span').text();
|
||||
|
||||
$('.tabs li').removeClass('active');
|
||||
$('.schedule_item').removeClass('active');
|
||||
|
||||
$(this).addClass('active');
|
||||
$("#" + tab_id).addClass('active');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="error-content" id="error-400">
|
||||
<h2><?php echo _("Bad Request!")?></h2>
|
||||
<p><?php echo _("The requested action is not supported!")?></p>
|
||||
<h2><?php echo _("Bad Request!") ?></h2>
|
||||
<p><?php echo _("The requested action is not supported!") ?></p>
|
||||
<div class="button-bar">
|
||||
<a class="toggle-button" href="<?php echo $this->helpUrl; ?>"><?php echo _("Help") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="error-content" id="error-403">
|
||||
<h2><?php echo _("Access Denied!")?></h2>
|
||||
<p><?php echo _("You do not have permission to access this page!")?></p>
|
||||
<h2><?php echo _("Access Denied!") ?></h2>
|
||||
<p><?php echo _("You do not have permission to access this page!") ?></p>
|
||||
<div class="button-bar">
|
||||
<a class="toggle-button" href="<?php echo $this->helpUrl; ?>"><?php echo _("Help") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="error-content" id="error-404">
|
||||
<h2><?php echo _("Page not found!")?></h2>
|
||||
<p><?php echo _("We couldn't find the page you were looking for.")?></p>
|
||||
<h2><?php echo _("Page not found!") ?></h2>
|
||||
<p><?php echo _("We couldn't find the page you were looking for.") ?></p>
|
||||
<div class="button-bar">
|
||||
<a class="toggle-button" href="<?php echo $this->helpUrl; ?>"><?php echo _("Help") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="error-content" id="error-500">
|
||||
<h2><?php echo _("Oops!")?></h2>
|
||||
<p><?php echo _("Something went wrong!")?></p>
|
||||
<h2><?php echo _("Oops!") ?></h2>
|
||||
<p><?php echo _("Something went wrong!") ?></p>
|
||||
<div class="button-bar">
|
||||
<a class="toggle-button" href="<?php echo $this->helpUrl; ?>"><?php echo _("Help") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN";
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
|
||||
<html xmlns=" http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><?php echo _("An error has occurred.") ?></title>
|
||||
<?php echo $this->headLink(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="error-content">
|
||||
<h2><?php echo $this->escape($this->message)?></h2>
|
||||
<p><?php echo _("Looks like the page you were looking for doesn't exist!")?></p>
|
||||
<h2><?php echo $this->escape($this->message) ?></h2>
|
||||
<p><?php echo _("Looks like the page you were looking for doesn't exist!") ?></p>
|
||||
<div class="button-bar">
|
||||
<a class="toggle-button" href="<?php echo $this->baseUrl('dashboard/help'); ?>"><?php echo _("Help") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<dl>
|
||||
<dt id="add_show_has_autoplaylist_label">
|
||||
<label for="add_show_has_autoplaylist_label">
|
||||
<?php echo $this->element->getElement('add_show_has_autoplaylist')->getLabel()?>
|
||||
<?php echo $this->element->getElement('add_show_has_autoplaylist')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
|
@ -10,24 +10,24 @@
|
|||
<span class="show_autoplaylist_help_icon" aria-describedby="ui-tooltip-2"></span>
|
||||
</dd>
|
||||
|
||||
<div id="add_show_playlist_dropdown">
|
||||
<p><?php echo _("Autoloading playlists' contents are added to shows one hour before the show airs. <a target='_blank' href='http://libretime.org/docs/playlists'>More information</a>"); ?></p>
|
||||
<dt id="add_show_autoplaylist_id">
|
||||
<label for="add_show_autoplaylist_id" class="required">
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_id')->getLabel()?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_id') ?>
|
||||
</div>
|
||||
<div id="add_show_autoplaylist_repeat">
|
||||
<dt id="add_show_autoplaylist_repeat_label">
|
||||
<label for="add_show_autoplaylist_repeat_label">
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_repeat')->getLabel()?>
|
||||
</label>
|
||||
<div id="add_show_playlist_dropdown">
|
||||
<p><?php echo _("Autoloading playlists' contents are added to shows one hour before the show airs. <a target='_blank' href='http://libretime.org/docs/playlists'>More information</a>"); ?></p>
|
||||
<dt id="add_show_autoplaylist_id">
|
||||
<label for="add_show_autoplaylist_id" class="required">
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_id')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_repeat') ?>
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_id') ?>
|
||||
</div>
|
||||
<div id="add_show_autoplaylist_repeat">
|
||||
<dt id="add_show_autoplaylist_repeat_label">
|
||||
<label for="add_show_autoplaylist_repeat_label">
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_repeat')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<?php echo $this->element->getElement('add_show_autoplaylist_repeat') ?>
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<dt id="<?php echo $this->element->getName() ?>-label" class="<?php echo $this->class ?>">
|
||||
<?php echo $this->formLabel($this->element->getName(),
|
||||
$this->element->getLabel()) ?>
|
||||
<?php echo $this->formLabel(
|
||||
$this->element->getName(),
|
||||
$this->element->getLabel()
|
||||
) ?>
|
||||
</dt>
|
||||
<dd id="<?php echo $this->element->getName() ?>-element" class="<?php echo $this->class ?>">
|
||||
<?php echo $this->{$this->element->helper}(
|
||||
|
@ -8,8 +10,8 @@
|
|||
$this->element->getValue(),
|
||||
$this->element->getAttribs()
|
||||
) ?>
|
||||
<?php if($this->element->hasErrors()) {
|
||||
echo $this->formErrors($this->element->getMessages());
|
||||
}
|
||||
<?php if ($this->element->hasErrors()) {
|
||||
echo $this->formErrors($this->element->getMessages());
|
||||
}
|
||||
?>
|
||||
</dd>
|
||||
|
|
|
@ -15,5 +15,5 @@
|
|||
<?php echo $this->element->getElement("show_source_port")->render() ?>
|
||||
<?php echo $this->element->getElement("show_source_mount")->render() ?>
|
||||
</fieldset>
|
||||
</dl>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -1,44 +1,48 @@
|
|||
<fieldset id="add_show_rebroadcast_absolute">
|
||||
<dl>
|
||||
<dt id="add_show_hosts_rebroadcast_day-label" class="block-display">
|
||||
<label for="add_show_rebroadcast_day" class="optional"><?php echo _("Choose Days:"); ?></label>
|
||||
</dt>
|
||||
<dd id="add_show_rebroadcast_day-element" class="block-display clearfix">
|
||||
<ul class="formrow-repeat">
|
||||
<?php for($i=1; $i<=10; $i++): ?>
|
||||
<li <?php if(($i > 1)
|
||||
&& ($this->element->getElement('add_show_rebroadcast_date_absolute_'.$i)->getValue() == ""
|
||||
&& $this->element->getElement('add_show_rebroadcast_time_absolute_'.$i)->getValue() == "")){echo 'style=display:none';} ?>>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_date_absolute_'.$i) ?>
|
||||
<span class="inline-text">@</span>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_time_absolute_'.$i) ?>
|
||||
<?php if($i > 1): ?>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default" id="remove_rebroadcast_absolute_<?php echo $i ?>">
|
||||
<span class="ui-icon ui-icon-closethick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Remove") ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php if(($this->element->getElement('add_show_rebroadcast_date_absolute_'.$i)->hasErrors())
|
||||
|| ($this->element->getElement('add_show_rebroadcast_time_absolute_'.$i)->hasErrors())) : ?>
|
||||
<ul class='errors'>
|
||||
<?php $errors = array_merge(
|
||||
$this->element->getElement('add_show_rebroadcast_date_absolute_'.$i)->getMessages(),
|
||||
$this->element->getElement('add_show_rebroadcast_time_absolute_'.$i)->getMessages()
|
||||
<dt id="add_show_hosts_rebroadcast_day-label" class="block-display">
|
||||
<label for="add_show_rebroadcast_day" class="optional"><?php echo _("Choose Days:"); ?></label>
|
||||
</dt>
|
||||
<dd id="add_show_rebroadcast_day-element" class="block-display clearfix">
|
||||
<ul class="formrow-repeat">
|
||||
<?php for ($i = 1; $i <= 10; $i++) : ?>
|
||||
<li <?php if (($i > 1)
|
||||
&& ($this->element->getElement('add_show_rebroadcast_date_absolute_' . $i)->getValue() == ""
|
||||
&& $this->element->getElement('add_show_rebroadcast_time_absolute_' . $i)->getValue() == "")
|
||||
) {
|
||||
echo 'style=display:none';
|
||||
} ?>>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_date_absolute_' . $i) ?>
|
||||
<span class="inline-text">@</span>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_time_absolute_' . $i) ?>
|
||||
<?php if ($i > 1) : ?>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default" id="remove_rebroadcast_absolute_<?php echo $i ?>">
|
||||
<span class="ui-icon ui-icon-closethick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Remove") ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php if (($this->element->getElement('add_show_rebroadcast_date_absolute_' . $i)->hasErrors())
|
||||
|| ($this->element->getElement('add_show_rebroadcast_time_absolute_' . $i)->hasErrors())
|
||||
) : ?>
|
||||
<ul class='errors'>
|
||||
<?php $errors = array_merge(
|
||||
$this->element->getElement('add_show_rebroadcast_date_absolute_' . $i)->getMessages(),
|
||||
$this->element->getElement('add_show_rebroadcast_time_absolute_' . $i)->getMessages()
|
||||
);
|
||||
?>
|
||||
?>
|
||||
|
||||
<?php foreach($errors as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endfor; ?>
|
||||
</ul>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default add_absolute_rebroadcast_day">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Add") ?></span>
|
||||
</a>
|
||||
</dd>
|
||||
<?php foreach ($errors as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endfor; ?>
|
||||
</ul>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default add_absolute_rebroadcast_day">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Add") ?></span>
|
||||
</a>
|
||||
</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -1,45 +1,49 @@
|
|||
<fieldset id="add_show_rebroadcast_relative">
|
||||
<dl>
|
||||
<dt id="add_show_hosts_rebroadcast_repeat_day-label" class="block-display">
|
||||
<label for="add_show_rebroadcast_repeat_day" class="optional"><?php echo _("Repeat Days:"); ?></label>
|
||||
<label for="add_show_rebroadcast_repeat_day" class="optional"><?php echo _("Repeat Days:"); ?></label>
|
||||
</dt>
|
||||
<dd id="add_show_rebroadcast_repeat_day-element" class="block-display clearfix">
|
||||
<ul class="formrow-repeat">
|
||||
<?php for($i=1; $i<=10; $i++): ?>
|
||||
<li <?php if(($i > 1)
|
||||
&& ($this->element->getElement('add_show_rebroadcast_date_'.$i)->getValue() == ""
|
||||
&& $this->element->getElement('add_show_rebroadcast_time_'.$i)->getValue() == "")){echo 'style=display:none';} ?>>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_date_'.$i) ?>
|
||||
<span class="inline-text">@</span>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_time_'.$i) ?>
|
||||
<?php if($i > 1): ?>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default" id="remove_rebroadcast_<?php echo $i ?>">
|
||||
<span class="ui-icon ui-icon-closethick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Remove") ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php if(($this->element->getElement('add_show_rebroadcast_date_'.$i)->hasErrors())
|
||||
|| ($this->element->getElement('add_show_rebroadcast_time_'.$i)->hasErrors())) : ?>
|
||||
<ul class='errors'>
|
||||
<?php $errors = array_merge(
|
||||
$this->element->getElement('add_show_rebroadcast_date_'.$i)->getMessages(),
|
||||
$this->element->getElement('add_show_rebroadcast_time_'.$i)->getMessages()
|
||||
);
|
||||
?>
|
||||
<?php for ($i = 1; $i <= 10; $i++) : ?>
|
||||
<li <?php if (($i > 1)
|
||||
&& ($this->element->getElement('add_show_rebroadcast_date_' . $i)->getValue() == ""
|
||||
&& $this->element->getElement('add_show_rebroadcast_time_' . $i)->getValue() == "")
|
||||
) {
|
||||
echo 'style=display:none';
|
||||
} ?>>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_date_' . $i) ?>
|
||||
<span class="inline-text">@</span>
|
||||
<?php echo $this->element->getElement('add_show_rebroadcast_time_' . $i) ?>
|
||||
<?php if ($i > 1) : ?>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default" id="remove_rebroadcast_<?php echo $i ?>">
|
||||
<span class="ui-icon ui-icon-closethick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Remove") ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php if (($this->element->getElement('add_show_rebroadcast_date_' . $i)->hasErrors())
|
||||
|| ($this->element->getElement('add_show_rebroadcast_time_' . $i)->hasErrors())
|
||||
) : ?>
|
||||
<ul class='errors'>
|
||||
<?php $errors = array_merge(
|
||||
$this->element->getElement('add_show_rebroadcast_date_' . $i)->getMessages(),
|
||||
$this->element->getElement('add_show_rebroadcast_time_' . $i)->getMessages()
|
||||
);
|
||||
?>
|
||||
|
||||
<?php foreach($errors as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php foreach ($errors as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
|
||||
<?php endfor; ?>
|
||||
</ul>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default add_absolute_rebroadcast_day">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Add") ?></span>
|
||||
</a>
|
||||
<a class="ui-button ui-button-icon-only ui-widget ui-state-default add_absolute_rebroadcast_day">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("Add") ?></span>
|
||||
</a>
|
||||
</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<dt id="<?php echo $this->element->getName() ?>-label" class="<?php echo $this->class ?>">
|
||||
<?php echo $this->formLabel($this->element->getName(),
|
||||
$this->element->getLabel()) ?>
|
||||
<?php echo $this->formLabel(
|
||||
$this->element->getName(),
|
||||
$this->element->getLabel()
|
||||
) ?>
|
||||
</dt>
|
||||
<dd id="<?php echo $this->element->getName() ?>-element">
|
||||
<?php echo $this->{$this->element->helper}(
|
||||
|
@ -9,5 +11,7 @@
|
|||
$this->element->getAttribs()
|
||||
) ?>
|
||||
|
||||
<?php if($this->element->hasErrors()) { echo $this->formErrors($this->element->getMessages());} ?>
|
||||
<?php if ($this->element->hasErrors()) {
|
||||
echo $this->formErrors($this->element->getMessages());
|
||||
} ?>
|
||||
</dd>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<dl>
|
||||
<dt id="add_show_start_now-label">
|
||||
<label for="add_show_start_now">
|
||||
<?php echo $this->element->getElement('add_show_start_now')->getLabel()?>
|
||||
<?php echo $this->element->getElement('add_show_start_now')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
|
@ -12,29 +12,30 @@
|
|||
|
||||
<dt id="add_show_start_date-label">
|
||||
<label for="add_show_start_date" class="required">
|
||||
<?php //echo $this->element->getElement('add_show_start_date')->getLabel()?>
|
||||
<?php //echo $this->element->getElement('add_show_start_date')->getLabel()
|
||||
?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<?php echo $this->element->getElement('add_show_start_date') ?>
|
||||
<?php echo $this->element->getElement('add_show_start_time') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('add_show_start_date')->hasErrors() || $this->element->getElement('add_show_start_time')->hasErrors()){ ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('add_show_start_date')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach($this->element->getElement('add_show_start_time')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php if ($this->element->getElement('add_show_start_date')->hasErrors() || $this->element->getElement('add_show_start_time')->hasErrors()) { ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('add_show_start_date')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($this->element->getElement('add_show_start_time')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
|
||||
<dt id="add_show_end_date_no_repeat-label">
|
||||
<label for="add_show_end_date_no_repeat" class="required">
|
||||
<?php echo $this->element->getElement('add_show_end_date_no_repeat')->getLabel()?>
|
||||
<?php echo $this->element->getElement('add_show_end_date_no_repeat')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
|
||||
|
@ -42,15 +43,15 @@
|
|||
<?php echo $this->element->getElement('add_show_end_date_no_repeat') ?>
|
||||
<?php echo $this->element->getElement('add_show_end_time') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('add_show_end_date_no_repeat')->hasErrors() || $this->element->getElement('add_show_end_time')->hasErrors()){ ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('add_show_end_date_no_repeat')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach($this->element->getElement('add_show_end_time')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php if ($this->element->getElement('add_show_end_date_no_repeat')->hasErrors() || $this->element->getElement('add_show_end_time')->hasErrors()) { ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('add_show_end_date_no_repeat')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($this->element->getElement('add_show_end_time')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
<dt id="add_show_duration-label">
|
||||
<label for="add_show_duration" class="optional">
|
||||
|
@ -59,14 +60,14 @@
|
|||
</dt>
|
||||
<dd id="add_show_duration-element">
|
||||
<?php echo $this->element->getElement('add_show_duration') ?>
|
||||
<img id="icon-loader-small"/>
|
||||
<img id="icon-loader-small" />
|
||||
</dd>
|
||||
<?php if($this->element->getElement('add_show_duration')->hasErrors()){ ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('add_show_duration')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php if ($this->element->getElement('add_show_duration')->hasErrors()) { ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('add_show_duration')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
<dt id="add_show_timezone-label">
|
||||
|
@ -85,5 +86,5 @@
|
|||
<dd id="add_show_repeats-element">
|
||||
<?php echo $this->element->getElement('add_show_repeats') ?>
|
||||
</dd>
|
||||
</dl>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<?php echo $this->element->getElement('his_time_start') ?>
|
||||
<?php echo $this->element->getElement('his_date_end') ?>
|
||||
<?php echo $this->element->getElement('his_time_end') ?>
|
||||
<div id="his_submit" class=" btn btn-small" title="<?php echo _("Filter History")?>">
|
||||
<i class="icon-white icon-search"></i><span><?php echo _("Filter History")?></span>
|
||||
<div id="his_submit" class=" btn btn-small" title="<?php echo _("Filter History") ?>">
|
||||
<i class="icon-white icon-search"></i><span><?php echo _("Filter History") ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,37 +1,37 @@
|
|||
<form>
|
||||
<?php $form = $this->element ?>
|
||||
<?php $form = $this->element ?>
|
||||
|
||||
<dl class="zend_form">
|
||||
<dl class="zend_form">
|
||||
|
||||
<?php $name = "his_file_id"; ?>
|
||||
<dd id="<?php echo $name;?>-element">
|
||||
<?php echo $form->getElement($name); ?>
|
||||
</dd>
|
||||
<?php $name = "his_file_id"; ?>
|
||||
<dd id="<?php echo $name; ?>-element">
|
||||
<?php echo $form->getElement($name); ?>
|
||||
</dd>
|
||||
|
||||
<?php foreach ($form->getSubForm('his_file_template') as $index=>$el): ?>
|
||||
<?php $name = $el->getName(); ?>
|
||||
<?php foreach ($form->getSubForm('his_file_template') as $index => $el) : ?>
|
||||
<?php $name = $el->getName(); ?>
|
||||
|
||||
<dt id="<?php echo $name;?>-label">
|
||||
<label for="<?php echo $name;?>"><?php echo $el->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name;?>-element">
|
||||
<?php echo $el ?>
|
||||
<?php if ($el->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($el->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<dt id="<?php echo $name; ?>-label">
|
||||
<label for="<?php echo $name; ?>"><?php echo $el->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name; ?>-element">
|
||||
<?php echo $el ?>
|
||||
<?php if ($el->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($el->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<dd id="submitButtons-element">
|
||||
<?php foreach (array("his_file_save", "his_file_cancel") as $name) : ?>
|
||||
<?php echo $form->getElement($name); ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
</dd>
|
||||
|
||||
<dd id="submitButtons-element">
|
||||
<?php foreach (array("his_file_save", "his_file_cancel") as $name): ?>
|
||||
<?php echo $form->getElement($name); ?>
|
||||
<?php endforeach;?>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</dl>
|
||||
|
||||
</form>
|
||||
|
|
|
@ -1,86 +1,86 @@
|
|||
<form>
|
||||
<?php $form = $this->element ?>
|
||||
<?php $form = $this->element ?>
|
||||
|
||||
<dl class="zend_form">
|
||||
<dl class="zend_form">
|
||||
|
||||
<?php $formErrors = $form->getErrorMessages() ?>
|
||||
<?php if (count($formErrors) > 0) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($formErrors as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php $formErrors = $form->getErrorMessages() ?>
|
||||
<?php if (count($formErrors) > 0) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($formErrors as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $name = "his_item_id"; ?>
|
||||
<dd id="<?php echo $name; ?>-element">
|
||||
<?php echo $form->getElement($name); ?>
|
||||
</dd>
|
||||
|
||||
<?php foreach (array("his_item_starts", "his_item_ends") as $name) : ?>
|
||||
<dt id="<?php echo $name; ?>-label">
|
||||
<label for="<?php echo $name; ?>"><?php echo $form->getElement($name)->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name; ?>-element">
|
||||
<div class="well">
|
||||
<div id="<?php echo $name; ?>_datetimepicker" class="input-append date">
|
||||
<?php echo $form->getElement($name) ?>
|
||||
<span class="add-on">
|
||||
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ($form->getElement($name)->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($form->getElement($name)->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $name = "his_item_id"; ?>
|
||||
<dd id="<?php echo $name;?>-element">
|
||||
<?php echo $form->getElement($name); ?>
|
||||
</dd>
|
||||
|
||||
<?php foreach (array("his_item_starts", "his_item_ends") as $name): ?>
|
||||
<dt id="<?php echo $name;?>-label">
|
||||
<label for="<?php echo $name;?>"><?php echo $form->getElement($name)->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name;?>-element">
|
||||
<div class="well">
|
||||
<div id="<?php echo $name;?>_datetimepicker" class="input-append date">
|
||||
<?php echo $form->getElement($name) ?>
|
||||
<span class="add-on">
|
||||
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
|
||||
</span>
|
||||
<dd id="his_choose_instance">
|
||||
<div>
|
||||
<label for="<?php echo $name; ?>"><?php echo _("Choose Show Instance") ?></label>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ($form->getElement($name)->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($form->getElement($name)->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<div>
|
||||
<?php $select = $form->getElement("his_instance_select"); ?>
|
||||
<?php if (isset($select)) : ?>
|
||||
<?php echo $select; ?>
|
||||
<?php else : ?>
|
||||
<select id="his_instance_select">
|
||||
<option value="0"><?php echo _("No Show") ?></option>
|
||||
</select>
|
||||
<?php endif; ?>
|
||||
<button class="btn" type="button" id="his_instance_retrieve"><?php echo _("Find") ?></button>
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
<?php foreach ($form->getSubForm('his_item_template') as $index => $el) : ?>
|
||||
<?php $name = $el->getName(); ?>
|
||||
|
||||
<dt id="<?php echo $name; ?>-label">
|
||||
<label for="<?php echo $name; ?>"><?php echo $el->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name; ?>-element">
|
||||
<?php echo $el ?>
|
||||
<?php if ($el->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($el->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<dd id="submitButtons-element">
|
||||
<?php foreach (array("his_item_save", "his_item_cancel") as $name) : ?>
|
||||
<?php echo $form->getElement($name); ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach;?>
|
||||
</dd>
|
||||
|
||||
<dd id="his_choose_instance">
|
||||
<div>
|
||||
<label for="<?php echo $name;?>"><?php echo _("Choose Show Instance") ?></label>
|
||||
</div>
|
||||
<div>
|
||||
<?php $select = $form->getElement("his_instance_select"); ?>
|
||||
<?php if (isset($select)): ?>
|
||||
<?php echo $select; ?>
|
||||
<?php else: ?>
|
||||
<select id="his_instance_select">
|
||||
<option value="0"><?php echo _("No Show") ?></option>
|
||||
</select>
|
||||
<?php endif; ?>
|
||||
<button class="btn" type="button" id="his_instance_retrieve"><?php echo _("Find") ?></button>
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
<?php foreach ($form->getSubForm('his_item_template') as $index=>$el): ?>
|
||||
<?php $name = $el->getName(); ?>
|
||||
|
||||
<dt id="<?php echo $name;?>-label">
|
||||
<label for="<?php echo $name;?>"><?php echo $el->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $name;?>-element">
|
||||
<?php echo $el ?>
|
||||
<?php if ($el->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($el->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<dd id="submitButtons-element">
|
||||
<?php foreach (array("his_item_save", "his_item_cancel") as $name): ?>
|
||||
<?php echo $form->getElement($name); ?>
|
||||
<?php endforeach;?>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</dl>
|
||||
|
||||
</form>
|
||||
|
|
|
@ -1,165 +1,165 @@
|
|||
<h2><?php echo _("My Profile") ?></h2>
|
||||
<div id="current-user-container">
|
||||
|
||||
<form id="current-user-form" class="edit-user-global" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<dl class="zend_form">
|
||||
<?php echo $this->element->getElement('cu_user_id') ?>
|
||||
<dt id="cu-username-label">
|
||||
<label><?php echo $this->element->getElement('cu_login')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-username-element">
|
||||
<?php echo $this->element->getElement('cu_login') ?>
|
||||
<?php if($this->element->getElement('cu_login')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_login')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-password-label">
|
||||
<label><?php echo $this->element->getElement('cu_password')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-password-element">
|
||||
<?php echo $this->element->getElement('cu_password') ?>
|
||||
<?php if($this->element->getElement('cu_password')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_password')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-passwordVerify-label">
|
||||
<label><?php echo $this->element->getElement('cu_passwordVerify')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-passwordVerify-element">
|
||||
<?php echo $this->element->getElement('cu_passwordVerify') ?>
|
||||
<?php if($this->element->getElement('cu_passwordVerify')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_passwordVerify')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-firstname-label">
|
||||
<label><?php echo $this->element->getElement('cu_first_name')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-firstname-element">
|
||||
<?php echo $this->element->getElement('cu_first_name') ?>
|
||||
<?php if($this->element->getElement('cu_first_name')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_first_name')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-lastname-label">
|
||||
<label><?php echo $this->element->getElement('cu_last_name')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-lastname-element">
|
||||
<?php echo $this->element->getElement('cu_last_name') ?>
|
||||
<?php if($this->element->getElement('cu_last_name')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_last_name')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-email-label">
|
||||
<label><?php echo $this->element->getElement('cu_email')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-email-element">
|
||||
<?php echo $this->element->getElement('cu_email') ?>
|
||||
<?php if($this->element->getElement('cu_email')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_email')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-cell_phone-label">
|
||||
<label><?php echo $this->element->getElement('cu_cell_phone')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-cell_phone-element">
|
||||
<?php echo $this->element->getElement('cu_cell_phone') ?>
|
||||
<?php if($this->element->getElement('cu_cell_phone')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_cell_phone')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-skype-label">
|
||||
<label><?php echo $this->element->getElement('cu_skype')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-skype-element">
|
||||
<?php echo $this->element->getElement('cu_skype') ?>
|
||||
<?php if($this->element->getElement('cu_skype')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_skype')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-jabber-label">
|
||||
<label><?php echo $this->element->getElement('cu_jabber')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-jabber-element">
|
||||
<?php echo $this->element->getElement('cu_jabber') ?>
|
||||
<?php if($this->element->getElement('cu_jabber')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_jabber')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-locale-label">
|
||||
<label><?php echo $this->element->getElement('cu_locale')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-locale-element">
|
||||
<?php echo $this->element->getElement('cu_locale') ?>
|
||||
<?php if($this->element->getElement('cu_locale')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_locale')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-timezone-label">
|
||||
<label><?php echo $this->element->getElement('cu_timezone')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-timezone-element">
|
||||
<?php echo $this->element->getElement('cu_timezone') ?>
|
||||
<?php if($this->element->getElement('cu_timezone')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach($this->element->getElement('cu_timezone')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php echo $this->element->getElement('csrf') ?>
|
||||
</dl>
|
||||
<button type="submit" id="cu_save_user" class="btn right-floated"><?php echo _("Save")?></button>
|
||||
</form>
|
||||
<form id="current-user-form" class="edit-user-global" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<dl class="zend_form">
|
||||
<?php echo $this->element->getElement('cu_user_id') ?>
|
||||
<dt id="cu-username-label">
|
||||
<label><?php echo $this->element->getElement('cu_login')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-username-element">
|
||||
<?php echo $this->element->getElement('cu_login') ?>
|
||||
<?php if ($this->element->getElement('cu_login')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_login')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-password-label">
|
||||
<label><?php echo $this->element->getElement('cu_password')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-password-element">
|
||||
<?php echo $this->element->getElement('cu_password') ?>
|
||||
<?php if ($this->element->getElement('cu_password')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_password')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-passwordVerify-label">
|
||||
<label><?php echo $this->element->getElement('cu_passwordVerify')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-passwordVerify-element">
|
||||
<?php echo $this->element->getElement('cu_passwordVerify') ?>
|
||||
<?php if ($this->element->getElement('cu_passwordVerify')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_passwordVerify')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-firstname-label">
|
||||
<label><?php echo $this->element->getElement('cu_first_name')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-firstname-element">
|
||||
<?php echo $this->element->getElement('cu_first_name') ?>
|
||||
<?php if ($this->element->getElement('cu_first_name')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_first_name')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-lastname-label">
|
||||
<label><?php echo $this->element->getElement('cu_last_name')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-lastname-element">
|
||||
<?php echo $this->element->getElement('cu_last_name') ?>
|
||||
<?php if ($this->element->getElement('cu_last_name')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_last_name')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-email-label">
|
||||
<label><?php echo $this->element->getElement('cu_email')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-email-element">
|
||||
<?php echo $this->element->getElement('cu_email') ?>
|
||||
<?php if ($this->element->getElement('cu_email')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_email')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-cell_phone-label">
|
||||
<label><?php echo $this->element->getElement('cu_cell_phone')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-cell_phone-element">
|
||||
<?php echo $this->element->getElement('cu_cell_phone') ?>
|
||||
<?php if ($this->element->getElement('cu_cell_phone')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_cell_phone')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-skype-label">
|
||||
<label><?php echo $this->element->getElement('cu_skype')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-skype-element">
|
||||
<?php echo $this->element->getElement('cu_skype') ?>
|
||||
<?php if ($this->element->getElement('cu_skype')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_skype')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-jabber-label">
|
||||
<label><?php echo $this->element->getElement('cu_jabber')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-jabber-element">
|
||||
<?php echo $this->element->getElement('cu_jabber') ?>
|
||||
<?php if ($this->element->getElement('cu_jabber')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_jabber')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-locale-label">
|
||||
<label><?php echo $this->element->getElement('cu_locale')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-locale-element">
|
||||
<?php echo $this->element->getElement('cu_locale') ?>
|
||||
<?php if ($this->element->getElement('cu_locale')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_locale')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="cu-timezone-label">
|
||||
<label><?php echo $this->element->getElement('cu_timezone')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="cu-timezone-element">
|
||||
<?php echo $this->element->getElement('cu_timezone') ?>
|
||||
<?php if ($this->element->getElement('cu_timezone')->hasErrors()) : ?>
|
||||
<ul class='errors edit-user-errors'>
|
||||
<?php foreach ($this->element->getElement('cu_timezone')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php echo $this->element->getElement('csrf') ?>
|
||||
</dl>
|
||||
<button type="submit" id="cu_save_user" class="btn right-floated"><?php echo _("Save") ?></button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<dt id="username-label">
|
||||
<label for="username" class="required">
|
||||
<?php echo $this->element->getElement('username')->getLabel() ?>
|
||||
<?php echo $this->element->getElement('username')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="username-element">
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
<dt id="password-label">
|
||||
<label for="password" class="required">
|
||||
<?php echo $this->element->getElement('password')->getLabel() ?>
|
||||
<?php echo $this->element->getElement('password')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="password-element">
|
||||
|
@ -21,7 +21,7 @@
|
|||
|
||||
<dt id="locale-label">
|
||||
<label for="locale" class="required">
|
||||
<?php echo $this->element->getElement('locale')->getLabel() ?>
|
||||
<?php echo $this->element->getElement('locale')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="locale-element">
|
||||
|
|
|
@ -2,34 +2,34 @@
|
|||
<dl class="zend_form">
|
||||
<dt id="new-password-label">
|
||||
<label for="new-password" class="required">
|
||||
<?php echo $this->element->getElement('password')->getLabel() ?>
|
||||
<?php echo $this->element->getElement('password')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="new-password-element">
|
||||
<?php echo $this->element->getElement('password') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('password')->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('password')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php if ($this->element->getElement('password')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('password')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<dt id="confirm-password-label">
|
||||
<label for="confirm-password" class="required">
|
||||
<?php echo $this->element->getElement('password_confirm')->getLabel() ?>
|
||||
<?php echo $this->element->getElement('password_confirm')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="confirm-password-element">
|
||||
<?php echo $this->element->getElement('password_confirm') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('password_confirm')->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('password_confirm')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php if ($this->element->getElement('password_confirm')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('password_confirm')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<dt id="submit-label"> </dt>
|
||||
|
|
|
@ -2,15 +2,15 @@
|
|||
<form enctype="application/x-www-form-urlencoded" method="post" action="">
|
||||
<dl class="zend_form">
|
||||
|
||||
<p><?php echo(_("Please enter both your username and email address.")); ?></p>
|
||||
<p><?php echo (_("Please enter both your username and email address.")); ?></p>
|
||||
<dt id="username-label">
|
||||
<label for="username" class="required">
|
||||
<?php echo $this->element->getElement('username')->getLabel() ?>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="username-element">
|
||||
<?php echo $this->element->getElement('username') ?>
|
||||
</dd>
|
||||
</dt>
|
||||
<dd id="username-element">
|
||||
<?php echo $this->element->getElement('username') ?>
|
||||
</dd>
|
||||
</dt>
|
||||
|
||||
<dt id="email-label">
|
||||
|
@ -21,9 +21,9 @@
|
|||
<dd id="email-element">
|
||||
<?php echo $this->element->getElement('email') ?>
|
||||
</dd>
|
||||
<?php if ($this->element->getElement('email')->hasErrors()): ?>
|
||||
<?php if ($this->element->getElement('email')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('email')->getMessages() as $error): ?>
|
||||
<?php foreach ($this->element->getElement('email')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
@ -36,8 +36,8 @@
|
|||
|
||||
<dd id="cancel-element">
|
||||
|
||||
<a href="<?php echo($this->baseUrl('login')); ?>">
|
||||
<button name="cancel" type="button" class="ui-button ui-widget ui-state-default ui-button-text-only center"><?php echo(_("Back")); ?></button>
|
||||
<a href="<?php echo ($this->baseUrl('login')); ?>">
|
||||
<button name="cancel" type="button" class="ui-button ui-widget ui-state-default ui-button-text-only center"><?php echo (_("Back")); ?></button>
|
||||
</a>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
<style type="text/css">
|
||||
.player-title {
|
||||
width: 70px;
|
||||
border-style: none float: left;
|
||||
}
|
||||
|
||||
.player-title {
|
||||
width: 70px;
|
||||
border-style: none
|
||||
float: left;
|
||||
}
|
||||
|
||||
.preview-label {
|
||||
line-height: 60px;
|
||||
border-style: none
|
||||
float: left;
|
||||
font-size: 20px;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.preview-label {
|
||||
line-height: 60px;
|
||||
border-style: none float: left;
|
||||
font-size: 20px;
|
||||
color: #fff
|
||||
}
|
||||
</style>
|
||||
<fieldset class="padded">
|
||||
<dl class="zend_form">
|
||||
|
@ -38,7 +34,8 @@
|
|||
|
||||
<?php echo $this->element->getElement('player_embed_src')->render(); ?>
|
||||
|
||||
<?php //echo $this->element->getElement('player_display_track_metadata'); ?>
|
||||
<?php //echo $this->element->getElement('player_display_track_metadata');
|
||||
?>
|
||||
|
||||
<table id="player_compatibility_chart" style="text-align:center; position:relative; top:40px;">
|
||||
<th colspan="5" style="text-align:center"><?php echo _("Stream Compatibility") ?></th>
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
|
||||
<?php echo $this->element->getElement('stationLogoRemove')->render() ?>
|
||||
|
||||
<!-- <button id="logo-remove-btn" value="Remove" class="btn">Remove</button>-->
|
||||
<!-- <button id="logo-remove-btn" value="Remove" class="btn">Remove</button>-->
|
||||
|
||||
<div id="Logo-img-container">
|
||||
<?php
|
||||
$logoImg = $this->element->getView()->logoImg;
|
||||
$src = "data:image/png;base64,".$logoImg;
|
||||
$src = "data:image/png;base64," . $logoImg;
|
||||
?>
|
||||
<img onError="this.onerror = '';this.style.visibility='hidden';$('#logo-remove-btn').hide();$('[id^=stationLogoRemove]').each(function(i,v){v.style.width=v.style.height=v.style.margin=v.style.padding='0px';});" id="logo-img" onload='/*resizeImg(this, 450, 450);*/' src="<?php echo $src ?>" />
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<a href=# id="connection_url_override" style="font-size: 12px;"><?php echo _("Override") ?></a>
|
||||
<span class="override_help_icon"></span></br>
|
||||
<div id="master_dj_connection_url_actions" style="display:none">
|
||||
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
|
||||
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
|
||||
</div>
|
||||
</span>
|
||||
<?php echo $this->element->getElement("master_source_port")->render() ?>
|
||||
|
@ -32,12 +32,12 @@
|
|||
<?php echo _("DJs can use these settings in their broadcasting software to broadcast live only during shows assigned to them.") ?>
|
||||
</p>
|
||||
<span id="stream_url">
|
||||
<?php echo $this->element->getElement("show_source_host")->render() ?>
|
||||
<?php echo $this->element->getElement("show_source_host")->render() ?>
|
||||
<a href=# id="connection_url_override" style="font-size: 12px;"><?php echo _("Override") ?></a>
|
||||
<span class="override_help_icon"></span>
|
||||
</br>
|
||||
<div id="live_dj_connection_url_actions" style="display:none; float:left">
|
||||
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
|
||||
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
|
||||
</div>
|
||||
</span>
|
||||
<?php echo $this->element->getElement("show_source_port")->render() ?>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<fieldset class="padded">
|
||||
<dl class="zend_form">
|
||||
|
||||
<?php if($this->element->getElement("enable_tunein")->hasErrors()) {
|
||||
<?php if ($this->element->getElement("enable_tunein")->hasErrors()) {
|
||||
echo $this->element->getElement('enable_tunein')->renderErrors();
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -6,17 +6,18 @@
|
|||
</dt>
|
||||
<dd id="storageFolder-element" class="block-display">
|
||||
<?php echo $this->element->getElement('storageFolder') ?>
|
||||
<input id="storageFolder-selection" type="button" value="<?php echo _("Choose folder")?>"></input>
|
||||
<input id="storageFolder-ok" type="button" value="<?php echo _("Set")?>"></input>
|
||||
<?php if($this->element->getElement('storageFolder')->hasErrors()) : ?>
|
||||
<input id="storageFolder-selection" type="button" value="<?php echo _("Choose folder") ?>"></input>
|
||||
<input id="storageFolder-ok" type="button" value="<?php echo _("Set") ?>"></input>
|
||||
<?php if ($this->element->getElement('storageFolder')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('storageFolder')->getMessages() as $error): ?>
|
||||
<?php foreach ($this->element->getElement('storageFolder')->getMessages() as $error) : ?>
|
||||
<li><?php echo $this->escape($error); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dd class="block-display selected-item"><strong><?php echo _("Current Import Folder:"); ?></strong><?php $stor = Application_Model_MusicDir::getStorDir(); echo $stor->getDirectory(); ?></dd>
|
||||
<dd class="block-display selected-item"><strong><?php echo _("Current Import Folder:"); ?></strong><?php $stor = Application_Model_MusicDir::getStorDir();
|
||||
echo $stor->getDirectory(); ?></dd>
|
||||
|
||||
<dt id="watchedFolder-label" class="block-display">
|
||||
<label class="required" for="watchedFolder"><?php echo $this->element->getElement('watchedFolder')->getLabel() ?></label>
|
||||
|
@ -24,11 +25,11 @@
|
|||
</dt>
|
||||
<dd id="watchedFolder-element" class="block-display">
|
||||
<?php echo $this->element->getElement('watchedFolder') ?>
|
||||
<input id="watchedFolder-selection" type="button" value="<?php echo _("Choose folder")?>"></input>
|
||||
<input id="watchedFolder-ok" type="button" value="<?php echo _("Add")?>"></input>
|
||||
<?php if($this->element->getElement('watchedFolder')->hasErrors()) : ?>
|
||||
<input id="watchedFolder-selection" type="button" value="<?php echo _("Choose folder") ?>"></input>
|
||||
<input id="watchedFolder-ok" type="button" value="<?php echo _("Add") ?>"></input>
|
||||
<?php if ($this->element->getElement('watchedFolder')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('watchedFolder')->getMessages() as $error): ?>
|
||||
<?php foreach ($this->element->getElement('watchedFolder')->getMessages() as $error) : ?>
|
||||
<li><?php echo $this->escape($error); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
@ -36,15 +37,15 @@
|
|||
</dd>
|
||||
<?php $watched_dirs = Application_Model_MusicDir::getWatchedDirs(null, true); ?>
|
||||
|
||||
<?php if (count($watched_dirs) > 0): ?>
|
||||
<?php foreach($watched_dirs as $watched_dir): ?>
|
||||
<?php if (count($watched_dirs) > 0) : ?>
|
||||
<?php foreach ($watched_dirs as $watched_dir) : ?>
|
||||
<dd class="block-display selected-item">
|
||||
<?php echo ($watched_dir->getExistsFlag())?"":"<span class='ui-icon-alert'><img src='/css/images/warning-icon.png'></span>"?><span id="folderPath" style="display:block; width:350px"><?php echo htmlspecialchars($watched_dir->getDirectory());?></span></span>
|
||||
<span title="<?php echo sprintf(_("Rescan watched directory (This is useful if it is network mount and may be out of sync with %s)"), PRODUCT_NAME)?>" class="ui-icon ui-icon-refresh"></span>
|
||||
<span title="<?php echo _("Remove watched directory")?>" class="ui-icon ui-icon-close"></span>
|
||||
<?php echo ($watched_dir->getExistsFlag()) ? "" : "<span class='ui-icon-alert'><img src='/css/images/warning-icon.png'></span>" ?><span id="folderPath" style="display:block; width:350px"><?php echo htmlspecialchars($watched_dir->getDirectory()); ?></span></span>
|
||||
<span title="<?php echo sprintf(_("Rescan watched directory (This is useful if it is network mount and may be out of sync with %s)"), PRODUCT_NAME) ?>" class="ui-icon ui-icon-refresh"></span>
|
||||
<span title="<?php echo _("Remove watched directory") ?>" class="ui-icon ui-icon-close"></span>
|
||||
</dd>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
<?php else : ?>
|
||||
<dd class="block-display selected-item">
|
||||
<span><?php echo _("You are not watching any media folders."); ?></span>
|
||||
</dd>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<?php echo $this->element->getElement('setup_timezone')->render(); ?>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<p style="margin-bottom: 0px; text-align: center;"><?php echo _("You can change these later in your preferences and user settings.");?></p>
|
||||
<p style="margin-bottom: 0px; text-align: center;"><?php echo _("You can change these later in your preferences and user settings."); ?></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -9,8 +9,13 @@
|
|||
|
||||
<?php echo $this->element->getElement('sb_show_filter') ?>
|
||||
|
||||
<!-- --><?php //if ($this->element->getElement('sb_my_shows')):?>
|
||||
<!-- <label>--><?php //echo $this->element->getElement('sb_my_shows')->getLabel(); ?><!--</label>-->
|
||||
<!-- --><?php //echo $this->element->getElement('sb_my_shows'); ?>
|
||||
<!-- --><?php //endif;?>
|
||||
<!-- --><?php //if ($this->element->getElement('sb_my_shows')):
|
||||
?>
|
||||
<!-- <label>--><?php //echo $this->element->getElement('sb_my_shows')->getLabel();
|
||||
?>
|
||||
<!--</label>-->
|
||||
<!-- --><?php //echo $this->element->getElement('sb_my_shows');
|
||||
?>
|
||||
<!-- --><?php //endif;
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -1,65 +1,66 @@
|
|||
<form class="smart-block-form" method="post" action="">
|
||||
<dl class='zend_form search-criteria'>
|
||||
<div id='sp-success' class='success' style='display:none'></div>
|
||||
<dt><label><?php echo(_("Search Criteria:"));?></label></dt>
|
||||
<dt><label><?php echo (_("Search Criteria:")); ?></label></dt>
|
||||
<dd id='sp_criteria-element' class='criteria-element'>
|
||||
<?php for ($i = 0; $i < $this->criteriasLength; $i++) {
|
||||
// modRowMap holds the number of modifier rows for each criteria element
|
||||
// i.e. if we have 'Album contains 1' and 'Album contains 2' the modRowMap
|
||||
// for Album is 2
|
||||
?>
|
||||
<?php for ($j = 0; $j < $this->modRowMap[$i]; $j++) {
|
||||
// determine if logic label should be 'and' or 'or'
|
||||
if ($this->modRowMap[$i] > 1 && $j != $this->modRowMap[$i]-1) $logicLabel = _('or');
|
||||
else $logicLabel = _('and');
|
||||
<?php for ($i = 0; $i < $this->criteriasLength; $i++) {
|
||||
// modRowMap holds the number of modifier rows for each criteria element
|
||||
// i.e. if we have 'Album contains 1' and 'Album contains 2' the modRowMap
|
||||
// for Album is 2
|
||||
?>
|
||||
<?php for ($j = 0; $j < $this->modRowMap[$i]; $j++) {
|
||||
// determine if logic label should be 'and' or 'or'
|
||||
if ($this->modRowMap[$i] > 1 && $j != $this->modRowMap[$i] - 1) $logicLabel = _('or');
|
||||
else $logicLabel = _('and');
|
||||
|
||||
$disabled = $this->element->getElement("sp_criteria_field_".$i."_".$j)->getAttrib('disabled') == 'disabled'?true:false;
|
||||
// determine if the next row is disabled and only display the logic label if it isn't
|
||||
if ($j == $this->modRowMap[$i]-1 && $i < 25) {
|
||||
$n = $i+1;
|
||||
$nextIndex = $n."_0";
|
||||
} elseif ($j+1 <= $this->modRowMap[$i]-1) {
|
||||
$n = $j+1;
|
||||
$nextIndex = $i."_".$n;
|
||||
$disabled = $this->element->getElement("sp_criteria_field_" . $i . "_" . $j)->getAttrib('disabled') == 'disabled' ? true : false;
|
||||
// determine if the next row is disabled and only display the logic label if it isn't
|
||||
if ($j == $this->modRowMap[$i] - 1 && $i < 25) {
|
||||
$n = $i + 1;
|
||||
$nextIndex = $n . "_0";
|
||||
} elseif ($j + 1 <= $this->modRowMap[$i] - 1) {
|
||||
$n = $j + 1;
|
||||
$nextIndex = $i . "_" . $n;
|
||||
}
|
||||
$nextDisabled = $this->element->getElement("sp_criteria_field_" . $nextIndex)->getAttrib('disabled') == 'disabled' ? true : false;
|
||||
?>
|
||||
<div <?php if (/*($i > 0) && */$disabled) {
|
||||
echo 'style="display:none"';
|
||||
} ?> class="search-row-<?php echo $logicLabel ?>">
|
||||
<?php echo $this->element->getElement("sp_criteria_field_" . $i . "_" . $j) ?>
|
||||
<?php echo $this->element->getElement("sp_criteria_modifier_" . $i . "_" . $j) /* @todo finish this */ ?>
|
||||
|
||||
}
|
||||
$nextDisabled = $this->element->getElement("sp_criteria_field_".$nextIndex)->getAttrib('disabled') == 'disabled'?true:false;
|
||||
?>
|
||||
<div <?php if (/*($i > 0) && */ $disabled) {
|
||||
echo 'style="display:none"';
|
||||
}?> class="search-row-<?php echo $logicLabel ?>">
|
||||
<?php echo $this->element->getElement("sp_criteria_field_".$i."_".$j) ?>
|
||||
<?php echo $this->element->getElement("sp_criteria_modifier_".$i."_".$j) /* @todo finish this */?>
|
||||
<?php echo $this->element->getElement("sp_criteria_value_" . $i . "_" . $j) ?>
|
||||
<span class='sp_text_font' id="datetime_select" <?php echo $this->element->getElement("sp_criteria_datetime_select_" . $i . "_" . $j)->getAttrib("disabled") == "disabled" ? 'style="display:none;"' : "" ?>><?php echo $this->element->getElement('sp_criteria_datetime_select_' . $i . "_" . $j) ?><?php echo _(" ago "); ?></span>
|
||||
|
||||
<?php echo $this->element->getElement("sp_criteria_value_".$i."_".$j) ?>
|
||||
<span class='sp_text_font' id="datetime_select" <?php echo $this->element->getElement("sp_criteria_datetime_select_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>><?php echo $this->element->getElement('sp_criteria_datetime_select_'.$i."_".$j) ?><?php echo _(" ago "); ?></span>
|
||||
<a <?php if ($disabled) {
|
||||
echo 'style=display:none';
|
||||
} ?> class='modifier_add_link' id='modifier_add_<?php echo $i ?>'>
|
||||
+ <?php echo (_("New Modifier")); ?>
|
||||
</a>
|
||||
|
||||
<a <?php if ($disabled) { echo 'style=display:none'; } ?> class='modifier_add_link' id='modifier_add_<?php echo $i ?>'>
|
||||
+ <?php echo(_("New Modifier")); ?>
|
||||
</a>
|
||||
<span class='sp_text_font' id="extra_criteria" <?php echo $this->element->getElement("sp_criteria_extra_" . $i . "_" . $j)->getAttrib("disabled") == "disabled" ? 'style="display:none;"' : "" ?>><?php echo _(" to "); ?><?php echo $this->element->getElement('sp_criteria_extra_' . $i . "_" . $j) ?></span>
|
||||
<span class='sp_text_font' id="extra_datetime_select" <?php echo $this->element->getElement("sp_criteria_extra_datetime_select_" . $i . "_" . $j)->getAttrib("disabled") == "disabled" ? 'style="display:none;"' : "" ?>><?php echo $this->element->getElement('sp_criteria_extra_datetime_select_' . $i . "_" . $j) ?><?php echo _(" ago "); ?></span>
|
||||
|
||||
<span class='sp_text_font' id="extra_criteria" <?php echo $this->element->getElement("sp_criteria_extra_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>><?php echo _(" to "); ?><?php echo $this->element->getElement('sp_criteria_extra_'.$i."_".$j) ?></span>
|
||||
<span class='sp_text_font' id="extra_datetime_select" <?php echo $this->element->getElement("sp_criteria_extra_datetime_select_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>><?php echo $this->element->getElement('sp_criteria_extra_datetime_select_'.$i."_".$j) ?><?php echo _(" ago "); ?></span>
|
||||
<a style='margin-right:3px' class='btn btn-small btn-danger' id='criteria_remove_<?php echo $i ?>'>
|
||||
<i class='icon-white icon-remove spl-no-r-margin'></i>
|
||||
</a>
|
||||
<span class='db-logic-label' <?php if ($nextDisabled) echo 'style="display:none"'; ?>>
|
||||
<?php echo $logicLabel; ?>
|
||||
</span>
|
||||
|
||||
<a style='margin-right:3px' class='btn btn-small btn-danger' id='criteria_remove_<?php echo $i ?>'>
|
||||
<i class='icon-white icon-remove spl-no-r-margin'></i>
|
||||
</a>
|
||||
<span class='db-logic-label' <?php if ($nextDisabled) echo 'style="display:none"';?>>
|
||||
<?php echo $logicLabel;?>
|
||||
</span>
|
||||
<?php if ($this->element->getElement("sp_criteria_field_" . $i . "_" . $j)->hasErrors()) : ?>
|
||||
<?php foreach ($this->element->getElement("sp_criteria_field_" . $i . "_" . $j)->getMessages() as $error) : ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($this->element->getElement("sp_criteria_field_".$i."_".$j)->hasErrors()) : ?>
|
||||
<?php foreach($this->element->getElement("sp_criteria_field_".$i."_".$j)->getMessages() as $error): ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php } ?>
|
||||
<a class='btn btn-small btn-new' id='criteria_add'><i class='icon-white icon-plus'></i><?php echo(_("New Criteria")); ?></a>
|
||||
<a class='btn btn-small btn-new' id='criteria_add'><i class='icon-white icon-plus'></i><?php echo (_("New Criteria")); ?></a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
|
@ -67,13 +68,13 @@
|
|||
<label class='sp_text_font'><?php echo $this->element->getElement('sp_limit_value')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id='sp_limit-element'>
|
||||
<?php echo $this->element->getElement('sp_limit_value')?>
|
||||
<?php echo $this->element->getElement('sp_limit_value') ?>
|
||||
<?php echo $this->element->getElement('sp_limit_options') ?>
|
||||
<?php if($this->element->getElement("sp_limit_value")->hasErrors()) : ?>
|
||||
<?php foreach($this->element->getElement("sp_limit_value")->getMessages() as $error): ?>
|
||||
<?php if ($this->element->getElement("sp_limit_value")->hasErrors()) : ?>
|
||||
<?php foreach ($this->element->getElement("sp_limit_value")->getMessages() as $error) : ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
@ -88,14 +89,16 @@
|
|||
</label>
|
||||
</dt>
|
||||
<dd id='sp_type-element'>
|
||||
<?php $i=0;
|
||||
$value = $this->element->getElement('sp_type')->getValue();
|
||||
foreach ($this->element->getElement('sp_type')->getMultiOptions() as $radio) : ?>
|
||||
<?php $i = 0;
|
||||
$value = $this->element->getElement('sp_type')->getValue();
|
||||
foreach ($this->element->getElement('sp_type')->getMultiOptions() as $radio) : ?>
|
||||
|
||||
<label class='sp-label' for='sp_type-<?php echo $i?>'>
|
||||
<input type="radio" value="<?php echo $i ?>" id="sp_type-<?php echo $i ?>" name="sp_type" <?php if($i == $value){echo 'checked="checked"';}?> ><?php echo $radio ?>
|
||||
<label class='sp-label' for='sp_type-<?php echo $i ?>'>
|
||||
<input type="radio" value="<?php echo $i ?>" id="sp_type-<?php echo $i ?>" name="sp_type" <?php if ($i == $value) {
|
||||
echo 'checked="checked"';
|
||||
} ?>><?php echo $radio ?>
|
||||
</label>
|
||||
<?php $i = $i + 1; ?>
|
||||
<?php $i = $i + 1; ?>
|
||||
<?php endforeach; ?>
|
||||
<span class='playlist_type_help_icon'></span>
|
||||
</dd>
|
||||
|
@ -105,12 +108,12 @@
|
|||
<label class='sp_text_font'><?php echo $this->element->getElement('sp_repeat_tracks')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id='sp_repeat_tracks-element'>
|
||||
<?php echo $this->element->getElement('sp_repeat_tracks')?>
|
||||
<?php if($this->element->getElement("sp_repeat_tracks")->hasErrors()) : ?>
|
||||
<?php foreach($this->element->getElement("sp_repeat_tracks")->getMessages() as $error): ?>
|
||||
<?php echo $this->element->getElement('sp_repeat_tracks') ?>
|
||||
<?php if ($this->element->getElement("sp_repeat_tracks")->hasErrors()) : ?>
|
||||
<?php foreach ($this->element->getElement("sp_repeat_tracks")->getMessages() as $error) : ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
<span class='repeat_tracks_help_icon'></span>
|
||||
|
@ -121,12 +124,12 @@
|
|||
<label class='sp_text_font'><?php echo $this->element->getElement('sp_overflow_tracks')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id='sp_overflow_tracks-element'>
|
||||
<?php echo $this->element->getElement('sp_overflow_tracks')?>
|
||||
<?php if($this->element->getElement("sp_overflow_tracks")->hasErrors()) : ?>
|
||||
<?php foreach($this->element->getElement("sp_overflow_tracks")->getMessages() as $error): ?>
|
||||
<?php echo $this->element->getElement('sp_overflow_tracks') ?>
|
||||
<?php if ($this->element->getElement("sp_overflow_tracks")->hasErrors()) : ?>
|
||||
<?php foreach ($this->element->getElement("sp_overflow_tracks")->getMessages() as $error) : ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
<span class='overflow_tracks_help_icon'></span>
|
||||
|
@ -134,15 +137,15 @@
|
|||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label class='sp_text_font'><?php echo $this->element->getElement('sp_sort_options')->getLabel();?></label>
|
||||
<label class='sp_text_font'><?php echo $this->element->getElement('sp_sort_options')->getLabel(); ?></label>
|
||||
</dt>
|
||||
<dd id='sp_sort-element'>
|
||||
<?php echo $this->element->getElement('sp_sort_options') ?>
|
||||
<?php if($this->element->getElement("sp_sort_options")->hasErrors()) : ?>
|
||||
<?php foreach($this->element->getElement("sp_sort_options")->getMessages() as $error): ?>
|
||||
<?php if ($this->element->getElement("sp_sort_options")->hasErrors()) : ?>
|
||||
<?php foreach ($this->element->getElement("sp_sort_options")->getMessages() as $error) : ?>
|
||||
<span class='errors sp-errors'>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php echo $error; ?>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
|
|
@ -1,214 +1,214 @@
|
|||
<?php
|
||||
$s_name = "s".$this->stream_number;
|
||||
?>
|
||||
<h3 class="collapsible-header <?php echo $this->enabled == 0?"closed":""?>"><span class="arrow-icon"></span><?php echo _("Stream "); ?><?php echo $this->stream_number?></h3>
|
||||
<div class="stream-setting-content" <?php echo $this->enabled == 0?'style="display: none;':''?> id="<?php echo $s_name?>-config">
|
||||
<fieldset class="padded">
|
||||
<dl class="zend_form clearfix">
|
||||
<dd id="<?php echo $s_name?>Liquidsoap-error-msg-element" class="liquidsoap_status">
|
||||
<?php echo $this->liquidsoap_error_msg?>
|
||||
<?php
|
||||
$s_name = "s" . $this->stream_number;
|
||||
?>
|
||||
<h3 class="collapsible-header <?php echo $this->enabled == 0 ? "closed" : "" ?>"><span class="arrow-icon"></span><?php echo _("Stream "); ?><?php echo $this->stream_number ?></h3>
|
||||
<div class="stream-setting-content" <?php echo $this->enabled == 0 ? 'style="display: none;' : '' ?> id="<?php echo $s_name ?>-config">
|
||||
<fieldset class="padded">
|
||||
<dl class="zend_form clearfix">
|
||||
<dd id="<?php echo $s_name ?>Liquidsoap-error-msg-element" class="liquidsoap_status">
|
||||
<?php echo $this->liquidsoap_error_msg ?>
|
||||
</dd>
|
||||
<dt id="<?php echo $s_name?>Enabled-label">
|
||||
<label for="<?php echo $s_name?>Enabled"><?php echo $this->element->getElement('enable')->getLabel() ?></label>
|
||||
<dt id="<?php echo $s_name ?>Enabled-label">
|
||||
<label for="<?php echo $s_name ?>Enabled"><?php echo $this->element->getElement('enable')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Enabled-element">
|
||||
<?php echo $this->element->getElement('enable')?>
|
||||
<dd id="<?php echo $s_name ?>Enabled-element">
|
||||
<?php echo $this->element->getElement('enable') ?>
|
||||
</dd>
|
||||
|
||||
<dt id="<?php echo $s_name?>Mobile-label">
|
||||
<label for="<?php echo $s_name?>Mobile"><?php echo $this->element->getElement('mobile')->getLabel() ?></label>
|
||||
<dt id="<?php echo $s_name ?>Mobile-label">
|
||||
<label for="<?php echo $s_name ?>Mobile"><?php echo $this->element->getElement('mobile')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Mobile-element">
|
||||
<?php echo $this->element->getElement('mobile')?>
|
||||
<dd id="<?php echo $s_name ?>Mobile-element">
|
||||
<?php echo $this->element->getElement('mobile') ?>
|
||||
</dd>
|
||||
|
||||
<dt id="<?php echo $s_name?>Type-label">
|
||||
<label for="<?php echo $s_name?>Type"><?php echo $this->element->getElement('type')->getLabel()?></label>
|
||||
<dt id="<?php echo $s_name ?>Type-label">
|
||||
<label for="<?php echo $s_name ?>Type"><?php echo $this->element->getElement('type')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Type-element">
|
||||
<?php echo $this->element->getElement('type')?>
|
||||
<dd id="<?php echo $s_name ?>Type-element">
|
||||
<?php echo $this->element->getElement('type') ?>
|
||||
<span class='stream_type_help_icon'></span>
|
||||
</dd>
|
||||
|
||||
<dt id="<?php echo $s_name?>Bitrate-label">
|
||||
<label for="<?php echo $s_name?>Bitrate"><?php echo $this->element->getElement('bitrate')->getLabel()?></label>
|
||||
<dt id="<?php echo $s_name ?>Bitrate-label">
|
||||
<label for="<?php echo $s_name ?>Bitrate"><?php echo $this->element->getElement('bitrate')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Bitrate-element">
|
||||
<?php echo $this->element->getElement('bitrate')?>
|
||||
<dd id="<?php echo $s_name ?>Bitrate-element">
|
||||
<?php echo $this->element->getElement('bitrate') ?>
|
||||
</dd>
|
||||
<dt id="outputServer-label">
|
||||
<label for="outputServer"><?php echo $this->element->getElement('host')->getLabel()?><span class="info-text-small">
|
||||
<?php echo _("(Required)")?></span> :</label>
|
||||
<label for="outputServer"><?php echo $this->element->getElement('host')->getLabel() ?><span class="info-text-small">
|
||||
<?php echo _("(Required)") ?></span> :</label>
|
||||
</dt>
|
||||
<dd id="outputServer-element">
|
||||
<?php echo $this->element->getElement('host')?>
|
||||
<?php if($this->element->getElement('host')->hasErrors()) : ?>
|
||||
<?php echo $this->element->getElement('host') ?>
|
||||
<?php if ($this->element->getElement('host')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('host')->getMessages() as $error): ?>
|
||||
<?php foreach ($this->element->getElement('host')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputPort-label">
|
||||
<label for="outputPort"><?php echo $this->element->getElement('port')->getLabel()?><span class="info-text-small">
|
||||
<?php echo _("(Required)")?></span> :</label>
|
||||
<label for="outputPort"><?php echo $this->element->getElement('port')->getLabel() ?><span class="info-text-small">
|
||||
<?php echo _("(Required)") ?></span> :</label>
|
||||
</dt>
|
||||
<dd id="outputPort-element">
|
||||
<?php echo $this->element->getElement('port')?>
|
||||
<?php if($this->element->getElement('port')->hasErrors()) : ?>
|
||||
<?php echo $this->element->getElement('port') ?>
|
||||
<?php if ($this->element->getElement('port')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('port')->getMessages() as $error): ?>
|
||||
<?php foreach ($this->element->getElement('port')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="<?php echo $s_name?>Output-label">
|
||||
<label for="<?php echo $s_name?>Output"><?php echo $this->element->getElement('output')->getLabel()?></label>
|
||||
<dt id="<?php echo $s_name ?>Output-label">
|
||||
<label for="<?php echo $s_name ?>Output"><?php echo $this->element->getElement('output')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Output-element">
|
||||
<?php echo $this->element->getElement('output')?>
|
||||
<dd id="<?php echo $s_name ?>Output-element">
|
||||
<?php echo $this->element->getElement('output') ?>
|
||||
</dd>
|
||||
|
||||
<dt id="<?php echo $s_name?>Channels-label">
|
||||
<label for="<?php echo $s_name?>Channels"><?php echo $this->element->getElement('channels')->getLabel()?></label>
|
||||
<dt id="<?php echo $s_name ?>Channels-label">
|
||||
<label for="<?php echo $s_name ?>Channels"><?php echo $this->element->getElement('channels')->getLabel() ?></label>
|
||||
</dt>
|
||||
<dd id="<?php echo $s_name?>Channels-element">
|
||||
<?php echo $this->element->getElement('channels')?>
|
||||
<dd id="<?php echo $s_name ?>Channels-element">
|
||||
<?php echo $this->element->getElement('channels') ?>
|
||||
</dd>
|
||||
|
||||
<fieldset class="padded top-margin display_field toggle closed" id="output_setting">
|
||||
<legend style="cursor: pointer;">
|
||||
<span class="ui-icon ui-icon-triangle-2-n-s"></span>
|
||||
<?php echo _("Additional Options")?>
|
||||
<?php echo _("Additional Options") ?>
|
||||
</legend>
|
||||
<dl class="zend_form">
|
||||
<dt id="outputUser-label">
|
||||
<label for="outputUser"><?php echo $this->element->getElement('user')->getLabel()?> :
|
||||
<span class='stream_username_help_icon'></span>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="outputUser-element">
|
||||
<?php echo $this->element->getElement('user')?>
|
||||
<?php if($this->element->getElement('user')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('user')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputPassword-label">
|
||||
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('pass')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="outputPassword-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('pass')?>
|
||||
<?php if($this->element->getElement('pass')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('pass')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="adminUser-label">
|
||||
<label for="outputUser"><?php echo $this->element->getElement('admin_user')->getLabel()?> :
|
||||
<span class='admin_username_help_icon'></span>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="adminUser-element">
|
||||
<?php echo $this->element->getElement('admin_user')?>
|
||||
<?php if($this->element->getElement('admin_user')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('admin_user')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="adminPassword-label">
|
||||
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('admin_pass')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="adminPassword-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('admin_pass')?>
|
||||
<?php if($this->element->getElement('admin_pass')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('admin_pass')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="block-display info-block">
|
||||
<?php echo _("The following info will be displayed to listeners in their media player:")?>
|
||||
</dt>
|
||||
<dt id="stationName-label">
|
||||
<label for="stationName"><?php echo $this->element->getElement('name')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="stationName-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('name')?>
|
||||
<?php if($this->element->getElement('name')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('name')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="stationDescription-label">
|
||||
<label for="stationDescription"><?php echo $this->element->getElement('description')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="stationDescription-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('description')?>
|
||||
<?php if($this->element->getElement('description')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('description')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="stationURL-label">
|
||||
<label for="stationURL"><?php echo $this->element->getElement('url')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="stationURL-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('url')?>
|
||||
<span class="info-text-small"><?php echo _("(Your radio station website)")?></span>
|
||||
<?php if($this->element->getElement('url')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('url')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputGenre-label">
|
||||
<label for="outputGenre"><?php echo $this->element->getElement('genre')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="outputGenre-element">
|
||||
<?php echo $this->element->getElement('genre')?>
|
||||
<?php if($this->element->getElement('genre')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('genre')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputMountpoint-label">
|
||||
<label for="outputMountpoint"><?php echo $this->element->getElement('mount')->getLabel()?> :</label>
|
||||
</dt>
|
||||
<dd id="outputMountpoint-element">
|
||||
<?php echo $this->element->getElement('mount')?>
|
||||
<?php if($this->element->getElement('mount')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('mount')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputUser-label">
|
||||
<label for="outputUser"><?php echo $this->element->getElement('user')->getLabel() ?> :
|
||||
<span class='stream_username_help_icon'></span>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="outputUser-element">
|
||||
<?php echo $this->element->getElement('user') ?>
|
||||
<?php if ($this->element->getElement('user')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('user')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputPassword-label">
|
||||
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('pass')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="outputPassword-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('pass') ?>
|
||||
<?php if ($this->element->getElement('pass')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('pass')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="adminUser-label">
|
||||
<label for="outputUser"><?php echo $this->element->getElement('admin_user')->getLabel() ?> :
|
||||
<span class='admin_username_help_icon'></span>
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="adminUser-element">
|
||||
<?php echo $this->element->getElement('admin_user') ?>
|
||||
<?php if ($this->element->getElement('admin_user')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('admin_user')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="adminPassword-label">
|
||||
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('admin_pass')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="adminPassword-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('admin_pass') ?>
|
||||
<?php if ($this->element->getElement('admin_pass')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('admin_pass')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt class="block-display info-block">
|
||||
<?php echo _("The following info will be displayed to listeners in their media player:") ?>
|
||||
</dt>
|
||||
<dt id="stationName-label">
|
||||
<label for="stationName"><?php echo $this->element->getElement('name')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="stationName-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('name') ?>
|
||||
<?php if ($this->element->getElement('name')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('name')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="stationDescription-label">
|
||||
<label for="stationDescription"><?php echo $this->element->getElement('description')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="stationDescription-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('description') ?>
|
||||
<?php if ($this->element->getElement('description')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('description')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="stationURL-label">
|
||||
<label for="stationURL"><?php echo $this->element->getElement('url')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="stationURL-element" class="clearfix">
|
||||
<?php echo $this->element->getElement('url') ?>
|
||||
<span class="info-text-small"><?php echo _("(Your radio station website)") ?></span>
|
||||
<?php if ($this->element->getElement('url')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('url')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputGenre-label">
|
||||
<label for="outputGenre"><?php echo $this->element->getElement('genre')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="outputGenre-element">
|
||||
<?php echo $this->element->getElement('genre') ?>
|
||||
<?php if ($this->element->getElement('genre')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('genre')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<dt id="outputMountpoint-label">
|
||||
<label for="outputMountpoint"><?php echo $this->element->getElement('mount')->getLabel() ?> :</label>
|
||||
</dt>
|
||||
<dd id="outputMountpoint-element">
|
||||
<?php echo $this->element->getElement('mount') ?>
|
||||
<?php if ($this->element->getElement('mount')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach ($this->element->getElement('mount')->getMessages() as $error) : ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<dt id="outputStreamURL-label">
|
||||
|
@ -217,6 +217,6 @@
|
|||
<dd id="outputStreamURL-element">
|
||||
<span id="stream_url" class="static_text"></span>
|
||||
</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
</div>
|
||||
</dl>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<script language="JavaScript">
|
||||
function autoResize(id){
|
||||
function autoResize(id) {
|
||||
var newheight;
|
||||
var newwidth;
|
||||
|
||||
if(document.getElementById){
|
||||
newheight=document.getElementById(id).contentWindow.document.body.scrollHeight;
|
||||
if (document.getElementById) {
|
||||
newheight = document.getElementById(id).contentWindow.document.body.scrollHeight;
|
||||
// Hack to get height in Firefox
|
||||
if (newheight == 0) newheight = newheight = document.getElementById(id).contentWindow.document.documentElement.scrollHeight;
|
||||
newwidth=document.getElementById(id).contentWindow.document.body.scrollWidth;
|
||||
newwidth = document.getElementById(id).contentWindow.document.body.scrollWidth;
|
||||
}
|
||||
document.getElementById(id).height= (newheight) + "px";
|
||||
document.getElementById(id).width= (newwidth) + "px";
|
||||
document.getElementById(id).height = (newheight) + "px";
|
||||
document.getElementById(id).width = (newwidth) + "px";
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -19,12 +19,12 @@
|
|||
<div class="bck_cover"></div>
|
||||
|
||||
<?php if ($this->stationLogo === DEFAULT_LOGO_PLACEHOLDER) {
|
||||
echo "<a href='#' class='logo'><img src='".DEFAULT_LOGO_FILE."'></a>";
|
||||
echo "<a href='#' class='logo'><img src='" . DEFAULT_LOGO_FILE . "'></a>";
|
||||
} else {
|
||||
echo "<a href='#' class='logo'><img src='data:image/png;base64," . $this->stationLogo . "'></a>";
|
||||
} ?>
|
||||
|
||||
<?php if ($this->displayLoginButton): ?>
|
||||
<?php if ($this->displayLoginButton) : ?>
|
||||
<div class='login-btn'>
|
||||
<a href='/login' target='_parent'>
|
||||
<span><?php echo _('Login'); ?></span>
|
||||
|
@ -53,7 +53,7 @@
|
|||
</div>
|
||||
|
||||
<?php
|
||||
if ($this->displayRssTab) {?>
|
||||
if ($this->displayRssTab) { ?>
|
||||
<div id="tab-4" class="podcast tab_content">
|
||||
<div class="rss-title-wrapper">
|
||||
<div id="rss-subscribe">
|
||||
|
@ -67,78 +67,79 @@
|
|||
<div id="jquery_jplayer_1" class="jp-player">
|
||||
</div>
|
||||
<div class="podcast_bck">
|
||||
<div id="jp_container_1" class="jp-audio">
|
||||
<div class="jp-type-playlist">
|
||||
<div id="jp_container_1" class="jp-audio">
|
||||
<div class="jp-type-playlist">
|
||||
|
||||
<div class="current-track track-overflow"><?php echo _("Now Playing:") ?><span class="track-overflow"></span></div>
|
||||
<div class="jp-gui jp-interface">
|
||||
<div class="playbar playbar-buttons">
|
||||
<ul class="jp-controls rss-buttons">
|
||||
<li class="ui-corner-all jp-play">
|
||||
<span class="icon-play icon-white" tabindex="1"><?php /*echo _("play") */?></span>
|
||||
</li>
|
||||
<div class="current-track track-overflow"><?php echo _("Now Playing:") ?><span class="track-overflow"></span></div>
|
||||
<div class="jp-gui jp-interface">
|
||||
<div class="playbar playbar-buttons">
|
||||
<ul class="jp-controls rss-buttons">
|
||||
<li class="ui-corner-all jp-play">
|
||||
<span class="icon-play icon-white" tabindex="1"><?php /*echo _("play") */ ?></span>
|
||||
</li>
|
||||
|
||||
<li class="ui-corner-all jp-pause">
|
||||
<span class="icon-pause icon-white" tabindex="1"><?php /*echo _("pause") */?></span>
|
||||
</li>
|
||||
<li class="ui-corner-all jp-stop">
|
||||
<span class="icon-stop icon-white" tabindex="1"><?php /*echo _("stop") */?></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="playbar playbar-progress">
|
||||
<div class="jp-time-block">
|
||||
<div class="jp-progress">
|
||||
<div class="jp-seek-bar">
|
||||
<div class="jp-play-bar"></div>
|
||||
<li class="ui-corner-all jp-pause">
|
||||
<span class="icon-pause icon-white" tabindex="1"><?php /*echo _("pause") */ ?></span>
|
||||
</li>
|
||||
<li class="ui-corner-all jp-stop">
|
||||
<span class="icon-stop icon-white" tabindex="1"><?php /*echo _("stop") */ ?></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="playbar playbar-progress">
|
||||
<div class="jp-time-block">
|
||||
<div class="jp-progress">
|
||||
<div class="jp-seek-bar">
|
||||
<div class="jp-play-bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jp-time-holder">
|
||||
<div class="jp-current-time"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jp-time-holder">
|
||||
<div class="jp-current-time"></div>
|
||||
|
||||
<div class="playbar playbar-progress">
|
||||
<div class="jp-volume-block">
|
||||
<div class="jp-mute">
|
||||
<span class="ui-icon" tabindex="1" title="mute"><?php /*echo _("mute") */ ?></span>
|
||||
</div>
|
||||
<div class="jp-unmute">
|
||||
<span class="ui-icon" tabindex="1" title="unmute"><?php /*echo _("unmute") */ ?></span>
|
||||
</div>
|
||||
<div class="jp-volume-bar">
|
||||
<div class="jp-volume-bar-value"></div>
|
||||
</div>
|
||||
<div class="jp-volume-max">
|
||||
<span class="ui-icon" tabindex="1" title="max volume"><?php /*echo _("max volume") */ ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="playbar playbar-progress">
|
||||
<div class="jp-volume-block">
|
||||
<div class="jp-mute">
|
||||
<span class="ui-icon" tabindex="1" title="mute"><?php /*echo _("mute") */?></span>
|
||||
</div>
|
||||
<div class="jp-unmute">
|
||||
<span class="ui-icon" tabindex="1" title="unmute"><?php /*echo _("unmute") */?></span>
|
||||
</div>
|
||||
<div class="jp-volume-bar">
|
||||
<div class="jp-volume-bar-value"></div>
|
||||
</div>
|
||||
<div class="jp-volume-max">
|
||||
<span class="ui-icon" tabindex="1" title="max volume"><?php /*echo _("max volume") */?></span>
|
||||
</div>
|
||||
<div class="rss-tracks">
|
||||
<ul class="jp-playlist">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rss-tracks">
|
||||
<ul class="jp-playlist">
|
||||
<ul class="pagination">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="pagination">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var playlist;
|
||||
|
||||
function buildJplayerPlaylist(page, data) {
|
||||
playlist = new Array();
|
||||
var media;
|
||||
|
||||
$('.rss-tracks ul').html('');
|
||||
$.each(data[Object.keys(data)[page]], function (index, value) {
|
||||
$.each(data[Object.keys(data)[page]], function(index, value) {
|
||||
var media_mime_supported = true;
|
||||
media = {
|
||||
title: value.CcFiles.track_title,
|
||||
|
@ -157,12 +158,12 @@
|
|||
media_mime_supported = false;
|
||||
}
|
||||
|
||||
var podcast_title_link = "<a class='podcast_title jp-playlist-item' tabindex='0' href='#'>"+value.CcFiles.track_title+"</a>";
|
||||
var podcast_title_no_link = "<div class='podcast_title'>"+value.CcFiles.track_title+"</div>";
|
||||
var playlist_metadata = "<span class='podcast_date'>"+value.publication_date+"</span>" +
|
||||
"<span class='podcast_length'>"+value.CcFiles.length+"</span>" +
|
||||
"<span class='podcast_desc_btn'>Description</span>" +
|
||||
"<div class='podcast_desc'>"+value.CcFiles.description+"</div>";
|
||||
var podcast_title_link = "<a class='podcast_title jp-playlist-item' tabindex='0' href='#'>" + value.CcFiles.track_title + "</a>";
|
||||
var podcast_title_no_link = "<div class='podcast_title'>" + value.CcFiles.track_title + "</div>";
|
||||
var playlist_metadata = "<span class='podcast_date'>" + value.publication_date + "</span>" +
|
||||
"<span class='podcast_length'>" + value.CcFiles.length + "</span>" +
|
||||
"<span class='podcast_desc_btn'>Description</span>" +
|
||||
"<div class='podcast_desc'>" + value.CcFiles.description + "</div>";
|
||||
|
||||
if (media_mime_supported) {
|
||||
playlist.push(media);
|
||||
|
@ -171,9 +172,9 @@
|
|||
|
||||
playlist_item += podcast_title_link + playlist_metadata;
|
||||
|
||||
playlist_item += "<div class='podcast_btn_group'>"+
|
||||
"<span class='podcast_play podcast_action_btn'><a href='#' id='rss-track' data-rss-playlist-id='"+index+"'><img src='css/radio-page/img/podcast_play.png'></a></span>" +
|
||||
"<span class='podcast_download podcast_action_btn'><a id='rss-download-link' href='"+value.download_url+"'><img src='css/radio-page/img/podcast_download.png'></a></span> </div></div></li>";
|
||||
playlist_item += "<div class='podcast_btn_group'>" +
|
||||
"<span class='podcast_play podcast_action_btn'><a href='#' id='rss-track' data-rss-playlist-id='" + index + "'><img src='css/radio-page/img/podcast_play.png'></a></span>" +
|
||||
"<span class='podcast_download podcast_action_btn'><a id='rss-download-link' href='" + value.download_url + "'><img src='css/radio-page/img/podcast_download.png'></a></span> </div></div></li>";
|
||||
|
||||
} else {
|
||||
// add empty media item to playlist so indexes stay inline with the corret
|
||||
|
@ -182,9 +183,9 @@
|
|||
|
||||
var playlist_item = "<div class='playlist-item-no-preview podcast_info'>";
|
||||
playlist_item += podcast_title_no_link + playlist_metadata;
|
||||
playlist_item += "<div class='podcast_btn_group'>"+
|
||||
"<span class='podcast_no_play'><img src='css/radio-page/img/podcast_no_play.png'></span>" +
|
||||
"<span class='podcast_download podcast_action_btn'><a id='rss-download-link' href='"+value.download_url+"'><img src='css/radio-page/img/podcast_download.png'></a></span> </div></div>";
|
||||
playlist_item += "<div class='podcast_btn_group'>" +
|
||||
"<span class='podcast_no_play'><img src='css/radio-page/img/podcast_no_play.png'></span>" +
|
||||
"<span class='podcast_download podcast_action_btn'><a id='rss-download-link' href='" + value.download_url + "'><img src='css/radio-page/img/podcast_download.png'></a></span> </div></div>";
|
||||
}
|
||||
|
||||
$('.rss-tracks ul').append(playlist_item);
|
||||
|
@ -196,7 +197,7 @@
|
|||
// we have to set the player to play the first track on page load
|
||||
// or else the play button won't work at first. make sure nothing
|
||||
// is playing first
|
||||
if($("#jquery_jplayer_1").data().jPlayer.status.paused == true){
|
||||
if ($("#jquery_jplayer_1").data().jPlayer.status.paused == true) {
|
||||
// jPlayer is not currently playing
|
||||
_playlist_jplayer.play(0);
|
||||
$("#jquery_jplayer_1").jPlayer("stop");
|
||||
|
@ -211,7 +212,7 @@
|
|||
return false;
|
||||
});
|
||||
|
||||
$('.podcast_desc_btn').click(function(){
|
||||
$('.podcast_desc_btn').click(function() {
|
||||
$(this).toggleClass('current');
|
||||
$(this).next('.podcast_desc').slideToggle();
|
||||
});
|
||||
|
@ -221,7 +222,7 @@
|
|||
_playlist_jplayer = new jPlayerPlaylist({
|
||||
jPlayer: "#jquery_jplayer_1",
|
||||
cssSelectorAncestor: "#jp_container_1"
|
||||
},[], //array of songs will be filled with below's json call
|
||||
}, [], //array of songs will be filled with below's json call
|
||||
{
|
||||
swfPath: baseUrl + "js/jplayer",
|
||||
supplied: "oga, mp3, m4v, m4a, wav",
|
||||
|
@ -240,7 +241,7 @@
|
|||
removeTime: 0,
|
||||
shuffleTime: 0
|
||||
},
|
||||
ready: function () {
|
||||
ready: function() {
|
||||
|
||||
var episodes = <?php echo $this->episodes ?>;
|
||||
var empty_podcast_message = "<?php echo $this->emptyPodcastMessage ?>";
|
||||
|
@ -252,14 +253,14 @@
|
|||
|
||||
|
||||
// update current track metadata on player bar
|
||||
$("#jquery_jplayer_1").bind(jQuery.jPlayer.event.play, function (event) {
|
||||
$("#jquery_jplayer_1").bind(jQuery.jPlayer.event.play, function(event) {
|
||||
var current = _playlist_jplayer.current;
|
||||
$('.current-track span').html(playlist[current].title);
|
||||
});
|
||||
|
||||
// build pagination menu
|
||||
var pages = "<li data-page-index='0'><</li>";
|
||||
$.each(episodes, function (index, value) {
|
||||
$.each(episodes, function(index, value) {
|
||||
var page_number = +index + 1;
|
||||
pages += "<li data-page-index='" + index + "'>" + page_number + "</li>";
|
||||
});
|
||||
|
@ -269,7 +270,7 @@
|
|||
$("ul.pagination").find("li:contains('1')").addClass('current');
|
||||
|
||||
// pagination click
|
||||
$("ul.pagination li").click(function () {
|
||||
$("ul.pagination li").click(function() {
|
||||
buildJplayerPlaylist($(this).attr("data-page-index"), episodes);
|
||||
$(this).siblings().removeClass('current');
|
||||
if ($(this).text() === "<") {
|
||||
|
@ -283,7 +284,7 @@
|
|||
});
|
||||
|
||||
//turn off player bar when podcast track is played
|
||||
$("a.jp-playlist-item, .jp-play, .podcast_play").click(function () {
|
||||
$("a.jp-playlist-item, .jp-play, .podcast_play").click(function() {
|
||||
if ($("#player_iframe").contents().find('.play').hasClass('pause')) {
|
||||
$("#player_iframe").contents().find('.play').click();
|
||||
}
|
||||
|
@ -292,7 +293,6 @@
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
</div>
|
||||
<?php
|
||||
|
@ -304,11 +304,11 @@
|
|||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$(document).ready(function() {
|
||||
|
||||
|
||||
|
||||
$("#player_iframe").load(function () {
|
||||
$("#player_iframe").load(function() {
|
||||
|
||||
$("#player_iframe").contents().find('.bottom_bar').append("<div class='flex_spacer' data-tab='tab-1'></div>");
|
||||
$("#player_iframe").contents().find('.bottom_bar').append("<div class='schedule_btn button current' data-tab='tab-1'></div>");
|
||||
|
@ -316,26 +316,26 @@
|
|||
|
||||
<?php
|
||||
// Is there a better way to do this?
|
||||
if ($this->displayRssTab) {?>
|
||||
if ($this->displayRssTab) { ?>
|
||||
$("#player_iframe").contents().find('.bottom_bar').append("<div class='station_rss_btn button' data-tab='tab-4'></div>");
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
$("#player_iframe").contents().find('.bottom_bar .button').click(function(){
|
||||
$("#player_iframe").contents().find('.bottom_bar .button').click(function() {
|
||||
var tab_id = $(this).attr('data-tab');
|
||||
|
||||
$("#player_iframe").contents().find('.bottom_bar .button').removeClass('current');
|
||||
$('.tab_content').removeClass('current');
|
||||
|
||||
window.scrollTo(0,0);
|
||||
window.scrollTo(0, 0);
|
||||
$(this).addClass('current');
|
||||
$("#"+tab_id).addClass('current');
|
||||
$("#" + tab_id).addClass('current');
|
||||
});
|
||||
|
||||
//turn off jplayer if it's playing and someone clicks to play the player bar
|
||||
$("#player_iframe").contents().find('.play').click(function () {
|
||||
$("#player_iframe").contents().find('.play').click(function() {
|
||||
if ($('.jp-play').is(':hidden')) {
|
||||
$('.jp-pause').click();
|
||||
}
|
||||
|
@ -343,16 +343,15 @@
|
|||
});
|
||||
|
||||
// schedule widget tabs
|
||||
$('.tabs li').click(function(){
|
||||
$('.tabs li').click(function() {
|
||||
var tab_id = $(this).attr('data-tab');
|
||||
|
||||
$('.tabs li').removeClass('active');
|
||||
$('.schedule_item').removeClass('active');
|
||||
|
||||
$(this).addClass('active');
|
||||
$("#"+tab_id).addClass('active');
|
||||
$("#" + tab_id).addClass('active');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -13,24 +13,24 @@
|
|||
<div class="track-edit-right-wrapper">
|
||||
<div class="track-edit-right">
|
||||
<div class="inner_track_editor_title" style="width: 100%;">
|
||||
<h2 style="line-height: 26px !important;"><span class="title_obj_name"><?php echo($this->title); ?></span></h2>
|
||||
<h3 style="line-height: 2px !important;"><span class=""><?php echo($this->artist_name); ?></span></h3>
|
||||
<h2 style="line-height: 26px !important;"><span class="title_obj_name"><?php echo ($this->title); ?></span></h2>
|
||||
<h3 style="line-height: 2px !important;"><span class=""><?php echo ($this->artist_name); ?></span></h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="track-edit-left">
|
||||
<div class="artwork-upload" data-id="<?php echo($this->id); ?>">
|
||||
<div class="artwork-upload" data-id="<?php echo ($this->id); ?>">
|
||||
<div class="artwork-edit">
|
||||
<input type='file' class="artworkUpload artwork-uploaded-<?php echo($this->id); ?>" id="artworkUpload-<?php echo ($this->id); ?>" data-id="<?php echo($this->id); ?>" accept=".png, .jpg, .jpeg" />
|
||||
<input type='file' class="artworkUpload artwork-uploaded-<?php echo ($this->id); ?>" id="artworkUpload-<?php echo ($this->id); ?>" data-id="<?php echo ($this->id); ?>" accept=".png, .jpg, .jpeg" />
|
||||
<label for="artworkUpload-<?php echo ($this->id); ?>"></label>
|
||||
</div>
|
||||
<div id="artwork-preview" class="artwork-preview">
|
||||
<div class="artwork-preview-<?php echo($this->id); ?>" id="artworkPreview" style="background-image: url(<?php echo $get_artwork; ?>);">
|
||||
<div class="artwork-preview-<?php echo ($this->id); ?>" id="artworkPreview" style="background-image: url(<?php echo $get_artwork; ?>);">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" class="delete-artwork" data-id="<?php echo($this->id); ?>" style="font-size: 11px;">Remove</a>
|
||||
<a href="#" class="delete-artwork" data-id="<?php echo ($this->id); ?>" style="font-size: 11px;">Remove</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -4,56 +4,122 @@ foreach ($this->md as $key => &$value) {
|
|||
$value = $this->escape($value);
|
||||
}
|
||||
?>
|
||||
<?php if($this->type == "audioclip") : ?>
|
||||
<table class='library-track-md'>
|
||||
<tr><td><?php echo _("Title:"); ?></td><td><?php echo ($this->md["MDATA_KEY_TITLE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Creator:"); ?></td><td><?php echo ($this->md["MDATA_KEY_CREATOR"]);?></td></tr>
|
||||
<tr><td><?php echo _("Album:"); ?></td><td><?php echo ($this->md["MDATA_KEY_SOURCE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Track:"); ?></td><td><?php echo ($this->md["MDATA_KEY_TRACKNUMBER"]);?></td></tr>
|
||||
<tr><td><?php echo _("Length:"); ?></td><td><?php echo ($this->md["MDATA_KEY_DURATION"]);?></td></tr>
|
||||
<tr><td class='file-md-qtip-nowrap'><?php echo _("Sample Rate:"); ?></td><td><?php echo ($this->md["MDATA_KEY_SAMPLERATE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Bit Rate:"); ?></td><td><?php echo ($this->md["MDATA_KEY_BITRATE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Mood:"); ?></td><td><?php echo ($this->md["MDATA_KEY_MOOD"]);?></td></tr>
|
||||
<tr><td><?php echo _("Genre:"); ?></td><td><?php echo ($this->md["MDATA_KEY_GENRE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Year:"); ?></td><td><?php echo ($this->md["MDATA_KEY_YEAR"]);?></td></tr>
|
||||
<tr><td><?php echo _("Label:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LABEL"]);?></td></tr>
|
||||
<tr><td><?php echo _("BPM:"); ?></td><td><?php echo ($this->md["MDATA_KEY_BPM"]);?></td></tr>
|
||||
<tr><td><?php echo _("Composer:"); ?></td><td><?php echo ($this->md["MDATA_KEY_COMPOSER"]);?></td></tr>
|
||||
<tr><td><?php echo _("Conductor:"); ?></td><td><?php echo ($this->md["MDATA_KEY_CONDUCTOR"]);?></td></tr>
|
||||
<tr><td><?php echo _("Copyright:"); ?></td><td><?php echo ($this->md["MDATA_KEY_COPYRIGHT"]);?></td></tr>
|
||||
<tr><td><?php echo _("Isrc Number:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ISRC"]);?></td></tr>
|
||||
<tr><td><?php echo _("Website:"); ?></td><td><?php echo ($this->md["MDATA_KEY_URL"]);?></td></tr>
|
||||
<tr><td><?php echo _("Artwork:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ARTWORK"]);?></td></tr>
|
||||
<tr><td><?php echo _("Artwork Data:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ARTWORK_DATA"]);?></td></tr>
|
||||
<tr><td><?php echo _("Language:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]);?></td></tr>
|
||||
<tr><td><?php echo _("Track Type:"); ?></td><td><?php echo ($this->md["MDATA_KEY_TRACK_TYPE"]);?></td></tr>
|
||||
<tr><td class='file-md-qtip-nowrap'><?php echo _("File Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr>
|
||||
</table>
|
||||
<?php if ($this->type == "audioclip") : ?>
|
||||
<table class='library-track-md'>
|
||||
<tr>
|
||||
<td><?php echo _("Title:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_TITLE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Creator:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_CREATOR"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Album:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_SOURCE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Track:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_TRACKNUMBER"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Length:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_DURATION"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='file-md-qtip-nowrap'><?php echo _("Sample Rate:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_SAMPLERATE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Bit Rate:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_BITRATE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Mood:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_MOOD"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Genre:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_GENRE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Year:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_YEAR"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Label:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_LABEL"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("BPM:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_BPM"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Composer:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_COMPOSER"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Conductor:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_CONDUCTOR"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Copyright:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_COPYRIGHT"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Isrc Number:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_ISRC"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Website:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_URL"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Artwork:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_ARTWORK"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Artwork Data:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_ARTWORK_DATA"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Language:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _("Track Type:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_TRACK_TYPE"]); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='file-md-qtip-nowrap'><?php echo _("File Path:"); ?></td>
|
||||
<td><?php echo ($this->md["MDATA_KEY_FILEPATH"]); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($this->type == "playlist" || $this->type == "block") : ?>
|
||||
<div class='file-md-qtip-left'>
|
||||
<span><?php echo _("Name:"); ?></span><span><?php echo ($this->md["dc:title"]);?></span><br />
|
||||
<span><?php echo _("Creator:"); ?></span><span><?php echo ($this->md["dc:creator"]);?></span><br />
|
||||
<?php if ($this->type == "block" && $this->blType == "Dynamic") { ?>
|
||||
<span><?php echo _("Length:"); ?></span><span><?php echo $this->block->getLength();?></span><br />
|
||||
<?php } else { ?>
|
||||
<span><?php echo _("Length:"); ?></span><span><?php echo ($this->md["dcterms:extent"]);?></span><br />
|
||||
<?php if ($this->type == "playlist" || $this->type == "block") : ?>
|
||||
<div class='file-md-qtip-left'>
|
||||
<span><?php echo _("Name:"); ?></span><span><?php echo ($this->md["dc:title"]); ?></span><br />
|
||||
<span><?php echo _("Creator:"); ?></span><span><?php echo ($this->md["dc:creator"]); ?></span><br />
|
||||
<?php if ($this->type == "block" && $this->blType == "Dynamic") { ?>
|
||||
<span><?php echo _("Length:"); ?></span><span><?php echo $this->block->getLength(); ?></span><br />
|
||||
<?php } else { ?>
|
||||
<span><?php echo _("Length:"); ?></span><span><?php echo ($this->md["dcterms:extent"]); ?></span><br />
|
||||
<?php } ?>
|
||||
<span><?php echo _("Description:"); ?></span><span><?php echo ($this->md["dc:description"]); ?></span>
|
||||
</div>
|
||||
|
||||
<?php if ($this->type == "playlist") { ?>
|
||||
<div class='file-md-qtip-legend'>
|
||||
<span class='webstream'>o</span> <span><?php echo _("Web Stream"); ?></span><br />
|
||||
<span class='dynamic'>o</span> <span><?php echo _("Dynamic Smart Block"); ?></span><br />
|
||||
<span class='static'>o</span> <span><?php echo _("Static Smart Block"); ?></span><br />
|
||||
<span>o</span> <span><?php echo _("Audio Track"); ?></span>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
<span><?php echo _("Description:"); ?></span><span><?php echo ($this->md["dc:description"]);?></span>
|
||||
</div>
|
||||
|
||||
<?php if ($this->type == "playlist") { ?>
|
||||
<div class='file-md-qtip-legend'>
|
||||
<span class='webstream'>o</span> <span><?php echo _("Web Stream"); ?></span><br />
|
||||
<span class='dynamic'>o</span> <span><?php echo _("Dynamic Smart Block"); ?></span><br />
|
||||
<span class='static'>o</span> <span><?php echo _("Static Smart Block"); ?></span><br />
|
||||
<span>o</span> <span><?php echo _("Audio Track"); ?></span>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($this->type == "playlist" || ($this->type == "block" && $this->blType == "Static")) {?>
|
||||
<?php if ($this->type == "playlist" || ($this->type == "block" && $this->blType == "Static")) { ?>
|
||||
<?php
|
||||
//XSS exploit prevention
|
||||
/*foreach ($this->contents as &$item) {
|
||||
|
@ -68,74 +134,75 @@ foreach ($this->md as $key => &$value) {
|
|||
<div class='file-md-qtip-left'><span><?php echo _("Static Smart Block Contents: "); ?></span></div>
|
||||
<?php } ?>
|
||||
<table class='library-get-file-md'>
|
||||
<?php foreach($this->contents as $row) : ?>
|
||||
<?php
|
||||
$titleMaxStrLen = 35;
|
||||
if (mb_strlen($row["track_title"], 'UTF-8') > $titleMaxStrLen) {
|
||||
$row["track_title"] = mb_substr($row["track_title"], 0, 34, 'UTF-8')."...";
|
||||
}
|
||||
$artistMaxStrLen = 22;
|
||||
if (mb_strlen($row["creator"], 'UTF-8') > $artistMaxStrLen) {
|
||||
$row["creator"] = mb_substr($row["creator"], 0, 21, 'UTF-8')."...";
|
||||
}
|
||||
?>
|
||||
<?php if ($row["type"] == 2) {
|
||||
$bl = new Application_Model_Block($row["item_id"]);
|
||||
$isStatic = $bl->isStatic(); ?>
|
||||
<tr class='file-md-qtip-playlist <?php if ($isStatic) echo 'static'; else echo 'dynamic';?>'>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $bl->getLength(); ?></td>
|
||||
</tr>
|
||||
<?php } else if ($row["type"] == 1) {?>
|
||||
<tr class='file-md-qtip-playlist webstream'>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $row["length"] ?></td>
|
||||
</tr>
|
||||
<?php } else { ?>
|
||||
<tr>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $row["length"] ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($this->contents as $row) : ?>
|
||||
<?php
|
||||
$titleMaxStrLen = 35;
|
||||
if (mb_strlen($row["track_title"], 'UTF-8') > $titleMaxStrLen) {
|
||||
$row["track_title"] = mb_substr($row["track_title"], 0, 34, 'UTF-8') . "...";
|
||||
}
|
||||
$artistMaxStrLen = 22;
|
||||
if (mb_strlen($row["creator"], 'UTF-8') > $artistMaxStrLen) {
|
||||
$row["creator"] = mb_substr($row["creator"], 0, 21, 'UTF-8') . "...";
|
||||
}
|
||||
?>
|
||||
<?php if ($row["type"] == 2) {
|
||||
$bl = new Application_Model_Block($row["item_id"]);
|
||||
$isStatic = $bl->isStatic(); ?>
|
||||
<tr class='file-md-qtip-playlist <?php if ($isStatic) echo 'static';
|
||||
else echo 'dynamic'; ?>'>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $bl->getLength(); ?></td>
|
||||
</tr>
|
||||
<?php } else if ($row["type"] == 1) { ?>
|
||||
<tr class='file-md-qtip-playlist webstream'>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $row["length"] ?></td>
|
||||
</tr>
|
||||
<?php } else { ?>
|
||||
<tr>
|
||||
<td class='file-md-qtip-row-width-title file-md-qtip-nowrap'><?php echo $row["track_title"] ?></td>
|
||||
<td class='file-md-qtip-row-width-artist file-md-qtip-nowrap'><?php echo $row["creator"] ?></td>
|
||||
<td class='file-md-qtip-row-width-small'><?php echo $row["length"] ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
|
||||
<?php } elseif ($this->blType == "Dynamic") { ?>
|
||||
<div class='file-md-qtip-left'><span><?php echo _("Dynamic Smart Block Criteria: "); ?></span></div>
|
||||
<table class='library-get-file-md table-small'>
|
||||
<?php foreach ($this->contents["crit"] as &$criterias) : ?>
|
||||
<?php foreach ($criterias as &$crit ) : ?>
|
||||
<?php
|
||||
// XSS exploit prevention
|
||||
//$crit["value"] = htmlspecialchars($crit["value"]);
|
||||
//$crit["extra"] = htmlspecialchars($crit["extra"]);
|
||||
<?php foreach ($this->contents["crit"] as &$criterias) : ?>
|
||||
<?php foreach ($criterias as &$crit) : ?>
|
||||
<?php
|
||||
// XSS exploit prevention
|
||||
//$crit["value"] = htmlspecialchars($crit["value"]);
|
||||
//$crit["extra"] = htmlspecialchars($crit["extra"]);
|
||||
|
||||
$valMaxStrLen = 25;
|
||||
if (strlen($crit["value"]) > $valMaxStrLen) {
|
||||
$crit["value"] = substr($crit["value"], 0, 24)."...";
|
||||
}
|
||||
$critMaxStrLen = 13;
|
||||
if (strlen($crit["display_name"]) > $critMaxStrLen) {
|
||||
$crit["display_name"] = substr($crit["display_name"], 0, 12)."...";
|
||||
}
|
||||
$modMaxStrLen = 16;
|
||||
if (strlen($crit["modifier"]) > $modMaxStrLen) {
|
||||
$crit["modifier"] = substr($crit["modifier"], 0, 15)."...";
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class='file-md-qtip-criteria-width-small file-md-qtip-nowrap'><?php echo $crit["display_name"] ?></td>
|
||||
<td class='file-md-qtip-criteria-width-small file-md-qtip-nowrap'><?php echo $crit["modifier"] ?></td>
|
||||
<td class='file-md-qtip-criteria-width file-md-qtip-nowrap'><?php echo $crit["value"] ?>
|
||||
<?php if (isset($crit["extra"])) { ?>
|
||||
to <?php echo $crit["extra"] ?></td>
|
||||
$valMaxStrLen = 25;
|
||||
if (strlen($crit["value"]) > $valMaxStrLen) {
|
||||
$crit["value"] = substr($crit["value"], 0, 24) . "...";
|
||||
}
|
||||
$critMaxStrLen = 13;
|
||||
if (strlen($crit["display_name"]) > $critMaxStrLen) {
|
||||
$crit["display_name"] = substr($crit["display_name"], 0, 12) . "...";
|
||||
}
|
||||
$modMaxStrLen = 16;
|
||||
if (strlen($crit["modifier"]) > $modMaxStrLen) {
|
||||
$crit["modifier"] = substr($crit["modifier"], 0, 15) . "...";
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class='file-md-qtip-criteria-width-small file-md-qtip-nowrap'><?php echo $crit["display_name"] ?></td>
|
||||
<td class='file-md-qtip-criteria-width-small file-md-qtip-nowrap'><?php echo $crit["modifier"] ?></td>
|
||||
<td class='file-md-qtip-criteria-width file-md-qtip-nowrap'><?php echo $crit["value"] ?>
|
||||
<?php if (isset($crit["extra"])) { ?>
|
||||
to <?php echo $crit["extra"] ?></td>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
<tr>
|
||||
<td><?php echo _("Limit to ") ?></td>
|
||||
<td><?php echo $this->contents["limit"]["value"] ?> <?php echo $this->contents["limit"]["modifier"] ?></td>
|
||||
|
@ -146,11 +213,11 @@ foreach ($this->md as $key => &$value) {
|
|||
|
||||
<?php if ($this->type == "stream") : ?>
|
||||
|
||||
<div><span><?php echo _("Name:"); ?></span><span><?php echo ($this->md["name"]);?></span></div>
|
||||
<div><span><?php echo _("Length:"); ?></span><span><?php echo ($this->md["length"]);?></span></div>
|
||||
<div><span><?php echo _("Creator:"); ?></span><span><?php echo ($this->md["login"]);?></span></div>
|
||||
<div><span><?php echo _("Description:"); ?></span><span><?php echo ($this->md["description"]);?></span></div>
|
||||
<div><span><?php echo _("URL:"); ?></span><span><?php echo ($this->md["url"]);?></span></div>
|
||||
<div><span><?php echo _("Name:"); ?></span><span><?php echo ($this->md["name"]); ?></span></div>
|
||||
<div><span><?php echo _("Length:"); ?></span><span><?php echo ($this->md["length"]); ?></span></div>
|
||||
<div><span><?php echo _("Creator:"); ?></span><span><?php echo ($this->md["login"]); ?></span></div>
|
||||
<div><span><?php echo _("Description:"); ?></span><span><?php echo ($this->md["description"]); ?></span></div>
|
||||
<div><span><?php echo _("URL:"); ?></span><span><?php echo ($this->md["url"]); ?></span></div>
|
||||
|
||||
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -9,18 +9,18 @@ if ($this->showPlaylist) {
|
|||
$display = "display:none";
|
||||
}
|
||||
?>
|
||||
<div class="side_playlist pl-content ui-widget ui-widget-content block-shadow omega-block padded" style="height:697px; width:720px;<?php echo $display?>">
|
||||
<div class="side_playlist pl-content ui-widget ui-widget-content block-shadow omega-block padded" style="height:697px; width:720px;<?php echo $display ?>">
|
||||
<?php if ($this->type == 'block') {
|
||||
echo $this->render('playlist/smart-block.phtml');
|
||||
} else if ($this->type == 'playlist') {
|
||||
echo $this->render('playlist/playlist.phtml');
|
||||
} else if ($this->type == 'stream') {
|
||||
echo $this->render('webstream/webstream.phtml');
|
||||
} else {
|
||||
echo $this->render('webstream/webstream.phtml');
|
||||
//throw new Exception("Unrecognized type: '{$this->type}'");
|
||||
}
|
||||
echo $this->render('playlist/smart-block.phtml');
|
||||
} else if ($this->type == 'playlist') {
|
||||
echo $this->render('playlist/playlist.phtml');
|
||||
} else if ($this->type == 'stream') {
|
||||
echo $this->render('webstream/webstream.phtml');
|
||||
} else {
|
||||
echo $this->render('webstream/webstream.phtml');
|
||||
//throw new Exception("Unrecognized type: '{$this->type}'");
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
</div>
|
||||
<div class="inner_editor_wrapper">
|
||||
<form class="media-metadata">
|
||||
<input ng-value="media.id" class="obj_id" type="hidden"/>
|
||||
<input ng-value="media.id" class="obj_id" type="hidden" />
|
||||
<label class="publish-md-field"><?php echo _("Title:") ?></label>
|
||||
<input disabled ng-model="media.track_title" type="text"/>
|
||||
<input disabled ng-model="media.track_title" type="text" />
|
||||
|
||||
<label class="publish-md-field"><?php echo _("Creator:") ?></label>
|
||||
<input disabled ng-model="media.artist_name" type="text"/>
|
||||
<input disabled ng-model="media.artist_name" type="text" />
|
||||
|
||||
<label class="publish-md-field"><?php echo _("Description:") ?></label>
|
||||
<textarea disabled ng-model="media.description"></textarea>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div id="listenerstat_content" class="alpha-block padded">
|
||||
<H2><?php echo _("Listeners")?></H2>
|
||||
<H2><?php echo _("Listeners") ?></H2>
|
||||
<div id="flot_placeholder" style="height:300px;margin:0px 50px 0px 50px"></div>
|
||||
<div id="legend" style="width:600px;height:70px;margin:0px 50px 0px 50px"></div>
|
||||
<div id="date_form" style="float:left; margin:0px 0px">
|
||||
|
@ -7,11 +7,13 @@
|
|||
<?php echo $this->date_form; ?>
|
||||
</div>
|
||||
<div id="errorStatus" style="float:right; width: 400px">
|
||||
<h3><?php echo _("Stream Data Collection Status")?></h3>
|
||||
<h3><?php echo _("Stream Data Collection Status") ?></h3>
|
||||
<fieldset class="padded stream-setting-global">
|
||||
<?php foreach ($this->errorStatus as $k=>$v) {?>
|
||||
<div class='stream-status <?php echo ($v == 'OK')? 'status-good' : 'status-error' ?>'><p><?php echo $k?>: <?php echo $v?></p></div>
|
||||
<?php }?>
|
||||
<?php foreach ($this->errorStatus as $k => $v) { ?>
|
||||
<div class='stream-status <?php echo ($v == 'OK') ? 'status-good' : 'status-error' ?>'>
|
||||
<p><?php echo $k ?>: <?php echo $v ?></p>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div id="showlistenerstat_content" class="alpha-block padded">
|
||||
<H2><?php echo _("Listeners")?></H2>
|
||||
<H2><?php echo _("Listeners") ?></H2>
|
||||
<div class="error_window"></div>
|
||||
<div id="date_form" style="float:left; margin:0px 0px">
|
||||
<h3 style="padding-left: 0px"><?php echo _("Date Range") ?></h3>
|
||||
|
@ -9,12 +9,12 @@
|
|||
<table id="show_builder_table" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||
<table cellspacing="0" cellpadding="0" style="" id="show_stats_datatable" class="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo _("Show Name") ?></th>
|
||||
<th><?php echo _("Air Date") ?></th>
|
||||
<th><?php echo _("Average Listeners")?></th>
|
||||
<th><?php echo _("Maximum Number of Listeners")?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo _("Show Name") ?></th>
|
||||
<th><?php echo _("Air Date") ?></th>
|
||||
<th><?php echo _("Average Listeners") ?></th>
|
||||
<th><?php echo _("Maximum Number of Listeners") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<div class="login_box">
|
||||
<div class="logobox"> </div>
|
||||
<h2><?php echo _("Login") ?></h2>
|
||||
<h2><?php echo _("Login") ?></h2>
|
||||
<div id="login" class="login-content clearfix">
|
||||
<?php if(isset($this->demo) && $this->demo == 1){?>
|
||||
<?php if (isset($this->demo) && $this->demo == 1) { ?>
|
||||
<p style="font-weight:bold">
|
||||
<?php echo sprintf(_("Welcome to the %s demo! You can log in using the username 'admin' and the password 'admin'."), PRODUCT_NAME)?>
|
||||
<?php echo sprintf(_("Welcome to the %s demo! You can log in using the username 'admin' and the password 'admin'."), PRODUCT_NAME) ?>
|
||||
</p>
|
||||
<?php }?>
|
||||
<p class="light" style='<?php echo $this->error?"color:#902d2d;font-size:11px;padding:2px 4px;background:#c6b4b4;margin-bottom:2px;border:1px solid #c83f3f;":""?>'><?php echo $this->message; ?></p>
|
||||
<?php } ?>
|
||||
<p class="light" style='<?php echo $this->error ? "color:#902d2d;font-size:11px;padding:2px 4px;background:#c6b4b4;margin-bottom:2px;border:1px solid #c83f3f;" : "" ?>'><?php echo $this->message; ?></p>
|
||||
<?php echo $this->form; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<h2><?php echo _("New password") ?></h2>
|
||||
|
||||
<div id="login" class="login-content clearfix">
|
||||
<p class="light"><?php echo _("Please enter and confirm your new password in the fields below."); ?></p>
|
||||
<p class="light"><?php echo _("Please enter and confirm your new password in the fields below."); ?></p>
|
||||
<?php echo $this->form; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
<br>
|
||||
<dl class="zend-form">
|
||||
<dd id="cancel-element">
|
||||
<a href="<?php echo($this->baseUrl('login')); ?>">
|
||||
<button name="cancel" type="button" class="ui-button ui-widget ui-state-default ui-button-text-only center"><?php echo(_("Back")); ?></button>
|
||||
<a href="<?php echo ($this->baseUrl('login')); ?>">
|
||||
<button name="cancel" type="button" class="ui-button ui-widget ui-state-default ui-button-text-only center"><?php echo (_("Back")); ?></button>
|
||||
</a>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<ol class="navigation">
|
||||
<?php foreach ($this->container as $page) : ?>
|
||||
<?php
|
||||
<?php foreach ($this->container as $page) : ?>
|
||||
<?php
|
||||
// Host users do not have access to the General Preferences
|
||||
// therefor we need to manually change the page parameters
|
||||
// to point to the first allowed item in the Preferences
|
||||
|
@ -8,38 +8,43 @@
|
|||
$user = Application_Model_User::getCurrentUser();
|
||||
$isHost = $user->isUserType(array(UTYPE_HOST));
|
||||
if ($isHost && $page->getTitle() === 'Settings') {
|
||||
$page->set('resource', 'usersettings');
|
||||
$page->set('controller', 'user');
|
||||
$page->set('action','edit-user');
|
||||
$page->set('resource', 'usersettings');
|
||||
$page->set('controller', 'user');
|
||||
$page->set('action', 'edit-user');
|
||||
}
|
||||
?>
|
||||
<?php if($this->navigation()->accept($page)) : ?>
|
||||
<li class="top <?php if($page->isActive(true)){echo 'active';} ?>">
|
||||
<?php if($page->hasPages()) : ?>
|
||||
<a class="top_link" href="<?php echo $page->getHref(); ?>">
|
||||
<span class="down"><?php echo $page->getClass(); echo _($page->getLabel()); ?></span>
|
||||
</a>
|
||||
<ul class="sub">
|
||||
?>
|
||||
<?php if ($this->navigation()->accept($page)) : ?>
|
||||
<li class="top <?php if ($page->isActive(true)) {
|
||||
echo 'active';
|
||||
} ?>">
|
||||
<?php if ($page->hasPages()) : ?>
|
||||
<a class="top_link" href="<?php echo $page->getHref(); ?>">
|
||||
<span class="down"><?php echo $page->getClass();
|
||||
echo _($page->getLabel()); ?></span>
|
||||
</a>
|
||||
<ul class="sub">
|
||||
|
||||
<?php foreach ($page->getPages() as $sub) :
|
||||
if($sub->getId() == "manage_folder"){
|
||||
continue;
|
||||
} ?>
|
||||
<?php foreach ($page->getPages() as $sub) :
|
||||
if ($sub->getId() == "manage_folder") {
|
||||
continue;
|
||||
} ?>
|
||||
|
||||
<?php if($this->navigation()->accept($sub)) : ?>
|
||||
<?php if ($this->navigation()->accept($sub)) : ?>
|
||||
|
||||
<li>
|
||||
<a href="<?php echo $sub->getHref(); ?>" <?php echo ($sub->getTarget() != "")?"target=\"".$sub->getTarget()."\"":""; ?>><?php echo $page->getClass(); echo _($sub->getLabel()); ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo $sub->getHref(); ?>" <?php echo ($sub->getTarget() != "") ? "target=\"" . $sub->getTarget() . "\"" : ""; ?>><?php echo $page->getClass();
|
||||
echo _($sub->getLabel()); ?></a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php else : ?>
|
||||
<a class="top_link" href="<?php echo $page->getHref(); ?>">
|
||||
<span><?php echo $page->getClass();
|
||||
echo _($page->getLabel()); ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<a class="top_link" href="<?php echo $page->getHref(); ?>">
|
||||
<span><?php echo $page->getClass(); echo _($page->getLabel()); ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ol>
|
||||
|
|
|
@ -9,25 +9,26 @@
|
|||
<div class="text-row"><strong><?php echo _("Previous:"); ?></strong> <span id='previous'></span> <span id='prev-length'></span></div>
|
||||
<div class="now-playing-info song">
|
||||
<div class="time-flow"><span class="song-length" id="song-length"></span><span class="time-elapsed" id="time-elapsed"></span><span class="time-remaining" id="time-remaining"></span></div>
|
||||
<span id='current'></span></div>
|
||||
<span id='current'></span>
|
||||
</div>
|
||||
<div class="progressbar">
|
||||
<div class="progress-song" id="progress-bar" style="width:0%;"></div>
|
||||
</div>
|
||||
<div class="text-row next-song"><strong><?php echo _("Next:"); ?></strong> <span id='next'></span> <span id='next-length'></span></div>
|
||||
</div>
|
||||
<div class="show-block">
|
||||
<div class="text-row"> </div>
|
||||
<div class="now-playing-info show">
|
||||
<div class="recording-show" style="display: none;"></div>
|
||||
<span id="playlist"></span>
|
||||
<span id="show-length" class="show-length"></span>
|
||||
</div>
|
||||
<div class="progressbar">
|
||||
<div class="progress-show" id='progress-show' style="width:0%;"></div>
|
||||
</div>
|
||||
<div class="show-block">
|
||||
<div class="text-row"> </div>
|
||||
<div class="now-playing-info show">
|
||||
<div class="recording-show" style="display: none;"></div>
|
||||
<span id="playlist"></span>
|
||||
<span id="show-length" class="show-length"></span>
|
||||
</div>
|
||||
<div class="progressbar">
|
||||
<div class="progress-show" id='progress-show' style="width:0%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="source-info-block">
|
||||
<h3><?php echo _("Source Streams") ?></h3>
|
||||
<h3><?php echo _("Source Streams") ?></h3>
|
||||
<ul style="padding-top: 10px;">
|
||||
<li>
|
||||
<div id="master_dj_div" class="source-label">
|
||||
|
@ -35,31 +36,31 @@
|
|||
<?php echo _("Master Source") ?>
|
||||
</div>
|
||||
<div class="line-to-switch"></div>
|
||||
<a href="#" id="master_dj" class="source-switch-button" onclick="setSwitchListener(this);"><span><?php echo $this->master_dj_switch?></span></a>
|
||||
<a href="#" id="master_dj" class="source-switch-button" onclick="setSwitchListener(this);"><span><?php echo $this->master_dj_switch ?></span></a>
|
||||
<div class="line-to-on-air"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="live_dj_div" class="source-label">
|
||||
<a id="live_dj" class="source-kick-button" onclick="kickSource(this)"></a>
|
||||
<?php echo _("Show Source")?>
|
||||
<a id="live_dj" class="source-kick-button" onclick="kickSource(this)"></a>
|
||||
<?php echo _("Show Source") ?>
|
||||
</div>
|
||||
<div class="line-to-switch"></div>
|
||||
<a href="#" id="live_dj" class="source-switch-button" onclick="setSwitchListener(this);"><span><?php echo $this->live_dj_switch?></span></a>
|
||||
<a href="#" id="live_dj" class="source-switch-button" onclick="setSwitchListener(this);"><span><?php echo $this->live_dj_switch ?></span></a>
|
||||
<div class="line-to-on-air"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="on-air-block">
|
||||
<h3> </h3>
|
||||
<h3> </h3>
|
||||
<div class="on-air-info off" id="on-air-info"><?php echo _("ON AIR") ?></div>
|
||||
<a href="#" class="listen-control-button"><span><?php echo _("Listen") ?></span></a>
|
||||
</div>
|
||||
<div class="time-info-block pull-right">
|
||||
<div class="time" id="time"></div>
|
||||
<div class="personal-block">
|
||||
<a id="current-user" href=<?php echo $this->baseUrl . "/user/edit-user"?>><span class="name"><?php echo $this->escape($this->loggedInAs()); ?></span></a>
|
||||
<a id="current-user" href=<?php echo $this->baseUrl . "/user/edit-user" ?>><span class="name"><?php echo $this->escape($this->loggedInAs()); ?></span></a>
|
||||
<span>|</span>
|
||||
<a href=<?php echo $this->baseUrl . "/login/logout"?>><?php echo _("Logout")?></a>
|
||||
<a href=<?php echo $this->baseUrl . "/login/logout" ?>><?php echo _("Logout") ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
<?php if ($this->objType == "block") { $displayText = "smart block"; } else { $displayText = $this->escape($this->objType); } ?>
|
||||
<?php if ($this->objType == "block") {
|
||||
$displayText = "smart block";
|
||||
} else {
|
||||
$displayText = $this->escape($this->objType);
|
||||
} ?>
|
||||
<h3>You do not have permission to edit this <?php echo $displayText; ?>.</h3>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
|
||||
<input class='obj_type' type='hidden' value="<?php echo $this->escape($this->objType); ?>"/>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>" />
|
||||
<input class='obj_type' type='hidden' value="<?php echo $this->escape($this->objType); ?>" />
|
||||
<input type="hidden" class="playlist_name_display" contenteditable="true" value="<?php echo $this->escape($this->obj->getName()); ?>">
|
||||
|
|
|
@ -7,17 +7,17 @@ if (isset($this->obj)) {
|
|||
|
||||
<?php if (isset($this->obj)) : ?>
|
||||
<div class="inner_editor_title">
|
||||
<H2><?php echo(_("Editing "));?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName());?></span>"</H2>
|
||||
<H2><?php echo (_("Editing ")); ?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName()); ?></span>"</H2>
|
||||
</div>
|
||||
<div class="inner_editor_wrapper">
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"/>
|
||||
<input class='obj_type' type='hidden' value='playlist'/>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>" />
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>" />
|
||||
<input class='obj_type' type='hidden' value='playlist' />
|
||||
|
||||
<dl class="zend_form playlist_editor">
|
||||
<dt>
|
||||
<label><?php echo(_("Name:")); ?></label>
|
||||
<label><?php echo (_("Name:")); ?></label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="text" class="playlist_name_display" contenteditable="true" value="<?php echo $this->escape($this->obj->getName()); ?>">
|
||||
|
@ -28,13 +28,14 @@ if (isset($this->obj)) {
|
|||
</dd>
|
||||
</dl>
|
||||
|
||||
<?php //echo $this->form; ?>
|
||||
<?php //echo $this->form;
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ui-widget-header fg-toolbar btn-toolbar clearfix">
|
||||
<h4 class="obj_length"><?php echo($this->length); ?></h4>
|
||||
<h4 class="obj_length_label"><?php echo(_("Duration:"));?></h4>
|
||||
<h4 class="obj_length"><?php echo ($this->length); ?></h4>
|
||||
<h4 class="obj_length_label"><?php echo (_("Duration:")); ?></h4>
|
||||
|
||||
<div class='btn-group'>
|
||||
<button class="btn toggle-editor-form" title='<?php echo _("Toggle Details") ?>' type="button"><span class="icon-white spl-no-r-margin icon-chevron-up"></span></button>
|
||||
|
@ -67,8 +68,8 @@ if (isset($this->obj)) {
|
|||
</div>
|
||||
|
||||
<ul class="spl_sortable">
|
||||
<?php $this->contents = $contents;
|
||||
echo $this->render('playlist/update.phtml') ?>
|
||||
<?php $this->contents = $contents;
|
||||
echo $this->render('playlist/update.phtml') ?>
|
||||
</ul>
|
||||
<div class="btn-toolbar clearfix">
|
||||
<div class="btn-group pull-right">
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
<dl id="spl_cue_editor" class="inline-list">
|
||||
<dd data-uri="<?php echo $this->uri; ?>">
|
||||
<input type="button" class="pl-waveform-cues-btn" value="<?php echo _("Show Waveform")?>"></input>
|
||||
</dd>
|
||||
<dt><?php echo _("Cue In: "); ?><span class='spl_cue_hint'><?php echo _("(hh:mm:ss.t)")?></span></dt>
|
||||
<dd id="spl_cue_in_<?php echo $this->id; ?>" class="spl_cue_in"
|
||||
data-cue-in="<?php echo $this->cueIn; ?>"
|
||||
data-cue-sec="<?php echo $this->cueInSec; ?>">
|
||||
<dd data-uri="<?php echo $this->uri; ?>">
|
||||
<input type="button" class="pl-waveform-cues-btn" value="<?php echo _("Show Waveform") ?>"></input>
|
||||
</dd>
|
||||
<dt><?php echo _("Cue In: "); ?><span class='spl_cue_hint'><?php echo _("(hh:mm:ss.t)") ?></span></dt>
|
||||
<dd id="spl_cue_in_<?php echo $this->id; ?>" class="spl_cue_in" data-cue-in="<?php echo $this->cueIn; ?>" data-cue-sec="<?php echo $this->cueInSec; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->cueIn; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<dt><?php echo _("Cue Out: "); ?><span class='spl_cue_hint'><?php echo _("(hh:mm:ss.t)")?></span></dt>
|
||||
<dd id="spl_cue_out_<?php echo $this->id; ?>" class="spl_cue_out"
|
||||
data-cue-out="<?php echo $this->cueOut; ?>"
|
||||
data-cue-sec="<?php echo $this->cueOutSec; ?>">
|
||||
<dt><?php echo _("Cue Out: "); ?><span class='spl_cue_hint'><?php echo _("(hh:mm:ss.t)") ?></span></dt>
|
||||
<dd id="spl_cue_out_<?php echo $this->id; ?>" class="spl_cue_out" data-cue-out="<?php echo $this->cueOut; ?>" data-cue-sec="<?php echo $this->cueOutSec; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->cueOut; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
<dl id="spl_editor" class="inline-list">
|
||||
<dd>
|
||||
<input type="button" class="pl-waveform-fades-btn" value="<?php echo _("Show Waveform")?>"></input>
|
||||
<input type="button" class="pl-waveform-fades-btn" value="<?php echo _("Show Waveform") ?>"></input>
|
||||
</dd>
|
||||
<?php if ($this->item1Type == 0) {?>
|
||||
<dt><?php echo _("Fade out: "); ?><span class='spl_cue_hint'><?php echo _("(ss.t)")?></span></dt>
|
||||
<dd id="spl_fade_out_<?php echo $this->item1; ?>" class="spl_fade_out"
|
||||
data-fadeout="<?php echo $this->item1Url; ?>"
|
||||
data-cuein="<?php echo $this->cueIn1; ?>"
|
||||
data-cueout="<?php echo $this->cueOut1; ?>"
|
||||
data-length="<?php echo $this->fadeOut; ?>"
|
||||
data-type="logarithmic"
|
||||
data-item="<?php echo $this->item1; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->fadeOut; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<?php }
|
||||
if (isset($this->item2Url)) {?>
|
||||
<dt><?php echo _("Fade in: "); ?><span class='spl_cue_hint'><?php echo _("(ss.t)")?></span></dt>
|
||||
<dd id="spl_fade_in_<?php echo $this->item2; ?>" class="spl_fade_in"
|
||||
data-fadein="<?php echo $this->item2Url; ?>"
|
||||
data-offset="<?php if ($this->item1Type == 0) { echo $this->offset; } else { echo 0; } ?>"
|
||||
data-cuein="<?php echo $this->cueIn2; ?>"
|
||||
data-cueout="<?php echo $this->cueOut2; ?>" data-length="<?php echo $this->fadeIn; ?>"
|
||||
data-type="logarithmic"
|
||||
data-item="<?php echo $this->item2; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->fadeIn; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<?php }?>
|
||||
<?php if ($this->item1Type == 0) { ?>
|
||||
<dt><?php echo _("Fade out: "); ?><span class='spl_cue_hint'><?php echo _("(ss.t)") ?></span></dt>
|
||||
<dd id="spl_fade_out_<?php echo $this->item1; ?>" class="spl_fade_out" data-fadeout="<?php echo $this->item1Url; ?>" data-cuein="<?php echo $this->cueIn1; ?>" data-cueout="<?php echo $this->cueOut1; ?>" data-length="<?php echo $this->fadeOut; ?>" data-type="logarithmic" data-item="<?php echo $this->item1; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->fadeOut; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<?php }
|
||||
if (isset($this->item2Url)) { ?>
|
||||
<dt><?php echo _("Fade in: "); ?><span class='spl_cue_hint'><?php echo _("(ss.t)") ?></span></dt>
|
||||
<dd id="spl_fade_in_<?php echo $this->item2; ?>" class="spl_fade_in" data-fadein="<?php echo $this->item2Url; ?>" data-offset="<?php if ($this->item1Type == 0) {
|
||||
echo $this->offset;
|
||||
} else {
|
||||
echo 0;
|
||||
} ?>" data-cuein="<?php echo $this->cueIn2; ?>" data-cueout="<?php echo $this->cueOut2; ?>" data-length="<?php echo $this->fadeIn; ?>" data-type="logarithmic" data-item="<?php echo $this->item2; ?>">
|
||||
<span contenteditable="true" class="spl_text_input"><?php echo $this->fadeIn; ?></span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<?php } ?>
|
||||
</dl>
|
||||
|
|
|
@ -7,23 +7,23 @@ if (isset($this->obj)) {
|
|||
|
||||
<?php if (isset($this->obj)) : ?>
|
||||
<div class="inner_editor_title">
|
||||
<H2><?php echo(_("Editing "));?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName());?></span>"</H2>
|
||||
<H2><?php echo (_("Editing ")); ?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName()); ?></span>"</H2>
|
||||
</div>
|
||||
<div class="inner_editor_wrapper smart-block-form">
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"/>
|
||||
<input class='obj_type' type='hidden' value='block'/>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>" />
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>" />
|
||||
<input class='obj_type' type='hidden' value='block' />
|
||||
|
||||
<dl class="zend_form playlist_editor">
|
||||
<dt>
|
||||
<label><?php echo(_("Name:")); ?></label>
|
||||
<label><?php echo (_("Name:")); ?></label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="text" class="playlist_name_display" contenteditable="true" value="<?php
|
||||
if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName());
|
||||
?>">
|
||||
if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName());
|
||||
?>">
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
@ -34,9 +34,9 @@ if (isset($this->obj)) {
|
|||
<dt id="description-label"><label for="description"><?php echo _("Description:") ?></label></dt>
|
||||
<dd id="description-element">
|
||||
<textarea cols="24" rows="3" id="description" name="description"><?php
|
||||
if (isset($this->unsavedDesc)) echo $this->unsavedDesc;
|
||||
else echo $this->obj->getDescription();
|
||||
?></textarea>
|
||||
if (isset($this->unsavedDesc)) echo $this->unsavedDesc;
|
||||
else echo $this->obj->getDescription();
|
||||
?></textarea>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
@ -44,17 +44,17 @@ if (isset($this->obj)) {
|
|||
</div>
|
||||
|
||||
<div class="ui-widget-header fg-toolbar btn-toolbar clearfix">
|
||||
<h4 class="obj_length"><?php echo($this->length); ?></h4>
|
||||
<h4 class="obj_length_label"><?php echo(_("Duration:"));?></h4>
|
||||
<h4 class="obj_length"><?php echo ($this->length); ?></h4>
|
||||
<h4 class="obj_length_label"><?php echo (_("Duration:")); ?></h4>
|
||||
|
||||
<div class='btn-group'>
|
||||
<button class="btn toggle-editor-form" title='<?php echo _("Toggle Details") ?>' type="button"><span class="icon-white spl-no-r-margin icon-chevron-up"></span></button>
|
||||
</div>
|
||||
<div class='btn-group'>
|
||||
<?php echo $this->form->getElement('generate_button');?>
|
||||
<?php echo $this->form->getElement('generate_button'); ?>
|
||||
</div>
|
||||
<div class='btn-group'>
|
||||
<?php echo $this->form->getElement('shuffle_button');?>
|
||||
<?php echo $this->form->getElement('shuffle_button'); ?>
|
||||
</div>
|
||||
<div class='btn-group'>
|
||||
<button id="spl_crossfade" class="btn crossfade-main-button">
|
||||
|
@ -72,17 +72,19 @@ if (isset($this->obj)) {
|
|||
<dl id="spl_editor-main" class="inline-list">
|
||||
<dt><?php echo _("Fade in: "); ?></dt>
|
||||
<dd>
|
||||
<input class="spl_main_fade_in playlist_main_fade_input" value="0" /><span class='spl_cue_hint'> seconds</span></dd>
|
||||
<input class="spl_main_fade_in playlist_main_fade_input" value="0" /><span class='spl_cue_hint'> seconds</span>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
<dt><?php echo _("Fade out: "); ?></dt>
|
||||
<dd><input class="spl_main_fade_out playlist_main_fade_input" value="0" /><span class='spl_cue_hint'> seconds</span></dd></dd>
|
||||
<dd><input class="spl_main_fade_out playlist_main_fade_input" value="0" /><span class='spl_cue_hint'> seconds</span></dd>
|
||||
</dd>
|
||||
<dd class="edit-error"></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<ul class="spl_sortable">
|
||||
<?php $this->contents = $contents;
|
||||
echo $this->render('playlist/update.phtml') ?>
|
||||
echo $this->render('playlist/update.phtml') ?>
|
||||
</ul>
|
||||
<div class="btn-toolbar clearfix">
|
||||
<div class="btn-group pull-right">
|
||||
|
@ -91,9 +93,10 @@ if (isset($this->obj)) {
|
|||
<div class='btn-group pull-right'>
|
||||
<button class="btn" title='Save smart block's title, description, and criteria' type="button" id="save_button"><?php echo _("Save") ?></button>
|
||||
</div>
|
||||
<div id='sp-success-saved' class='success' style='display:none'><span</div>
|
||||
</div>
|
||||
<div id='sp-success-saved' class='success' style='display:none'>
|
||||
<span< /div>
|
||||
</div>
|
||||
|
||||
<?php else : ?>
|
||||
<div><?php echo _("No smart block currently open") ?></div>
|
||||
<?php endif; ?>
|
||||
<?php else : ?>
|
||||
<div><?php echo _("No smart block currently open") ?></div>
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -5,164 +5,163 @@ $isPlaylist = ($this->obj instanceof Application_Model_Playlist);
|
|||
if ($isSmartBlock && $this->showPoolCount) { ?>
|
||||
<div class='sp_text_font sp_text_font_bold'>
|
||||
<span id='sp_pool_count' class='sp_text_font sp_text_font_bold'>
|
||||
<?php
|
||||
<?php
|
||||
echo $this->poolCount;
|
||||
echo ngettext(" track matches your search criteria.", " tracks match your search criteria.", $this->poolCount);
|
||||
?>
|
||||
?>
|
||||
</span>
|
||||
<?php if ($this->poolCount > 0) { ?>
|
||||
<span class='checked-icon sp-checked-icon' id='sp_pool_count_icon'></span>
|
||||
<?php }
|
||||
else { ?>
|
||||
<?php } else { ?>
|
||||
<span class='sp-warning-icon' id='sp_pool_count_icon'></span>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
if (count($items) && ($isSmartBlock || $isPlaylist)) : ?>
|
||||
<?php $i = 0; ?>
|
||||
<?php if ($isSmartBlock && !($this->obj->isStatic())) {
|
||||
echo _("</br>This is only a preview of possible content generated by the smart block based upon the above criteria.");}
|
||||
?>
|
||||
<?php foreach($items as $item) :
|
||||
$staticBlock = null;
|
||||
$nextFileUrl = null;
|
||||
if ($item['type'] == 2) {
|
||||
$bl= new Application_Model_Block($item['item_id']);
|
||||
$staticBlock = $bl->isStatic();
|
||||
$fileUrl = null;
|
||||
}
|
||||
else if ($item['type'] == 1) {
|
||||
$fileUrl = null;
|
||||
}
|
||||
else if ($item['type'] == 0) {
|
||||
$audiofile = Application_Model_StoredFile::RecallById($item['item_id']);
|
||||
$fileUrl = $audiofile->getFileUrl();
|
||||
}
|
||||
<?php $i = 0; ?>
|
||||
<?php if ($isSmartBlock && !($this->obj->isStatic())) {
|
||||
echo _("</br>This is only a preview of possible content generated by the smart block based upon the above criteria.");
|
||||
}
|
||||
?>
|
||||
<?php foreach ($items as $item) :
|
||||
$staticBlock = null;
|
||||
$nextFileUrl = null;
|
||||
if ($item['type'] == 2) {
|
||||
$bl = new Application_Model_Block($item['item_id']);
|
||||
$staticBlock = $bl->isStatic();
|
||||
$fileUrl = null;
|
||||
} else if ($item['type'] == 1) {
|
||||
$fileUrl = null;
|
||||
} else if ($item['type'] == 0) {
|
||||
$audiofile = Application_Model_StoredFile::RecallById($item['item_id']);
|
||||
$fileUrl = $audiofile->getFileUrl();
|
||||
}
|
||||
|
||||
if (($i < count($items) -1) && ($items[$i+1]['type'] == 0)) {
|
||||
$nextAudiofile = Application_Model_StoredFile::RecallById($items[$i+1]['item_id']);
|
||||
$nextFileUrl = $nextAudiofile->getFileUrl();
|
||||
}
|
||||
?>
|
||||
<li class="ui-state-default" id="spl_<?php echo $item["id"] ?>" unqid="<?php echo $item["id"]; ?>">
|
||||
<div class="list-item-container">
|
||||
if (($i < count($items) - 1) && ($items[$i + 1]['type'] == 0)) {
|
||||
$nextAudiofile = Application_Model_StoredFile::RecallById($items[$i + 1]['item_id']);
|
||||
$nextFileUrl = $nextAudiofile->getFileUrl();
|
||||
}
|
||||
?>
|
||||
<li class="ui-state-default" id="spl_<?php echo $item["id"] ?>" unqid="<?php echo $item["id"]; ?>">
|
||||
<div class="list-item-container">
|
||||
|
||||
<?php if ($item['type'] == 0 && $item['exists']):?>
|
||||
<div class="big_play" audioFile="<?php echo $item["id"]; ?>" data-mime-type="<?php echo $item["mime"]; ?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
<?php if ($item['type'] == 0 && $item['exists']) : ?>
|
||||
<div class="big_play" audioFile="<?php echo $item["id"]; ?>" data-mime-type="<?php echo $item["mime"]; ?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
</div>
|
||||
<?php elseif ($item['type'] == 1 && $item['exists']) : ?>
|
||||
<div class="big_play" data-mime-type="<?php echo $item["mime"]; ?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
</div>
|
||||
<?php elseif ($item['type'] == 2 && $item['exists']) : ?>
|
||||
<div class="big_play" blockId="<?php echo $item["item_id"]; ?>" blocktype="<?php echo $staticBlock ? "static" : "dynamic" ?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
</div>
|
||||
<?php else : ?>
|
||||
<div class="big_play ui-state-hover">
|
||||
<span class="ui-icon ui-icon-alert"></span>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="text-row top">
|
||||
<span class="spl_playlength"><?php echo $item["length"] ?></span>
|
||||
<?php if ($item['type'] == 0) { ?>
|
||||
<!-- <span class="spl_cue ui-state-default"></span> -->
|
||||
<?php } else if ($item['type'] == 2) {
|
||||
if ($staticBlock) { ?>
|
||||
<span class="spl_block_expand close" blockId="<?php echo $item["item_id"]; ?>" id="expand_block_<?php echo $item["id"] ?>">
|
||||
<span class="ui-icon ui-icon-triangle-2-n-s"></span>
|
||||
<?php echo _("Expand Static Block") ?>
|
||||
</span>
|
||||
<?php } else { ?>
|
||||
<span class="spl_block_expand close" blockId="<?php echo $item["item_id"]; ?>" id="expand_block_<?php echo $item["id"] ?>">
|
||||
<span class="ui-icon ui-icon-triangle-2-n-s"></span>
|
||||
<?php echo _("Expand Dynamic Block") ?>
|
||||
</span>
|
||||
<?php }
|
||||
} ?>
|
||||
<span class="spl_title"><?php echo $item['track_title'] ?></span>
|
||||
</div>
|
||||
<div class="text-row">
|
||||
<span class="spl_artist"><?php echo $item['creator'] ?></span>
|
||||
<span class="spl_offset"><?php echo $item["offset"] ?></span>
|
||||
</div>
|
||||
<?php //create the crossfade icon.
|
||||
if (($i < count($items) - 1) && !($items[$i]['type'] == 2 && $items[$i + 1]['type'])) :
|
||||
?>
|
||||
<!-- <div id="fade_<?php echo $i ?>" class="spl_fade_control ui-state-default"></div> -->
|
||||
<?php endif; ?>
|
||||
<span id="remove_<?php echo $item["id"] ?>" class="ui-icon ui-icon-closethick"></span>
|
||||
</div>
|
||||
<?php elseif ($item['type'] == 1 && $item['exists']): ?>
|
||||
<div class="big_play" data-mime-type="<?php echo $item["mime"]; ?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
</div>
|
||||
<?php elseif ($item['type'] == 2 && $item['exists']): ?>
|
||||
<div class="big_play" blockId="<?php echo $item["item_id"]; ?>" blocktype="<?php echo $staticBlock?"static":"dynamic"?>">
|
||||
<span class="ui-icon ui-icon-play"></span>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class="big_play ui-state-hover">
|
||||
<span class="ui-icon ui-icon-alert"></span>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="text-row top">
|
||||
<span class="spl_playlength"><?php echo $item["length"] ?></span>
|
||||
<?php if ($item['type'] == 0) {?>
|
||||
<!-- <span class="spl_cue ui-state-default"></span> -->
|
||||
<?php } else if ($item['type'] == 2) {
|
||||
if ($staticBlock) {?>
|
||||
<span class="spl_block_expand close" blockId="<?php echo $item["item_id"]; ?>" id="expand_block_<?php echo $item["id"]?>">
|
||||
<span class="ui-icon ui-icon-triangle-2-n-s"></span>
|
||||
<?php echo _("Expand Static Block")?>
|
||||
</span>
|
||||
<?php } else { ?>
|
||||
<span class="spl_block_expand close" blockId="<?php echo $item["item_id"]; ?>" id="expand_block_<?php echo $item["id"]?>">
|
||||
<span class="ui-icon ui-icon-triangle-2-n-s"></span>
|
||||
<?php echo _("Expand Dynamic Block")?>
|
||||
</span>
|
||||
<?php }
|
||||
} ?>
|
||||
<span class="spl_title"><?php echo $item['track_title'] ?></span>
|
||||
</div>
|
||||
<div class="text-row">
|
||||
<span class="spl_artist"><?php echo $item['creator'] ?></span>
|
||||
<span class="spl_offset"><?php echo $item["offset"]?></span>
|
||||
</div>
|
||||
<?php //create the crossfade icon.
|
||||
if (($i < count($items) -1) && !($items[$i]['type'] == 2 && $items[$i+1]['type'])):
|
||||
<?php if ($item['type'] == 0) { ?>
|
||||
<div id="cues_<?php echo $i ?>" class="cue-edit clearfix" style="display: none">
|
||||
<?php echo $this->partial('playlist/set-cue.phtml', array(
|
||||
'id' => $item["id"],
|
||||
'cueIn' => $item['cuein'],
|
||||
'cueOut' => $item['cueout'],
|
||||
'cueInSec' => $item['cueInSec'],
|
||||
'cueOutSec' => $item['cueOutSec'],
|
||||
'uri' => $fileUrl,
|
||||
'origLength' => $item['orig_length']
|
||||
)); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<?php //create a fade editor box
|
||||
//(fadeout of current position + fade in of next position)
|
||||
if (($i < count($items) - 1) && !($items[$i]['type'] == 2 && $items[$i + 1]['type'])) :
|
||||
?>
|
||||
<!-- <div id="fade_<?php echo $i ?>" class="spl_fade_control ui-state-default"></div> -->
|
||||
<div id="crossfade_<?php echo $i ?>-<?php echo $i + 1 ?>" class="crossfade clearfix" style="display: none">
|
||||
<?php
|
||||
|
||||
$vars = array(
|
||||
'item1' => $items[$i]['id'],
|
||||
'fadeOut' => $items[$i]['fadeout'],
|
||||
'fadeIn' => $items[$i + 1]['fadein'],
|
||||
'item1Type' => $items[$i]['type'],
|
||||
'cueIn1' => $items[$i]['cueInSec'],
|
||||
'cueOut1' => $items[$i]['cueOutSec'],
|
||||
'item1Url' => $fileUrl
|
||||
);
|
||||
|
||||
$item2 = array(
|
||||
'item2Url' => $nextFileUrl,
|
||||
'item2' => $items[$i + 1]['id'],
|
||||
'item2Type' => $items[$i + 1]['type'],
|
||||
'offset' => $items[$i]['trackSec'] - $items[$i + 1]['trackoffset'],
|
||||
'cueIn2' => $items[$i + 1]['cueInSec'],
|
||||
'cueOut2' => $items[$i + 1]['cueOutSec']
|
||||
);
|
||||
|
||||
if (isset($nextFileUrl)) {
|
||||
$vars = $vars + $item2;
|
||||
}
|
||||
|
||||
echo $this->partial('playlist/set-fade.phtml', $vars);
|
||||
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<span id="remove_<?php echo $item["id"] ?>" class="ui-icon ui-icon-closethick"></span>
|
||||
</div>
|
||||
<?php if ($item['type'] == 0) {?>
|
||||
<div id="cues_<?php echo $i ?>" class="cue-edit clearfix" style="display: none">
|
||||
<?php echo $this->partial('playlist/set-cue.phtml', array(
|
||||
'id' => $item["id"],
|
||||
'cueIn' => $item['cuein'],
|
||||
'cueOut' => $item['cueout'],
|
||||
'cueInSec' => $item['cueInSec'],
|
||||
'cueOutSec' => $item['cueOutSec'],
|
||||
'uri' => $fileUrl,
|
||||
'origLength' => $item['orig_length'])); ?>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
|
||||
<?php //create a fade editor box
|
||||
//(fadeout of current position + fade in of next position)
|
||||
if(($i < count($items) -1) && !($items[$i]['type'] == 2 && $items[$i+1]['type'])):
|
||||
?>
|
||||
<div id="crossfade_<?php echo $i ?>-<?php echo $i+1 ?>" class="crossfade clearfix" style="display: none">
|
||||
<?php
|
||||
|
||||
$vars = array(
|
||||
'item1' => $items[$i]['id'],
|
||||
'fadeOut' => $items[$i]['fadeout'],
|
||||
'fadeIn' => $items[$i+1]['fadein'],
|
||||
'item1Type' => $items[$i]['type'],
|
||||
'cueIn1' => $items[$i]['cueInSec'],
|
||||
'cueOut1' => $items[$i]['cueOutSec'],
|
||||
'item1Url' => $fileUrl
|
||||
);
|
||||
|
||||
$item2 = array(
|
||||
'item2Url' => $nextFileUrl,
|
||||
'item2' => $items[$i+1]['id'],
|
||||
'item2Type' => $items[$i+1]['type'],
|
||||
'offset' => $items[$i]['trackSec'] - $items[$i+1]['trackoffset'],
|
||||
'cueIn2' => $items[$i+1]['cueInSec'],
|
||||
'cueOut2' => $items[$i+1]['cueOutSec']
|
||||
);
|
||||
|
||||
if (isset($nextFileUrl)) {
|
||||
$vars = $vars + $item2;
|
||||
}
|
||||
|
||||
echo $this->partial('playlist/set-fade.phtml', $vars);
|
||||
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($item['type'] == 2) {?>
|
||||
<ul style='display:none' id="block_<?php echo $item["id"]?>_info" class="smart-block-info expand-block-separate"></ul>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<?php $i = $i+1; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($item['type'] == 2) { ?>
|
||||
<ul style='display:none' id="block_<?php echo $item["id"] ?>_info" class="smart-block-info expand-block-separate"></ul>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<?php $i = $i + 1; ?>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php else : ?>
|
||||
<div class="spl_empty">
|
||||
<?php
|
||||
if ($this->obj instanceof Application_Model_Block) {
|
||||
if ($this->obj->isStatic()) {
|
||||
echo _("Choose some search criteria above and click Generate to create this playlist.");
|
||||
<div class="spl_empty">
|
||||
<?php
|
||||
if ($this->obj instanceof Application_Model_Block) {
|
||||
if ($this->obj->isStatic()) {
|
||||
echo _("Choose some search criteria above and click Generate to create this playlist.");
|
||||
} else {
|
||||
echo _("A track list will be generated when you schedule this smart block into a show.");
|
||||
}
|
||||
} else {
|
||||
echo _("A track list will be generated when you schedule this smart block into a show.");
|
||||
echo _("Drag tracks here from your library to add them to the playlist");
|
||||
}
|
||||
} else {
|
||||
echo _("Drag tracks here from your library to add them to the playlist");
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -1 +1 @@
|
|||
<?php echo $this->form; ?>
|
||||
<?php echo $this->form;
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
<div id="history_content" class=" alpha-block padded">
|
||||
<h2><?php echo(_("Playout History"));?></h2>
|
||||
<h2><?php echo (_("Playout History")); ?></h2>
|
||||
<?php echo $this->date_form; ?>
|
||||
|
||||
<div id="his-tabs">
|
||||
<ul>
|
||||
<?php if ($this->userType != UTYPE_HOST): ?>
|
||||
<li><a href="#his-tabs-1"><?php echo _("Log Sheet"); ?></a></li>
|
||||
<li><a href="#his-tabs-2"><?php echo _("File Summary"); ?></a></li>
|
||||
<?php if ($this->userType != UTYPE_HOST) : ?>
|
||||
<li><a href="#his-tabs-1"><?php echo _("Log Sheet"); ?></a></li>
|
||||
<li><a href="#his-tabs-2"><?php echo _("File Summary"); ?></a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="#his-tabs-3"><?php echo _("Show Summary"); ?></a></li>
|
||||
</ul>
|
||||
<?php if ($this->userType != UTYPE_HOST): ?>
|
||||
<div id="his-tabs-1">
|
||||
<table id="history_table_list" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||
</div>
|
||||
<div id="his-tabs-2">
|
||||
<table id="history_table_aggregate" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||
</div>
|
||||
<?php if ($this->userType != UTYPE_HOST) : ?>
|
||||
<div id="his-tabs-1">
|
||||
<table id="history_table_list" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||
</div>
|
||||
<div id="his-tabs-2">
|
||||
<table id="history_table_aggregate" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div id="his-tabs-3">
|
||||
<div id="history_show_summary"></div>
|
||||
|
|
|
@ -1,65 +1,69 @@
|
|||
<div id="history_template" class="prefpanel alpha-block padded-strong">
|
||||
<div>
|
||||
<h2><?php echo(_("Playout History Templates"));?></h2>
|
||||
<h2><?php echo (_("Playout History Templates")); ?></h2>
|
||||
|
||||
<div><h4><?php echo _("Log Sheet Templates") ?></h4></div>
|
||||
<div>
|
||||
<h4><?php echo _("Log Sheet Templates") ?></h4>
|
||||
</div>
|
||||
<button id="new_item_template" class="btn btn-new"><?php echo _("New Log Sheet Template") ?></button>
|
||||
<ul id="template_list">
|
||||
<?php if (count($this->template_list) == 0): ?>
|
||||
<?php if (count($this->template_list) == 0) : ?>
|
||||
<li><?php echo _("No Log Sheet Templates") ?></li>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($this->template_list as $id=>$name): ?>
|
||||
<?php if (in_array($id, $this->configured)): ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>" class="template_configured">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<i class="icon icon-ok"></i>
|
||||
<?php else: ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<a class="template_remove" href="<?php echo $this->baseUrl("Playouthistorytemplate/delete-template/id/{$id}"); ?>">
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
<a class="template_default" href="<?php echo $this->baseUrl("Playouthistorytemplate/set-template-default/format/json/id/{$id}"); ?>">
|
||||
<?php echo _("Set Default") ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($this->template_list as $id => $name) : ?>
|
||||
<?php if (in_array($id, $this->configured)) : ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>" class="template_configured">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<i class="icon icon-ok"></i>
|
||||
<?php else : ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<a class="template_remove" href="<?php echo $this->baseUrl("Playouthistorytemplate/delete-template/id/{$id}"); ?>">
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
<a class="template_default" href="<?php echo $this->baseUrl("Playouthistorytemplate/set-template-default/format/json/id/{$id}"); ?>">
|
||||
<?php echo _("Set Default") ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<br><br>
|
||||
<div>
|
||||
<div><h4><?php echo _("File Summary Templates") ?></h4></div>
|
||||
<div>
|
||||
<h4><?php echo _("File Summary Templates") ?></h4>
|
||||
</div>
|
||||
<button id="new_file_template" class="btn btn-new"><?php echo _("New File Summary Template") ?></button>
|
||||
<ul id="template_file">
|
||||
<?php if (count($this->template_file) == 0): ?>
|
||||
<?php if (count($this->template_file) == 0) : ?>
|
||||
<li><?php echo _("No File Summary Templates") ?></li>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($this->template_file as $id=>$name): ?>
|
||||
<?php if (in_array($id, $this->configured)): ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>" class="template_configured">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<i class="icon icon-ok"></i>
|
||||
<?php else: ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<a class="template_remove" href="<?php echo $this->baseUrl("Playouthistorytemplate/delete-template/id/{$id}"); ?>">
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
<a class="template_default" href="<?php echo $this->baseUrl("Playouthistorytemplate/set-template-default/format/json/id/{$id}"); ?>">
|
||||
<?php echo _("Set Default") ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($this->template_file as $id => $name) : ?>
|
||||
<?php if (in_array($id, $this->configured)) : ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>" class="template_configured">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<i class="icon icon-ok"></i>
|
||||
<?php else : ?>
|
||||
<li data-template="<?php echo $id; ?>" data-name="<?php echo $name; ?>">
|
||||
<a class="template_name" href="<?php echo $this->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); ?>">
|
||||
<?php echo $name; ?>
|
||||
</a>
|
||||
<a class="template_remove" href="<?php echo $this->baseUrl("Playouthistorytemplate/delete-template/id/{$id}"); ?>">
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
<a class="template_default" href="<?php echo $this->baseUrl("Playouthistorytemplate/set-template-default/format/json/id/{$id}"); ?>">
|
||||
<?php echo _("Set Default") ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,44 +1,38 @@
|
|||
<?php if ($this->template_type == Application_Service_HistoryService::TEMPLATE_TYPE_FILE): ?>
|
||||
<h4><?php echo _("Creating File Summary Template") ?></h4>
|
||||
<?php else: ?>
|
||||
<h4><?php echo _("Creating Log Sheet Template") ?></h4>
|
||||
<?php if ($this->template_type == Application_Service_HistoryService::TEMPLATE_TYPE_FILE) : ?>
|
||||
<h4><?php echo _("Creating File Summary Template") ?></h4>
|
||||
<?php else : ?>
|
||||
<h4><?php echo _("Creating Log Sheet Template") ?></h4>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="template_name_wrap">
|
||||
<label>
|
||||
<?php echo _("Name") ?>
|
||||
<input id="template_name" type="text" value="<?php echo $this->template_name; ?>">
|
||||
</label>
|
||||
<label>
|
||||
<?php echo _("Name") ?>
|
||||
<input id="template_name" type="text" value="<?php echo $this->template_name; ?>">
|
||||
</label>
|
||||
|
||||
<?php $i = 0;
|
||||
$usedFileMD = array();
|
||||
$usedFileMD = array();
|
||||
?>
|
||||
|
||||
<ul class="template_item_list">
|
||||
<?php foreach ($this->template_fields as $field): ?>
|
||||
<?php foreach ($this->template_fields as $field) : ?>
|
||||
|
||||
<?php if($field["isFileMd"]) {
|
||||
$usedFileMD[] = $field["name"];
|
||||
} ?>
|
||||
<?php if ($field["isFileMd"]) {
|
||||
$usedFileMD[] = $field["name"];
|
||||
} ?>
|
||||
|
||||
<li id="<?php echo "field_".$i?>"
|
||||
data-id="<?php echo isset($field["id"]) ? $field["id"] : ""; ?>"
|
||||
data-name="<?php echo $field["name"]?>"
|
||||
data-label="<?php echo $field["label"]?>"
|
||||
data-type="<?php echo $field["type"]?>"
|
||||
data-filemd="<?php echo var_export($field["isFileMd"], true)?>"
|
||||
class="<?php echo ($field["isFileMd"]) ? 'field_filemd' : 'field_other' ?>">
|
||||
<span><?php echo $field["label"]?></span>
|
||||
<span><?php echo $field["type"]?></span>
|
||||
<?php if(!in_array($field["name"], $this->required_fields)): ?>
|
||||
<span class="template_item_remove">
|
||||
<i class="icon icon-trash"></i>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php $i++; ?>
|
||||
<li id="<?php echo "field_" . $i ?>" data-id="<?php echo isset($field["id"]) ? $field["id"] : ""; ?>" data-name="<?php echo $field["name"] ?>" data-label="<?php echo $field["label"] ?>" data-type="<?php echo $field["type"] ?>" data-filemd="<?php echo var_export($field["isFileMd"], true) ?>" class="<?php echo ($field["isFileMd"]) ? 'field_filemd' : 'field_other' ?>">
|
||||
<span><?php echo $field["label"] ?></span>
|
||||
<span><?php echo $field["type"] ?></span>
|
||||
<?php if (!in_array($field["name"], $this->required_fields)) : ?>
|
||||
<span class="template_item_remove">
|
||||
<i class="icon icon-trash"></i>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php $i++; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="add_more">
|
||||
|
@ -46,41 +40,38 @@
|
|||
<p><?php echo _("Add more elements") ?>:</p>
|
||||
|
||||
<ul class="template_file_md">
|
||||
<?php foreach ($this->fileMD as $md): ?>
|
||||
<?php foreach ($this->fileMD as $md) : ?>
|
||||
|
||||
<?php if(in_array($md["name"], $usedFileMD)) {
|
||||
continue;
|
||||
} ?>
|
||||
<?php if (in_array($md["name"], $usedFileMD)) {
|
||||
continue;
|
||||
} ?>
|
||||
|
||||
<li id="<?php echo "md_".$md["name"]?>"
|
||||
data-name="<?php echo $md["name"]?>"
|
||||
data-type="<?php echo $md["type"]?>"
|
||||
data-label="<?php echo $md["label"]?>">
|
||||
<?php echo $md["label"] ?>
|
||||
<a class="field_add" href="#"><i class="icon icon-plus"></i></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<li id="<?php echo "md_" . $md["name"] ?>" data-name="<?php echo $md["name"] ?>" data-type="<?php echo $md["type"] ?>" data-label="<?php echo $md["label"] ?>">
|
||||
<?php echo $md["label"] ?>
|
||||
<a class="field_add" href="#"><i class="icon icon-plus"></i></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<?php if ($this->template_type !== Application_Service_HistoryService::TEMPLATE_TYPE_FILE): ?>
|
||||
<div class="template_item_add">
|
||||
<input type="text" placeholder="<?php echo _("Add New Field") ?>">
|
||||
<select>
|
||||
<?php foreach ($this->fields as $field): ?>
|
||||
<option value="<?php echo $field; ?>"><?php echo _($field); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<button class="btn">
|
||||
<i class="icon-white icon-plus"></i>
|
||||
<?php echo _("Add") ?>
|
||||
</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($this->template_type !== Application_Service_HistoryService::TEMPLATE_TYPE_FILE) : ?>
|
||||
<div class="template_item_add">
|
||||
<input type="text" placeholder="<?php echo _("Add New Field") ?>">
|
||||
<select>
|
||||
<?php foreach ($this->fields as $field) : ?>
|
||||
<option value="<?php echo $field; ?>"><?php echo _($field); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<button class="btn">
|
||||
<i class="icon-white icon-plus"></i>
|
||||
<?php echo _("Add") ?>
|
||||
</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<?php if (!in_array($this->template_id, $this->configured)): ?>
|
||||
<button id="template_set_default" data-template="<?php echo $this->template_id; ?>" class="btn"><?php echo _("Set Default Template") ?></button>
|
||||
<?php endif; ?>
|
||||
<button id="template_item_save" data-template="<?php echo $this->template_id; ?>" class="btn"><?php echo _("Save") ?></button>
|
||||
<?php if (!in_array($this->template_id, $this->configured)) : ?>
|
||||
<button id="template_set_default" data-template="<?php echo $this->template_id; ?>" class="btn"><?php echo _("Set Default Template") ?></button>
|
||||
<?php endif; ?>
|
||||
<button id="template_item_save" data-template="<?php echo $this->template_id; ?>" class="btn"><?php echo _("Save") ?></button>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: asantoni
|
||||
|
@ -8,6 +9,6 @@
|
|||
?>
|
||||
|
||||
<div class="content-pane" style="width: 100%">
|
||||
<?php require(__DIR__."/featureupgrade.phtml"); ?>
|
||||
<?php require(__DIR__ . "/featureupgrade.phtml"); ?>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: asantoni
|
||||
|
@ -7,7 +8,7 @@
|
|||
*/
|
||||
?>
|
||||
|
||||
<?php require(__DIR__."/featureupgrade.phtml"); ?>
|
||||
<?php require(__DIR__ . "/featureupgrade.phtml"); ?>
|
||||
|
||||
<div class="angular_wrapper" ng-controller="Publish">
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
</div>
|
||||
<div class="inner_editor_wrapper">
|
||||
<form class="podcast-metadata">
|
||||
<input ng-value="podcast.id" class="obj_id" type="hidden"/>
|
||||
<input ng-value="podcast.id" class="obj_id" type="hidden" />
|
||||
<div class="podcast-metadata-row">
|
||||
<label for="podcast_name"><?php echo _("Podcast Name: ") ?></label>
|
||||
<input name="podcast_name" type="text" ng-model="podcast.title" value={{podcast.title}} >
|
||||
<input name="podcast_name" type="text" ng-model="podcast.title" value={{podcast.title}}>
|
||||
</div>
|
||||
<div class="podcast-metadata-row">
|
||||
<label for="podcast_url"><?php echo _("Podcast URL: ") ?></label>
|
||||
|
@ -18,10 +18,10 @@
|
|||
<div class="podcast-metadata-row">
|
||||
<label for="podcast_auto_ingest"><?php echo _("Download latest episodes:") ?></label>
|
||||
<div>
|
||||
<input name="podcast_auto_ingest" id="podcast_auto_ingest" ng-model="podcast.auto_ingest" type="checkbox"/>
|
||||
<input name="podcast_auto_ingest" id="podcast_auto_ingest" ng-model="podcast.auto_ingest" type="checkbox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="podcast-metadata-row" >
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Scheduling:") ?></label>
|
||||
<div>
|
||||
<button ng-click="createSmartblock()" class="btn" type="button" name="smartblock">
|
||||
|
@ -33,7 +33,7 @@
|
|||
</form>
|
||||
</div>
|
||||
|
||||
<table class="datatable podcast_episodes" cellpadding="0" cellspacing="0"></table>
|
||||
<table class="datatable podcast_episodes" cellpadding="0" cellspacing="0"></table>
|
||||
|
||||
<div class="btn-toolbar clearfix">
|
||||
<div class="btn-group pull-right">
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</label>
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
<input id="podcast_url_field" type="url" name="url" size="40" style="margin-left: 10px; margin-bottom: 10px;" placeholder="http://example.com/podcast.xml"/>
|
||||
<input id="podcast_url_field" type="url" name="url" size="40" style="margin-left: 10px; margin-bottom: 10px;" placeholder="http://example.com/podcast.xml" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -15,18 +15,18 @@
|
|||
</div>
|
||||
<form class="podcast-metadata">
|
||||
<?php echo $this->form->getElement('csrf') ?>
|
||||
<input ng-value="podcast.id" class="obj_id" type="hidden"/>
|
||||
<input ng-value="podcast.id" class="obj_id" type="hidden" />
|
||||
|
||||
<h3 class="collapsible-header"><span class="arrow-icon"></span><?php echo _("General Fields") ?></h3>
|
||||
<div class="collapsible-content">
|
||||
<fieldset class="padded">
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Name") ?></label>
|
||||
<input name="podcast_name" ng-model="podcast.title" type="text"/>
|
||||
<input name="podcast_name" ng-model="podcast.title" type="text" />
|
||||
</div>
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Creator") ?></label>
|
||||
<input name="podcast_creator" ng-model="podcast.creator" type="text"/>
|
||||
<input name="podcast_creator" ng-model="podcast.creator" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="podcast-metadata-row">
|
||||
|
@ -37,20 +37,20 @@
|
|||
<label><?php echo _("Language") ?></label>
|
||||
<select name="podcast_language" ng-model="podcast.language">
|
||||
<?php
|
||||
foreach(Application_Common_LocaleHelper::getISO6391LanguageCodes() as $code=>$lang) {
|
||||
echo "<option value='$code'>$lang</option>";
|
||||
}
|
||||
foreach (Application_Common_LocaleHelper::getISO6391LanguageCodes() as $code => $lang) {
|
||||
echo "<option value='$code'>$lang</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Copyright") ?></label>
|
||||
<input name="podcast_copyright" ng-model="podcast.copyright" type="text"/>
|
||||
<input name="podcast_copyright" ng-model="podcast.copyright" type="text" />
|
||||
</div>
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Link") ?></label>
|
||||
<input name="podcast_link" ng-model="podcast.link" type="url"/>
|
||||
<input name="podcast_link" ng-model="podcast.link" type="url" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
@ -60,12 +60,12 @@
|
|||
<fieldset class="padded">
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Author") ?></label>
|
||||
<input name="podcast_itunes_author" ng-model="podcast.itunes_author" type="text"/>
|
||||
<input name="podcast_itunes_author" ng-model="podcast.itunes_author" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Keywords") ?></label>
|
||||
<input name="podcast_itunes_keywords" ng-model="podcast.itunes_keywords" type="text"/>
|
||||
<input name="podcast_itunes_keywords" ng-model="podcast.itunes_keywords" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="podcast-metadata-row">
|
||||
|
@ -80,12 +80,12 @@
|
|||
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Category") ?></label>
|
||||
<input name="podcast_itunes_category" ng-model="podcast.itunes_category" type="text"/>
|
||||
<input name="podcast_itunes_category" ng-model="podcast.itunes_category" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="podcast-metadata-row">
|
||||
<label><?php echo _("Explicit") ?></label>
|
||||
<input name="podcast_itunes_explicit" ng-model="podcast.itunes_explicit" type="checkbox"/>
|
||||
<input name="podcast_itunes_explicit" ng-model="podcast.itunes_explicit" type="checkbox" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
@ -114,10 +114,14 @@
|
|||
</div>
|
||||
|
||||
<p id="station_podcast_help_text">
|
||||
<?php echo(sprintf(_("For detailed information on what these metadata fields mean, please see the %sRSS specification%s
|
||||
<?php echo (sprintf(
|
||||
_("For detailed information on what these metadata fields mean, please see the %sRSS specification%s
|
||||
or %sApple's podcasting documentation%s."),
|
||||
'<a href="http://cyber.law.harvard.edu/rss/rss.html#requiredChannelElements">', '</a>',
|
||||
'<a target="_blank" href="http://www.apple.com/ca/itunes/podcasts/specs.html">', "</a>")); ?>
|
||||
'<a href="http://cyber.law.harvard.edu/rss/rss.html#requiredChannelElements">',
|
||||
'</a>',
|
||||
'<a target="_blank" href="http://www.apple.com/ca/itunes/podcasts/specs.html">',
|
||||
"</a>"
|
||||
)); ?>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
|
@ -135,7 +139,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$(document).ready(function() {
|
||||
<?php echo "var podcast = " . $this->podcast . ";" ?>
|
||||
AIRTIME.podcast.podcastApp.value('podcast', podcast);
|
||||
AIRTIME.podcast.podcastApp.value('tab', null);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="watched-folder-section" class="ui-widget ui-widget-content block-shadow simple-formblock clearfix padded-strong manage-folders">
|
||||
<h2><?php echo _("Manage Media Folders") ?></h2>
|
||||
<?php echo $this->form; ?>
|
||||
<h2><?php echo _("Manage Media Folders") ?></h2>
|
||||
<?php echo $this->form; ?>
|
||||
</div>
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<?php
|
||||
if (!$this->addNewShow) {
|
||||
$this->when->getElement('add_show_timezone')->setOptions(array('disabled' => true));
|
||||
?>
|
||||
<input type="hidden" name="add_show_timezone" id="add_show_timezone" value=<?php echo $this->when->getElement('add_show_timezone')->getValue()?>>
|
||||
?>
|
||||
<input type="hidden" name="add_show_timezone" id="add_show_timezone" value=<?php echo $this->when->getElement('add_show_timezone')->getValue() ?>>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->data;
|
||||
?>
|
||||
echo $this->data;
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
<table id="schedule_block_table">
|
||||
<tr>
|
||||
<td>
|
||||
<form id="add-show-form" method="post" action="" style="display:none;">
|
||||
<?php if($this->preloadShowForm){
|
||||
echo $this->render('schedule/add-show-form.phtml');
|
||||
}?>
|
||||
<?php if ($this->preloadShowForm) {
|
||||
echo $this->render('schedule/add-show-form.phtml');
|
||||
} ?>
|
||||
</form>
|
||||
</td>
|
||||
<td id="schedule_calendar_cell">
|
||||
<div id='schedule_calendar' class="ui-widget-content block-shadow padded omega-block"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -1,31 +1,35 @@
|
|||
<div id="show_content_dialog">
|
||||
<div><?php echo $this->additionalShowInfo; ?></div>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="datatable">
|
||||
<tr>
|
||||
<th><?php echo _("Start") ?></th>
|
||||
<th><?php echo _("Title") ?></th>
|
||||
<th><?php echo _("Creator") ?></th>
|
||||
<th><?php echo _("Album") ?></th>
|
||||
<th><?php echo _("Length") ?></th>
|
||||
<th><?php echo _("Genre") ?></th>
|
||||
</tr>
|
||||
<?php $i=0; ?>
|
||||
<?php foreach($this->showContent as $row): ?>
|
||||
<tr id="au_<?php echo $row["item_id"] ?>" class="<?php if($i&1){echo "even";}else{echo "odd";}?>">
|
||||
<td><?php echo $row["starts"] ?></td>
|
||||
<td><?php echo $this->escape($row["track_title"]) ?></td>
|
||||
<td><?php echo $this->escape($row["creator"]) ?></td>
|
||||
<td><?php echo $this->escape($row["album"]) ?></td>
|
||||
<td class="library_length"><?php echo $row["length"] ?></td>
|
||||
<td><?php echo $row["genre"] ?></td>
|
||||
</tr>
|
||||
<?php $i=$i+1; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<br/>
|
||||
<div id="show_time_info">
|
||||
<span id="show_time_filled" class="time"><?php echo $this->timeFilled; ?></span>
|
||||
<div id="show_progressbar"></div>
|
||||
<span id="show_length" class="time"><?php echo $this->showLength; ?></span>
|
||||
</div>
|
||||
<div><?php echo $this->additionalShowInfo; ?></div>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="datatable">
|
||||
<tr>
|
||||
<th><?php echo _("Start") ?></th>
|
||||
<th><?php echo _("Title") ?></th>
|
||||
<th><?php echo _("Creator") ?></th>
|
||||
<th><?php echo _("Album") ?></th>
|
||||
<th><?php echo _("Length") ?></th>
|
||||
<th><?php echo _("Genre") ?></th>
|
||||
</tr>
|
||||
<?php $i = 0; ?>
|
||||
<?php foreach ($this->showContent as $row) : ?>
|
||||
<tr id="au_<?php echo $row["item_id"] ?>" class="<?php if ($i & 1) {
|
||||
echo "even";
|
||||
} else {
|
||||
echo "odd";
|
||||
} ?>">
|
||||
<td><?php echo $row["starts"] ?></td>
|
||||
<td><?php echo $this->escape($row["track_title"]) ?></td>
|
||||
<td><?php echo $this->escape($row["creator"]) ?></td>
|
||||
<td><?php echo $this->escape($row["album"]) ?></td>
|
||||
<td class="library_length"><?php echo $row["length"] ?></td>
|
||||
<td><?php echo $row["genre"] ?></td>
|
||||
</tr>
|
||||
<?php $i = $i + 1; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<br />
|
||||
<div id="show_time_info">
|
||||
<span id="show_time_filled" class="time"><?php echo $this->timeFilled; ?></span>
|
||||
<div id="show_progressbar"></div>
|
||||
<span id="show_length" class="time"><?php echo $this->showLength; ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<div><!-- jQuery UI changes the styling on the outermost div; use a blank div so as not to break the .wrapper styling-->
|
||||
<div>
|
||||
<!-- jQuery UI changes the styling on the outermost div; use a blank div so as not to break the .wrapper styling-->
|
||||
<div class="wrapper">
|
||||
<div id="media_selector_wrapper">
|
||||
<?php $subnavPrefix = ""; require_once APPLICATION_PATH . "/views/scripts/partialviews/dashboard-sub-nav.php"; ?>
|
||||
<?php $subnavPrefix = "";
|
||||
require_once APPLICATION_PATH . "/views/scripts/partialviews/dashboard-sub-nav.php"; ?>
|
||||
</div>
|
||||
<?php echo $this->csrf ?>
|
||||
|
||||
<div id="library_content" class="lib-content tabs content-pane wide-panel">
|
||||
<div>
|
||||
<h2 id="library_title"><?php echo _("Dashboard")." - " ?><span id="library_filter"></span></h2>
|
||||
<h2 id="library_title"><?php echo _("Dashboard") . " - " ?><span id="library_filter"></span></h2>
|
||||
</div>
|
||||
<div class="panel-header-calendar">
|
||||
<div id="advanced-options" class="btn-group">
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<div id="library_content" class="lib-content tabs content-pane wide-panel">
|
||||
<div>
|
||||
<h2 id="library_title"><?php echo _("Dashboard")." - " ?><span id="library_filter"></span></h2>
|
||||
<h2 id="library_title"><?php echo _("Dashboard") . " - " ?><span id="library_filter"></span></h2>
|
||||
</div>
|
||||
<div class="panel-header">
|
||||
<div id="advanced-options" class="btn-group">
|
||||
|
|
|
@ -3,22 +3,22 @@
|
|||
</head>
|
||||
|
||||
<?php
|
||||
$phpDependencies = checkPhpDependencies();
|
||||
$externalServices = checkExternalServices();
|
||||
$postgres = $phpDependencies["postgres"];
|
||||
$phpDependencies = checkPhpDependencies();
|
||||
$externalServices = checkExternalServices();
|
||||
$postgres = $phpDependencies["postgres"];
|
||||
|
||||
$database = $externalServices["database"];
|
||||
$rabbitmq = $externalServices["rabbitmq"];
|
||||
$database = $externalServices["database"];
|
||||
$rabbitmq = $externalServices["rabbitmq"];
|
||||
|
||||
$pypo = $externalServices["pypo"];
|
||||
$liquidsoap = $externalServices["liquidsoap"];
|
||||
$analyzer = $externalServices["analyzer"];
|
||||
$celery = $externalServices['celery'];
|
||||
$api = $externalServices['api'];
|
||||
$pypo = $externalServices["pypo"];
|
||||
$liquidsoap = $externalServices["liquidsoap"];
|
||||
$analyzer = $externalServices["analyzer"];
|
||||
$celery = $externalServices['celery'];
|
||||
$api = $externalServices['api'];
|
||||
|
||||
$r1 = array_reduce($phpDependencies, "booleanReduce", true);
|
||||
$r2 = array_reduce($externalServices, "booleanReduce", true);
|
||||
$result = $r1 && $r2;
|
||||
$r1 = array_reduce($phpDependencies, "booleanReduce", true);
|
||||
$r2 = array_reduce($externalServices, "booleanReduce", true);
|
||||
$result = $r1 && $r2;
|
||||
?>
|
||||
|
||||
<table width="60%" cellpadding="0" cellspacing="0" border="0" class="statustable">
|
||||
|
@ -41,14 +41,15 @@
|
|||
<td class="description">
|
||||
<?php echo _("PDO and PostgreSQL libraries") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($postgres) {echo 'check';?>">
|
||||
<td class="solution <?php if ($postgres) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Try running <code>sudo apt-get install php7-pgsql</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
Try running <code>sudo apt-get install php7-pgsql</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -58,16 +59,17 @@
|
|||
<td class="description">
|
||||
<?php echo _("Database configuration for LibreTime") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($database) {echo 'check';?>">
|
||||
<td class="solution <?php if ($database) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Make sure you aren't missing any of the Postgres dependencies in the table above.
|
||||
If your dependencies check out, make sure your database configuration settings in
|
||||
<code>/etc/libretime/config.yml</code> are correct and the LibreTime database was installed correctly.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
Make sure you aren't missing any of the Postgres dependencies in the table above.
|
||||
If your dependencies check out, make sure your database configuration settings in
|
||||
<code>/etc/libretime/config.yml</code> are correct and the LibreTime database was installed correctly.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -77,18 +79,19 @@
|
|||
<td class="description">
|
||||
<?php echo _("RabbitMQ configuration for LibreTime") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($rabbitmq) {echo 'check';?>">
|
||||
<td class="solution <?php if ($rabbitmq) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Make sure RabbitMQ is installed correctly, and that your settings in /etc/libretime/config.yml
|
||||
are correct. Try using <code>sudo rabbitmqctl list_users</code> and <code>sudo rabbitmqctl list_vhosts</code>
|
||||
to see if the airtime user (or your custom RabbitMQ user) exists, then checking that
|
||||
<code>sudo rabbitmqctl list_exchanges</code> contains entries for airtime-analyzer, airtime-pypo,
|
||||
and airtime-uploads.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
Make sure RabbitMQ is installed correctly, and that your settings in /etc/libretime/config.yml
|
||||
are correct. Try using <code>sudo rabbitmqctl list_users</code> and <code>sudo rabbitmqctl list_vhosts</code>
|
||||
to see if the airtime user (or your custom RabbitMQ user) exists, then checking that
|
||||
<code>sudo rabbitmqctl list_exchanges</code> contains entries for airtime-analyzer, airtime-pypo,
|
||||
and airtime-uploads.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -98,17 +101,18 @@
|
|||
<td class="description">
|
||||
<?php echo _("LibreTime media analyzer service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($analyzer) {echo 'check';?>">
|
||||
<td class="solution <?php if ($analyzer) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-analyzer service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-analyzer</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-analyzer</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-analyzer service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br /><code>systemctl status libretime-analyzer</code><br />
|
||||
<?php echo _("If not, try ") ?><br /><code>sudo systemctl restart libretime-analyzer</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -118,17 +122,18 @@
|
|||
<td class="description">
|
||||
<?php echo _("LibreTime playout service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($pypo) {echo 'check';?>">
|
||||
<td class="solution <?php if ($pypo) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-playout service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-playout</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-playout</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-playout service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br /><code>systemctl status libretime-playout</code><br />
|
||||
<?php echo _("If not, try ") ?><br /><code>sudo systemctl restart libretime-playout</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -138,17 +143,18 @@
|
|||
<td class="description">
|
||||
<?php echo _("LibreTime liquidsoap service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($liquidsoap) {echo 'check';?>" >
|
||||
<td class="solution <?php if ($liquidsoap) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-liquidsoap service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-liquidsoap</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-liquidsoap</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-liquidsoap service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br /><code>systemctl status libretime-liquidsoap</code><br />
|
||||
<?php echo _("If not, try ") ?><br /><code>sudo systemctl restart libretime-liquidsoap</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -158,17 +164,18 @@
|
|||
<td class="description">
|
||||
<?php echo _("LibreTime Celery Task service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($celery) {echo 'check';?>" >
|
||||
<td class="solution <?php if ($celery) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-celery service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-celery</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-celery</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-celery service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br /><code>systemctl status libretime-celery</code><br />
|
||||
<?php echo _("If not, try ") ?><br /><code>sudo systemctl restart libretime-celery</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -178,17 +185,18 @@
|
|||
<td class="description">
|
||||
<?php echo _("LibreTime API service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($api) {echo 'check';?>" >
|
||||
<td class="solution <?php if ($api) {
|
||||
echo 'check'; ?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-api service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-api</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-api</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-api service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br /><code>systemctl status libretime-api</code><br />
|
||||
<?php echo _("If not, try ") ?><br /><code>sudo systemctl restart libretime-api</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
<div class="ui-widget prefpanel clearfix padded-strong tracktype-management">
|
||||
|
||||
<h2><?php echo _("Manage Track Types") ?></h2>
|
||||
|
@ -8,7 +7,7 @@
|
|||
<div class="button-holder">
|
||||
<button type="button" id="add_tracktype_button" name="search_add_group" class="ui-button ui-widget ui-button-text-icon-primary btn">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("New Track Type")?></span>
|
||||
<span class="ui-button-text"><?php echo _("New Track Type") ?></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
@ -17,9 +16,9 @@
|
|||
<tr>
|
||||
<th><?php echo _("id") ?></th>
|
||||
<th><?php echo _("Code") ?></th>
|
||||
<th><?php echo _("Label")?></th>
|
||||
<th><?php echo _("Description")?></th>
|
||||
<th><?php echo _("Visibility")?></th>
|
||||
<th><?php echo _("Label") ?></th>
|
||||
<th><?php echo _("Description") ?></th>
|
||||
<th><?php echo _("Visibility") ?></th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
||||
echo $this->entries;
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div class="button-holder">
|
||||
<button type="button" id="add_user_button" name="search_add_group" class="ui-button ui-widget ui-button-text-icon-primary btn">
|
||||
<span class="ui-icon ui-icon-plusthick"></span>
|
||||
<span class="ui-button-text"><?php echo _("New User")?></span>
|
||||
<span class="ui-button-text"><?php echo _("New User") ?></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
@ -16,9 +16,9 @@
|
|||
<tr>
|
||||
<th><?php echo _("id") ?></th>
|
||||
<th><?php echo _("Username") ?></th>
|
||||
<th><?php echo _("First Name")?></th>
|
||||
<th><?php echo _("Last Name")?></th>
|
||||
<th><?php echo _("User Type")?></th>
|
||||
<th><?php echo _("First Name") ?></th>
|
||||
<th><?php echo _("Last Name") ?></th>
|
||||
<th><?php echo _("User Type") ?></th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="prefpanel clearfix padded-strong edit-current-user">
|
||||
<?php echo $this->successMessage ?>
|
||||
<?php echo $this->form?>
|
||||
<?php echo $this->successMessage ?>
|
||||
<?php echo $this->form ?>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
||||
echo $this->entries;
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
<?php
|
||||
echo $this->entries;
|
||||
?>
|
||||
|
|
|
@ -1,43 +1,44 @@
|
|||
<?php if (isset($this->obj)) : ?>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo "1";//$this->obj->getLastModified('U'); ?>"/>
|
||||
<input class="obj_type" type="hidden" value="webstream"/>
|
||||
<input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>" />
|
||||
<input class="obj_lastMod" type="hidden" value="<?php echo "1"; //$this->obj->getLastModified('U');
|
||||
?>" />
|
||||
<input class="obj_type" type="hidden" value="webstream" />
|
||||
<div class="status" style="display:none;"></div>
|
||||
|
||||
<div class="inner_editor_title">
|
||||
<H2><?php echo(_("Editing "));?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName());?></span>"</H2>
|
||||
<H2><?php echo (_("Editing ")); ?>"<span class="title_obj_name"><?php if (isset($this->unsavedName)) echo $this->unsavedName;
|
||||
else echo $this->escape($this->obj->getName()); ?></span>"</H2>
|
||||
</div>
|
||||
|
||||
<div class="inner_editor_wrapper">
|
||||
<div class="inner_editor_wrapper">
|
||||
|
||||
|
||||
<dl class="zend_form side_playlist playlist_editor">
|
||||
<dt>
|
||||
<label><?php echo(_("Name:")); ?></label>
|
||||
</dt>
|
||||
<dd>
|
||||
<div id="name-error" class="errors" style="display:none;"></div>
|
||||
<input class="playlist_name_display" type="text" contenteditable="true" value="<?php echo $this->escape($this->obj->getName()); ?>">
|
||||
</dd>
|
||||
<dl class="zend_form side_playlist playlist_editor">
|
||||
<dt>
|
||||
<label><?php echo (_("Name:")); ?></label>
|
||||
</dt>
|
||||
<dd>
|
||||
<div id="name-error" class="errors" style="display:none;"></div>
|
||||
<input class="playlist_name_display" type="text" contenteditable="true" value="<?php echo $this->escape($this->obj->getName()); ?>">
|
||||
</dd>
|
||||
|
||||
<dt id="description-label"><label for="description"><?php echo _("Description") ?></label></dt>
|
||||
<dd id="description-element">
|
||||
<textarea cols="80" rows="24" id="description" name="description"><?php echo $this->obj->getDescription(); ?></textarea>
|
||||
</dd>
|
||||
<dt id="submit-label" style="display: none;"> </dt>
|
||||
<div id="url-error" class="errors" style="display:none;"></div>
|
||||
<dt id="streamurl-label"><label for="streamurl"><?php echo _("Stream URL:"); ?></label></dt>
|
||||
<dd id="streamurl-element">
|
||||
<input type="url" value="<?php echo $this->obj->getUrl(); ?>" size="40"/>
|
||||
</dd>
|
||||
<div id="length-error" class="errors" style="display:none;"></div>
|
||||
<dt id="streamlength-label"><label for="streamlength"><?php echo _("Default Length:"); ?></label></dt>
|
||||
<dd id="streamlength-element">
|
||||
<input type="text" value="<?php echo $this->obj->getDefaultLength() ?>"/>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<dt id="description-label"><label for="description"><?php echo _("Description") ?></label></dt>
|
||||
<dd id="description-element">
|
||||
<textarea cols="80" rows="24" id="description" name="description"><?php echo $this->obj->getDescription(); ?></textarea>
|
||||
</dd>
|
||||
<dt id="submit-label" style="display: none;"> </dt>
|
||||
<div id="url-error" class="errors" style="display:none;"></div>
|
||||
<dt id="streamurl-label"><label for="streamurl"><?php echo _("Stream URL:"); ?></label></dt>
|
||||
<dd id="streamurl-element">
|
||||
<input type="url" value="<?php echo $this->obj->getUrl(); ?>" size="40" />
|
||||
</dd>
|
||||
<div id="length-error" class="errors" style="display:none;"></div>
|
||||
<dt id="streamlength-label"><label for="streamlength"><?php echo _("Default Length:"); ?></label></dt>
|
||||
<dd id="streamlength-element">
|
||||
<input type="text" value="<?php echo $this->obj->getDefaultLength() ?>" />
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="btn-toolbar clearfix">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
$(document).ready(function() {
|
||||
$.ajaxSetup({
|
||||
cache: false
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$.ajaxSetup({
|
||||
cache: false,
|
||||
});
|
||||
});
|
||||
|
|
|
@ -3,246 +3,273 @@ var _idToPostionLookUp;
|
|||
var URL_BAR_HEIGHT = 32;
|
||||
|
||||
/**
|
||||
*When the page loads the ready function will get all the data it can from the hidden span elements
|
||||
*and call one of three functions depending on weather the window was open to play an audio file,
|
||||
*or a playlist or a show.
|
||||
*/
|
||||
$(document).ready(function(){
|
||||
*When the page loads the ready function will get all the data it can from the hidden span elements
|
||||
*and call one of three functions depending on weather the window was open to play an audio file,
|
||||
*or a playlist or a show.
|
||||
*/
|
||||
$(document).ready(function () {
|
||||
$.jPlayer.timeFormat.showHour = true;
|
||||
|
||||
$.jPlayer.timeFormat.showHour = true;
|
||||
var audioUri = $(".audioUri").text();
|
||||
var audioMime = $(".audioMime").text();
|
||||
var playlistID = $(".playlistID").text();
|
||||
var playlistIndex = $(".playlistIndex").text();
|
||||
var showID = $(".showID").text();
|
||||
var showIndex = $(".showIndex").text();
|
||||
var blockId = $(".blockId").text();
|
||||
var blockIndex = $(".blockIndex").text();
|
||||
|
||||
var audioUri = $('.audioUri').text();
|
||||
var audioMime = $('.audioMime').text();
|
||||
var playlistID = $('.playlistID').text();
|
||||
var playlistIndex = $('.playlistIndex').text();
|
||||
var showID = $('.showID').text();
|
||||
var showIndex = $('.showIndex').text();
|
||||
var blockId = $('.blockId').text();
|
||||
var blockIndex = $('.blockIndex').text();
|
||||
|
||||
_playlist_jplayer = new jPlayerPlaylist({
|
||||
jPlayer: "#jquery_jplayer_1",
|
||||
cssSelectorAncestor: "#jp_container_1"
|
||||
},[], //array of songs will be filled with below's json call
|
||||
_playlist_jplayer = new jPlayerPlaylist(
|
||||
{
|
||||
swfPath: baseUrl+"js/jplayer",
|
||||
supplied:"oga, mp3, m4v, m4a, wav",
|
||||
size: {
|
||||
width: "0px",
|
||||
height: "0px",
|
||||
cssClass: "jp-video-270p"
|
||||
},
|
||||
playlistOptions: {
|
||||
autoPlay: false,
|
||||
loopOnPrevious: false,
|
||||
shuffleOnLoop: true,
|
||||
enableRemoveControls: false,
|
||||
displayTime: 0,
|
||||
addTime: 0,
|
||||
removeTime: 0,
|
||||
shuffleTime: 0
|
||||
},
|
||||
ready: function(){
|
||||
if (playlistID != "" && playlistID !== ""){
|
||||
playAllPlaylist(playlistID, playlistIndex);
|
||||
}else if (audioUri != "") {
|
||||
playOne(audioUri, audioMime);
|
||||
}else if (showID != "") {
|
||||
playAllShow(showID, showIndex);
|
||||
}else if(blockId != "" && blockIndex != ""){
|
||||
playBlock(blockId, blockIndex);
|
||||
}
|
||||
jPlayer: "#jquery_jplayer_1",
|
||||
cssSelectorAncestor: "#jp_container_1",
|
||||
},
|
||||
[], //array of songs will be filled with below's json call
|
||||
{
|
||||
swfPath: baseUrl + "js/jplayer",
|
||||
supplied: "oga, mp3, m4v, m4a, wav",
|
||||
size: {
|
||||
width: "0px",
|
||||
height: "0px",
|
||||
cssClass: "jp-video-270p",
|
||||
},
|
||||
playlistOptions: {
|
||||
autoPlay: false,
|
||||
loopOnPrevious: false,
|
||||
shuffleOnLoop: true,
|
||||
enableRemoveControls: false,
|
||||
displayTime: 0,
|
||||
addTime: 0,
|
||||
removeTime: 0,
|
||||
shuffleTime: 0,
|
||||
},
|
||||
ready: function () {
|
||||
if (playlistID != "" && playlistID !== "") {
|
||||
playAllPlaylist(playlistID, playlistIndex);
|
||||
} else if (audioUri != "") {
|
||||
playOne(audioUri, audioMime);
|
||||
} else if (showID != "") {
|
||||
playAllShow(showID, showIndex);
|
||||
} else if (blockId != "" && blockIndex != "") {
|
||||
playBlock(blockId, blockIndex);
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
$("#jp_container_1").on("mouseenter", "ul.jp-controls li", function(ev) {
|
||||
$(this).addClass("ui-state-hover");
|
||||
});
|
||||
|
||||
$("#jp_container_1").on("mouseleave", "ul.jp-controls li", function(ev) {
|
||||
$(this).removeClass("ui-state-hover");
|
||||
});
|
||||
$("#jp_container_1").on("mouseenter", "ul.jp-controls li", function (ev) {
|
||||
$(this).addClass("ui-state-hover");
|
||||
});
|
||||
|
||||
$("#jp_container_1").on("mouseleave", "ul.jp-controls li", function (ev) {
|
||||
$(this).removeClass("ui-state-hover");
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Sets up the jPlayerPlaylist to play.
|
||||
* - Get the playlist info based on the playlistID give.
|
||||
* - Update the playlistIndex to the position in the pllist to start playing.
|
||||
* - Select the element played from and start playing. If playlist is null then start at index 0.
|
||||
**/
|
||||
* Sets up the jPlayerPlaylist to play.
|
||||
* - Get the playlist info based on the playlistID give.
|
||||
* - Update the playlistIndex to the position in the pllist to start playing.
|
||||
* - Select the element played from and start playing. If playlist is null then start at index 0.
|
||||
**/
|
||||
function playAllPlaylist(p_playlistID, p_playlistIndex) {
|
||||
var viewsPlaylistID = $('.playlistID').text();
|
||||
var viewsPlaylistID = $(".playlistID").text();
|
||||
|
||||
if ( _idToPostionLookUp !== undefined && viewsPlaylistID == p_playlistID ) {
|
||||
play(p_playlistIndex);
|
||||
}else {
|
||||
buildplaylist(baseUrl+"audiopreview/get-playlist/playlistID/"+p_playlistID, p_playlistIndex);
|
||||
}
|
||||
if (_idToPostionLookUp !== undefined && viewsPlaylistID == p_playlistID) {
|
||||
play(p_playlistIndex);
|
||||
} else {
|
||||
buildplaylist(
|
||||
baseUrl + "audiopreview/get-playlist/playlistID/" + p_playlistID,
|
||||
p_playlistIndex
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function playBlock(p_blockId, p_blockIndex)
|
||||
{
|
||||
var viewsBlockId = $('.blockId').text();
|
||||
function playBlock(p_blockId, p_blockIndex) {
|
||||
var viewsBlockId = $(".blockId").text();
|
||||
|
||||
if ( _idToPostionLookUp !== undefined && viewsBlockId == p_blockId ) {
|
||||
play(p_blockIndex);
|
||||
} else {
|
||||
buildplaylist(baseUrl+"audiopreview/get-block/blockId/"+p_blockId, p_blockIndex);
|
||||
}
|
||||
if (_idToPostionLookUp !== undefined && viewsBlockId == p_blockId) {
|
||||
play(p_blockIndex);
|
||||
} else {
|
||||
buildplaylist(
|
||||
baseUrl + "audiopreview/get-block/blockId/" + p_blockId,
|
||||
p_blockIndex
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the show to play.
|
||||
* checks with the show id given to the show id on the page/view
|
||||
* if the show id and the page or views show id are the same it means the user clicked another
|
||||
* file in the same show, so don't refresh the show content tust play the track from the preloaded show.
|
||||
* if the the ids are different they we'll need to get the show's context so create the uri
|
||||
* and call the controller.
|
||||
**/
|
||||
* Sets up the show to play.
|
||||
* checks with the show id given to the show id on the page/view
|
||||
* if the show id and the page or views show id are the same it means the user clicked another
|
||||
* file in the same show, so don't refresh the show content tust play the track from the preloaded show.
|
||||
* if the the ids are different they we'll need to get the show's context so create the uri
|
||||
* and call the controller.
|
||||
**/
|
||||
function playAllShow(p_showID, p_index) {
|
||||
|
||||
var viewsShowID = $('.showID').text();
|
||||
if ( _idToPostionLookUp !== undefined && viewsShowID == p_showID ) {
|
||||
play(p_index);
|
||||
}else {
|
||||
buildplaylist(baseUrl+"audiopreview/get-show/showID/"+p_showID, p_index);
|
||||
}
|
||||
var viewsShowID = $(".showID").text();
|
||||
if (_idToPostionLookUp !== undefined && viewsShowID == p_showID) {
|
||||
play(p_index);
|
||||
} else {
|
||||
buildplaylist(
|
||||
baseUrl + "audiopreview/get-show/showID/" + p_showID,
|
||||
p_index
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function will call the AudiopreviewController to get the contents of
|
||||
* either a show or playlist Looping throught the returned contents and
|
||||
* creating media for each track.
|
||||
*
|
||||
* Then trigger the jplayer to play the list.
|
||||
*/
|
||||
* This function will call the AudiopreviewController to get the contents of
|
||||
* either a show or playlist Looping throught the returned contents and
|
||||
* creating media for each track.
|
||||
*
|
||||
* Then trigger the jplayer to play the list.
|
||||
*/
|
||||
function buildplaylist(p_url, p_playIndex) {
|
||||
_idToPostionLookUp = Array();
|
||||
$.getJSON(p_url, function(data){ // get the JSON array produced by my PHP
|
||||
var myPlaylist = new Array();
|
||||
var media;
|
||||
var index;
|
||||
var total = 0;
|
||||
var skipped = 0;
|
||||
_idToPostionLookUp = Array();
|
||||
$.getJSON(p_url, function (data) {
|
||||
// get the JSON array produced by my PHP
|
||||
var myPlaylist = new Array();
|
||||
var media;
|
||||
var index;
|
||||
var total = 0;
|
||||
var skipped = 0;
|
||||
|
||||
for(index in data) {
|
||||
if (data[index]['type'] == 0) {
|
||||
if (data[index]['element_mp3'] != undefined){
|
||||
media = {title: data[index]['element_title'],
|
||||
artist: data[index]['element_artist'],
|
||||
mp3:data[index]['uri']
|
||||
};
|
||||
} else if (data[index]['element_oga'] != undefined) {
|
||||
media = {title: data[index]['element_title'],
|
||||
artist: data[index]['element_artist'],
|
||||
oga:data[index]['uri']
|
||||
};
|
||||
} else if (data[index]['element_m4a'] != undefined) {
|
||||
media = {title: data[index]['element_title'],
|
||||
artist: data[index]['element_artist'],
|
||||
m4a:data[index]['uri']
|
||||
};
|
||||
} else if (data[index]['element_wav'] != undefined) {
|
||||
media = {title: data[index]['element_title'],
|
||||
artist: data[index]['element_artist'],
|
||||
wav:data[index]['uri']
|
||||
};
|
||||
} else {
|
||||
// skip this track since it's not supported
|
||||
console.log("continue");
|
||||
skipped++;
|
||||
continue;
|
||||
}
|
||||
} else if (data[index]['type'] == 1) {
|
||||
var mime = data[index]['mime'];
|
||||
if (mime.search(/mp3/i) > 0 || mime.search(/mpeg/i) > 0) {
|
||||
key = "mp3";
|
||||
} else if (mime.search(/og(g|a)/i) > 0 || mime.search(/vorbis/i) > 0) {
|
||||
key = "oga";
|
||||
} else if (mime.search(/mp4/i) > 0) {
|
||||
key = "m4a";
|
||||
} else if (mime.search(/wav/i) > 0) {
|
||||
key = "wav";
|
||||
}
|
||||
|
||||
if (key) {
|
||||
media = {title: data[index]['element_title'],
|
||||
artist: data[index]['element_artist']
|
||||
};
|
||||
media[key] = data[index]['uri']
|
||||
}
|
||||
}
|
||||
if (media && isAudioSupported(data[index]['mime'])) {
|
||||
// javascript doesn't support associative array with numeric key
|
||||
// so we need to remove the gap if we skip any of tracks due to
|
||||
// browser incompatibility.
|
||||
myPlaylist[index-skipped] = media;
|
||||
}
|
||||
// we should create a map according to the new position in the
|
||||
// player itself total is the index on the player
|
||||
_idToPostionLookUp[data[index]['element_id']] = total;
|
||||
total++;
|
||||
for (index in data) {
|
||||
if (data[index]["type"] == 0) {
|
||||
if (data[index]["element_mp3"] != undefined) {
|
||||
media = {
|
||||
title: data[index]["element_title"],
|
||||
artist: data[index]["element_artist"],
|
||||
mp3: data[index]["uri"],
|
||||
};
|
||||
} else if (data[index]["element_oga"] != undefined) {
|
||||
media = {
|
||||
title: data[index]["element_title"],
|
||||
artist: data[index]["element_artist"],
|
||||
oga: data[index]["uri"],
|
||||
};
|
||||
} else if (data[index]["element_m4a"] != undefined) {
|
||||
media = {
|
||||
title: data[index]["element_title"],
|
||||
artist: data[index]["element_artist"],
|
||||
m4a: data[index]["uri"],
|
||||
};
|
||||
} else if (data[index]["element_wav"] != undefined) {
|
||||
media = {
|
||||
title: data[index]["element_title"],
|
||||
artist: data[index]["element_artist"],
|
||||
wav: data[index]["uri"],
|
||||
};
|
||||
} else {
|
||||
// skip this track since it's not supported
|
||||
console.log("continue");
|
||||
skipped++;
|
||||
continue;
|
||||
}
|
||||
} else if (data[index]["type"] == 1) {
|
||||
var mime = data[index]["mime"];
|
||||
if (mime.search(/mp3/i) > 0 || mime.search(/mpeg/i) > 0) {
|
||||
key = "mp3";
|
||||
} else if (mime.search(/og(g|a)/i) > 0 || mime.search(/vorbis/i) > 0) {
|
||||
key = "oga";
|
||||
} else if (mime.search(/mp4/i) > 0) {
|
||||
key = "m4a";
|
||||
} else if (mime.search(/wav/i) > 0) {
|
||||
key = "wav";
|
||||
}
|
||||
_playlist_jplayer.setPlaylist(myPlaylist);
|
||||
_playlist_jplayer.option("autoPlay", true);
|
||||
play(p_playIndex);
|
||||
|
||||
window.scrollbars = false;
|
||||
|
||||
var container = $("#jp_container_1");
|
||||
// Add 2px to account for borders
|
||||
window.resizeTo(container.width() + 2, container.height() + URL_BAR_HEIGHT + 2);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*Function simply plays the given index, for playlists index can be different so need to look up the
|
||||
*right index.
|
||||
*/
|
||||
function play(p_playlistIndex){
|
||||
playlistIndex = _idToPostionLookUp[p_playlistIndex];
|
||||
if(playlistIndex == undefined){
|
||||
playlistIndex = 0
|
||||
if (key) {
|
||||
media = {
|
||||
title: data[index]["element_title"],
|
||||
artist: data[index]["element_artist"],
|
||||
};
|
||||
media[key] = data[index]["uri"];
|
||||
}
|
||||
}
|
||||
if (media && isAudioSupported(data[index]["mime"])) {
|
||||
// javascript doesn't support associative array with numeric key
|
||||
// so we need to remove the gap if we skip any of tracks due to
|
||||
// browser incompatibility.
|
||||
myPlaylist[index - skipped] = media;
|
||||
}
|
||||
// we should create a map according to the new position in the
|
||||
// player itself total is the index on the player
|
||||
_idToPostionLookUp[data[index]["element_id"]] = total;
|
||||
total++;
|
||||
}
|
||||
//_playlist_jplayer.select(playlistIndex);
|
||||
_playlist_jplayer.play(playlistIndex);
|
||||
}
|
||||
_playlist_jplayer.setPlaylist(myPlaylist);
|
||||
_playlist_jplayer.option("autoPlay", true);
|
||||
play(p_playIndex);
|
||||
|
||||
/**
|
||||
* Playing one audio track occurs from the library. This function will create the media, setup
|
||||
* jplayer and play the track.
|
||||
*/
|
||||
function playOne(uri, mime) {
|
||||
var playlist = new Array();
|
||||
|
||||
var media = null;
|
||||
var key = null;
|
||||
if (mime.search(/mp3/i) > 0 || mime.search(/mpeg/i) > 0) {
|
||||
key = "mp3";
|
||||
} else if (mime.search(/og(g|a)/i) > 0 || mime.search(/vorbis/i) > 0) {
|
||||
key = "oga";
|
||||
} else if (mime.search(/mp4/i) > 0) {
|
||||
key = "m4a";
|
||||
} else if (mime.search(/wav/i) > 0) {
|
||||
key = "wav";
|
||||
}
|
||||
|
||||
if (key) {
|
||||
media = {title: $('.audioFileTitle').text() != 'null' ?$('.audioFileTitle').text():"",
|
||||
artist: $('.audioFileArtist').text() != 'null' ?$('.audioFileArtist').text():""
|
||||
};
|
||||
media[key] = uri;
|
||||
}
|
||||
|
||||
if (media) {
|
||||
_playlist_jplayer.option("autoPlay", true);
|
||||
playlist[0] = media;
|
||||
_playlist_jplayer.setPlaylist(playlist);
|
||||
_playlist_jplayer.play(0);
|
||||
}
|
||||
window.scrollbars = false;
|
||||
|
||||
var container = $("#jp_container_1");
|
||||
// Add 2px to account for borders
|
||||
window.resizeTo(container.width() + 2, container.height() + URL_BAR_HEIGHT + 2);
|
||||
window.resizeTo(
|
||||
container.width() + 2,
|
||||
container.height() + URL_BAR_HEIGHT + 2
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*Function simply plays the given index, for playlists index can be different so need to look up the
|
||||
*right index.
|
||||
*/
|
||||
function play(p_playlistIndex) {
|
||||
playlistIndex = _idToPostionLookUp[p_playlistIndex];
|
||||
if (playlistIndex == undefined) {
|
||||
playlistIndex = 0;
|
||||
}
|
||||
//_playlist_jplayer.select(playlistIndex);
|
||||
_playlist_jplayer.play(playlistIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Playing one audio track occurs from the library. This function will create the media, setup
|
||||
* jplayer and play the track.
|
||||
*/
|
||||
function playOne(uri, mime) {
|
||||
var playlist = new Array();
|
||||
|
||||
var media = null;
|
||||
var key = null;
|
||||
if (mime.search(/mp3/i) > 0 || mime.search(/mpeg/i) > 0) {
|
||||
key = "mp3";
|
||||
} else if (mime.search(/og(g|a)/i) > 0 || mime.search(/vorbis/i) > 0) {
|
||||
key = "oga";
|
||||
} else if (mime.search(/mp4/i) > 0) {
|
||||
key = "m4a";
|
||||
} else if (mime.search(/wav/i) > 0) {
|
||||
key = "wav";
|
||||
}
|
||||
|
||||
if (key) {
|
||||
media = {
|
||||
title:
|
||||
$(".audioFileTitle").text() != "null"
|
||||
? $(".audioFileTitle").text()
|
||||
: "",
|
||||
artist:
|
||||
$(".audioFileArtist").text() != "null"
|
||||
? $(".audioFileArtist").text()
|
||||
: "",
|
||||
};
|
||||
media[key] = uri;
|
||||
}
|
||||
|
||||
if (media) {
|
||||
_playlist_jplayer.option("autoPlay", true);
|
||||
playlist[0] = media;
|
||||
_playlist_jplayer.setPlaylist(playlist);
|
||||
_playlist_jplayer.play(0);
|
||||
}
|
||||
|
||||
var container = $("#jp_container_1");
|
||||
// Add 2px to account for borders
|
||||
window.resizeTo(
|
||||
container.width() + 2,
|
||||
container.height() + URL_BAR_HEIGHT + 2
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,50 +1,51 @@
|
|||
var AIRTIME = (function(AIRTIME) {
|
||||
var mod, DEFAULT_CLASS = 'ui-button ui-state-default', DISABLED_CLASS = 'ui-state-disabled';
|
||||
var AIRTIME = (function (AIRTIME) {
|
||||
var mod,
|
||||
DEFAULT_CLASS = "ui-button ui-state-default",
|
||||
DISABLED_CLASS = "ui-state-disabled";
|
||||
|
||||
if (AIRTIME.button === undefined) {
|
||||
AIRTIME.button = {};
|
||||
if (AIRTIME.button === undefined) {
|
||||
AIRTIME.button = {};
|
||||
}
|
||||
mod = AIRTIME.button;
|
||||
|
||||
mod.isDisabled = function (c, useParent) {
|
||||
var button = $("." + c);
|
||||
if (useParent) {
|
||||
button = button.parent();
|
||||
}
|
||||
mod = AIRTIME.button;
|
||||
|
||||
mod.isDisabled = function(c, useParent) {
|
||||
var button = $("." + c);
|
||||
if (useParent) {
|
||||
button = button.parent();
|
||||
}
|
||||
if (button.hasClass(DISABLED_CLASS)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (button.hasClass(DISABLED_CLASS)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return false;
|
||||
};
|
||||
mod.enableButton = function (c, useParent) {
|
||||
if (useParent) {
|
||||
var button = $("." + c).parent();
|
||||
} else {
|
||||
var button = $("." + c);
|
||||
}
|
||||
|
||||
mod.enableButton = function(c, useParent) {
|
||||
if (useParent) {
|
||||
var button = $("." + c).parent();
|
||||
} else {
|
||||
var button = $("." + c);
|
||||
}
|
||||
if (button.hasClass(DISABLED_CLASS)) {
|
||||
button.removeClass(DISABLED_CLASS);
|
||||
button.removeAttr("disabled");
|
||||
}
|
||||
};
|
||||
|
||||
if (button.hasClass(DISABLED_CLASS)) {
|
||||
button.removeClass(DISABLED_CLASS);
|
||||
button.removeAttr('disabled');
|
||||
}
|
||||
};
|
||||
mod.disableButton = function (c, useParent) {
|
||||
if (useParent) {
|
||||
var button = $("." + c).parent();
|
||||
} else {
|
||||
var button = $("." + c);
|
||||
}
|
||||
|
||||
mod.disableButton = function(c, useParent) {
|
||||
if (useParent) {
|
||||
var button = $("." + c).parent();
|
||||
} else {
|
||||
var button = $("." + c);
|
||||
}
|
||||
if (!button.hasClass(DISABLED_CLASS)) {
|
||||
button.addClass(DISABLED_CLASS);
|
||||
button.attr("disabled", "disabled");
|
||||
}
|
||||
};
|
||||
|
||||
if (!button.hasClass(DISABLED_CLASS)) {
|
||||
button.addClass(DISABLED_CLASS);
|
||||
button.attr('disabled', 'disabled');
|
||||
}
|
||||
};
|
||||
|
||||
return AIRTIME;
|
||||
|
||||
}(AIRTIME || {}));
|
||||
return AIRTIME;
|
||||
})(AIRTIME || {});
|
||||
|
|
|
@ -1,24 +1,28 @@
|
|||
function isAudioSupported(mime) {
|
||||
var audio = new Audio();
|
||||
|
||||
function isAudioSupported(mime){
|
||||
var audio = new Audio();
|
||||
if (typeof mime !== "string" || mime === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((typeof mime) !== "string" || (mime === null)) {
|
||||
return false;
|
||||
}
|
||||
var bMime = null;
|
||||
if (mime.indexOf("ogg") != -1 || mime.indexOf("vorbis") != -1) {
|
||||
bMime = 'audio/ogg; codecs="vorbis"';
|
||||
} else {
|
||||
bMime = mime;
|
||||
}
|
||||
|
||||
var bMime = null;
|
||||
if (mime.indexOf("ogg") != -1 || mime.indexOf("vorbis") != -1) {
|
||||
bMime = 'audio/ogg; codecs="vorbis"';
|
||||
} else {
|
||||
bMime = mime;
|
||||
}
|
||||
|
||||
//return a true of the browser can play this file natively, or if the
|
||||
//file is an mp3 and flash is installed (jPlayer will fall back to flash to play mp3s).
|
||||
//Note that checking the navigator.mimeTypes value does not work for IE7, but the alternative
|
||||
//is adding a javascript library to do the work for you, which seems like overkill....
|
||||
return (!!audio.canPlayType && audio.canPlayType(bMime) != "") ||
|
||||
(mime.indexOf("mp3") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) ||
|
||||
(mime.indexOf("mp4") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) ||
|
||||
(mime.indexOf("mpeg") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined);
|
||||
//return a true of the browser can play this file natively, or if the
|
||||
//file is an mp3 and flash is installed (jPlayer will fall back to flash to play mp3s).
|
||||
//Note that checking the navigator.mimeTypes value does not work for IE7, but the alternative
|
||||
//is adding a javascript library to do the work for you, which seems like overkill....
|
||||
return (
|
||||
(!!audio.canPlayType && audio.canPlayType(bMime) != "") ||
|
||||
(mime.indexOf("mp3") != -1 &&
|
||||
navigator.mimeTypes["application/x-shockwave-flash"] != undefined) ||
|
||||
(mime.indexOf("mp4") != -1 &&
|
||||
navigator.mimeTypes["application/x-shockwave-flash"] != undefined) ||
|
||||
(mime.indexOf("mpeg") != -1 &&
|
||||
navigator.mimeTypes["application/x-shockwave-flash"] != undefined)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
var previewWidth = 482,
|
||||
previewHeight = 110;
|
||||
previewHeight = 110;
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
/* Removed as this is now (hopefully) unnecessary */
|
||||
//$("#Panel").stickyPanel({
|
||||
// topPadding: 1,
|
||||
// afterDetachCSSClass: "floated-panel",
|
||||
// savePanelSpace: true
|
||||
//});
|
||||
|
||||
/* Removed as this is now (hopefully) unnecessary */
|
||||
//$("#Panel").stickyPanel({
|
||||
// topPadding: 1,
|
||||
// afterDetachCSSClass: "floated-panel",
|
||||
// savePanelSpace: true
|
||||
//});
|
||||
|
||||
//this statement tells the browser to fade out any success message after 5 seconds
|
||||
setTimeout(function(){$(".success").fadeOut("slow")}, 5000);
|
||||
//this statement tells the browser to fade out any success message after 5 seconds
|
||||
setTimeout(function () {
|
||||
$(".success").fadeOut("slow");
|
||||
}, 5000);
|
||||
});
|
||||
|
||||
/*
|
||||
|
@ -19,105 +20,104 @@ $(document).ready(function() {
|
|||
* which we use in multiple places
|
||||
*/
|
||||
var i18n_months = [
|
||||
$.i18n._("January"),
|
||||
$.i18n._("February"),
|
||||
$.i18n._("March"),
|
||||
$.i18n._("April"),
|
||||
$.i18n._("May"),
|
||||
$.i18n._("June"),
|
||||
$.i18n._("July"),
|
||||
$.i18n._("August"),
|
||||
$.i18n._("September"),
|
||||
$.i18n._("October"),
|
||||
$.i18n._("November"),
|
||||
$.i18n._("December")
|
||||
$.i18n._("January"),
|
||||
$.i18n._("February"),
|
||||
$.i18n._("March"),
|
||||
$.i18n._("April"),
|
||||
$.i18n._("May"),
|
||||
$.i18n._("June"),
|
||||
$.i18n._("July"),
|
||||
$.i18n._("August"),
|
||||
$.i18n._("September"),
|
||||
$.i18n._("October"),
|
||||
$.i18n._("November"),
|
||||
$.i18n._("December"),
|
||||
];
|
||||
|
||||
var i18n_months_short = [
|
||||
$.i18n._("Jan"),
|
||||
$.i18n._("Feb"),
|
||||
$.i18n._("Mar"),
|
||||
$.i18n._("Apr"),
|
||||
$.i18n._("May"),
|
||||
$.i18n._("Jun"),
|
||||
$.i18n._("Jul"),
|
||||
$.i18n._("Aug"),
|
||||
$.i18n._("Sep"),
|
||||
$.i18n._("Oct"),
|
||||
$.i18n._("Nov"),
|
||||
$.i18n._("Dec")
|
||||
$.i18n._("Jan"),
|
||||
$.i18n._("Feb"),
|
||||
$.i18n._("Mar"),
|
||||
$.i18n._("Apr"),
|
||||
$.i18n._("May"),
|
||||
$.i18n._("Jun"),
|
||||
$.i18n._("Jul"),
|
||||
$.i18n._("Aug"),
|
||||
$.i18n._("Sep"),
|
||||
$.i18n._("Oct"),
|
||||
$.i18n._("Nov"),
|
||||
$.i18n._("Dec"),
|
||||
];
|
||||
|
||||
var i18n_days_short = [
|
||||
$.i18n._("Su"),
|
||||
$.i18n._("Mo"),
|
||||
$.i18n._("Tu"),
|
||||
$.i18n._("We"),
|
||||
$.i18n._("Th"),
|
||||
$.i18n._("Fr"),
|
||||
$.i18n._("Sa")
|
||||
$.i18n._("Su"),
|
||||
$.i18n._("Mo"),
|
||||
$.i18n._("Tu"),
|
||||
$.i18n._("We"),
|
||||
$.i18n._("Th"),
|
||||
$.i18n._("Fr"),
|
||||
$.i18n._("Sa"),
|
||||
];
|
||||
|
||||
var HTTPMethods = Object.freeze({
|
||||
GET: "GET",
|
||||
POST: "POST",
|
||||
PUT: "PUT",
|
||||
PATCH: "PATCH",
|
||||
DELETE: "DELETE",
|
||||
OPTIONS: "OPTIONS"
|
||||
GET: "GET",
|
||||
POST: "POST",
|
||||
PUT: "PUT",
|
||||
PATCH: "PATCH",
|
||||
DELETE: "DELETE",
|
||||
OPTIONS: "OPTIONS",
|
||||
});
|
||||
|
||||
var dateStartId = "#sb_date_start",
|
||||
timeStartId = "#sb_time_start",
|
||||
dateEndId = "#sb_date_end",
|
||||
timeEndId = "#sb_time_end";
|
||||
timeStartId = "#sb_time_start",
|
||||
dateEndId = "#sb_date_end",
|
||||
timeEndId = "#sb_time_end";
|
||||
|
||||
function getDatatablesStrings(overrideDict) {
|
||||
var dict = {
|
||||
sEmptyTable: $.i18n._("No data available in table"),
|
||||
sInfo: $.i18n._("Showing _START_ to _END_ of _TOTAL_ entries"),
|
||||
sInfoEmpty: $.i18n._("Showing 0 to 0 of 0 entries"),
|
||||
sInfoFiltered: "", // $.i18n._("(filtered from _MAX_ total entries)"),
|
||||
sInfoPostFix: $.i18n._(""),
|
||||
sInfoThousands: $.i18n._(","),
|
||||
sLengthMenu: $.i18n._("Show _MENU_"),
|
||||
sLoadingRecords: $.i18n._("Loading..."),
|
||||
//"sProcessing": $.i18n._("Processing..."),
|
||||
sProcessing: $.i18n._(""),
|
||||
sSearch: $.i18n._(""),
|
||||
sZeroRecords: $.i18n._("No matching records found"),
|
||||
oPaginate: {
|
||||
sFirst: "«",
|
||||
sLast: "»",
|
||||
sNext: "›",
|
||||
sPrevious: "‹",
|
||||
},
|
||||
//"oPaginate": {
|
||||
// "sFirst": $.i18n._("First"),
|
||||
// "sLast": $.i18n._("Last"),
|
||||
// "sNext": $.i18n._("Next"),
|
||||
// "sPrevious": $.i18n._("Previous")
|
||||
//},
|
||||
oAria: {
|
||||
sSortAscending: $.i18n._(": activate to sort column ascending"),
|
||||
sSortDescending: $.i18n._(": activate to sort column descending"),
|
||||
},
|
||||
};
|
||||
|
||||
var dict = {
|
||||
"sEmptyTable": $.i18n._("No data available in table"),
|
||||
"sInfo": $.i18n._("Showing _START_ to _END_ of _TOTAL_ entries"),
|
||||
"sInfoEmpty": $.i18n._("Showing 0 to 0 of 0 entries"),
|
||||
"sInfoFiltered": "", // $.i18n._("(filtered from _MAX_ total entries)"),
|
||||
"sInfoPostFix": $.i18n._(""),
|
||||
"sInfoThousands": $.i18n._(","),
|
||||
"sLengthMenu": $.i18n._("Show _MENU_"),
|
||||
"sLoadingRecords": $.i18n._("Loading..."),
|
||||
//"sProcessing": $.i18n._("Processing..."),
|
||||
"sProcessing": $.i18n._(""),
|
||||
"sSearch": $.i18n._(""),
|
||||
"sZeroRecords": $.i18n._("No matching records found"),
|
||||
"oPaginate": {
|
||||
"sFirst": "«",
|
||||
"sLast": "»",
|
||||
"sNext": "›",
|
||||
"sPrevious": "‹"
|
||||
},
|
||||
//"oPaginate": {
|
||||
// "sFirst": $.i18n._("First"),
|
||||
// "sLast": $.i18n._("Last"),
|
||||
// "sNext": $.i18n._("Next"),
|
||||
// "sPrevious": $.i18n._("Previous")
|
||||
//},
|
||||
"oAria": {
|
||||
"sSortAscending": $.i18n._(": activate to sort column ascending"),
|
||||
"sSortDescending": $.i18n._(": activate to sort column descending")
|
||||
}
|
||||
};
|
||||
|
||||
return $.extend({}, dict, overrideDict);
|
||||
return $.extend({}, dict, overrideDict);
|
||||
}
|
||||
|
||||
function adjustDateToServerDate(date, serverTimezoneOffset){
|
||||
//date object stores time in the browser's localtime. We need to artificially shift
|
||||
//it to
|
||||
var timezoneOffset = date.getTimezoneOffset()*60*1000;
|
||||
function adjustDateToServerDate(date, serverTimezoneOffset) {
|
||||
//date object stores time in the browser's localtime. We need to artificially shift
|
||||
//it to
|
||||
var timezoneOffset = date.getTimezoneOffset() * 60 * 1000;
|
||||
|
||||
date.setTime(date.getTime() + timezoneOffset + serverTimezoneOffset*1000);
|
||||
date.setTime(date.getTime() + timezoneOffset + serverTimezoneOffset * 1000);
|
||||
|
||||
/* date object has been shifted to artificial UTC time. Now let's
|
||||
* shift it to the server's timezone */
|
||||
return date;
|
||||
/* date object has been shifted to artificial UTC time. Now let's
|
||||
* shift it to the server's timezone */
|
||||
return date;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -129,27 +129,31 @@ var _preview_window = null;
|
|||
*Gets the info from the view when menu action play choosen and opens the jplayer window.
|
||||
*/
|
||||
function openAudioPreview(p_event) {
|
||||
p_event.stopPropagation();
|
||||
p_event.stopPropagation();
|
||||
|
||||
var audioFileID = $(this).attr('audioFile');
|
||||
var objId = $('.obj_id:first').attr('value');
|
||||
var objType = $('.obj_type:first').attr('value');
|
||||
var playIndex = $(this).parent().parent().attr('id');
|
||||
playIndex = playIndex.substring(4); //remove the spl_
|
||||
var audioFileID = $(this).attr("audioFile");
|
||||
var objId = $(".obj_id:first").attr("value");
|
||||
var objType = $(".obj_type:first").attr("value");
|
||||
var playIndex = $(this).parent().parent().attr("id");
|
||||
playIndex = playIndex.substring(4); //remove the spl_
|
||||
|
||||
if (objType == "playlist") {
|
||||
open_playlist_preview(objId, playIndex);
|
||||
} else if (objType == "block") {
|
||||
open_block_preview(objId, playIndex);
|
||||
}
|
||||
if (objType == "playlist") {
|
||||
open_playlist_preview(objId, playIndex);
|
||||
} else if (objType == "block") {
|
||||
open_block_preview(objId, playIndex);
|
||||
}
|
||||
}
|
||||
|
||||
function open_audio_preview(type, id) {
|
||||
// The reason that we need to encode artist and title string is that
|
||||
// sometime they contain '/' or '\' and apache reject %2f or %5f
|
||||
// so the work around is to encode it twice.
|
||||
openPreviewWindow(baseUrl+'audiopreview/audio-preview/audioFileID/'+id+'/type/'+type, previewWidth, previewHeight);
|
||||
_preview_window.focus();
|
||||
// The reason that we need to encode artist and title string is that
|
||||
// sometime they contain '/' or '\' and apache reject %2f or %5f
|
||||
// so the work around is to encode it twice.
|
||||
openPreviewWindow(
|
||||
baseUrl + "audiopreview/audio-preview/audioFileID/" + id + "/type/" + type,
|
||||
previewWidth,
|
||||
previewHeight
|
||||
);
|
||||
_preview_window.focus();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -159,26 +163,43 @@ function open_audio_preview(type, id) {
|
|||
*given index.
|
||||
*/
|
||||
function open_playlist_preview(p_playlistID, p_playlistIndex) {
|
||||
if (p_playlistIndex == undefined) //Use a resonable default.
|
||||
p_playlistIndex = 0;
|
||||
if (p_playlistIndex == undefined)
|
||||
//Use a resonable default.
|
||||
p_playlistIndex = 0;
|
||||
|
||||
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playAllPlaylist(p_playlistID, p_playlistIndex);
|
||||
else
|
||||
openPreviewWindow(baseUrl+'audiopreview/playlist-preview/playlistIndex/'+p_playlistIndex+'/playlistID/'+p_playlistID, previewWidth, previewHeight);
|
||||
_preview_window.focus();
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playAllPlaylist(p_playlistID, p_playlistIndex);
|
||||
else
|
||||
openPreviewWindow(
|
||||
baseUrl +
|
||||
"audiopreview/playlist-preview/playlistIndex/" +
|
||||
p_playlistIndex +
|
||||
"/playlistID/" +
|
||||
p_playlistID,
|
||||
previewWidth,
|
||||
previewHeight
|
||||
);
|
||||
_preview_window.focus();
|
||||
}
|
||||
|
||||
function open_block_preview(p_blockId, p_blockIndex) {
|
||||
if (p_blockIndex == undefined) //Use a resonable default.
|
||||
p_blockIndex = 0;
|
||||
if (p_blockIndex == undefined)
|
||||
//Use a resonable default.
|
||||
p_blockIndex = 0;
|
||||
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playBlock(p_blockId, p_blockIndex);
|
||||
else
|
||||
openPreviewWindow(baseUrl+'audiopreview/block-preview/blockIndex/'+p_blockIndex+'/blockId/'+p_blockId, previewWidth, previewHeight);
|
||||
_preview_window.focus();
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playBlock(p_blockId, p_blockIndex);
|
||||
else
|
||||
openPreviewWindow(
|
||||
baseUrl +
|
||||
"audiopreview/block-preview/blockIndex/" +
|
||||
p_blockIndex +
|
||||
"/blockId/" +
|
||||
p_blockId,
|
||||
previewWidth,
|
||||
previewHeight
|
||||
);
|
||||
_preview_window.focus();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -188,134 +209,159 @@ function open_block_preview(p_blockId, p_blockIndex) {
|
|||
*given index.
|
||||
*/
|
||||
function open_show_preview(p_showID, p_showIndex) {
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playAllShow(p_showID, p_showIndex);
|
||||
else
|
||||
openPreviewWindow(baseUrl+'audiopreview/show-preview/showID/'+p_showID+'/showIndex/'+p_showIndex, previewWidth, previewHeight);
|
||||
_preview_window.focus();
|
||||
if (_preview_window != null && !_preview_window.closed)
|
||||
_preview_window.playAllShow(p_showID, p_showIndex);
|
||||
else
|
||||
openPreviewWindow(
|
||||
baseUrl +
|
||||
"audiopreview/show-preview/showID/" +
|
||||
p_showID +
|
||||
"/showIndex/" +
|
||||
p_showIndex,
|
||||
previewWidth,
|
||||
previewHeight
|
||||
);
|
||||
_preview_window.focus();
|
||||
}
|
||||
|
||||
function openPreviewWindow(url, w, h) {
|
||||
var dim = (w && h) ? 'width=' + w + ',height=' + h + ',' : '';
|
||||
// Hardcoding this here is kinda gross, but the alternatives aren't much better...
|
||||
_preview_window = window.open(url, $.i18n._('Audio Player'), dim + 'scrollbars=yes');
|
||||
return false;
|
||||
var dim = w && h ? "width=" + w + ",height=" + h + "," : "";
|
||||
// Hardcoding this here is kinda gross, but the alternatives aren't much better...
|
||||
_preview_window = window.open(
|
||||
url,
|
||||
$.i18n._("Audio Player"),
|
||||
dim + "scrollbars=yes"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
function validateTimeRange() {
|
||||
var oRange,
|
||||
inputs = $('.sb-timerange > input'),
|
||||
start, end;
|
||||
var oRange,
|
||||
inputs = $(".sb-timerange > input"),
|
||||
start,
|
||||
end;
|
||||
|
||||
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
oRange = AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
|
||||
start = oRange.start;
|
||||
end = oRange.end;
|
||||
start = oRange.start;
|
||||
end = oRange.end;
|
||||
|
||||
if (end >= start) {
|
||||
inputs.removeClass('error');
|
||||
} else {
|
||||
if (!inputs.hasClass('error')) {
|
||||
inputs.addClass('error');
|
||||
}
|
||||
if (end >= start) {
|
||||
inputs.removeClass("error");
|
||||
} else {
|
||||
if (!inputs.hasClass("error")) {
|
||||
inputs.addClass("error");
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
isValid: end >= start
|
||||
};
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
isValid: end >= start,
|
||||
};
|
||||
}
|
||||
|
||||
// validate uploaded images
|
||||
function validateImage(img, el) {
|
||||
// remove any existing error messages
|
||||
if ($("#img-err")) { $("#img-err").remove(); }
|
||||
// remove any existing error messages
|
||||
if ($("#img-err")) {
|
||||
$("#img-err").remove();
|
||||
}
|
||||
|
||||
if (img.size > 2048000) { // 2MB - pull this from somewhere instead?
|
||||
// hack way of inserting an error message
|
||||
var err = $.i18n._("Selected file is too large");
|
||||
el.parent().after(
|
||||
"<ul id='img-err' class='errors'>" +
|
||||
"<li>" + err + "</li>" +
|
||||
"</ul>");
|
||||
return false;
|
||||
} else if (validateMimeType(img.type) < 0) {
|
||||
var err = $.i18n._("File format is not supported");
|
||||
el.parent().after(
|
||||
"<ul id='img-err' class='errors'>" +
|
||||
"<li>" + err + "</li>" +
|
||||
"</ul>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
if (img.size > 2048000) {
|
||||
// 2MB - pull this from somewhere instead?
|
||||
// hack way of inserting an error message
|
||||
var err = $.i18n._("Selected file is too large");
|
||||
el.parent().after(
|
||||
"<ul id='img-err' class='errors'>" + "<li>" + err + "</li>" + "</ul>"
|
||||
);
|
||||
return false;
|
||||
} else if (validateMimeType(img.type) < 0) {
|
||||
var err = $.i18n._("File format is not supported");
|
||||
el.parent().after(
|
||||
"<ul id='img-err' class='errors'>" + "<li>" + err + "</li>" + "</ul>"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// validate image mime type
|
||||
function validateMimeType(mime) {
|
||||
var extensions = [
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/gif'
|
||||
// BMP?
|
||||
];
|
||||
return $.inArray(mime, extensions);
|
||||
var extensions = [
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
// BMP?
|
||||
];
|
||||
return $.inArray(mime, extensions);
|
||||
}
|
||||
|
||||
function pad(number, length) {
|
||||
return sprintf("%'0"+length+"d", number);
|
||||
return sprintf("%'0" + length + "d", number);
|
||||
}
|
||||
|
||||
function removeSuccessMsg() {
|
||||
var $status = $('.success');
|
||||
var $status = $(".success");
|
||||
|
||||
$status.fadeOut("slow", function(){$status.empty()});
|
||||
$status.fadeOut("slow", function () {
|
||||
$status.empty();
|
||||
});
|
||||
}
|
||||
|
||||
function hideHint(h) {
|
||||
h.hide("slow").addClass("hidden");
|
||||
h.hide("slow").addClass("hidden");
|
||||
}
|
||||
|
||||
function showHint(h) {
|
||||
h.show("slow").removeClass("hidden");
|
||||
h.show("slow").removeClass("hidden");
|
||||
}
|
||||
|
||||
function getUsabilityHint() {
|
||||
var pathname = window.location.pathname;
|
||||
$.getJSON(baseUrl + "api/get-usability-hint", {"format": "json", "userPath": pathname}, function(json) {
|
||||
var $hint_div = $('.usability_hint');
|
||||
var current_hint = $hint_div.html();
|
||||
if (json === "") {
|
||||
// there are no more hints to display to the user
|
||||
hideHint($hint_div);
|
||||
} else if (current_hint !== json) {
|
||||
// we only change the message if it is new
|
||||
if ($hint_div.is(":visible")) {
|
||||
hideHint($hint_div);
|
||||
}
|
||||
$hint_div.html(json);
|
||||
showHint($hint_div);
|
||||
} else {
|
||||
// hint is the same before we hid it so we just need to show it
|
||||
if ($hint_div.is(":hidden")) {
|
||||
showHint($hint_div);
|
||||
}
|
||||
var pathname = window.location.pathname;
|
||||
$.getJSON(
|
||||
baseUrl + "api/get-usability-hint",
|
||||
{ format: "json", userPath: pathname },
|
||||
function (json) {
|
||||
var $hint_div = $(".usability_hint");
|
||||
var current_hint = $hint_div.html();
|
||||
if (json === "") {
|
||||
// there are no more hints to display to the user
|
||||
hideHint($hint_div);
|
||||
} else if (current_hint !== json) {
|
||||
// we only change the message if it is new
|
||||
if ($hint_div.is(":visible")) {
|
||||
hideHint($hint_div);
|
||||
}
|
||||
});
|
||||
$hint_div.html(json);
|
||||
showHint($hint_div);
|
||||
} else {
|
||||
// hint is the same before we hid it so we just need to show it
|
||||
if ($hint_div.is(":hidden")) {
|
||||
showHint($hint_div);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// TODO: build this out so we can use it as a fallback in fail cases
|
||||
function buildErrorDialog(message) {
|
||||
var el = $("<div id='error_dialog'></div>");
|
||||
el.text(message);
|
||||
$(document.body).append(el);
|
||||
$("#error_dialog").dialog({
|
||||
title: $.i18n._("Something went wrong!"),
|
||||
resizable: false,
|
||||
modal: true,
|
||||
width: "auto",
|
||||
height: "auto"
|
||||
});
|
||||
var el = $("<div id='error_dialog'></div>");
|
||||
el.text(message);
|
||||
$(document.body).append(el);
|
||||
$("#error_dialog").dialog({
|
||||
title: $.i18n._("Something went wrong!"),
|
||||
resizable: false,
|
||||
modal: true,
|
||||
width: "auto",
|
||||
height: "auto",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -324,35 +370,44 @@ function buildErrorDialog(message) {
|
|||
* @param selector jQuery selector to search descendants
|
||||
* @returns {jQuery}
|
||||
*/
|
||||
jQuery.fn.addTitles = function(selector) {
|
||||
this.each(function() {
|
||||
// Put this in a mouseenter event handler so it's dynamic
|
||||
// (newly created elements will have the title applied on hover)
|
||||
$(this).on("mouseenter", selector, function () {
|
||||
$(this).attr("title", $(this).text());
|
||||
});
|
||||
jQuery.fn.addTitles = function (selector) {
|
||||
this.each(function () {
|
||||
// Put this in a mouseenter event handler so it's dynamic
|
||||
// (newly created elements will have the title applied on hover)
|
||||
$(this).on("mouseenter", selector, function () {
|
||||
$(this).attr("title", $(this).text());
|
||||
});
|
||||
});
|
||||
|
||||
return this; // jQuery chaining
|
||||
return this; // jQuery chaining
|
||||
};
|
||||
|
||||
// XXX: Old code to pan selector text; keeping this around in case we want to use it later - Duncan
|
||||
jQuery.fn.scrollText = function(selector) {
|
||||
this.each(function () {
|
||||
$(this).on("mouseenter", selector, function () {
|
||||
var sw = $(this)[0].scrollWidth - parseFloat($(this).css("textIndent")), iw = $(this).innerWidth();
|
||||
if (sw > iw) {
|
||||
$(this).stop().animate({
|
||||
textIndent: "-" + (sw + 1 - iw) + "px"
|
||||
}, sw * 8);
|
||||
}
|
||||
});
|
||||
$(this).on("mouseleave", selector, function () {
|
||||
$(this).stop().animate({
|
||||
textIndent: "0"
|
||||
}, 500);
|
||||
});
|
||||
jQuery.fn.scrollText = function (selector) {
|
||||
this.each(function () {
|
||||
$(this).on("mouseenter", selector, function () {
|
||||
var sw = $(this)[0].scrollWidth - parseFloat($(this).css("textIndent")),
|
||||
iw = $(this).innerWidth();
|
||||
if (sw > iw) {
|
||||
$(this)
|
||||
.stop()
|
||||
.animate(
|
||||
{
|
||||
textIndent: "-" + (sw + 1 - iw) + "px",
|
||||
},
|
||||
sw * 8
|
||||
);
|
||||
}
|
||||
});
|
||||
$(this).on("mouseleave", selector, function () {
|
||||
$(this).stop().animate(
|
||||
{
|
||||
textIndent: "0",
|
||||
},
|
||||
500
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
return this;
|
||||
return this;
|
||||
};
|
||||
|
|
|
@ -1,88 +1,100 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
$("#facebook-login").click(function() {
|
||||
AIRTIME.facebook.promptForFacebookPage();
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$("#facebook-login").click(function () {
|
||||
AIRTIME.facebook.promptForFacebookPage();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
window.fbAsyncInit = function() {
|
||||
FB.init({
|
||||
appId : FACEBOOK_APP_ID,
|
||||
xfbml : true,
|
||||
version : 'v2.4'
|
||||
});
|
||||
window.fbAsyncInit = function () {
|
||||
FB.init({
|
||||
appId: FACEBOOK_APP_ID,
|
||||
xfbml: true,
|
||||
version: "v2.4",
|
||||
});
|
||||
};
|
||||
|
||||
var AIRTIME = (function(AIRTIME) {
|
||||
var AIRTIME = (function (AIRTIME) {
|
||||
//Module initialization
|
||||
if (AIRTIME.facebook === undefined) {
|
||||
AIRTIME.facebook = {};
|
||||
}
|
||||
|
||||
//Module initialization
|
||||
if (AIRTIME.facebook === undefined) {
|
||||
AIRTIME.facebook = {};
|
||||
var mod = AIRTIME.facebook;
|
||||
|
||||
(function (d, s, id) {
|
||||
var js,
|
||||
fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) {
|
||||
return;
|
||||
}
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
})(document, "script", "facebook-jssdk");
|
||||
|
||||
var mod = AIRTIME.facebook;
|
||||
|
||||
(function (d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) {
|
||||
return;
|
||||
mod.promptForFacebookPage = function () {
|
||||
FB.login(
|
||||
function (response) {
|
||||
if (response.authResponse) {
|
||||
mod.getPagesOwnedByUser(
|
||||
response.authResponse.userID,
|
||||
response.authResponse.accessToken
|
||||
);
|
||||
mod.addPageTab();
|
||||
} else {
|
||||
console.log("Authorization failed.");
|
||||
}
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
},
|
||||
{ scope: "manage_pages" }
|
||||
);
|
||||
};
|
||||
|
||||
mod.promptForFacebookPage = function() {
|
||||
FB.login(function (response) {
|
||||
if (response.authResponse) {
|
||||
mod.getPagesOwnedByUser(response.authResponse.userID, response.authResponse.accessToken);
|
||||
mod.addPageTab();
|
||||
mod.getPagesOwnedByUser = function (userId, accessToken) {
|
||||
FB.api(
|
||||
"/" + userId + "/accounts",
|
||||
function (response) {
|
||||
console.log(response);
|
||||
},
|
||||
{ access_token: accessToken }
|
||||
);
|
||||
};
|
||||
|
||||
} else {
|
||||
console.log('Authorization failed.');
|
||||
mod.addPageTab = function () {
|
||||
FB.ui(
|
||||
{ method: "pagetab" },
|
||||
function (resp) {
|
||||
console.log("response:");
|
||||
console.log(resp);
|
||||
var pageIdList = [];
|
||||
var tabs = resp["tabs_added"];
|
||||
|
||||
if (tabs != undefined && Object.keys(tabs).length > 0) {
|
||||
for (var pageId in tabs) {
|
||||
pageIdList.push(pageId);
|
||||
}
|
||||
|
||||
//POST these back to Airtime, which will then proxy it over to our social app. (multiple requests from Airtime)
|
||||
$.post(
|
||||
"facebook-tab-success",
|
||||
{ pages: JSON.stringify(pageIdList) },
|
||||
function () {
|
||||
alert("Successfully added to your Facebook page!");
|
||||
}
|
||||
}, {scope: 'manage_pages'});
|
||||
}
|
||||
)
|
||||
.done(function () {})
|
||||
.fail(function () {
|
||||
alert(
|
||||
"Sorry, an error occurred and we were unable to add the widget to your Facebook page."
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
app_id: FACEBOOK_APP_ID,
|
||||
//redirect_uri: 'https://localhost'
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
mod.getPagesOwnedByUser = function(userId, accessToken) {
|
||||
FB.api('/' + userId + '/accounts', function (response) {
|
||||
console.log(response);
|
||||
}, {access_token: accessToken});
|
||||
}
|
||||
|
||||
mod.addPageTab = function() {
|
||||
FB.ui(
|
||||
{ method: 'pagetab' },
|
||||
function (resp) {
|
||||
console.log("response:");
|
||||
console.log(resp);
|
||||
var pageIdList = [];
|
||||
var tabs = resp["tabs_added"];
|
||||
|
||||
if ((tabs != undefined) && (Object.keys(tabs).length > 0)) {
|
||||
for (var pageId in tabs) {
|
||||
pageIdList.push(pageId);
|
||||
}
|
||||
|
||||
//POST these back to Airtime, which will then proxy it over to our social app. (multiple requests from Airtime)
|
||||
$.post('facebook-tab-success', { "pages" : JSON.stringify(pageIdList) }, function() {
|
||||
alert("Successfully added to your Facebook page!");
|
||||
}).done(function() {
|
||||
|
||||
}).fail(function() {
|
||||
alert("Sorry, an error occurred and we were unable to add the widget to your Facebook page.");
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
app_id: FACEBOOK_APP_ID,
|
||||
//redirect_uri: 'https://localhost'
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return AIRTIME;
|
||||
|
||||
}(AIRTIME || {}));
|
||||
return AIRTIME;
|
||||
})(AIRTIME || {});
|
||||
|
|
|
@ -22,7 +22,6 @@ var live_dj_on_air = false;
|
|||
var scheduled_play_on_air = false;
|
||||
var scheduled_play_source = false;
|
||||
|
||||
|
||||
//a reference returned by setTimeout. Useful for when we want clearTimeout()
|
||||
var newSongTimeoutId = null;
|
||||
|
||||
|
@ -40,449 +39,545 @@ var onAirOffIterations = 0;
|
|||
var nextSongPrepare = true;
|
||||
var nextShowPrepare = true;
|
||||
|
||||
function secondsTimer(){
|
||||
/* This function constantly calls itself every 'uiUpdateInterval'
|
||||
* micro-seconds and is responsible for updating the UI. */
|
||||
if (localRemoteTimeOffset !== null){
|
||||
var date = new Date();
|
||||
approximateServerTime = date.getTime() - localRemoteTimeOffset;
|
||||
updateProgressBarValue();
|
||||
updatePlaybar();
|
||||
controlOnAirLight();
|
||||
controlSwitchLight();
|
||||
}
|
||||
setTimeout(secondsTimer, uiUpdateInterval);
|
||||
function secondsTimer() {
|
||||
/* This function constantly calls itself every 'uiUpdateInterval'
|
||||
* micro-seconds and is responsible for updating the UI. */
|
||||
if (localRemoteTimeOffset !== null) {
|
||||
var date = new Date();
|
||||
approximateServerTime = date.getTime() - localRemoteTimeOffset;
|
||||
updateProgressBarValue();
|
||||
updatePlaybar();
|
||||
controlOnAirLight();
|
||||
controlSwitchLight();
|
||||
}
|
||||
setTimeout(secondsTimer, uiUpdateInterval);
|
||||
}
|
||||
|
||||
function newSongStart(){
|
||||
nextSongPrepare = true;
|
||||
if (nextSong.type == 'track') {
|
||||
currentSong = nextSong;
|
||||
nextSong = null;
|
||||
}
|
||||
function newSongStart() {
|
||||
nextSongPrepare = true;
|
||||
if (nextSong.type == "track") {
|
||||
currentSong = nextSong;
|
||||
nextSong = null;
|
||||
}
|
||||
}
|
||||
|
||||
function nextShowStart(){
|
||||
nextShowPrepare = true;
|
||||
currentShow[0] = nextShow.shift();
|
||||
function nextShowStart() {
|
||||
nextShowPrepare = true;
|
||||
currentShow[0] = nextShow.shift();
|
||||
}
|
||||
|
||||
/* Called every "uiUpdateInterval" mseconds. */
|
||||
function updateProgressBarValue(){
|
||||
var showPercentDone = 0;
|
||||
if (currentShow.length > 0){
|
||||
showPercentDone = (approximateServerTime - currentShow[0].showStartPosixTime)/currentShow[0].showLengthMs*100;
|
||||
if (showPercentDone < 0 || showPercentDone > 100){
|
||||
showPercentDone = 0;
|
||||
currentShow = new Array();
|
||||
currentSong = null;
|
||||
}
|
||||
function updateProgressBarValue() {
|
||||
var showPercentDone = 0;
|
||||
if (currentShow.length > 0) {
|
||||
showPercentDone =
|
||||
((approximateServerTime - currentShow[0].showStartPosixTime) /
|
||||
currentShow[0].showLengthMs) *
|
||||
100;
|
||||
if (showPercentDone < 0 || showPercentDone > 100) {
|
||||
showPercentDone = 0;
|
||||
currentShow = new Array();
|
||||
currentSong = null;
|
||||
}
|
||||
$('#progress-show').attr("style", "width:"+showPercentDone+"%");
|
||||
}
|
||||
$("#progress-show").attr("style", "width:" + showPercentDone + "%");
|
||||
|
||||
var songPercentDone = 0;
|
||||
var scheduled_play_div = $("#scheduled_play_div");
|
||||
var scheduled_play_line_to_switch = scheduled_play_div.parent().find(".line-to-switch");
|
||||
var songPercentDone = 0;
|
||||
var scheduled_play_div = $("#scheduled_play_div");
|
||||
var scheduled_play_line_to_switch = scheduled_play_div
|
||||
.parent()
|
||||
.find(".line-to-switch");
|
||||
|
||||
if (currentSong !== null){
|
||||
var songElapsedTime = 0;
|
||||
songPercentDone = (approximateServerTime - currentSong.songStartPosixTime)/currentSong.songLengthMs*100;
|
||||
songElapsedTime = approximateServerTime - currentSong.songStartPosixTime;
|
||||
if (songPercentDone < 0) {
|
||||
songPercentDone = 0;
|
||||
//currentSong = null;
|
||||
} else if (songPercentDone > 100) {
|
||||
songPercentDone = 100;
|
||||
} else {
|
||||
if ((currentSong.media_item_played == true && currentShow.length > 0) || (songElapsedTime < 5000 && currentShow[0].record != 1)) {
|
||||
scheduled_play_line_to_switch.attr("class", "line-to-switch on");
|
||||
scheduled_play_div.addClass("ready");
|
||||
scheduled_play_source = true;
|
||||
}
|
||||
else{
|
||||
scheduled_play_source = false;
|
||||
scheduled_play_line_to_switch.attr("class", "line-to-switch off");
|
||||
scheduled_play_div.removeClass("ready");
|
||||
}
|
||||
$('#progress-show').attr("class", "progress-show");
|
||||
}
|
||||
if (currentSong !== null) {
|
||||
var songElapsedTime = 0;
|
||||
songPercentDone =
|
||||
((approximateServerTime - currentSong.songStartPosixTime) /
|
||||
currentSong.songLengthMs) *
|
||||
100;
|
||||
songElapsedTime = approximateServerTime - currentSong.songStartPosixTime;
|
||||
if (songPercentDone < 0) {
|
||||
songPercentDone = 0;
|
||||
//currentSong = null;
|
||||
} else if (songPercentDone > 100) {
|
||||
songPercentDone = 100;
|
||||
} else {
|
||||
if (
|
||||
(currentSong.media_item_played == true && currentShow.length > 0) ||
|
||||
(songElapsedTime < 5000 && currentShow[0].record != 1)
|
||||
) {
|
||||
scheduled_play_line_to_switch.attr("class", "line-to-switch on");
|
||||
scheduled_play_div.addClass("ready");
|
||||
scheduled_play_source = true;
|
||||
} else {
|
||||
scheduled_play_source = false;
|
||||
scheduled_play_line_to_switch.attr("class", "line-to-switch off");
|
||||
scheduled_play_div.removeClass("ready");
|
||||
$('#progress-show').attr("class", "progress-show-error");
|
||||
}
|
||||
$("#progress-show").attr("class", "progress-show");
|
||||
}
|
||||
$('#progress-bar').attr("style", "width:"+songPercentDone+"%");
|
||||
} else {
|
||||
scheduled_play_source = false;
|
||||
scheduled_play_line_to_switch.attr("class", "line-to-switch off");
|
||||
scheduled_play_div.removeClass("ready");
|
||||
$("#progress-show").attr("class", "progress-show-error");
|
||||
}
|
||||
$("#progress-bar").attr("style", "width:" + songPercentDone + "%");
|
||||
}
|
||||
|
||||
function updatePlaybar(){
|
||||
/* Column 0 update */
|
||||
if (previousSong !== null){
|
||||
$('#previous').text(previousSong.name+",");
|
||||
$('#prev-length').text(convertToHHMMSSmm(previousSong.songLengthMs));
|
||||
}else{
|
||||
$('#previous').empty();
|
||||
$('#prev-length').empty();
|
||||
}
|
||||
function updatePlaybar() {
|
||||
/* Column 0 update */
|
||||
if (previousSong !== null) {
|
||||
$("#previous").text(previousSong.name + ",");
|
||||
$("#prev-length").text(convertToHHMMSSmm(previousSong.songLengthMs));
|
||||
} else {
|
||||
$("#previous").empty();
|
||||
$("#prev-length").empty();
|
||||
}
|
||||
|
||||
if (currentSong !== null && !master_dj_on_air && !live_dj_on_air){
|
||||
if (currentSong.record == "1") {
|
||||
$('#current').html("<span style='color:red; font-weight:bold'>"+$.i18n._("Recording:")+"</span>"+currentSong.name+",");
|
||||
} else {
|
||||
$('#current').text(currentSong.name+",");
|
||||
if (currentSong.metadata && currentSong.metadata.artwork_data) {
|
||||
|
||||
var check_current_song = Cookies.get('current_track');
|
||||
var loaded = Cookies.get('loaded');
|
||||
|
||||
if (check_current_song != currentSong.name) {
|
||||
$('#now-playing-artwork_containter').html("<img height='75' width='75' class'artwork' src='"+ currentSong.metadata.artwork_data +"' />");
|
||||
Cookies.remove('current_track');
|
||||
Cookies.set('current_track', currentSong.name);
|
||||
}
|
||||
// makes sure it stays updated with current track if page loads
|
||||
if (loaded != UNIQID) {
|
||||
Cookies.remove('current_track');
|
||||
Cookies.remove('loaded');
|
||||
Cookies.set('loaded', UNIQID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if (master_dj_on_air) {
|
||||
if (showName) {
|
||||
$('#current').html($.i18n._("Current")+": <span style='color:red; font-weight:bold'>"+showName+" - "+$.i18n._("Master Stream")+"</span>");
|
||||
} else {
|
||||
$('#current').html($.i18n._("Current")+": <span style='color:red; font-weight:bold'>"+$.i18n._("Master Stream")+"</span>");
|
||||
}
|
||||
} else if (live_dj_on_air) {
|
||||
if (showName) {
|
||||
$('#current').html($.i18n._("Current")+": <span style='color:red; font-weight:bold'>"+showName+" - "+$.i18n._("Live Stream")+"</span>");
|
||||
} else {
|
||||
$('#current').html($.i18n._("Current")+": <span style='color:red; font-weight:bold'>"+$.i18n._("Live Stream")+"</span>");
|
||||
}
|
||||
} else {
|
||||
$('#current').html($.i18n._("Current")+": <span style='color:red; font-weight:bold'>"+$.i18n._("Nothing Scheduled")+"</span>");
|
||||
}
|
||||
}
|
||||
|
||||
if (nextSong !== null){
|
||||
$('#next').text(nextSong.name+",");
|
||||
$('#next-length').text(convertToHHMMSSmm(nextSong.songLengthMs));
|
||||
}else{
|
||||
$('#next').empty();
|
||||
$('#next-length').empty();
|
||||
}
|
||||
|
||||
$('#start').empty();
|
||||
$('#end').empty();
|
||||
$('#time-elapsed').empty();
|
||||
$('#time-remaining').empty();
|
||||
$('#song-length').empty();
|
||||
if (currentSong !== null && !master_dj_on_air && !live_dj_on_air){
|
||||
$('#start').text(currentSong.starts.split(' ')[1]);
|
||||
$('#end').text(currentSong.ends.split(' ')[1]);
|
||||
|
||||
/* Get rid of the millisecond accuracy so that the second counters for both
|
||||
* show and song change at the same time. */
|
||||
var songStartRoughly = parseInt(Math.round(currentSong.songStartPosixTime/1000), 10)*1000;
|
||||
var songEndRoughly = parseInt(Math.round(currentSong.songEndPosixTime/1000), 10)*1000;
|
||||
|
||||
$('#time-elapsed').text(convertToHHMMSS(approximateServerTime - songStartRoughly));
|
||||
$('#time-remaining').text(convertToHHMMSS(songEndRoughly - approximateServerTime));
|
||||
$('#song-length').text(convertToHHMMSS(currentSong.songLengthMs));
|
||||
}
|
||||
/* Column 1 update */
|
||||
$('#playlist').text($.i18n._("Current Show:"));
|
||||
var recElem = $('.recording-show');
|
||||
if (currentShow.length > 0){
|
||||
$('#playlist').text(currentShow[0].name);
|
||||
(currentShow[0].record == "1") ? recElem.show(): recElem.hide();
|
||||
if (currentSong !== null && !master_dj_on_air && !live_dj_on_air) {
|
||||
if (currentSong.record == "1") {
|
||||
$("#current").html(
|
||||
"<span style='color:red; font-weight:bold'>" +
|
||||
$.i18n._("Recording:") +
|
||||
"</span>" +
|
||||
currentSong.name +
|
||||
","
|
||||
);
|
||||
} else {
|
||||
recElem.hide();
|
||||
}
|
||||
$("#current").text(currentSong.name + ",");
|
||||
if (currentSong.metadata && currentSong.metadata.artwork_data) {
|
||||
var check_current_song = Cookies.get("current_track");
|
||||
var loaded = Cookies.get("loaded");
|
||||
|
||||
$('#show-length').empty();
|
||||
if (currentShow.length > 0){
|
||||
$('#show-length').text(convertDateToHHMM(currentShow[0].showStartPosixTime) + " - " + convertDateToHHMM(currentShow[0].showEndPosixTime));
|
||||
if (check_current_song != currentSong.name) {
|
||||
$("#now-playing-artwork_containter").html(
|
||||
"<img height='75' width='75' class'artwork' src='" +
|
||||
currentSong.metadata.artwork_data +
|
||||
"' />"
|
||||
);
|
||||
Cookies.remove("current_track");
|
||||
Cookies.set("current_track", currentSong.name);
|
||||
}
|
||||
// makes sure it stays updated with current track if page loads
|
||||
if (loaded != UNIQID) {
|
||||
Cookies.remove("current_track");
|
||||
Cookies.remove("loaded");
|
||||
Cookies.set("loaded", UNIQID);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (master_dj_on_air) {
|
||||
if (showName) {
|
||||
$("#current").html(
|
||||
$.i18n._("Current") +
|
||||
": <span style='color:red; font-weight:bold'>" +
|
||||
showName +
|
||||
" - " +
|
||||
$.i18n._("Master Stream") +
|
||||
"</span>"
|
||||
);
|
||||
} else {
|
||||
$("#current").html(
|
||||
$.i18n._("Current") +
|
||||
": <span style='color:red; font-weight:bold'>" +
|
||||
$.i18n._("Master Stream") +
|
||||
"</span>"
|
||||
);
|
||||
}
|
||||
} else if (live_dj_on_air) {
|
||||
if (showName) {
|
||||
$("#current").html(
|
||||
$.i18n._("Current") +
|
||||
": <span style='color:red; font-weight:bold'>" +
|
||||
showName +
|
||||
" - " +
|
||||
$.i18n._("Live Stream") +
|
||||
"</span>"
|
||||
);
|
||||
} else {
|
||||
$("#current").html(
|
||||
$.i18n._("Current") +
|
||||
": <span style='color:red; font-weight:bold'>" +
|
||||
$.i18n._("Live Stream") +
|
||||
"</span>"
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$("#current").html(
|
||||
$.i18n._("Current") +
|
||||
": <span style='color:red; font-weight:bold'>" +
|
||||
$.i18n._("Nothing Scheduled") +
|
||||
"</span>"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/* Column 2 update */
|
||||
$('#time').text(convertDateToHHMMSS(approximateServerTime));
|
||||
if (nextSong !== null) {
|
||||
$("#next").text(nextSong.name + ",");
|
||||
$("#next-length").text(convertToHHMMSSmm(nextSong.songLengthMs));
|
||||
} else {
|
||||
$("#next").empty();
|
||||
$("#next-length").empty();
|
||||
}
|
||||
|
||||
$("#start").empty();
|
||||
$("#end").empty();
|
||||
$("#time-elapsed").empty();
|
||||
$("#time-remaining").empty();
|
||||
$("#song-length").empty();
|
||||
if (currentSong !== null && !master_dj_on_air && !live_dj_on_air) {
|
||||
$("#start").text(currentSong.starts.split(" ")[1]);
|
||||
$("#end").text(currentSong.ends.split(" ")[1]);
|
||||
|
||||
/* Get rid of the millisecond accuracy so that the second counters for both
|
||||
* show and song change at the same time. */
|
||||
var songStartRoughly =
|
||||
parseInt(Math.round(currentSong.songStartPosixTime / 1000), 10) * 1000;
|
||||
var songEndRoughly =
|
||||
parseInt(Math.round(currentSong.songEndPosixTime / 1000), 10) * 1000;
|
||||
|
||||
$("#time-elapsed").text(
|
||||
convertToHHMMSS(approximateServerTime - songStartRoughly)
|
||||
);
|
||||
$("#time-remaining").text(
|
||||
convertToHHMMSS(songEndRoughly - approximateServerTime)
|
||||
);
|
||||
$("#song-length").text(convertToHHMMSS(currentSong.songLengthMs));
|
||||
}
|
||||
/* Column 1 update */
|
||||
$("#playlist").text($.i18n._("Current Show:"));
|
||||
var recElem = $(".recording-show");
|
||||
if (currentShow.length > 0) {
|
||||
$("#playlist").text(currentShow[0].name);
|
||||
currentShow[0].record == "1" ? recElem.show() : recElem.hide();
|
||||
} else {
|
||||
recElem.hide();
|
||||
}
|
||||
|
||||
$("#show-length").empty();
|
||||
if (currentShow.length > 0) {
|
||||
$("#show-length").text(
|
||||
convertDateToHHMM(currentShow[0].showStartPosixTime) +
|
||||
" - " +
|
||||
convertDateToHHMM(currentShow[0].showEndPosixTime)
|
||||
);
|
||||
}
|
||||
|
||||
/* Column 2 update */
|
||||
$("#time").text(convertDateToHHMMSS(approximateServerTime));
|
||||
}
|
||||
|
||||
function calcAdditionalData(currentItem){
|
||||
currentItem.songStartPosixTime = convertDateToPosixTime(currentItem.starts);
|
||||
currentItem.songEndPosixTime = convertDateToPosixTime(currentItem.ends);
|
||||
currentItem.songLengthMs = currentItem.songEndPosixTime - currentItem.songStartPosixTime;
|
||||
function calcAdditionalData(currentItem) {
|
||||
currentItem.songStartPosixTime = convertDateToPosixTime(currentItem.starts);
|
||||
currentItem.songEndPosixTime = convertDateToPosixTime(currentItem.ends);
|
||||
currentItem.songLengthMs =
|
||||
currentItem.songEndPosixTime - currentItem.songStartPosixTime;
|
||||
}
|
||||
|
||||
function calcAdditionalShowData(show){
|
||||
if (show.length > 0){
|
||||
show[0].showStartPosixTime = convertDateToPosixTime(show[0].start_timestamp);
|
||||
show[0].showEndPosixTime = convertDateToPosixTime(show[0].end_timestamp);
|
||||
show[0].showLengthMs = show[0].showEndPosixTime - show[0].showStartPosixTime;
|
||||
}
|
||||
function calcAdditionalShowData(show) {
|
||||
if (show.length > 0) {
|
||||
show[0].showStartPosixTime = convertDateToPosixTime(
|
||||
show[0].start_timestamp
|
||||
);
|
||||
show[0].showEndPosixTime = convertDateToPosixTime(show[0].end_timestamp);
|
||||
show[0].showLengthMs =
|
||||
show[0].showEndPosixTime - show[0].showStartPosixTime;
|
||||
}
|
||||
}
|
||||
|
||||
function calculateTimeToNextSong() {
|
||||
if (approximateServerTime === null) {
|
||||
return;
|
||||
}
|
||||
if (approximateServerTime === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (newSongTimeoutId !== null) {
|
||||
/* We have a previous timeout set, let's unset it */
|
||||
clearTimeout(newSongTimeoutId);
|
||||
newSongTimeoutId = null;
|
||||
}
|
||||
if (newSongTimeoutId !== null) {
|
||||
/* We have a previous timeout set, let's unset it */
|
||||
clearTimeout(newSongTimeoutId);
|
||||
newSongTimeoutId = null;
|
||||
}
|
||||
|
||||
var diff = nextSong.songStartPosixTime - approximateServerTime;
|
||||
if (diff < 0) diff=0;
|
||||
nextSongPrepare = false;
|
||||
newSongTimeoutId= setTimeout(newSongStart, diff);
|
||||
var diff = nextSong.songStartPosixTime - approximateServerTime;
|
||||
if (diff < 0) diff = 0;
|
||||
nextSongPrepare = false;
|
||||
newSongTimeoutId = setTimeout(newSongStart, diff);
|
||||
}
|
||||
|
||||
function calculateTimeToNextShow() {
|
||||
if (approximateServerTime === null) {
|
||||
return;
|
||||
}
|
||||
if (approximateServerTime === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (newShowTimeoutId !== null) {
|
||||
/* We have a previous timeout set, let's unset it */
|
||||
clearTimeout(newShowTimeoutId);
|
||||
newShowTimeoutId = null;
|
||||
}
|
||||
if (newShowTimeoutId !== null) {
|
||||
/* We have a previous timeout set, let's unset it */
|
||||
clearTimeout(newShowTimeoutId);
|
||||
newShowTimeoutId = null;
|
||||
}
|
||||
|
||||
var diff = nextShow[0].showStartPosixTime - approximateServerTime;
|
||||
if (diff < 0) diff=0;
|
||||
nextShowPrepare = false;
|
||||
newShowTimeoutId= setTimeout(nextShowStart, diff);
|
||||
var diff = nextShow[0].showStartPosixTime - approximateServerTime;
|
||||
if (diff < 0) diff = 0;
|
||||
nextShowPrepare = false;
|
||||
newShowTimeoutId = setTimeout(nextShowStart, diff);
|
||||
}
|
||||
|
||||
function parseItems(obj){
|
||||
previousSong = obj.previous;
|
||||
currentSong = obj.current;
|
||||
nextSong = obj.next;
|
||||
function parseItems(obj) {
|
||||
previousSong = obj.previous;
|
||||
currentSong = obj.current;
|
||||
nextSong = obj.next;
|
||||
|
||||
if (previousSong !== null) {
|
||||
calcAdditionalData(previousSong);
|
||||
}
|
||||
if (currentSong !== null) {
|
||||
calcAdditionalData(currentSong);
|
||||
}
|
||||
if (nextSong !== null) {
|
||||
calcAdditionalData(nextSong);
|
||||
calculateTimeToNextSong();
|
||||
}
|
||||
if (previousSong !== null) {
|
||||
calcAdditionalData(previousSong);
|
||||
}
|
||||
if (currentSong !== null) {
|
||||
calcAdditionalData(currentSong);
|
||||
}
|
||||
if (nextSong !== null) {
|
||||
calcAdditionalData(nextSong);
|
||||
calculateTimeToNextSong();
|
||||
}
|
||||
|
||||
currentShow = new Array();
|
||||
if (obj.currentShow.length > 0) {
|
||||
calcAdditionalShowData(obj.currentShow);
|
||||
currentShow = obj.currentShow;
|
||||
}
|
||||
currentShow = new Array();
|
||||
if (obj.currentShow.length > 0) {
|
||||
calcAdditionalShowData(obj.currentShow);
|
||||
currentShow = obj.currentShow;
|
||||
}
|
||||
|
||||
nextShow = new Array();
|
||||
if (obj.nextShow.length > 0) {
|
||||
calcAdditionalShowData(obj.nextShow);
|
||||
nextShow = obj.nextShow;
|
||||
calculateTimeToNextShow();
|
||||
}
|
||||
nextShow = new Array();
|
||||
if (obj.nextShow.length > 0) {
|
||||
calcAdditionalShowData(obj.nextShow);
|
||||
nextShow = obj.nextShow;
|
||||
calculateTimeToNextShow();
|
||||
}
|
||||
|
||||
|
||||
var schedulePosixTime = convertDateToPosixTime(obj.schedulerTime);
|
||||
var date = new Date();
|
||||
localRemoteTimeOffset = date.getTime() - schedulePosixTime;
|
||||
var schedulePosixTime = convertDateToPosixTime(obj.schedulerTime);
|
||||
var date = new Date();
|
||||
localRemoteTimeOffset = date.getTime() - schedulePosixTime;
|
||||
}
|
||||
|
||||
function parseSourceStatus(obj){
|
||||
var live_div = $("#live_dj_div");
|
||||
var master_div = $("#master_dj_div");
|
||||
var live_li = live_div.parent();
|
||||
var master_li = master_div.parent();
|
||||
function parseSourceStatus(obj) {
|
||||
var live_div = $("#live_dj_div");
|
||||
var master_div = $("#master_dj_div");
|
||||
var live_li = live_div.parent();
|
||||
var master_li = master_div.parent();
|
||||
|
||||
if(obj.live_dj_source == false){
|
||||
live_li.find(".line-to-switch").attr("class", "line-to-switch off");
|
||||
live_div.removeClass("ready");
|
||||
}else{
|
||||
live_li.find(".line-to-switch").attr("class", "line-to-switch on");
|
||||
live_div.addClass("ready");
|
||||
}
|
||||
if (obj.live_dj_source == false) {
|
||||
live_li.find(".line-to-switch").attr("class", "line-to-switch off");
|
||||
live_div.removeClass("ready");
|
||||
} else {
|
||||
live_li.find(".line-to-switch").attr("class", "line-to-switch on");
|
||||
live_div.addClass("ready");
|
||||
}
|
||||
|
||||
if(obj.master_dj_source == false){
|
||||
master_li.find(".line-to-switch").attr("class", "line-to-switch off");
|
||||
master_div.removeClass("ready");
|
||||
}else{
|
||||
master_li.find(".line-to-switch").attr("class", "line-to-switch on");
|
||||
master_div.addClass("ready");
|
||||
}
|
||||
if (obj.master_dj_source == false) {
|
||||
master_li.find(".line-to-switch").attr("class", "line-to-switch off");
|
||||
master_div.removeClass("ready");
|
||||
} else {
|
||||
master_li.find(".line-to-switch").attr("class", "line-to-switch on");
|
||||
master_div.addClass("ready");
|
||||
}
|
||||
}
|
||||
|
||||
function parseSwitchStatus(obj){
|
||||
function parseSwitchStatus(obj) {
|
||||
if (obj.live_dj_source == "on") {
|
||||
live_dj_on_air = true;
|
||||
} else {
|
||||
live_dj_on_air = false;
|
||||
}
|
||||
|
||||
if(obj.live_dj_source == "on"){
|
||||
live_dj_on_air = true;
|
||||
}else{
|
||||
live_dj_on_air = false;
|
||||
}
|
||||
if (obj.master_dj_source == "on") {
|
||||
master_dj_on_air = true;
|
||||
} else {
|
||||
master_dj_on_air = false;
|
||||
}
|
||||
|
||||
if(obj.master_dj_source == "on"){
|
||||
master_dj_on_air = true;
|
||||
}else{
|
||||
master_dj_on_air = false;
|
||||
}
|
||||
if (obj.scheduled_play == "on") {
|
||||
scheduled_play_on_air = true;
|
||||
} else {
|
||||
scheduled_play_on_air = false;
|
||||
}
|
||||
|
||||
if(obj.scheduled_play == "on"){
|
||||
scheduled_play_on_air = true;
|
||||
}else{
|
||||
scheduled_play_on_air = false;
|
||||
}
|
||||
var scheduled_play_switch = $("#scheduled_play.source-switch-button");
|
||||
var live_dj_switch = $("#live_dj.source-switch-button");
|
||||
var master_dj_switch = $("#master_dj.source-switch-button");
|
||||
|
||||
var scheduled_play_switch = $("#scheduled_play.source-switch-button");
|
||||
var live_dj_switch = $("#live_dj.source-switch-button");
|
||||
var master_dj_switch = $("#master_dj.source-switch-button");
|
||||
scheduled_play_switch.find("span").html(obj.scheduled_play);
|
||||
if (scheduled_play_on_air) {
|
||||
scheduled_play_switch.addClass("active");
|
||||
} else {
|
||||
scheduled_play_switch.removeClass("active");
|
||||
}
|
||||
|
||||
scheduled_play_switch.find("span").html(obj.scheduled_play);
|
||||
if(scheduled_play_on_air){
|
||||
scheduled_play_switch.addClass("active");
|
||||
}else{
|
||||
scheduled_play_switch.removeClass("active");
|
||||
}
|
||||
live_dj_switch.find("span").html(obj.live_dj_source);
|
||||
if (live_dj_on_air) {
|
||||
live_dj_switch.addClass("active");
|
||||
} else {
|
||||
live_dj_switch.removeClass("active");
|
||||
}
|
||||
|
||||
live_dj_switch.find("span").html(obj.live_dj_source);
|
||||
if(live_dj_on_air){
|
||||
live_dj_switch.addClass("active");
|
||||
}else{
|
||||
live_dj_switch.removeClass("active");
|
||||
}
|
||||
|
||||
master_dj_switch.find("span").html(obj.master_dj_source)
|
||||
if(master_dj_on_air){
|
||||
master_dj_switch.addClass("active");
|
||||
}else{
|
||||
master_dj_switch.removeClass("active");
|
||||
}
|
||||
master_dj_switch.find("span").html(obj.master_dj_source);
|
||||
if (master_dj_on_air) {
|
||||
master_dj_switch.addClass("active");
|
||||
} else {
|
||||
master_dj_switch.removeClass("active");
|
||||
}
|
||||
}
|
||||
|
||||
function controlOnAirLight(){
|
||||
if ((scheduled_play_on_air && scheduled_play_source) || live_dj_on_air || master_dj_on_air) {
|
||||
$('#on-air-info').attr("class", "on-air-info on");
|
||||
onAirOffIterations = 0;
|
||||
} else if (onAirOffIterations < 20) {
|
||||
//if less than 4 seconds have gone by (< 20 executions of this function)
|
||||
//then keep the ON-AIR light on. Only after at least 3 seconds have gone by,
|
||||
//should we be allowed to turn it off. This is to stop the light from temporarily turning
|
||||
//off between tracks: CC-3725
|
||||
onAirOffIterations++;
|
||||
} else {
|
||||
$('#on-air-info').attr("class", "on-air-info off");
|
||||
}
|
||||
function controlOnAirLight() {
|
||||
if (
|
||||
(scheduled_play_on_air && scheduled_play_source) ||
|
||||
live_dj_on_air ||
|
||||
master_dj_on_air
|
||||
) {
|
||||
$("#on-air-info").attr("class", "on-air-info on");
|
||||
onAirOffIterations = 0;
|
||||
} else if (onAirOffIterations < 20) {
|
||||
//if less than 4 seconds have gone by (< 20 executions of this function)
|
||||
//then keep the ON-AIR light on. Only after at least 3 seconds have gone by,
|
||||
//should we be allowed to turn it off. This is to stop the light from temporarily turning
|
||||
//off between tracks: CC-3725
|
||||
onAirOffIterations++;
|
||||
} else {
|
||||
$("#on-air-info").attr("class", "on-air-info off");
|
||||
}
|
||||
}
|
||||
|
||||
function controlSwitchLight(){
|
||||
var live_li= $("#live_dj_div").parent();
|
||||
var master_li = $("#master_dj_div").parent();
|
||||
var scheduled_play_li = $("#scheduled_play_div").parent();
|
||||
function controlSwitchLight() {
|
||||
var live_li = $("#live_dj_div").parent();
|
||||
var master_li = $("#master_dj_div").parent();
|
||||
var scheduled_play_li = $("#scheduled_play_div").parent();
|
||||
|
||||
if((scheduled_play_on_air && scheduled_play_source) && !live_dj_on_air && !master_dj_on_air){
|
||||
scheduled_play_li.find(".line-to-on-air").attr("class", "line-to-on-air on");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
}else if(live_dj_on_air && !master_dj_on_air){
|
||||
scheduled_play_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air on");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
}else if(master_dj_on_air){
|
||||
scheduled_play_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air on");
|
||||
}else{
|
||||
scheduled_play_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
}
|
||||
if (
|
||||
scheduled_play_on_air &&
|
||||
scheduled_play_source &&
|
||||
!live_dj_on_air &&
|
||||
!master_dj_on_air
|
||||
) {
|
||||
scheduled_play_li
|
||||
.find(".line-to-on-air")
|
||||
.attr("class", "line-to-on-air on");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
} else if (live_dj_on_air && !master_dj_on_air) {
|
||||
scheduled_play_li
|
||||
.find(".line-to-on-air")
|
||||
.attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air on");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
} else if (master_dj_on_air) {
|
||||
scheduled_play_li
|
||||
.find(".line-to-on-air")
|
||||
.attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air on");
|
||||
} else {
|
||||
scheduled_play_li
|
||||
.find(".line-to-on-air")
|
||||
.attr("class", "line-to-on-air off");
|
||||
live_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
master_li.find(".line-to-on-air").attr("class", "line-to-on-air off");
|
||||
}
|
||||
}
|
||||
|
||||
function getScheduleFromServer(){
|
||||
$.ajax({ url: baseUrl+"Schedule/get-current-playlist/format/json",
|
||||
dataType:"json",
|
||||
success:function(data){
|
||||
parseItems(data.entries);
|
||||
parseSourceStatus(data.source_status);
|
||||
parseSwitchStatus(data.switch_status);
|
||||
showName = data.show_name;
|
||||
}, error:function(jqXHR, textStatus, errorThrown){}});
|
||||
function getScheduleFromServer() {
|
||||
$.ajax({
|
||||
url: baseUrl + "Schedule/get-current-playlist/format/json",
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
parseItems(data.entries);
|
||||
parseSourceStatus(data.source_status);
|
||||
parseSwitchStatus(data.switch_status);
|
||||
showName = data.show_name;
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {},
|
||||
});
|
||||
}
|
||||
|
||||
function setupQtip(){
|
||||
var qtipElem = $('#about-link');
|
||||
function setupQtip() {
|
||||
var qtipElem = $("#about-link");
|
||||
|
||||
if (qtipElem.length > 0){
|
||||
qtipElem.qtip({
|
||||
content: $('#about-txt').html(),
|
||||
show: 'mouseover',
|
||||
hide: { when: 'mouseout', fixed: true },
|
||||
position: {
|
||||
corner: {
|
||||
target: 'center',
|
||||
tooltip: 'topRight'
|
||||
}
|
||||
},
|
||||
style: {
|
||||
border: {
|
||||
width: 0,
|
||||
radius: 4
|
||||
},
|
||||
name: 'light' // Use the default light style
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setSwitchListener(ele){
|
||||
var sourcename = $(ele).attr('id');
|
||||
var status_span = $(ele).find("span");
|
||||
var status = status_span.html();
|
||||
$.get(baseUrl+"Dashboard/switch-source/format/json/sourcename/"+sourcename+"/status/"+status, function(data){
|
||||
if(data.error){
|
||||
alert(data.error);
|
||||
}else{
|
||||
if(data.status == "ON"){
|
||||
$(ele).addClass("active");
|
||||
}else{
|
||||
$(ele).removeClass("active");
|
||||
}
|
||||
status_span.html(data.status);
|
||||
}
|
||||
if (qtipElem.length > 0) {
|
||||
qtipElem.qtip({
|
||||
content: $("#about-txt").html(),
|
||||
show: "mouseover",
|
||||
hide: { when: "mouseout", fixed: true },
|
||||
position: {
|
||||
corner: {
|
||||
target: "center",
|
||||
tooltip: "topRight",
|
||||
},
|
||||
},
|
||||
style: {
|
||||
border: {
|
||||
width: 0,
|
||||
radius: 4,
|
||||
},
|
||||
name: "light", // Use the default light style
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function kickSource(ele){
|
||||
var sourcename = $(ele).attr('id');
|
||||
|
||||
$.get(baseUrl+"Dashboard/disconnect-source/format/json/sourcename/"+sourcename, function(data){
|
||||
if(data.error){
|
||||
alert(data.error);
|
||||
function setSwitchListener(ele) {
|
||||
var sourcename = $(ele).attr("id");
|
||||
var status_span = $(ele).find("span");
|
||||
var status = status_span.html();
|
||||
$.get(
|
||||
baseUrl +
|
||||
"Dashboard/switch-source/format/json/sourcename/" +
|
||||
sourcename +
|
||||
"/status/" +
|
||||
status,
|
||||
function (data) {
|
||||
if (data.error) {
|
||||
alert(data.error);
|
||||
} else {
|
||||
if (data.status == "ON") {
|
||||
$(ele).addClass("active");
|
||||
} else {
|
||||
$(ele).removeClass("active");
|
||||
}
|
||||
});
|
||||
status_span.html(data.status);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function kickSource(ele) {
|
||||
var sourcename = $(ele).attr("id");
|
||||
|
||||
$.get(
|
||||
baseUrl +
|
||||
"Dashboard/disconnect-source/format/json/sourcename/" +
|
||||
sourcename,
|
||||
function (data) {
|
||||
if (data.error) {
|
||||
alert(data.error);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
var stream_window = null;
|
||||
|
||||
function init() {
|
||||
//begin producer "thread"
|
||||
setInterval(getScheduleFromServer, serverUpdateInterval);
|
||||
//begin producer "thread"
|
||||
setInterval(getScheduleFromServer, serverUpdateInterval);
|
||||
|
||||
//begin consumer "thread"
|
||||
secondsTimer();
|
||||
//begin consumer "thread"
|
||||
secondsTimer();
|
||||
|
||||
setupQtip();
|
||||
setupQtip();
|
||||
|
||||
$('.listen-control-button').click(function() {
|
||||
if (stream_window == null || stream_window.closed)
|
||||
stream_window=window.open(baseUrl+"Dashboard/stream-player", 'name', 'width=400,height=158');
|
||||
stream_window.focus();
|
||||
return false;
|
||||
});
|
||||
$(".listen-control-button").click(function () {
|
||||
if (stream_window == null || stream_window.closed)
|
||||
stream_window = window.open(
|
||||
baseUrl + "Dashboard/stream-player",
|
||||
"name",
|
||||
"width=400,height=158"
|
||||
);
|
||||
stream_window.focus();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
/* We never retrieve the user's password from the db
|
||||
|
@ -491,40 +586,39 @@ function init() {
|
|||
* field. Therefore, we fill the password field with 6 x's
|
||||
*/
|
||||
function setCurrentUserPseudoPassword() {
|
||||
$('#cu_password').val("xxxxxx");
|
||||
$('#cu_passwordVerify').val("xxxxxx");
|
||||
$("#cu_password").val("xxxxxx");
|
||||
$("#cu_passwordVerify").val("xxxxxx");
|
||||
}
|
||||
|
||||
/*$(window).resize(function() {
|
||||
*//* If we don't do this, the menu can stay hidden after resizing *//*
|
||||
*/ /* If we don't do this, the menu can stay hidden after resizing */ /*
|
||||
if ($(this).width() > 970) {
|
||||
$("#nav .responsive-menu").show();
|
||||
}
|
||||
});*/
|
||||
|
||||
$(document).ready(function() {
|
||||
if ($('#master-panel').length > 0)
|
||||
init();
|
||||
if ($('.errors').length === 0) {
|
||||
setCurrentUserPseudoPassword();
|
||||
}
|
||||
$(document).ready(function () {
|
||||
if ($("#master-panel").length > 0) init();
|
||||
if ($(".errors").length === 0) {
|
||||
setCurrentUserPseudoPassword();
|
||||
}
|
||||
|
||||
$('body').on('click','#current-user', function() {
|
||||
$.ajax({
|
||||
url: baseUrl+'user/edit-user/format/json'
|
||||
});
|
||||
$("body").on("click", "#current-user", function () {
|
||||
$.ajax({
|
||||
url: baseUrl + "user/edit-user/format/json",
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '#cu_save_user', function() {
|
||||
Cookies.set('airtime_locale', $('#cu_locale').val(), {path: '/'});
|
||||
});
|
||||
$("body").on("click", "#cu_save_user", function () {
|
||||
Cookies.set("airtime_locale", $("#cu_locale").val(), { path: "/" });
|
||||
});
|
||||
|
||||
// When the 'Listen' button is clicked we set the width
|
||||
// of the share button to the width of the 'Live Stream'
|
||||
// text. This differs depending on the language setting
|
||||
$('#popup-link').css('width', $('.jp-container h1').css('width'));
|
||||
// When the 'Listen' button is clicked we set the width
|
||||
// of the share button to the width of the 'Live Stream'
|
||||
// text. This differs depending on the language setting
|
||||
$("#popup-link").css("width", $(".jp-container h1").css("width"));
|
||||
|
||||
/*$('#menu-btn').click(function() {
|
||||
/*$('#menu-btn').click(function() {
|
||||
$('#nav .responsive-menu').slideToggle();
|
||||
});*/
|
||||
});
|
||||
|
|
|
@ -1,232 +1,213 @@
|
|||
/* function to create popup window */
|
||||
function popup(mylink){
|
||||
if (!window.focus)
|
||||
return true;
|
||||
var href;
|
||||
if (typeof(mylink) == 'string')
|
||||
href=mylink;
|
||||
else
|
||||
href=mylink.href;
|
||||
window.open(href, "player", 'width=300,height=100,scrollbars=yes');
|
||||
return false;
|
||||
function popup(mylink) {
|
||||
if (!window.focus) return true;
|
||||
var href;
|
||||
if (typeof mylink == "string") href = mylink;
|
||||
else href = mylink.href;
|
||||
window.open(href, "player", "width=300,height=100,scrollbars=yes");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Take a string representing a date in the format 2012-04-25 and return
|
||||
* a javascript date object representing this date. */
|
||||
function getDateFromString(time){
|
||||
var date = time.split("-");
|
||||
function getDateFromString(time) {
|
||||
var date = time.split("-");
|
||||
|
||||
if (date.length != 3){
|
||||
return null;
|
||||
}
|
||||
if (date.length != 3) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var year = parseInt(date[0], 10);
|
||||
var month = parseInt(date[1], 10) -1;
|
||||
var day = parseInt(date[2], 10);
|
||||
var year = parseInt(date[0], 10);
|
||||
var month = parseInt(date[1], 10) - 1;
|
||||
var day = parseInt(date[2], 10);
|
||||
|
||||
if (isNaN(year) || isNaN(month) || isNaN(day)){
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Date(year, month, day);
|
||||
if (isNaN(year) || isNaN(month) || isNaN(day)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Date(year, month, day);
|
||||
}
|
||||
|
||||
function convertSecondsToDaysHoursMinutesSeconds(seconds){
|
||||
if (seconds < 0)
|
||||
seconds = 0;
|
||||
function convertSecondsToDaysHoursMinutesSeconds(seconds) {
|
||||
if (seconds < 0) seconds = 0;
|
||||
|
||||
seconds = parseInt(seconds, 10);
|
||||
seconds = parseInt(seconds, 10);
|
||||
|
||||
var days = parseInt(seconds / 86400);
|
||||
seconds -= days*86400;
|
||||
var days = parseInt(seconds / 86400);
|
||||
seconds -= days * 86400;
|
||||
|
||||
var hours = parseInt(seconds / 3600);
|
||||
seconds -= hours*3600;
|
||||
var hours = parseInt(seconds / 3600);
|
||||
seconds -= hours * 3600;
|
||||
|
||||
var minutes = parseInt(seconds / 60);
|
||||
seconds -= minutes*60;
|
||||
var minutes = parseInt(seconds / 60);
|
||||
seconds -= minutes * 60;
|
||||
|
||||
return {days:days, hours:hours, minutes:minutes, seconds:seconds};
|
||||
return { days: days, hours: hours, minutes: minutes, seconds: seconds };
|
||||
}
|
||||
|
||||
/* Takes an input parameter of milliseconds and converts these into
|
||||
* the format HH:MM:SS */
|
||||
function convertToHHMMSS(timeInMS){
|
||||
var time = parseInt(timeInMS);
|
||||
function convertToHHMMSS(timeInMS) {
|
||||
var time = parseInt(timeInMS);
|
||||
|
||||
var hours = parseInt(time / 3600000);
|
||||
time -= 3600000*hours;
|
||||
var hours = parseInt(time / 3600000);
|
||||
time -= 3600000 * hours;
|
||||
|
||||
var minutes = parseInt(time / 60000);
|
||||
time -= 60000*minutes;
|
||||
var minutes = parseInt(time / 60000);
|
||||
time -= 60000 * minutes;
|
||||
|
||||
var seconds = parseInt(time / 1000);
|
||||
var seconds = parseInt(time / 1000);
|
||||
|
||||
hours = hours.toString();
|
||||
minutes = minutes.toString();
|
||||
seconds = seconds.toString();
|
||||
hours = hours.toString();
|
||||
minutes = minutes.toString();
|
||||
seconds = seconds.toString();
|
||||
|
||||
if (hours.length == 1)
|
||||
hours = "0" + hours;
|
||||
if (minutes.length == 1)
|
||||
minutes = "0" + minutes;
|
||||
if (seconds.length == 1)
|
||||
seconds = "0" + seconds;
|
||||
return hours + ":" + minutes + ":" + seconds;
|
||||
if (hours.length == 1) hours = "0" + hours;
|
||||
if (minutes.length == 1) minutes = "0" + minutes;
|
||||
if (seconds.length == 1) seconds = "0" + seconds;
|
||||
return hours + ":" + minutes + ":" + seconds;
|
||||
}
|
||||
|
||||
function convertToHHMMSSmm(timeInMS){
|
||||
var time = parseInt(timeInMS);
|
||||
function convertToHHMMSSmm(timeInMS) {
|
||||
var time = parseInt(timeInMS);
|
||||
|
||||
var hours = parseInt(time / 3600000);
|
||||
time -= 3600000*hours;
|
||||
var hours = parseInt(time / 3600000);
|
||||
time -= 3600000 * hours;
|
||||
|
||||
var minutes = parseInt(time / 60000);
|
||||
time -= 60000*minutes;
|
||||
var minutes = parseInt(time / 60000);
|
||||
time -= 60000 * minutes;
|
||||
|
||||
var seconds = parseInt(time / 1000);
|
||||
time -= 1000*seconds;
|
||||
var seconds = parseInt(time / 1000);
|
||||
time -= 1000 * seconds;
|
||||
|
||||
var ms = parseInt(time);
|
||||
var ms = parseInt(time);
|
||||
|
||||
hours = hours.toString();
|
||||
minutes = minutes.toString();
|
||||
seconds = seconds.toString();
|
||||
ms = ms.toString();
|
||||
hours = hours.toString();
|
||||
minutes = minutes.toString();
|
||||
seconds = seconds.toString();
|
||||
ms = ms.toString();
|
||||
|
||||
if (hours.length == 1)
|
||||
hours = "0" + hours;
|
||||
if (minutes.length == 1)
|
||||
minutes = "0" + minutes;
|
||||
if (seconds.length == 1)
|
||||
seconds = "0" + seconds;
|
||||
if (hours.length == 1) hours = "0" + hours;
|
||||
if (minutes.length == 1) minutes = "0" + minutes;
|
||||
if (seconds.length == 1) seconds = "0" + seconds;
|
||||
|
||||
if (ms.length == 3)
|
||||
ms = ms.substring(0, 2);
|
||||
else if (ms.length == 2)
|
||||
ms = "0" + ms.substring(0,1);
|
||||
else if (ms.length == 1)
|
||||
ms = "00";
|
||||
if (ms.length == 3) ms = ms.substring(0, 2);
|
||||
else if (ms.length == 2) ms = "0" + ms.substring(0, 1);
|
||||
else if (ms.length == 1) ms = "00";
|
||||
|
||||
if (hours == "00")
|
||||
return minutes + ":" + seconds + "." + ms;
|
||||
else
|
||||
return hours + ":" + minutes + ":" + seconds+ "." + ms;
|
||||
if (hours == "00") return minutes + ":" + seconds + "." + ms;
|
||||
else return hours + ":" + minutes + ":" + seconds + "." + ms;
|
||||
}
|
||||
|
||||
function convertDateToHHMM(epochTime){
|
||||
var d = new Date(epochTime);
|
||||
function convertDateToHHMM(epochTime) {
|
||||
var d = new Date(epochTime);
|
||||
|
||||
var hours = d.getUTCHours().toString();
|
||||
var minutes = d.getUTCMinutes().toString();
|
||||
var hours = d.getUTCHours().toString();
|
||||
var minutes = d.getUTCMinutes().toString();
|
||||
|
||||
if (hours.length == 1)
|
||||
hours = "0" + hours;
|
||||
if (minutes.length == 1)
|
||||
minutes = "0" + minutes;
|
||||
if (hours.length == 1) hours = "0" + hours;
|
||||
if (minutes.length == 1) minutes = "0" + minutes;
|
||||
|
||||
return hours + ":" + minutes;
|
||||
return hours + ":" + minutes;
|
||||
}
|
||||
|
||||
function convertDateToHHMMSS(epochTime){
|
||||
var d = new Date(epochTime);
|
||||
function convertDateToHHMMSS(epochTime) {
|
||||
var d = new Date(epochTime);
|
||||
|
||||
var hours = d.getUTCHours().toString();
|
||||
var minutes = d.getUTCMinutes().toString();
|
||||
var seconds = d.getUTCSeconds().toString();
|
||||
var hours = d.getUTCHours().toString();
|
||||
var minutes = d.getUTCMinutes().toString();
|
||||
var seconds = d.getUTCSeconds().toString();
|
||||
|
||||
if (hours.length == 1)
|
||||
hours = "0" + hours;
|
||||
if (minutes.length == 1)
|
||||
minutes = "0" + minutes;
|
||||
if (seconds.length == 1)
|
||||
seconds = "0" + seconds;
|
||||
return hours + ":" + minutes + ":" + seconds;
|
||||
if (hours.length == 1) hours = "0" + hours;
|
||||
if (minutes.length == 1) minutes = "0" + minutes;
|
||||
if (seconds.length == 1) seconds = "0" + seconds;
|
||||
return hours + ":" + minutes + ":" + seconds;
|
||||
}
|
||||
|
||||
/* Takes in a string of format similar to 2011-02-07 02:59:57,
|
||||
* and converts this to epoch/posix time. */
|
||||
function convertDateToPosixTime(s){
|
||||
function convertDateToPosixTime(s) {
|
||||
var datetime = s.split(" ");
|
||||
|
||||
var datetime = s.split(" ");
|
||||
var date = datetime[0].split("-");
|
||||
var time = datetime[1].split(":");
|
||||
|
||||
var date = datetime[0].split("-");
|
||||
var time = datetime[1].split(":");
|
||||
var year = date[0];
|
||||
var month = date[1];
|
||||
var day = date[2];
|
||||
var hour = time[0];
|
||||
var minute = time[1];
|
||||
var sec = 0;
|
||||
var msec = 0;
|
||||
|
||||
var year = date[0];
|
||||
var month = date[1];
|
||||
var day = date[2];
|
||||
var hour = time[0];
|
||||
var minute = time[1];
|
||||
var sec = 0;
|
||||
var msec = 0;
|
||||
if (time[2].indexOf(".") != -1) {
|
||||
var temp = time[2].split(".");
|
||||
sec = temp[0];
|
||||
msec = temp[1];
|
||||
} else sec = time[2];
|
||||
|
||||
if (time[2].indexOf(".") != -1){
|
||||
var temp = time[2].split(".");
|
||||
sec = temp[0];
|
||||
msec = temp[1];
|
||||
} else
|
||||
sec = time[2];
|
||||
|
||||
return Date.UTC(year, month-1, day, hour, minute, sec, msec);
|
||||
return Date.UTC(year, month - 1, day, hour, minute, sec, msec);
|
||||
}
|
||||
|
||||
function getFileExt(filename){
|
||||
return filename.split('.').pop();
|
||||
function getFileExt(filename) {
|
||||
return filename.split(".").pop();
|
||||
}
|
||||
|
||||
function resizeImg(ele, targetWidth, targetHeight){
|
||||
var img = $(ele);
|
||||
function resizeImg(ele, targetWidth, targetHeight) {
|
||||
var img = $(ele);
|
||||
|
||||
var width = ele.width;
|
||||
var height = ele.height;
|
||||
var width = ele.width;
|
||||
var height = ele.height;
|
||||
|
||||
// resize img proportionaly
|
||||
if( width > height && width > targetWidth){
|
||||
var ratio = targetWidth/width;
|
||||
img.css("width", targetHeight+"px");
|
||||
var newHeight = height * ratio;
|
||||
img.css("height", newHeight+"px");
|
||||
}else if( width < height && height > targetHeight){
|
||||
var ratio = targetHeight/height;
|
||||
img.css("height", targetHeight+"px");
|
||||
var newWidth = width * ratio;
|
||||
img.css("width", newWidth+"px");
|
||||
}else if( width == height && width > targetWidth){
|
||||
img.css("height", targetHeight+"px");
|
||||
img.css("width", targetWidth+"px" );
|
||||
}
|
||||
// resize img proportionaly
|
||||
if (width > height && width > targetWidth) {
|
||||
var ratio = targetWidth / width;
|
||||
img.css("width", targetHeight + "px");
|
||||
var newHeight = height * ratio;
|
||||
img.css("height", newHeight + "px");
|
||||
} else if (width < height && height > targetHeight) {
|
||||
var ratio = targetHeight / height;
|
||||
img.css("height", targetHeight + "px");
|
||||
var newWidth = width * ratio;
|
||||
img.css("width", newWidth + "px");
|
||||
} else if (width == height && width > targetWidth) {
|
||||
img.css("height", targetHeight + "px");
|
||||
img.css("width", targetWidth + "px");
|
||||
}
|
||||
}
|
||||
|
||||
function resizeToMaxHeight(ele, targetHeight){
|
||||
var img = $(ele);
|
||||
function resizeToMaxHeight(ele, targetHeight) {
|
||||
var img = $(ele);
|
||||
|
||||
var width = ele.width;
|
||||
var height = ele.height;
|
||||
var width = ele.width;
|
||||
var height = ele.height;
|
||||
|
||||
// resize img proportionaly
|
||||
if( height > targetHeight){
|
||||
var ratio = targetHeight/height;
|
||||
img.css("height", targetHeight+"px");
|
||||
var newWidth = width * ratio;
|
||||
img.css("width", newWidth+"px");
|
||||
}
|
||||
// resize img proportionaly
|
||||
if (height > targetHeight) {
|
||||
var ratio = targetHeight / height;
|
||||
img.css("height", targetHeight + "px");
|
||||
var newWidth = width * ratio;
|
||||
img.css("width", newWidth + "px");
|
||||
}
|
||||
}
|
||||
|
||||
/* From http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/#7557433 */
|
||||
function isInView(el) {
|
||||
//special bonus for those using jQuery
|
||||
if (typeof jQuery === "function" && el instanceof jQuery) {
|
||||
el = el[0];
|
||||
}
|
||||
//special bonus for those using jQuery
|
||||
if (typeof jQuery === "function" && el instanceof jQuery) {
|
||||
el = el[0];
|
||||
}
|
||||
|
||||
var rect = el.getBoundingClientRect();
|
||||
var rect = el.getBoundingClientRect();
|
||||
|
||||
return (
|
||||
return (
|
||||
rect.top >= 0 &&
|
||||
rect.left >= 0 &&
|
||||
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */
|
||||
rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */
|
||||
);
|
||||
rect.bottom <=
|
||||
(window.innerHeight ||
|
||||
document.documentElement.clientHeight) /*or $(window).height() */ &&
|
||||
rect.right <=
|
||||
(window.innerWidth ||
|
||||
document.documentElement.clientWidth) /*or $(window).width() */
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,149 +2,165 @@
|
|||
* Get the tooltip message to be displayed
|
||||
*/
|
||||
function getContent() {
|
||||
var link = getLatestLink();
|
||||
var hasPatch = getHasPatch();
|
||||
var hasMinor = getHasMinor();
|
||||
var hasMajor = getHasMajor();
|
||||
var hasMultiMajor = getHasMultiMajor();
|
||||
var isPreRelease = getIsPreRelease();
|
||||
var link = getLatestLink();
|
||||
var hasPatch = getHasPatch();
|
||||
var hasMinor = getHasMinor();
|
||||
var hasMajor = getHasMajor();
|
||||
var hasMultiMajor = getHasMultiMajor();
|
||||
var isPreRelease = getIsPreRelease();
|
||||
|
||||
var msg = "";
|
||||
// See file legacy/application/views/helpers/VersionNotify.php for more info
|
||||
if(isUpToDate()) {
|
||||
msg = $.i18n._("You are running the latest version");
|
||||
} else {
|
||||
msg = $.i18n._("New version available: ") + link + '<ul>';
|
||||
if (isPreRelease) {
|
||||
msg += '<li>'+$.i18n._("You have a pre-release version of LibreTime intalled.");
|
||||
}
|
||||
if (hasPatch) {
|
||||
msg += '<li>'+$.i18n._("A patch update for your LibreTime installation is available.");
|
||||
}
|
||||
if (hasMinor) {
|
||||
msg += '<li>'+$.i18n._("A feature update for your LibreTime installation is available.");
|
||||
}
|
||||
if (hasMajor && !hasMultiMajor) {
|
||||
msg += '<li>'+$.i18n._("A major update for your LibreTime installation is available.");
|
||||
}
|
||||
if (hasMultiMajor) {
|
||||
msg += '<li>'+$.i18n._("Multiple major updates for LibreTime installation are available. Please upgrade as soon as possible.");
|
||||
}
|
||||
msg += '</ul>';
|
||||
var msg = "";
|
||||
// See file legacy/application/views/helpers/VersionNotify.php for more info
|
||||
if (isUpToDate()) {
|
||||
msg = $.i18n._("You are running the latest version");
|
||||
} else {
|
||||
msg = $.i18n._("New version available: ") + link + "<ul>";
|
||||
if (isPreRelease) {
|
||||
msg +=
|
||||
"<li>" +
|
||||
$.i18n._("You have a pre-release version of LibreTime intalled.");
|
||||
}
|
||||
if (hasPatch) {
|
||||
msg +=
|
||||
"<li>" +
|
||||
$.i18n._(
|
||||
"A patch update for your LibreTime installation is available."
|
||||
);
|
||||
}
|
||||
if (hasMinor) {
|
||||
msg +=
|
||||
"<li>" +
|
||||
$.i18n._(
|
||||
"A feature update for your LibreTime installation is available."
|
||||
);
|
||||
}
|
||||
if (hasMajor && !hasMultiMajor) {
|
||||
msg +=
|
||||
"<li>" +
|
||||
$.i18n._(
|
||||
"A major update for your LibreTime installation is available."
|
||||
);
|
||||
}
|
||||
if (hasMultiMajor) {
|
||||
msg +=
|
||||
"<li>" +
|
||||
$.i18n._(
|
||||
"Multiple major updates for LibreTime installation are available. Please upgrade as soon as possible."
|
||||
);
|
||||
}
|
||||
msg += "</ul>";
|
||||
}
|
||||
|
||||
return msg;
|
||||
return msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if patch is available
|
||||
*/
|
||||
function getHasPatch() {
|
||||
return versionNotifyInfo.hasPatch;
|
||||
|
||||
return versionNotifyInfo.hasPatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if minor update is available
|
||||
*/
|
||||
function getHasMinor() {
|
||||
return versionNotifyInfo.hasMinor;
|
||||
return versionNotifyInfo.hasMinor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if major update is available
|
||||
*/
|
||||
function getHasMajor() {
|
||||
return versionNotifyInfo.hasMajor;
|
||||
return versionNotifyInfo.hasMajor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if multiple major updates are available
|
||||
*/
|
||||
function getHasMultiMajor() {
|
||||
return versionNotifyInfo.hasMultiMajor;
|
||||
return versionNotifyInfo.hasMultiMajor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if pre-release was installed
|
||||
*/
|
||||
function getIsPreRelease() {
|
||||
return versionNotifyInfo.isPreRelease;
|
||||
return versionNotifyInfo.isPreRelease;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the current version
|
||||
*/
|
||||
function getCurrentVersion() {
|
||||
return versionNotifyInfo.current;
|
||||
return versionNotifyInfo.current;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the latest version
|
||||
*/
|
||||
function getLatestVersion() {
|
||||
return versionNotifyInfo.latest;
|
||||
return versionNotifyInfo.latest;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the download link to latest release in HTML
|
||||
*/
|
||||
function getLatestLink() {
|
||||
return "<a href='' onclick='openLatestLink();'>" + getLatestVersion() + "</a>";
|
||||
return (
|
||||
"<a href='' onclick='openLatestLink();'>" + getLatestVersion() + "</a>"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if current version is up to date
|
||||
*/
|
||||
function isUpToDate() {
|
||||
return !getHasPatch() && !getHasMinor() && !getHasMajor();
|
||||
return !getHasPatch() && !getHasMinor() && !getHasMajor();
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the link in a new window
|
||||
*/
|
||||
function openLatestLink() {
|
||||
window.open(versionNotifyInfo.link);
|
||||
window.open(versionNotifyInfo.link);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the tooltip for version notification
|
||||
*/
|
||||
function setupVersionQtip(){
|
||||
var qtipElem = $('#version-icon');
|
||||
if (qtipElem.length > 0){
|
||||
qtipElem.qtip({
|
||||
id: 'version',
|
||||
content: {
|
||||
text: getContent(),
|
||||
title: {
|
||||
text: getCurrentVersion(),
|
||||
button: isUpToDate() ? false : true
|
||||
}
|
||||
},
|
||||
hide: {
|
||||
event: isUpToDate() ? 'mouseleave' : 'unfocus'
|
||||
},
|
||||
position: {
|
||||
my: "top right",
|
||||
at: "bottom left"
|
||||
},
|
||||
style: {
|
||||
border: {
|
||||
width: 0,
|
||||
radius: 4
|
||||
},
|
||||
classes: "ui-tooltip-dark ui-tooltip-rounded"
|
||||
}
|
||||
});
|
||||
}
|
||||
function setupVersionQtip() {
|
||||
var qtipElem = $("#version-icon");
|
||||
if (qtipElem.length > 0) {
|
||||
qtipElem.qtip({
|
||||
id: "version",
|
||||
content: {
|
||||
text: getContent(),
|
||||
title: {
|
||||
text: getCurrentVersion(),
|
||||
button: isUpToDate() ? false : true,
|
||||
},
|
||||
},
|
||||
hide: {
|
||||
event: isUpToDate() ? "mouseleave" : "unfocus",
|
||||
},
|
||||
position: {
|
||||
my: "top right",
|
||||
at: "bottom left",
|
||||
},
|
||||
style: {
|
||||
border: {
|
||||
width: 0,
|
||||
radius: 4,
|
||||
},
|
||||
classes: "ui-tooltip-dark ui-tooltip-rounded",
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
if($('#version-icon').length > 0) {
|
||||
setupVersionQtip();
|
||||
}
|
||||
$(document).ready(function () {
|
||||
if ($("#version-icon").length > 0) {
|
||||
setupVersionQtip();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,183 +1,204 @@
|
|||
var AIRTIME = (function(AIRTIME) {
|
||||
var mod;
|
||||
var AIRTIME = (function (AIRTIME) {
|
||||
var mod;
|
||||
|
||||
if (AIRTIME.library === undefined) {
|
||||
AIRTIME.library = {};
|
||||
if (AIRTIME.library === undefined) {
|
||||
AIRTIME.library = {};
|
||||
}
|
||||
|
||||
mod = AIRTIME.library;
|
||||
|
||||
mod.checkAddButton = function () {
|
||||
var selected = mod.getChosenItemsLength(),
|
||||
sortable = $(".spl_sortable:visible"),
|
||||
check = false,
|
||||
blockType = $("input[name=sp_type]:checked", "#smart-block-form").val();
|
||||
|
||||
// make sure audioclips are selected and a playlist or static block is currently open.
|
||||
// static blocks have value of 0
|
||||
// dynamic blocks have value of 1
|
||||
if (selected !== 0 && (sortable.length !== 0 || blockType === "0")) {
|
||||
check = true;
|
||||
}
|
||||
|
||||
mod = AIRTIME.library;
|
||||
if (check === true) {
|
||||
AIRTIME.button.enableButton("btn-group #library-plus", false);
|
||||
} else {
|
||||
AIRTIME.button.disableButton("btn-group #library-plus", false);
|
||||
}
|
||||
|
||||
mod.checkAddButton = function() {
|
||||
var objType = $(".obj_type").val(),
|
||||
btnText;
|
||||
if (objType === "playlist") {
|
||||
btnText = " " + $.i18n._("Add to current playlist");
|
||||
} else if (objType === "block") {
|
||||
btnText = " " + $.i18n._("Add to current smart block");
|
||||
} else {
|
||||
btnText = " " + $.i18n._("Add to current playlist");
|
||||
}
|
||||
AIRTIME.library.changeAddButtonText(
|
||||
$(".btn-group #library-plus #lib-plus-text"),
|
||||
btnText
|
||||
);
|
||||
};
|
||||
|
||||
var selected = mod.getChosenItemsLength(),
|
||||
sortable = $('.spl_sortable:visible'),
|
||||
check = false,
|
||||
blockType = $('input[name=sp_type]:checked', '#smart-block-form').val();
|
||||
mod.fnRowCallback = function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
|
||||
var $nRow = $(nRow);
|
||||
if (aData.ftype === "audioclip") {
|
||||
$nRow.addClass("lib-audio");
|
||||
$image = $nRow.find("td.library_type");
|
||||
if (!isAudioSupported(aData.mime)) {
|
||||
$image.html('<span class="ui-icon ui-icon-locked"></span>');
|
||||
aData.image = '<span class="ui-icon ui-icon-locked"></span>';
|
||||
}
|
||||
} else if (aData.ftype === "stream") {
|
||||
$nRow.addClass("lib-stream");
|
||||
} else if (aData.ftype === "block") {
|
||||
$nRow.addClass("lib-block");
|
||||
} else {
|
||||
$nRow.addClass("lib-pl");
|
||||
}
|
||||
|
||||
// make sure audioclips are selected and a playlist or static block is currently open.
|
||||
// static blocks have value of 0
|
||||
// dynamic blocks have value of 1
|
||||
if (selected !== 0 && (sortable.length !== 0 || blockType === "0")) {
|
||||
check = true;
|
||||
$nRow
|
||||
.attr("id", aData["tr_id"])
|
||||
.data("aData", aData)
|
||||
.data("screen", "playlist");
|
||||
|
||||
if (aData["bl_type"] !== undefined) {
|
||||
$nRow.attr("bl_type", aData["bl_type"]);
|
||||
}
|
||||
};
|
||||
|
||||
mod.fnDrawCallback = function () {
|
||||
mod.redrawChosen();
|
||||
mod.checkToolBarIcons();
|
||||
|
||||
$(
|
||||
"#library_display tr.lib-audio, tr.lib-stream, tr.lib-pl, tr.lib-block"
|
||||
).draggable({
|
||||
helper: function () {
|
||||
var $el = $(this),
|
||||
selected = mod.getChosenAudioFilesLength(),
|
||||
container,
|
||||
message,
|
||||
li = $(".side_playlist ul[id='spl_sortable'] li:first"),
|
||||
width = li.width(),
|
||||
height = 55;
|
||||
if (width > 798) width = 798;
|
||||
|
||||
// dragging an element that has an unselected
|
||||
// checkbox.
|
||||
if (mod.isChosenItem($el) === false) {
|
||||
selected++;
|
||||
}
|
||||
|
||||
if (check === true) {
|
||||
AIRTIME.button.enableButton("btn-group #library-plus", false);
|
||||
if (selected === 1) {
|
||||
message = $.i18n._("Adding 1 Item");
|
||||
} else {
|
||||
AIRTIME.button.disableButton("btn-group #library-plus", false);
|
||||
message = sprintf($.i18n._("Adding %s Items"), selected);
|
||||
}
|
||||
|
||||
var objType = $('.obj_type').val(),
|
||||
btnText;
|
||||
if (objType === 'playlist') {
|
||||
btnText = ' '+$.i18n._('Add to current playlist');
|
||||
} else if (objType === 'block') {
|
||||
btnText = ' '+$.i18n._('Add to current smart block');
|
||||
} else {
|
||||
btnText = ' '+$.i18n._('Add to current playlist');
|
||||
}
|
||||
AIRTIME.library.changeAddButtonText($('.btn-group #library-plus #lib-plus-text'), btnText);
|
||||
};
|
||||
container = $('<div class="helper"/>')
|
||||
.append("<li/>")
|
||||
.find("li")
|
||||
.addClass("ui-state-default")
|
||||
.append("<div/>")
|
||||
.find("div")
|
||||
.addClass("list-item-container")
|
||||
.append(message)
|
||||
.end()
|
||||
.width(width)
|
||||
.height(height)
|
||||
.end();
|
||||
|
||||
mod.fnRowCallback = function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
|
||||
var $nRow = $(nRow);
|
||||
if (aData.ftype === "audioclip") {
|
||||
$nRow.addClass("lib-audio");
|
||||
$image = $nRow.find('td.library_type');
|
||||
if (!isAudioSupported(aData.mime)) {
|
||||
$image.html('<span class="ui-icon ui-icon-locked"></span>');
|
||||
aData.image = '<span class="ui-icon ui-icon-locked"></span>';
|
||||
}
|
||||
} else if (aData.ftype === "stream") {
|
||||
$nRow.addClass("lib-stream");
|
||||
} else if (aData.ftype === "block") {
|
||||
$nRow.addClass("lib-block");
|
||||
} else {
|
||||
$nRow.addClass("lib-pl");
|
||||
return container;
|
||||
},
|
||||
cursor: "pointer",
|
||||
cursorAt: {
|
||||
top: 30,
|
||||
left: 100,
|
||||
},
|
||||
connectToSortable: ".spl_sortable",
|
||||
});
|
||||
};
|
||||
|
||||
mod.dblClickAdd = function (data, type) {
|
||||
var i,
|
||||
aMediaIds = [];
|
||||
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push(new Array(data.id, data.ftype));
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if (
|
||||
$('input[id="obj_type"]').val() == "playlist" ||
|
||||
$('input[id="obj_type"]').val() == "block"
|
||||
) {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, "after");
|
||||
}
|
||||
};
|
||||
|
||||
mod.setupLibraryToolbar = function () {
|
||||
var $toolbar = $(".lib-content .fg-toolbar:first");
|
||||
|
||||
mod.createToolbarButtons();
|
||||
|
||||
$toolbar.append($menu);
|
||||
|
||||
// add to playlist button
|
||||
$toolbar
|
||||
.find(".icon-plus")
|
||||
.parent()
|
||||
.click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #library-plus") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
$nRow.attr("id", aData["tr_id"]).data("aData", aData).data("screen",
|
||||
"playlist");
|
||||
|
||||
if (aData["bl_type"] !== undefined) {
|
||||
$nRow.attr("bl_type", aData["bl_type"]);
|
||||
}
|
||||
};
|
||||
|
||||
mod.fnDrawCallback = function() {
|
||||
|
||||
mod.redrawChosen();
|
||||
mod.checkToolBarIcons();
|
||||
|
||||
$('#library_display tr.lib-audio, tr.lib-stream, tr.lib-pl, tr.lib-block')
|
||||
.draggable(
|
||||
{
|
||||
helper : function() {
|
||||
|
||||
var $el = $(this), selected = mod
|
||||
.getChosenAudioFilesLength(), container, message, li = $(".side_playlist ul[id='spl_sortable'] li:first"),
|
||||
width = li.width(), height = 55;
|
||||
if (width > 798) width = 798;
|
||||
|
||||
// dragging an element that has an unselected
|
||||
// checkbox.
|
||||
if (mod.isChosenItem($el) === false) {
|
||||
selected++;
|
||||
}
|
||||
|
||||
if (selected === 1) {
|
||||
message = $.i18n._("Adding 1 Item");
|
||||
} else {
|
||||
message = sprintf($.i18n._("Adding %s Items"), selected);
|
||||
}
|
||||
|
||||
container = $('<div class="helper"/>').append(
|
||||
"<li/>").find("li").addClass(
|
||||
"ui-state-default").append("<div/>")
|
||||
.find("div").addClass(
|
||||
"list-item-container").append(
|
||||
message).end().width(width)
|
||||
.height(height).end();
|
||||
|
||||
return container;
|
||||
},
|
||||
cursor : 'pointer',
|
||||
cursorAt: {
|
||||
top: 30,
|
||||
left: 100
|
||||
},
|
||||
connectToSortable : '.spl_sortable'
|
||||
});
|
||||
};
|
||||
|
||||
mod.dblClickAdd = function(data, type) {
|
||||
var i, aMediaIds = [];
|
||||
var aData = AIRTIME.library.getSelectedData(),
|
||||
i,
|
||||
temp,
|
||||
length,
|
||||
aMediaIds = [];
|
||||
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push(new Array(data.id, data.ftype));
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if ($('input[id="obj_type"]').val() == 'playlist'
|
||||
|| $('input[id="obj_type"]').val() == 'block') {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, 'after');
|
||||
for (i = 0, length = aData.length; i < length; i++) {
|
||||
temp = aData[i];
|
||||
if (
|
||||
temp.ftype === "audioclip" ||
|
||||
temp.ftype === "block" ||
|
||||
(temp.ftype === "stream" && $(".obj_type").val() === "playlist")
|
||||
) {
|
||||
aMediaIds.push(new Array(temp.id, temp.ftype));
|
||||
}
|
||||
}
|
||||
};
|
||||
if (aMediaIds.length > 0) {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, "after");
|
||||
} else {
|
||||
if ($(".obj_type").val() == "block") {
|
||||
alert($.i18n._("You can only add tracks to smart blocks."));
|
||||
} else if ($(".obj_type").val() == "playlist") {
|
||||
alert(
|
||||
$.i18n._(
|
||||
"You can only add tracks, smart blocks, and webstreams to playlists."
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mod.setupLibraryToolbar = function() {
|
||||
var $toolbar = $(".lib-content .fg-toolbar:first");
|
||||
// delete from library.
|
||||
$toolbar
|
||||
.find(".icon-trash")
|
||||
.parent()
|
||||
.click(function () {
|
||||
if (AIRTIME.button.isDisabled("icon-trash") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
mod.createToolbarButtons();
|
||||
AIRTIME.library.fnDeleteSelectedItems();
|
||||
});
|
||||
|
||||
$toolbar.append($menu);
|
||||
mod.createToolbarDropDown();
|
||||
};
|
||||
|
||||
|
||||
// add to playlist button
|
||||
$toolbar
|
||||
.find('.icon-plus').parent()
|
||||
.click(function() {
|
||||
|
||||
if (AIRTIME.button.isDisabled('btn-group #library-plus') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var aData = AIRTIME.library.getSelectedData(), i, temp, length, aMediaIds = [];
|
||||
|
||||
// process selected files/playlists.
|
||||
for (i = 0, length = aData.length; i < length; i++) {
|
||||
temp = aData[i];
|
||||
if (temp.ftype === "audioclip"
|
||||
|| temp.ftype === "block"
|
||||
|| (temp.ftype === "stream" && $(
|
||||
".obj_type").val() === "playlist")) {
|
||||
aMediaIds.push(new Array(temp.id,
|
||||
temp.ftype));
|
||||
}
|
||||
}
|
||||
if (aMediaIds.length > 0) {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds,
|
||||
undefined, 'after');
|
||||
} else {
|
||||
if ($('.obj_type').val() == 'block') {
|
||||
alert($.i18n._('You can only add tracks to smart blocks.'));
|
||||
} else if ($('.obj_type').val() == 'playlist') {
|
||||
alert($.i18n._('You can only add tracks, smart blocks, and webstreams to playlists.'));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// delete from library.
|
||||
$toolbar.find('.icon-trash').parent().click(function() {
|
||||
|
||||
if (AIRTIME.button.isDisabled('icon-trash') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
AIRTIME.library.fnDeleteSelectedItems();
|
||||
});
|
||||
|
||||
mod.createToolbarDropDown();
|
||||
};
|
||||
|
||||
return AIRTIME;
|
||||
|
||||
}(AIRTIME || {}));
|
||||
return AIRTIME;
|
||||
})(AIRTIME || {});
|
||||
|
|
|
@ -1,391 +1,439 @@
|
|||
var AIRTIME = (function(AIRTIME) {
|
||||
var mod;
|
||||
var AIRTIME = (function (AIRTIME) {
|
||||
var mod;
|
||||
|
||||
if (AIRTIME.library === undefined) {
|
||||
AIRTIME.library = {};
|
||||
if (AIRTIME.library === undefined) {
|
||||
AIRTIME.library = {};
|
||||
}
|
||||
|
||||
mod = AIRTIME.library;
|
||||
|
||||
mod.checkAddButton = function () {
|
||||
var selected = mod.getChosenItemsLength(),
|
||||
$cursor = $("tr.sb-selected"),
|
||||
check = false,
|
||||
shows = $("tr.sb-header"),
|
||||
current = $("tr.sb-current-show"),
|
||||
// TODO: this is an ugly way of doing this... we should find a more robust way of checking which view we're in.
|
||||
btnText =
|
||||
window.location.href.toLowerCase().indexOf("schedule") > -1
|
||||
? $.i18n._("Add to show")
|
||||
: $.i18n._("Add to next show");
|
||||
|
||||
// make sure library items are selected and a cursor is selected.
|
||||
if (selected !== 0) {
|
||||
check = true;
|
||||
}
|
||||
|
||||
mod = AIRTIME.library;
|
||||
var sortable = $(".spl_sortable");
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
if (shows.length === 0) {
|
||||
check = false;
|
||||
}
|
||||
|
||||
mod.checkAddButton = function() {
|
||||
var selected = mod.getChosenItemsLength(), $cursor = $('tr.sb-selected'), check = false,
|
||||
shows = $('tr.sb-header'), current = $('tr.sb-current-show'),
|
||||
// TODO: this is an ugly way of doing this... we should find a more robust way of checking which view we're in.
|
||||
btnText = (window.location.href.toLowerCase().indexOf("schedule") > -1) ? $.i18n._('Add to show') : $.i18n._('Add to next show');
|
||||
|
||||
// make sure library items are selected and a cursor is selected.
|
||||
if (selected !== 0) {
|
||||
check = true;
|
||||
}
|
||||
|
||||
var sortable = $(".spl_sortable");
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
if (shows.length === 0) {
|
||||
check = false;
|
||||
}
|
||||
|
||||
if ($cursor.length !== 0) {
|
||||
btnText = $.i18n._('Add after selected items');
|
||||
} else if (current.length !== 0) {
|
||||
btnText = $.i18n._('Add to current show');
|
||||
}
|
||||
} else if (sortable.length > 0 && sortable.is(":visible")) {
|
||||
var objType = $('.active-tab .obj_type').val();
|
||||
if (objType === 'block') {
|
||||
btnText = $.i18n._('Add to current smart block');
|
||||
} else {
|
||||
btnText = $.i18n._('Add to current playlist');
|
||||
}
|
||||
} else {
|
||||
check = false;
|
||||
}
|
||||
|
||||
if (check) {
|
||||
AIRTIME.button.enableButton("btn-group #library-plus", false);
|
||||
} else {
|
||||
AIRTIME.button.disableButton("btn-group #library-plus", false);
|
||||
}
|
||||
|
||||
AIRTIME.library.changeAddButtonText($('.btn-group #library-plus #lib-plus-text'), btnText);
|
||||
};
|
||||
|
||||
mod.fnRowCallback = function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
|
||||
var $nRow = $(nRow);
|
||||
|
||||
if (aData.ftype === "audioclip") {
|
||||
$nRow.addClass("lib-audio");
|
||||
$image = $nRow.find('td.library_type');
|
||||
if (!isAudioSupported(aData.mime)) {
|
||||
$image.html('<span class="ui-icon ui-icon-locked"></span>');
|
||||
aData.image = '<span class="ui-icon ui-icon-locked"></span>';
|
||||
}
|
||||
} else if (aData.ftype === "stream") {
|
||||
$nRow.addClass("lib-stream");
|
||||
} else {
|
||||
$nRow.addClass("lib-pl");
|
||||
}
|
||||
|
||||
$nRow.attr("id", aData["tr_id"]).data("aData", aData).data("screen",
|
||||
"timeline");
|
||||
};
|
||||
|
||||
/**
|
||||
* Draw a placeholder for the given table to show if it has no data.
|
||||
*
|
||||
* @param {Object} table jQuery object containing the table DOM node
|
||||
*/
|
||||
mod.drawEmptyPlaceholder = function (table) {
|
||||
var opts;
|
||||
if (table instanceof AIRTIME.widgets.Table) {
|
||||
opts = table.getEmptyPlaceholder();
|
||||
table = table.getDatatable();
|
||||
if (!table) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
var emptyRow = table.find('tr:has(td.dataTables_empty)'),
|
||||
wrapper = table.closest(".dataTables_wrapper"),
|
||||
libEmpty = wrapper.find('.empty_placeholder');
|
||||
if (emptyRow.length > 0) {
|
||||
emptyRow.hide();
|
||||
var mediaType = parseInt($('.media_type_selector.selected').data('selection-id')),
|
||||
img = wrapper.find('.empty_placeholder_image');
|
||||
if (!opts && isNaN(mediaType)) {
|
||||
return;
|
||||
}
|
||||
// Remove all classes for when we change between empty media types
|
||||
img.removeClass(function() { return $(this).attr("class"); });
|
||||
|
||||
if (opts) {
|
||||
img.addClass("empty_placeholder_image " + opts.iconClass);
|
||||
wrapper.find('.empty_placeholder_text').html(opts.html);
|
||||
} else {
|
||||
opts = AIRTIME.library.placeholder(mediaType);
|
||||
img.addClass("empty_placeholder_image icon-white " + opts.icon);
|
||||
wrapper.find('.empty_placeholder_text').html(
|
||||
$.i18n._("You haven't added any " + opts.media)
|
||||
+ "<br/>" + $.i18n._(opts.subtext)
|
||||
+ "<br/><a target='_blank' href='" + opts.href + "'>" + $.i18n._("Learn about " + opts.media) + "</a>"
|
||||
);
|
||||
}
|
||||
|
||||
libEmpty.show();
|
||||
} else {
|
||||
libEmpty.hide();
|
||||
}
|
||||
};
|
||||
|
||||
mod.fnDrawCallback = function fnLibDrawCallback() {
|
||||
var table = $('#library_display'),
|
||||
cb = table.find('th[class*="checkbox"]');
|
||||
if (cb.find("input").length == 0) {
|
||||
cb.append("<input id='super-checkbox' type='checkbox'>");
|
||||
}
|
||||
|
||||
mod.redrawChosen();
|
||||
mod.checkToolBarIcons();
|
||||
|
||||
mod.drawEmptyPlaceholder(table);
|
||||
|
||||
var sortable;
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
sortable = "#show_builder_table";
|
||||
} else {
|
||||
sortable = ".active-tab .spl_sortable";
|
||||
}
|
||||
|
||||
$('#library_display tr[class*="lib-"]')
|
||||
.draggable(
|
||||
{
|
||||
helper: function () {
|
||||
|
||||
var $el = $(this), selected = mod
|
||||
.getChosenItemsLength(), container, thead = $("#show_builder_table thead"), colspan = thead
|
||||
.find("th").length, width = $el.width(), message;
|
||||
|
||||
// dragging an element that has an unselected
|
||||
// checkbox.
|
||||
if (mod.isChosenItem($el) === false) {
|
||||
selected++;
|
||||
}
|
||||
|
||||
if (selected === 1) {
|
||||
message = $.i18n._("Adding 1 Item");
|
||||
} else {
|
||||
message = sprintf($.i18n._("Adding %s Items"), selected);
|
||||
}
|
||||
|
||||
container = $('<div/>').attr('id',
|
||||
'draggingContainer').append('<tr/>')
|
||||
.find("tr").append('<td/>').find("td")
|
||||
.attr("colspan", colspan).width(width)
|
||||
.addClass("ui-state-highlight").append(
|
||||
message).end().end();
|
||||
|
||||
return container;
|
||||
},
|
||||
create: function(event, ui) {
|
||||
$(this).draggable("option", "cursorAt", {
|
||||
top: 20,
|
||||
left: Math.floor($(this).outerWidth() / 2)
|
||||
});
|
||||
},
|
||||
tolerance: 'pointer',
|
||||
cursor: 'move',
|
||||
distance: 25, // min-distance for dragging
|
||||
connectToSortable: sortable
|
||||
});
|
||||
};
|
||||
|
||||
mod.dblClickAdd = function(data, type) {
|
||||
var i, length, temp, aMediaIds = [], aSchedIds = [], aData = [];
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push({
|
||||
"id": data.id,
|
||||
"type": type
|
||||
});
|
||||
|
||||
$("#show_builder_table tr.sb-selected").each(function (i, el) {
|
||||
aData.push($(el).data("aData"));
|
||||
});
|
||||
|
||||
// process selected schedule rows to add media after.
|
||||
for (i = 0, length = aData.length; i < length; i++) {
|
||||
temp = aData[i];
|
||||
aSchedIds.push({
|
||||
"id": temp.id,
|
||||
"instance": temp.instance,
|
||||
"timestamp": temp.timestamp
|
||||
});
|
||||
}
|
||||
|
||||
if (aSchedIds.length == 0) {
|
||||
if (!addToCurrentOrNext(aSchedIds)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
|
||||
} else {
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push(new Array(data.id, data.ftype));
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if ($('.active-tab .obj_type').val() == 'playlist'
|
||||
|| $('.active-tab .obj_type').val() == 'block') {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, 'after');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function addToCurrentOrNext(arr) {
|
||||
var el;
|
||||
// Add to the end of the current or next show by getting the footer
|
||||
el = $(".sb-footer.sb-future:first");
|
||||
var data = el.prev().data("aData");
|
||||
|
||||
if (data === undefined) {
|
||||
alert($.i18n._("Cannot schedule outside a show.\nTry creating a show first."));
|
||||
return false;
|
||||
}
|
||||
|
||||
arr.push({
|
||||
"id" : data.id,
|
||||
"instance" : data.instance,
|
||||
"timestamp" : data.timestamp
|
||||
});
|
||||
|
||||
if (!isInView(el)) {
|
||||
$('.dataTables_scrolling.sb-padded').animate({
|
||||
scrollTop: el.offset().top
|
||||
}, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
if ($cursor.length !== 0) {
|
||||
btnText = $.i18n._("Add after selected items");
|
||||
} else if (current.length !== 0) {
|
||||
btnText = $.i18n._("Add to current show");
|
||||
}
|
||||
} else if (sortable.length > 0 && sortable.is(":visible")) {
|
||||
var objType = $(".active-tab .obj_type").val();
|
||||
if (objType === "block") {
|
||||
btnText = $.i18n._("Add to current smart block");
|
||||
} else {
|
||||
btnText = $.i18n._("Add to current playlist");
|
||||
}
|
||||
} else {
|
||||
check = false;
|
||||
}
|
||||
|
||||
mod.addToSchedule = function (selected) {
|
||||
console.log(selected);
|
||||
var aMediaIds = [], aSchedIds = [], aData = [];
|
||||
if (check) {
|
||||
AIRTIME.button.enableButton("btn-group #library-plus", false);
|
||||
} else {
|
||||
AIRTIME.button.disableButton("btn-group #library-plus", false);
|
||||
}
|
||||
|
||||
$.each(selected, function () {
|
||||
aMediaIds.push({
|
||||
"id": this.id,
|
||||
"type": this.ftype
|
||||
});
|
||||
});
|
||||
AIRTIME.library.changeAddButtonText(
|
||||
$(".btn-group #library-plus #lib-plus-text"),
|
||||
btnText
|
||||
);
|
||||
};
|
||||
|
||||
// process selected files/playlists.
|
||||
$("#show_builder_table").find("tr.sb-selected").each(function (i, el) {
|
||||
aData.push($(el).data("aData"));
|
||||
});
|
||||
mod.fnRowCallback = function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
|
||||
var $nRow = $(nRow);
|
||||
|
||||
// process selected schedule rows to add media after.
|
||||
$.each(aData, function () {
|
||||
aSchedIds.push({
|
||||
"id": this.id,
|
||||
"instance": this.instance,
|
||||
"timestamp": this.timestamp
|
||||
});
|
||||
});
|
||||
if (aData.ftype === "audioclip") {
|
||||
$nRow.addClass("lib-audio");
|
||||
$image = $nRow.find("td.library_type");
|
||||
if (!isAudioSupported(aData.mime)) {
|
||||
$image.html('<span class="ui-icon ui-icon-locked"></span>');
|
||||
aData.image = '<span class="ui-icon ui-icon-locked"></span>';
|
||||
}
|
||||
} else if (aData.ftype === "stream") {
|
||||
$nRow.addClass("lib-stream");
|
||||
} else {
|
||||
$nRow.addClass("lib-pl");
|
||||
}
|
||||
|
||||
if (aSchedIds.length == 0) {
|
||||
if (!addToCurrentOrNext(aSchedIds)) {
|
||||
return;
|
||||
}
|
||||
$nRow
|
||||
.attr("id", aData["tr_id"])
|
||||
.data("aData", aData)
|
||||
.data("screen", "timeline");
|
||||
};
|
||||
|
||||
/**
|
||||
* Draw a placeholder for the given table to show if it has no data.
|
||||
*
|
||||
* @param {Object} table jQuery object containing the table DOM node
|
||||
*/
|
||||
mod.drawEmptyPlaceholder = function (table) {
|
||||
var opts;
|
||||
if (table instanceof AIRTIME.widgets.Table) {
|
||||
opts = table.getEmptyPlaceholder();
|
||||
table = table.getDatatable();
|
||||
if (!table) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
var emptyRow = table.find("tr:has(td.dataTables_empty)"),
|
||||
wrapper = table.closest(".dataTables_wrapper"),
|
||||
libEmpty = wrapper.find(".empty_placeholder");
|
||||
if (emptyRow.length > 0) {
|
||||
emptyRow.hide();
|
||||
var mediaType = parseInt(
|
||||
$(".media_type_selector.selected").data("selection-id")
|
||||
),
|
||||
img = wrapper.find(".empty_placeholder_image");
|
||||
if (!opts && isNaN(mediaType)) {
|
||||
return;
|
||||
}
|
||||
// Remove all classes for when we change between empty media types
|
||||
img.removeClass(function () {
|
||||
return $(this).attr("class");
|
||||
});
|
||||
|
||||
if (opts) {
|
||||
img.addClass("empty_placeholder_image " + opts.iconClass);
|
||||
wrapper.find(".empty_placeholder_text").html(opts.html);
|
||||
} else {
|
||||
opts = AIRTIME.library.placeholder(mediaType);
|
||||
img.addClass("empty_placeholder_image icon-white " + opts.icon);
|
||||
wrapper
|
||||
.find(".empty_placeholder_text")
|
||||
.html(
|
||||
$.i18n._("You haven't added any " + opts.media) +
|
||||
"<br/>" +
|
||||
$.i18n._(opts.subtext) +
|
||||
"<br/><a target='_blank' href='" +
|
||||
opts.href +
|
||||
"'>" +
|
||||
$.i18n._("Learn about " + opts.media) +
|
||||
"</a>"
|
||||
);
|
||||
}
|
||||
|
||||
libEmpty.show();
|
||||
} else {
|
||||
libEmpty.hide();
|
||||
}
|
||||
};
|
||||
|
||||
mod.fnDrawCallback = function fnLibDrawCallback() {
|
||||
var table = $("#library_display"),
|
||||
cb = table.find('th[class*="checkbox"]');
|
||||
if (cb.find("input").length == 0) {
|
||||
cb.append("<input id='super-checkbox' type='checkbox'>");
|
||||
}
|
||||
|
||||
mod.redrawChosen();
|
||||
mod.checkToolBarIcons();
|
||||
|
||||
mod.drawEmptyPlaceholder(table);
|
||||
|
||||
var sortable;
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
sortable = "#show_builder_table";
|
||||
} else {
|
||||
sortable = ".active-tab .spl_sortable";
|
||||
}
|
||||
|
||||
$('#library_display tr[class*="lib-"]').draggable({
|
||||
helper: function () {
|
||||
var $el = $(this),
|
||||
selected = mod.getChosenItemsLength(),
|
||||
container,
|
||||
thead = $("#show_builder_table thead"),
|
||||
colspan = thead.find("th").length,
|
||||
width = $el.width(),
|
||||
message;
|
||||
|
||||
// dragging an element that has an unselected
|
||||
// checkbox.
|
||||
if (mod.isChosenItem($el) === false) {
|
||||
selected++;
|
||||
}
|
||||
|
||||
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
|
||||
};
|
||||
|
||||
mod.setupLibraryToolbar = function() {
|
||||
var $toolbar = $(".lib-content .fg-toolbar:first");
|
||||
|
||||
mod.createToolbarButtons();
|
||||
//mod.moveSearchBarToHeader();
|
||||
$("#advanced_search").click(function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
if (localStorage.getItem('user-type') != 'G') {
|
||||
$toolbar.append($menu);
|
||||
// add to timeline button
|
||||
$toolbar
|
||||
.find('#library-plus')
|
||||
.click(
|
||||
function () {
|
||||
|
||||
if (AIRTIME.button.isDisabled('btn-group #library-plus') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = AIRTIME.library.getSelectedData(), aMediaIds = [];
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
mod.addToSchedule(selected);
|
||||
} else {
|
||||
$.each(selected, function () {
|
||||
aMediaIds.push([this.id, this.ftype]);
|
||||
});
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if ($('.active-tab .obj_type').val() == 'playlist'
|
||||
|| $('.active-tab .obj_type').val() == 'block') {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, 'after');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$toolbar.find('#publish-btn').click(function () {
|
||||
if (AIRTIME.button.isDisabled('btn-group #publish-btn') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = $(".lib-selected");
|
||||
|
||||
selected.each(function (i, el) {
|
||||
var data = $(el).data("aData");
|
||||
AIRTIME.publish.openPublishDialog(data.id);
|
||||
});
|
||||
});
|
||||
|
||||
// delete from library.
|
||||
$toolbar.find('#sb-delete').click(function () {
|
||||
if (AIRTIME.button.isDisabled('btn-group #sb-delete') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
AIRTIME.library.fnDeleteSelectedItems();
|
||||
});
|
||||
|
||||
$toolbar.find('#sb-new').click(function () {
|
||||
if (AIRTIME.button.isDisabled('btn-group #sb-new') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selection = $(".media_type_selector.selected").data("selection-id");
|
||||
|
||||
if (selection == AIRTIME.library.MediaTypeIntegerEnum.PLAYLIST) {
|
||||
AIRTIME.playlist.fnNew();
|
||||
} else if (selection == AIRTIME.library.MediaTypeIntegerEnum.BLOCK) {
|
||||
AIRTIME.playlist.fnNewBlock();
|
||||
} else if (selection == AIRTIME.library.MediaTypeIntegerEnum.WEBSTREAM) {
|
||||
AIRTIME.playlist.fnWsNew();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$toolbar.find('#sb-edit').click(function () {
|
||||
if (AIRTIME.button.isDisabled('btn-group #sb-edit') === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = $(".lib-selected");
|
||||
|
||||
selected.each(function (i, el) {
|
||||
var data = $(el).data("aData");
|
||||
|
||||
if (data.ftype === "audioclip") {
|
||||
$.get(baseUrl + "library/edit-file-md/id/" + data.id, {format: "json"}, function (json) {
|
||||
AIRTIME.playlist.fileMdEdit(json, data.tr_id);
|
||||
//buildEditMetadataDialog(json);
|
||||
});
|
||||
} else if (data.ftype === "playlist" || data.ftype === "block") {
|
||||
AIRTIME.playlist.fnEdit(data, baseUrl + 'playlist/edit');
|
||||
AIRTIME.playlist.validatePlaylistElements();
|
||||
} else if (data.ftype === "stream") {
|
||||
AIRTIME.playlist.fnEdit(data, baseUrl + 'webstream/edit');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
mod.createToolbarDropDown();
|
||||
if (selected === 1) {
|
||||
message = $.i18n._("Adding 1 Item");
|
||||
} else {
|
||||
message = sprintf($.i18n._("Adding %s Items"), selected);
|
||||
}
|
||||
};
|
||||
|
||||
return AIRTIME;
|
||||
container = $("<div/>")
|
||||
.attr("id", "draggingContainer")
|
||||
.append("<tr/>")
|
||||
.find("tr")
|
||||
.append("<td/>")
|
||||
.find("td")
|
||||
.attr("colspan", colspan)
|
||||
.width(width)
|
||||
.addClass("ui-state-highlight")
|
||||
.append(message)
|
||||
.end()
|
||||
.end();
|
||||
|
||||
}(AIRTIME || {}));
|
||||
return container;
|
||||
},
|
||||
create: function (event, ui) {
|
||||
$(this).draggable("option", "cursorAt", {
|
||||
top: 20,
|
||||
left: Math.floor($(this).outerWidth() / 2),
|
||||
});
|
||||
},
|
||||
tolerance: "pointer",
|
||||
cursor: "move",
|
||||
distance: 25, // min-distance for dragging
|
||||
connectToSortable: sortable,
|
||||
});
|
||||
};
|
||||
|
||||
mod.dblClickAdd = function (data, type) {
|
||||
var i,
|
||||
length,
|
||||
temp,
|
||||
aMediaIds = [],
|
||||
aSchedIds = [],
|
||||
aData = [];
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push({
|
||||
id: data.id,
|
||||
type: type,
|
||||
});
|
||||
|
||||
$("#show_builder_table tr.sb-selected").each(function (i, el) {
|
||||
aData.push($(el).data("aData"));
|
||||
});
|
||||
|
||||
// process selected schedule rows to add media after.
|
||||
for (i = 0, length = aData.length; i < length; i++) {
|
||||
temp = aData[i];
|
||||
aSchedIds.push({
|
||||
id: temp.id,
|
||||
instance: temp.instance,
|
||||
timestamp: temp.timestamp,
|
||||
});
|
||||
}
|
||||
|
||||
if (aSchedIds.length == 0) {
|
||||
if (!addToCurrentOrNext(aSchedIds)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
|
||||
} else {
|
||||
// process selected files/playlists.
|
||||
aMediaIds.push(new Array(data.id, data.ftype));
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if (
|
||||
$(".active-tab .obj_type").val() == "playlist" ||
|
||||
$(".active-tab .obj_type").val() == "block"
|
||||
) {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, "after");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function addToCurrentOrNext(arr) {
|
||||
var el;
|
||||
// Add to the end of the current or next show by getting the footer
|
||||
el = $(".sb-footer.sb-future:first");
|
||||
var data = el.prev().data("aData");
|
||||
|
||||
if (data === undefined) {
|
||||
alert(
|
||||
$.i18n._("Cannot schedule outside a show.\nTry creating a show first.")
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
arr.push({
|
||||
id: data.id,
|
||||
instance: data.instance,
|
||||
timestamp: data.timestamp,
|
||||
});
|
||||
|
||||
if (!isInView(el)) {
|
||||
$(".dataTables_scrolling.sb-padded").animate(
|
||||
{
|
||||
scrollTop: el.offset().top,
|
||||
},
|
||||
0
|
||||
);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
mod.addToSchedule = function (selected) {
|
||||
console.log(selected);
|
||||
var aMediaIds = [],
|
||||
aSchedIds = [],
|
||||
aData = [];
|
||||
|
||||
$.each(selected, function () {
|
||||
aMediaIds.push({
|
||||
id: this.id,
|
||||
type: this.ftype,
|
||||
});
|
||||
});
|
||||
|
||||
// process selected files/playlists.
|
||||
$("#show_builder_table")
|
||||
.find("tr.sb-selected")
|
||||
.each(function (i, el) {
|
||||
aData.push($(el).data("aData"));
|
||||
});
|
||||
|
||||
// process selected schedule rows to add media after.
|
||||
$.each(aData, function () {
|
||||
aSchedIds.push({
|
||||
id: this.id,
|
||||
instance: this.instance,
|
||||
timestamp: this.timestamp,
|
||||
});
|
||||
});
|
||||
|
||||
if (aSchedIds.length == 0) {
|
||||
if (!addToCurrentOrNext(aSchedIds)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
|
||||
};
|
||||
|
||||
mod.setupLibraryToolbar = function () {
|
||||
var $toolbar = $(".lib-content .fg-toolbar:first");
|
||||
|
||||
mod.createToolbarButtons();
|
||||
//mod.moveSearchBarToHeader();
|
||||
$("#advanced_search").click(function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
if (localStorage.getItem("user-type") != "G") {
|
||||
$toolbar.append($menu);
|
||||
// add to timeline button
|
||||
$toolbar.find("#library-plus").click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #library-plus") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = AIRTIME.library.getSelectedData(),
|
||||
aMediaIds = [];
|
||||
|
||||
if ($("#show_builder_table").is(":visible")) {
|
||||
mod.addToSchedule(selected);
|
||||
} else {
|
||||
$.each(selected, function () {
|
||||
aMediaIds.push([this.id, this.ftype]);
|
||||
});
|
||||
|
||||
// check if a playlist/block is open before adding items
|
||||
if (
|
||||
$(".active-tab .obj_type").val() == "playlist" ||
|
||||
$(".active-tab .obj_type").val() == "block"
|
||||
) {
|
||||
AIRTIME.playlist.fnAddItems(aMediaIds, undefined, "after");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$toolbar.find("#publish-btn").click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #publish-btn") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = $(".lib-selected");
|
||||
|
||||
selected.each(function (i, el) {
|
||||
var data = $(el).data("aData");
|
||||
AIRTIME.publish.openPublishDialog(data.id);
|
||||
});
|
||||
});
|
||||
|
||||
// delete from library.
|
||||
$toolbar.find("#sb-delete").click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #sb-delete") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
AIRTIME.library.fnDeleteSelectedItems();
|
||||
});
|
||||
|
||||
$toolbar.find("#sb-new").click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #sb-new") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selection = $(".media_type_selector.selected").data("selection-id");
|
||||
|
||||
if (selection == AIRTIME.library.MediaTypeIntegerEnum.PLAYLIST) {
|
||||
AIRTIME.playlist.fnNew();
|
||||
} else if (selection == AIRTIME.library.MediaTypeIntegerEnum.BLOCK) {
|
||||
AIRTIME.playlist.fnNewBlock();
|
||||
} else if (
|
||||
selection == AIRTIME.library.MediaTypeIntegerEnum.WEBSTREAM
|
||||
) {
|
||||
AIRTIME.playlist.fnWsNew();
|
||||
}
|
||||
});
|
||||
|
||||
$toolbar.find("#sb-edit").click(function () {
|
||||
if (AIRTIME.button.isDisabled("btn-group #sb-edit") === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var selected = $(".lib-selected");
|
||||
|
||||
selected.each(function (i, el) {
|
||||
var data = $(el).data("aData");
|
||||
|
||||
if (data.ftype === "audioclip") {
|
||||
$.get(
|
||||
baseUrl + "library/edit-file-md/id/" + data.id,
|
||||
{ format: "json" },
|
||||
function (json) {
|
||||
AIRTIME.playlist.fileMdEdit(json, data.tr_id);
|
||||
//buildEditMetadataDialog(json);
|
||||
}
|
||||
);
|
||||
} else if (data.ftype === "playlist" || data.ftype === "block") {
|
||||
AIRTIME.playlist.fnEdit(data, baseUrl + "playlist/edit");
|
||||
AIRTIME.playlist.validatePlaylistElements();
|
||||
} else if (data.ftype === "stream") {
|
||||
AIRTIME.playlist.fnEdit(data, baseUrl + "webstream/edit");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
mod.createToolbarDropDown();
|
||||
}
|
||||
};
|
||||
|
||||
return AIRTIME;
|
||||
})(AIRTIME || {});
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,219 +1,237 @@
|
|||
$(document).ready(function () {
|
||||
var uploadProgress;
|
||||
var self = this;
|
||||
self.uploadFilter = "all";
|
||||
|
||||
var uploadProgress;
|
||||
var self = this;
|
||||
self.uploadFilter = "all";
|
||||
self.IMPORT_STATUS_CODES = {
|
||||
0: { message: $.i18n._("Successfully imported") },
|
||||
1: { message: $.i18n._("Pending import") },
|
||||
2: { message: $.i18n._("Import failed.") },
|
||||
UNKNOWN: { message: $.i18n._("Unknown") },
|
||||
};
|
||||
if (Object.freeze) {
|
||||
Object.freeze(self.IMPORT_STATUS_CODES);
|
||||
}
|
||||
|
||||
self.IMPORT_STATUS_CODES = {
|
||||
0: {message: $.i18n._("Successfully imported")},
|
||||
1: {message: $.i18n._("Pending import")},
|
||||
2: {message: $.i18n._("Import failed.")},
|
||||
UNKNOWN: {message: $.i18n._("Unknown")}
|
||||
};
|
||||
if (Object.freeze) {
|
||||
Object.freeze(self.IMPORT_STATUS_CODES);
|
||||
Dropzone.options.addMediaDropzone = {
|
||||
url: "/rest/media",
|
||||
//clickable: false,
|
||||
acceptedFiles: acceptedMimeTypes.join(),
|
||||
addRemoveLinks: true,
|
||||
dictRemoveFile: $.i18n._("Remove"),
|
||||
maxFilesize: LIBRETIME_PLUPLOAD_MAX_FILE_SIZE, //Megabytes
|
||||
init: function () {
|
||||
this.on("sending", function (file, xhr, data) {
|
||||
data.append("csrf_token", $("#csrf").val());
|
||||
});
|
||||
|
||||
this.on("addedfile", function (file, xhr, data) {
|
||||
var el = $(file.previewElement);
|
||||
uploadProgress = true;
|
||||
el.find(".dz-remove").prependTo(el.find(".dz-details"));
|
||||
el.find(".dz-error-message").appendTo(el.find(".dz-error-mark"));
|
||||
});
|
||||
|
||||
this.on("success", function (file, xhr, data) {
|
||||
//Refresh the upload table:
|
||||
self.recentUploadsTable.fnDraw(); //Only works because we're using bServerSide
|
||||
//In DataTables 1.10 and greater, we can use .fnAjaxReload()
|
||||
});
|
||||
|
||||
this.on("queuecomplete", function () {
|
||||
uploadProgress = false;
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
$(window).bind("beforeunload", function () {
|
||||
if (uploadProgress) {
|
||||
return sprintf(
|
||||
$.i18n._(
|
||||
"You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"
|
||||
),
|
||||
"\n",
|
||||
"\n"
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
self.renderImportStatus = function (data, type, full) {
|
||||
if (typeof data !== "number") {
|
||||
console.log("Invalid data type for the import_status.");
|
||||
return;
|
||||
}
|
||||
var statusStr = self.IMPORT_STATUS_CODES.UNKNOWN.message;
|
||||
var importStatusCode = data;
|
||||
if (self.IMPORT_STATUS_CODES[importStatusCode]) {
|
||||
statusStr = self.IMPORT_STATUS_CODES[importStatusCode].message;
|
||||
}
|
||||
|
||||
Dropzone.options.addMediaDropzone = {
|
||||
url: '/rest/media',
|
||||
//clickable: false,
|
||||
acceptedFiles: acceptedMimeTypes.join(),
|
||||
addRemoveLinks: true,
|
||||
dictRemoveFile: $.i18n._("Remove"),
|
||||
maxFilesize:LIBRETIME_PLUPLOAD_MAX_FILE_SIZE, //Megabytes
|
||||
init: function () {
|
||||
this.on("sending", function (file, xhr, data) {
|
||||
data.append("csrf_token", $("#csrf").val());
|
||||
});
|
||||
return statusStr;
|
||||
};
|
||||
|
||||
this.on("addedfile", function (file, xhr, data) {
|
||||
var el = $(file.previewElement);
|
||||
uploadProgress = true;
|
||||
el.find(".dz-remove").prependTo(el.find(".dz-details"));
|
||||
el.find(".dz-error-message").appendTo(el.find(".dz-error-mark"));
|
||||
});
|
||||
self.renderFileActions = function (data, type, full) {
|
||||
if (full.import_status == 0) {
|
||||
return (
|
||||
'<a class="deleteFileAction">' +
|
||||
$.i18n._("Delete from Library") +
|
||||
"</a>"
|
||||
);
|
||||
} else if (full.import_status == 1) {
|
||||
//No actions for pending files
|
||||
return $.i18n._("N/A");
|
||||
} else {
|
||||
//Failed downloads
|
||||
return '<a class="deleteFileAction">' + $.i18n._("Clear") + "</a>";
|
||||
}
|
||||
};
|
||||
|
||||
this.on("success", function (file, xhr, data) {
|
||||
//Refresh the upload table:
|
||||
self.recentUploadsTable.fnDraw(); //Only works because we're using bServerSide
|
||||
//In DataTables 1.10 and greater, we can use .fnAjaxReload()
|
||||
});
|
||||
$("#recent_uploads_table").on("click", "a.deleteFileAction", function () {
|
||||
//Grab the file object for the row that was clicked.
|
||||
// Some tips from the DataTables forums:
|
||||
// fnGetData is used to get the object behind the row - you can also use
|
||||
// fnGetPosition if you need to get the index instead
|
||||
file = $("#recent_uploads_table")
|
||||
.dataTable()
|
||||
.fnGetData($(this).closest("tr")[0]);
|
||||
|
||||
this.on("queuecomplete", function() {
|
||||
uploadProgress = false;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(window).bind('beforeunload', function () {
|
||||
if (uploadProgress) {
|
||||
return sprintf($.i18n._("You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"),
|
||||
"\n", "\n");
|
||||
}
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
url: "rest/media/" + file.id + "?csrf_token=" + $("#csrf").attr("value"),
|
||||
success: function (resp) {
|
||||
self.recentUploadsTable.fnDraw();
|
||||
},
|
||||
error: function () {
|
||||
alert(
|
||||
$.i18n._(
|
||||
"Error: The file could not be deleted. Please try again later."
|
||||
)
|
||||
);
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
self.renderImportStatus = function (data, type, full) {
|
||||
if (typeof data !== "number") {
|
||||
console.log("Invalid data type for the import_status.");
|
||||
return;
|
||||
}
|
||||
var statusStr = self.IMPORT_STATUS_CODES.UNKNOWN.message;
|
||||
var importStatusCode = data;
|
||||
if (self.IMPORT_STATUS_CODES[importStatusCode]) {
|
||||
statusStr = self.IMPORT_STATUS_CODES[importStatusCode].message;
|
||||
}
|
||||
|
||||
return statusStr;
|
||||
};
|
||||
|
||||
self.renderFileActions = function (data, type, full) {
|
||||
if (full.import_status == 0) {
|
||||
return '<a class="deleteFileAction">' + $.i18n._('Delete from Library') + '</a>';
|
||||
} else if (full.import_status == 1) {
|
||||
//No actions for pending files
|
||||
return $.i18n._('N/A');
|
||||
} else { //Failed downloads
|
||||
return '<a class="deleteFileAction">' + $.i18n._('Clear') + '</a>';
|
||||
}
|
||||
};
|
||||
|
||||
$("#recent_uploads_table").on("click", "a.deleteFileAction", function () {
|
||||
//Grab the file object for the row that was clicked.
|
||||
// Some tips from the DataTables forums:
|
||||
// fnGetData is used to get the object behind the row - you can also use
|
||||
// fnGetPosition if you need to get the index instead
|
||||
file = $("#recent_uploads_table").dataTable().fnGetData($(this).closest("tr")[0]);
|
||||
|
||||
$.ajax({
|
||||
type: 'DELETE',
|
||||
url: 'rest/media/' + file.id + "?csrf_token=" + $("#csrf").attr('value'),
|
||||
success: function (resp) {
|
||||
self.recentUploadsTable.fnDraw();
|
||||
},
|
||||
error: function () {
|
||||
alert($.i18n._("Error: The file could not be deleted. Please try again later."));
|
||||
self.setupRecentUploadsTable = function () {
|
||||
return $("#recent_uploads_table").dataTable({
|
||||
bJQueryUI: true,
|
||||
bProcessing: false,
|
||||
bServerSide: true,
|
||||
sAjaxSource: "/plupload/recent-uploads/format/json",
|
||||
sAjaxDataProp: "files",
|
||||
bSearchable: false,
|
||||
bInfo: true,
|
||||
//"sScrollY": "200px",
|
||||
bFilter: false,
|
||||
bSort: false,
|
||||
//"sDom": '<"H">frtip<"F"l>',
|
||||
sDom: '<"dataTables_scrolling"frt><"F"lip>',
|
||||
bPaginate: true,
|
||||
sPaginationType: "full_numbers",
|
||||
oLanguage: getDatatablesStrings({
|
||||
sEmptyTable: $.i18n._("No files have been uploaded yet."),
|
||||
sInfoEmpty: $.i18n._("Showing 0 to 0 of 0 uploads"),
|
||||
sInfo: $.i18n._("Showing _START_ to _END_ of _TOTAL_ uploads"),
|
||||
sInfoFiltered: $.i18n._("(filtered from _MAX_ total uploads)"),
|
||||
}),
|
||||
aoColumns: [
|
||||
{ mData: "artist_name", sTitle: $.i18n._("Creator") },
|
||||
{ mData: "track_title", sTitle: $.i18n._("Title") },
|
||||
{
|
||||
mData: "import_status",
|
||||
sTitle: $.i18n._("Import Status"),
|
||||
mRender: self.renderImportStatus,
|
||||
},
|
||||
{ mData: "utime", sTitle: $.i18n._("Uploaded") },
|
||||
{
|
||||
mData: "id",
|
||||
sTitle: $.i18n._("Actions"),
|
||||
mRender: self.renderFileActions,
|
||||
},
|
||||
],
|
||||
fnServerData: function (sSource, aoData, fnCallback) {
|
||||
/* Add some extra data to the sender */
|
||||
aoData.push({ name: "uploadFilter", value: self.uploadFilter });
|
||||
$.getJSON(sSource, aoData, function (json) {
|
||||
fnCallback(json);
|
||||
if (json.files) {
|
||||
var areAnyFileImportsPending = false;
|
||||
for (var i = 0; i < json.files.length; i++) {
|
||||
//console.log(file);
|
||||
var file = json.files[i];
|
||||
if (file.import_status == 1) {
|
||||
areAnyFileImportsPending = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (areAnyFileImportsPending) {
|
||||
//alert("pending uploads, starting refresh on timer");
|
||||
self.startRefreshingRecentUploads();
|
||||
} else if (self.isRecentUploadsRefreshTimerActive) {
|
||||
self.stopRefreshingRecentUploads();
|
||||
self.recentUploadsTable.fnDraw();
|
||||
}
|
||||
|
||||
// Update usability hint - in common.js
|
||||
getUsabilityHint();
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
self.setupRecentUploadsTable = function () {
|
||||
return $("#recent_uploads_table").dataTable({
|
||||
"bJQueryUI": true,
|
||||
"bProcessing": false,
|
||||
"bServerSide": true,
|
||||
"sAjaxSource": '/plupload/recent-uploads/format/json',
|
||||
"sAjaxDataProp": 'files',
|
||||
"bSearchable": false,
|
||||
"bInfo": true,
|
||||
//"sScrollY": "200px",
|
||||
"bFilter": false,
|
||||
"bSort": false,
|
||||
//"sDom": '<"H">frtip<"F"l>',
|
||||
"sDom": '<"dataTables_scrolling"frt><"F"lip>',
|
||||
"bPaginate": true,
|
||||
"sPaginationType": "full_numbers",
|
||||
"oLanguage": getDatatablesStrings({
|
||||
"sEmptyTable": $.i18n._("No files have been uploaded yet."),
|
||||
"sInfoEmpty": $.i18n._("Showing 0 to 0 of 0 uploads"),
|
||||
"sInfo": $.i18n._("Showing _START_ to _END_ of _TOTAL_ uploads"),
|
||||
"sInfoFiltered": $.i18n._("(filtered from _MAX_ total uploads)"),
|
||||
}),
|
||||
"aoColumns": [
|
||||
{"mData": "artist_name", "sTitle": $.i18n._("Creator")},
|
||||
{"mData": "track_title", "sTitle": $.i18n._("Title")},
|
||||
{
|
||||
"mData": "import_status", "sTitle": $.i18n._("Import Status"),
|
||||
"mRender": self.renderImportStatus
|
||||
},
|
||||
{"mData": "utime", "sTitle": $.i18n._("Uploaded")},
|
||||
{
|
||||
"mData": "id", "sTitle": $.i18n._("Actions"),
|
||||
"mRender": self.renderFileActions
|
||||
}
|
||||
],
|
||||
"fnServerData": function (sSource, aoData, fnCallback) {
|
||||
/* Add some extra data to the sender */
|
||||
aoData.push({"name": "uploadFilter", "value": self.uploadFilter});
|
||||
$.getJSON(sSource, aoData, function (json) {
|
||||
fnCallback(json);
|
||||
if (json.files) {
|
||||
var areAnyFileImportsPending = false;
|
||||
for (var i = 0; i < json.files.length; i++) {
|
||||
//console.log(file);
|
||||
var file = json.files[i];
|
||||
if (file.import_status == 1) {
|
||||
areAnyFileImportsPending = true;
|
||||
}
|
||||
}
|
||||
$("#recent_uploads").addTitles("td");
|
||||
|
||||
if (areAnyFileImportsPending) {
|
||||
//alert("pending uploads, starting refresh on timer");
|
||||
self.startRefreshingRecentUploads();
|
||||
} else if (self.isRecentUploadsRefreshTimerActive) {
|
||||
self.stopRefreshingRecentUploads();
|
||||
self.recentUploadsTable.fnDraw();
|
||||
}
|
||||
self.isRecentUploadsRefreshTimerActive = false;
|
||||
|
||||
// Update usability hint - in common.js
|
||||
getUsabilityHint();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$("#recent_uploads").addTitles("td");
|
||||
self.startRefreshingRecentUploads = function () {
|
||||
if (!self.isRecentUploadsRefreshTimerActive) {
|
||||
//Prevent multiple timers from running
|
||||
self.recentUploadsRefreshTimer = setInterval(function () {
|
||||
self.recentUploadsTable.fnDraw();
|
||||
}, 3000);
|
||||
self.isRecentUploadsRefreshTimerActive = true;
|
||||
}
|
||||
};
|
||||
|
||||
self.stopRefreshingRecentUploads = function () {
|
||||
clearInterval(self.recentUploadsRefreshTimer);
|
||||
self.isRecentUploadsRefreshTimerActive = false;
|
||||
};
|
||||
|
||||
self.startRefreshingRecentUploads = function () {
|
||||
if (!self.isRecentUploadsRefreshTimerActive) { //Prevent multiple timers from running
|
||||
self.recentUploadsRefreshTimer = setInterval(function() {
|
||||
self.recentUploadsTable.fnDraw();
|
||||
}, 3000);
|
||||
self.isRecentUploadsRefreshTimerActive = true;
|
||||
}
|
||||
};
|
||||
$("#upload_status_all").click(function () {
|
||||
if (self.uploadFilter !== "all") {
|
||||
self.uploadFilter = "all";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
$("#upload_status_pending").click(function () {
|
||||
if (self.uploadFilter !== "pending") {
|
||||
self.uploadFilter = "pending";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
$("#upload_status_failed").click(function () {
|
||||
if (self.uploadFilter !== "failed") {
|
||||
self.uploadFilter = "failed";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
|
||||
self.stopRefreshingRecentUploads = function () {
|
||||
clearInterval(self.recentUploadsRefreshTimer);
|
||||
self.isRecentUploadsRefreshTimerActive = false;
|
||||
};
|
||||
//Create the recent uploads table.
|
||||
self.recentUploadsTable = self.setupRecentUploadsTable();
|
||||
|
||||
$("#upload_status_all").click(function () {
|
||||
if (self.uploadFilter !== "all") {
|
||||
self.uploadFilter = "all";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
$("#upload_status_pending").click(function () {
|
||||
if (self.uploadFilter !== "pending") {
|
||||
self.uploadFilter = "pending";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
$("#upload_status_failed").click(function () {
|
||||
if (self.uploadFilter !== "failed") {
|
||||
self.uploadFilter = "failed";
|
||||
self.recentUploadsTable.fnPageChange(0).fnDraw();
|
||||
}
|
||||
});
|
||||
//$("#recent_uploads_table.div.fg-toolbar").prepend('<b>Custom tool bar! Text/images etc.</b>');
|
||||
|
||||
//Create the recent uploads table.
|
||||
self.recentUploadsTable = self.setupRecentUploadsTable();
|
||||
|
||||
//$("#recent_uploads_table.div.fg-toolbar").prepend('<b>Custom tool bar! Text/images etc.</b>');
|
||||
|
||||
$("#select_type").on("change",function(){
|
||||
var ttValue = $("#select_type").val();
|
||||
var ttText = $('#select_type option[value="'+ttValue+'"]').text();
|
||||
if (ttValue != ""){
|
||||
$("#upload_type").text(" " + ttText);
|
||||
$("#upload_type").css("color", "#ff611f");
|
||||
} else {
|
||||
$("#upload_type").text(" Tracks");
|
||||
$("#upload_type").css("color", "#ffffff");
|
||||
}
|
||||
Cookies.set('tt_upload', ttValue);
|
||||
});
|
||||
$("#select_type").on("change", function () {
|
||||
var ttValue = $("#select_type").val();
|
||||
var ttText = $('#select_type option[value="' + ttValue + '"]').text();
|
||||
if (ttValue != "") {
|
||||
$("#upload_type").text(" " + ttText);
|
||||
$("#upload_type").css("color", "#ff611f");
|
||||
} else {
|
||||
$("#upload_type").text(" Tracks");
|
||||
$("#upload_type").css("color", "#ffffff");
|
||||
}
|
||||
Cookies.set("tt_upload", ttValue);
|
||||
});
|
||||
});
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,114 +1,128 @@
|
|||
|
||||
var AIRTIME = (function (AIRTIME) {
|
||||
var mod;
|
||||
var mod;
|
||||
|
||||
if (AIRTIME.publish === undefined) {
|
||||
AIRTIME.publish = {};
|
||||
}
|
||||
if (AIRTIME.publish === undefined) {
|
||||
AIRTIME.publish = {};
|
||||
}
|
||||
|
||||
mod = AIRTIME.publish;
|
||||
mod = AIRTIME.publish;
|
||||
|
||||
var endpoint = 'rest/media/';
|
||||
var dialogUrl = 'library/publish-dialog';
|
||||
var PUBLISH_APP_NAME = 'publish';
|
||||
var endpoint = "rest/media/";
|
||||
var dialogUrl = "library/publish-dialog";
|
||||
var PUBLISH_APP_NAME = "publish";
|
||||
|
||||
//AngularJS app
|
||||
var publishApp = angular.module(PUBLISH_APP_NAME, [])
|
||||
.controller('Publish', function ($sce, $scope, $http, mediaId, tab) {
|
||||
$scope.publishData = {};
|
||||
var sourceInterval;
|
||||
//AngularJS app
|
||||
var publishApp = angular
|
||||
.module(PUBLISH_APP_NAME, [])
|
||||
.controller("Publish", function ($sce, $scope, $http, mediaId, tab) {
|
||||
$scope.publishData = {};
|
||||
var sourceInterval;
|
||||
|
||||
tab.contents.on("click", "input[type='checkbox']", function () {
|
||||
var noSourcesChecked = true;
|
||||
$.each(tab.contents.find("input[type='checkbox']"), function () {
|
||||
if ($(this).is(":checked")) {
|
||||
noSourcesChecked = false;
|
||||
}
|
||||
});
|
||||
tab.contents.find(".publish-btn").prop("disabled", noSourcesChecked);
|
||||
tab.contents.on("click", "input[type='checkbox']", function () {
|
||||
var noSourcesChecked = true;
|
||||
$.each(tab.contents.find("input[type='checkbox']"), function () {
|
||||
if ($(this).is(":checked")) {
|
||||
noSourcesChecked = false;
|
||||
}
|
||||
});
|
||||
tab.contents.find(".publish-btn").prop("disabled", noSourcesChecked);
|
||||
});
|
||||
|
||||
function fetchSourceData() {
|
||||
var csrfToken = jQuery("#csrf").val();
|
||||
$http
|
||||
.get(endpoint + mediaId, { csrf_token: csrfToken })
|
||||
.success(function (json) {
|
||||
$scope.media = json;
|
||||
tab.setName($scope.media.track_title);
|
||||
});
|
||||
|
||||
// Get an object containing all sources, their translated labels,
|
||||
// and their publication state for the file with the given ID
|
||||
$http
|
||||
.get(endpoint + mediaId + "/publish-sources", {
|
||||
csrf_token: csrfToken,
|
||||
})
|
||||
.success(function (json) {
|
||||
$scope.sources = { toPublish: [], published: [] };
|
||||
$.each(json, function () {
|
||||
if (Math.abs(this.status) == 1) {
|
||||
$scope.sources.published.push(this);
|
||||
} else {
|
||||
$scope.sources.toPublish.push(this);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function fetchSourceData() {
|
||||
var csrfToken = jQuery("#csrf").val();
|
||||
$http.get(endpoint + mediaId, {csrf_token: csrfToken})
|
||||
.success(function (json) {
|
||||
$scope.media = json;
|
||||
tab.setName($scope.media.track_title);
|
||||
});
|
||||
function init() {
|
||||
fetchSourceData();
|
||||
sourceInterval = setInterval(function () {
|
||||
fetchSourceData();
|
||||
}, 5000);
|
||||
|
||||
// Get an object containing all sources, their translated labels,
|
||||
// and their publication state for the file with the given ID
|
||||
$http.get(endpoint + mediaId + '/publish-sources', {csrf_token: csrfToken})
|
||||
.success(function (json) {
|
||||
$scope.sources = { toPublish: [], published: []};
|
||||
$.each(json, function () {
|
||||
if (Math.abs(this.status) == 1) {
|
||||
$scope.sources.published.push(this);
|
||||
} else {
|
||||
$scope.sources.toPublish.push(this);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
tab.assignOnCloseHandler(function () {
|
||||
clearInterval(sourceInterval);
|
||||
$scope.$destroy();
|
||||
});
|
||||
}
|
||||
|
||||
function init() {
|
||||
fetchSourceData();
|
||||
sourceInterval = setInterval(function() {
|
||||
fetchSourceData();
|
||||
}, 5000);
|
||||
$scope.openEditDialog = function () {
|
||||
var uid = AIRTIME.library.MediaTypeStringEnum.FILE + "_" + mediaId;
|
||||
$.get(
|
||||
baseUrl + "library/edit-file-md/id/" + mediaId,
|
||||
{ format: "json" },
|
||||
function (json) {
|
||||
AIRTIME.playlist.fileMdEdit(json, uid);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
tab.assignOnCloseHandler(function () {
|
||||
clearInterval(sourceInterval);
|
||||
$scope.$destroy();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$scope.openEditDialog = function() {
|
||||
var uid = AIRTIME.library.MediaTypeStringEnum.FILE + "_" + mediaId;
|
||||
$.get(baseUrl + "library/edit-file-md/id/" + mediaId, {format: "json"}, function (json) {
|
||||
AIRTIME.playlist.fileMdEdit(json, uid);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.publish = function () {
|
||||
var data = {};
|
||||
jQuery.each($scope.publishData, function (k, v) {
|
||||
if (v) {
|
||||
data[k] = 'publish'; // FIXME: should be more robust
|
||||
}
|
||||
});
|
||||
|
||||
if (data && Object.keys(data).length > 0) {
|
||||
$http.put(endpoint + mediaId + '/publish', {csrf_token: jQuery("#csrf").val(), sources: data})
|
||||
.success(function () {
|
||||
tab.contents.find(".publish-btn").prop("disabled", true);
|
||||
fetchSourceData();
|
||||
$scope.publishData = {}; // Reset the publishData in case the user publishes
|
||||
// and unpublishes without closing the tab
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.remove = function (source) {
|
||||
var data = {};
|
||||
data[source] = 'unpublish'; // FIXME: should be more robust
|
||||
$http.put(endpoint + mediaId + '/publish', {csrf_token: jQuery("#csrf").val(), sources: data})
|
||||
.success(function () {
|
||||
fetchSourceData();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.discard = function () {
|
||||
tab.close();
|
||||
$scope.media = {};
|
||||
};
|
||||
|
||||
init();
|
||||
$scope.publish = function () {
|
||||
var data = {};
|
||||
jQuery.each($scope.publishData, function (k, v) {
|
||||
if (v) {
|
||||
data[k] = "publish"; // FIXME: should be more robust
|
||||
}
|
||||
});
|
||||
|
||||
if (data && Object.keys(data).length > 0) {
|
||||
$http
|
||||
.put(endpoint + mediaId + "/publish", {
|
||||
csrf_token: jQuery("#csrf").val(),
|
||||
sources: data,
|
||||
})
|
||||
.success(function () {
|
||||
tab.contents.find(".publish-btn").prop("disabled", true);
|
||||
fetchSourceData();
|
||||
$scope.publishData = {}; // Reset the publishData in case the user publishes
|
||||
// and unpublishes without closing the tab
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
$scope.remove = function (source) {
|
||||
var data = {};
|
||||
data[source] = "unpublish"; // FIXME: should be more robust
|
||||
$http
|
||||
.put(endpoint + mediaId + "/publish", {
|
||||
csrf_token: jQuery("#csrf").val(),
|
||||
sources: data,
|
||||
})
|
||||
.success(function () {
|
||||
fetchSourceData();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.discard = function () {
|
||||
tab.close();
|
||||
$scope.media = {};
|
||||
};
|
||||
|
||||
init();
|
||||
});
|
||||
|
||||
/*
|
||||
var selected = $("#podcast_table").find(".selected"),
|
||||
ids = [];
|
||||
var selectedData = AIRTIME.library.podcastTableWidget.getSelectedRows();
|
||||
|
@ -116,15 +130,15 @@ var AIRTIME = (function (AIRTIME) {
|
|||
ids.push(el.id);
|
||||
});*/
|
||||
|
||||
function _bootstrapAngularApp(mediaId, tab) {
|
||||
publishApp.value('mediaId', mediaId);
|
||||
publishApp.value('tab', tab);
|
||||
var wrapper = AIRTIME.tabs.getActiveTab().contents.find(".angular_wrapper");
|
||||
angular.bootstrap(wrapper.get(0), [PUBLISH_APP_NAME]);
|
||||
}
|
||||
function _bootstrapAngularApp(mediaId, tab) {
|
||||
publishApp.value("mediaId", mediaId);
|
||||
publishApp.value("tab", tab);
|
||||
var wrapper = AIRTIME.tabs.getActiveTab().contents.find(".angular_wrapper");
|
||||
angular.bootstrap(wrapper.get(0), [PUBLISH_APP_NAME]);
|
||||
}
|
||||
|
||||
mod.publishSelectedTracks = function() {
|
||||
/*
|
||||
mod.publishSelectedTracks = function () {
|
||||
/*
|
||||
_bulkAction("GET", function(json) {
|
||||
json.forEach(function(el) {
|
||||
var uid = AIRTIME.library.MediaTypeStringEnum.FILE+"_"+el.id;
|
||||
|
@ -138,18 +152,21 @@ var AIRTIME = (function (AIRTIME) {
|
|||
});
|
||||
});
|
||||
});*/
|
||||
};
|
||||
|
||||
};
|
||||
mod.openPublishDialog = function (mediaId) {
|
||||
jQuery
|
||||
.get(dialogUrl, { csrf_token: jQuery("#csrf").val() })
|
||||
.success(function (html) {
|
||||
var tab = AIRTIME.tabs.openTab(
|
||||
html,
|
||||
PUBLISH_APP_NAME + "_" + mediaId,
|
||||
null
|
||||
);
|
||||
_bootstrapAngularApp(mediaId, tab);
|
||||
});
|
||||
|
||||
mod.openPublishDialog = function(mediaId) {
|
||||
|
||||
jQuery.get(dialogUrl, { csrf_token: jQuery("#csrf").val() })
|
||||
.success(function(html) {
|
||||
var tab = AIRTIME.tabs.openTab(html, PUBLISH_APP_NAME+"_"+mediaId, null);
|
||||
_bootstrapAngularApp(mediaId, tab);
|
||||
});
|
||||
|
||||
/*
|
||||
/*
|
||||
_bulkAction("GET", function(json) {
|
||||
json.forEach(function(el) {
|
||||
var uid = AIRTIME.library.MediaTypeStringEnum.FILE+"_"+el.id;
|
||||
|
@ -162,7 +179,7 @@ var AIRTIME = (function (AIRTIME) {
|
|||
});
|
||||
});
|
||||
});*/
|
||||
};
|
||||
};
|
||||
|
||||
return AIRTIME;
|
||||
}(AIRTIME || {}));
|
||||
return AIRTIME;
|
||||
})(AIRTIME || {});
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,194 +1,229 @@
|
|||
$(document).ready(function() {
|
||||
listenerstat_content = $("#listenerstat_content")
|
||||
dateStartId = "#his_date_start",
|
||||
timeStartId = "#his_time_start",
|
||||
dateEndId = "#his_date_end",
|
||||
timeEndId = "#his_time_end";
|
||||
$(document).ready(function () {
|
||||
listenerstat_content = $("#listenerstat_content");
|
||||
(dateStartId = "#his_date_start"),
|
||||
(timeStartId = "#his_time_start"),
|
||||
(dateEndId = "#his_date_end"),
|
||||
(timeEndId = "#his_time_end");
|
||||
|
||||
// set width dynamically
|
||||
var width = $("#listenerstat_content").width();
|
||||
width = width * .91;
|
||||
$("#listenerstat_content").find("#flot_placeholder").width(width);
|
||||
$("#listenerstat_content").find("#legend").width(width);
|
||||
// set width dynamically
|
||||
var width = $("#listenerstat_content").width();
|
||||
width = width * 0.91;
|
||||
$("#listenerstat_content").find("#flot_placeholder").width(width);
|
||||
$("#listenerstat_content").find("#legend").width(width);
|
||||
|
||||
getDataAndPlot();
|
||||
getDataAndPlot();
|
||||
|
||||
listenerstat_content.find("#his_submit").click(function(){
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
getDataAndPlot(start, end);
|
||||
});
|
||||
listenerstat_content.find("#his_submit").click(function () {
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
getDataAndPlot(start, end);
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Toggle a spinner overlay so the user knows the page is processing
|
||||
*/
|
||||
function toggleOverlay() {
|
||||
$('#flot_placeholder').toggleClass('processing');
|
||||
$("#flot_placeholder").toggleClass("processing");
|
||||
}
|
||||
|
||||
function getDataAndPlot(startTimestamp, endTimestamp) {
|
||||
// Turn on the processing overlay
|
||||
toggleOverlay();
|
||||
// Turn on the processing overlay
|
||||
toggleOverlay();
|
||||
|
||||
// get data
|
||||
$.get(baseUrl+'Listenerstat/get-data', {start: startTimestamp, end: endTimestamp}, function(data){
|
||||
out = new Object();
|
||||
$.each(data, function(mpName, v){
|
||||
plotData = new Object();
|
||||
plotData.data = new Array();
|
||||
$.each(v, function(i, ele){
|
||||
plotData.label = mpName;
|
||||
var d = new Date(0);
|
||||
d.setUTCSeconds(ele.timestamp);
|
||||
plotData.data.push([d, ele.listener_count]);
|
||||
})
|
||||
out[mpName] = plotData;
|
||||
// get data
|
||||
$.get(
|
||||
baseUrl + "Listenerstat/get-data",
|
||||
{ start: startTimestamp, end: endTimestamp },
|
||||
function (data) {
|
||||
out = new Object();
|
||||
$.each(data, function (mpName, v) {
|
||||
plotData = new Object();
|
||||
plotData.data = new Array();
|
||||
$.each(v, function (i, ele) {
|
||||
plotData.label = mpName;
|
||||
var d = new Date(0);
|
||||
d.setUTCSeconds(ele.timestamp);
|
||||
plotData.data.push([d, ele.listener_count]);
|
||||
});
|
||||
plot(out);
|
||||
// Turn off the processing overlay
|
||||
toggleOverlay();
|
||||
})
|
||||
out[mpName] = plotData;
|
||||
});
|
||||
plot(out);
|
||||
// Turn off the processing overlay
|
||||
toggleOverlay();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function plot(datasets){
|
||||
var plot;
|
||||
data = null;
|
||||
function plotByChoice(doAll)
|
||||
{
|
||||
// largest date object that you can set
|
||||
firstTimestamp = new Date(8640000000000000);
|
||||
// smallest
|
||||
lastTimestamp = new Date(0);
|
||||
function plot(datasets) {
|
||||
var plot;
|
||||
data = null;
|
||||
function plotByChoice(doAll) {
|
||||
// largest date object that you can set
|
||||
firstTimestamp = new Date(8640000000000000);
|
||||
// smallest
|
||||
lastTimestamp = new Date(0);
|
||||
|
||||
data = [];
|
||||
if (doAll != null)
|
||||
{
|
||||
$.each(datasets, function(key, val) {
|
||||
if (firstTimestamp.getTime() > val.data[0][0].getTime()) {
|
||||
firstTimestamp = val.data[0][0];
|
||||
}
|
||||
if (lastTimestamp.getTime() < val.data[val.data.length-1][0].getTime()) {
|
||||
lastTimestamp = val.data[val.data.length-1][0];
|
||||
}
|
||||
data.push(val);
|
||||
});
|
||||
data = [];
|
||||
if (doAll != null) {
|
||||
$.each(datasets, function (key, val) {
|
||||
if (firstTimestamp.getTime() > val.data[0][0].getTime()) {
|
||||
firstTimestamp = val.data[0][0];
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#legend .legendCB').each(
|
||||
function(){
|
||||
if (this.checked)
|
||||
{
|
||||
data.push(datasets[this.id]);
|
||||
if (firstTimestamp.getTime() > datasets[this.id].data[0][0].getTime()) {
|
||||
firstTimestamp = datasets[this.id].data[0][0];
|
||||
}
|
||||
if (lastTimestamp.getTime() < datasets[this.id].data[datasets[this.id].data.length-1][0].getTime()) {
|
||||
lastTimestamp = datasets[this.id].data[datasets[this.id].data.length-1][0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data.push({label: this.id, data: []})
|
||||
}
|
||||
}
|
||||
);
|
||||
if (
|
||||
lastTimestamp.getTime() < val.data[val.data.length - 1][0].getTime()
|
||||
) {
|
||||
lastTimestamp = val.data[val.data.length - 1][0];
|
||||
}
|
||||
|
||||
numOfTicks = 10;
|
||||
tickSize = (lastTimestamp.getTime() - firstTimestamp.getTime())/1000/numOfTicks;
|
||||
|
||||
plot = $.plot($("#flot_placeholder"), data, {
|
||||
yaxis: { min: 0, tickDecimals: 0, color: '#d6d6d6', tickColor: '#d6d6d6' },
|
||||
xaxis: { mode: "time", timeformat:"%y/%m/%0d %H:%M", tickSize: [tickSize, "second"],
|
||||
color: '#d6d6d6', tickColor: '#d6d6d6' },
|
||||
grid: {
|
||||
hoverable: true,
|
||||
backgroundColor: { colors: ["#333", "#555"] }
|
||||
},
|
||||
series: {
|
||||
lines: {
|
||||
show: true,
|
||||
fill: 0.3
|
||||
},
|
||||
points: { show: true }
|
||||
},
|
||||
legend: {
|
||||
container: $('#legend'),
|
||||
noColumns: 5,
|
||||
color: '#c0c0c0',
|
||||
labelFormatter: function (label, series) {
|
||||
var cb = '<input style="float:left;" class="legendCB" type="checkbox" ';
|
||||
if (series.data.length > 0){
|
||||
cb += 'checked="true" ';
|
||||
}
|
||||
cb += 'id="'+label+'" /> ';
|
||||
cb += label;
|
||||
return cb;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function showTooltip(x, y, contents) {
|
||||
$('<div id="tooltip">' + contents + '</div>').css( {
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
top: y + 5,
|
||||
left: x + 5,
|
||||
border: '1px solid #fdd',
|
||||
padding: '2px',
|
||||
'background-color': '#fee',
|
||||
opacity: 0.80
|
||||
}).appendTo("body").fadeIn(200);
|
||||
data.push(val);
|
||||
});
|
||||
} else {
|
||||
$("#legend .legendCB").each(function () {
|
||||
if (this.checked) {
|
||||
data.push(datasets[this.id]);
|
||||
if (
|
||||
firstTimestamp.getTime() > datasets[this.id].data[0][0].getTime()
|
||||
) {
|
||||
firstTimestamp = datasets[this.id].data[0][0];
|
||||
}
|
||||
if (
|
||||
lastTimestamp.getTime() <
|
||||
datasets[this.id].data[
|
||||
datasets[this.id].data.length - 1
|
||||
][0].getTime()
|
||||
) {
|
||||
lastTimestamp =
|
||||
datasets[this.id].data[datasets[this.id].data.length - 1][0];
|
||||
}
|
||||
} else {
|
||||
data.push({ label: this.id, data: [] });
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#flot_placeholder").bind("plothover", function (event, pos, item) {
|
||||
if (item) {
|
||||
if (previousPoint != item.dataIndex) {
|
||||
previousPoint = item.dataIndex;
|
||||
|
||||
$("#tooltip").remove();
|
||||
var y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(item.pageX, item.pageY,
|
||||
sprintf($.i18n._("Listener Count on %s: %s"), item.series.label, Math.floor(y)));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
|
||||
$('#legend').find("input").click(function(){setTimeout(plotByChoice,100);});
|
||||
});
|
||||
}
|
||||
|
||||
plotByChoice(true);
|
||||
oBaseDatePickerSettings = {
|
||||
dateFormat: 'yy-mm-dd',
|
||||
//i18n_months, i18n_days_short are in common.js
|
||||
monthNames: i18n_months,
|
||||
dayNamesMin: i18n_days_short,
|
||||
onSelect: function(sDate, oDatePicker) {
|
||||
$(this).datepicker( "setDate", sDate );
|
||||
numOfTicks = 10;
|
||||
tickSize =
|
||||
(lastTimestamp.getTime() - firstTimestamp.getTime()) / 1000 / numOfTicks;
|
||||
|
||||
plot = $.plot($("#flot_placeholder"), data, {
|
||||
yaxis: {
|
||||
min: 0,
|
||||
tickDecimals: 0,
|
||||
color: "#d6d6d6",
|
||||
tickColor: "#d6d6d6",
|
||||
},
|
||||
xaxis: {
|
||||
mode: "time",
|
||||
timeformat: "%y/%m/%0d %H:%M",
|
||||
tickSize: [tickSize, "second"],
|
||||
color: "#d6d6d6",
|
||||
tickColor: "#d6d6d6",
|
||||
},
|
||||
grid: {
|
||||
hoverable: true,
|
||||
backgroundColor: { colors: ["#333", "#555"] },
|
||||
},
|
||||
series: {
|
||||
lines: {
|
||||
show: true,
|
||||
fill: 0.3,
|
||||
},
|
||||
points: { show: true },
|
||||
},
|
||||
legend: {
|
||||
container: $("#legend"),
|
||||
noColumns: 5,
|
||||
color: "#c0c0c0",
|
||||
labelFormatter: function (label, series) {
|
||||
var cb =
|
||||
'<input style="float:left;" class="legendCB" type="checkbox" ';
|
||||
if (series.data.length > 0) {
|
||||
cb += 'checked="true" ';
|
||||
}
|
||||
cb += 'id="' + label + '" /> ';
|
||||
cb += label;
|
||||
return cb;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
function showTooltip(x, y, contents) {
|
||||
$('<div id="tooltip">' + contents + "</div>")
|
||||
.css({
|
||||
position: "absolute",
|
||||
display: "none",
|
||||
top: y + 5,
|
||||
left: x + 5,
|
||||
border: "1px solid #fdd",
|
||||
padding: "2px",
|
||||
"background-color": "#fee",
|
||||
opacity: 0.8,
|
||||
})
|
||||
.appendTo("body")
|
||||
.fadeIn(200);
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#flot_placeholder").bind("plothover", function (event, pos, item) {
|
||||
if (item) {
|
||||
if (previousPoint != item.dataIndex) {
|
||||
previousPoint = item.dataIndex;
|
||||
|
||||
$("#tooltip").remove();
|
||||
var y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(
|
||||
item.pageX,
|
||||
item.pageY,
|
||||
sprintf(
|
||||
$.i18n._("Listener Count on %s: %s"),
|
||||
item.series.label,
|
||||
Math.floor(y)
|
||||
)
|
||||
);
|
||||
}
|
||||
};
|
||||
} else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
|
||||
oBaseTimePickerSettings = {
|
||||
showPeriodLabels: false,
|
||||
showCloseButton: true,
|
||||
closeButtonText: $.i18n._("Done"),
|
||||
showLeadingZero: false,
|
||||
defaultTime: '0:00',
|
||||
hourText: $.i18n._("Hour"),
|
||||
minuteText: $.i18n._("Minute")
|
||||
};
|
||||
$("#legend")
|
||||
.find("input")
|
||||
.click(function () {
|
||||
setTimeout(plotByChoice, 100);
|
||||
});
|
||||
}
|
||||
|
||||
listenerstat_content.find(dateStartId).datepicker(oBaseDatePickerSettings);
|
||||
listenerstat_content.find(timeStartId).timepicker(oBaseTimePickerSettings);
|
||||
listenerstat_content.find(dateEndId).datepicker(oBaseDatePickerSettings);
|
||||
listenerstat_content.find(timeEndId).timepicker(oBaseTimePickerSettings);
|
||||
plotByChoice(true);
|
||||
oBaseDatePickerSettings = {
|
||||
dateFormat: "yy-mm-dd",
|
||||
//i18n_months, i18n_days_short are in common.js
|
||||
monthNames: i18n_months,
|
||||
dayNamesMin: i18n_days_short,
|
||||
onSelect: function (sDate, oDatePicker) {
|
||||
$(this).datepicker("setDate", sDate);
|
||||
},
|
||||
};
|
||||
|
||||
oBaseTimePickerSettings = {
|
||||
showPeriodLabels: false,
|
||||
showCloseButton: true,
|
||||
closeButtonText: $.i18n._("Done"),
|
||||
showLeadingZero: false,
|
||||
defaultTime: "0:00",
|
||||
hourText: $.i18n._("Hour"),
|
||||
minuteText: $.i18n._("Minute"),
|
||||
};
|
||||
|
||||
listenerstat_content.find(dateStartId).datepicker(oBaseDatePickerSettings);
|
||||
listenerstat_content.find(timeStartId).timepicker(oBaseTimePickerSettings);
|
||||
listenerstat_content.find(dateEndId).datepicker(oBaseDatePickerSettings);
|
||||
listenerstat_content.find(timeEndId).timepicker(oBaseTimePickerSettings);
|
||||
}
|
||||
|
|
|
@ -1,127 +1,171 @@
|
|||
$(document).ready(function() {
|
||||
showlistenerstat_content = $("#showlistenerstat_content")
|
||||
dateStartId = "#his_date_start",
|
||||
timeStartId = "#his_time_start",
|
||||
dateEndId = "#his_date_end",
|
||||
timeEndId = "#his_time_end",
|
||||
show_id = "#his_show_filter";
|
||||
$(document).ready(function () {
|
||||
showlistenerstat_content = $("#showlistenerstat_content");
|
||||
(dateStartId = "#his_date_start"),
|
||||
(timeStartId = "#his_time_start"),
|
||||
(dateEndId = "#his_date_end"),
|
||||
(timeEndId = "#his_time_end"),
|
||||
(show_id = "#his_show_filter");
|
||||
|
||||
// set width dynamically
|
||||
var width = $("#showlistenerstat_content").width();
|
||||
width = width * .91;
|
||||
addDatePicker();
|
||||
// set width dynamically
|
||||
var width = $("#showlistenerstat_content").width();
|
||||
width = width * 0.91;
|
||||
addDatePicker();
|
||||
|
||||
showlistenerstat_content.find("#his_submit").click(function(){
|
||||
// var show_id = $("#sb_show_filter").val();
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
showListenerDataTable();
|
||||
});
|
||||
showlistenerstat_content.find("#his_submit").click(function () {
|
||||
// var show_id = $("#sb_show_filter").val();
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
showListenerDataTable();
|
||||
});
|
||||
});
|
||||
|
||||
function getShowData(startTimestamp, endTimestamp, show_id) {
|
||||
// get data
|
||||
$.get(baseUrl+'Listenerstat/get-all-show-data', {start: startTimestamp, end: endTimestamp }, function(data) {
|
||||
return data;
|
||||
});
|
||||
// get data
|
||||
$.get(
|
||||
baseUrl + "Listenerstat/get-all-show-data",
|
||||
{ start: startTimestamp, end: endTimestamp },
|
||||
function (data) {
|
||||
return data;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function addDatePicker() {
|
||||
oBaseDatePickerSettings = {
|
||||
dateFormat: "yy-mm-dd",
|
||||
//i18n_months, i18n_days_short are in common.js
|
||||
monthNames: i18n_months,
|
||||
dayNamesMin: i18n_days_short,
|
||||
onSelect: function (sDate, oDatePicker) {
|
||||
$(this).datepicker("setDate", sDate);
|
||||
},
|
||||
onClose: validateTimeRange,
|
||||
};
|
||||
oBaseTimePickerSettings = {
|
||||
showPeriodLabels: false,
|
||||
showCloseButton: true,
|
||||
closeButtonText: $.i18n._("Done"),
|
||||
showLeadingZero: false,
|
||||
defaultTime: "0:00",
|
||||
hourText: $.i18n._("Hour"),
|
||||
minuteText: $.i18n._("Minute"),
|
||||
onClose: validateTimeRange,
|
||||
};
|
||||
|
||||
oBaseDatePickerSettings = {
|
||||
dateFormat: 'yy-mm-dd',
|
||||
//i18n_months, i18n_days_short are in common.js
|
||||
monthNames: i18n_months,
|
||||
dayNamesMin: i18n_days_short,
|
||||
onSelect: function(sDate, oDatePicker) {
|
||||
$(this).datepicker( "setDate", sDate );
|
||||
},
|
||||
onClose: validateTimeRange
|
||||
};
|
||||
oBaseTimePickerSettings = {
|
||||
showPeriodLabels: false,
|
||||
showCloseButton: true,
|
||||
closeButtonText: $.i18n._("Done"),
|
||||
showLeadingZero: false,
|
||||
defaultTime: '0:00',
|
||||
hourText: $.i18n._("Hour"),
|
||||
minuteText: $.i18n._("Minute"),
|
||||
onClose: validateTimeRange
|
||||
};
|
||||
|
||||
showlistenerstat_content.find(dateStartId).datepicker(oBaseDatePickerSettings).blur(validateTimeRange());
|
||||
showlistenerstat_content.find(timeStartId).timepicker(oBaseTimePickerSettings).blur(validateTimeRange());
|
||||
showlistenerstat_content.find(dateEndId).datepicker(oBaseDatePickerSettings).blur(validateTimeRange());
|
||||
showlistenerstat_content.find(timeEndId).timepicker(oBaseTimePickerSettings).blur(validateTimeRange());
|
||||
showlistenerstat_content
|
||||
.find(dateStartId)
|
||||
.datepicker(oBaseDatePickerSettings)
|
||||
.blur(validateTimeRange());
|
||||
showlistenerstat_content
|
||||
.find(timeStartId)
|
||||
.timepicker(oBaseTimePickerSettings)
|
||||
.blur(validateTimeRange());
|
||||
showlistenerstat_content
|
||||
.find(dateEndId)
|
||||
.datepicker(oBaseDatePickerSettings)
|
||||
.blur(validateTimeRange());
|
||||
showlistenerstat_content
|
||||
.find(timeEndId)
|
||||
.timepicker(oBaseTimePickerSettings)
|
||||
.blur(validateTimeRange());
|
||||
}
|
||||
|
||||
function getStartEnd() {
|
||||
|
||||
return AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
return AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
}
|
||||
|
||||
function validateTimeRange() {
|
||||
var oRange,
|
||||
inputs = $('.date_form > input'),
|
||||
error_window = $('.error_window'),
|
||||
start, end;
|
||||
var oRange,
|
||||
inputs = $(".date_form > input"),
|
||||
error_window = $(".error_window"),
|
||||
start,
|
||||
end;
|
||||
|
||||
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
oRange = AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
|
||||
start = oRange.start;
|
||||
end = oRange.end;
|
||||
start = oRange.start;
|
||||
end = oRange.end;
|
||||
|
||||
if (end >= start) {
|
||||
error_window.removeClass('error');
|
||||
$('.error_window').html('');
|
||||
}
|
||||
else {
|
||||
error_window.addClass('error');
|
||||
console.log('bad')
|
||||
$('.error_window').html('Your start date time is after your end date time');
|
||||
}
|
||||
if (end >= start) {
|
||||
error_window.removeClass("error");
|
||||
$(".error_window").html("");
|
||||
} else {
|
||||
error_window.addClass("error");
|
||||
console.log("bad");
|
||||
$(".error_window").html("Your start date time is after your end date time");
|
||||
}
|
||||
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
isValid: end >= start
|
||||
};
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
isValid: end >= start,
|
||||
};
|
||||
}
|
||||
|
||||
function showListenerDataTable() {
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
var start = oRange.start;
|
||||
var lengthMenu = [[10, 25, 50, 100, 500, -1], [10, 25, 50, 100, 500, $.i18n._("All")]];
|
||||
var end = oRange.end;
|
||||
var sDom = 'l<"dt-process-rel"r><"H"T><"dataTables_scrolling"t><"F"ip>';
|
||||
var show_id = $("#sb_show_filter").val();
|
||||
var dt = $('#show_stats_datatable');
|
||||
info = getStartEnd();
|
||||
dt.dataTable({
|
||||
"aoColumns": [
|
||||
/* first name */ {"sName": "show", "mDataProp": "show"},
|
||||
/* air date */ {"sName": "time", "mDataProp": "time"},
|
||||
/* last name */ {"sName": "average_number_of_listeners", "mDataProp": "average_number_of_listeners"},
|
||||
/* last name */ {"sName": "maximum_number_of_listeners", "mDataProp": "maximum_number_of_listeners"}],
|
||||
"sAjaxSource": baseUrl+'Listenerstat/get-all-show-data',
|
||||
"sAjaxDataProp": "",
|
||||
"bDestroy": true,
|
||||
"aLengthMenu": lengthMenu,
|
||||
"iDisplayLength": 25,
|
||||
"sPaginationType": "full_numbers",
|
||||
"bJQueryUI": true,
|
||||
"bAutoWidth": true,
|
||||
"sDom": sDom,
|
||||
"fnServerData": function ( sSource, aoData, fnCallback ) {
|
||||
aoData.push({"start": start, "end": end});
|
||||
$.ajax( {
|
||||
"dataType": 'json',
|
||||
"type": "POST",
|
||||
"url": sSource,
|
||||
"data": {"start": start, "end": end},
|
||||
"success": fnCallback
|
||||
} );
|
||||
},
|
||||
});
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(
|
||||
dateStartId,
|
||||
timeStartId,
|
||||
dateEndId,
|
||||
timeEndId
|
||||
);
|
||||
var start = oRange.start;
|
||||
var lengthMenu = [
|
||||
[10, 25, 50, 100, 500, -1],
|
||||
[10, 25, 50, 100, 500, $.i18n._("All")],
|
||||
];
|
||||
var end = oRange.end;
|
||||
var sDom = 'l<"dt-process-rel"r><"H"T><"dataTables_scrolling"t><"F"ip>';
|
||||
var show_id = $("#sb_show_filter").val();
|
||||
var dt = $("#show_stats_datatable");
|
||||
info = getStartEnd();
|
||||
dt.dataTable({
|
||||
aoColumns: [
|
||||
/* first name */ { sName: "show", mDataProp: "show" },
|
||||
/* air date */ { sName: "time", mDataProp: "time" },
|
||||
/* last name */ {
|
||||
sName: "average_number_of_listeners",
|
||||
mDataProp: "average_number_of_listeners",
|
||||
},
|
||||
/* last name */ {
|
||||
sName: "maximum_number_of_listeners",
|
||||
mDataProp: "maximum_number_of_listeners",
|
||||
},
|
||||
],
|
||||
sAjaxSource: baseUrl + "Listenerstat/get-all-show-data",
|
||||
sAjaxDataProp: "",
|
||||
bDestroy: true,
|
||||
aLengthMenu: lengthMenu,
|
||||
iDisplayLength: 25,
|
||||
sPaginationType: "full_numbers",
|
||||
bJQueryUI: true,
|
||||
bAutoWidth: true,
|
||||
sDom: sDom,
|
||||
fnServerData: function (sSource, aoData, fnCallback) {
|
||||
aoData.push({ start: start, end: end });
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "POST",
|
||||
url: sSource,
|
||||
data: { start: start, end: end },
|
||||
success: fnCallback,
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
$(window).load(function() {
|
||||
$("#username").focus();
|
||||
$(window).load(function () {
|
||||
$("#username").focus();
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#submit").click(function() {
|
||||
Cookies.set('airtime_locale', $('#locale').val(), {path: '/'});
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$("#submit").click(function () {
|
||||
Cookies.set("airtime_locale", $("#locale").val(), { path: "/" });
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
var dialog = $("#lang-timezone-popup");
|
||||
|
||||
var dialog = $("#lang-timezone-popup");
|
||||
|
||||
dialog.dialog({
|
||||
autoOpen: false,
|
||||
width: 500,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
closeOnEscape: false,
|
||||
position:['center','center'],
|
||||
dialogClass: 'no-close',
|
||||
buttons: [
|
||||
/* Testing removing the Not Now button for higher engagement
|
||||
dialog.dialog({
|
||||
autoOpen: false,
|
||||
width: 500,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
closeOnEscape: false,
|
||||
position: ["center", "center"],
|
||||
dialogClass: "no-close",
|
||||
buttons: [
|
||||
/* Testing removing the Not Now button for higher engagement
|
||||
{
|
||||
id: "setup-later",
|
||||
text: $.i18n._("Not Now"),
|
||||
|
@ -20,32 +19,32 @@ $(document).ready(function() {
|
|||
$(this).dialog("close");
|
||||
}
|
||||
},*/
|
||||
{
|
||||
id: "help_airtime",
|
||||
text: $.i18n._("OK"),
|
||||
"class": "btn",
|
||||
click: function() {
|
||||
$("#lang-timezone-form").submit();
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
{
|
||||
id: "help_airtime",
|
||||
text: $.i18n._("OK"),
|
||||
class: "btn",
|
||||
click: function () {
|
||||
$("#lang-timezone-form").submit();
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
var language = window.navigator.userLanguage || window.navigator.language;
|
||||
if (language === undefined) {
|
||||
language = "en_CA";
|
||||
}
|
||||
language = language.replace("-", "_");
|
||||
$("#setup_language").val(language);
|
||||
var language = window.navigator.userLanguage || window.navigator.language;
|
||||
if (language === undefined) {
|
||||
language = "en_CA";
|
||||
}
|
||||
language = language.replace("-", "_");
|
||||
$("#setup_language").val(language);
|
||||
|
||||
dayjs.extend(utc)
|
||||
dayjs.extend(timezone)
|
||||
dayjs.extend(utc);
|
||||
dayjs.extend(timezone);
|
||||
|
||||
var timezone_name = dayjs.tz.guess();
|
||||
if (timezone_name === undefined) {
|
||||
timezone_name = "America/Toronto";
|
||||
}
|
||||
$("#setup_timezone").val(timezone_name);
|
||||
var timezone_name = dayjs.tz.guess();
|
||||
if (timezone_name === undefined) {
|
||||
timezone_name = "America/Toronto";
|
||||
}
|
||||
$("#setup_timezone").val(timezone_name);
|
||||
|
||||
dialog.dialog('open');
|
||||
dialog.dialog("open");
|
||||
});
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue