diff --git a/airtime_mvc/application/controllers/LocaleController.php b/airtime_mvc/application/controllers/LocaleController.php index de2b8c22e..6cce58cb8 100644 --- a/airtime_mvc/application/controllers/LocaleController.php +++ b/airtime_mvc/application/controllers/LocaleController.php @@ -28,6 +28,7 @@ class LocaleController extends Zend_Controller_Action $translations = array ( //common/common.js "Audio Player" => _("Audio Player"), + "Something went wrong!" => _("Something went wrong!"), //dashboard/dashboard.js "Recording:" => _("Recording:"), "Master Stream" => _("Master Stream"), diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index 99fdee7c9..543b2870b 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -217,7 +217,6 @@ class PlaylistController extends Zend_Controller_Action $id = $this->_getParam('id', null); $type = $this->_getParam('type'); $objInfo = Application_Model_Library::getObjInfo($type); - Logging::info("editing {$type} {$id}"); // if (!is_null($id)) { Application_Model_Library::changePlaylist($id, $type); diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index 8f2945361..9fec198a3 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -188,8 +188,6 @@ class Application_Model_Block implements Application_Model_LibraryEditable */ public function getContents($filterFiles=false) { - Logging::info("Getting contents for block {$this->id}"); - $sql = <<getRequest()->getRawBody(), true); $requestData = $this->getRequest()->getPost(); $podcast = Application_Service_PodcastService::createFromFeedUrl($requestData["url"]); @@ -94,17 +93,16 @@ class Rest_PodcastController extends Zend_Rest_Controller catch (PodcastLimitReachedException $e) { $this->getResponse() ->setHttpResponseCode(400) - ->appendBody("ERROR: Podcast limit reached."); + ->appendBody("Podcast limit reached."); } catch (InvalidPodcastException $e) { $this->getResponse() ->setHttpResponseCode(400) - ->appendBody("ERROR: Invalid Podcast."); + ->appendBody("Invalid podcast!"); } catch (Exception $e) { - $this->unknownErrorResponse(); Logging::error($e->getMessage()); - throw $e; + $this->unknownErrorResponse(); } } @@ -215,7 +213,7 @@ class Rest_PodcastController extends Zend_Rest_Controller private function unknownErrorResponse() { $resp = $this->getResponse(); - $resp->setHttpResponseCode(400); + $resp->setHttpResponseCode(500); $resp->appendBody("An unknown error occurred."); } diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index 509eadb35..64af5a595 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -72,7 +72,7 @@ class Application_Service_PodcastService //TODO: why is this so slow? $rss = self::getPodcastFeed($feedUrl); - if (!$rss) { + if (!$rss || !empty($rss->error())) { throw new InvalidPodcastException(); } diff --git a/airtime_mvc/application/views/scripts/podcast/podcast_url_dialog.phtml b/airtime_mvc/application/views/scripts/podcast/podcast_url_dialog.phtml index 400e8706b..44ffe124e 100644 --- a/airtime_mvc/application/views/scripts/podcast/podcast_url_dialog.phtml +++ b/airtime_mvc/application/views/scripts/podcast/podcast_url_dialog.phtml @@ -1,5 +1,5 @@
-
+ csrf ?> @@ -9,13 +9,14 @@
- +
- +
\ No newline at end of file diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index ff1062631..853448148 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -4168,3 +4168,9 @@ li .ui-state-hover { #podcast_url_dialog table tr td { padding: 0px; } + +#podcast_url_dialog .errors { + display: inline-block; + float: right; + width: 50%; +} \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/common/common.js b/airtime_mvc/public/js/airtime/common/common.js index a5dc01b54..41a25395c 100644 --- a/airtime_mvc/public/js/airtime/common/common.js +++ b/airtime_mvc/public/js/airtime/common/common.js @@ -304,6 +304,20 @@ function getUsabilityHint() { }); } +// TODO: build this out so we can use it as a fallback in fail cases +function buildErrorDialog(message) { + var el = $("
"); + el.text(message); + $(document.body).append(el); + $("#error_dialog").dialog({ + title: $.i18n._("Something went wrong!"), + resizable: false, + modal: true, + width: "auto", + height: "auto" + }); +} + /** * Add title attributes (whose values are their inner text) to all elements in the calling parent matching selector * diff --git a/airtime_mvc/public/js/airtime/library/podcast.js b/airtime_mvc/public/js/airtime/library/podcast.js index ed704aa05..a90ddd80d 100644 --- a/airtime_mvc/public/js/airtime/library/podcast.js +++ b/airtime_mvc/public/js/airtime/library/podcast.js @@ -524,6 +524,12 @@ var AIRTIME = (function (AIRTIME) { AIRTIME.library.podcastTableWidget.clearSelection(); AIRTIME.library.setCurrentTable(AIRTIME.library.DataTableTypeEnum.PODCAST_EPISODES); $("#podcast_url_dialog").dialog("close"); + }).fail(function (e) { + var errors = $("#podcast_url_dialog").find(".errors"); + errors.show(200).text(e.responseText); + setTimeout(function () { + errors.hide(200); + }, 3000); }); }; @@ -679,3 +685,10 @@ var AIRTIME = (function (AIRTIME) { return AIRTIME; }(AIRTIME || {})); + +$(document).ready(function() { + $(document).on("submit", "#podcast_url_form", function (e) { + e.preventDefault(); + AIRTIME.podcast.addPodcast(); + }); +}); diff --git a/airtime_mvc/public/js/airtime/widgets/table.js b/airtime_mvc/public/js/airtime/widgets/table.js index 18b0b4227..9a53cdf03 100644 --- a/airtime_mvc/public/js/airtime/widgets/table.js +++ b/airtime_mvc/public/js/airtime/widgets/table.js @@ -303,7 +303,7 @@ var AIRTIME = (function(AIRTIME) { var foundAtIdx = $.inArray(aData, self._selectedRows); - console.log('checkbox mouse', iVisualRowIdx, foundAtIdx); + //console.log('checkbox mouse', iVisualRowIdx, foundAtIdx); //If the clicked row is already selected, deselect it. if (foundAtIdx >= 0 && self._selectedRows.length >= 1) {