Merge branch 'MDL-43307-master' of git://github.com/andrewnicols/moodle

This commit is contained in:
Damyon Wiese 2014-01-07 14:10:40 +08:00
commit abc217b2bf
7 changed files with 233 additions and 70 deletions

View File

@ -0,0 +1,73 @@
YUI.add('moodle-mod_assign-history', function (Y, NAME) {
// Define a function that will run in the context of a
// Node instance:
var CSS = {
LINK: 'mod-assign-history-link',
OPEN: 'mod-assign-history-link-open',
CLOSED: 'mod-assign-history-link-closed',
PANEL: 'mod-assign-history-panel'
},
COUNT = 0,
TOGGLE = function() {
var id = this.get('for'),
panel = Y.one('#' + id);
if (this.hasClass(CSS.OPEN)) {
this.removeClass(CSS.OPEN);
this.addClass(CSS.CLOSED);
this.setStyle('overflow', 'hidden');
panel.hide();
} else {
this.removeClass(CSS.CLOSED);
this.addClass(CSS.OPEN);
panel.show();
}
},
HISTORY = function() {
var link = null,
panel = null,
wrapper = null,
container = this;
// Loop through all the children of this container and turn
// every odd node to a link to open/close the following panel.
this.get('children').each(function () {
if (link) {
COUNT++;
// First convert the link to an anchor.
wrapper = Y.Node.create('<a/>');
panel = this;
container.insertBefore(wrapper, link);
link.remove(false);
wrapper.appendChild(link);
// Add a for attribute to the link to link to the id of the panel.
if (!panel.get('id')) {
panel.set('id', CSS.PANEL + COUNT);
}
wrapper.set('for', panel.get('id'));
// Add an aria attribute for the live region.
panel.set('aria-live', 'polite');
wrapper.addClass(CSS.LINK);
wrapper.addClass(CSS.CLOSED);
panel.addClass(CSS.PANEL);
panel.hide();
link = null;
} else {
link = this;
}
});
// Setup event listeners.
this.delegate('click', TOGGLE, '.' + CSS.LINK);
};
// Use addMethod to add history to the Node prototype:
Y.Node.addMethod("history", HISTORY);
// Extend this functionality to NodeLists.
Y.NodeList.importMethod(Y.Node.prototype, "history");
}, '@VERSION@', {"requires": ["node", "transition"]});

View File

@ -0,0 +1 @@
YUI.add("moodle-mod_assign-history",function(e,t){var n={LINK:"mod-assign-history-link",OPEN:"mod-assign-history-link-open",CLOSED:"mod-assign-history-link-closed",PANEL:"mod-assign-history-panel"},r=0,i=function(){var t=this.get("for"),r=e.one("#"+t);this.hasClass(n.OPEN)?(this.removeClass(n.OPEN),this.addClass(n.CLOSED),this.setStyle("overflow","hidden"),r.hide()):(this.removeClass(n.CLOSED),this.addClass(n.OPEN),r.show())},s=function(){var t=null,s=null,o=null,u=this;this.get("children").each(function(){t?(r++,o=e.Node.create("<a/>"),s=this,u.insertBefore(o,t),t.remove(!1),o.appendChild(t),s.get("id")||s.set("id",n.PANEL+r),o.set("for",s.get("id")),s.set("aria-live","polite"),o.addClass(n.LINK),o.addClass(n.CLOSED),s.addClass(n.PANEL),s.hide(),t=null):t=this}),this.delegate("click",i,"."+n.LINK)};e.Node.addMethod("history",s),e.NodeList.importMethod(e.Node.prototype,"history")},"@VERSION@",{requires:["node","transition"]});

View File

@ -0,0 +1,73 @@
YUI.add('moodle-mod_assign-history', function (Y, NAME) {
// Define a function that will run in the context of a
// Node instance:
var CSS = {
LINK: 'mod-assign-history-link',
OPEN: 'mod-assign-history-link-open',
CLOSED: 'mod-assign-history-link-closed',
PANEL: 'mod-assign-history-panel'
},
COUNT = 0,
TOGGLE = function() {
var id = this.get('for'),
panel = Y.one('#' + id);
if (this.hasClass(CSS.OPEN)) {
this.removeClass(CSS.OPEN);
this.addClass(CSS.CLOSED);
this.setStyle('overflow', 'hidden');
panel.hide();
} else {
this.removeClass(CSS.CLOSED);
this.addClass(CSS.OPEN);
panel.show();
}
},
HISTORY = function() {
var link = null,
panel = null,
wrapper = null,
container = this;
// Loop through all the children of this container and turn
// every odd node to a link to open/close the following panel.
this.get('children').each(function () {
if (link) {
COUNT++;
// First convert the link to an anchor.
wrapper = Y.Node.create('<a/>');
panel = this;
container.insertBefore(wrapper, link);
link.remove(false);
wrapper.appendChild(link);
// Add a for attribute to the link to link to the id of the panel.
if (!panel.get('id')) {
panel.set('id', CSS.PANEL + COUNT);
}
wrapper.set('for', panel.get('id'));
// Add an aria attribute for the live region.
panel.set('aria-live', 'polite');
wrapper.addClass(CSS.LINK);
wrapper.addClass(CSS.CLOSED);
panel.addClass(CSS.PANEL);
panel.hide();
link = null;
} else {
link = this;
}
});
// Setup event listeners.
this.delegate('click', TOGGLE, '.' + CSS.LINK);
};
// Use addMethod to add history to the Node prototype:
Y.Node.addMethod("history", HISTORY);
// Extend this functionality to NodeLists.
Y.NodeList.importMethod(Y.Node.prototype, "history");
}, '@VERSION@', {"requires": ["node", "transition"]});

