Merge branch 'master' of dev.sourcefabric.org:campcaster

This commit is contained in:
mkonecny 2011-01-19 11:38:01 -05:00
commit 6eb43e7478
3 changed files with 23 additions and 74 deletions

View file

@ -1,8 +1,8 @@
<div id="spl_cue_in_<?php echo $this->pos; ?>" class="spl_cue_in"> <div id="spl_cue_in_<?php echo $this->pos; ?>" class="spl_cue_in">
<span>Cue In:</span> <span>Cue In:</span>
<span class="spl_text_input"><?php echo $this->cueIn; ?></span> <span class="spl_text_input" contenteditable="true"><?php echo $this->cueIn; ?></span>
</div> </div>
<div id="spl_cue_out_<?php echo $this->pos; ?>" class="spl_cue_out"> <div id="spl_cue_out_<?php echo $this->pos; ?>" class="spl_cue_out">
<span>Cue Out:</span> <span>Cue Out:</span>
<span class="spl_text_input"><?php echo $this->cueOut; ?></span> <span class="spl_text_input" contenteditable="true"><?php echo $this->cueOut; ?></span>
</div> </div>

View file

@ -1,8 +1,8 @@
<div id="spl_fade_out_<?php echo $this->pos; ?>" class="spl_fade_out"> <div id="spl_fade_out_<?php echo $this->pos; ?>" class="spl_fade_out">
<span>Fade Out:</span> <span>Fade Out:</span>
<span class="spl_text_input"><?php echo $this->fadeOut; ?></span> <span class="spl_text_input" contenteditable="true"><?php echo $this->fadeOut; ?></span>
</div> </div>
<div id="spl_fade_in_<?php echo $this->pos; ?>" class="spl_fade_in"> <div id="spl_fade_in_<?php echo $this->pos; ?>" class="spl_fade_in">
<span>Fade In:</span> <span>Fade In:</span>
<span class="spl_text_input"><?php echo $this->fadeIn; ?></span> <span class="spl_text_input" contenteditable="true"><?php echo $this->fadeIn; ?></span>
</div> </div>

View file

