<inputtype="text"value="${subsection.metadata['subtitle'] if 'subtitle' in subsection.metadata else ''}"class="unit-subtitle"data-metadata-name="subtitle"/>
<label>Format:</label>
<inputtype="text"value="${subsection.metadata['format'] if 'format' in subsection.metadata else ''}"class="unit-subtitle"data-metadata-name="subtitle"/>
</div>
<divclass="unit-list">
<label>Units:</label>
...
...
@@ -35,31 +45,38 @@
<divclass="window-contents">
<divclass="scheduled-date-input row">
<label>Release date:<!-- <span class="description">Determines when this subsection and the units within it will be released publicly.</span>--></label>
<inputtype="text"value="${subsection.start.strftime('%Y-%m-%d') if subsection.start is not None else ''}"placeholder="MM/DD/YYYY"class="date"size='15'/>
<inputtype="text"value="${subsection.start.strftime('%H:%M') if subsection.start is not None else ''}"placeholder="HH:MM"class="time"size='10'/>
</div>
<pclass="notice">The date above differs from the release date of Week 1 – 10/10/2012 at 12:00 am. <ahref="#"class="sync-date">Sync to Week 1.</a></p>
!function(e){functiono(t){varr=t.data("timepicker-settings"),i=t.data("timepicker-list");i&&i.length&&(i.remove(),t.data("timepicker-list",!1)),i=e("<ul />"),i.attr("tabindex",-1),i.addClass("ui-timepicker-list"),r.className&&i.addClass(r.className),i.css({display:"none",position:"absolute"}),r.minTime!==null&&r.showDuration&&i.addClass("ui-timepicker-with-duration");vars=r.durationTime!==null?r.durationTime:r.minTime,o=r.minTime!==null?r.minTime:0,u=r.maxTime!==null?r.maxTime:o+n-1;u<=o&&(u+=n);for(varf=o;f<=u;f+=r.step*60){varl=f%n,d=e("<li />");d.data("time",l),d.text(p(l,r.timeFormat));if(r.minTime!==null&&r.showDuration){varv=e("<span />");v.addClass("ui-timepicker-duration"),v.text(" ("+h(f-s)+")"),d.append(v)}i.append(d)}i.data("timepicker-input",t),t.data("timepicker-list",i),e("body").append(i),a(t,i),i.delegate("li","click",{timepicker:t},function(n){t.addClass("ui-timepicker-hideme"),t[0].focus(),i.find("li").removeClass("ui-timepicker-selected"),e(this).addClass("ui-timepicker-selected"),c(t),i.hide()})}functionu(t,n,r){if(!r&&r!==0)return!1;vari=t.data("timepicker-settings"),s=!1;returnn.find("li").each(function(t,n){varo=e(n);if(Math.abs(o.data("time")-r)<=i.step*30)returns=o,!1}),s}functiona(e,t){varn=d(e.val()),r=u(e,t,n);r&&r.addClass("ui-timepicker-selected")}functionf(){if(this.value=="")return;vart=e(this),n=p(d(this.value),t.data("timepicker-settings").timeFormat);t.val(n)}functionl(t){varn=e(this),r=n.data("timepicker-list");if(!r.is(":visible")){if(t.keyCode!=40)return!0;n.focus()}switch(t.keyCode){case13:returnc(n),s.hide.apply(this),t.preventDefault(),!1;case38:vari=r.find(".ui-timepicker-selected");if(!i.length){vari;r.children().each(function(t,n){if(e(n).position().top>0)returni=e(n),!1}),i.addClass("ui-timepicker-selected")}elsei.is(":first-child")||(i.removeClass("ui-timepicker-selected"),i.prev().addClass("ui-timepicker-selected"),i.prev().position().top<i.outerHeight()&&r.scrollTop(r.scrollTop()-i.outerHeight()));break;case40:vari=r.find(".ui-timepicker-selected");if(i.length==0){vari;r.children().each(function(t,n){if(e(n).position().top>0)returni=e(n),!1}),i.addClass("ui-timepicker-selected")}elsei.is(":last-child")||(i.removeClass("ui-timepicker-selected"),i.next().addClass("ui-timepicker-selected"),i.next().position().top+2*i.outerHeight()>r.outerHeight()&&r.scrollTop(r.scrollTop()+i.outerHeight()));break;case27:r.find("li").removeClass("ui-timepicker-selected"),r.hide();break;case9:case16:case17:case18:case19:case20:case33:case34:case35:case36:case37:case39:case45:return;default:r.find("li").removeClass("ui-timepicker-selected");return}}functionc(e){vart=e.data("timepicker-settings"),n=e.data("timepicker-list"),r=null,i=n.find(".ui-timepicker-selected");if(i.length)varr=i.data("time");elseif(e.val()){varr=d(e.val());a(e,n)}if(r!==null){vars=p(r,t.timeFormat);e.attr("value",s)}e.trigger("change").trigger("changeTime")}functionh(e){vart=Math.round(e/60),n;if(t<60)n=[t,i.mins];elseif(t==60)n=["1",i.hr];else{varr=(t/60).toFixed(1);i.decimal!="."&&(r=r.replace(".",i.decimal)),n=[r,i.hrs]}returnn.join(" ")}functionp(e,n){varr=newDate(t.valueOf()+e*1e3),i="";for(vars=0;s<n.length;s++){varo=n.charAt(s);switch(o){case"a":i+=r.getHours()>11?"pm":"am";break;case"A":i+=r.getHours()>11?"PM":"AM";break;case"g":varu=r.getHours()%12;i+=u==0?"12":u;break;case"G":i+=r.getHours();break;case"h":varu=r.getHours()%12;u!=0&&u<10&&(u="0"+u),i+=u==0?"12":u;break;case"H":varu=r.getHours();i+=u>9?u:"0"+u;break;case"i":vara=r.getMinutes();i+=a>9?a:"0"+a;break;case"s":vare=r.getSeconds();i+=e>9?e:"0"+e;break;default:i+=o}}returni}functiond(e){if(e=="")returnnull;if(e+0==e)returne;typeofe=="object"&&(e=e.getHours()+":"+e.getMinutes());vart=newDate(0),n=e.toLowerCase().match(/(\d+)(?::(\d\d))?\s*([pa]?)/);if(!n)returnnull;varr=parseInt(n[1]*1);if(n[3])if(r==12)vari=n[3]=="p"?12:0;elsevari=r+(n[3]=="p"?12:0);elsevari=r;vars=n[2]*1||0;returni*3600+s*60}vart=newDate;t.setHours(0),t.setMinutes(0),t.setSeconds(0);varn=86400,r={className:null,minTime:null,maxTime:null,durationTime:null,step:30,showDuration:!1,timeFormat:"g:ia",scrollDefaultNow:!1,scrollDefaultTime:!1,selectOnBlur:!1},i={decimal:".",mins:"mins",hr:"hr",hrs:"hrs"},s={init:function(t){returnthis.each(function(){varn=e(this);if(n[0].tagName=="SELECT"){varo=e("<input />"),u={type:"text",value:n.val()},a=n[0].attributes;for(varc=0;c<a.length;c++)u[a[c].nodeName]=a[c].nodeValue;o.attr(u),n.replaceWith(o),n=o}varh=e.extend({},r);t&&(h=e.extend(h,t)),h.minTime&&(h.minTime=d(h.minTime)),h.maxTime&&(h.maxTime=d(h.maxTime)),h.durationTime&&(h.durationTime=d(h.durationTime)),h.lang&&(i=e.extend(i,h.lang)),n.data("timepicker-settings",h),n.attr("autocomplete","off"),n.click(s.show).focus(s.show).blur(f).keydown(l),n.addClass("ui-timepicker-input");if(n.val()){varv=p(d(n.val()),h.timeFormat);n.val(v)}e("body").attr("tabindex",-1).focusin(function(t){e(t.target).closest(".ui-timepicker-input").length==0&&e(t.target).closest(".ui-timepicker-list").length==0&&s.hide()})})},show:function(t){varn=e(this),r=n.data("timepicker-list");if(!r||r.length==0)o(n),r=n.data("timepicker-list");if(n.hasClass("ui-timepicker-hideme")){n.removeClass("ui-timepicker-hideme"),r.hide();return}if(r.is(":visible"))return;s.hide();vari=parseInt(n.css("marginTop").slice(0,-2));i||(i=0),n.offset().top+n.outerHeight(!0)+r.outerHeight()>e(window).height()+e(window).scrollTop()?r.css({left:n.offset().left,top:n.offset().top+i-r.outerHeight()}):r.css({left:n.offset().left,top:n.offset().top+i+n.outerHeight()}),r.show();vara=n.data("timepicker-settings"),f=r.find(".ui-timepicker-selected");f.length||(n.val()?f=u(n,r,d(n.val())):a.minTime===null&&a.scrollDefaultNow?f=u(n,r,d(newDate)):a.scrollDefaultTime!==!1&&(f=u(n,r,d(a.scrollDefaultTime))));if(f&&f.length){varl=r.scrollTop()+f.position().top-f.outerHeight();r.scrollTop(l)}elser.scrollTop(0);n.trigger("showTimepicker")},hide:function(t){e(".ui-timepicker-list:visible").each(function(){vart=e(this),n=t.data("timepicker-input"),r=n.data("timepicker-settings");r.selectOnBlur&&c(n),t.hide(),n.trigger("hideTimepicker")})},option:function(t,n){varr=e(this),i=r.data("timepicker-settings"),s=r.data("timepicker-list");if(typeoft=="object")i=e.extend(i,t);elseif(typeoft=="string"&&typeofn!="undefined")i[t]=n;elseif(typeoft=="string")returni[t];i.minTime&&(i.minTime=d(i.minTime)),i.maxTime&&(i.maxTime=d(i.maxTime)),i.durationTime&&(i.durationTime=d(i.durationTime)),r.data("timepicker-settings",i),s&&(s.remove(),r.data("timepicker-list",!1))},getSecondsFromMidnight:function(){returnd(e(this).val())},getTime:function(){returnnewDate(t.valueOf()+d(e(this).val())*1e3)},setTime:function(t){varn=e(this),r=p(d(t),n.data("timepicker-settings").timeFormat);n.val(r)}};e.fn.timepicker=function(t){if(s[t])returns[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeoft=="object"||!t)returns.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.timepicker")}}(jQuery)