From 5e8dddc1670b371fe3e094f2cf7d9c30e5c3b02e Mon Sep 17 00:00:00 2001 From: Andrew Robert Nicols Date: Sun, 24 Mar 2013 00:53:50 +0000 Subject: [PATCH] MDL-38666 JavaScript: Migrate moodle-calendar-evantmanager to use Shifter --- .../assets/skins/sam/eventmanager.css | 0 .../sam/moodle-calendar-eventmanager.css | 4 + .../moodle-calendar-eventmanager-coverage.js | 246 ++++++++++++++++++ .../moodle-calendar-eventmanager-debug.js | 144 ++++++++++ .../moodle-calendar-eventmanager-min.js | 1 + .../moodle-calendar-eventmanager.js | 144 ++++++++++ calendar/yui/eventmanager/eventmanager.js | 139 ---------- .../sam/moodle-calendar-eventmanager.css | 4 + calendar/yui/src/eventmanager/build.json | 10 + .../yui/src/eventmanager/js/eventmanager.js | 139 ++++++++++ .../src/eventmanager/meta/eventmanager.json | 11 + 11 files changed, 703 insertions(+), 139 deletions(-) rename calendar/yui/{eventmanager => build/moodle-calendar-eventmanager}/assets/skins/sam/eventmanager.css (100%) create mode 100644 calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css create mode 100644 calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-coverage.js create mode 100644 calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-debug.js create mode 100644 calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-min.js create mode 100644 calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js delete mode 100644 calendar/yui/eventmanager/eventmanager.js create mode 100644 calendar/yui/src/eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css create mode 100644 calendar/yui/src/eventmanager/build.json create mode 100644 calendar/yui/src/eventmanager/js/eventmanager.js create mode 100644 calendar/yui/src/eventmanager/meta/eventmanager.json diff --git a/calendar/yui/eventmanager/assets/skins/sam/eventmanager.css b/calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/eventmanager.css similarity index 100% rename from calendar/yui/eventmanager/assets/skins/sam/eventmanager.css rename to calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/eventmanager.css diff --git a/calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css b/calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css new file mode 100644 index 00000000000..bad89d89916 --- /dev/null +++ b/calendar/yui/build/moodle-calendar-eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css @@ -0,0 +1,4 @@ +.calendar-event-panel {background-color:#666;border:2px solid #666;border-width: 0 2px 2px 0;} +.calendar-event-panel .yui3-overlay-content {background-color:#fff;border:1px solid #555;margin-top:-5px;margin-left:-5px;} +.calendar-event-panel .yui3-overlay-content h2.eventtitle {margin:3px 5px 2px;padding:0;text-align:center;} +.calendar-event-panel .eventcontent {margin:5px;padding:0;text-align:center;} \ No newline at end of file diff --git a/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-coverage.js b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-coverage.js new file mode 100644 index 00000000000..86f88089a17 --- /dev/null +++ b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-coverage.js @@ -0,0 +1,246 @@ +if (typeof _yuitest_coverage == "undefined"){ + _yuitest_coverage = {}; + _yuitest_coverline = function(src, line){ + var coverage = _yuitest_coverage[src]; + if (!coverage.lines[line]){ + coverage.calledLines++; + } + coverage.lines[line]++; + }; + _yuitest_coverfunc = function(src, name, line){ + var coverage = _yuitest_coverage[src], + funcId = name + ":" + line; + if (!coverage.functions[funcId]){ + coverage.calledFunctions++; + } + coverage.functions[funcId]++; + }; +} +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"] = { + lines: {}, + functions: {}, + coveredLines: 0, + calledLines: 0, + coveredFunctions: 0, + calledFunctions: 0, + path: "build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", + code: [] +}; +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"].code=["YUI.add('moodle-calendar-eventmanager', function (Y, NAME) {","","var ENAME = 'Calendar event',"," EVENTID = 'eventId',"," EVENTNODE = 'node',"," EVENTTITLE = 'title',"," EVENTCONTENT = 'content',"," EVENTDELAY = 'delay',"," SHOWTIMEOUT = 'showTimeout',"," HIDETIMEOUT = 'hideTimeout',",""," EVENT = function() {"," EVENT.superclass.constructor.apply(this, arguments);"," },"," EVENTMANAGER;","","Y.extend(EVENT, Y.Base, {"," initpanelcalled : false,"," initializer : function(){"," this.get(EVENTID);"," var node = this.get(EVENTNODE),"," td;"," if (!node) {"," return false;"," }"," td = node.ancestor('td');"," this.publish('showevent');"," this.publish('hideevent');"," td.on('mouseenter', this.startShow, this);"," td.on('mouseleave', this.startHide, this);"," td.on('focus', this.startShow, this);"," td.on('blur', this.startHide, this);"," return true;"," },"," initPanel : function() {"," if (!this.initpanelcalled) {"," this.initpanelcalled = true;"," var node = this.get(EVENTNODE),"," td = node.ancestor('td'),"," constraint = td.ancestor('div'),"," panel;"," panel = new Y.Overlay({"," constrain : constraint,"," align : {"," node : td,"," points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC]"," },"," headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'),"," bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'),"," visible : false,"," id : this.get(EVENTID)+'_panel',"," width : Math.floor(constraint.get('offsetWidth')*0.9)+\"px\""," });"," panel.render(td);"," panel.get('boundingBox').addClass('calendar-event-panel');"," panel.get('boundingBox').setAttribute('aria-live', 'off');"," this.on('showevent', panel.show, panel);"," this.on('showevent', this.setAriashow, panel);"," this.on('hideevent', this.setAriahide, panel);"," this.on('hideevent', panel.hide, panel);"," }"," },"," startShow : function() {"," if (this.get(SHOWTIMEOUT) !== null) {"," this.cancelShow();"," }"," var self = this;"," this.set(SHOWTIMEOUT, setTimeout(function(){self.show();}, this.get(EVENTDELAY)));"," },"," cancelShow : function() {"," clearTimeout(this.get(SHOWTIMEOUT));"," },"," setAriashow : function() {"," this.get('boundingBox').setAttribute('aria-live', 'assertive');"," },"," setAriahide : function() {"," this.get('boundingBox').setAttribute('aria-live', 'off');"," },"," show : function() {"," this.initPanel();"," this.fire('showevent');"," },"," startHide : function() {"," if (this.get(HIDETIMEOUT) !== null) {"," this.cancelHide();"," }"," var self = this;"," this.set(HIDETIMEOUT, setTimeout(function(){self.hide();}, this.get(EVENTDELAY)));"," },"," hide : function() {"," this.fire('hideevent');"," },"," cancelHide : function() {"," clearTimeout(this.get(HIDETIMEOUT));"," }","}, {"," NAME : ENAME,"," ATTRS : {"," eventId : {"," setter : function(nodeid) {"," this.set(EVENTNODE, Y.one('#'+nodeid));"," return nodeid;"," },"," validator : Y.Lang.isString"," },"," node : {"," setter : function(node) {"," if (typeof(node) === 'string') {"," node = Y.one('#'+node);"," }"," return node;"," }"," },"," title : {"," validator : Y.Lang.isString"," },"," content : {"," validator : Y.Lang.isString"," },"," delay : {"," value : 300,"," validator : Y.Lang.isNumber"," },"," showTimeout : {"," value : null"," },"," hideTimeout : {"," value : null"," }"," }","});","Y.augment(EVENT, Y.EventTarget);","","EVENTMANAGER = {"," add_event : function(config) {"," new EVENT(config);"," }","};","","M.core_calendar = M.core_calendar || {};","Y.mix(M.core_calendar, EVENTMANAGER);","","","}, '@VERSION@', {\"requires\": [\"base\", \"node\", \"event-mouseenter\", \"overlay\", \"moodle-calendar-eventmanager-skin\"]});"]; +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"].lines = {"1":0,"3":0,"13":0,"17":0,"20":0,"21":0,"23":0,"24":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"36":0,"37":0,"38":0,"42":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"64":0,"65":0,"67":0,"68":0,"71":0,"74":0,"77":0,"80":0,"81":0,"84":0,"85":0,"87":0,"88":0,"91":0,"94":0,"101":0,"102":0,"108":0,"109":0,"111":0,"132":0,"134":0,"136":0,"140":0,"141":0}; +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"].functions = {"EVENT:12":0,"initializer:19":0,"initPanel:35":0,"(anonymous 2):68":0,"startShow:63":0,"cancelShow:70":0,"setAriashow:73":0,"setAriahide:76":0,"show:79":0,"(anonymous 3):88":0,"startHide:83":0,"hide:90":0,"cancelHide:93":0,"setter:100":0,"setter:107":0,"add_event:135":0,"(anonymous 1):1":0}; +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"].coveredLines = 52; +_yuitest_coverage["build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js"].coveredFunctions = 17; +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 1); +YUI.add('moodle-calendar-eventmanager', function (Y, NAME) { + +_yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "(anonymous 1)", 1); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 3); +var ENAME = 'Calendar event', + EVENTID = 'eventId', + EVENTNODE = 'node', + EVENTTITLE = 'title', + EVENTCONTENT = 'content', + EVENTDELAY = 'delay', + SHOWTIMEOUT = 'showTimeout', + HIDETIMEOUT = 'hideTimeout', + + EVENT = function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "EVENT", 12); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 13); +EVENT.superclass.constructor.apply(this, arguments); + }, + EVENTMANAGER; + +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 17); +Y.extend(EVENT, Y.Base, { + initpanelcalled : false, + initializer : function(){ + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "initializer", 19); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 20); +this.get(EVENTID); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 21); +var node = this.get(EVENTNODE), + td; + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 23); +if (!node) { + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 24); +return false; + } + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 26); +td = node.ancestor('td'); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 27); +this.publish('showevent'); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 28); +this.publish('hideevent'); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 29); +td.on('mouseenter', this.startShow, this); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 30); +td.on('mouseleave', this.startHide, this); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 31); +td.on('focus', this.startShow, this); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 32); +td.on('blur', this.startHide, this); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 33); +return true; + }, + initPanel : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "initPanel", 35); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 36); +if (!this.initpanelcalled) { + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 37); +this.initpanelcalled = true; + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 38); +var node = this.get(EVENTNODE), + td = node.ancestor('td'), + constraint = td.ancestor('div'), + panel; + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 42); +panel = new Y.Overlay({ + constrain : constraint, + align : { + node : td, + points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC] + }, + headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'), + bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'), + visible : false, + id : this.get(EVENTID)+'_panel', + width : Math.floor(constraint.get('offsetWidth')*0.9)+"px" + }); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 54); +panel.render(td); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 55); +panel.get('boundingBox').addClass('calendar-event-panel'); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 56); +panel.get('boundingBox').setAttribute('aria-live', 'off'); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 57); +this.on('showevent', panel.show, panel); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 58); +this.on('showevent', this.setAriashow, panel); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 59); +this.on('hideevent', this.setAriahide, panel); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 60); +this.on('hideevent', panel.hide, panel); + } + }, + startShow : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "startShow", 63); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 64); +if (this.get(SHOWTIMEOUT) !== null) { + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 65); +this.cancelShow(); + } + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 67); +var self = this; + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 68); +this.set(SHOWTIMEOUT, setTimeout(function(){_yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "(anonymous 2)", 68); +self.show();}, this.get(EVENTDELAY))); + }, + cancelShow : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "cancelShow", 70); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 71); +clearTimeout(this.get(SHOWTIMEOUT)); + }, + setAriashow : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "setAriashow", 73); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 74); +this.get('boundingBox').setAttribute('aria-live', 'assertive'); + }, + setAriahide : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "setAriahide", 76); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 77); +this.get('boundingBox').setAttribute('aria-live', 'off'); + }, + show : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "show", 79); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 80); +this.initPanel(); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 81); +this.fire('showevent'); + }, + startHide : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "startHide", 83); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 84); +if (this.get(HIDETIMEOUT) !== null) { + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 85); +this.cancelHide(); + } + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 87); +var self = this; + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 88); +this.set(HIDETIMEOUT, setTimeout(function(){_yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "(anonymous 3)", 88); +self.hide();}, this.get(EVENTDELAY))); + }, + hide : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "hide", 90); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 91); +this.fire('hideevent'); + }, + cancelHide : function() { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "cancelHide", 93); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 94); +clearTimeout(this.get(HIDETIMEOUT)); + } +}, { + NAME : ENAME, + ATTRS : { + eventId : { + setter : function(nodeid) { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "setter", 100); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 101); +this.set(EVENTNODE, Y.one('#'+nodeid)); + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 102); +return nodeid; + }, + validator : Y.Lang.isString + }, + node : { + setter : function(node) { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "setter", 107); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 108); +if (typeof(node) === 'string') { + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 109); +node = Y.one('#'+node); + } + _yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 111); +return node; + } + }, + title : { + validator : Y.Lang.isString + }, + content : { + validator : Y.Lang.isString + }, + delay : { + value : 300, + validator : Y.Lang.isNumber + }, + showTimeout : { + value : null + }, + hideTimeout : { + value : null + } + } +}); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 132); +Y.augment(EVENT, Y.EventTarget); + +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 134); +EVENTMANAGER = { + add_event : function(config) { + _yuitest_coverfunc("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", "add_event", 135); +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 136); +new EVENT(config); + } +}; + +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 140); +M.core_calendar = M.core_calendar || {}; +_yuitest_coverline("build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js", 141); +Y.mix(M.core_calendar, EVENTMANAGER); + + +}, '@VERSION@', {"requires": ["base", "node", "event-mouseenter", "overlay", "moodle-calendar-eventmanager-skin"]}); diff --git a/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-debug.js b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-debug.js new file mode 100644 index 00000000000..8a06c3d4fd5 --- /dev/null +++ b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-debug.js @@ -0,0 +1,144 @@ +YUI.add('moodle-calendar-eventmanager', function (Y, NAME) { + +var ENAME = 'Calendar event', + EVENTID = 'eventId', + EVENTNODE = 'node', + EVENTTITLE = 'title', + EVENTCONTENT = 'content', + EVENTDELAY = 'delay', + SHOWTIMEOUT = 'showTimeout', + HIDETIMEOUT = 'hideTimeout', + + EVENT = function() { + EVENT.superclass.constructor.apply(this, arguments); + }, + EVENTMANAGER; + +Y.extend(EVENT, Y.Base, { + initpanelcalled : false, + initializer : function(){ + this.get(EVENTID); + var node = this.get(EVENTNODE), + td; + if (!node) { + return false; + } + td = node.ancestor('td'); + this.publish('showevent'); + this.publish('hideevent'); + td.on('mouseenter', this.startShow, this); + td.on('mouseleave', this.startHide, this); + td.on('focus', this.startShow, this); + td.on('blur', this.startHide, this); + return true; + }, + initPanel : function() { + if (!this.initpanelcalled) { + this.initpanelcalled = true; + var node = this.get(EVENTNODE), + td = node.ancestor('td'), + constraint = td.ancestor('div'), + panel; + panel = new Y.Overlay({ + constrain : constraint, + align : { + node : td, + points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC] + }, + headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'), + bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'), + visible : false, + id : this.get(EVENTID)+'_panel', + width : Math.floor(constraint.get('offsetWidth')*0.9)+"px" + }); + panel.render(td); + panel.get('boundingBox').addClass('calendar-event-panel'); + panel.get('boundingBox').setAttribute('aria-live', 'off'); + this.on('showevent', panel.show, panel); + this.on('showevent', this.setAriashow, panel); + this.on('hideevent', this.setAriahide, panel); + this.on('hideevent', panel.hide, panel); + } + }, + startShow : function() { + if (this.get(SHOWTIMEOUT) !== null) { + this.cancelShow(); + } + var self = this; + this.set(SHOWTIMEOUT, setTimeout(function(){self.show();}, this.get(EVENTDELAY))); + }, + cancelShow : function() { + clearTimeout(this.get(SHOWTIMEOUT)); + }, + setAriashow : function() { + this.get('boundingBox').setAttribute('aria-live', 'assertive'); + }, + setAriahide : function() { + this.get('boundingBox').setAttribute('aria-live', 'off'); + }, + show : function() { + this.initPanel(); + this.fire('showevent'); + }, + startHide : function() { + if (this.get(HIDETIMEOUT) !== null) { + this.cancelHide(); + } + var self = this; + this.set(HIDETIMEOUT, setTimeout(function(){self.hide();}, this.get(EVENTDELAY))); + }, + hide : function() { + this.fire('hideevent'); + }, + cancelHide : function() { + clearTimeout(this.get(HIDETIMEOUT)); + } +}, { + NAME : ENAME, + ATTRS : { + eventId : { + setter : function(nodeid) { + this.set(EVENTNODE, Y.one('#'+nodeid)); + return nodeid; + }, + validator : Y.Lang.isString + }, + node : { + setter : function(node) { + if (typeof(node) === 'string') { + node = Y.one('#'+node); + } + return node; + } + }, + title : { + validator : Y.Lang.isString + }, + content : { + validator : Y.Lang.isString + }, + delay : { + value : 300, + validator : Y.Lang.isNumber + }, + showTimeout : { + value : null + }, + hideTimeout : { + value : null + } + } +}); +Y.augment(EVENT, Y.EventTarget); + +EVENTMANAGER = { + add_event : function(config) { + new EVENT(config); + } +}; + +M.core_calendar = M.core_calendar || {}; +Y.mix(M.core_calendar, EVENTMANAGER); + + +}, '@VERSION@', {"requires": ["base", "node", "event-mouseenter", "overlay", "moodle-calendar-eventmanager-skin"]}); diff --git a/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-min.js b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-min.js new file mode 100644 index 00000000000..332dafbe765 --- /dev/null +++ b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager-min.js @@ -0,0 +1 @@ +YUI.add("moodle-calendar-eventmanager",function(e,t){var n="Calendar event",r="eventId",i="node",s="title",o="content",u="delay",a="showTimeout",f="hideTimeout",l=function(){l.superclass.constructor.apply(this,arguments)},c;e.extend(l,e.Base,{initpanelcalled:!1,initializer:function(){this.get(r);var e=this.get(i),t;return e?(t=e.ancestor("td"),this.publish("showevent"),this.publish("hideevent"),t.on("mouseenter",this.startShow,this),t.on("mouseleave",this.startHide,this),t.on("focus",this.startShow,this),t.on("blur",this.startHide,this),!0):!1},initPanel:function(){if(!this.initpanelcalled){this.initpanelcalled=!0;var t=this.get(i),n=t.ancestor("td"),u=n.ancestor("div"),a;a=new e.Overlay({constrain:u,align:{node:n,points:[e.WidgetPositionAlign.TL,e.WidgetPositionAlign.BC]},headerContent:e.Node.create('

'+this.get(s)+"

"),bodyContent:e.Node.create('
'+this.get(o)+"
"),visible:!1,id:this.get(r)+"_panel",width:Math.floor(u.get("offsetWidth")*.9)+"px"}),a.render(n),a.get("boundingBox").addClass("calendar-event-panel"),a.get("boundingBox").setAttribute("aria-live","off"),this.on("showevent",a.show,a),this.on("showevent",this.setAriashow,a),this.on("hideevent",this.setAriahide,a),this.on("hideevent",a.hide,a)}},startShow:function(){this.get(a)!==null&&this.cancelShow();var e=this;this.set(a,setTimeout(function(){e.show()},this.get(u)))},cancelShow:function(){clearTimeout(this.get(a))},setAriashow:function(){this.get("boundingBox").setAttribute("aria-live","assertive")},setAriahide:function(){this.get("boundingBox").setAttribute("aria-live","off")},show:function(){this.initPanel(),this.fire("showevent")},startHide:function(){this.get(f)!==null&&this.cancelHide();var e=this;this.set(f,setTimeout(function(){e.hide()},this.get(u)))},hide:function(){this.fire("hideevent")},cancelHide:function(){clearTimeout(this.get(f))}},{NAME:n,ATTRS:{eventId:{setter:function(t){return this.set(i,e.one("#"+t)),t},validator:e.Lang.isString},node:{setter:function(t){return typeof t=="string"&&(t=e.one("#"+t)),t}},title:{validator:e.Lang.isString},content:{validator:e.Lang.isString},delay:{value:300,validator:e.Lang.isNumber},showTimeout:{value:null},hideTimeout:{value:null}}}),e.augment(l,e.EventTarget),c={add_event:function(e){new l(e)}},M.core_calendar=M.core_calendar||{},e.mix(M.core_calendar,c)},"@VERSION@",{requires:["base","node","event-mouseenter","overlay","moodle-calendar-eventmanager-skin"]}); diff --git a/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js new file mode 100644 index 00000000000..8a06c3d4fd5 --- /dev/null +++ b/calendar/yui/build/moodle-calendar-eventmanager/moodle-calendar-eventmanager.js @@ -0,0 +1,144 @@ +YUI.add('moodle-calendar-eventmanager', function (Y, NAME) { + +var ENAME = 'Calendar event', + EVENTID = 'eventId', + EVENTNODE = 'node', + EVENTTITLE = 'title', + EVENTCONTENT = 'content', + EVENTDELAY = 'delay', + SHOWTIMEOUT = 'showTimeout', + HIDETIMEOUT = 'hideTimeout', + + EVENT = function() { + EVENT.superclass.constructor.apply(this, arguments); + }, + EVENTMANAGER; + +Y.extend(EVENT, Y.Base, { + initpanelcalled : false, + initializer : function(){ + this.get(EVENTID); + var node = this.get(EVENTNODE), + td; + if (!node) { + return false; + } + td = node.ancestor('td'); + this.publish('showevent'); + this.publish('hideevent'); + td.on('mouseenter', this.startShow, this); + td.on('mouseleave', this.startHide, this); + td.on('focus', this.startShow, this); + td.on('blur', this.startHide, this); + return true; + }, + initPanel : function() { + if (!this.initpanelcalled) { + this.initpanelcalled = true; + var node = this.get(EVENTNODE), + td = node.ancestor('td'), + constraint = td.ancestor('div'), + panel; + panel = new Y.Overlay({ + constrain : constraint, + align : { + node : td, + points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC] + }, + headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'), + bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'), + visible : false, + id : this.get(EVENTID)+'_panel', + width : Math.floor(constraint.get('offsetWidth')*0.9)+"px" + }); + panel.render(td); + panel.get('boundingBox').addClass('calendar-event-panel'); + panel.get('boundingBox').setAttribute('aria-live', 'off'); + this.on('showevent', panel.show, panel); + this.on('showevent', this.setAriashow, panel); + this.on('hideevent', this.setAriahide, panel); + this.on('hideevent', panel.hide, panel); + } + }, + startShow : function() { + if (this.get(SHOWTIMEOUT) !== null) { + this.cancelShow(); + } + var self = this; + this.set(SHOWTIMEOUT, setTimeout(function(){self.show();}, this.get(EVENTDELAY))); + }, + cancelShow : function() { + clearTimeout(this.get(SHOWTIMEOUT)); + }, + setAriashow : function() { + this.get('boundingBox').setAttribute('aria-live', 'assertive'); + }, + setAriahide : function() { + this.get('boundingBox').setAttribute('aria-live', 'off'); + }, + show : function() { + this.initPanel(); + this.fire('showevent'); + }, + startHide : function() { + if (this.get(HIDETIMEOUT) !== null) { + this.cancelHide(); + } + var self = this; + this.set(HIDETIMEOUT, setTimeout(function(){self.hide();}, this.get(EVENTDELAY))); + }, + hide : function() { + this.fire('hideevent'); + }, + cancelHide : function() { + clearTimeout(this.get(HIDETIMEOUT)); + } +}, { + NAME : ENAME, + ATTRS : { + eventId : { + setter : function(nodeid) { + this.set(EVENTNODE, Y.one('#'+nodeid)); + return nodeid; + }, + validator : Y.Lang.isString + }, + node : { + setter : function(node) { + if (typeof(node) === 'string') { + node = Y.one('#'+node); + } + return node; + } + }, + title : { + validator : Y.Lang.isString + }, + content : { + validator : Y.Lang.isString + }, + delay : { + value : 300, + validator : Y.Lang.isNumber + }, + showTimeout : { + value : null + }, + hideTimeout : { + value : null + } + } +}); +Y.augment(EVENT, Y.EventTarget); + +EVENTMANAGER = { + add_event : function(config) { + new EVENT(config); + } +}; + +M.core_calendar = M.core_calendar || {}; +Y.mix(M.core_calendar, EVENTMANAGER); + + +}, '@VERSION@', {"requires": ["base", "node", "event-mouseenter", "overlay", "moodle-calendar-eventmanager-skin"]}); diff --git a/calendar/yui/eventmanager/eventmanager.js b/calendar/yui/eventmanager/eventmanager.js deleted file mode 100644 index 4aedc2e6ee5..00000000000 --- a/calendar/yui/eventmanager/eventmanager.js +++ /dev/null @@ -1,139 +0,0 @@ -YUI.add('moodle-calendar-eventmanager', function(Y) { - - var ENAME = 'Calendar event', - EVENTID = 'eventId', - EVENTNODE = 'node', - EVENTTITLE = 'title', - EVENTCONTENT = 'content', - EVENTDELAY = 'delay', - SHOWTIMEOUT = 'showTimeout', - HIDETIMEOUT = 'hideTimeout'; - - var EVENT = function(config) { - EVENT.superclass.constructor.apply(this, arguments); - } - Y.extend(EVENT, Y.Base, { - initpanelcalled : false, - initializer : function(config){ - var id = this.get(EVENTID), node = this.get(EVENTNODE); - if (!node) { - return false; - } - var td = node.ancestor('td'); - this.publish('showevent'); - this.publish('hideevent'); - td.on('mouseenter', this.startShow, this); - td.on('mouseleave', this.startHide, this); - td.on('focus', this.startShow, this); - td.on('blur', this.startHide, this); - return true; - }, - initPanel : function() { - if (!this.initpanelcalled) { - this.initpanelcalled = true; - var node = this.get(EVENTNODE), - td = node.ancestor('td'), - constraint = td.ancestor('div'), - panel; - panel = new Y.Overlay({ - constrain : constraint, - align : { - node : td, - points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC] - }, - headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'), - bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'), - visible : false, - id : this.get(EVENTID)+'_panel', - width : Math.floor(constraint.get('offsetWidth')*0.9)+"px" - }); - panel.render(td); - panel.get('boundingBox').addClass('calendar-event-panel'); - panel.get('boundingBox').setAttribute('aria-live', 'off'); - this.on('showevent', panel.show, panel); - this.on('showevent', this.setAriashow, panel); - this.on('hideevent', this.setAriahide, panel); - this.on('hideevent', panel.hide, panel); - } - }, - startShow : function() { - if (this.get(SHOWTIMEOUT) !== null) { - this.cancelShow(); - } - var self = this; - this.set(SHOWTIMEOUT, setTimeout(function(){self.show();}, this.get(EVENTDELAY))); - }, - cancelShow : function() { - clearTimeout(this.get(SHOWTIMEOUT)); - }, - setAriashow : function() { - this.get('boundingBox').setAttribute('aria-live', 'assertive'); - }, - setAriahide : function() { - this.get('boundingBox').setAttribute('aria-live', 'off'); - }, - show : function() { - this.initPanel(); - this.fire('showevent'); - }, - startHide : function() { - if (this.get(HIDETIMEOUT) !== null) { - this.cancelHide(); - } - var self = this; - this.set(HIDETIMEOUT, setTimeout(function(){self.hide();}, this.get(EVENTDELAY))); - }, - hide : function() { - this.fire('hideevent'); - }, - cancelHide : function() { - clearTimeout(this.get(HIDETIMEOUT)); - } - }, { - NAME : ENAME, - ATTRS : { - eventId : { - setter : function(nodeid) { - this.set(EVENTNODE, Y.one('#'+nodeid)); - return nodeid; - }, - validator : Y.Lang.isString - }, - node : { - setter : function(node) { - if (typeof(node) === 'string') { - node = Y.one('#'+node); - } - return node; - } - }, - title : { - validator : Y.Lang.isString - }, - content : { - validator : Y.Lang.isString - }, - delay : { - value : 300, - validator : Y.Lang.isNumber - }, - showTimeout : { - value : null - }, - hideTimeout : { - value : null - } - } - }); - Y.augment(EVENT, Y.EventTarget); - - var EVENTMANAGER = { - add_event : function(config) { - new EVENT(config); - } - } - - M.core_calendar = M.core_calendar || {} - Y.mix(M.core_calendar, EVENTMANAGER); - -}, '@VERSION@', {requires:['base', 'node', 'event-mouseenter', 'overlay', 'moodle-calendar-eventmanager-skin', 'test']}); diff --git a/calendar/yui/src/eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css b/calendar/yui/src/eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css new file mode 100644 index 00000000000..bad89d89916 --- /dev/null +++ b/calendar/yui/src/eventmanager/assets/skins/sam/moodle-calendar-eventmanager.css @@ -0,0 +1,4 @@ +.calendar-event-panel {background-color:#666;border:2px solid #666;border-width: 0 2px 2px 0;} +.calendar-event-panel .yui3-overlay-content {background-color:#fff;border:1px solid #555;margin-top:-5px;margin-left:-5px;} +.calendar-event-panel .yui3-overlay-content h2.eventtitle {margin:3px 5px 2px;padding:0;text-align:center;} +.calendar-event-panel .eventcontent {margin:5px;padding:0;text-align:center;} \ No newline at end of file diff --git a/calendar/yui/src/eventmanager/build.json b/calendar/yui/src/eventmanager/build.json new file mode 100644 index 00000000000..8ecdb56e9e5 --- /dev/null +++ b/calendar/yui/src/eventmanager/build.json @@ -0,0 +1,10 @@ +{ + "name": "moodle-calendar-eventmanager", + "builds": { + "moodle-calendar-eventmanager": { + "jsfiles": [ + "eventmanager.js" + ] + } + } +} diff --git a/calendar/yui/src/eventmanager/js/eventmanager.js b/calendar/yui/src/eventmanager/js/eventmanager.js new file mode 100644 index 00000000000..6e883a6f321 --- /dev/null +++ b/calendar/yui/src/eventmanager/js/eventmanager.js @@ -0,0 +1,139 @@ +var ENAME = 'Calendar event', + EVENTID = 'eventId', + EVENTNODE = 'node', + EVENTTITLE = 'title', + EVENTCONTENT = 'content', + EVENTDELAY = 'delay', + SHOWTIMEOUT = 'showTimeout', + HIDETIMEOUT = 'hideTimeout', + + EVENT = function() { + EVENT.superclass.constructor.apply(this, arguments); + }, + EVENTMANAGER; + +Y.extend(EVENT, Y.Base, { + initpanelcalled : false, + initializer : function(){ + this.get(EVENTID); + var node = this.get(EVENTNODE), + td; + if (!node) { + return false; + } + td = node.ancestor('td'); + this.publish('showevent'); + this.publish('hideevent'); + td.on('mouseenter', this.startShow, this); + td.on('mouseleave', this.startHide, this); + td.on('focus', this.startShow, this); + td.on('blur', this.startHide, this); + return true; + }, + initPanel : function() { + if (!this.initpanelcalled) { + this.initpanelcalled = true; + var node = this.get(EVENTNODE), + td = node.ancestor('td'), + constraint = td.ancestor('div'), + panel; + panel = new Y.Overlay({ + constrain : constraint, + align : { + node : td, + points:[Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BC] + }, + headerContent : Y.Node.create('

'+this.get(EVENTTITLE)+'

'), + bodyContent : Y.Node.create('
'+this.get(EVENTCONTENT)+'
'), + visible : false, + id : this.get(EVENTID)+'_panel', + width : Math.floor(constraint.get('offsetWidth')*0.9)+"px" + }); + panel.render(td); + panel.get('boundingBox').addClass('calendar-event-panel'); + panel.get('boundingBox').setAttribute('aria-live', 'off'); + this.on('showevent', panel.show, panel); + this.on('showevent', this.setAriashow, panel); + this.on('hideevent', this.setAriahide, panel); + this.on('hideevent', panel.hide, panel); + } + }, + startShow : function() { + if (this.get(SHOWTIMEOUT) !== null) { + this.cancelShow(); + } + var self = this; + this.set(SHOWTIMEOUT, setTimeout(function(){self.show();}, this.get(EVENTDELAY))); + }, + cancelShow : function() { + clearTimeout(this.get(SHOWTIMEOUT)); + }, + setAriashow : function() { + this.get('boundingBox').setAttribute('aria-live', 'assertive'); + }, + setAriahide : function() { + this.get('boundingBox').setAttribute('aria-live', 'off'); + }, + show : function() { + this.initPanel(); + this.fire('showevent'); + }, + startHide : function() { + if (this.get(HIDETIMEOUT) !== null) { + this.cancelHide(); + } + var self = this; + this.set(HIDETIMEOUT, setTimeout(function(){self.hide();}, this.get(EVENTDELAY))); + }, + hide : function() { + this.fire('hideevent'); + }, + cancelHide : function() { + clearTimeout(this.get(HIDETIMEOUT)); + } +}, { + NAME : ENAME, + ATTRS : { + eventId : { + setter : function(nodeid) { + this.set(EVENTNODE, Y.one('#'+nodeid)); + return nodeid; + }, + validator : Y.Lang.isString + }, + node : { + setter : function(node) { + if (typeof(node) === 'string') { + node = Y.one('#'+node); + } + return node; + } + }, + title : { + validator : Y.Lang.isString + }, + content : { + validator : Y.Lang.isString + }, + delay : { + value : 300, + validator : Y.Lang.isNumber + }, + showTimeout : { + value : null + }, + hideTimeout : { + value : null + } + } +}); +Y.augment(EVENT, Y.EventTarget); + +EVENTMANAGER = { + add_event : function(config) { + new EVENT(config); + } +}; + +M.core_calendar = M.core_calendar || {}; +Y.mix(M.core_calendar, EVENTMANAGER); diff --git a/calendar/yui/src/eventmanager/meta/eventmanager.json b/calendar/yui/src/eventmanager/meta/eventmanager.json new file mode 100644 index 00000000000..09cce60d96f --- /dev/null +++ b/calendar/yui/src/eventmanager/meta/eventmanager.json @@ -0,0 +1,11 @@ +{ + "moodle-calendar-eventmanager": { + "requires": [ + "base", + "node", + "event-mouseenter", + "overlay", + "moodle-calendar-eventmanager-skin" + ] + } +}