diff --git a/airtime_mvc/application/controllers/WebstreamController.php b/airtime_mvc/application/controllers/WebstreamController.php
index 127e23ee2..e3e9e8246 100644
--- a/airtime_mvc/application/controllers/WebstreamController.php
+++ b/airtime_mvc/application/controllers/WebstreamController.php
@@ -51,6 +51,12 @@ class WebstreamController extends Zend_Controller_Action
$user = Application_Model_User::getCurrentUser();
$hasPermission = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER, UTYPE_HOST));
+
+ if (!$hasPermission) {
+ header("Status: 401 Not Authorized");
+ return;
+ }
+
$id = $request->getParam("id");
$parameters = array();
@@ -70,21 +76,19 @@ class WebstreamController extends Zend_Controller_Action
}
}
- if (!$hasPermission) {
- header("Status: 401 Not Authorized");
- return;
- }
list($analysis, $mime, $di) = Application_Model_Webstream::analyzeFormData($parameters);
try {
if (Application_Model_Webstream::isValid($analysis)) {
- Application_Model_Webstream::save($parameters, $mime, $di);
+ $streamId = Application_Model_Webstream::save($parameters, $mime, $di);
$this->view->statusMessage = "
Webstream saved.
";
+ $this->view->streamId = $streamId;
} else {
throw new Exception("isValid returned false");
}
} catch (Exception $e) {
$this->view->statusMessage = "Invalid form values.
";
+ $this->view->streamId = -1;
$this->view->analysis = $analysis;
}
}
diff --git a/airtime_mvc/application/models/Webstream.php b/airtime_mvc/application/models/Webstream.php
index 702d2c68d..a1ca85e59 100644
--- a/airtime_mvc/application/models/Webstream.php
+++ b/airtime_mvc/application/models/Webstream.php
@@ -199,7 +199,13 @@ class Application_Model_Webstream{
{
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
- $webstream = new CcWebstream();
+ $id = $parameters['id'];
+ if ($id != -1) {
+ $webstream = CcWebstreamQuery::create()->findPK($id);
+ } else {
+ $webstream = new CcWebstream();
+ }
+
$webstream->setDbName($parameters["name"]);
$webstream->setDbDescription($parameters["description"]);
$webstream->setDbUrl($parameters["url"]);
@@ -214,5 +220,7 @@ class Application_Model_Webstream{
$webstream->setDbMime($mime);
$webstream->save();
+
+ return $webstream->getDbId();
}
}
diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js
index 7c38352ef..0e6265562 100644
--- a/airtime_mvc/public/js/airtime/library/spl.js
+++ b/airtime_mvc/public/js/airtime/library/spl.js
@@ -579,6 +579,10 @@ var AIRTIME = (function(AIRTIME){
$status.html(json.statusMessage);
$status.show();
setTimeout(function(){$status.fadeOut("slow", function(){$status.empty()})}, 5000);
+
+ var $ws_id = $("#ws_id");
+ $ws_id.attr("value", json.streamId);
+
//redraw the library to show the new webstream
redrawLib();
}