@ -13,16 +13,9 @@ function isTimeValid(time) {
return true; return true;
} }
function revertEditorValue(el) {
var oldValue = $("#pl_tmp_time").val();
el.empty()
.append(oldValue)
.click(addTextInput);;
}
function displayEditorError(error) { function displayEditorError(error) {
$("#spl_error") $("#spl_error")
.empty()
.append('<span class="ui-icon ui-icon-alert"></span>') .append('<span class="ui-icon ui-icon-alert"></span>')
.append(error) .append(error)
.show(); .show();
@ -43,30 +36,22 @@ function cueSetUp(pos, json) {
$("#spl_length") $("#spl_length")
.empty() .empty()
.append(json.response.length); .append(json.response.length);
$(".spl_cue_in span:last, .spl_cue_out span:last").click(addTextInput);
}
function fadeSetUp() {
$(".spl_fade_in span:last, .spl_fade_out span:last").click(addTextInput);
} }
function changeCueIn() { function changeCueIn() {
var pos, url, cueIn, div; var pos, url, cueIn, div;
span = $(this).parent(); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue/format/json"; url = "/Playlist/set-cue/format/json";
cueIn = $(this).val().trim(); cueIn = span.text().trim();
if(!isTimeValid(cueIn)){ if(!isTimeValid(cueIn)){
revertEditorValue(span);
return; return;
} }
$.post(url, {cueIn: cueIn, pos: pos}, function(json){ $.post(url, {cueIn: cueIn, pos: pos}, function(json){
if(json.response.error) { if(json.response.error) {
revertEditorValue(span);
displayEditorError(json.response.error); displayEditorError(json.response.error);
return; return;
} }
@ -83,19 +68,17 @@ function changeCueIn() {
function changeCueOut() { function changeCueOut() {
var pos, url, cueOut, div; var pos, url, cueOut, div;
span = $(this).parent(); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-cue/format/json"; url = "/Playlist/set-cue/format/json";
cueOut = $(this).val().trim(); cueOut = span.text().trim();
if(!isTimeValid(cueOut)){ if(!isTimeValid(cueOut)){
revertEditorValue(span);
return; return;
} }
$.post(url, {cueOut: cueOut, pos: pos}, function(json){ $.post(url, {cueOut: cueOut, pos: pos}, function(json){
if(json.response.error) { if(json.response.error) {
revertEditorValue(span);
displayEditorError(json.response.error); displayEditorError(json.response.error);
return; return;
} }
@ -112,19 +95,17 @@ function changeCueOut() {
function changeFadeIn() { function changeFadeIn() {
var pos, url, fadeIn, div; var pos, url, fadeIn, div;
span = $(this).parent(); span = $(this);
pos = span.parent().attr("id").split("_").pop(); pos = span.parent().attr("id").split("_").pop();
url = "/Playlist/set-fade/format/json"; url = "/Playlist/set-fade/format/json";
fadeIn = $(this).val().trim(); fadeIn = span.text().trim();
if(!isTimeValid(fadeIn)){ if(!isTimeValid(fadeIn)){
revertEditorValue(span);
return; return;
} }
$.post(url, {fadeIn: fadeIn, pos: pos}, function(json){ $.post(url, {fadeIn: fadeIn, pos: pos}, function(json){
if(json.response.error) { if(json.response.error) {
revertEditorValue(span);
displayEditorError(json.response.error); displayEditorError(json.response.error);
return; return;
} }
@ -134,26 +115,23 @@ function changeFadeIn() {
span.empty() span.empty()
.append(json.response.fadeIn); .append(json.response.fadeIn);
fadeSetUp();
}); });
} }
function changeFadeOut() { function changeFadeOut() {
var pos, url, fadeOut, div; var pos, url, fadeOut, div;
span = $(this).parent(); span = $(this);
pos = span.parent().attr("id").split("_").pop() - 1; pos = span.parent().attr("id").split("_").pop() - 1;
url = "/Playlist/set-fade/format/json"; url = "/Playlist/set-fade/format/json";
fadeOut = $(this).val().trim(); fadeOut = span.text().trim();
if(!isTimeValid(fadeOut)){ if(!isTimeValid(fadeOut)){
revertEditorValue(span);
return; return;
} }
$.post(url, {fadeOut: fadeOut, pos: pos}, function(json){ $.post(url, {fadeOut: fadeOut, pos: pos}, function(json){
if(json.response.error) { if(json.response.error) {
revertEditorValue(span);
displayEditorError(json.response.error); displayEditorError(json.response.error);
return; return;
} }
@ -163,48 +141,14 @@ function changeFadeOut() {
span.empty() span.empty()
.append(json.response.fadeOut); .append(json.response.fadeOut);
fadeSetUp();
}); });
} }
function addTextInput(){ function submitOnEnter(event) {
var time = $(this).text().trim(); //enter was pressed
var input = $("<input type='text' value="+time+" size='13' maxlength='15'/>"); if(event.keyCode === 13) {
$(this).blur();
//Firefox seems to have problems losing focus otherwise, Chrome is fine.
$(":input").blur();
$(this).empty();
$(this).append(input);
input.focus();
var parent = $(this).parent();
if( parent.hasClass('spl_cue_in') ){
input.blur(changeCueIn);
} }
else if( parent.hasClass('spl_cue_out') ){
input.blur(changeCueOut);
}
else if( parent.hasClass('spl_fade_in') ){
input.blur(changeFadeIn);
}
else if( parent.hasClass('spl_fade_out') ){
input.blur(changeFadeOut);
}
input.keypress(function(ev){
//don't want enter to submit.
if (ev.keyCode === 13) {
ev.preventDefault();
$(this).blur();
}
});
input = $("<input type='hidden' value="+time+" size='10' id='pl_tmp_time'/>");
$(this).append(input);
$(this).unbind('click');
} }
function setEditorContent(json) { function setEditorContent(json) {
@ -214,7 +158,12 @@ function setEditorContent(json) {
clearEditorError(); clearEditorError();
$(".spl_cue_in span:last, .spl_cue_out span:last, .spl_fade_in span:last, .spl_fade_out span:last").click(addTextInput); $(".spl_cue_in span:last").blur(changeCueIn);
$(".spl_cue_out span:last").blur(changeCueOut);
$(".spl_fade_in span:last").blur(changeFadeIn);
$(".spl_fade_out span:last").blur(changeFadeOut);
$(".spl_cue_in span:last, .spl_cue_out span:last, .spl_fade_in span:last, .spl_fade_out span:last").keyup(submitOnEnter);
} }
function highlightActive(el) { function highlightActive(el) {