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 */