diff --git a/calendar.js b/calendar.js index c899eba..eaa8e8b 100644 --- a/calendar.js +++ b/calendar.js @@ -1,96 +1,101 @@ -document.body.className += ' yui-skin-sam'; +YUI().use('yui2-container', 'yui2-calendar', function(Y) { + var YAHOO = Y.YUI2; -YAHOO.util.Event.onDOMReady(function(){ + document.body.className += ' yui-skin-sam'; - var Event = YAHOO.util.Event, - Dom = YAHOO.util.Dom, - dialog, calendar; + YAHOO.util.Event.onDOMReady(function(){ - var showBtn = Dom.get("show"); + var Event = YAHOO.util.Event, + Dom = YAHOO.util.Dom, + dialog, calendar; - Event.on(showBtn, "click", function() { + var showBtn = Dom.get("show"); - // Lazy Dialog Creation - Wait to create the Dialog, and setup document click listeners, until the first time the button is clicked. - if (!dialog) { + Event.on(showBtn, "click", function() { - // Hide Calendar if we click anywhere in the document other than the calendar - Event.on(document, "click", function(e) { - var el = Event.getTarget(e); - var dialogEl = dialog.element; - if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != showBtn && !Dom.isAncestor(showBtn, el)) { + // Lazy Dialog Creation - Wait to create the Dialog, and setup document click listeners, until the first time the button is clicked. + if (!dialog) { + + // Hide Calendar if we click anywhere in the document other than the calendar + Event.on(document, "click", function(e) { + var el = Event.getTarget(e); + var dialogEl = dialog.element; + if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != showBtn && !Dom.isAncestor(showBtn, el)) { + dialog.hide(); + } + }); + + function resetHandler() { + calendar.cfg.setProperty("pagedate", calendar.today); + calendar.render(); + } + + function closeHandler() { dialog.hide(); } - }); - function resetHandler() { - calendar.cfg.setProperty("pagedate", calendar.today); - calendar.render(); + dialog = new YAHOO.widget.Dialog("attcalendarcontainer", { + visible:false, + context:["show", "tl", "bl"], + buttons:[{text: M.str.attforblock.caltoday, handler: resetHandler, isDefault:true}, {text: M.str.attforblock.calclose, handler: closeHandler}], + draggable:false, + close:false + }); + dialog.setHeader(''); + dialog.setBody('
'); + dialog.render(document.body); + + dialog.showEvent.subscribe(function() { + if (YAHOO.env.ua.ie) { + // Since we're hiding the table using yui-overlay-hidden, we + // want to let the dialog know that the content size has changed, when + // shown + dialog.fireEvent("changeContent"); + } + }); } - - function closeHandler() { - dialog.hide(); - } - - dialog = new YAHOO.widget.Dialog("attcalendarcontainer", { - visible:false, - context:["show", "tl", "bl"], - buttons:[{text: M.str.attforblock.caltoday, handler: resetHandler, isDefault:true}, {text: M.str.attforblock.calclose, handler: closeHandler}], - draggable:false, - close:false - }); - dialog.setHeader(''); - dialog.setBody(''); - dialog.render(document.body); - - dialog.showEvent.subscribe(function() { - if (YAHOO.env.ua.ie) { - // Since we're hiding the table using yui-overlay-hidden, we - // want to let the dialog know that the content size has changed, when - // shown - dialog.fireEvent("changeContent"); - } - }); - } - // Lazy Calendar Creation - Wait to create the Calendar until the first time the button is clicked. - if (!calendar) { + // Lazy Calendar Creation - Wait to create the Calendar until the first time the button is clicked. + if (!calendar) { - calendar = new YAHOO.widget.Calendar("cal", { - iframe:false, // Turn iframe off, since container has iframe support. - hide_blank_weeks:true // Enable, to demonstrate how we handle changing height, using changeContent - }); + calendar = new YAHOO.widget.Calendar("cal", { + iframe:false, // Turn iframe off, since container has iframe support. + hide_blank_weeks:true // Enable, to demonstrate how we handle changing height, using changeContent + }); - calendar.cfg.setProperty("start_weekday", M.attforblock.cal_start_weekday); - calendar.cfg.setProperty("MONTHS_LONG", M.attforblock.cal_months); - calendar.cfg.setProperty("WEEKDAYS_SHORT", M.attforblock.cal_week_days); - calendar.select(new Date(M.attforblock.cal_cur_date*1000)); - calendar.render(); + calendar.cfg.setProperty("start_weekday", M.attforblock.cal_start_weekday); + calendar.cfg.setProperty("MONTHS_LONG", M.attforblock.cal_months); + calendar.cfg.setProperty("WEEKDAYS_SHORT", M.attforblock.cal_week_days); + calendar.select(new Date(M.attforblock.cal_cur_date*1000)); + calendar.render(); - calendar.selectEvent.subscribe(function() { - if (calendar.getSelectedDates().length > 0) { + calendar.selectEvent.subscribe(function() { + if (calendar.getSelectedDates().length > 0) { - Dom.get("curdate").value = calendar.getSelectedDates()[0] / 1000; + Dom.get("curdate").value = calendar.getSelectedDates()[0] / 1000; - Dom.get("currentdate").submit(); - } - dialog.hide(); - }); + Dom.get("currentdate").submit(); + } + dialog.hide(); + }); - calendar.renderEvent.subscribe(function() { - // Tell Dialog it's contents have changed, which allows - // container to redraw the underlay (for IE6/Safari2) - dialog.fireEvent("changeContent"); - }); - } + calendar.renderEvent.subscribe(function() { + // Tell Dialog it's contents have changed, which allows + // container to redraw the underlay (for IE6/Safari2) + dialog.fireEvent("changeContent"); + }); + } - var seldate = calendar.getSelectedDates(); + var seldate = calendar.getSelectedDates(); - if (seldate.length > 0) { - // Set the pagedate to show the selected date if it exists - calendar.cfg.setProperty("pagedate", seldate[0]); - calendar.render(); - } + if (seldate.length > 0) { + // Set the pagedate to show the selected date if it exists + calendar.cfg.setProperty("pagedate", seldate[0]); + calendar.render(); + } - dialog.show(); + dialog.show(); + }); }); }); + diff --git a/renderer.php b/renderer.php index c3003e7..fcca382 100644 --- a/renderer.php +++ b/renderer.php @@ -106,8 +106,6 @@ class mod_attforblock_renderer extends plugin_renderer_base { 'cal_cur_date' => $fcontrols->curdate); $curdate_controls = html_writer::script(js_writer::set_variable('M.attforblock', $jsvals)); - //$this->page->requires->yui2_lib('container'); - //$this->page->requires->yui2_lib('calendar'); $this->page->requires->js('/mod/attforblock/calendar.js'); $curdate_controls .= html_writer::link($fcontrols->url(array('curdate' => $fcontrols->prevcur)), $this->output->larrow());