Showbuilder checkboxes and style fixes

This commit is contained in:
Duncan Sommerville 2015-08-06 16:01:44 -04:00
parent 83902ebbbe
commit cc36fcd37b
21 changed files with 445 additions and 313 deletions

View File

@ -217,6 +217,40 @@ class LibraryController extends Zend_Controller_Action
// is a cloud_file and handle it appropriately. // is a cloud_file and handle it appropriately.
$url = $baseUrl."api/get-media/file/$id/download/true"; $url = $baseUrl."api/get-media/file/$id/download/true";
$menu["download"] = array("name" => _("Download"), "icon" => "download", "url" => $url); $menu["download"] = array("name" => _("Download"), "icon" => "download", "url" => $url);
// SOUNDCLOUD MENU OPTION
$ownerId = empty($obj) ? $file->getFileOwnerId() : $obj->getCreatorId();
if ($isAdminOrPM || $ownerId == $user->getId()) {
$soundcloudService = new SoundcloudService();
if ($type === "audioclip" && $soundcloudService->hasAccessToken()) {
//create a menu separator
$menu["sep1"] = "-----------";
//create a sub menu for Soundcloud actions.
$menu["soundcloud"] = array("name" => _(SOUNDCLOUD), "icon" => "soundcloud", "items" => array());
$serviceId = $soundcloudService->getServiceId($id);
if (!is_null($file) && $serviceId != 0) {
$menu["soundcloud"]["items"]["view"] = array("name" => _("View track"), "icon" => "soundcloud", "url" => $baseUrl . "soundcloud/view-on-sound-cloud/id/{$id}");
$menu["soundcloud"]["items"]["remove"] = array("name" => _("Remove track"), "icon" => "soundcloud", "url" => $baseUrl . "soundcloud/delete/id/{$id}");
} else {
// If a reference exists for this file ID, that means the user has uploaded the track
// but we haven't yet gotten a response from Celery, so disable the menu item
if ($soundcloudService->referenceExists($id)) {
$menu["soundcloud"]["items"]["upload"] = array(
"name" => _("Upload track"), "icon" => "soundcloud",
"url" => $baseUrl . "soundcloud/upload/id/{$id}", "disabled" => true
);
} else {
$menu["soundcloud"]["items"]["upload"] = array(
"name" => _("Upload track"), "icon" => "soundcloud",
"url" => $baseUrl . "soundcloud/upload/id/{$id}"
);
}
}
}
}
} elseif ($type === "playlist" || $type === "block") { } elseif ($type === "playlist" || $type === "block") {
if ($type === 'playlist') { if ($type === 'playlist') {
$obj = new Application_Model_Playlist($id); $obj = new Application_Model_Playlist($id);
@ -263,40 +297,6 @@ class LibraryController extends Zend_Controller_Action
} }
} }
// SOUNDCLOUD MENU OPTION
$ownerId = empty($obj) ? $file->getFileOwnerId() : $obj->getCreatorId();
if ($isAdminOrPM || $ownerId == $user->getId()) {
$soundcloudService = new SoundcloudService();
if ($type === "audioclip" && $soundcloudService->hasAccessToken()) {
//create a menu separator
$menu["sep1"] = "-----------";
//create a sub menu for Soundcloud actions.
$menu["soundcloud"] = array("name" => _(SOUNDCLOUD), "icon" => "soundcloud", "items" => array());
$serviceId = $soundcloudService->getServiceId($id);
if (!is_null($file) && $serviceId != 0) {
$menu["soundcloud"]["items"]["view"] = array("name" => _("View track"), "icon" => "soundcloud", "url" => $baseUrl . "soundcloud/view-on-sound-cloud/id/{$id}");
$menu["soundcloud"]["items"]["remove"] = array("name" => _("Remove track"), "icon" => "soundcloud", "url" => $baseUrl . "soundcloud/delete/id/{$id}");
} else {
// If a reference exists for this file ID, that means the user has uploaded the track
// but we haven't yet gotten a response from Celery, so disable the menu item
if ($soundcloudService->referenceExists($id)) {
$menu["soundcloud"]["items"]["upload"] = array(
"name" => _("Upload track"), "icon" => "soundcloud",
"url" => $baseUrl . "soundcloud/upload/id/{$id}", "disabled" => true
);
} else {
$menu["soundcloud"]["items"]["upload"] = array(
"name" => _("Upload track"), "icon" => "soundcloud",
"url" => $baseUrl . "soundcloud/upload/id/{$id}"
);
}
}
}
}
if (empty($menu)) { if (empty($menu)) {
$menu["noaction"] = array("name"=>_("No action available")); $menu["noaction"] = array("name"=>_("No action available"));
} }

View File

@ -85,7 +85,7 @@ class Application_Form_ShowBuilderNew extends Zend_Form_SubForm
private function getShowNames() private function getShowNames()
{ {
$showNames = array("0" => "Filter by Show"); $showNames = array("0" => _("Filter by Show"));
$shows = CcShowQuery::create() $shows = CcShowQuery::create()
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND) ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)

View File

