diff --git a/airtime_mvc/application/controllers/IndexController.php b/airtime_mvc/application/controllers/IndexController.php
index 6b4c1b825..4e6c3404d 100644
--- a/airtime_mvc/application/controllers/IndexController.php
+++ b/airtime_mvc/application/controllers/IndexController.php
@@ -13,14 +13,23 @@ class IndexController extends Zend_Controller_Action
$CC_CONFIG = Config::getConfig();
$baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headTitle(Application_Model_Preference::GetHeadTitle());
- $this->view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript')
- ->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript')
- ->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript')
- ->appendScript("$.i18n.setDictionary(general_dict)")
- ->appendScript("var baseUrl='$baseUrl'");
+ $this->view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
+
+ $this->view->headScript()->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
+ $this->view->headScript()->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript');
+ $this->view->headScript()->appendScript("$.i18n.setDictionary(general_dict)");
+ $this->view->headScript()->appendScript("var baseUrl='$baseUrl'");
+
+ //jplayer
+ $this->view->headScript()->appendFile($baseUrl.'js/jplayer/jquery.jplayer.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
+ $this->view->headScript()->appendFile($baseUrl.'js/jplayer/jplayer.playlist.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headLink()->setStylesheet($baseUrl.'css/radio-page/radio-page.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/embed/weekly-schedule-widget.css?'.$CC_CONFIG['airtime_version']);
+ $this->view->headLink()->appendStylesheet($baseUrl.'css/radio-page/station-podcast.css?'.$CC_CONFIG['airtime_version']);
+
+ //jplayer control buttons
+ $this->view->headLink()->appendStylesheet($baseUrl.'css/redmond/jquery-ui-1.8.8.custom.css?'.$CC_CONFIG['airtime_version']);
$this->_helper->layout->setLayout('radio-page');
diff --git a/airtime_mvc/application/views/scripts/embed/player.phtml b/airtime_mvc/application/views/scripts/embed/player.phtml
index d35aeb903..312298944 100644
--- a/airtime_mvc/application/views/scripts/embed/player.phtml
+++ b/airtime_mvc/application/views/scripts/embed/player.phtml
@@ -209,15 +209,6 @@
}
};
- MusesPlayer.prototype.playPodcastTrack = function(url, codec) {
- this.setCodec(codec);
- this.setURL(url);
- musesPlayer.play();
- if ($('.play').hasClass("pause") === false) {
- $('.play').addClass("pause");
- }
- }
-
// detects errors in FLASH mode
function musesCallback(event,value) {
switch (event) {
@@ -362,14 +353,6 @@
}
- function detachStreamMetadataFromPlayer() {
- clearTimeout(metadataTimer);
- }
-
- function attachFileMetadataToPlayer(artist, title) {
- $("p.now_playing").html(artist+""+title+"");
- }
-
diff --git a/airtime_mvc/application/views/scripts/index/index.phtml b/airtime_mvc/application/views/scripts/index/index.phtml
index aa448c812..d3b055b3d 100644
--- a/airtime_mvc/application/views/scripts/index/index.phtml
+++ b/airtime_mvc/application/views/scripts/index/index.phtml
@@ -1,17 +1,17 @@
@@ -31,13 +31,13 @@ document.getElementById(id).width= (newwidth) + "px";
";
- }?>
+ }?>
-
+
escape($this->stationName) ?>
escape($this->stationDescription) ?>
@@ -53,39 +53,135 @@ document.getElementById(id).width= (newwidth) + "px";
displayRssTab) {?>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ",
+ "") ?>
+
+
+
+
+
+
@@ -130,5 +226,6 @@ document.getElementById(id).width= (newwidth) + "px";
$("#"+tab_id).addClass('active');
});
- })
+ });
+
\ No newline at end of file
diff --git a/airtime_mvc/public/css/radio-page/jplayer.png b/airtime_mvc/public/css/radio-page/jplayer.png
new file mode 100644
index 000000000..1c57f0143
Binary files /dev/null and b/airtime_mvc/public/css/radio-page/jplayer.png differ
diff --git a/airtime_mvc/public/css/radio-page/pbar-ani.gif b/airtime_mvc/public/css/radio-page/pbar-ani.gif
new file mode 100644
index 000000000..0dfd45b88
Binary files /dev/null and b/airtime_mvc/public/css/radio-page/pbar-ani.gif differ
diff --git a/airtime_mvc/public/css/radio-page/station-podcast.css b/airtime_mvc/public/css/radio-page/station-podcast.css
new file mode 100644
index 000000000..7bad0d343
--- /dev/null
+++ b/airtime_mvc/public/css/radio-page/station-podcast.css
@@ -0,0 +1,368 @@
+@CHARSET "UTF-8";
+
+/* Used to hide non-ui fields **/
+span.audioFileID {
+ display:none;
+}
+span.audioFileTitle {
+ display:none;
+}
+span.audioFileArtist {
+ display:none;
+}
+span.playlistID {
+ display:none;
+}
+span.playlistIndex {
+ display:none;
+}
+span.showID {
+ display:none;
+}
+span.showIndex {
+ display:none;
+}
+
+/* End of non-ui fields **/
+
+div.jp-audio,
+div.jp-video {
+
+ /* Edit the font-size to counteract inherited font sizing.
+ * Eg. 1.25em = 1 / 0.8em
+ */
+
+ font-size:1em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */
+
+ font-family: Arial,Helvetica,sans-serif;
+ line-height:1.6;
+ color: #9B9B9B;
+ position:relative;
+ border-color: #262526 #262526 #5E5E5E;
+ border-style: solid;
+ border-width: 1px;
+}
+
+div.jp-audio {
+ width:420px;
+}
+div.jp-video-270p {
+ width:100%;
+}
+div.jp-video-360p {
+ width:640px;
+}
+
+div.jp-interface {
+ position: relative;
+ background-color: #3D3D3D;
+ background: -moz-linear-gradient(top, #6E6E6E 0, #3a3a3a 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #6E6E6E), color-stop(100%, #3a3a3a));
+ width: 100%;
+ border-top: 1px solid #5a5a5a;
+ border-bottom: 1px solid #1a1a1a;
+}
+
+div.jp-audio div.jp-type-single div.jp-interface {
+ height:80px;
+}
+div.jp-audio div.jp-type-playlist div.jp-interface {
+ height:80px;
+}
+
+/* @group CONTROLS */
+
+div.jp-interface ul.jp-controls {
+ float: left;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ position: relative;
+ top: 30px;
+ left: 10px;
+}
+
+div.jp-interface ul.jp-controls li {
+ list-style-type: none;
+ float: left;
+ padding: 1px 2px;
+ margin-right: 5px;
+}
+
+div.jp-interface ul.jp-controls li.jp-play,
+div.jp-interface ul.jp-controls li.jp-pause {
+ padding: 6px 7px;
+ margin-top: -5px;
+}
+
+div.jp-mute span {
+ background: url("jplayer.png") 0 -90px no-repeat;
+}
+div.jp-mute span:hover {
+ background: url("jplayer.png") -30px -90px no-repeat;
+}
+
+div.jp-unmute span {
+ background: url("jplayer.png") -60px -90px no-repeat;
+}
+div.jp-unmute span:hover {
+ background: url("jplayer.png") -90px -90px no-repeat;
+}
+
+div.jp-volume-max span {
+ background: url("jplayer.png") 0 -112px no-repeat;
+}
+div.jp-volume-max span:hover {
+ background: url("jplayer.png") -30px -112px no-repeat;
+}
+
+
+/* @end */
+
+/* @group progress bar */
+
+div.jp-time-block {
+ position: absolute;
+ top: 32px;
+ left: 145px;
+}
+
+div.jp-progress {
+ overflow:hidden;
+ background-color: #393939;
+}
+div.jp-audio div.jp-progress {
+ height: 10px;
+ border-color: #262526 #262526 #5E5E5E;
+ border-style: solid;
+ border-width: 1px;
+}
+/*
+div.jp-audio div.jp-type-single div.jp-progress {
+ left:110px;
+ width:186px;
+}
+*/
+div.jp-audio div.jp-type-playlist div.jp-progress {
+ width: 170px;
+}
+
+div.jp-seek-bar {
+ background-color: #393939;
+ width:0px;
+ height:100%;
+ cursor: pointer;
+}
+div.jp-play-bar {
+ background-color: #FF6F01;
+ width:0px;
+ height:100%;
+}
+
+/* The seeking class is added/removed inside jPlayer */
+div.jp-seeking-bg {
+ background: url("pbar-ani.gif");
+}
+
+/* @end */
+
+/* @group volume controls */
+
+li.jp-mute,
+li.jp-unmute,
+li.jp-volume-max {
+ margin-top: 2px;
+}
+
+div.jp-mute span,
+div.jp-unmute span,
+div.jp-volume-max span{
+ width: 17px;
+ height: 16px;
+}
+
+/*
+div.jp-audio div.jp-type-single a.jp-mute,
+div.jp-audio div.jp-type-single a.jp-unmute {
+ margin-left: 210px;
+}
+*/
+
+div.jp-volume-block {
+ position: absolute;
+ top: 33px;
+ left: 350px;
+ width: 120px;
+}
+
+div.jp-mute,
+div.jp-unmute,
+div.jp-volume-bar,
+div.jp-volume-max {
+ float: left;
+ cursor: pointer;
+}
+
+div.jp-volume-bar {
+ position: absolute;
+ overflow:hidden;
+ background-color: #393939;
+ width: 50px;
+ height:5px;
+ cursor: pointer;
+ margin-left: 20px;
+ margin-top: 2px;
+}
+div.jp-audio div.jp-volume-bar {
+ border-color: #262526 #262526 #5E5E5E;
+ border-style: solid;
+ border-width: 1px;
+}
+
+div.jp-volume-bar-value {
+ background-color: #FF6F01;
+ width:0px;
+ height:5px;
+}
+
+div.jp-volume-max {
+ margin-left: 65px;
+}
+
+/* @end */
+
+/* @group current time and duration */
+
+div.jp-current-time,
+div.jp-duration {
+ width: 60px;
+ font-size: 1em;
+}
+div.jp-current-time {
+ float: left;
+ display: inline;
+ color: #FF6F01;
+}
+div.jp-duration {
+ float: right;
+ display: inline;
+ text-align: right;
+ color: #9B9B9B;
+}
+
+/* @end */
+
+/* @group playlist */
+
+div.jp-title {
+ font-weight:bold;
+ text-align:center;
+}
+
+div.jp-title,
+div.jp-playlist {
+ width:100%;
+ background-color: #D8D8D8;
+}
+div.jp-type-single div.jp-title,
+div.jp-type-playlist div.jp-title,
+div.jp-type-single div.jp-playlist {
+ border-top:none;
+}
+div.jp-title ul,
+div.jp-playlist ul {
+ list-style-type:none;
+ margin:0;
+ padding:0 20px;
+}
+
+div.jp-title li {
+ padding:5px 0;
+ font-weight:bold;
+}
+div.jp-playlist li {
+ padding:5px 0 4px 20px;
+ border-bottom:1px solid #eee;
+}
+
+div.jp-playlist li div {
+ display:inline;
+}
+
+/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */
+
+div.jp-type-playlist div.jp-playlist li:last-child {
+ padding:5px 0 5px 20px;
+ border-bottom:none;
+}
+div.jp-type-playlist div.jp-playlist li.jp-playlist-current {
+ padding-left:7px;
+}
+div.jp-type-playlist div.jp-playlist a {
+ color: #333;
+ text-decoration: none;
+}
+div.jp-type-playlist div.jp-playlist a:hover {
+ color:#9B9B9B;
+}
+div.jp-type-playlist div.jp-playlist a.jp-playlist-current {
+ color: #FF6F01;
+}
+span.jp-artist {
+ font-size: 90%;
+ color:#9B9B9B;
+ margin-left: 5px;
+}
+
+/* @end */
+
+div.jp-video-270p div.jp-video-play {
+ height:270px;
+}
+div.jp-video-360p div.jp-video-play {
+ height:360px;
+}
+div.jp-video-full div.jp-video-play {
+ height:100%;
+ z-index:1000;
+}
+
+div.jp-jplayer audio,
+div.jp-jplayer {
+ width:0px;
+ height:0px;
+}
+
+div.jp-jplayer {
+ background-color: #000000;
+}
+
+/* @group NO SOLUTION error feedback */
+
+.jp-no-solution {
+ position:absolute;
+ width:390px;
+ margin-left:-202px;
+ left:50%;
+ top: 10px;
+
+ padding:5px;
+ font-size:.8em;
+ background-color:#eee;
+ border:2px solid #009be3;
+ color:#000;
+ display:none;
+}
+
+.jp-no-solution a {
+ color:#000;
+}
+
+.jp-no-solution span {
+ font-size:1em;
+ display:block;
+ text-align:center;
+ font-weight:bold;
+}
+
+/* @end */