diff --git a/root/tt/subscriber_callforward_times.tt b/root/tt/subscriber_callforward_times.tt index c563494..0db7664 100644 --- a/root/tt/subscriber_callforward_times.tt +++ b/root/tt/subscriber_callforward_times.tt @@ -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('
Drop to refine
'); + if(isactive) + $(foot).find('p').replaceWith('Drop to refine
'); + else + $(foot).find('p').replaceWith(''); } } @@ -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; - $('').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. + $('').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; - $('').appendTo(to_select); + $('').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) { - $('').appendTo(from_select); + $('').appendTo(from_select); } } // to-month if(dropped.attr("id") == "drag-elem-month-range") { for(var i = 0; i < months.length; ++i) { - $('').appendTo(to_select); + $('').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) { - $('').appendTo(from_select); + $('').appendTo(from_select); } } // to-wday if(dropped.attr("id") == "drag-elem-wday-range") { for(var i = 0; i < wdays.length; ++i) { - $('').appendTo(to_select); + $('').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) { - $('').appendTo(from_select); + $('').appendTo(from_select); } } // to-mday if(dropped.attr("id") == "drag-elem-mday-range") { for(var i = 0; i < mdays.length; ++i) { - $('').appendTo(to_select); + $('').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) { - $('').appendTo(from_select); + $('').appendTo(from_select); } } // to-hour if(dropped.attr("id") == "drag-elem-hour-range") { for(var i = 0; i < hours.length; ++i) { - $('').appendTo(to_select); + $('').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) { - $('').appendTo(from_select); + $('').appendTo(from_select); } } // to-minute if(dropped.attr("id") == "drag-elem-minute-range") { for(var i = 0; i < minutes.length; ++i) { - $('').appendTo(to_select); + $('').appendTo(to_select); } }