diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php
index a3715a6f5..123b33351 100644
--- a/airtime_mvc/application/controllers/PlaylistController.php
+++ b/airtime_mvc/application/controllers/PlaylistController.php
@@ -348,7 +348,7 @@ class PlaylistController extends Zend_Controller_Action
/**
* The playlist fades are stored in the elements themselves.
* The fade in is set to the first elements fade in and
- * the fade out is set to the last elments fade out.
+ * the fade out is set to the last elements fade out.
**/
public function setPlaylistFadesAction()
{
@@ -358,6 +358,7 @@ class PlaylistController extends Zend_Controller_Action
try {
$pl = $this->getPlaylist();
$pl->setPlaylistfades($fadeIn, $fadeOut);
+ $this->view->modified = $pl->getLastModified("U");
}
catch (PlaylistOutDatedException $e) {
$this->playlistOutdated($pl, $e);
diff --git a/airtime_mvc/application/models/Playlist.php b/airtime_mvc/application/models/Playlist.php
index 146c07593..92063218c 100644
--- a/airtime_mvc/application/models/Playlist.php
+++ b/airtime_mvc/application/models/Playlist.php
@@ -520,7 +520,7 @@ class Application_Model_Playlist {
throw $e;
}
- return array("fadeIn"=> $fadeIn, "fadeOut"=> $fadeOut);
+ return array("fadeIn" => $fadeIn, "fadeOut" => $fadeOut);
}
public function setPlaylistfades($fadein, $fadeout) {
@@ -536,11 +536,12 @@ class Application_Model_Playlist {
}
if (isset($fadeout)) {
+ Logging::log("Setting playlist fade out {$fadeout}");
$row = CcPlaylistcontentsQuery::create()
->filterByDbPlaylistId($this->id)
->filterByDbPosition($this->getSize()-1)
->findOne($this->con);
-
+
$this->changeFadeInfo($row->getDbId(), null, $fadeout);
}
}
diff --git a/airtime_mvc/application/views/scripts/playlist/index.phtml b/airtime_mvc/application/views/scripts/playlist/index.phtml
index 0dd86a2fd..18b818da4 100644
--- a/airtime_mvc/application/views/scripts/playlist/index.phtml
+++ b/airtime_mvc/application/views/scripts/playlist/index.phtml
@@ -11,8 +11,7 @@
@@ -36,10 +35,10 @@
Fade in (s):
- 00
+ 00
Fade out (s):
- 00/span>
+ 00/span>
diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js
index 982d0d79a..3f911cfbb 100644
--- a/airtime_mvc/public/js/airtime/library/spl.js
+++ b/airtime_mvc/public/js/airtime/library/spl.js
@@ -212,14 +212,14 @@ var AIRTIME = (function(AIRTIME){
}
function openFadeEditor(event) {
- var pos, url, li;
+ var li;
event.stopPropagation();
- li = $(this).parent().parent();
+ li = $(this).parents("li");
li.find(".crossfade").toggle();
- if($(this).hasClass("ui-state-active")) {
+ if ($(this).hasClass("ui-state-active")) {
unHighlightActive(this);
}
else {
@@ -228,12 +228,12 @@ var AIRTIME = (function(AIRTIME){
}
function openCueEditor(event) {
- var pos, url, li, icon;
+ var li, icon;
event.stopPropagation();
icon = $(this);
- li = $(this).parent().parent().parent();
+ li = $(this).parents("li");
li.find(".cue-edit").toggle();
if (li.hasClass("ui-state-active")) {
@@ -248,35 +248,23 @@ var AIRTIME = (function(AIRTIME){
function editName() {
var nameElement = $(this),
- playlistName = nameElement.text(),
lastMod = getModified();
- $("#playlist_name_input")
- .removeClass('element_hidden')
- .val(playlistName)
- .keydown(function(event){
- if (event.keyCode === 13) {
- event.preventDefault();
- var input = $(this),
- url = '/Playlist/set-playlist-name';
+ url = '/Playlist/set-playlist-name';
- $.post(url,
- {format: "json", name: input.val(), modified: lastMod},
- function(json){
-
- if (json.error !== undefined) {
- playlistError(json);
- }
- else {
- setModified(json.modified);
- input.addClass('element_hidden');
- nameElement.text(json.playlistName);
- redrawLib();
- }
- });
- }
- })
- .focus();
+ $.post(url,
+ {format: "json", name: nameElement.text(), modified: lastMod},
+ function(json){
+
+ if (json.error !== undefined) {
+ playlistError(json);
+ }
+ else {
+ setModified(json.modified);
+ nameElement.text(json.playlistName);
+ redrawLib();
+ }
+ });
}
function redrawLib() {
@@ -372,13 +360,13 @@ var AIRTIME = (function(AIRTIME){
"keydown": submitOnEnter});
}
- function setUpPlaylist(playlist) {
-
+ function initialEvents() {
var playlist = $("#side_playlist"),
- sortableConf,
cachedDescription;
-
- playlist.find("#spl_crossfade").on("click", function() {
+
+
+ //main playlist fades events
+ playlist.on("click", "#spl_crossfade", function() {
var lastMod = getModified();
if ($(this).hasClass("ui-state-active")) {
@@ -397,10 +385,11 @@ var AIRTIME = (function(AIRTIME){
playlistError(json);
}
else {
- playlist.find("#spl_fade_in_main").find("span")
+ playlist.find("span.spl_main_fade_in")
.empty()
.append(json.fadeIn);
- playlist.find("#spl_fade_out_main").find("span")
+
+ playlist.find("span.spl_main_fade_out")
.empty()
.append(json.fadeOut);
@@ -409,22 +398,79 @@ var AIRTIME = (function(AIRTIME){
});
}
});
+
+ playlist.on("blur", "span.spl_main_fade_in", function(event){
+ event.stopPropagation();
- playlist.find("#playlist_name_display").on("click", editName);
-
- playlist.find("#fieldset-metadate_change > legend").on("click", function(){
- var descriptionElement = $(this).parent();
+ var url = "/Playlist/set-playlist-fades",
+ span = $(this),
+ fadeIn = $.trim(span.text()),
+ lastMod = getModified();
+
+ if (!isFadeValid(fadeIn)){
+ showError(span, "please put in a time in seconds '00 (.000000)'");
+ return;
+ }
- if (descriptionElement.hasClass("closed")) {
- cachedDescription = playlist.find("#fieldset-metadate_change textarea").val();
- descriptionElement.removeClass("closed");
- }
- else {
- descriptionElement.addClass("closed");
- }
+ $.post(url,
+ {format: "json", fadeIn: fadeIn, modified: lastMod},
+ function(json){
+ hideError(span);
+ if (json.modified !== undefined) {
+ setModified(json.modified);
+ }
+ });
});
- playlist.find("#description_save").on("click", function(){
+ playlist.on("blur", "span.spl_main_fade_out", function(event){
+ event.stopPropagation();
+
+ var url = "/Playlist/set-playlist-fades",
+ span = $(this),
+ fadeOut = $.trim(span.text()),
+ lastMod = getModified();
+
+ if (!isFadeValid(fadeOut)){
+ showError(span, "please put in a time in seconds '00 (.000000)'");
+ return;
+ }
+
+ $.post(url,
+ {format: "json", fadeOut: fadeOut, modified: lastMod},
+ function(json){
+ hideError(span);
+ if (json.modified !== undefined) {
+ setModified(json.modified);
+ }
+ });
+ });
+
+ playlist.on("keydown", "span.spl_main_fade_in, span.spl_main_fade_out", submitOnEnter);
+
+ playlist.on("click", "#crossfade_main > .ui-icon-closethick", function(){
+ playlist.find("#spl_crossfade").removeClass("ui-state-active");
+ playlist.find("#crossfade_main").hide();
+ });
+ //end main playlist fades.
+
+ //edit playlist name event
+ playlist.on("keydown", "#playlist_name_display", submitOnEnter);
+ playlist.on("blur", "#playlist_name_display", editName);
+
+ //edit playlist description events
+ playlist.on("click", "fieldset", function(){
+ var $fs = $(this);
+
+ if ($fs.hasClass("closed")) {
+ cachedDescription = $fs.find("textarea").val();
+ $fs.removeClass("closed");
+ }
+ else {
+ $fs.addClass("closed");
+ }
+ });
+
+ playlist.on("click", "#description_save", function(){
var textarea = playlist.find("#fieldset-metadate_change textarea"),
description = textarea.val(),
url,
@@ -447,60 +493,19 @@ var AIRTIME = (function(AIRTIME){
});
});
- playlist.find("#description_cancel").on("click", function(){
+ playlist.on("click", "#description_cancel", function(){
var textarea = playlist.find("#fieldset-metadate_change textarea");
textarea.val(cachedDescription);
playlist.find("#fieldset-metadate_change").addClass("closed");
});
-
- playlist.find("#spl_fade_in_main span:first").on("blur", function(event){
- event.stopPropagation();
-
- var url = "/Playlist/set-playlist-fades",
- span = $(this),
- fadeIn = $.trim(span.text()),
- lastMod = getModified();
-
- if (!isFadeValid(fadeIn)){
- showError(span, "please put in a time in seconds '00 (.000000)'");
- return;
- }
-
- $.post(url,
- {format: "json", fadeIn: fadeIn, modified: lastMod},
- function(json){
- hideError(span);
- });
- });
-
- playlist.find("#spl_fade_out_main span:last").on("blur", function(event){
- event.stopPropagation();
-
- var url = "/Playlist/set-playlist-fades",
- span = $(this),
- fadeOut = $.trim(span.text()),
- lastMod = getModified();
-
- if(!isFadeValid(fadeOut)){
- showError(span, "please put in a time in seconds '00 (.000000)'");
- return;
- }
-
- $.post(url,
- {format: "json", fadeOut: fadeOut, modified: lastMod},
- function(json){
- hideError(span);
- });
- });
-
- playlist.find("#spl_fade_in_main span:first, #spl_fade_out_main span:first")
- .on("keydown", submitOnEnter);
-
- playlist.find("#crossfade_main > .ui-icon-closethick").on("click", function(){
- playlist.find("#spl_crossfade").removeClass("ui-state-active");
- playlist.find("#crossfade_main").hide();
- });
+ //end edit playlist description events.
+
+ }
+
+ function setUpPlaylist(playlist) {
+ var playlist = $("#side_playlist"),
+ sortableConf;
sortableConf = (function(){
var aReceiveItems,
@@ -728,6 +733,7 @@ var AIRTIME = (function(AIRTIME){
setCueEvents(playlist);
setFadeEvents(playlist);
+ initialEvents();
setUpPlaylist(playlist);
};