Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
32b1ee95b7
|
@ -76,6 +76,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|||
|
||||
|
||||
$view->headScript()->appendFile($baseUrl.'/js/airtime/common/common.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$view->headScript()->appendFile($baseUrl.'/js/airtime/common/audioplaytest.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
|
||||
$user = Application_Model_User::getCurrentUser();
|
||||
if (!is_null($user)){
|
||||
|
@ -85,6 +86,8 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|||
}
|
||||
$view->headScript()->appendScript("var userType = '$userType';");
|
||||
|
||||
|
||||
|
||||
if (isset($CC_CONFIG['demo']) && $CC_CONFIG['demo'] == 1) {
|
||||
$view->headScript()->appendFile($baseUrl.'/js/libs/google-analytics.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ class RabbitMqPlugin extends Zend_Controller_Plugin_Abstract
|
|||
}
|
||||
}
|
||||
|
||||
if (memory_get_peak_usage() > 25*pow(2, 20)) {
|
||||
if (memory_get_peak_usage() > 30*pow(2, 20)) {
|
||||
|
||||
Logging::debug("Peak memory usage: "
|
||||
.(memory_get_peak_usage()/1000000)
|
||||
|
|
|
@ -205,7 +205,8 @@ SELECT pc.id AS id,
|
|||
f.track_title,
|
||||
f.artist_name AS creator,
|
||||
f.file_exists AS EXISTS,
|
||||
f.filepath AS path
|
||||
f.filepath AS path,
|
||||
f.mime as mime
|
||||
FROM cc_blockcontents AS pc
|
||||
LEFT JOIN cc_files AS f ON pc.file_id=f.id
|
||||
LEFT JOIN cc_block AS bl ON pc.block_id = bl.id
|
||||
|
|
|
@ -172,7 +172,8 @@ class Application_Model_Playlist implements Application_Model_LibraryEditable
|
|||
f.artist_name AS creator,
|
||||
f.file_exists AS EXISTS,
|
||||
f.filepath AS path,
|
||||
f.length AS orig_length
|
||||
f.length AS orig_length,
|
||||
f.mime AS mime
|
||||
FROM cc_playlistcontents AS pc
|
||||
JOIN cc_files AS f ON pc.file_id=f.id
|
||||
WHERE pc.playlist_id = :playlist_id1
|
||||
|
@ -190,7 +191,8 @@ class Application_Model_Playlist implements Application_Model_LibraryEditable
|
|||
sub.login AS creator,
|
||||
't'::boolean AS EXISTS,
|
||||
ws.url AS path,
|
||||
ws.length AS orig_length
|
||||
ws.length AS orig_length,
|
||||
ws.mime as mime
|
||||
FROM cc_playlistcontents AS pc
|
||||
JOIN cc_webstream AS ws ON pc.stream_id=ws.id
|
||||
LEFT JOIN cc_subjs AS sub ON sub.id = ws.creator_id
|
||||
|
@ -209,7 +211,8 @@ class Application_Model_Playlist implements Application_Model_LibraryEditable
|
|||
sbj.login AS creator,
|
||||
't'::boolean AS EXISTS,
|
||||
NULL::text AS path,
|
||||
bl.length AS orig_length
|
||||
bl.length AS orig_length,
|
||||
NULL::text as mime
|
||||
FROM cc_playlistcontents AS pc
|
||||
JOIN cc_block AS bl ON pc.block_id=bl.id
|
||||
JOIN cc_subjs AS sbj ON bl.creator_id=sbj.id
|
||||
|
|
|
@ -378,14 +378,19 @@ SQL;
|
|||
|
||||
public static function UpdateBrodcastedStatus($dateTime, $value)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$con = Propel::getConnection();
|
||||
$now = $dateTime->format("Y-m-d H:i:s");
|
||||
$sql = "UPDATE ".$CC_CONFIG['scheduleTable']
|
||||
." SET broadcasted=$value"
|
||||
." WHERE starts <= '$now' AND ends >= '$now'";
|
||||
$retVal = $con->exec($sql);
|
||||
|
||||
$sql = <<<SQL
|
||||
UPDATE cc_schedule
|
||||
SET broadcasted=:broadcastedValue
|
||||
WHERE starts <= :starts::TIMESTAMP
|
||||
AND ends >= :ends::TIMESTAMP
|
||||
SQL;
|
||||
|
||||
$retVal = Application_Common_Database::prepareAndExecute($sql, array(
|
||||
':broadcastedValue' => $value,
|
||||
':starts' => $now,
|
||||
':ends' => $now), 'execute');
|
||||
return $retVal;
|
||||
}
|
||||
|
||||
|
@ -519,41 +524,38 @@ SQL;
|
|||
public static function getItems($p_startTime, $p_endTime)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$baseQuery = <<<SQL
|
||||
SELECT st.file_id AS file_id,
|
||||
st.id AS id,
|
||||
st.instance_id AS instance_id,
|
||||
st.starts AS start,
|
||||
st.ends AS end,
|
||||
st.cue_in AS cue_in,
|
||||
st.cue_out AS cue_out,
|
||||
st.fade_in AS fade_in,
|
||||
st.fade_out AS fade_out,
|
||||
si.starts AS show_start,
|
||||
si.ends AS show_end,
|
||||
s.name AS show_name,
|
||||
f.id AS file_id,
|
||||
f.replay_gain AS replay_gain,
|
||||
ws.id AS stream_id,
|
||||
ws.url AS url
|
||||
FROM cc_schedule AS st
|
||||
LEFT JOIN cc_show_instances AS si ON st.instance_id = si.id
|
||||
LEFT JOIN cc_show AS s ON s.id = si.show_id
|
||||
LEFT JOIN cc_files AS f ON st.file_id = f.id
|
||||
LEFT JOIN cc_webstream AS ws ON st.stream_id = ws.id
|
||||
SQL;
|
||||
$predicates = <<<SQL
|
||||
WHERE st.ends > :startTime1
|
||||
AND st.starts < :endTime
|
||||
AND st.playout_status > 0
|
||||
AND si.ends > :startTime2
|
||||
ORDER BY st.starts
|
||||
SQL;
|
||||
|
||||
$baseQuery = "SELECT st.file_id AS file_id,"
|
||||
." st.id AS id,"
|
||||
." st.instance_id AS instance_id,"
|
||||
." st.starts AS start,"
|
||||
." st.ends AS end,"
|
||||
." st.cue_in AS cue_in,"
|
||||
." st.cue_out AS cue_out,"
|
||||
." st.fade_in AS fade_in,"
|
||||
." st.fade_out AS fade_out,"
|
||||
//." st.type AS type,"
|
||||
." si.starts AS show_start,"
|
||||
." si.ends AS show_end,"
|
||||
." s.name AS show_name,"
|
||||
." f.id AS file_id,"
|
||||
." f.replay_gain AS replay_gain,"
|
||||
." ws.id as stream_id,"
|
||||
." ws.url as url"
|
||||
." FROM cc_schedule AS st"
|
||||
." LEFT JOIN cc_show_instances AS si"
|
||||
." ON st.instance_id = si.id"
|
||||
." LEFT JOIN cc_show as s"
|
||||
." ON s.id = si.show_id"
|
||||
." LEFT JOIN cc_files AS f"
|
||||
." ON st.file_id = f.id"
|
||||
." LEFT JOIN cc_webstream AS ws"
|
||||
." ON st.stream_id = ws.id";
|
||||
|
||||
$predicates = " WHERE st.ends > :startTime1"
|
||||
." AND st.starts < :endTime"
|
||||
." AND st.playout_status > 0"
|
||||
." AND si.ends > :startTime2"
|
||||
." ORDER BY st.starts";
|
||||
|
||||
$sql = $baseQuery.$predicates;
|
||||
$sql = $baseQuery." ".$predicates;
|
||||
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql,
|
||||
array(':startTime1'=>$p_startTime, ':endTime'=>$p_endTime, ':startTime2'=>$p_startTime));
|
||||
|
@ -571,7 +573,7 @@ WHERE st.ends > :startTime1
|
|||
ORDER BY st.starts LIMIT 3
|
||||
SQL;
|
||||
|
||||
$sql = " ".$baseQuery.$predicates;
|
||||
$sql = " ".$baseQuery." ".$predicates." ";
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql,
|
||||
array(
|
||||
':startTime1' => $p_startTime,
|
||||
|
@ -718,8 +720,8 @@ SQL;
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
|
||||
/* if $p_fromDateTime and $p_toDateTime function parameters are null, then set range
|
||||
* from "now" to "now + 24 hours". */
|
||||
/* if $p_fromDateTime and $p_toDateTime function parameters are null,
|
||||
then set range * from "now" to "now + 24 hours". */
|
||||
if (is_null($p_fromDateTime)) {
|
||||
$t1 = new DateTime("@".time());
|
||||
$range_start = $t1->format("Y-m-d H:i:s");
|
||||
|
@ -809,7 +811,7 @@ SQL;
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
$sql = "DELETE FROM ".$CC_CONFIG["scheduleTable"]." WHERE file_id=:file_id";
|
||||
$res = Application_Common_Database::prepareAndExecute($sql, array(':file_id'=>$fileId), 'execute');
|
||||
Application_Common_Database::prepareAndExecute($sql, array(':file_id'=>$fileId), 'execute');
|
||||
}
|
||||
|
||||
public static function createNewFormSections($p_view)
|
||||
|
|
|
@ -13,7 +13,7 @@ if ($item['type'] == 2) {
|
|||
<div class="list-item-container">
|
||||
|
||||
<?php if ($item['type'] == 0 && $item['exists']):?>
|
||||
<div class="big_play" audioFile="<?php echo $item["id"]; ?>">
|
||||
<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']): ?>
|
||||
|
|
|
@ -114,7 +114,6 @@
|
|||
}
|
||||
|
||||
.ui-icon-closethick,
|
||||
.ui-icon-play,
|
||||
.spl_fade_control,
|
||||
.spl_text_input {
|
||||
cursor: pointer;
|
||||
|
@ -164,15 +163,31 @@
|
|||
background: -moz-linear-gradient(top, #707070 0, #666666 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666));
|
||||
}
|
||||
#spl_sortable div.big_play_disabled {
|
||||
display:block;
|
||||
width:20px;
|
||||
height:50px;
|
||||
margin:2px 0 0 2px;
|
||||
text-align:center;
|
||||
border:1px solid #5b5b5b;
|
||||
float:left;
|
||||
background-color: #707070;
|
||||
background: -moz-linear-gradient(top, #707070 0, #666666 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666));
|
||||
}
|
||||
#spl_sortable div.big_play:hover {
|
||||
border:1px solid #282828;
|
||||
background-color: #3b3b3b;
|
||||
background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929));
|
||||
cursor: pointer;
|
||||
}
|
||||
#spl_sortable div.big_play .ui-icon {
|
||||
margin: 17px 0 0 1px;
|
||||
}
|
||||
#spl_sortable div.big_play_disabled .ui-icon {
|
||||
margin: 17px 0 0 1px;
|
||||
}
|
||||
|
||||
#spl_sortable div.big_play:hover .ui-icon-play, #spl_sortable div.big_play:hover .ui-icon-pause {
|
||||
background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png);
|
||||
|
|
|
@ -2908,3 +2908,18 @@ dd .stream-status {
|
|||
outline: 0;
|
||||
border-top-color:#333333
|
||||
}
|
||||
.dark_class
|
||||
{
|
||||
background-color: black;
|
||||
filter:alpha(opacity=20); /* IE */
|
||||
opacity: 0.2; /* Safari, Opera */
|
||||
-moz-opacity:0.20; /* FireFox */
|
||||
z-index: 20;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-repeat:no-repeat;
|
||||
background-position:center;
|
||||
/* position:absolute; */
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
var audio = new Audio();
|
||||
supportedAudio = {};
|
||||
supportedAudio["audio/ogg"] = !!audio.canPlayType && audio.canPlayType('audio/ogg; codecs="vorbis"') != "";
|
||||
supportedAudio["audio/mp3"] = !!audio.canPlayType && audio.canPlayType('audio/mp3') != "";
|
||||
supportedAudio["audio/mp4"] = !!audio.canPlayType && audio.canPlayType('audio/mp4') != "";
|
||||
supportedAudio["audio/x-flac"] = !!audio.canPlayType && audio.canPlayType('audio/x-flac') != "";
|
||||
|
||||
function isAudioSupported(mime){
|
||||
return mime in supportedAudio && supportedAudio[mime];
|
||||
}
|
|
@ -928,7 +928,7 @@ function addQtipToSCIcons(){
|
|||
else if($(this).hasClass("soundcloud")){
|
||||
$(this).qtip({
|
||||
content: {
|
||||
text: "Retreiving data from the server...",
|
||||
text: "Retrieving data from the server...",
|
||||
ajax: {
|
||||
url: "/Library/get-upload-to-soundcloud-status",
|
||||
type: "post",
|
||||
|
|
|
@ -378,10 +378,34 @@ var AIRTIME = (function(AIRTIME){
|
|||
$pl.delegate(".spl_cue",
|
||||
{"click": openCueEditor});
|
||||
|
||||
//add the play function to the play icon
|
||||
$pl.delegate(".big_play",
|
||||
{"click": openAudioPreview});
|
||||
|
||||
$.each($(".big_play"), function(index, value){
|
||||
var mime = $(value).attr("data-mime-type");
|
||||
if (isAudioSupported(mime)) {
|
||||
$(value).bind("click", openAudioPreview);
|
||||
} else {
|
||||
$(value).attr("class", "big_play_disabled dark_class");
|
||||
$(value).qtip({
|
||||
content: 'Your browser does not support playing this file type: "'+ mime +'"',
|
||||
show: 'mouseover',
|
||||
hide: {
|
||||
delay: 500,
|
||||
fixed: true
|
||||
},
|
||||
style: {
|
||||
border: {
|
||||
width: 0,
|
||||
radius: 4
|
||||
},
|
||||
classes: "ui-tooltip-dark ui-tooltip-rounded"
|
||||
},
|
||||
position: {
|
||||
my: "left bottom",
|
||||
at: "right center"
|
||||
},
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
$pl.delegate(".spl_block_expand",
|
||||
{"click": function(ev){
|
||||
var id = parseInt($(this).attr("id").split("_").pop(), 10);
|
||||
|
|
Loading…
Reference in New Issue