@ -9,7 +9,7 @@ if ($this->showPlaylist) {
$display = "display:none"; $display = "display:none";
} }
?> ?>
<div id="side_playlist" class="pl-content ui-widget ui-widget-content block-shadow omega-block padded" style="height:697px; width:720px;<?php echo $display?>"> <div class="side_playlist pl-content ui-widget ui-widget-content block-shadow omega-block padded" style="height:697px; width:720px;<?php echo $display?>">
<?php if ($this->type == 'block') { <?php if ($this->type == 'block') {
echo $this->render('playlist/smart-block.phtml'); echo $this->render('playlist/smart-block.phtml');
} else if ($this->type == 'playlist') { } else if ($this->type == 'playlist') {

View File

@ -28,9 +28,9 @@ if (isset($this->obj)) {
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input>
<input id="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input> <input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input>
<input id='obj_type' type='hidden' value='playlist'></input> <input class='obj_type' type='hidden' value='playlist'></input>
<div class="playlist_title"> <div class="playlist_title">
<h3 id="obj_name"> <h3 id="obj_name">
<a id="playlist_name_display" contenteditable="true"><?php echo $this->escape($this->obj->getName()); ?></a> <a id="playlist_name_display" contenteditable="true"><?php echo $this->escape($this->obj->getName()); ?></a>
@ -65,7 +65,7 @@ if (isset($this->obj)) {
<div class="clear"></div> <div class="clear"></div>
<div class="" style="clear:both; float:none; width:100%;"> <div class="" style="clear:both; float:none; width:100%;">
<ul id="spl_sortable"> <ul class="spl_sortable">
<?php $this->contents = $contents; <?php $this->contents = $contents;
echo $this->render('playlist/update.phtml') ?> echo $this->render('playlist/update.phtml') ?>
</ul> </ul>

View File

@ -25,9 +25,9 @@ if (isset($this->obj)) {
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input>
<input id="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input> <input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input>
<input id='obj_type' type='hidden' value='block'></input> <input class='obj_type' type='hidden' value='block'></input>
<div class="playlist_title"> <div class="playlist_title">
<h3 id="obj_name"> <h3 id="obj_name">
<a id="playlist_name_display" contenteditable="true"> <a id="playlist_name_display" contenteditable="true">
@ -70,7 +70,7 @@ if (isset($this->obj)) {
<div class="clear"></div> <div class="clear"></div>
<div class="" style="clear:both; float:none; width:100%;"> <div class="" style="clear:both; float:none; width:100%;">
<ul id="spl_sortable"> <ul class="spl_sortable">
<?php $this->contents = $contents; <?php $this->contents = $contents;
echo $this->render('playlist/update.phtml') ?> echo $this->render('playlist/update.phtml') ?>
</ul> </ul>

View File

@ -38,9 +38,9 @@ if (isset($this->obj)) {
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input>
<input id="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input> <input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input>
<input id='obj_type' type='hidden' value='playlist'></input> <input class='obj_type' type='hidden' value='playlist'></input>
<div class="playlist_title"> <div class="playlist_title">
<h3 id="obj_name"> <h3 id="obj_name">
<a id="playlist_name_display" contenteditable="true"><?php echo $this->escape($this->obj->getName()); ?></a> <a id="playlist_name_display" contenteditable="true"><?php echo $this->escape($this->obj->getName()); ?></a>
@ -75,7 +75,7 @@ if (isset($this->obj)) {
<div class="clear"></div> <div class="clear"></div>
<div class="" style="clear:both; float:none; width:100%;"> <div class="" style="clear:both; float:none; width:100%;">
<ul id="spl_sortable"> <ul class="spl_sortable">
<?php $this->contents = $contents; <?php $this->contents = $contents;
echo $this->render('playlist/update.phtml') ?> echo $this->render('playlist/update.phtml') ?>
</ul> </ul>

View File

@ -35,9 +35,9 @@ if (isset($this->obj)) {
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"></input>
<input id="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input> <input class="obj_lastMod" type="hidden" value="<?php echo $this->obj->getLastModified('U'); ?>"></input>
<input id='obj_type' type='hidden' value='block'></input> <input class='obj_type' type='hidden' value='block'></input>
<div class="playlist_title"> <div class="playlist_title">
<h3 id="obj_name"> <h3 id="obj_name">
<a id="playlist_name_display" contenteditable="true"> <a id="playlist_name_display" contenteditable="true">
@ -80,7 +80,7 @@ if (isset($this->obj)) {
<div class="clear"></div> <div class="clear"></div>
<div class="" style="clear:both; float:none; width:100%;"> <div class="" style="clear:both; float:none; width:100%;">
<ul id="spl_sortable"> <ul class="spl_sortable">
<?php $this->contents = $contents; <?php $this->contents = $contents;
echo $this->render('playlist/update.phtml') ?> echo $this->render('playlist/update.phtml') ?>
</ul> </ul>

View File

@ -12,9 +12,9 @@
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
<input id="obj_lastMod" type="hidden" value="<?php echo "1";//$this->obj->getLastModified('U'); ?>"/> <input class="obj_lastMod" type="hidden" value="<?php echo "1";//$this->obj->getLastModified('U'); ?>"/>
<input id="obj_type" type="hidden" value="webstream"/> <input class="obj_type" type="hidden" value="webstream"/>
<div class="status" style="display:none;"></div> <div class="status" style="display:none;"></div>
<div class="playlist_title"> <div class="playlist_title">

View File

@ -22,9 +22,9 @@
</div> </div>
<?php if (isset($this->obj)) : ?> <?php if (isset($this->obj)) : ?>
<input id="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/> <input class="obj_id" type="hidden" value="<?php echo $this->obj->getId(); ?>"/>
<input id="obj_lastMod" type="hidden" value="<?php echo "1";//$this->obj->getLastModified('U'); ?>"/> <input class="obj_lastMod" type="hidden" value="<?php echo "1";//$this->obj->getLastModified('U'); ?>"/>
<input id="obj_type" type="hidden" value="webstream"/> <input class="obj_type" type="hidden" value="webstream"/>
<div class="status" style="display:none;"></div> <div class="status" style="display:none;"></div>
<div class="playlist_title"> <div class="playlist_title">

View File

@ -25,6 +25,11 @@ div.ColVis_collectionBackground {
flex-flow: row wrap; flex-flow: row wrap;
overflow: auto; overflow: auto;
-webkit-transition: top 0.2s linear;
-moz-transition: top 0.2s linear;
-o-transition: top 0.2s linear;
transition: top 0.2s linear;
} }
/* Usability hint */ /* Usability hint */
@ -65,6 +70,8 @@ div.ColVis_collectionBackground {
.content-pane { .content-pane {
position: relative; position: relative;
box-sizing: border-box;
height: 100%;
border: 1px solid #202020; border: 1px solid #202020;
border-top: 1px solid #353535; border-top: 1px solid #353535;
@ -207,6 +214,7 @@ div.ColVis_collectionBackground {
right: 0; right: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
height: 36px;
} }
#library_display_processing { #library_display_processing {
@ -337,9 +345,10 @@ div.ColVis_collectionBackground {
} }
.sb-options-form { .sb-options-form {
position: relative; position: absolute;
padding: 5px; top: 5px;
float: left; left: 5px;
right: 5px;
} }
.sb-options-form label { .sb-options-form label {
@ -348,8 +357,8 @@ div.ColVis_collectionBackground {
} }
#sb_show_filter { #sb_show_filter {
float: right; right: 0;
margin-left: 4px; position: absolute;
} }
.nav-tabs { .nav-tabs {
@ -425,7 +434,7 @@ div.ColVis_collectionBackground {
/* Playlist/Block/Webstream Editors */ /* Playlist/Block/Webstream Editors */
#side_playlist { .side_playlist {
/*margin-top: 34px;*/ /*margin-top: 34px;*/
width: 100%; /* Override because we're using flexbox */ width: 100%; /* Override because we're using flexbox */
@ -441,7 +450,7 @@ div.ColVis_collectionBackground {
padding: 4px; padding: 4px;
} }
#spl_sortable .list-item-container { .spl_sortable .list-item-container {
cursor: move; cursor: move;
} }
@ -499,6 +508,41 @@ div.ColVis_collectionBackground {
overflow: auto; overflow: auto;
} }
#show_builder .ColVis.TableTools {
margin: 0;
position: absolute;
top: 36px;
right: 6px;
}
.ColVis.TableTools {
margin: 5px 5px 0 0;
}
.ColVis.TableTools > button {
padding: 3px 9px;
}
#show_builder .fg-toolbar > .btn-toolbar {
position: absolute;
top: 36px;
left: 6px;
padding: 0;
}
#show_builder .dataTables_scrolling {
top: 69px;
}
.sb-padded > .fg-toolbar {
height: 66px;
}
.fg-toolbar .btn-toolbar {
margin: 0;
padding: 5px;
}
.datatable tr, .datatable td { .datatable tr, .datatable td {
border: none !important; border: none !important;
} }

View File

@ -1,19 +1,19 @@
#side_playlist { .side_playlist {
width: 40%; width: 40%;
font-size: 16px; font-size: 16px;
overflow: auto; overflow: auto;
} }
#side_playlist,#side_playlist ul,#side_playlist li { .side_playlist,.side_playlist ul,.side_playlist li {
float: left; 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 .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; clear: left;
} }
#spl_sortable>li { .spl_sortable>li {
width: 100%; width: 100%;
margin-bottom: -1px; margin-bottom: -1px;
position: relative; position: relative;
@ -22,21 +22,21 @@
box-sizing: border-box; box-sizing: border-box;
} }
/*#side_playlist button { /*.side_playlist button {
float: left; float: left;
font-size: 12px; font-size: 12px;
height: 28px; height: 28px;
margin: 0 7px 20px 0; margin: 0 7px 20px 0;
}*/ }*/
#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;
@ -46,7 +46,7 @@
margin-bottom: 0; margin-bottom: 0;
} }
#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;
@ -145,7 +145,7 @@
text-align: center; text-align: center;
} }
#side_playlist h3 { .side_playlist h3 {
font-size: 20px; font-size: 20px;
margin: 9px 0 3px 0; margin: 9px 0 3px 0;
padding: 0; padding: 0;
@ -155,7 +155,7 @@
float: left; float: left;
} }
#side_playlist h4 { .side_playlist h4 {
font-size: 15px; font-size: 15px;
margin: 8px 0 10px 0; margin: 8px 0 10px 0;
padding: 0; padding: 0;
@ -165,11 +165,11 @@
float: left; float: left;
} }
#side_playlist h3+h4 { .side_playlist h3+h4 {
margin: 0 0 11px 0; margin: 0 0 11px 0;
} }
#spl_sortable div.big_play { .spl_sortable div.big_play {
display: block; display: block;
width: 20px; width: 20px;
height: 50px; height: 50px;
@ -183,7 +183,7 @@
color-stop(100%, #666666) ); color-stop(100%, #666666) );
} }
#spl_sortable div.big_play_disabled { .spl_sortable div.big_play_disabled {
display: block; display: block;
width: 20px; width: 20px;
height: 50px; height: 50px;
@ -197,7 +197,7 @@
color-stop(100%, #666666) ); color-stop(100%, #666666) );
} }
#spl_sortable div.big_play:hover { .spl_sortable div.big_play:hover {
border: 1px solid #282828; border: 1px solid #282828;
background-color: #3b3b3b; background-color: #3b3b3b;
background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%); background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
@ -206,31 +206,31 @@
cursor: pointer; cursor: pointer;
} }
#spl_sortable div.big_play .ui-icon { .spl_sortable div.big_play .ui-icon {
margin: 17px 0 0 1px; margin: 17px 0 0 1px;
} }
#spl_sortable div.big_play_disabled .ui-icon { .spl_sortable div.big_play_disabled .ui-icon {
margin: 17px 0 0 1px; margin: 17px 0 0 1px;
} }
#spl_sortable div.big_play:hover .ui-icon-play,#spl_sortable div.big_play:hover .ui-icon-pause .spl_sortable div.big_play:hover .ui-icon-play,.spl_sortable div.big_play:hover .ui-icon-pause
{ {
background-image: url(redmond/images/ui-icons_ff5d1a_256x240.png); background-image: url(redmond/images/ui-icons_ff5d1a_256x240.png);
} }
#spl_sortable .ui-icon-closethick { .spl_sortable .ui-icon-closethick {
position: absolute; position: absolute;
top: 3px; top: 3px;
right: 6px; right: 6px;
z-index: 3; z-index: 3;
} }
#spl_sortable .ui-icon-closethick:hover { .spl_sortable .ui-icon-closethick:hover {
background-image: url(redmond/images/ui-icons_ff5d1a_256x240.png) background-image: url(redmond/images/ui-icons_ff5d1a_256x240.png)
} }
#spl_sortable .spl_fade_control { .spl_sortable .spl_fade_control {
position: absolute; position: absolute;
right: 35px; right: 35px;
z-index: 6; z-index: 6;
@ -240,11 +240,11 @@
background-color: transparent; background-color: transparent;
} }
#spl_sortable li .container { .spl_sortable li .container {
} }
#spl_sortable .text-row { .spl_sortable .text-row {
height: 20px; height: 20px;
line-height: 19px; line-height: 19px;
overflow: hidden; overflow: hidden;
@ -254,38 +254,38 @@
float: none; float: none;
} }
#spl_sortable .top { .spl_sortable .top {
padding-top: 9px; padding-top: 9px;
} }
#spl_sortable li .spl_fade_control.ui-state-default { .spl_sortable li .spl_fade_control.ui-state-default {
background: transparent url(images/crossfade_playlist.png) no-repeat 0 0; background: transparent url(images/crossfade_playlist.png) no-repeat 0 0;
border: none; border: none;
} }
#spl_sortable li .spl_fade_control.ui-state-active { .spl_sortable li .spl_fade_control.ui-state-active {
background: transparent url(images/crossfade_playlist.png) no-repeat 0 background: transparent url(images/crossfade_playlist.png) no-repeat 0
-30px; -30px;
border: none; border: none;
} }
#spl_sortable li .crossfade,#spl_sortable li .cue-edit { .spl_sortable li .crossfade,.spl_sortable li .cue-edit {
background: #debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important; background: #debc9e url(images/crossfade_bg.png) repeat-x 0 0 !important;
border: 1px solid #5d5d5d; border: 1px solid #5d5d5d;
border-width: 1px 0 0 0; border-width: 1px 0 0 0;
min-height: 35px; min-height: 35px;
} }
#spl_sortable li .cue-edit { .spl_sortable li .cue-edit {
background: #b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0 background: #b6d1d5 url(images/cue-editor_bg.png) repeat-x 0 0
!important; !important;
} }
#spl_sortable dl.inline-list { .spl_sortable dl.inline-list {
margin: 10px 0 0 37px; margin: 10px 0 0 37px;
} }
#spl_sortable li .spl_fade_start,#spl_sortable li .spl_fade_end { .spl_sortable li .spl_fade_start,.spl_sortable li .spl_fade_end {
background-color: transparent; background-color: transparent;
float: right; float: right;
font-size: 9px; font-size: 9px;
@ -295,22 +295,22 @@
margin-top: 2px; margin-top: 2px;
} }
#spl_sortable li .spl_fade_start.ui-state-default { .spl_sortable li .spl_fade_start.ui-state-default {
background: transparent url(images/fade_in.png) no-repeat 0 0; background: transparent url(images/fade_in.png) no-repeat 0 0;
border: none; border: none;
} }
#spl_sortable li .spl_fade_start.ui-state-active { .spl_sortable li .spl_fade_start.ui-state-active {
background: transparent url(images/fade_in.png) no-repeat 0 -30px; background: transparent url(images/fade_in.png) no-repeat 0 -30px;
border: none; border: none;
} }
#spl_sortable li .spl_fade_end.ui-state-default { .spl_sortable li .spl_fade_end.ui-state-default {
background: transparent url(images/fade_out.png) no-repeat 0 0; background: transparent url(images/fade_out.png) no-repeat 0 0;
border: none; border: none;
} }
#spl_sortable li .spl_fade_end.ui-state-active { .spl_sortable li .spl_fade_end.ui-state-active {
background: transparent url(images/fade_out.png) no-repeat 0 -30px; background: transparent url(images/fade_out.png) no-repeat 0 -30px;
border: none; border: none;
} }
@ -372,7 +372,7 @@
z-index: 3; z-index: 3;
} }
#spl_sortable li .spl_cue { .spl_sortable li .spl_cue {
background-color: transparent; background-color: transparent;
float: right; float: right;
font-size: 9px; font-size: 9px;
@ -383,17 +383,17 @@
cursor: pointer; cursor: pointer;
} }
#spl_sortable li .spl_cue.ui-state-default { .spl_sortable li .spl_cue.ui-state-default {
background: transparent url(images/cue_playlist.png) no-repeat 0 0; background: transparent url(images/cue_playlist.png) no-repeat 0 0;
border: none; border: none;
} }
#spl_sortable li .spl_cue.ui-state-default:hover { .spl_sortable li .spl_cue.ui-state-default:hover {
background: transparent url(images/cue_playlist.png) no-repeat 0 -15px; background: transparent url(images/cue_playlist.png) no-repeat 0 -15px;
border: none; border: none;
} }
#spl_sortable li .spl_cue.ui-state-active,#spl_sortable li .spl_cue.ui-state-active:hover .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; background: transparent url(images/cue_playlist.png) no-repeat 0 -30px;
border: none; border: none;
@ -406,30 +406,30 @@
clear: both; clear: both;
} }
#side_playlist .playlist_title h3,#side_playlist .playlist_title h4 { .side_playlist .playlist_title h3,.side_playlist .playlist_title h4 {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
#side_playlist .playlist_title h3 { .side_playlist .playlist_title h3 {
float: left; float: left;
width: 84%; width: 84%;
} }
#side_playlist .playlist_title h4 { .side_playlist .playlist_title h4 {
float: right; float: right;
clear: none; clear: none;
font-size: 16px; font-size: 16px;
padding-top: 4px; padding-top: 4px;
} }
#side_playlist .playlist_title h3 a { .side_playlist .playlist_title h3 a {
padding: 0 22px 0 2px; padding: 0 22px 0 2px;
background: url(images/icon_edit_l.png) no-repeat right center; background: url(images/icon_edit_l.png) no-repeat right center;
text-decoration: none; text-decoration: none;
} }
#side_playlist .playlist_title h3 a:hover { .side_playlist .playlist_title h3 a:hover {
background-color: #D8D8D8; background-color: #D8D8D8;
} }
@ -437,7 +437,7 @@
display: none; display: none;
} }
#side_playlist .playlist_title h3 input[type="text"] { .side_playlist .playlist_title h3 input[type="text"] {
background-color: #dddddd; background-color: #dddddd;
border: 1px solid #8F8F8F; border: 1px solid #8F8F8F;
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
@ -453,12 +453,12 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
#side_playlist .zend_form { .side_playlist .zend_form {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
#side_playlist .zend_form dt,#side_playlist .zend_form dd { .side_playlist .zend_form dt,.side_playlist .zend_form dd {
display: block; display: block;
float: none; float: none;
margin: 4px 0 0; margin: 4px 0 0;
@ -466,27 +466,27 @@
width: 100%; width: 100%;
} }
#side_playlist .zend_form dd.buttons { .side_playlist .zend_form dd.buttons {
margin-top: 8px; margin-top: 8px;
text-align: right; text-align: right;
} }
#side_playlist .zend_form dd.buttons .ui-button { .side_playlist .zend_form dd.buttons .ui-button {
margin: 0 0 0 10px; margin: 0 0 0 10px;
} }
#side_playlist .zend_form dt { .side_playlist .zend_form dt {
color: #5B5B5B; color: #5B5B5B;
font-weight: bold; font-weight: bold;
margin: 9px 0 0; margin: 9px 0 0;
padding: 0 2px; padding: 0 2px;
} }
#side_playlist .zend_form dt:first-child { .side_playlist .zend_form dt:first-child {
margin-top: 0; margin-top: 0;
} }
#side_playlist .zend_form dd textarea { .side_playlist .zend_form dd textarea {
background-color: #dddddd; background-color: #dddddd;
border: 1px solid #5B5B5B; border: 1px solid #5B5B5B;
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
@ -499,17 +499,17 @@
width: 99.7%; width: 99.7%;
} }
#side_playlist fieldset { .side_playlist fieldset {
border: 1px solid #9a9a9a; border: 1px solid #9a9a9a;
margin: 0 0 8px 0; margin: 0 0 8px 0;
padding: 8px; padding: 8px;
} }
#side_playlist fieldset.closed .zend_form { .side_playlist fieldset.closed .zend_form {
display: none; display: none;
} }
#side_playlist fieldset.closed { .side_playlist fieldset.closed {
border-width: 1px 0 0; border-width: 1px 0 0;
margin-bottom: -6px; margin-bottom: -6px;
margin-left: 1px; margin-left: 1px;
@ -526,7 +526,7 @@ fieldset>legend {
background-image: url(redmond/images/ui-icons_454545_256x240.png); background-image: url(redmond/images/ui-icons_454545_256x240.png);
} }
#side_playlist .zend_form input,#side_playlist .zend_form textarea { .side_playlist .zend_form input,.side_playlist .zend_form textarea {
width: auto; width: auto;
} }

