Merge branch 'saas-dev-publishing' of https://github.com/sourcefabric/Airtime into saas-dev-publishing

This commit is contained in:
drigato 2015-11-17 15:20:17 -05:00
commit 031c4dca41
6 changed files with 22 additions and 9 deletions

View file

@ -237,7 +237,8 @@ class PodcastTask implements AirtimeTask {
* @return bool true if the podcast polling interval has passed
*/
public function shouldBeRun() {
return PodcastManager::hasPodcastPollIntervalPassed();
$overQuota = Application_Model_Systemstatus::isDiskOverQuota();
return !$overQuota && PodcastManager::hasPodcastPollIntervalPassed();
}
/**

View file

@ -160,7 +160,7 @@ class Application_Service_PodcastService
$podcast->setDbDescription(Application_Model_Preference::GetStationDescription());
$podcast->setDbLink(Application_Common_HTTPHelper::getStationUrl());
$podcast->setDbLanguage(Application_Model_Preference::GetLocale());
$podcast->setDbLanguage(explode('_', Application_Model_Preference::GetLocale())[0]);
$podcast->setDbCreator(Application_Model_Preference::GetStationName());
$podcast->setDbOwner(self::getOwnerId());
$podcast->save();
@ -387,8 +387,10 @@ class Application_Service_PodcastService
// Need to split categories into separate tags
$itunesCategories = explode(",", $podcast->getDbItunesCategory());
foreach ($itunesCategories as $c) {
$category = $channel->addChild("xmlns:itunes:category");
$category->addAttribute("text", $c);
if (!empty($c)) {
$category = $channel->addChild("xmlns:itunes:category");
$category->addAttribute("text", $c);
}
}
$episodes = PodcastEpisodesQuery::create()->filterByDbPodcastId($stationPodcastId)->find();
@ -406,7 +408,9 @@ class Application_Service_PodcastService
//category
foreach($itunesCategories as $c) {
self::addEscapedChild($item, "category", $c);
if (!empty($c)) {
self::addEscapedChild($item, "category", $c);
}
}
//guid
@ -437,7 +441,7 @@ class Application_Service_PodcastService
//itunes:explicit - skip this?
//itunes:duration
self::addEscapedChild($item, "xmlns:itunes:duration", $publishedFile->getDbLength());
self::addEscapedChild($item, "xmlns:itunes:duration", explode('.', $publishedFile->getDbLength())[0]);
}
return $xml->asXML();

View file

@ -21,7 +21,7 @@
<div class="publish-sources" ng-repeat="source in sources.toPublish">
<input ng-disabled="{{source.status == 2}}" ng-model="publishData[source.source]" type="checkbox" name="publish_sources" id="{{source.source}}">
<label class="source-name" for="{{source.source}}">{{source.label}}</label>
<span ng-if="source.status == 2" style="margin: auto"><?php echo _("You aren't connected to this source.") ?></span>
<span ng-if="source.status == 2" style="margin: auto"><a href="/preference#{{source.source}}-heading"><?php echo _("You aren't connected to this source.") ?></a></span>
</div>
<div ng-if="sources.toPublish.length == 0">
<?php echo _("You have already published this track to all available sources!") . "<br/>"

View file

@ -67,6 +67,9 @@
#library_title {
padding: 5px 5px 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
#library_content {

View file

@ -1427,6 +1427,7 @@ var AIRTIME = (function(AIRTIME) {
// in the left-hand pane.
mod.podcastTableWidget.assignDblClickHandler(function () {
var podcast = mod.podcastDataTable.fnGetData(this);
$("#library_filter").append(" - " + $(this).find(".library_title").text());
openPodcastEpisodeTable(podcast);
});
@ -1448,6 +1449,7 @@ var AIRTIME = (function(AIRTIME) {
elementId : '',
eventHandlers : {
click: function () {
$("#library_filter").text($.i18n._("Podcasts"));
mod.setCurrentTable(mod.DataTableTypeEnum.PODCAST);
}
},

View file

@ -94,7 +94,7 @@ var AIRTIME = (function(AIRTIME) {
"fnPreDrawCallback": function () {
$("#draggingContainer").remove();
},
"fnServerData": self._fetchData,
"fnServerData": self._fetchData.bind(self),
//"fnInitComplete" : function() { self._setupEventHandlers(bItemSelection) }
"fnDrawCallback": function () {
self.clearSelection();
@ -421,12 +421,14 @@ var AIRTIME = (function(AIRTIME) {
var sortColName = "";
var sortDir = "";
var search = self._$wrapperDOMNode.closest(".dataTables_wrapper").find(".dataTables_filter").find("input").val();
if (oSettings.aaSorting.length > 0) {
var sortColIdx = oSettings.aaSorting[0][0];
sortColName = oSettings.aoColumns[sortColIdx].mDataProp;
sortDir = oSettings.aaSorting[0][1].toUpperCase();
}
// FIXME: We should probably just be sending aoData back here..?
$.ajax({
"dataType": 'json',
"type": "GET",
@ -435,7 +437,8 @@ var AIRTIME = (function(AIRTIME) {
"limit": oSettings._iDisplayLength,
"offset": oSettings._iDisplayStart,
"sort": sortColName,
'sort_dir': sortDir,
"sort_dir": sortDir,
"search": search
},
"success": function (json, textStatus, jqXHR) {
var rawResponseJSON = json;