Merge branch 'devel' of dev.sourcefabric.org:airtime into devel

This commit is contained in:
Yuchen Wang 2011-11-29 11:13:52 -05:00
commit 57d45a4f84
15 changed files with 650 additions and 785 deletions

View file

@ -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/media_library.css');
$this->view->headLink()->appendStylesheet($baseUrl.'/css/contextmenu.css'); $this->view->headLink()->appendStylesheet($baseUrl.'/css/contextmenu.css');
$this->_helper->layout->setLayout('library'); $this->_helper->layout->setLayout('library');
$this->_helper->viewRenderer->setResponseSegment('library'); $this->_helper->viewRenderer->setResponseSegment('library');
@ -90,7 +90,7 @@ class LibraryController extends Zend_Controller_Action
$url = $file->getRelativeFileUrl($baseUrl).'/download/true'; $url = $file->getRelativeFileUrl($baseUrl).'/download/true';
$menu[] = array('action' => array('type' => 'gourl', 'url' => $url), $menu[] = array('action' => array('type' => 'gourl', 'url' => $url),
'title' => 'Download'); 'title' => 'Download');
if (Application_Model_Preference::GetUploadToSoundcloudOption()) { if (Application_Model_Preference::GetUploadToSoundcloudOption()) {
$text = "Upload to SoundCloud"; $text = "Upload to SoundCloud";
if(!is_null($file->getSoundCloudId())){ 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#', $menu[] = array('action' => array('type' => 'ajax', 'url' => '/Library/upload-file-soundcloud/id/#id#',
'callback'=>"window['addProgressIcon']('$file_id')"),'title' => $text); 'callback'=>"window['addProgressIcon']('$file_id')"),'title' => $text);
$scid = $file->getSoundCloudId(); $scid = $file->getSoundCloudId();
if($scid > 0){ if($scid > 0){
$link_to_file = $file->getSoundCloudLinkToFile(); $link_to_file = $file->getSoundCloudLinkToFile();
$menu[] = array('action' => array('type' => 'fn', $menu[] = array('action' => array('type' => 'fn',
'callback' => "window['openFileOnSoundCloud']('$link_to_file')"), 'callback' => "window['openFileOnSoundCloud']('$link_to_file')"),
'title' => 'View on SoundCloud'); 'title' => 'View on SoundCloud');
} }
@ -132,8 +132,6 @@ class LibraryController extends Zend_Controller_Action
'title' => 'Close'); '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', $menu[] = array('action' => array('type' => 'fn',
'callback' => "window['confirmDeletePlaylist']('$paramsPop')"), 'callback' => "window['confirmDeletePlaylist']('$paramsPop')"),
'title' => 'Delete'); 'title' => 'Delete');
@ -210,7 +208,7 @@ class LibraryController extends Zend_Controller_Action
{ {
$request = $this->getRequest(); $request = $this->getRequest();
$form = new Application_Form_EditAudioMD(); $form = new Application_Form_EditAudioMD();
$file_id = $this->_getParam('id', null); $file_id = $this->_getParam('id', null);
$file = Application_Model_StoredFile::Recall($file_id); $file = Application_Model_StoredFile::Recall($file_id);
$form->populate($file->getDbColMetadata()); $form->populate($file->getDbColMetadata());
@ -222,7 +220,7 @@ class LibraryController extends Zend_Controller_Action
$file->setDbColMetadata($formdata); $file->setDbColMetadata($formdata);
$data = $file->getMetadata(); $data = $file->getMetadata();
// set MDATA_KEY_FILEPATH // set MDATA_KEY_FILEPATH
$data['MDATA_KEY_FILEPATH'] = $file->getFilePath(); $data['MDATA_KEY_FILEPATH'] = $file->getFilePath();
Logging::log($data['MDATA_KEY_FILEPATH']); Logging::log($data['MDATA_KEY_FILEPATH']);
@ -254,14 +252,14 @@ class LibraryController extends Zend_Controller_Action
} }
} }
public function uploadFileSoundcloudAction(){ public function uploadFileSoundcloudAction(){
$id = $this->_getParam('id'); $id = $this->_getParam('id');
$res = exec("/usr/lib/airtime/utils/soundcloud-uploader $id > /dev/null &"); $res = exec("/usr/lib/airtime/utils/soundcloud-uploader $id > /dev/null &");
// we should die with ui info // we should die with ui info
die(); die();
} }
public function getUploadToSoundcloudStatusAction(){ public function getUploadToSoundcloudStatusAction(){
$id = $this->_getParam('id'); $id = $this->_getParam('id');
$type = $this->_getParam('type'); $type = $this->_getParam('type');
@ -278,7 +276,7 @@ class LibraryController extends Zend_Controller_Action
$this->view->error_msg = $file->getSoundCloudErrorMsg(); $this->view->error_msg = $file->getSoundCloudErrorMsg();
} }
} }
/** /**
* Stores the number of entries user chose to show in the Library * Stores the number of entries user chose to show in the Library
* to the pref db * to the pref db

View file

@ -2,7 +2,6 @@
class PlaylistController extends Zend_Controller_Action class PlaylistController extends Zend_Controller_Action
{ {
protected $pl_sess = null; protected $pl_sess = null;
public function init() public function init()
@ -15,7 +14,6 @@ class PlaylistController extends Zend_Controller_Action
->addActionContext('move-item', 'json') ->addActionContext('move-item', 'json')
->addActionContext('close', 'json') ->addActionContext('close', 'json')
->addActionContext('new', 'json') ->addActionContext('new', 'json')
->addActionContext('metadata', 'json')
->addActionContext('edit', 'json') ->addActionContext('edit', 'json')
->addActionContext('delete-active', 'json') ->addActionContext('delete-active', 'json')
->addActionContext('delete', 'json') ->addActionContext('delete', 'json')
@ -102,58 +100,11 @@ class PlaylistController extends Zend_Controller_Action
$pl->setPLMetaData('dc:creator', $userInfo->login); $pl->setPLMetaData('dc:creator', $userInfo->login);
$this->changePlaylist($pl->getId()); $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() $this->view->pl = $pl;
{ $this->view->pl_id = $pl->getId();
$request = $this->getRequest(); $this->view->html = $this->view->render('playlist/index.phtml');
$form = new Application_Form_PlaylistMetadata(); unset($this->view->pl);
$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');
} }
public function editAction() public function editAction()
@ -256,42 +207,37 @@ class PlaylistController extends Zend_Controller_Action
$this->view->description = $pl->getDescription(); $this->view->description = $pl->getDescription();
unset($this->view->pl); unset($this->view->pl);
return;
} }
public function setCueAction() public function setCueAction()
{ {
$request = $this->getRequest();
$pos = $this->_getParam('pos'); $pos = $this->_getParam('pos');
$pl = $this->getPlaylist(); $pl = $this->getPlaylist();
if($pl === false){ if ($pl === false){
$this->view->playlist_error = true; $this->view->playlist_error = true;
return false; return false;
} }
if($request->isPost()) { $cueIn = $this->_getParam('cueIn', null);
$cueIn = $this->_getParam('cueIn', null); $cueOut = $this->_getParam('cueOut', null);
$cueOut = $this->_getParam('cueOut', null);
$response = $pl->changeClipLength($pos, $cueIn, $cueOut); $response = $pl->changeClipLength($pos, $cueIn, $cueOut);
$this->view->response = $response; $this->view->response = $response;
return;
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() public function setFadeAction()
{ {
$request = $this->getRequest();
$pos = $this->_getParam('pos'); $pos = $this->_getParam('pos');
$pl = $this->getPlaylist(); $pl = $this->getPlaylist();
if($pl === false){ if($pl === false){
@ -299,24 +245,22 @@ class PlaylistController extends Zend_Controller_Action
return false; return false;
} }
if($request->isPost()) { $fadeIn = $this->_getParam('fadeIn', null);
$fadeIn = $this->_getParam('fadeIn', null); $fadeOut = $this->_getParam('fadeOut', null);
$fadeOut = $this->_getParam('fadeOut', null);
$response = $pl->changeFadeInfo($pos, $fadeIn, $fadeOut); $response = $pl->changeFadeInfo($pos, $fadeIn, $fadeOut);
$this->view->response = $response; $this->view->response = $response;
return;
}
$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); unset($this->view->pl);
$this->view->fadeIn = $fades[0]; }
$fades = $pl->getFadeInfo($pos);
$this->view->fadeOut = $fades[1];
$this->view->html = $this->view->render('playlist/set-fade.phtml');
} }
public function deleteAction() public function deleteAction()
@ -430,7 +374,5 @@ class PlaylistController extends Zend_Controller_Action
$this->view->playlistDescription = $description; $this->view->playlistDescription = $description;
} }
} }

View file

@ -1,32 +0,0 @@
<?php
class Application_Form_PlaylistMetadata extends Zend_Form{
public function init()
{
// Add username element
$this->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
));
}
}

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>addItem</b></center>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>close</b></center>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>deleteActive</b></center>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>deleteItem</b></center>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>delete</b></center>

View file

@ -1,3 +0,0 @@
<form method="post" action="" enctype="application/x-www-form-urlencoded">
<?php echo $this->view->fieldset; ?>
</form>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>moveItem</b></center>

View file

@ -1,6 +0,0 @@
<h3 class="plain">Playlist Metadata</h3>
<form method="post" action="" enctype="application/x-www-form-urlencoded">
<fieldset>
<?php echo $this->fieldset; ?>
</fieldset>
</form>

View file

@ -1 +0,0 @@
<br /><br /><center>View script for controller <b>Playlist</b> and script/action name <b>setPlaylistFades</b></center>

View file

@ -4,10 +4,10 @@ if (count($items)) : ?>
<?php $i = 0; ?> <?php $i = 0; ?>
<?php foreach($items as $item) : ?> <?php foreach($items as $item) : ?>
<li class="ui-state-default" id="spl_<?php echo $i ?>"> <li class="ui-state-default" id="spl_<?php echo $i ?>" unqid="<?php echo $item["CcFiles"]["gunid"]."_".$i; ?>">
<div class="list-item-container"> <div class="list-item-container">
<a href="javascript:void(0);" class="big_play" <a href="javascript:void(0);" class="big_play"
onclick="audioPreview('<?php echo $item["CcFiles"]["gunid"].".".pathinfo($item["CcFiles"]["filepath"], PATHINFO_EXTENSION);?>', onclick="audioPreview('<?php echo $item["CcFiles"]["gunid"].".".pathinfo($item["CcFiles"]["filepath"], PATHINFO_EXTENSION);?>',
'spl_<?php echo $i ?>')"><span class="ui-icon ui-icon-play"></span></a> 'spl_<?php echo $i ?>')"><span class="ui-icon ui-icon-play"></span></a>
<div class="text-row top"> <div class="text-row top">
@ -19,16 +19,33 @@ if (count($items)) : ?>
<span class="spl_artist"><?php echo $item["CcFiles"]['artist_name'] ?></span> <span class="spl_artist"><?php echo $item["CcFiles"]['artist_name'] ?></span>
<span class="spl_offset"><?php echo $item["offset"]?></span> <span class="spl_offset"><?php echo $item["offset"]?></span>
</div> </div>
<?php if($i < count($items) -1): ?> <?php //create the crossfade icon.
if ($i < count($items) -1):
?>
<div id="fade_<?php echo $i ?>" class="spl_fade_control ui-state-default"></div> <div id="fade_<?php echo $i ?>" class="spl_fade_control ui-state-default"></div>
<?php endif; ?> <?php endif; ?>
<span class="ui-icon ui-icon-closethick"></span> <span class="ui-icon ui-icon-closethick"></span>
</div> </div>
<div id="cues_<?php echo $i ?>" class="cue-edit clearfix" style="display: none"></div> <div id="cues_<?php echo $i ?>" class="cue-edit clearfix" style="display: none">
<?php echo $this->partial('playlist/set-cue.phtml', array(
'pos' => $i,
'cueIn' => $item['cuein'],
'cueOut' => $item['cueout'],
'origLength' => $item["CcFiles"]['length'])); ?>
</div>
<?php if($i < count($items) -1): ?>
<div id="crossfade_<?php echo $i ?>-<?php echo $i+1 ?>" class="crossfade clearfix" style="display: none"></div> <?php //create a fade editor box
//(fadeout of current position + fade in of next position)
if($i < count($items) -1):
?>
<div id="crossfade_<?php echo $i ?>-<?php echo $i+1 ?>" class="crossfade clearfix" style="display: none">
<?php echo $this->partial('playlist/set-fade.phtml', array(
'pos' => $i,
'fadeOut' => $items[$i]['fadeout'],
'fadeIn' => $items[$i+1]['fadein'])); ?>
</div>
<?php endif; ?> <?php endif; ?>
</li> </li>
@ -36,5 +53,5 @@ if (count($items)) : ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php else : ?> <?php else : ?>
<li class="spl_empty">Empty playlist</li> <li class="spl_empty">Empty playlist</li>
<?php endif; ?> <?php endif; ?>

View file

@ -1,445 +1,447 @@
#side_playlist { #side_playlist {
width: 40%; width: 40%;
min-height: 475px; min-height: 475px;
padding: 8px; padding: 8px;
padding-bottom: 0px; padding-bottom: 0px;
font-size: 16px; font-size: 16px;
} }
#side_playlist, #side_playlist,
#side_playlist ul, #side_playlist ul,
#side_playlist li { #side_playlist li {
float: left; float: left;
} }
#spl_sortable, #spl_sortable,
#spl_sortable > li, #spl_sortable > li,
#side_playlist > div, #side_playlist > div,
#spl_editor, #spl_editor,
.spl_artist, .spl_artist,
.spl_cue_in, .spl_cue_in,
.spl_fade_in, .spl_fade_in,
.spl_cue_out, .spl_cue_out,
.spl_fade_out { .spl_fade_out {
clear: left; clear: left;
} }
#side_playlist button { #side_playlist button {
font-size: 12px; font-size: 12px;
} }
#side_playlist input, #side_playlist input,
#side_playlist textarea { #side_playlist textarea {
width: 200px; width: 200px;
} }
#side_playlist textarea { #side_playlist textarea {
height: 100px; height: 100px;
} }
#spl_sortable { #spl_sortable {
list-style: none; list-style: none;
padding:0; padding:0;
padding-bottom:50px; padding-bottom:50px;
width:100%; width:100%;
min-height: 320px; min-height: 320px;
margin-top:0; margin-top:0;
margin-bottom:0; margin-bottom:0;
} }
#side_playlist li { #side_playlist li {
width: 99.5%; width: 99.5%;
margin-bottom:-1px; margin-bottom:-1px;
position:relative; position:relative;
} }
#side_playlist li div.list-item-container, #side_playlist li div.list-item-container.ui-state-active { #side_playlist li div.list-item-container, #side_playlist li div.list-item-container.ui-state-active {
height:56px; height:56px;
border: none; border: none;
} }
#spl_name { #spl_name {
} }
.ui-icon-closethick { .ui-icon-closethick {
margin-top: 7px; margin-top: 7px;
} }
.spl_title { .spl_title {
font-size:14px; font-size:14px;
} }
.spl_playlength { .spl_playlength {
float:right; float:right;
font-size:14px; font-size:14px;
padding:0 5px 0 0; padding:0 5px 0 0;
width:100px; width:100px;
text-align:right; text-align:right;
} }
.spl_artist { .spl_artist {
font-size:12px; font-size:12px;
color:#d5d5d5; color:#d5d5d5;
} }
.spl_offset { .spl_offset {
float: right; float: right;
text-align: right; text-align: right;
padding: 0 5px 0 0; padding: 0 5px 0 0;
color: #D5D5D5; color: #D5D5D5;
} }
.ui-state-active .spl_artist, .ui-state-active .spl_offset {
/*#spl_editor { color: #606060 !important;
height: 50px; }
}*/ /*#spl_editor {
height: 50px;
#spl_editor > div > span { }*/
/* display: inline-block;
width: 150px;*/ #spl_editor > div > span {
} /* display: inline-block;
width: 150px;*/
.ui-icon-closethick, }
.ui-icon-play,
.spl_fade_control, .ui-icon-closethick,
.spl_text_input { .ui-icon-play,
cursor: pointer; .spl_fade_control,
} .spl_text_input {
cursor: pointer;
.spl_text_input input { }
cursor: text;
} .spl_text_input input {
cursor: text;
#spl_error { }
font-size: 14px;
padding: 0.3em; #spl_error {
/*width: 440px;*/ font-size: 14px;
text-align: center; padding: 0.3em;
} /*width: 440px;*/
text-align: center;
#side_playlist h3 { }
font-size:20px;
margin:9px 0 3px 0; #side_playlist h3 {
padding:0; font-size:20px;
color:#444444; margin:9px 0 3px 0;
font-weight:normal; padding:0;
clear:both; color:#444444;
float:left; font-weight:normal;
} clear:both;
#side_playlist h4 { float:left;
font-size:15px; }
margin:8px 0 10px 0; #side_playlist h4 {
padding:0; font-size:15px;
color:#4f4f4f; margin:8px 0 10px 0;
font-weight:normal; padding:0;
clear:both; color:#4f4f4f;
float:left; font-weight:normal;
} clear:both;
#side_playlist h3 + h4 { float:left;
margin:0 0 11px 0; }
} #side_playlist h3 + h4 {
#spl_sortable a.big_play { margin:0 0 11px 0;
display:block; }
width:20px; #spl_sortable a.big_play {
height:50px; display:block;
margin:2px 0 0 2px; width:20px;
text-align:center; height:50px;
border:1px solid #5b5b5b; margin:2px 0 0 2px;
float:left; text-align:center;
background-color: #707070; border:1px solid #5b5b5b;
background: -moz-linear-gradient(top, #707070 0, #666666 100%); float:left;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666)); background-color: #707070;
} background: -moz-linear-gradient(top, #707070 0, #666666 100%);
#spl_sortable a.big_play:hover { background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #707070), color-stop(100%, #666666));
border:1px solid #282828; }
background-color: #3b3b3b; #spl_sortable a.big_play:hover {
background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%); border:1px solid #282828;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929)); background-color: #3b3b3b;
} background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
#spl_sortable a.big_play .ui-icon-play { background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929));
margin: 17px 0 0 1px; }
} #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 .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 a.big_play:hover .ui-icon-play, #spl_sortable a.big_play:hover .ui-icon-pause {
#spl_sortable .ui-icon-closethick { background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png);
position:absolute; }
top:3px; #spl_sortable .ui-icon-closethick {
right:6px; position:absolute;
z-index:3; top:3px;
} right:6px;
#spl_sortable .ui-icon-closethick:hover { z-index:3;
background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png) }
} #spl_sortable .ui-icon-closethick:hover {
#spl_sortable .spl_fade_control { background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png)
position:absolute; }
right:35px; #spl_sortable .spl_fade_control {
z-index: 6; position:absolute;
height:15px; right:35px;
width:33px; z-index: 6;
font-size:9px; height:15px;
background-color:transparent; width:33px;
} font-size:9px;
background-color:transparent;
#spl_sortable li .container { }
} #spl_sortable li .container {
#spl_sortable .text-row {
height: 20px; }
line-height: 19px; #spl_sortable .text-row {
overflow: hidden; height: 20px;
padding: 0 30px 0 10px; line-height: 19px;
text-indent: 2px; overflow: hidden;
margin:-1px 0 0 0; padding: 0 30px 0 10px;
float:none; text-indent: 2px;
} margin:-1px 0 0 0;
#spl_sortable .top { float:none;
padding-top:9px; }
} #spl_sortable .top {
#spl_sortable li .spl_fade_control.ui-state-default { padding-top:9px;
background: transparent url(images/crossfade_playlist.png) no-repeat 0 0; }
border:none; #spl_sortable li .spl_fade_control.ui-state-default {
} background: transparent url(images/crossfade_playlist.png) no-repeat 0 0;
#spl_sortable li .spl_fade_control.ui-state-active { border:none;
background: transparent url(images/crossfade_playlist.png) no-repeat 0 -30px; }
border:none; #spl_sortable li .spl_fade_control.ui-state-active {
} background: transparent url(images/crossfade_playlist.png) no-repeat 0 -30px;
#spl_sortable li .crossfade, #spl_sortable li .cue-edit { border:none;
background:#debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important; }
border:1px solid #5d5d5d; #spl_sortable li .crossfade, #spl_sortable li .cue-edit {
border-width: 1px 0 0 0; background:#debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important;
min-height:35px; border:1px solid #5d5d5d;
} border-width: 1px 0 0 0;
#spl_sortable li .cue-edit { min-height:35px;
background:#b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0 !important; }
} #spl_sortable li .cue-edit {
#spl_sortable dl.inline-list { background:#b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0 !important;
margin:10px 0 0 37px; }
} #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; #spl_sortable li .spl_fade_start, #spl_sortable li .spl_fade_end {
font-size: 9px; background-color: transparent;
height: 15px; float:right;
right: 35px; font-size: 9px;
width: 33px; height: 15px;
margin-top:2px; right: 35px;
} width: 33px;
#spl_sortable li .spl_fade_start.ui-state-default { margin-top:2px;
background: transparent url(images/fade_in.png) no-repeat 0 0; }
border:none; #spl_sortable li .spl_fade_start.ui-state-default {
} background: transparent url(images/fade_in.png) no-repeat 0 0;
#spl_sortable li .spl_fade_start.ui-state-active { border:none;
background: transparent url(images/fade_in.png) no-repeat 0 -30px; }
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-default {
} background: transparent url(images/fade_out.png) no-repeat 0 0;
#spl_sortable li .spl_fade_end.ui-state-active { border:none;
background: transparent url(images/fade_out.png) no-repeat 0 -30px; }
border:none; #spl_sortable li .spl_fade_end.ui-state-active {
} background: transparent url(images/fade_out.png) no-repeat 0 -30px;
.crossfade dl.inline-list, .cue-edit dl.inline-list, .crossfade-main dl.inline-list { border:none;
padding-bottom:5px; }
clear:left; .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 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; .crossfade dl.inline-list dd, .cue-edit dl.inline-list dd, .crossfade-main dl.inline-list dd {
margin: 0; float: left;
font-size: 12px;
} margin: 0;
.edit-error {
color:#b80000; }
margin:0; .edit-error {
padding-bottom:0; color:#b80000;
font-size:12px; margin:0;
display:none; padding-bottom:0;
} font-size:12px;
display:none;
/*.edit-error:last-child { }
padding-bottom:10px;
}*/ /*.edit-error:last-child {
.spl_text_input { padding-bottom:10px;
color:#fff; }*/
} .spl_text_input {
.crossfade-main { color:#fff;
background:#debc9e; }
border:1px solid #5b5b5b; .crossfade-main {
padding:10px 10px 0 10px; background:#debc9e;
margin:0 1px 16px 0; border:1px solid #5b5b5b;
position:relative; 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 {
} padding-bottom:4px;
margin:0;
.crossfade-main .edit-error:last-child { }
padding-bottom:2px;
} .crossfade-main .edit-error:last-child {
.crossfade-main .ui-icon-closethick { padding-bottom:2px;
position: absolute; }
right: 6px; .crossfade-main .ui-icon-closethick {
top: 3px; position: absolute;
z-index: 3; right: 6px;
} top: 3px;
z-index: 3;
#spl_sortable li .spl_cue { }
background-color: transparent;
float:right; #spl_sortable li .spl_cue {
font-size: 9px; background-color: transparent;
height: 15px; float:right;
right: 35px; font-size: 9px;
width: 33px; height: 15px;
margin-top:2px; right: 35px;
cursor:pointer; width: 33px;
} margin-top:2px;
#spl_sortable li .spl_cue.ui-state-default { cursor:pointer;
background: transparent url(images/cue_playlist.png) no-repeat 0 0; }
border:none; #spl_sortable li .spl_cue.ui-state-default {
} background: transparent url(images/cue_playlist.png) no-repeat 0 0;
#spl_sortable li .spl_cue.ui-state-default:hover { border:none;
background: transparent url(images/cue_playlist.png) no-repeat 0 -15px; }
border:none; #spl_sortable li .spl_cue.ui-state-default:hover {
} background: transparent url(images/cue_playlist.png) no-repeat 0 -15px;
#spl_sortable li .spl_cue.ui-state-active, #spl_sortable li .spl_cue.ui-state-active:hover { border:none;
background: transparent url(images/cue_playlist.png) no-repeat 0 -30px; }
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 { /*--/////////////// Changes 16.05.2011 ////////////--*/
margin: 16px 0 10px 0;
height:26px; .playlist_title {
clear:both; margin: 16px 0 10px 0;
} height:26px;
#side_playlist .playlist_title h3, #side_playlist .playlist_title h4 { clear:both;
margin: 0; }
padding: 0; #side_playlist .playlist_title h3, #side_playlist .playlist_title h4 {
} margin: 0;
#side_playlist .playlist_title h3 { padding: 0;
float:left; }
width:84%; #side_playlist .playlist_title h3 {
} float:left;
#side_playlist .playlist_title h4 { width:84%;
float:right; }
clear:none; #side_playlist .playlist_title h4 {
font-size: 16px; float:right;
padding-top:4px; 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; #side_playlist .playlist_title h3 a {
text-decoration:none; 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; }
} #side_playlist .playlist_title h3 a:hover {
.element_hidden { background-color:#D8D8D8;
display: none; }
} .element_hidden {
#side_playlist .playlist_title h3 input[type="text"] { display: none;
background-color: #dddddd; }
border: 1px solid #8F8F8F; #side_playlist .playlist_title h3 input[type="text"] {
font-family: Arial,Helvetica,sans-serif; background-color: #dddddd;
font-size: 12px; border: 1px solid #8F8F8F;
height: 23px; font-family: Arial,Helvetica,sans-serif;
margin: 0; font-size: 12px;
padding: 0; height: 23px;
text-indent: 3px; margin: 0;
-moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); padding: 0;
-webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); text-indent: 3px;
box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
width:95%; -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 {
} margin: 0;
#side_playlist .zend_form dt, #side_playlist .zend_form dd { padding: 0;
display: block; }
float: none; #side_playlist .zend_form dt, #side_playlist .zend_form dd {
margin: 4px 0 0; display: block;
padding: 0; float: none;
width:100%; margin: 4px 0 0;
} padding: 0;
#side_playlist .zend_form dd.buttons { width:100%;
margin-top: 8px; }
text-align:right; #side_playlist .zend_form dd.buttons {
} margin-top: 8px;
#side_playlist .zend_form dd.buttons .ui-button { text-align:right;
margin: 0 0 0 10px; }
} #side_playlist .zend_form dd.buttons .ui-button {
margin: 0 0 0 10px;
#side_playlist .zend_form dt { }
color:#5B5B5B;
font-weight: bold; #side_playlist .zend_form dt {
margin: 9px 0 0; color:#5B5B5B;
padding: 0 2px; font-weight: bold;
} margin: 9px 0 0;
padding: 0 2px;
#side_playlist .zend_form dt:first-child { }
margin-top: 0;
} #side_playlist .zend_form dt:first-child {
margin-top: 0;
#side_playlist .zend_form dd textarea { }
background-color: #dddddd;
border: 1px solid #5B5B5B; #side_playlist .zend_form dd textarea {
font-family: Arial,Helvetica,sans-serif; background-color: #dddddd;
font-size: 12px; border: 1px solid #5B5B5B;
margin: 0; font-family: Arial,Helvetica,sans-serif;
padding: 2px 0 0 0; font-size: 12px;
-moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); margin: 0;
-webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); padding: 2px 0 0 0;
box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
width:99.7%; -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; #side_playlist fieldset {
padding: 8px; border: 1px solid #9a9a9a;
} margin: 0 0 8px 0;
#side_playlist fieldset.closed .zend_form{ padding: 8px;
display:none; }
} #side_playlist fieldset.closed .zend_form{
#side_playlist fieldset.closed { display:none;
border-width: 1px 0 0; }
margin-bottom: -6px; #side_playlist fieldset.closed {
margin-left:1px; border-width: 1px 0 0;
} margin-bottom: -6px;
fieldset > legend { margin-left:1px;
color: #4f4f4f; }
font-size: 12px; fieldset > legend {
line-height: 140%; color: #4f4f4f;
} font-size: 12px;
.ui-widget-content fieldset legend .ui-icon { line-height: 140%;
float: left; }
background-image:url(redmond/images/ui-icons_454545_256x240.png); .ui-widget-content fieldset legend .ui-icon {
} float: left;
#side_playlist .zend_form input, #side_playlist .zend_form textarea { background-image:url(redmond/images/ui-icons_454545_256x240.png);
width: auto; }
} #side_playlist .zend_form input, #side_playlist .zend_form textarea {
width: auto;
}