View File

@ -160,10 +160,10 @@ fieldset {
} }
/* Clearfix */ /* Clearfix */
.clearfix:after, #side_playlist li:after { content: "."; display: block; height: 0; clear: both; visibility: hidden;} .clearfix:after, .side_playlist li:after { content: "."; display: block; height: 0; clear: both; visibility: hidden;}
.clearfix, #side_playlist li { display: inline-block; } .clearfix, .side_playlist li { display: inline-block; }
* html .clearfix, * html li { height: 1%;} * html .clearfix, * html li { height: 1%;}
.clearfix, #side_playlist li { display: block; } .clearfix, .side_playlist li { display: block; }
/* Master Panel */ /* Master Panel */
@ -2000,19 +2000,19 @@ span.errors.sp-errors{
#show_content_dialog .datatable { #show_content_dialog .datatable {
margin-top:8px; margin-top:8px;
} }
.simple-formblock.metadata, #side_playlist .simple-formblock.metadata { .simple-formblock.metadata, .side_playlist .simple-formblock.metadata {
border:none; border:none;
width:auto; width:auto;
display:block; display:block;
padding: 2px; padding: 2px;
} }
#side_playlist .simple-formblock.metadata .input_text, #side_playlist .simple-formblock.metadata .input_text_area { .side_playlist .simple-formblock.metadata .input_text, .side_playlist .simple-formblock.metadata .input_text_area {
width:95%; width:95%;
} }
#side_playlist .simple-formblock.metadata.simple-formblock dd { .side_playlist .simple-formblock.metadata.simple-formblock dd {
width:70%; width:70%;
} }
#side_playlist h3.plain { .side_playlist h3.plain {
float:none; float:none;
font-size:18px; font-size:18px;
margin:2px 0 20px 0; margin:2px 0 20px 0;
@ -3345,8 +3345,13 @@ dd .stream-status {
* absolute positioning in Airtime) when we want * absolute positioning in Airtime) when we want
* to focus on responsive design. * to focus on responsive design.
*/ */
.usability_hint + .wrapper { .usability_hint:not(.hidden) + .wrapper {
top: 170px; top: 170px;
-webkit-transition: top 0.2s linear;
-moz-transition: top 0.2s linear;
-o-transition: top 0.2s linear;
transition: top 0.2s linear;
} }
.usability_hint { .usability_hint {

View File

@ -82,8 +82,8 @@ function openAudioPreview(p_event) {
p_event.stopPropagation(); p_event.stopPropagation();
var audioFileID = $(this).attr('audioFile'); var audioFileID = $(this).attr('audioFile');
var objId = $('#obj_id:first').attr('value'); var objId = $('.obj_id:first').attr('value');
var objType = $('#obj_type:first').attr('value'); var objType = $('.obj_type:first').attr('value');
var playIndex = $(this).parent().parent().attr('id'); var playIndex = $(this).parent().parent().attr('id');
playIndex = playIndex.substring(4); //remove the spl_ playIndex = playIndex.substring(4); //remove the spl_
@ -169,19 +169,18 @@ function getUsabilityHint() {
var current_hint = $hint_div.html(); var current_hint = $hint_div.html();
if (json === "") { if (json === "") {
// there are no more hints to display to the user // there are no more hints to display to the user
$hint_div.hide(); $hint_div.hide("slow").addClass("hidden");
} else if (current_hint !== json) { } else if (current_hint !== json) {
// we only change the message if it is new // we only change the message if it is new
if ($hint_div.is(":visible")) { if ($hint_div.is(":visible")) {
$hint_div.hide(); $hint_div.hide("slow").addClass("hidden");
} }
$hint_div.html(json); $hint_div.html(json);
$hint_div.show("slow"); $hint_div.show("slow").removeClass("hidden");
} else { } else {
// hint is the same before we hid it so we just need to show it // hint is the same before we hid it so we just need to show it
if ($hint_div.is(":hidden")) { if ($hint_div.is(":hidden")) {
$hint_div.show(); $hint_div.show("slow").removeClass("hidden");
} }
} }
}); });

