From 2523391d4dd9e2b078ad50f3405af55db0198e40 Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Tue, 17 Nov 2015 11:53:02 -0500 Subject: [PATCH 1/3] Fix itunes duration format in station podcast xml --- airtime_mvc/application/services/PodcastService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index fdfff94fb..fee674377 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -437,7 +437,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(); From c12848b2de0d3b24501816f5bf1f8cf70dd9e019 Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Tue, 17 Nov 2015 12:26:21 -0500 Subject: [PATCH 2/3] * SAAS-1212 - fix validation errors in station podcast rss * Append podcast title to heading in episodes view --- airtime_mvc/application/common/TaskManager.php | 3 ++- airtime_mvc/application/services/PodcastService.php | 6 ++++-- airtime_mvc/public/css/dashboard.css | 3 +++ airtime_mvc/public/js/airtime/library/library.js | 2 ++ airtime_mvc/public/js/airtime/widgets/table.js | 7 +++++-- 5 files changed, 16 insertions(+), 5 deletions(-) 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 fee674377..36797f05e 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(); @@ -406,7 +406,9 @@ class Application_Service_PodcastService //category foreach($itunesCategories as $c) { - self::addEscapedChild($item, "category", $c); + if (!empty($c)) { + self::addEscapedChild($item, "category", $c); + } } //guid 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; From 57d9245fbf5b8a93a2d29309e6d80df229eeb0f3 Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Tue, 17 Nov 2015 12:35:31 -0500 Subject: [PATCH 3/3] SAAS-1214 - add link to preferences from publish dialog when source is disconnected; fix missing check in station rss generation --- airtime_mvc/application/services/PodcastService.php | 6 ++++-- .../application/views/scripts/library/publish-dialog.phtml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index 36797f05e..684eedb76 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -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(); 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 @@
- +
"