View File

@ -1,70 +0,0 @@
YUI.add('moodle-mod_assign-history', function (Y) {
// Define a function that will run in the context of a
// Node instance:
var CSS = {
LINK: 'mod-assign-history-link',
OPEN: 'mod-assign-history-link-open',
CLOSED: 'mod-assign-history-link-closed',
PANEL: 'mod-assign-history-panel'
},
COUNT = 0,
TOGGLE = function() {
var id = this.get('for'),
panel = Y.one('#' + id);
if (this.hasClass(CSS.OPEN)) {
this.removeClass(CSS.OPEN);
this.addClass(CSS.CLOSED);
this.setStyle('overflow', 'hidden');
panel.hide();
} else {
this.removeClass(CSS.CLOSED);
this.addClass(CSS.OPEN);
panel.show();
}
},
HISTORY = function() {
var link = null,
panel = null,
wrapper = null,
container = this;
// Loop through all the children of this container and turn
// every odd node to a link to open/close the following panel.
this.get('children').each(function () {
if (link) {
COUNT++;
// First convert the link to an anchor.
wrapper = Y.Node.create('<a/>');
panel = this;
container.insertBefore(wrapper, link);
link.remove(false);
wrapper.appendChild(link);
// Add a for attribute to the link to link to the id of the panel.
if (!panel.get('id')) {
panel.set('id', CSS.PANEL + COUNT);
}
wrapper.set('for', panel.get('id'));
// Add an aria attribute for the live region.
panel.set('aria-live', 'polite');
wrapper.addClass(CSS.LINK);
wrapper.addClass(CSS.CLOSED);
panel.addClass(CSS.PANEL);
panel.hide();
link = null;
} else {
link = this;
}
});
// Setup event listeners.
this.delegate('click', TOGGLE, '.' + CSS.LINK);
};
// Use addMethod to add history to the Node prototype:
Y.Node.addMethod("history", HISTORY);
// Extend this functionality to NodeLists.
Y.NodeList.importMethod(Y.Node.prototype, "history");
}, '@VERSION@', { requires: ['node', 'transition'] });

View File

@ -0,0 +1,10 @@
{
"name": "moodle-mod_assign-history",
"builds": {
"moodle-mod_assign-history": {
"jsfiles": [
"history.js"
]
}
}
}

View File

@ -0,0 +1,68 @@
// Define a function that will run in the context of a
// Node instance:
var CSS = {
LINK: 'mod-assign-history-link',
OPEN: 'mod-assign-history-link-open',
CLOSED: 'mod-assign-history-link-closed',
PANEL: 'mod-assign-history-panel'
},
COUNT = 0,
TOGGLE = function() {
var id = this.get('for'),
panel = Y.one('#' + id);
if (this.hasClass(CSS.OPEN)) {
this.removeClass(CSS.OPEN);
this.addClass(CSS.CLOSED);
this.setStyle('overflow', 'hidden');
panel.hide();
} else {
this.removeClass(CSS.CLOSED);
this.addClass(CSS.OPEN);
panel.show();
}
},
HISTORY = function() {
var link = null,
panel = null,
wrapper = null,
container = this;
// Loop through all the children of this container and turn
// every odd node to a link to open/close the following panel.
this.get('children').each(function () {
if (link) {
COUNT++;
// First convert the link to an anchor.
wrapper = Y.Node.create('<a/>');
panel = this;
container.insertBefore(wrapper, link);
link.remove(false);
wrapper.appendChild(link);
// Add a for attribute to the link to link to the id of the panel.
if (!panel.get('id')) {
panel.set('id', CSS.PANEL + COUNT);
}
wrapper.set('for', panel.get('id'));
// Add an aria attribute for the live region.
panel.set('aria-live', 'polite');
wrapper.addClass(CSS.LINK);
wrapper.addClass(CSS.CLOSED);
panel.addClass(CSS.PANEL);
panel.hide();
link = null;
} else {
link = this;
}
});
// Setup event listeners.
this.delegate('click', TOGGLE, '.' + CSS.LINK);
};
// Use addMethod to add history to the Node prototype:
Y.Node.addMethod("history", HISTORY);
// Extend this functionality to NodeLists.
Y.NodeList.importMethod(Y.Node.prototype, "history");

View File

@ -0,0 +1,8 @@
{
"moodle-mod_assign-history": {
"requires": [
"node",
"transition"
]
}
}