diff --git a/airtime_mvc/application/common/TaskManager.php b/airtime_mvc/application/common/TaskManager.php index 4acbd9387..d8ab9c10d 100644 --- a/airtime_mvc/application/common/TaskManager.php +++ b/airtime_mvc/application/common/TaskManager.php @@ -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(); } /** diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index fdfff94fb..684eedb76 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -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(); diff --git a/airtime_mvc/application/views/scripts/library/publish-dialog.phtml b/airtime_mvc/application/views/scripts/library/publish-dialog.phtml index 5d95b9ab9..00fdc59b2 100644 --- a/airtime_mvc/application/views/scripts/library/publish-dialog.phtml +++ b/airtime_mvc/application/views/scripts/library/publish-dialog.phtml @@ -21,7 +21,7 @@
- +
" diff --git a/airtime_mvc/public/css/dashboard.css b/airtime_mvc/public/css/dashboard.css index 0faa5f602..350f94764 100644 --- a/airtime_mvc/public/css/dashboard.css +++ b/airtime_mvc/public/css/dashboard.css @@ -67,6 +67,9 @@ #library_title { padding: 5px 5px 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } #library_content { diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index bb653c0dc..b2bc13168 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -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); } }, diff --git a/airtime_mvc/public/js/airtime/widgets/table.js b/airtime_mvc/public/js/airtime/widgets/table.js index c12339af5..aaf3b75b9 100644 --- a/airtime_mvc/public/js/airtime/widgets/table.js +++ b/airtime_mvc/public/js/airtime/widgets/table.js @@ -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;