View File

@ -7,7 +7,8 @@ var AIRTIME = (function(AIRTIME) {
LIB_SELECTED_CLASS = "lib-selected", LIB_SELECTED_CLASS = "lib-selected",
chosenItems = {}, chosenItems = {},
visibleChosenItems = {}, visibleChosenItems = {},
$previouslySelected; $previouslySelected,
flagForDeselection = false;
// we need to know whether the criteria value is string or // we need to know whether the criteria value is string or
@ -253,6 +254,7 @@ var AIRTIME = (function(AIRTIME) {
if ($el.length !== 0) { if ($el.length !== 0) {
mod.highlightItem($el); mod.highlightItem($el);
mod.checkItem($el);
} }
} }
}; };
@ -279,6 +281,14 @@ var AIRTIME = (function(AIRTIME) {
} }
}; };
mod.checkItem = function($el) {
$el.find(".library_checkbox > input").prop('checked', true);
};
mod.uncheckItem = function($el) {
$el.find(".library_checkbox > input").prop('checked', false);
};
mod.highlightItem = function($el) { mod.highlightItem = function($el) {
$el.addClass(LIB_SELECTED_CLASS); $el.addClass(LIB_SELECTED_CLASS);
}; };
@ -310,11 +320,10 @@ var AIRTIME = (function(AIRTIME) {
mod.selectCurrentPage = function() { mod.selectCurrentPage = function() {
$.fn.reverse = [].reverse; $.fn.reverse = [].reverse;
var $trs = $libTable.find("tbody").find("tr").reverse(); var $trs = $libTable.find("tbody").find("tr").reverse();
$trs.addClass(LIB_SELECTED_CLASS);
$trs.each(function(i, el){ $trs.each(function(i, el){
$el = $(this); mod.selectItem($(el));
mod.addToChosen($el); mod.checkItem($(el));
}); });
mod.checkToolBarIcons(); mod.checkToolBarIcons();
@ -326,13 +335,11 @@ var AIRTIME = (function(AIRTIME) {
* from gmail) * from gmail)
*/ */
mod.deselectCurrentPage = function() { mod.deselectCurrentPage = function() {
var $trs = $libTable.find("tr"), id; var $trs = $libTable.find("tr");
$trs.removeClass(LIB_SELECTED_CLASS);
$trs.each(function(i, el){ $trs.each(function(i, el){
$el = $(this); mod.deselectItem($(el));
id = $el.attr("id"); mod.uncheckItem($(el));
delete chosenItems[id];
}); });
mod.checkToolBarIcons(); mod.checkToolBarIcons();
@ -340,7 +347,10 @@ var AIRTIME = (function(AIRTIME) {
mod.selectNone = function() { mod.selectNone = function() {
var $trs = $libTable.find("tr"); var $trs = $libTable.find("tr");
$trs.removeClass(LIB_SELECTED_CLASS); $trs.each(function(i, el){
mod.deselectItem($(el));
mod.uncheckItem($(el));
});
$previouslySelected = undefined; $previouslySelected = undefined;
chosenItems = {}; chosenItems = {};
@ -349,9 +359,20 @@ var AIRTIME = (function(AIRTIME) {
}; };
mod.fnDeleteItems = function(aMedia) { mod.fnDeleteItems = function(aMedia) {
//Prevent the user from spamming the delete button while the AJAX request is in progress //Prevent the user from spamming the delete button while the AJAX request is in progress
AIRTIME.button.disableButton("btn-group #sb-trash", false); AIRTIME.button.disableButton("btn-group #sb-trash", false);
var openTabObjectIds = $(".obj_id"),
mediaIds = [];
for (var i in aMedia) {
mediaIds.push(aMedia[i].id);
}
openTabObjectIds.each(function(i, el) {
var v = $(el).val();
if ($.inArray(v, mediaIds)) {
AIRTIME.playlist.fnOpenPlaylist({id: v});
AIRTIME.playlist.closeTab();
}
});
$.post(baseUrl+"library/delete", $.post(baseUrl+"library/delete",
{"format": "json", "media": aMedia}, {"format": "json", "media": aMedia},
@ -374,8 +395,8 @@ var AIRTIME = (function(AIRTIME) {
item, item,
temp, temp,
aMedia = [], aMedia = [],
currentObjId = $("#side_playlist").find("#obj_id").val(), currentObjId = $(".side_playlist.active-tab").find(".obj_id").val(),
currentObjType = $("#side_playlist").find("#obj_type").val(), currentObjType = $(".side_playlist.active-tab").find(".obj_type").val(),
closeObj = false; closeObj = false;
// process selected files/playlists. // process selected files/playlists.
@ -763,35 +784,6 @@ var AIRTIME = (function(AIRTIME) {
AIRTIME.library.setupLibraryToolbar(oTable); AIRTIME.library.setupLibraryToolbar(oTable);
$libTable.find("tbody").on("click", ".library_checkbox", function(ev) {
var $cb = $(this),
$tr = $cb.parents("tr"),
// Get the ID of the selected row
$rowId = $tr.attr("id");
if (!$tr.hasClass(LIB_SELECTED_CLASS)) {
if (ev.shiftKey && $previouslySelected !== undefined) {
// If the selected row comes before the previously selected row,
// we want to select previous rows, otherwise we select next
if ($previouslySelected.prevAll("#"+$rowId).length !== 0) {
$previouslySelected.prevUntil($tr).each(function(i, el) {
mod.selectItem($(el));
});
} else {
$previouslySelected.nextUntil($tr).each(function(i, el) {
mod.selectItem($(el));
});
}
}
mod.selectItem($tr);
// Remember this row so we can properly multiselect
$previouslySelected = $tr;
} else {
mod.deselectItem($tr);
}
});
$libTable.find("tbody").on("dblclick", "tr", function(ev) { $libTable.find("tbody").on("dblclick", "tr", function(ev) {
var data = $(this).data("aData"); var data = $(this).data("aData");
AIRTIME.library.dblClickAdd(data, data.ftype); AIRTIME.library.dblClickAdd(data, data.ftype);
@ -802,33 +794,28 @@ var AIRTIME = (function(AIRTIME) {
// Get the ID of the selected row // Get the ID of the selected row
$rowId = $tr.attr("id"); $rowId = $tr.attr("id");
if (ev.shiftKey && $previouslySelected !== undefined) { if (!$tr.hasClass(LIB_SELECTED_CLASS)) {
if ($previouslySelected.attr("id") == $rowId) { if (ev.shiftKey && $previouslySelected !== undefined) {
return; if ($previouslySelected.attr("id") == $rowId) {
} return;
}
// If the selected row comes before the previously selected row, // If the selected row comes before the previously selected row,
// we want to select previous rows, otherwise we select next // we want to select previous rows, otherwise we select next
if ($previouslySelected.prevAll("#"+$rowId).length !== 0) { if ($previouslySelected.prevAll("#" + $rowId).length !== 0) {
$previouslySelected.prevUntil($tr).each(function(i, el){ $previouslySelected.prevUntil($tr).each(function (i, el) {
mod.selectItem($(el)); mod.selectItem($(el));
}); });
} else { } else {
$previouslySelected.nextUntil($tr).each(function(i, el){ $previouslySelected.nextUntil($tr).each(function (i, el) {
mod.selectItem($(el)); mod.selectItem($(el));
}); });
}
} }
mod.selectItem($tr);
} else if (ev.ctrlKey) {
mod.selectItem($tr); mod.selectItem($tr);
mod.checkItem($tr);
} else { } else {
if (!$tr.hasClass(LIB_SELECTED_CLASS)) { flagForDeselection = true;
$("." + LIB_SELECTED_CLASS).each(function (i, el) {
mod.deselectItem($(el))
});
}
mod.selectItem($tr);
} }
// Remember this row so we can properly multiselect // Remember this row so we can properly multiselect
@ -836,11 +823,14 @@ var AIRTIME = (function(AIRTIME) {
}); });
$libTable.find("tbody").on("click", "tr", function(ev) { $libTable.find("tbody").on("click", "tr", function(ev) {
if (!ev.ctrlKey && !ev.shiftKey) { //ev.preventDefault();
$("." + LIB_SELECTED_CLASS).each(function (i, el) {
mod.deselectItem($(el)) if (flagForDeselection) {
}); flagForDeselection = false;
mod.selectItem($(this)); mod.deselectItem($(this));
mod.uncheckItem($(this));
} else {
mod.checkItem($(this));
} }
}); });
@ -872,23 +862,20 @@ var AIRTIME = (function(AIRTIME) {
// define an edit callback. // define an edit callback.
if (oItems.edit !== undefined) { if (oItems.edit !== undefined) {
if (data.ftype === "audioclip") { if (data.ftype === "audioclip") {
callback = function() { callback = function() {
$.get(oItems.edit.url, {format: "json"}, function(json){ $.get(oItems.edit.url, {format: "json"}, function(json){
buildEditMetadataDialog(json); AIRTIME.playlist.fileMdEdit(json);
}); });
}; };
} else if (data.ftype === "playlist" || data.ftype === "block") { } else if (data.ftype === "playlist" || data.ftype === "block") {
callback = function() { callback = function() {
var url = baseUrl+'Playlist/edit'; AIRTIME.playlist.fnEdit(data.id, data.ftype, baseUrl+'new-playlist/edit');
AIRTIME.playlist.fnEdit(data.id, data.ftype, url);
AIRTIME.playlist.validatePlaylistElements(); AIRTIME.playlist.validatePlaylistElements();
}; };
} else if (data.ftype === "stream") { } else if (data.ftype === "stream") {
callback = function() { callback = function() {
var url = baseUrl+'Webstream/edit'; AIRTIME.playlist.fnEdit(data.id, data.ftype, baseUrl + 'new-webstream/edit');
AIRTIME.playlist.fnEdit(data.id, data.ftype, url);
} }
} else { } else {
throw new Exception($.i18n._("Unknown type: ") + data.ftype); throw new Exception($.i18n._("Unknown type: ") + data.ftype);

View File

@ -75,7 +75,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isTimeValid(cueIn)){ if (!isTimeValid(cueIn)){
showError(span, $.i18n._("please put in a time '00:00:00 (.0)'")); showError(span, $.i18n._("please put in a time '00:00:00 (.0)'"));
@ -96,7 +96,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist.active-tab li[unqid='+unqid+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -112,7 +112,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isTimeValid(cueOut)){ if (!isTimeValid(cueOut)){
showError(span, $.i18n._("please put in a time '00:00:00 (.0)'")); showError(span, $.i18n._("please put in a time '00:00:00 (.0)'"));
@ -134,7 +134,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist.active-tab li[unqid='+unqid+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -146,7 +146,7 @@ var AIRTIME = (function(AIRTIME){
var url = baseUrl+"new-playlist/set-cue", var url = baseUrl+"new-playlist/set-cue",
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(), type = $pl.find('.obj_type').val(),
li, li,
span; span;
@ -179,7 +179,7 @@ var AIRTIME = (function(AIRTIME){
} }
if (json.cue_error !== undefined) { if (json.cue_error !== undefined) {
li = $('#side_playlist li[unqid='+id+']'); li = $('.side_playlist.active-tab li[unqid='+id+']');
if (json.code === 0) { if (json.code === 0) {
@ -204,7 +204,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+id+']'); li = $('.side_playlist.active-tab li[unqid='+id+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -216,7 +216,7 @@ var AIRTIME = (function(AIRTIME){
var url = baseUrl+"new-playlist/set-crossfade", var url = baseUrl+"new-playlist/set-crossfade",
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $pl.find('.obj_type').val();
$.post(url, $.post(url,
{format: "json", fadeIn: fadeIn, fadeOut: fadeOut, id1: id1, id2: id2, offset: offset, modified: lastMod, type: type}, {format: "json", fadeIn: fadeIn, fadeOut: fadeOut, id1: id1, id2: id2, offset: offset, modified: lastMod, type: type},
@ -248,7 +248,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isFadeValid(fadeIn)){ if (!isFadeValid(fadeIn)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -286,7 +286,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isFadeValid(fadeOut)){ if (!isFadeValid(fadeOut)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -386,8 +386,8 @@ var AIRTIME = (function(AIRTIME){
.empty() .empty()
.val(json.description); .val(json.description);
$('#spl_sortable').off('focusout keydown'); $pl.find('.spl_sortable').off('focusout keydown');
$('#spl_sortable') $pl.find('.spl_sortable')
.empty() .empty()
.append($html); .append($html);
setCueEvents(); setCueEvents();
@ -398,7 +398,7 @@ var AIRTIME = (function(AIRTIME){
} }
function setFadeIcon(){ function setFadeIcon(){
var contents = $pl.find("#spl_sortable"); var contents = $pl.find(".spl_sortable");
var show = contents.is(":visible"); var show = contents.is(":visible");
var empty = $pl.find(".spl_empty"); var empty = $pl.find(".spl_empty");
@ -421,29 +421,29 @@ var AIRTIME = (function(AIRTIME){
} }
function getId() { function getId() {
return parseInt($pl.find("#obj_id").val(), 10); return parseInt($pl.find(".obj_id").val(), 10);
} }
function getModified() { function getModified() {
return parseInt($pl.find("#obj_lastMod").val(), 10); return parseInt($pl.find(".obj_lastMod").val(), 10);
} }
function setModified(modified) { function setModified(modified) {
$pl.find("#obj_lastMod").val(modified); $pl.find(".obj_lastMod").val(modified);
} }
/* /*
* Should all be moved to builder.js eventually * Should all be moved to builder.js eventually
*/ */
function openFileMdEditor(json) { function openFileMdEditor(json) {
$tabCount++;
var tabId = $openTabs[json.id]; var tabId = $openTabs[json.id];
if ($openTabs[json.id] !== undefined) { if ($openTabs[json.id] !== undefined) {
AIRTIME.showbuilder.switchTab($(".pl-tab-content-" + tabId), $("#pl-tab-" + tabId)); AIRTIME.showbuilder.switchTab($(".pl-tab-content-" + tabId), $("#pl-tab-" + tabId));
return; return;
} }
$tabCount++;
var wrapper = "<div id='side_playlist' class='pl-content pl-tab-content-" + $tabCount + "'><div class='editor_pane_wrapper'></div></div>", var wrapper = "<div class='side_playlist pl-content pl-tab-content-" + $tabCount + "'><div class='editor_pane_wrapper'></div></div>",
t = $("#show_builder").append(wrapper).find(".pl-tab-content-" + $tabCount), t = $("#show_builder").append(wrapper).find(".pl-tab-content-" + $tabCount),
pane = $(".editor_pane_wrapper:last"), pane = $(".editor_pane_wrapper:last"),
name = pane.append(json.dialog).find("#track_title").val() + $.i18n._(" - Metadata Editor"), name = pane.append(json.dialog).find("#track_title").val() + $.i18n._(" - Metadata Editor"),
@ -468,15 +468,14 @@ var AIRTIME = (function(AIRTIME){
} }
function openPlaylist(json) { function openPlaylist(json) {
$tabCount++;
console.log(json);
var tabId = $openTabs[json.id]; var tabId = $openTabs[json.id];
if ($openTabs[json.id] !== undefined) { if ($openTabs[json.id] !== undefined) {
AIRTIME.showbuilder.switchTab($(".pl-tab-content-" + tabId), $("#pl-tab-" + tabId)); AIRTIME.showbuilder.switchTab($(".pl-tab-content-" + tabId), $("#pl-tab-" + tabId));
return; return;
} }
$tabCount++;
var wrapper = "<div id='side_playlist' class='pl-content pl-tab-content-" + $tabCount + "'><div class='editor_pane_wrapper'></div></div>", var wrapper = "<div class='side_playlist pl-content pl-tab-content-" + $tabCount + "'><div class='editor_pane_wrapper'></div></div>",
t = $("#show_builder").append(wrapper).find(".pl-tab-content-" + $tabCount), t = $("#show_builder").append(wrapper).find(".pl-tab-content-" + $tabCount),
pane = $(".editor_pane_wrapper:last"), pane = $(".editor_pane_wrapper:last"),
name = pane.append(json.html).find("#playlist_name_display").text(), name = pane.append(json.html).find("#playlist_name_display").text(),
@ -494,7 +493,7 @@ var AIRTIME = (function(AIRTIME){
newTab.on("click", function() { newTab.on("click", function() {
AIRTIME.showbuilder.switchTab(t, newTab); AIRTIME.showbuilder.switchTab(t, newTab);
$.post(baseUrl+'new-playlist/edit', $.post(baseUrl+'new-playlist/edit',
{format: "json", id: t.find("#obj_id").val(), type: t.find("#obj_type").val()}); {format: "json", id: t.find(".obj_id").val(), type: t.find(".obj_type").val()});
}); });
AIRTIME.showbuilder.switchTab(t, newTab); AIRTIME.showbuilder.switchTab(t, newTab);
AIRTIME.playlist.init(); AIRTIME.playlist.init();
@ -517,7 +516,7 @@ var AIRTIME = (function(AIRTIME){
} }
function closeTab() { function closeTab() {
delete $openTabs[$(".active-tab").find("#obj_id").val()]; delete $openTabs[$(".active-tab").find(".obj_id").val()];
$(".nav.nav-tabs .active").remove(); $(".nav.nav-tabs .active").remove();
$pl.remove(); $pl.remove();
AIRTIME.showbuilder.switchTab($("#show_builder .outer-datatable-wrapper"), $("#timeline-tab")); AIRTIME.showbuilder.switchTab($("#show_builder .outer-datatable-wrapper"), $("#timeline-tab"));
@ -593,7 +592,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for playlist entries (each row in the playlist) //sets events dynamically for playlist entries (each row in the playlist)
function setPlaylistEntryEvents() { function setPlaylistEntryEvents() {
$pl.delegate("#spl_sortable .ui-icon-closethick", $pl.delegate(".spl_sortable .ui-icon-closethick",
{"click": function(ev){ {"click": function(ev){
var id; var id;
id = parseInt($(this).attr("id").split("_").pop(), 10); id = parseInt($(this).attr("id").split("_").pop(), 10);
@ -660,7 +659,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for the cue editor. //sets events dynamically for the cue editor.
function setCueEvents() { function setCueEvents() {
var temp = $('#spl_sortable'); var temp = $('.active-tab .spl_sortable');
temp.on("focusout", ".spl_cue_in span", changeCueIn); temp.on("focusout", ".spl_cue_in span", changeCueIn);
temp.on("keydown", ".spl_cue_in span", submitOnEnter); temp.on("keydown", ".spl_cue_in span", submitOnEnter);
@ -677,7 +676,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for the fade editor. //sets events dynamically for the fade editor.
function setFadeEvents() { function setFadeEvents() {
var temp = $('#spl_sortable'); var temp = $('.active-tab .spl_sortable');
temp.on("focusout", ".spl_fade_in span", changeFadeIn); temp.on("focusout", ".spl_fade_in span", changeFadeIn);
temp.on("keydown", ".spl_fade_in span", submitOnEnter); temp.on("keydown", ".spl_fade_in span", submitOnEnter);
@ -698,7 +697,7 @@ var AIRTIME = (function(AIRTIME){
//main playlist fades events //main playlist fades events
$pl.on("click", "#spl_crossfade", function() { $pl.on("click", "#spl_crossfade", function() {
var lastMod = getModified(), var lastMod = getModified(),
type = $pl.find('#obj_type').val(); type = $pl.find('.obj_type').val();
if ($(this).hasClass("ui-state-active")) { if ($(this).hasClass("ui-state-active")) {
$(this).removeClass("ui-state-active"); $(this).removeClass("ui-state-active");
@ -748,7 +747,7 @@ var AIRTIME = (function(AIRTIME){
span = $(this), span = $(this),
fadeIn = $.trim(span.text()), fadeIn = $.trim(span.text()),
lastMod = getModified(), lastMod = getModified(),
type = $pl.find('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isFadeValid(fadeIn)){ if (!isFadeValid(fadeIn)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -772,7 +771,7 @@ var AIRTIME = (function(AIRTIME){
span = $(this), span = $(this),
fadeOut = $.trim(span.text()), fadeOut = $.trim(span.text()),
lastMod = getModified(), lastMod = getModified(),
type = $pl.find('#obj_type').val(); type = $pl.find('.obj_type').val();
if (!isFadeValid(fadeOut)){ if (!isFadeValid(fadeOut)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -816,7 +815,7 @@ var AIRTIME = (function(AIRTIME){
$pl.on("click", 'button[id="playlist_shuffle_button"]', function(){ $pl.on("click", 'button[id="playlist_shuffle_button"]', function(){
obj_id = $('input[id="obj_id"]').val(); obj_id = $pl.find('.obj_id').val();
url = baseUrl+"new-playlist/shuffle"; url = baseUrl+"new-playlist/shuffle";
enableLoadingIcon(); enableLoadingIcon();
$.post(url, {format: "json", obj_id: obj_id}, function(json){ $.post(url, {format: "json", obj_id: obj_id}, function(json){
@ -840,14 +839,14 @@ var AIRTIME = (function(AIRTIME){
//stream url //stream url
//default_length //default_length
//playlist name //playlist name
var id = $pl.find("#obj_id").attr("value"); var id = $pl.find(".obj_id").attr("value");
var description = $pl.find("#description").val(); var description = $pl.find("#description").val();
var streamurl = $pl.find("#streamurl-element input").val(); var streamurl = $pl.find("#streamurl-element input").val();
var length = $pl.find("#streamlength-element input").val(); var length = $pl.find("#streamlength-element input").val();
var name = $pl.find("#playlist_name_display").text(); var name = $pl.find("#playlist_name_display").text();
//hide any previous errors (if any) //hide any previous errors (if any)
$("#side_playlist .errors").empty().hide(); $(".side_playlist.active-tab .errors").empty().hide();
var url = baseUrl+'new-webstream/save'; var url = baseUrl+'new-webstream/save';
$.post(url, $.post(url,
@ -859,23 +858,23 @@ var AIRTIME = (function(AIRTIME){
if (!field[0]) { if (!field[0]) {
var elemId = "#"+s+"-error"; var elemId = "#"+s+"-error";
var $div = $("#side_playlist " + elemId).text(field[1]).show(); var $div = $(".side_playlist.active-tab " + elemId).text(field[1]).show();
} }
} }
} else { } else {
var $status = $("#side_playlist .status"); var $status = $(".side_playlist.active-tab .status");
$status.html(json.statusMessage); $status.html(json.statusMessage);
$status.show(); $status.show();
setTimeout(function(){$status.fadeOut("slow", function(){$status.empty()})}, 5000); setTimeout(function(){$status.fadeOut("slow", function(){$status.empty()})}, 5000);
var $ws_id = $("#obj_id"); var $ws_id = $(".active-tab .obj_id");
$ws_id.attr("value", json.streamId); $ws_id.attr("value", json.streamId);
var $ws_id = $("#ws_delete"); var $ws_id = $("#ws_delete");
$ws_id.show(); $ws_id.show();
var length = $("#side_playlist #ws_length"); var length = $(".side_playlist.active-tab #ws_length");
length.text(json.length); length.text(json.length);
//redraw the library to show the new webstream //redraw the library to show the new webstream
@ -913,7 +912,7 @@ var AIRTIME = (function(AIRTIME){
if ((name == "Untitled Playlist" if ((name == "Untitled Playlist"
|| name == "Untitled Smart Block") || name == "Untitled Smart Block")
&& $pl.find("#spl_sortable .spl_empty").length == 1) { && $pl.find(".spl_sortable .spl_empty").length == 1) {
mod.fnDelete(); mod.fnDelete();
} else { } else {
closeTab(); closeTab();
@ -940,8 +939,8 @@ var AIRTIME = (function(AIRTIME){
block_name = $pl.find('#playlist_name_display').text(), block_name = $pl.find('#playlist_name_display').text(),
block_desc = $pl.find('textarea[name="description"]').val(), block_desc = $pl.find('textarea[name="description"]').val(),
save_action = baseUrl+'new-playlist/save', save_action = baseUrl+'new-playlist/save',
obj_id = $pl.find('input[id="obj_id"]').val(), obj_id = $pl.find(".obj_id").val(),
obj_type = $pl.find('#obj_type').val(), obj_type = $pl.find('.obj_type').val(),
lastMod = getModified(), lastMod = getModified(),
dt = $('table[id="library_display"]').dataTable(); dt = $('table[id="library_display"]').dataTable();
enableLoadingIcon(); enableLoadingIcon();
@ -1064,7 +1063,7 @@ var AIRTIME = (function(AIRTIME){
}; };
}()); }());
$pl.find("#spl_sortable").sortable(sortableConf); $pl.find(".spl_sortable").sortable(sortableConf);
AIRTIME.playlist.validatePlaylistElements(); AIRTIME.playlist.validatePlaylistElements();
} }
@ -1131,7 +1130,7 @@ var AIRTIME = (function(AIRTIME){
stopAudioPreview(); stopAudioPreview();
id = (plid === undefined) ? getId() : plid; id = (plid === undefined) ? getId() : plid;
lastMod = getModified(); lastMod = getModified();
type = $pl.find('#obj_type').val(); type = $pl.find('.obj_type').val();
url = baseUrl+'new-playlist/delete'; url = baseUrl+'new-playlist/delete';
$.post(url, $.post(url,
@ -1149,7 +1148,7 @@ var AIRTIME = (function(AIRTIME){
stopAudioPreview(); stopAudioPreview();
id = (wsid === undefined) ? getId() : wsid; id = (wsid === undefined) ? getId() : wsid;
lastMod = getModified(); lastMod = getModified();
type = $pl.find('#obj_type').val(); type = $pl.find('.obj_type').val();
url = baseUrl+'new-webstream/delete'; url = baseUrl+'new-webstream/delete';
$.post(url, $.post(url,
@ -1200,7 +1199,7 @@ var AIRTIME = (function(AIRTIME){
function playlistRequest(sUrl, oData) { function playlistRequest(sUrl, oData) {
var lastMod, var lastMod,
obj_type = $pl.find('#obj_type').val(); obj_type = $pl.find('.obj_type').val();
mod.disableUI(); mod.disableUI();

View File

@ -35,7 +35,7 @@ var AIRTIME = (function(AIRTIME) {
btnText = $.i18n._('Add to current show'); btnText = $.i18n._('Add to current show');
} }
} else { } else {
var objType = $('#obj_type').val(); var objType = $('.active-tab .obj_type').val();
if (objType === 'block') { if (objType === 'block') {
btnText = ' ' + $.i18n._('Add to current smart block'); btnText = ' ' + $.i18n._('Add to current smart block');
} else { } else {
@ -115,7 +115,7 @@ var AIRTIME = (function(AIRTIME) {
helper: function () { helper: function () {
var $el = $(this), selected = mod var $el = $(this), selected = mod
.getChosenAudioFilesLength(), container, message, li = $("#side_playlist ul[id='spl_sortable'] li:first"), .getChosenAudioFilesLength(), container, message, li = $(".side_playlist.active-tab ul.spl_sortable li:first"),
width = li.width(), height = 55; width = li.width(), height = 55;
if (width > 798) width = 798; if (width > 798) width = 798;
@ -146,7 +146,7 @@ var AIRTIME = (function(AIRTIME) {
top: 30, top: 30,
left: 100 left: 100
}, },
connectToSortable: '#spl_sortable' connectToSortable: '.active-tab .spl_sortable'
}); });
} }
}; };

View File

@ -10,7 +10,7 @@ var AIRTIME = (function(AIRTIME) {
mod.checkAddButton = function() { mod.checkAddButton = function() {
var selected = mod.getChosenItemsLength(), var selected = mod.getChosenItemsLength(),
sortable = $('#spl_sortable:visible'), sortable = $('.spl_sortable:visible'),
check = false, check = false,
blockType = $('input[name=sp_type]:checked', '#smart-block-form').val(); blockType = $('input[name=sp_type]:checked', '#smart-block-form').val();
@ -27,7 +27,7 @@ var AIRTIME = (function(AIRTIME) {
AIRTIME.button.disableButton("btn-group #library-plus", false); AIRTIME.button.disableButton("btn-group #library-plus", false);
} }
var objType = $('#obj_type').val(), var objType = $('.obj_type').val(),
btnText; btnText;
if (objType === 'playlist') { if (objType === 'playlist') {
btnText = ' '+$.i18n._('Add to current playlist'); btnText = ' '+$.i18n._('Add to current playlist');
@ -75,7 +75,7 @@ var AIRTIME = (function(AIRTIME) {
helper : function() { helper : function() {
var $el = $(this), selected = mod var $el = $(this), selected = mod
.getChosenAudioFilesLength(), container, message, li = $("#side_playlist ul[id='spl_sortable'] li:first"), .getChosenAudioFilesLength(), container, message, li = $(".side_playlist ul[id='spl_sortable'] li:first"),
width = li.width(), height = 55; width = li.width(), height = 55;
if (width > 798) width = 798; if (width > 798) width = 798;
@ -106,7 +106,7 @@ var AIRTIME = (function(AIRTIME) {
top: 30, top: 30,
left: 100 left: 100
}, },
connectToSortable : '#spl_sortable' connectToSortable : '.spl_sortable'
}); });
}; };
@ -148,7 +148,7 @@ var AIRTIME = (function(AIRTIME) {
if (temp.ftype === "audioclip" if (temp.ftype === "audioclip"
|| temp.ftype === "block" || temp.ftype === "block"
|| (temp.ftype === "stream" && $( || (temp.ftype === "stream" && $(
"#obj_type").val() === "playlist")) { ".obj_type").val() === "playlist")) {
aMediaIds.push(new Array(temp.id, aMediaIds.push(new Array(temp.id,
temp.ftype)); temp.ftype));
} }
@ -157,9 +157,9 @@ var AIRTIME = (function(AIRTIME) {
AIRTIME.playlist.fnAddItems(aMediaIds, AIRTIME.playlist.fnAddItems(aMediaIds,
undefined, 'after'); undefined, 'after');
} else { } else {
if ($('#obj_type').val() == 'block') { if ($('.obj_type').val() == 'block') {
alert($.i18n._('You can only add tracks to smart blocks.')); alert($.i18n._('You can only add tracks to smart blocks.'));
} else if ($('#obj_type').val() == 'playlist') { } else if ($('.obj_type').val() == 'playlist') {
alert($.i18n._('You can only add tracks, smart blocks, and webstreams to playlists.')); alert($.i18n._('You can only add tracks, smart blocks, and webstreams to playlists.'));
} }
} }

View File

@ -345,8 +345,8 @@ var AIRTIME = (function(AIRTIME) {
item, item,
temp, temp,
aMedia = [], aMedia = [],
currentObjId = $("#side_playlist").find("#obj_id").val(), currentObjId = $(".side_playlist").find(".obj_id").val(),
currentObjType = $("#side_playlist").find("#obj_type").val(), currentObjType = $(".side_playlist").find(".obj_type").val(),
closeObj = false; closeObj = false;
// process selected files/playlists. // process selected files/playlists.
@ -370,7 +370,7 @@ var AIRTIME = (function(AIRTIME) {
$.post(baseUrl+"playlist/close-playlist", $.post(baseUrl+"playlist/close-playlist",
{"format": "json", "type": currentObjType}, {"format": "json", "type": currentObjType},
function(json) { function(json) {
$("#side_playlist").empty().append(json.html); $(".side_playlist").empty().append(json.html);
}); });
} }
} }

View File

@ -72,7 +72,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isTimeValid(cueIn)){ if (!isTimeValid(cueIn)){
showError(span, $.i18n._("please put in a time '00:00:00 (.0)'")); showError(span, $.i18n._("please put in a time '00:00:00 (.0)'"));
@ -93,7 +93,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist li[unqid='+unqid+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -109,7 +109,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isTimeValid(cueOut)){ if (!isTimeValid(cueOut)){
showError(span, $.i18n._("please put in a time '00:00:00 (.0)'")); showError(span, $.i18n._("please put in a time '00:00:00 (.0)'"));
@ -131,7 +131,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist li[unqid='+unqid+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -143,7 +143,7 @@ var AIRTIME = (function(AIRTIME){
var url = baseUrl+"Playlist/set-cue", var url = baseUrl+"Playlist/set-cue",
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(), type = $('.obj_type').val(),
li, li,
span; span;
@ -176,7 +176,7 @@ var AIRTIME = (function(AIRTIME){
} }
if (json.cue_error !== undefined) { if (json.cue_error !== undefined) {
li = $('#side_playlist li[unqid='+id+']'); li = $('.side_playlist li[unqid='+id+']');
if (json.code === 0) { if (json.code === 0) {
@ -201,7 +201,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+id+']'); li = $('.side_playlist li[unqid='+id+']');
li.find(".cue-edit").toggle(); li.find(".cue-edit").toggle();
highlightActive(li); highlightActive(li);
highlightActive(li.find('.spl_cue')); highlightActive(li.find('.spl_cue'));
@ -213,7 +213,7 @@ var AIRTIME = (function(AIRTIME){
var url = baseUrl+"Playlist/set-crossfade", var url = baseUrl+"Playlist/set-crossfade",
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
$.post(url, $.post(url,
{format: "json", fadeIn: fadeIn, fadeOut: fadeOut, id1: id1, id2: id2, offset: offset, modified: lastMod, type: type}, {format: "json", fadeIn: fadeIn, fadeOut: fadeOut, id1: id1, id2: id2, offset: offset, modified: lastMod, type: type},
@ -229,7 +229,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
$li = $('#side_playlist li[unqid='+id+']'); $li = $('.side_playlist li[unqid='+id+']');
$li.find('.crossfade').toggle(); $li.find('.crossfade').toggle();
highlightActive($li.find('.spl_fade_control')); highlightActive($li.find('.spl_fade_control'));
}); });
@ -245,7 +245,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isFadeValid(fadeIn)){ if (!isFadeValid(fadeIn)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -267,7 +267,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist li[unqid='+unqid+']');
li.find('.crossfade').toggle(); li.find('.crossfade').toggle();
highlightActive(li.find('.spl_fade_control')); highlightActive(li.find('.spl_fade_control'));
}); });
@ -283,7 +283,7 @@ var AIRTIME = (function(AIRTIME){
li = span.parents("li"), li = span.parents("li"),
unqid = li.attr("unqid"), unqid = li.attr("unqid"),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isFadeValid(fadeOut)){ if (!isFadeValid(fadeOut)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -305,7 +305,7 @@ var AIRTIME = (function(AIRTIME){
setPlaylistContent(json); setPlaylistContent(json);
li = $('#side_playlist li[unqid='+unqid+']'); li = $('.side_playlist li[unqid='+unqid+']');
li.find('.crossfade').toggle(); li.find('.crossfade').toggle();
highlightActive(li.find('.spl_fade_control')); highlightActive(li.find('.spl_fade_control'));
}); });
@ -357,7 +357,7 @@ var AIRTIME = (function(AIRTIME){
function editName() { function editName() {
var nameElement = $(this), var nameElement = $(this),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
//remove any newlines if user somehow snuck them in (easy to do if dragging/dropping text) //remove any newlines if user somehow snuck them in (easy to do if dragging/dropping text)
nameElement.text(nameElement.text().replace("\n", "")); nameElement.text(nameElement.text().replace("\n", ""));
@ -401,8 +401,8 @@ var AIRTIME = (function(AIRTIME){
.empty() .empty()
.val(json.description); .val(json.description);
$('#spl_sortable').off('focusout keydown'); $('.spl_sortable').off('focusout keydown');
$('#spl_sortable') $('.spl_sortable')
.empty() .empty()
.append($html); .append($html);
setCueEvents(); setCueEvents();
@ -413,7 +413,7 @@ var AIRTIME = (function(AIRTIME){
} }
function setFadeIcon(){ function setFadeIcon(){
var contents = $("#spl_sortable"); var contents = $(".spl_sortable");
var show = contents.is(":visible"); var show = contents.is(":visible");
var empty = $(".spl_empty"); var empty = $(".spl_empty");
@ -436,19 +436,19 @@ var AIRTIME = (function(AIRTIME){
} }
function getId() { function getId() {
return parseInt($("#obj_id").val(), 10); return parseInt($(".obj_id").val(), 10);
} }
function getModified() { function getModified() {
return parseInt($("#obj_lastMod").val(), 10); return parseInt($(".obj_lastMod").val(), 10);
} }
function setModified(modified) { function setModified(modified) {
$("#obj_lastMod").val(modified); $(".obj_lastMod").val(modified);
} }
function openPlaylist(json) { function openPlaylist(json) {
$("#side_playlist") $(".side_playlist")
.empty() .empty()
.append(json.html); .append(json.html);
@ -541,7 +541,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for playlist entries (each row in the playlist) //sets events dynamically for playlist entries (each row in the playlist)
function setPlaylistEntryEvents() { function setPlaylistEntryEvents() {
$pl.delegate("#spl_sortable .ui-icon-closethick", $pl.delegate(".spl_sortable .ui-icon-closethick",
{"click": function(ev){ {"click": function(ev){
var id; var id;
id = parseInt($(this).attr("id").split("_").pop(), 10); id = parseInt($(this).attr("id").split("_").pop(), 10);
@ -608,7 +608,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for the cue editor. //sets events dynamically for the cue editor.
function setCueEvents() { function setCueEvents() {
var temp = $('#spl_sortable'); var temp = $('.spl_sortable');
temp.on("focusout", ".spl_cue_in span", changeCueIn); temp.on("focusout", ".spl_cue_in span", changeCueIn);
temp.on("keydown", ".spl_cue_in span", submitOnEnter); temp.on("keydown", ".spl_cue_in span", submitOnEnter);
@ -625,7 +625,7 @@ var AIRTIME = (function(AIRTIME){
//sets events dynamically for the fade editor. //sets events dynamically for the fade editor.
function setFadeEvents() { function setFadeEvents() {
var temp = $('#spl_sortable'); var temp = $('.spl_sortable');
temp.on("focusout", ".spl_fade_in span", changeFadeIn); temp.on("focusout", ".spl_fade_in span", changeFadeIn);
temp.on("keydown", ".spl_fade_in span", submitOnEnter); temp.on("keydown", ".spl_fade_in span", submitOnEnter);
@ -646,7 +646,7 @@ var AIRTIME = (function(AIRTIME){
//main playlist fades events //main playlist fades events
$pl.on("click", "#spl_crossfade", function() { $pl.on("click", "#spl_crossfade", function() {
var lastMod = getModified(), var lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if ($(this).hasClass("ui-state-active")) { if ($(this).hasClass("ui-state-active")) {
$(this).removeClass("ui-state-active"); $(this).removeClass("ui-state-active");
@ -696,7 +696,7 @@ var AIRTIME = (function(AIRTIME){
span = $(this), span = $(this),
fadeIn = $.trim(span.text()), fadeIn = $.trim(span.text()),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isFadeValid(fadeIn)){ if (!isFadeValid(fadeIn)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -720,7 +720,7 @@ var AIRTIME = (function(AIRTIME){
span = $(this), span = $(this),
fadeOut = $.trim(span.text()), fadeOut = $.trim(span.text()),
lastMod = getModified(), lastMod = getModified(),
type = $('#obj_type').val(); type = $('.obj_type').val();
if (!isFadeValid(fadeOut)){ if (!isFadeValid(fadeOut)){
showError(span, $.i18n._("please put in a time in seconds '00 (.0)'")); showError(span, $.i18n._("please put in a time in seconds '00 (.0)'"));
@ -788,14 +788,14 @@ var AIRTIME = (function(AIRTIME){
//stream url //stream url
//default_length //default_length
//playlist name //playlist name
var id = $pl.find("#obj_id").attr("value"); var id = $pl.find(".obj_id").attr("value");
var description = $pl.find("#description").val(); var description = $pl.find("#description").val();
var streamurl = $pl.find("#streamurl-element input").val(); var streamurl = $pl.find("#streamurl-element input").val();
var length = $pl.find("#streamlength-element input").val(); var length = $pl.find("#streamlength-element input").val();
var name = $pl.find("#playlist_name_display").text(); var name = $pl.find("#playlist_name_display").text();
//hide any previous errors (if any) //hide any previous errors (if any)
$("#side_playlist .errors").empty().hide(); $(".side_playlist .errors").empty().hide();
var url = baseUrl+'Webstream/save'; var url = baseUrl+'Webstream/save';
$.post(url, $.post(url,
@ -807,23 +807,23 @@ var AIRTIME = (function(AIRTIME){
if (!field[0]) { if (!field[0]) {
var elemId = "#"+s+"-error"; var elemId = "#"+s+"-error";
var $div = $("#side_playlist " + elemId).text(field[1]).show(); var $div = $(".side_playlist " + elemId).text(field[1]).show();
} }
} }
} else { } else {
var $status = $("#side_playlist .status"); var $status = $(".side_playlist .status");
$status.html(json.statusMessage); $status.html(json.statusMessage);
$status.show(); $status.show();
setTimeout(function(){$status.fadeOut("slow", function(){$status.empty()})}, 5000); setTimeout(function(){$status.fadeOut("slow", function(){$status.empty()})}, 5000);
var $ws_id = $("#obj_id"); var $ws_id = $(".obj_id");
$ws_id.attr("value", json.streamId); $ws_id.attr("value", json.streamId);
var $ws_id = $("#ws_delete"); var $ws_id = $("#ws_delete");
$ws_id.show(); $ws_id.show();
var length = $("#side_playlist #ws_length"); var length = $(".side_playlist #ws_length");
length.text(json.length); length.text(json.length);
//redraw the library to show the new webstream //redraw the library to show the new webstream
@ -877,7 +877,7 @@ var AIRTIME = (function(AIRTIME){
block_desc = $('textarea[name="description"]').val(), block_desc = $('textarea[name="description"]').val(),
save_action = baseUrl+'Playlist/save', save_action = baseUrl+'Playlist/save',
obj_id = $('input[id="obj_id"]').val(), obj_id = $('input[id="obj_id"]').val(),
obj_type = $('#obj_type').val(), obj_type = $('.obj_type').val(),
lastMod = getModified(), lastMod = getModified(),
dt = $('table[id="library_display"]').dataTable(); dt = $('table[id="library_display"]').dataTable();
enableLoadingIcon(); enableLoadingIcon();
@ -1000,7 +1000,7 @@ var AIRTIME = (function(AIRTIME){
}; };
}()); }());
$pl.find("#spl_sortable").sortable(sortableConf); $pl.find(".spl_sortable").sortable(sortableConf);
AIRTIME.playlist.validatePlaylistElements(); AIRTIME.playlist.validatePlaylistElements();
} }
@ -1064,7 +1064,7 @@ var AIRTIME = (function(AIRTIME){
stopAudioPreview(); stopAudioPreview();
id = (plid === undefined) ? getId() : plid; id = (plid === undefined) ? getId() : plid;
lastMod = getModified(); lastMod = getModified();
type = $('#obj_type').val(); type = $('.obj_type').val();
url = baseUrl+'Playlist/delete'; url = baseUrl+'Playlist/delete';
$.post(url, $.post(url,
@ -1081,7 +1081,7 @@ var AIRTIME = (function(AIRTIME){
stopAudioPreview(); stopAudioPreview();
id = (wsid === undefined) ? getId() : wsid; id = (wsid === undefined) ? getId() : wsid;
lastMod = getModified(); lastMod = getModified();
type = $('#obj_type').val(); type = $('.obj_type').val();
url = baseUrl+'Webstream/delete'; url = baseUrl+'Webstream/delete';
$.post(url, $.post(url,
@ -1137,7 +1137,7 @@ var AIRTIME = (function(AIRTIME){
function playlistRequest(sUrl, oData) { function playlistRequest(sUrl, oData) {
var lastMod, var lastMod,
obj_type = $('#obj_type').val(); obj_type = $('.obj_type').val();
mod.disableUI(); mod.disableUI();
@ -1473,7 +1473,7 @@ var AIRTIME = (function(AIRTIME){
mod.onReady = function() { mod.onReady = function() {
$lib = $("#library_content"); $lib = $("#library_content");
$pl = $("#side_playlist"); $pl = $(".side_playlist");
setWidgetSize(); setWidgetSize();

View File

@ -350,7 +350,7 @@ function setupUI() {
/* Activate or Deactivate shuffle button /* Activate or Deactivate shuffle button
* It is only active if playlist is not empty * It is only active if playlist is not empty
*/ */
var plContents = $('#spl_sortable').children(); var plContents = $('.spl_sortable').children();
var shuffleButton = $('button[id="shuffle_button"], button[id="playlist_shuffle_button"], button[id="pl-bl-clear-content"]'); var shuffleButton = $('button[id="shuffle_button"], button[id="playlist_shuffle_button"], button[id="pl-bl-clear-content"]');
if (!plContents.hasClass('spl_empty')) { if (!plContents.hasClass('spl_empty')) {
@ -364,15 +364,15 @@ function setupUI() {
} }
var dynamic_length = target_length; var dynamic_length = target_length;
if ($('#obj_type').val() == 'block') { if ($('.obj_type').val() == 'block') {
if (playlist_type == "0") { if (playlist_type == "0") {
$('button[id="generate_button"]').show(); $('button[id="generate_button"]').show();
$('button[id="shuffle_button"]').show(); $('button[id="shuffle_button"]').show();
$('#spl_sortable').show(); $('.spl_sortable').show();
} else { } else {
$('button[id="generate_button"]').hide(); $('button[id="generate_button"]').hide();
$('button[id="shuffle_button"]').hide(); $('button[id="shuffle_button"]').hide();
$('#spl_sortable').hide(); $('.spl_sortable').hide();
} }
} }
@ -548,7 +548,7 @@ function removeButtonCheck() {
} }
function enableLoadingIcon() { function enableLoadingIcon() {
$("#side_playlist").block({ $(".side_playlist").block({
message: $.i18n._("Processing..."), message: $.i18n._("Processing..."),
theme: true, theme: true,
allowBodyStretch: true, allowBodyStretch: true,
@ -557,7 +557,7 @@ function enableLoadingIcon() {
} }
function disableLoadingIcon() { function disableLoadingIcon() {
$("#side_playlist").unblock() $(".side_playlist").unblock()
} }
// We need to know if the criteria value will be a string // We need to know if the criteria value will be a string
// or numeric value in order to populate the modifier // or numeric value in order to populate the modifier

View File

@ -809,6 +809,104 @@ var AIRTIME = (function(AIRTIME){
} }
}); });
//begin context menu initialization.
$.contextMenu({
selector: '#show_builder tr.lib-audio:not(.sb-past)',
trigger: "right",
build: function($el, e) {
var items,
$tr = $el,
data = $tr.data("aData"),
cursorClass = "cursor-selected-row",
callback;
function processMenuItems(oItems) {
//define a preview callback.
if (oItems.preview !== undefined) {
callback = function() {
open_show_preview(data.instance, data.pos);
};
oItems.preview.callback = callback;
}
//define a select cursor callback.
if (oItems.selCurs !== undefined) {
callback = function() {
var $tr = $(this).parents('tr').next();
mod.selectCursor($tr);
};
oItems.selCurs.callback = callback;
}
//define a remove cursor callback.
if (oItems.delCurs !== undefined) {
callback = function() {
var $tr = $(this).parents('tr').next();
mod.removeCursor($tr);
};
oItems.delCurs.callback = callback;
}
//define a delete callback.
if (oItems.del !== undefined) {
callback = function() {
AIRTIME.showbuilder.fnRemove([{
id: data.id,
timestamp: data.timestamp,
instance: data.instance
}]);
};
oItems.del.callback = callback;
}
//only show the cursor selecting options if the library is visible on the page.
if ($tr.next().find('.marker').length === 0) {
delete oItems.selCurs;
delete oItems.delCurs;
}
//check to include either select or remove cursor.
else {
if ($tr.next().hasClass(cursorClass)) {
delete oItems.selCurs;
}
else {
delete oItems.delCurs;
}
}
items = oItems;
}
request = $.ajax({
url: baseUrl+"showbuilder/context-menu",
type: "GET",
data: {id : data.id, format: "json"},
dataType: "json",
async: false,
success: function(json){
processMenuItems(json.items);
}
});
return {
items: items
};
}
});
var sortableConf = (function(){ var sortableConf = (function(){
var origTrs, var origTrs,
aItemData = [], aItemData = [],
@ -973,7 +1071,7 @@ var AIRTIME = (function(AIRTIME){
$toolbar = $(".sb-content .fg-toolbar:first"); $toolbar = $(".sb-content .fg-toolbar:first");
var footer = $(".sb-content .fg-toolbar:last"), var footer = $(".sb-content .fg-toolbar:last"),
timerange = $(".sb-timerange"); timerange = $(".sb-timerange");
footer.append(timerange); $toolbar.append(timerange);
$menu = $("<div class='btn-toolbar'/>"); $menu = $("<div class='btn-toolbar'/>");
$menu.append("<div class='btn-group'>" + $menu.append("<div class='btn-group'>" +