diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php
index 99fa19b7a..f0b72099d 100644
--- a/airtime_mvc/application/controllers/LibraryController.php
+++ b/airtime_mvc/application/controllers/LibraryController.php
@@ -36,7 +36,7 @@ class LibraryController extends Zend_Controller_Action
$this->view->headLink()->appendStylesheet($baseUrl.'/css/media_library.css');
$this->view->headLink()->appendStylesheet($baseUrl.'/css/contextmenu.css');
-
+
$this->_helper->layout->setLayout('library');
$this->_helper->viewRenderer->setResponseSegment('library');
@@ -90,7 +90,7 @@ class LibraryController extends Zend_Controller_Action
$url = $file->getRelativeFileUrl($baseUrl).'/download/true';
$menu[] = array('action' => array('type' => 'gourl', 'url' => $url),
'title' => 'Download');
-
+
if (Application_Model_Preference::GetUploadToSoundcloudOption()) {
$text = "Upload to SoundCloud";
if(!is_null($file->getSoundCloudId())){
@@ -98,12 +98,12 @@ class LibraryController extends Zend_Controller_Action
}
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Library/upload-file-soundcloud/id/#id#',
'callback'=>"window['addProgressIcon']('$file_id')"),'title' => $text);
-
+
$scid = $file->getSoundCloudId();
-
+
if($scid > 0){
$link_to_file = $file->getSoundCloudLinkToFile();
- $menu[] = array('action' => array('type' => 'fn',
+ $menu[] = array('action' => array('type' => 'fn',
'callback' => "window['openFileOnSoundCloud']('$link_to_file')"),
'title' => 'View on SoundCloud');
}
@@ -132,8 +132,6 @@ class LibraryController extends Zend_Controller_Action
'title' => 'Close');
}
- //$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Playlist/metadata/format/json/id/#id#', 'callback' => 'window["createPlaylistMetaForm"]'), 'title' => 'Edit Metadata');
-
$menu[] = array('action' => array('type' => 'fn',
'callback' => "window['confirmDeletePlaylist']('$paramsPop')"),
'title' => 'Delete');
@@ -210,7 +208,7 @@ class LibraryController extends Zend_Controller_Action
{
$request = $this->getRequest();
$form = new Application_Form_EditAudioMD();
-
+
$file_id = $this->_getParam('id', null);
$file = Application_Model_StoredFile::Recall($file_id);
$form->populate($file->getDbColMetadata());
@@ -222,7 +220,7 @@ class LibraryController extends Zend_Controller_Action
$file->setDbColMetadata($formdata);
$data = $file->getMetadata();
-
+
// set MDATA_KEY_FILEPATH
$data['MDATA_KEY_FILEPATH'] = $file->getFilePath();
Logging::log($data['MDATA_KEY_FILEPATH']);
@@ -254,14 +252,14 @@ class LibraryController extends Zend_Controller_Action
}
}
-
+
public function uploadFileSoundcloudAction(){
$id = $this->_getParam('id');
$res = exec("/usr/lib/airtime/utils/soundcloud-uploader $id > /dev/null &");
// we should die with ui info
die();
}
-
+
public function getUploadToSoundcloudStatusAction(){
$id = $this->_getParam('id');
$type = $this->_getParam('type');
@@ -278,7 +276,7 @@ class LibraryController extends Zend_Controller_Action
$this->view->error_msg = $file->getSoundCloudErrorMsg();
}
}
-
+
/**
* Stores the number of entries user chose to show in the Library
* to the pref db
diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php
index 9eed5f2df..9c3bc11ec 100644
--- a/airtime_mvc/application/controllers/PlaylistController.php
+++ b/airtime_mvc/application/controllers/PlaylistController.php
@@ -2,7 +2,6 @@
class PlaylistController extends Zend_Controller_Action
{
-
protected $pl_sess = null;
public function init()
@@ -15,7 +14,6 @@ class PlaylistController extends Zend_Controller_Action
->addActionContext('move-item', 'json')
->addActionContext('close', 'json')
->addActionContext('new', 'json')
- ->addActionContext('metadata', 'json')
->addActionContext('edit', 'json')
->addActionContext('delete-active', 'json')
->addActionContext('delete', 'json')
@@ -102,58 +100,11 @@ class PlaylistController extends Zend_Controller_Action
$pl->setPLMetaData('dc:creator', $userInfo->login);
$this->changePlaylist($pl->getId());
- $form = new Application_Form_PlaylistMetadata();
- $this->view->fieldset = $form;
- $this->view->form = $this->view->render('playlist/new.phtml');
- }
- public function metadataAction()
- {
- $request = $this->getRequest();
- $form = new Application_Form_PlaylistMetadata();
-
- $pl_id = $this->_getParam('id', null);
- //not a new playlist
- if(!is_null($pl_id)) {
- $this->changePlaylist($pl_id);
-
- $pl = $this->getPlaylist();
- if($pl === false){
- $this->view->playlist_error = true;
- return false;
- }
- $title = $pl->getPLMetaData("dc:title");
- $desc = $pl->getPLMetaData("dc:description");
-
- $data = array( 'title' => $title, 'description' => $desc);
- $form->populate($data);
- }
-
- if ($request->isPost()) {
- $title = $this->_getParam('title', null);
- $description = $this->_getParam('description', null);
-
- $pl = $this->getPlaylist();
- if($pl === false){
- $this->view->playlist_error = true;
- return false;
- }
-
- if($title)
- $pl->setName($title);
-
- if(isset($description)) {
- $pl->setPLMetaData("dc:description", $description);
- }
-
- $this->view->pl = $pl;
- $this->view->html = $this->view->render('playlist/index.phtml');
- unset($this->view->pl);
- }
-
- $this->view->pl_id = $pl_id;
- $this->view->fieldset = $form;
- $this->view->form = $this->view->render('playlist/new.phtml');
+ $this->view->pl = $pl;
+ $this->view->pl_id = $pl->getId();
+ $this->view->html = $this->view->render('playlist/index.phtml');
+ unset($this->view->pl);
}
public function editAction()
@@ -256,42 +207,37 @@ class PlaylistController extends Zend_Controller_Action
$this->view->description = $pl->getDescription();
unset($this->view->pl);
-
- return;
}
public function setCueAction()
{
- $request = $this->getRequest();
$pos = $this->_getParam('pos');
$pl = $this->getPlaylist();
- if($pl === false){
+ if ($pl === false){
$this->view->playlist_error = true;
return false;
}
- if($request->isPost()) {
- $cueIn = $this->_getParam('cueIn', null);
- $cueOut = $this->_getParam('cueOut', null);
+ $cueIn = $this->_getParam('cueIn', null);
+ $cueOut = $this->_getParam('cueOut', null);
- $response = $pl->changeClipLength($pos, $cueIn, $cueOut);
+ $response = $pl->changeClipLength($pos, $cueIn, $cueOut);
- $this->view->response = $response;
- return;
+ $this->view->response = $response;
+
+ if(!isset($response["error"])) {
+ $this->view->pl = $pl;
+ $this->view->html = $this->view->render('playlist/update.phtml');
+ $this->view->name = $pl->getName();
+ $this->view->length = $pl->getLength();
+ $this->view->description = $pl->getDescription();
+
+ unset($this->view->pl);
}
-
- $cues = $pl->getCueInfo($pos);
-
- $this->view->pos = $pos;
- $this->view->cueIn = $cues[0];
- $this->view->cueOut = $cues[1];
- $this->view->origLength = $cues[2];
- $this->view->html = $this->view->render('playlist/set-cue.phtml');
}
public function setFadeAction()
{
- $request = $this->getRequest();
$pos = $this->_getParam('pos');
$pl = $this->getPlaylist();
if($pl === false){
@@ -299,24 +245,22 @@ class PlaylistController extends Zend_Controller_Action
return false;
}
- if($request->isPost()) {
- $fadeIn = $this->_getParam('fadeIn', null);
- $fadeOut = $this->_getParam('fadeOut', null);
+ $fadeIn = $this->_getParam('fadeIn', null);
+ $fadeOut = $this->_getParam('fadeOut', null);
- $response = $pl->changeFadeInfo($pos, $fadeIn, $fadeOut);
+ $response = $pl->changeFadeInfo($pos, $fadeIn, $fadeOut);
- $this->view->response = $response;
- return;
- }
+ $this->view->response = $response;
- $this->view->pos = intval($pos);
+ if(!isset($response["error"])) {
+ $this->view->pl = $pl;
+ $this->view->html = $this->view->render('playlist/update.phtml');
+ $this->view->name = $pl->getName();
+ $this->view->length = $pl->getLength();
+ $this->view->description = $pl->getDescription();
- $fades = $pl->getFadeInfo($pos+1);
- $this->view->fadeIn = $fades[0];
-
- $fades = $pl->getFadeInfo($pos);
- $this->view->fadeOut = $fades[1];
- $this->view->html = $this->view->render('playlist/set-fade.phtml');
+ unset($this->view->pl);
+ }
}
public function deleteAction()
@@ -430,7 +374,5 @@ class PlaylistController extends Zend_Controller_Action
$this->view->playlistDescription = $description;
}
-
-
}
diff --git a/airtime_mvc/application/forms/PlaylistMetadata.php b/airtime_mvc/application/forms/PlaylistMetadata.php
deleted file mode 100644
index d53a4ddab..000000000
--- a/airtime_mvc/application/forms/PlaylistMetadata.php
+++ /dev/null
@@ -1,32 +0,0 @@
-addElement('text', 'title', array(
- 'label' => 'Title:',
- 'class' => 'input_text',
- 'required' => false,
- 'filters' => array('StringTrim'),
- 'validators' => array(
- 'NotEmpty',
- )
- ));
-
- // Add the comment element
- $this->addElement('textarea', 'description', array(
- 'label' => 'Description:',
- 'class' => 'input_text_area',
- 'required' => false,
- ));
-
- // Add the comment element
- $this->addElement('button', 'new_playlist_submit', array(
- 'label' => 'Save',
- 'ignore' => true
- ));
- }
-}
-
diff --git a/airtime_mvc/application/views/scripts/playlist/add-item.phtml b/airtime_mvc/application/views/scripts/playlist/add-item.phtml
deleted file mode 100644
index dcba31552..000000000
--- a/airtime_mvc/application/views/scripts/playlist/add-item.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name addItem
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/close.phtml b/airtime_mvc/application/views/scripts/playlist/close.phtml
deleted file mode 100644
index 421ba5dd4..000000000
--- a/airtime_mvc/application/views/scripts/playlist/close.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name close
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/delete-active.phtml b/airtime_mvc/application/views/scripts/playlist/delete-active.phtml
deleted file mode 100644
index 61f99953e..000000000
--- a/airtime_mvc/application/views/scripts/playlist/delete-active.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name deleteActive
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/delete-item.phtml b/airtime_mvc/application/views/scripts/playlist/delete-item.phtml
deleted file mode 100644
index f1a489d89..000000000
--- a/airtime_mvc/application/views/scripts/playlist/delete-item.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name deleteItem
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/delete.phtml b/airtime_mvc/application/views/scripts/playlist/delete.phtml
deleted file mode 100644
index c4e7b62a1..000000000
--- a/airtime_mvc/application/views/scripts/playlist/delete.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name delete
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/metadata.phtml b/airtime_mvc/application/views/scripts/playlist/metadata.phtml
deleted file mode 100644
index 63e18ca2c..000000000
--- a/airtime_mvc/application/views/scripts/playlist/metadata.phtml
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/airtime_mvc/application/views/scripts/playlist/move-item.phtml b/airtime_mvc/application/views/scripts/playlist/move-item.phtml
deleted file mode 100644
index b739285c1..000000000
--- a/airtime_mvc/application/views/scripts/playlist/move-item.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name moveItem
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/new.phtml b/airtime_mvc/application/views/scripts/playlist/new.phtml
deleted file mode 100644
index 33f84edd5..000000000
--- a/airtime_mvc/application/views/scripts/playlist/new.phtml
+++ /dev/null
@@ -1,6 +0,0 @@
-Playlist Metadata
-
diff --git a/airtime_mvc/application/views/scripts/playlist/set-playlist-fades.phtml b/airtime_mvc/application/views/scripts/playlist/set-playlist-fades.phtml
deleted file mode 100644
index e6112eb51..000000000
--- a/airtime_mvc/application/views/scripts/playlist/set-playlist-fades.phtml
+++ /dev/null
@@ -1 +0,0 @@
-
View script for controller Playlist and script/action name setPlaylistFades
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/update.phtml b/airtime_mvc/application/views/scripts/playlist/update.phtml
index 0191d9add..5c36f3633 100644
--- a/airtime_mvc/application/views/scripts/playlist/update.phtml
+++ b/airtime_mvc/application/views/scripts/playlist/update.phtml
@@ -4,10 +4,10 @@ if (count($items)) : ?>
-
+ ">
-
+
+ partial('playlist/set-cue.phtml', array(
+ 'pos' => $i,
+ 'cueIn' => $item['cuein'],
+ 'cueOut' => $item['cueout'],
+ 'origLength' => $item["CcFiles"]['length'])); ?>
+
-
-
+
+
+
+ partial('playlist/set-fade.phtml', array(
+ 'pos' => $i,
+ 'fadeOut' => $items[$i]['fadeout'],
+ 'fadeIn' => $items[$i+1]['fadein'])); ?>
+
@@ -36,5 +53,5 @@ if (count($items)) : ?>
-Empty playlist
+Empty playlist
diff --git a/airtime_mvc/public/css/playlist_builder.css b/airtime_mvc/public/css/playlist_builder.css
index 2d02f4676..2357b5c04 100644
--- a/airtime_mvc/public/css/playlist_builder.css
+++ b/airtime_mvc/public/css/playlist_builder.css
@@ -1,445 +1,447 @@
-#side_playlist {
- width: 40%;
- min-height: 475px;
- padding: 8px;
- padding-bottom: 0px;
- font-size: 16px;
-}
-
-#side_playlist,
-#side_playlist ul,
-#side_playlist li {
- float: left;
-}
-
-#spl_sortable,
-#spl_sortable > li,
-#side_playlist > div,
-#spl_editor,
-.spl_artist,
-.spl_cue_in,
-.spl_fade_in,
-.spl_cue_out,
-.spl_fade_out {
- clear: left;
-}
-
-#side_playlist button {
- font-size: 12px;
-}
-
-#side_playlist input,
-#side_playlist textarea {
- width: 200px;
-}
-
-#side_playlist textarea {
- height: 100px;
-}
-
-#spl_sortable {
- list-style: none;
- padding:0;
- padding-bottom:50px;
- width:100%;
- min-height: 320px;
- margin-top:0;
- margin-bottom:0;
-}
-
-#side_playlist li {
- width: 99.5%;
- margin-bottom:-1px;
- position:relative;
-}
-
-#side_playlist li div.list-item-container, #side_playlist li div.list-item-container.ui-state-active {
- height:56px;
- border: none;
-}
-
-#spl_name {
-
-}
-
-.ui-icon-closethick {
- margin-top: 7px;
-}
-
-.spl_title {
- font-size:14px;
-}
-
-.spl_playlength {
- float:right;
- font-size:14px;
- padding:0 5px 0 0;
- width:100px;
- text-align:right;
-}
-
-.spl_artist {
- font-size:12px;
- color:#d5d5d5;
-}
-
-.spl_offset {
- float: right;
- text-align: right;
- padding: 0 5px 0 0;
- color: #D5D5D5;
-}
-
-/*#spl_editor {
- height: 50px;
-}*/
-
-#spl_editor > div > span {
-/* display: inline-block;
- width: 150px;*/
-}
-
-.ui-icon-closethick,
-.ui-icon-play,
-.spl_fade_control,
-.spl_text_input {
- cursor: pointer;
-}
-
-.spl_text_input input {
- cursor: text;
-}
-
-#spl_error {
- font-size: 14px;
- padding: 0.3em;
- /*width: 440px;*/
- text-align: center;
-}
-
-#side_playlist h3 {
- font-size:20px;
- margin:9px 0 3px 0;
- padding:0;
- color:#444444;
- font-weight:normal;
- clear:both;
- float:left;
-}
-#side_playlist h4 {
- font-size:15px;
- margin:8px 0 10px 0;
- padding:0;
- color:#4f4f4f;
- font-weight:normal;
- clear:both;
- float:left;
-}
-#side_playlist h3 + h4 {
- margin:0 0 11px 0;
-}
-#spl_sortable a.big_play {
- display:block;
- width:20px;
- height:50px;
- margin:2px 0 0 2px;
- text-align:center;
- border:1px solid #5b5b5b;
- float:left;
- background-color: #707070;
- background: -moz-linear-gradient(top, #707070 0, #666666 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666));
-}
-#spl_sortable a.big_play:hover {
- border:1px solid #282828;
- background-color: #3b3b3b;
- background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929));
-}
-#spl_sortable a.big_play .ui-icon-play {
- margin: 17px 0 0 1px;
-}
-
-#spl_sortable a.big_play .ui-icon-pause {
- margin: 17px 0 0 1px;
-}
-
-#spl_sortable a.big_play:hover .ui-icon-play, #spl_sortable a.big_play:hover .ui-icon-pause {
- background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png);
-}
-#spl_sortable .ui-icon-closethick {
- position:absolute;
- top:3px;
- right:6px;
- z-index:3;
-}
-#spl_sortable .ui-icon-closethick:hover {
- background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png)
-}
-#spl_sortable .spl_fade_control {
- position:absolute;
- right:35px;
- z-index: 6;
- height:15px;
- width:33px;
- font-size:9px;
- background-color:transparent;
-}
-
-#spl_sortable li .container {
-
-}
-#spl_sortable .text-row {
- height: 20px;
- line-height: 19px;
- overflow: hidden;
- padding: 0 30px 0 10px;
- text-indent: 2px;
- margin:-1px 0 0 0;
- float:none;
-}
-#spl_sortable .top {
- padding-top:9px;
-}
-#spl_sortable li .spl_fade_control.ui-state-default {
- background: transparent url(images/crossfade_playlist.png) no-repeat 0 0;
- border:none;
-}
-#spl_sortable li .spl_fade_control.ui-state-active {
- background: transparent url(images/crossfade_playlist.png) no-repeat 0 -30px;
- border:none;
-}
-#spl_sortable li .crossfade, #spl_sortable li .cue-edit {
- background:#debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important;
- border:1px solid #5d5d5d;
- border-width: 1px 0 0 0;
- min-height:35px;
-}
-#spl_sortable li .cue-edit {
- background:#b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0 !important;
-}
-#spl_sortable dl.inline-list {
- margin:10px 0 0 37px;
-}
-
-
-#spl_sortable li .spl_fade_start, #spl_sortable li .spl_fade_end {
- background-color: transparent;
- float:right;
- font-size: 9px;
- height: 15px;
- right: 35px;
- width: 33px;
- margin-top:2px;
-}
-#spl_sortable li .spl_fade_start.ui-state-default {
- background: transparent url(images/fade_in.png) no-repeat 0 0;
- border:none;
-}
-#spl_sortable li .spl_fade_start.ui-state-active {
- background: transparent url(images/fade_in.png) no-repeat 0 -30px;
- border:none;
-}
-
-#spl_sortable li .spl_fade_end.ui-state-default {
- background: transparent url(images/fade_out.png) no-repeat 0 0;
- border:none;
-}
-#spl_sortable li .spl_fade_end.ui-state-active {
- background: transparent url(images/fade_out.png) no-repeat 0 -30px;
- border:none;
-}
-.crossfade dl.inline-list, .cue-edit dl.inline-list, .crossfade-main dl.inline-list {
- padding-bottom:5px;
- clear:left;
-
-}
-.crossfade dl.inline-list dt, .cue-edit dl.inline-list dt, .crossfade-main dl.inline-list dt {
- min-width: 90px;
-
-
-}
-.crossfade dl.inline-list dd, .cue-edit dl.inline-list dd, .crossfade-main dl.inline-list dd {
- float: left;
- font-size: 12px;
- margin: 0;
-
-}
-.edit-error {
- color:#b80000;
- margin:0;
- padding-bottom:0;
- font-size:12px;
- display:none;
-}
-
-/*.edit-error:last-child {
- padding-bottom:10px;
-}*/
-.spl_text_input {
- color:#fff;
-}
-.crossfade-main {
- background:#debc9e;
- border:1px solid #5b5b5b;
- padding:10px 10px 0 10px;
- margin:0 1px 16px 0;
- position:relative;
-}
-
-.crossfade-main .edit-error {
- padding-bottom:4px;
- margin:0;
-}
-
-.crossfade-main .edit-error:last-child {
- padding-bottom:2px;
-}
-.crossfade-main .ui-icon-closethick {
- position: absolute;
- right: 6px;
- top: 3px;
- z-index: 3;
-}
-
-#spl_sortable li .spl_cue {
- background-color: transparent;
- float:right;
- font-size: 9px;
- height: 15px;
- right: 35px;
- width: 33px;
- margin-top:2px;
- cursor:pointer;
-}
-#spl_sortable li .spl_cue.ui-state-default {
- background: transparent url(images/cue_playlist.png) no-repeat 0 0;
- border:none;
-}
-#spl_sortable li .spl_cue.ui-state-default:hover {
- background: transparent url(images/cue_playlist.png) no-repeat 0 -15px;
- border:none;
-}
-#spl_sortable li .spl_cue.ui-state-active, #spl_sortable li .spl_cue.ui-state-active:hover {
- background: transparent url(images/cue_playlist.png) no-repeat 0 -30px;
- border:none;
-}
-
-/*--/////////////// Changes 16.05.2011 ////////////--*/
-
-.playlist_title {
- margin: 16px 0 10px 0;
- height:26px;
- clear:both;
-}
-#side_playlist .playlist_title h3, #side_playlist .playlist_title h4 {
- margin: 0;
- padding: 0;
-}
-#side_playlist .playlist_title h3 {
- float:left;
- width:84%;
-}
-#side_playlist .playlist_title h4 {
- float:right;
- clear:none;
- font-size: 16px;
- padding-top:4px;
-}
-
-#side_playlist .playlist_title h3 a {
- padding: 0 22px 0 2px;
- background:url(images/icon_edit_l.png) no-repeat right center;
- text-decoration:none;
-
-}
-#side_playlist .playlist_title h3 a:hover {
- background-color:#D8D8D8;
-}
-.element_hidden {
- display: none;
-}
-#side_playlist .playlist_title h3 input[type="text"] {
- background-color: #dddddd;
- border: 1px solid #8F8F8F;
- font-family: Arial,Helvetica,sans-serif;
- font-size: 12px;
- height: 23px;
- margin: 0;
- padding: 0;
- text-indent: 3px;
- -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- width:95%;
-}
-
-#side_playlist .zend_form {
- margin: 0;
- padding: 0;
-}
-#side_playlist .zend_form dt, #side_playlist .zend_form dd {
- display: block;
- float: none;
- margin: 4px 0 0;
- padding: 0;
- width:100%;
-}
-#side_playlist .zend_form dd.buttons {
- margin-top: 8px;
- text-align:right;
-}
-#side_playlist .zend_form dd.buttons .ui-button {
- margin: 0 0 0 10px;
-}
-
-#side_playlist .zend_form dt {
- color:#5B5B5B;
- font-weight: bold;
- margin: 9px 0 0;
- padding: 0 2px;
-}
-
-#side_playlist .zend_form dt:first-child {
- margin-top: 0;
-}
-
-#side_playlist .zend_form dd textarea {
- background-color: #dddddd;
- border: 1px solid #5B5B5B;
- font-family: Arial,Helvetica,sans-serif;
- font-size: 12px;
- margin: 0;
- padding: 2px 0 0 0;
- -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
- width:99.7%;
-}
-
-#side_playlist fieldset {
- border: 1px solid #9a9a9a;
- margin: 0 0 8px 0;
- padding: 8px;
-}
-#side_playlist fieldset.closed .zend_form{
- display:none;
-}
-#side_playlist fieldset.closed {
- border-width: 1px 0 0;
- margin-bottom: -6px;
- margin-left:1px;
-}
-fieldset > legend {
- color: #4f4f4f;
- font-size: 12px;
- line-height: 140%;
-}
-.ui-widget-content fieldset legend .ui-icon {
- float: left;
- background-image:url(redmond/images/ui-icons_454545_256x240.png);
-}
-#side_playlist .zend_form input, #side_playlist .zend_form textarea {
- width: auto;
-}
+#side_playlist {
+ width: 40%;
+ min-height: 475px;
+ padding: 8px;
+ padding-bottom: 0px;
+ font-size: 16px;
+}
+
+#side_playlist,
+#side_playlist ul,
+#side_playlist li {
+ float: left;
+}
+
+#spl_sortable,
+#spl_sortable > li,
+#side_playlist > div,
+#spl_editor,
+.spl_artist,
+.spl_cue_in,
+.spl_fade_in,
+.spl_cue_out,
+.spl_fade_out {
+ clear: left;
+}
+
+#side_playlist button {
+ font-size: 12px;
+}
+
+#side_playlist input,
+#side_playlist textarea {
+ width: 200px;
+}
+
+#side_playlist textarea {
+ height: 100px;
+}
+
+#spl_sortable {
+ list-style: none;
+ padding:0;
+ padding-bottom:50px;
+ width:100%;
+ min-height: 320px;
+ margin-top:0;
+ margin-bottom:0;
+}
+
+#side_playlist li {
+ width: 99.5%;
+ margin-bottom:-1px;
+ position:relative;
+}
+
+#side_playlist li div.list-item-container, #side_playlist li div.list-item-container.ui-state-active {
+ height:56px;
+ border: none;
+}
+
+#spl_name {
+
+}
+
+.ui-icon-closethick {
+ margin-top: 7px;
+}
+
+.spl_title {
+ font-size:14px;
+}
+
+.spl_playlength {
+ float:right;
+ font-size:14px;
+ padding:0 5px 0 0;
+ width:100px;
+ text-align:right;
+}
+
+.spl_artist {
+ font-size:12px;
+ color:#d5d5d5;
+}
+
+.spl_offset {
+ float: right;
+ text-align: right;
+ padding: 0 5px 0 0;
+ color: #D5D5D5;
+}
+.ui-state-active .spl_artist, .ui-state-active .spl_offset {
+ color: #606060 !important;
+}
+/*#spl_editor {
+ height: 50px;
+}*/
+
+#spl_editor > div > span {
+/* display: inline-block;
+ width: 150px;*/
+}
+
+.ui-icon-closethick,
+.ui-icon-play,
+.spl_fade_control,
+.spl_text_input {
+ cursor: pointer;
+}
+
+.spl_text_input input {
+ cursor: text;
+}
+
+#spl_error {
+ font-size: 14px;
+ padding: 0.3em;
+ /*width: 440px;*/
+ text-align: center;
+}
+
+#side_playlist h3 {
+ font-size:20px;
+ margin:9px 0 3px 0;
+ padding:0;
+ color:#444444;
+ font-weight:normal;
+ clear:both;
+ float:left;
+}
+#side_playlist h4 {
+ font-size:15px;
+ margin:8px 0 10px 0;
+ padding:0;
+ color:#4f4f4f;
+ font-weight:normal;
+ clear:both;
+ float:left;
+}
+#side_playlist h3 + h4 {
+ margin:0 0 11px 0;
+}
+#spl_sortable a.big_play {
+ display:block;
+ width:20px;
+ height:50px;
+ margin:2px 0 0 2px;
+ text-align:center;
+ border:1px solid #5b5b5b;
+ float:left;
+ background-color: #707070;
+ background: -moz-linear-gradient(top, #707070 0, #666666 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666));
+}
+#spl_sortable a.big_play:hover {
+ border:1px solid #282828;
+ background-color: #3b3b3b;
+ background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929));
+}
+#spl_sortable a.big_play .ui-icon-play {
+ margin: 17px 0 0 1px;
+}
+
+#spl_sortable a.big_play .ui-icon-pause {
+ margin: 17px 0 0 1px;
+}
+
+#spl_sortable a.big_play:hover .ui-icon-play, #spl_sortable a.big_play:hover .ui-icon-pause {
+ background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png);
+}
+#spl_sortable .ui-icon-closethick {
+ position:absolute;
+ top:3px;
+ right:6px;
+ z-index:3;
+}
+#spl_sortable .ui-icon-closethick:hover {
+ background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png)
+}
+#spl_sortable .spl_fade_control {
+ position:absolute;
+ right:35px;
+ z-index: 6;
+ height:15px;
+ width:33px;
+ font-size:9px;
+ background-color:transparent;
+}
+
+#spl_sortable li .container {
+
+}
+#spl_sortable .text-row {
+ height: 20px;
+ line-height: 19px;
+ overflow: hidden;
+ padding: 0 30px 0 10px;
+ text-indent: 2px;
+ margin:-1px 0 0 0;
+ float:none;
+}
+#spl_sortable .top {
+ padding-top:9px;
+}
+#spl_sortable li .spl_fade_control.ui-state-default {
+ background: transparent url(images/crossfade_playlist.png) no-repeat 0 0;
+ border:none;
+}
+#spl_sortable li .spl_fade_control.ui-state-active {
+ background: transparent url(images/crossfade_playlist.png) no-repeat 0 -30px;
+ border:none;
+}
+#spl_sortable li .crossfade, #spl_sortable li .cue-edit {
+ background:#debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important;
+ border:1px solid #5d5d5d;
+ border-width: 1px 0 0 0;
+ min-height:35px;
+}
+#spl_sortable li .cue-edit {
+ background:#b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0 !important;
+}
+#spl_sortable dl.inline-list {
+ margin:10px 0 0 37px;
+}
+
+
+#spl_sortable li .spl_fade_start, #spl_sortable li .spl_fade_end {
+ background-color: transparent;
+ float:right;
+ font-size: 9px;
+ height: 15px;
+ right: 35px;
+ width: 33px;
+ margin-top:2px;
+}
+#spl_sortable li .spl_fade_start.ui-state-default {
+ background: transparent url(images/fade_in.png) no-repeat 0 0;
+ border:none;
+}
+#spl_sortable li .spl_fade_start.ui-state-active {
+ background: transparent url(images/fade_in.png) no-repeat 0 -30px;
+ border:none;
+}
+
+#spl_sortable li .spl_fade_end.ui-state-default {
+ background: transparent url(images/fade_out.png) no-repeat 0 0;
+ border:none;
+}
+#spl_sortable li .spl_fade_end.ui-state-active {
+ background: transparent url(images/fade_out.png) no-repeat 0 -30px;
+ border:none;
+}
+.crossfade dl.inline-list, .cue-edit dl.inline-list, .crossfade-main dl.inline-list {
+ padding-bottom:5px;
+ clear:left;
+
+}
+.crossfade dl.inline-list dt, .cue-edit dl.inline-list dt, .crossfade-main dl.inline-list dt {
+ min-width: 90px;
+
+
+}
+.crossfade dl.inline-list dd, .cue-edit dl.inline-list dd, .crossfade-main dl.inline-list dd {
+ float: left;
+ font-size: 12px;
+ margin: 0;
+
+}
+.edit-error {
+ color:#b80000;
+ margin:0;
+ padding-bottom:0;
+ font-size:12px;
+ display:none;
+}
+
+/*.edit-error:last-child {
+ padding-bottom:10px;
+}*/
+.spl_text_input {
+ color:#fff;
+}
+.crossfade-main {
+ background:#debc9e;
+ border:1px solid #5b5b5b;
+ padding:10px 10px 0 10px;
+ margin:0 1px 16px 0;
+ position:relative;
+}
+
+.crossfade-main .edit-error {
+ padding-bottom:4px;
+ margin:0;
+}
+
+.crossfade-main .edit-error:last-child {
+ padding-bottom:2px;
+}
+.crossfade-main .ui-icon-closethick {
+ position: absolute;
+ right: 6px;
+ top: 3px;
+ z-index: 3;
+}
+
+#spl_sortable li .spl_cue {
+ background-color: transparent;
+ float:right;
+ font-size: 9px;
+ height: 15px;
+ right: 35px;
+ width: 33px;
+ margin-top:2px;
+ cursor:pointer;
+}
+#spl_sortable li .spl_cue.ui-state-default {
+ background: transparent url(images/cue_playlist.png) no-repeat 0 0;
+ border:none;
+}
+#spl_sortable li .spl_cue.ui-state-default:hover {
+ background: transparent url(images/cue_playlist.png) no-repeat 0 -15px;
+ border:none;
+}
+#spl_sortable li .spl_cue.ui-state-active, #spl_sortable li .spl_cue.ui-state-active:hover {
+ background: transparent url(images/cue_playlist.png) no-repeat 0 -30px;
+ border:none;
+}
+
+/*--/////////////// Changes 16.05.2011 ////////////--*/
+
+.playlist_title {
+ margin: 16px 0 10px 0;
+ height:26px;
+ clear:both;
+}
+#side_playlist .playlist_title h3, #side_playlist .playlist_title h4 {
+ margin: 0;
+ padding: 0;
+}
+#side_playlist .playlist_title h3 {
+ float:left;
+ width:84%;
+}
+#side_playlist .playlist_title h4 {
+ float:right;
+ clear:none;
+ font-size: 16px;
+ padding-top:4px;
+}
+
+#side_playlist .playlist_title h3 a {
+ padding: 0 22px 0 2px;
+ background:url(images/icon_edit_l.png) no-repeat right center;
+ text-decoration:none;
+
+}
+#side_playlist .playlist_title h3 a:hover {
+ background-color:#D8D8D8;
+}
+.element_hidden {
+ display: none;
+}
+#side_playlist .playlist_title h3 input[type="text"] {
+ background-color: #dddddd;
+ border: 1px solid #8F8F8F;
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 12px;
+ height: 23px;
+ margin: 0;
+ padding: 0;
+ text-indent: 3px;
+ -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ width:95%;
+}
+
+#side_playlist .zend_form {
+ margin: 0;
+ padding: 0;
+}
+#side_playlist .zend_form dt, #side_playlist .zend_form dd {
+ display: block;
+ float: none;
+ margin: 4px 0 0;
+ padding: 0;
+ width:100%;
+}
+#side_playlist .zend_form dd.buttons {
+ margin-top: 8px;
+ text-align:right;
+}
+#side_playlist .zend_form dd.buttons .ui-button {
+ margin: 0 0 0 10px;
+}
+
+#side_playlist .zend_form dt {
+ color:#5B5B5B;
+ font-weight: bold;
+ margin: 9px 0 0;
+ padding: 0 2px;
+}
+
+#side_playlist .zend_form dt:first-child {
+ margin-top: 0;
+}
+
+#side_playlist .zend_form dd textarea {
+ background-color: #dddddd;
+ border: 1px solid #5B5B5B;
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 12px;
+ margin: 0;
+ padding: 2px 0 0 0;
+ -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+ width:99.7%;
+}
+
+#side_playlist fieldset {
+ border: 1px solid #9a9a9a;
+ margin: 0 0 8px 0;
+ padding: 8px;
+}
+#side_playlist fieldset.closed .zend_form{
+ display:none;
+}
+#side_playlist fieldset.closed {
+ border-width: 1px 0 0;
+ margin-bottom: -6px;
+ margin-left:1px;
+}
+fieldset > legend {
+ color: #4f4f4f;
+ font-size: 12px;
+ line-height: 140%;
+}
+.ui-widget-content fieldset legend .ui-icon {
+ float: left;
+ background-image:url(redmond/images/ui-icons_454545_256x240.png);
+}
+#side_playlist .zend_form input, #side_playlist .zend_form textarea {
+ width: auto;
+}
\ No newline at end of file
diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js
index a3d342e03..2b56d1686 100644
--- a/airtime_mvc/public/js/airtime/library/spl.js
+++ b/airtime_mvc/public/js/airtime/library/spl.js
@@ -2,6 +2,11 @@
//Side Playlist Functions
//--------------------------------------------------------------------------------------------------------------------------------
+function stopAudioPreview() {
+ // stop any preview playing
+ $('#jquery_jplayer_1').jPlayer('stop');
+}
+
function isTimeValid(time) {
var regExpr = new RegExp("^\\d{2}[:]\\d{2}[:]\\d{2}([.]\\d{1,6})?$");
@@ -12,17 +17,6 @@ function isTimeValid(time) {
return true;
}
-function changeClipLength(pos, json) {
-
- $("#spl_"+pos).find(".spl_playlength")
- .empty()
- .append(json.response.cliplength);
-
- $("#spl_length")
- .empty()
- .append(json.response.length);
-}
-
function showError(el, error) {
$(el).parent().next()
.empty()
@@ -39,41 +33,47 @@ function hideError(el) {
function changeCueIn(event) {
event.stopPropagation();
- var pos, url, cueIn, div;
+ var pos, url, cueIn, li, unqid;
span = $(this);
pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue";
cueIn = span.text().trim();
+ li = span.parent().parent().parent().parent();
+ unqid = li.attr("unqid");
if(!isTimeValid(cueIn)){
showError(span, "please put in a time '00:00:00 (.000000)'");
return;
}
- $.post(url, {format: "json", cueIn: cueIn, pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- if(json.response.error) {
+ $.post(url, {format: "json", cueIn: cueIn, pos: pos, type: event.type}, function(json){
+
+ if(json.response !== undefined && json.response.error) {
showError(span, json.response.error);
return;
}
-
- changeClipLength(pos, json);
- hideError(span);
+
+ setSPLContent(json);
+
+ li = $('#side_playlist li[unqid='+unqid+']');
+ li.find(".cue-edit").toggle();
+ highlightActive(li);
+ highlightActive(li.find('.spl_cue'));
});
}
function changeCueOut(event) {
event.stopPropagation();
- var pos, url, cueOut, div;
+ var pos, url, cueOut, li, unqid;
span = $(this);
pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue";
cueOut = span.text().trim();
+ li = span.parent().parent().parent().parent();
+ unqid = li.attr("unqid");
if(!isTimeValid(cueOut)){
showError(span, "please put in a time '00:00:00 (.000000)'");
@@ -81,28 +81,32 @@ function changeCueOut(event) {
}
$.post(url, {format: "json", cueOut: cueOut, pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- if(json.response.error) {
+
+ if(json.response !== undefined && json.response.error) {
showError(span, json.response.error);
return;
}
- changeClipLength(pos, json);
- hideError(span);
+ setSPLContent(json);
+
+ li = $('#side_playlist li[unqid='+unqid+']');
+ li.find(".cue-edit").toggle();
+ highlightActive(li);
+ highlightActive(li.find('.spl_cue'));
});
}
function changeFadeIn(event) {
event.stopPropagation();
- var pos, url, fadeIn, div;
+ var pos, url, fadeIn, li, unqid;
span = $(this);
pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-fade";
fadeIn = span.text().trim();
+ li = span.parent().parent().parent().parent();
+ unqid = li.attr("unqid");
if(!isTimeValid(fadeIn)){
showError(span, "please put in a time '00:00:00 (.000000)'");
@@ -110,26 +114,31 @@ function changeFadeIn(event) {
}
$.post(url, {format: "json", fadeIn: fadeIn, pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- if(json.response.error) {
+
+ if(json.response !== undefined && json.response.error) {
+ showError(span, json.response.error);
return;
}
- hideError(span);
+ setSPLContent(json);
+
+ li = $('#side_playlist li[unqid='+unqid+']');
+ li.find('.crossfade').toggle();
+ highlightActive(li.find('.spl_fade_control'));
});
}
function changeFadeOut(event) {
event.stopPropagation();
- var pos, url, fadeOut, div;
+ var pos, url, fadeOut, li, unqid;
span = $(this);
pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-fade";
fadeOut = span.text().trim();
+ li = span.parent().parent().parent().parent();
+ unqid = li.attr("unqid");
if(!isTimeValid(fadeOut)){
showError(span, "please put in a time '00:00:00 (.000000)'");
@@ -137,14 +146,16 @@ function changeFadeOut(event) {
}
$.post(url, {format: "json", fadeOut: fadeOut, pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- if(json.response.error) {
+ if(json.response !== undefined && json.response.error) {
+ showError(span, json.response.error);
return;
}
- hideError(span);
+ setSPLContent(json);
+
+ li = $('#side_playlist li[unqid='+unqid+']');
+ li.find('.crossfade').toggle();
+ highlightActive(li.find('.spl_fade_control'));
});
}
@@ -156,100 +167,49 @@ function submitOnEnter(event) {
}
}
-function setCueEvents(el) {
-
- $(el).find(".spl_cue_in span:last").blur(changeCueIn);
- $(el).find(".spl_cue_out span:last").blur(changeCueOut);
-
- $(el).find(".spl_cue_in span:first, .spl_cue_out span:first")
- .keydown(submitOnEnter);
-}
-
-function setFadeEvents(el) {
-
- $(el).find(".spl_fade_in span:first").blur(changeFadeIn);
- $(el).find(".spl_fade_out span:first").blur(changeFadeOut);
-
- $(el).find(".spl_fade_in span:first, .spl_fade_out span:first")
- .keydown(submitOnEnter);
-}
-
function highlightActive(el) {
$(el).addClass("ui-state-active");
}
-function openFadeEditor(event) {
- event.stopPropagation();
+function unHighlightActive(el) {
- var pos, url, li;
+ $(el).removeClass("ui-state-active");
+}
+
+function openFadeEditor(event) {
+ var pos, url, li;
+
+ event.stopPropagation();
li = $(this).parent().parent();
- pos = parseInt(li.attr("id").split("_").pop());
+ li.find(".crossfade").toggle();
if($(this).hasClass("ui-state-active")) {
- $(this).removeClass("ui-state-active");
-
- $("#crossfade_"+pos+"-"+(pos+1))
- .empty()
- .hide();
-
- return;
+ unHighlightActive(this);
+ }
+ else {
+ highlightActive(this);
}
-
- url = '/Playlist/set-fade';
-
- highlightActive(this);
-
- $.get(url, {format: "json", pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- $("#crossfade_"+(pos)+"-"+(pos+1))
- .empty()
- .append(json.html)
- .show();
-
- setFadeEvents(li);
- });
}
function openCueEditor(event) {
+ var pos, url, li, icon;
+
event.stopPropagation();
- var pos, url, li, icon;
+ icon = $(this);
+ li = $(this).parent().parent().parent();
+ li.find(".cue-edit").toggle();
- li = $(this).parent().parent().parent();
- icon = $(this);
- pos = li.attr("id").split("_").pop();
-
- if(li.hasClass("ui-state-active")) {
- li.removeClass("ui-state-active");
- icon.attr("class", "spl_cue ui-state-default");
-
- $("#cues_"+pos)
- .empty()
- .hide();
-
- return;
+ if (li.hasClass("ui-state-active")) {
+ unHighlightActive(li);
+ unHighlightActive(icon);
+ }
+ else {
+ highlightActive(li);
+ highlightActive(icon);
}
-
- icon.attr("class", "spl_cue ui-state-default ui-state-active");
- url = '/Playlist/set-cue';
-
- highlightActive(li);
-
- $.get(url, {format: "json", pos: pos}, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- $("#cues_"+pos)
- .empty()
- .append(json.html)
- .show();
-
- setCueEvents(li);
- });
}
function redrawDataTablePage() {
@@ -268,21 +228,18 @@ function setSPLContent(json) {
return;
}
- $('#spl_name > a').empty()
+ $('#spl_name > a')
+ .empty()
.append(json.name);
- $('#spl_length').empty()
+ $('#spl_length')
+ .empty()
.append(json.length);
$('#fieldset-metadate_change textarea')
.empty()
.val(json.description);
- $('#spl_sortable').empty()
+ $('#spl_sortable')
+ .empty()
.append(json.html);
- $("#spl_editor")
- .empty();
-
- $("#spl_sortable .ui-icon-closethick").click(deleteSPLItem);
- $(".spl_fade_control").click(openFadeEditor);
- $(".spl_cue").click(openCueEditor);
//redraw the library list
redrawDataTablePage();
@@ -319,10 +276,8 @@ function addSPLItem(event, ui){
}
function deleteSPLItem(event){
- event.stopPropagation();
-
- // stop any preview playing
- $('#jquery_jplayer_1').jPlayer('stop');
+ event.stopPropagation();
+ stopAudioPreview();
var url, pos;
@@ -358,65 +313,24 @@ function noOpenPL(json) {
.click(newSPL);
}
-function createPlaylistMetaForm(json) {
- var submit, form;
-
- form = $(json.form);
- form.find("fieldset").addClass("simple-formblock metadata");
-
- form.find("input, textarea")
- .keydown(function(event){
- //enter was pressed
- if(event.keyCode === 13) {
- event.preventDefault();
- $("#new_playlist_submit").click();
- }
- })
-
- form.find("#new_playlist_submit")
- .button()
- .click(function(event){
- event.preventDefault();
-
- var url, data;
-
- url = '/Playlist/metadata/format/json';
- data = $("#side_playlist form").serialize();
-
- $.post(url, data, function(json){
- if(json.playlist_error == true){
- alertPlaylistErrorAndReload();
- }
- openDiffSPL(json);
- //redraw the library list
- redrawDataTablePage();
- })
-
- });
-
- $("#side_playlist")
- .empty()
- .append(form);
-
- currentlyOpenedSplId = json.pl_id;
-}
-
function newSPL() {
var url;
- // stop any preview playing
- $('#jquery_jplayer_1').jPlayer('stop');
-
+ stopAudioPreview();
url = '/Playlist/new/format/json';
- $.post(url, createPlaylistMetaForm);
+ $.post(url, function(json){
+ openDiffSPL(json);
+
+ //redraw the library list
+ redrawDataTablePage();
+ });
}
function deleteSPL() {
var url;
- // stop any preview playing
- $('#jquery_jplayer_1').jPlayer('stop');
+ stopAudioPreview();
url = '/Playlist/delete-active/format/json';
@@ -431,6 +345,7 @@ function deleteSPL() {
}
function openDiffSPL(json) {
+
if(json.playlist_error == true){
alertPlaylistErrorAndReload();
}
@@ -439,8 +354,7 @@ function openDiffSPL(json) {
.append(json.html);
currentlyOpenedSplId = json.pl_id;
-
- setUpSPL();
+ setUpSPL();
}
function editName() {
@@ -610,23 +524,63 @@ function setUpSPL() {
$("#spl_delete")
.button()
.click(deleteSPL);
-
- $("#spl_sortable .ui-icon-closethick").click(deleteSPLItem);
- $(".spl_fade_control").click(openFadeEditor);
- $(".spl_cue").click(openCueEditor);
+
$("#spl_sortable").droppable();
$("#spl_sortable" ).bind( "drop", addSPLItem);
}
+//sets events dynamically for playlist entries (each row in the playlist)
+function setPlaylistEntryEvents(el) {
+
+ $(el).delegate("#spl_sortable .ui-icon-closethick",
+ {"click": deleteSPLItem});
+
+ $(el).delegate(".spl_fade_control",
+ {"click": openFadeEditor});
+
+ $(el).delegate(".spl_cue",
+ {"click": openCueEditor});
+}
+
+//sets events dynamically for the cue editor.
+function setCueEvents(el) {
+
+ $(el).delegate(".spl_cue_in span",
+ {"focusout": changeCueIn,
+ "keydown": submitOnEnter});
+
+ $(el).delegate(".spl_cue_out span",
+ {"focusout": changeCueOut,
+ "keydown": submitOnEnter});
+}
+
+//sets events dynamically for the fade editor.
+function setFadeEvents(el) {
+
+ $(el).delegate(".spl_fade_in span",
+ {"focusout": changeFadeIn,
+ "keydown": submitOnEnter});
+
+ $(el).delegate(".spl_fade_out span",
+ {"focusout": changeFadeOut,
+ "keydown": submitOnEnter});
+}
+
// Alert the error and reload the page
// this function is used to resolve concurrency issue
function alertPlaylistErrorAndReload(){
alert("The playlist doesn't exist anymore!");
window.location.reload();
-}
+}
$(document).ready(function() {
var currentlyOpenedSplId;
- setUpSPL();
+ var playlist = $("#side_playlist");
+
+ setUpSPL(playlist);
+
+ setPlaylistEntryEvents(playlist);
+ setCueEvents(playlist);
+ setFadeEvents(playlist);
});