Properly display saved values in building blocks.

3.3
Andreas Granig 15 years ago
parent 6cba17c108
commit 25e2ee2fbb

@ -85,17 +85,49 @@
var drops = Array('drop-elem-year', 'drop-elem-month', 'drop-elem-mday',
'drop-elem-wday', 'drop-elem-hour', 'drop-elem-minute');
var drags = Array('drag-elem-year', 'drag-elem-month', 'drag-elem-mday',
'drag-elem-wday', 'drag-elem-hour', 'drag-elem-minute');
[% FOREACH tset IN tsets %]
for(var i in drops) {
createDropZone(drops[i], [% tset.id %], 0, true);
[% FOREACH p IN tset.periods %]
createDropZone(drops[i], [% tset.id %], [% p.id %], false);
// TODO: check whether it's a range and add "-range" where applicable
$('div#' + drops[i] + '-[% tset.id %]-[% p.id %]').trigger('drop', $('div#' + drags[i]).draggable().clone());
[% END %]
}
[% FOREACH p IN tset.periods %]
createDropZone('drop-elem-year', [% tset.id %], [% p.id %], false);
[% IF p.year.defined %]
$('div#drop-elem-year-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-year').draggable().clone(), true, '[% p.year %]', undefined, undefined]);
[% ELSIF p.from_year.defined AND p.to_year.defined %]
$('div#drop-elem-year-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-year-range').draggable().clone(), true, undefined, '[% p.from_year %]', '[% p.to_year %]']);
[% END %]
createDropZone('drop-elem-month', [% tset.id %], [% p.id %], false);
[% IF p.month.defined %]
$('div#drop-elem-month-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-month').draggable().clone(), true, '[% p.month %]', undefined, undefined]);
[% ELSIF p.from_month.defined AND p.to_month.defined %]
$('div#drop-elem-month-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-month-range').draggable().clone(), true, undefined, '[% p.from_month %]', '[% p.to_month %]']);
[% END %]
createDropZone('drop-elem-mday', [% tset.id %], [% p.id %], false);
[% IF p.mday.defined %]
$('div#drop-elem-mday-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-mday').draggable().clone(), true, '[% p.mday %]', undefined, undefined]);
[% ELSIF p.from_mday.defined AND p.to_mday.defined %]
$('div#drop-elem-mday-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-mday-range').draggable().clone(), true, undefined, '[% p.from_mday %]', '[% p.to_mday %]']);
[% END %]
createDropZone('drop-elem-wday', [% tset.id %], [% p.id %], false);
[% IF p.wday.defined %]
$('div#drop-elem-wday-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-wday').draggable().clone(), true, '[% p.wday %]', undefined, undefined]);
[% ELSIF p.from_wday.defined AND p.to_wday.defined %]
$('div#drop-elem-wday-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-wday-range').draggable().clone(), true, undefined, '[% p.from_wday %]', '[% p.to_wday %]']);
[% END %]
createDropZone('drop-elem-hour', [% tset.id %], [% p.id %], false);
[% IF p.hour.defined %]
$('div#drop-elem-hour-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-hour').draggable().clone(), true, '[% p.hour %]', undefined, undefined]);
[% ELSIF p.from_hour.defined AND p.to_hour.defined %]
$('div#drop-elem-hour-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-hour-range').draggable().clone(), true, undefined, '[% p.from_hour %]', '[% p.to_hour %]']);
[% END %]
createDropZone('drop-elem-minute', [% tset.id %], [% p.id %], false);
[% IF p.minute.defined %]
$('div#drop-elem-minute-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-minute').draggable().clone(), true, '[% p.minute %]', undefined, undefined]);
[% ELSIF p.from_minute.defined AND p.to_minute.defined %]
$('div#drop-elem-minute-[% tset.id %]-[% p.id %]').trigger('drop', [$('div#drag-elem-minute-range').draggable().clone(), true, undefined, '[% p.from_minute %]', '[% p.to_minute %]']);
[% END %]
[% END %]
[% END %]
function pad2(number) {
@ -193,7 +225,10 @@
if(anchor != undefined) {
var foot = $(anchor).find('div.dropfoot');
$(foot).find('p').replaceWith('<p>Drop to refine</p>');
if(isactive)
$(foot).find('p').replaceWith('<p>Drop to refine</p>');
else
$(foot).find('p').replaceWith('<p></p>');
}
}
@ -204,18 +239,18 @@
var periodid = zonearr[2];
zonearr = id.match(/^(.+)\-[0-9]+\-[0-9]+$/);
id = zonearr[1];
createDropZone(id, tsetid, periodid);
createDropZone(id, tsetid, periodid, true);
}
function handleDrop(event, ui) {
function handleDrop(event, ui, manual, param, from_param, to_param) {
if(manual)
ui = ui[0];
var dropped;
if(ui.draggable)
dropped = ui.draggable.clone();
else
dropped = $(ui);
console.log(dropped);
var tsetid = $(this).attr('id');
var zonearr = tsetid.match(/^.+\-([0-9]+)\-([0-9]+)$/);
var periodid = zonearr[2];
@ -245,82 +280,80 @@
var hours = new Array(24);
var minutes = new Array(60);
console.log("param=" + param + ", from_param=" + from_param + ", to_param=" + to_param);
// from-year
if(dropped.attr("id") == "drag-elem-year" || dropped.attr("id") == "drag-elem-year-range") {
for(var i = 0; i < years.length; ++i) {
var y = d.getFullYear() + i;
$('<option value="' + y + '">' + y + '</option>').appendTo(from_select);
// TODO: somehow get vals of currently displayed (or edited) period and set as selected="selected".
// this needs to be passed to this callback somehow, or fetched from tt.
$('<option value="' + y + '"' + ((param == y || from_param == y) ? 'selected="selected"' : '') + '>' + y + '</option>').appendTo(from_select);
}
}
// to-year
if(dropped.attr("id") == "drag-elem-year-range") {
for(var i = 0; i < years.length; ++i) {
var y = d.getFullYear() + i + 1;
$('<option value="' + y + '">' + y + '</option>').appendTo(to_select);
$('<option value="' + y + '"' + (to_param == y ? 'selected="selected"' : '') + '>' + y + '</option>').appendTo(to_select);
}
}
// from-month
if(dropped.attr("id") == "drag-elem-month" || dropped.attr("id") == "drag-elem-month-range") {
for(var i = 0; i < months.length; ++i) {
$('<option value="' + (i+1) + '">' + month_names[i] + '</option>').appendTo(from_select);
$('<option value="' + (i+1) + '"' + ((param == (i+1) || from_param == (i+1)) ? 'selected="selected"' : '') + '>' + month_names[i] + '</option>').appendTo(from_select);
}
}
// to-month
if(dropped.attr("id") == "drag-elem-month-range") {
for(var i = 0; i < months.length; ++i) {
$('<option value="' + (i+1) + '">' + month_names[i] + '</option>').appendTo(to_select);
$('<option value="' + (i+1) + '"' + (to_param == (i+1) ? 'selected="selected"' : '') + '>' + month_names[i] + '</option>').appendTo(to_select);
}
}
// from-wday
if(dropped.attr("id") == "drag-elem-wday" || dropped.attr("id") == "drag-elem-wday-range") {
for(var i = 0; i < wdays.length; ++i) {
$('<option value="' + (i+1) + '">' + wday_names[i] + '</option>').appendTo(from_select);
$('<option value="' + (i+1) + '"' + ((param == (i+1) || from_param == (i+1)) ? 'selected="selected"' : '') + '>' + wday_names[i] + '</option>').appendTo(from_select);
}
}
// to-wday
if(dropped.attr("id") == "drag-elem-wday-range") {
for(var i = 0; i < wdays.length; ++i) {
$('<option value="' + (i+1) + '">' + wday_names[i] + '</option>').appendTo(to_select);
$('<option value="' + (i+1) + '"' + (to_param == (i+1) ? 'selected="selected"' : '') + '>' + wday_names[i] + '</option>').appendTo(to_select);
}
}
// from-mday
if(dropped.attr("id") == "drag-elem-mday" || dropped.attr("id") == "drag-elem-mday-range") {
for(var i = 0; i < mdays.length; ++i) {
$('<option value="' + (i + 1) + '">' + (i + 1) + '</option>').appendTo(from_select);
$('<option value="' + (i+1) + '"' + ((param == (i+1) || from_param == (i+1)) ? 'selected="selected"' : '') + '>' + (i+1) + '</option>').appendTo(from_select);
}
}
// to-mday
if(dropped.attr("id") == "drag-elem-mday-range") {
for(var i = 0; i < mdays.length; ++i) {
$('<option value="' + (i + 1) + '">' + (i + 1) + '</option>').appendTo(to_select);
$('<option value="' + (i+1) + '"' + (to_param == (i+1) ? 'selected="selected"' : '') + '>' + (i+1) + '</option>').appendTo(to_select);
}
}
// from-hour
if(dropped.attr("id") == "drag-elem-hour" || dropped.attr("id") == "drag-elem-hour-range") {
for(var i = 0; i < hours.length; ++i) {
$('<option value="' + i + '">' + pad2(i) + '</option>').appendTo(from_select);
$('<option value="' + i + '"' + ((param == i || from_param == i) ? 'selected="selected"' : '') + '>' + pad2(i) + '</option>').appendTo(from_select);
}
}
// to-hour
if(dropped.attr("id") == "drag-elem-hour-range") {
for(var i = 0; i < hours.length; ++i) {
$('<option value="' + i + '">' + pad2(i) + '</option>').appendTo(to_select);
$('<option value="' + i + '"' + (to_param == i ? 'selected="selected"' : '') + '>' + pad2(i) + '</option>').appendTo(to_select);
}
}
// from-minute
if(dropped.attr("id") == "drag-elem-minute" || dropped.attr("id") == "drag-elem-minute-range") {
for(var i = 0; i < minutes.length; ++i) {
$('<option value="' + i + '">' + pad2(i) + '</option>').appendTo(from_select);
$('<option value="' + i + '"' + ((param == i || from_param == i) ? 'selected="selected"' : '') + '>' + pad2(i) + '</option>').appendTo(from_select);
}
}
// to-minute
if(dropped.attr("id") == "drag-elem-minute-range") {
for(var i = 0; i < minutes.length; ++i) {
$('<option value="' + i + '">' + pad2(i) + '</option>').appendTo(to_select);
$('<option value="' + i + '"' + (to_param == i ? 'selected="selected"' : '') + '>' + pad2(i) + '</option>').appendTo(to_select);
}
}

Loading…
Cancel
Save