From c12848b2de0d3b24501816f5bf1f8cf70dd9e019 Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Tue, 17 Nov 2015 12:26:21 -0500 Subject: [PATCH] * 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;