View file

@ -2,6 +2,11 @@
//Side Playlist Functions //Side Playlist Functions
//-------------------------------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------------------------------
function stopAudioPreview() {
// stop any preview playing
$('#jquery_jplayer_1').jPlayer('stop');
}
function isTimeValid(time) { function isTimeValid(time) {
var regExpr = new RegExp("^\\d{2}[:]\\d{2}[:]\\d{2}([.]\\d{1,6})?$"); var regExpr = new RegExp("^\\d{2}[:]\\d{2}[:]\\d{2}([.]\\d{1,6})?$");
@ -12,17 +17,6 @@ function isTimeValid(time) {
return true; 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) { function showError(el, error) {
$(el).parent().next() $(el).parent().next()
.empty() .empty()
@ -39,41 +33,47 @@ function hideError(el) {
function changeCueIn(event) { function changeCueIn(event) {
event.stopPropagation(); event.stopPropagation();
var pos, url, cueIn, div; var pos, url, cueIn, li, unqid;
span = $(this); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue"; url = "/Playlist/set-cue";
cueIn = span.text().trim(); cueIn = span.text().trim();
li = span.parent().parent().parent().parent();
unqid = li.attr("unqid");
if(!isTimeValid(cueIn)){ if(!isTimeValid(cueIn)){
showError(span, "please put in a time '00:00:00 (.000000)'"); showError(span, "please put in a time '00:00:00 (.000000)'");
return; return;
} }
$.post(url, {format: "json", cueIn: cueIn, pos: pos}, function(json){ $.post(url, {format: "json", cueIn: cueIn, pos: pos, type: event.type}, function(json){
if(json.playlist_error == true){
alertPlaylistErrorAndReload(); if(json.response !== undefined && json.response.error) {
}
if(json.response.error) {
showError(span, json.response.error); showError(span, json.response.error);
return; return;
} }
changeClipLength(pos, json); setSPLContent(json);
hideError(span);
li = $('#side_playlist li[unqid='+unqid+']');
li.find(".cue-edit").toggle();
highlightActive(li);
highlightActive(li.find('.spl_cue'));
}); });
} }
function changeCueOut(event) { function changeCueOut(event) {
event.stopPropagation(); event.stopPropagation();
var pos, url, cueOut, div; var pos, url, cueOut, li, unqid;
span = $(this); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue"; url = "/Playlist/set-cue";
cueOut = span.text().trim(); cueOut = span.text().trim();
li = span.parent().parent().parent().parent();
unqid = li.attr("unqid");
if(!isTimeValid(cueOut)){ if(!isTimeValid(cueOut)){
showError(span, "please put in a time '00:00:00 (.000000)'"); 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){ $.post(url, {format: "json", cueOut: cueOut, pos: pos}, function(json){
if(json.playlist_error == true){
alertPlaylistErrorAndReload(); if(json.response !== undefined && json.response.error) {
}
if(json.response.error) {
showError(span, json.response.error); showError(span, json.response.error);
return; return;
} }
changeClipLength(pos, json); setSPLContent(json);
hideError(span);
li = $('#side_playlist li[unqid='+unqid+']');
li.find(".cue-edit").toggle();
highlightActive(li);
highlightActive(li.find('.spl_cue'));
}); });
} }
function changeFadeIn(event) { function changeFadeIn(event) {
event.stopPropagation(); event.stopPropagation();
var pos, url, fadeIn, div; var pos, url, fadeIn, li, unqid;
span = $(this); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-fade"; url = "/Playlist/set-fade";
fadeIn = span.text().trim(); fadeIn = span.text().trim();
li = span.parent().parent().parent().parent();
unqid = li.attr("unqid");
if(!isTimeValid(fadeIn)){ if(!isTimeValid(fadeIn)){
showError(span, "please put in a time '00:00:00 (.000000)'"); 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){ $.post(url, {format: "json", fadeIn: fadeIn, pos: pos}, function(json){
if(json.playlist_error == true){
alertPlaylistErrorAndReload(); if(json.response !== undefined && json.response.error) {
} showError(span, json.response.error);
if(json.response.error) {
return; return;
} }
hideError(span); setSPLContent(json);
li = $('#side_playlist li[unqid='+unqid+']');
li.find('.crossfade').toggle();
highlightActive(li.find('.spl_fade_control'));
}); });
} }
function changeFadeOut(event) { function changeFadeOut(event) {
event.stopPropagation(); event.stopPropagation();
var pos, url, fadeOut, div; var pos, url, fadeOut, li, unqid;
span = $(this); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-fade"; url = "/Playlist/set-fade";
fadeOut = span.text().trim(); fadeOut = span.text().trim();
li = span.parent().parent().parent().parent();
unqid = li.attr("unqid");
if(!isTimeValid(fadeOut)){ if(!isTimeValid(fadeOut)){
showError(span, "please put in a time '00:00:00 (.000000)'"); 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){ $.post(url, {format: "json", fadeOut: fadeOut, pos: pos}, function(json){
if(json.playlist_error == true){ if(json.response !== undefined && json.response.error) {
alertPlaylistErrorAndReload(); showError(span, json.response.error);
}
if(json.response.error) {
return; 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) { function highlightActive(el) {
$(el).addClass("ui-state-active"); $(el).addClass("ui-state-active");
} }
function openFadeEditor(event) { function unHighlightActive(el) {
event.stopPropagation();
var pos, url, li; $(el).removeClass("ui-state-active");
}
function openFadeEditor(event) {
var pos, url, li;
event.stopPropagation();
li = $(this).parent().parent(); li = $(this).parent().parent();
pos = parseInt(li.attr("id").split("_").pop()); li.find(".crossfade").toggle();
if($(this).hasClass("ui-state-active")) { if($(this).hasClass("ui-state-active")) {
$(this).removeClass("ui-state-active"); unHighlightActive(this);
}
$("#crossfade_"+pos+"-"+(pos+1)) else {
.empty() highlightActive(this);
.hide();
return;
} }
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) { function openCueEditor(event) {
var pos, url, li, icon;
event.stopPropagation(); event.stopPropagation();
var pos, url, li, icon; icon = $(this);
li = $(this).parent().parent().parent();
li.find(".cue-edit").toggle();
li = $(this).parent().parent().parent(); if (li.hasClass("ui-state-active")) {
icon = $(this); unHighlightActive(li);
pos = li.attr("id").split("_").pop(); unHighlightActive(icon);
}
if(li.hasClass("ui-state-active")) { else {
li.removeClass("ui-state-active"); highlightActive(li);
icon.attr("class", "spl_cue ui-state-default"); highlightActive(icon);
$("#cues_"+pos)
.empty()
.hide();
return;
} }
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() { function redrawDataTablePage() {
@ -268,21 +228,18 @@ function setSPLContent(json) {
return; return;
} }
$('#spl_name > a').empty() $('#spl_name > a')
.empty()
.append(json.name); .append(json.name);
$('#spl_length').empty() $('#spl_length')
.empty()
.append(json.length); .append(json.length);
$('#fieldset-metadate_change textarea') $('#fieldset-metadate_change textarea')
.empty() .empty()
.val(json.description); .val(json.description);
$('#spl_sortable').empty() $('#spl_sortable')
.empty()
.append(json.html); .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 //redraw the library list
redrawDataTablePage(); redrawDataTablePage();
@ -319,10 +276,8 @@ function addSPLItem(event, ui){
} }
function deleteSPLItem(event){ function deleteSPLItem(event){
event.stopPropagation(); event.stopPropagation();
stopAudioPreview();
// stop any preview playing
$('#jquery_jplayer_1').jPlayer('stop');
var url, pos; var url, pos;
@ -358,65 +313,24 @@ function noOpenPL(json) {
.click(newSPL); .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() { function newSPL() {
var url; var url;
// stop any preview playing stopAudioPreview();
$('#jquery_jplayer_1').jPlayer('stop');
url = '/Playlist/new/format/json'; url = '/Playlist/new/format/json';
$.post(url, createPlaylistMetaForm); $.post(url, function(json){
openDiffSPL(json);
//redraw the library list
redrawDataTablePage();
});
} }
function deleteSPL() { function deleteSPL() {
var url; var url;
// stop any preview playing stopAudioPreview();
$('#jquery_jplayer_1').jPlayer('stop');
url = '/Playlist/delete-active/format/json'; url = '/Playlist/delete-active/format/json';
@ -431,6 +345,7 @@ function deleteSPL() {
} }
function openDiffSPL(json) { function openDiffSPL(json) {
if(json.playlist_error == true){ if(json.playlist_error == true){
alertPlaylistErrorAndReload(); alertPlaylistErrorAndReload();
} }
@ -439,8 +354,7 @@ function openDiffSPL(json) {
.append(json.html); .append(json.html);
currentlyOpenedSplId = json.pl_id; currentlyOpenedSplId = json.pl_id;
setUpSPL();
setUpSPL();
} }
function editName() { function editName() {
@ -610,23 +524,63 @@ function setUpSPL() {
$("#spl_delete") $("#spl_delete")
.button() .button()
.click(deleteSPL); .click(deleteSPL);
$("#spl_sortable .ui-icon-closethick").click(deleteSPLItem);
$(".spl_fade_control").click(openFadeEditor);
$(".spl_cue").click(openCueEditor);
$("#spl_sortable").droppable(); $("#spl_sortable").droppable();
$("#spl_sortable" ).bind( "drop", addSPLItem); $("#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 // Alert the error and reload the page
// this function is used to resolve concurrency issue // this function is used to resolve concurrency issue
function alertPlaylistErrorAndReload(){ function alertPlaylistErrorAndReload(){
alert("The playlist doesn't exist anymore!"); alert("The playlist doesn't exist anymore!");
window.location.reload(); window.location.reload();
} }
$(document).ready(function() { $(document).ready(function() {
var currentlyOpenedSplId; var currentlyOpenedSplId;
setUpSPL(); var playlist = $("#side_playlist");
setUpSPL(playlist);
setPlaylistEntryEvents(playlist);
setCueEvents(playlist);
setFadeEvents(playlist);
}); });