mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
fef51794a0
If a course exists within multiple groupings then the description should display when you mouseover any instance of it on the overview page.
74 lines
2.7 KiB
JavaScript
74 lines
2.7 KiB
JavaScript
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
M.core_group = {
|
|
hoveroverlay : null
|
|
};
|
|
|
|
M.core_group.init_hover_events = function(Y, events) {
|
|
// Prepare the overlay if it hasn't already been created
|
|
this.hoveroverlay = this.hoveroverlay || (function(){
|
|
// New Y.Overlay
|
|
var overlay = new Y.Overlay({
|
|
bodyContent : 'Loading',
|
|
visible : false,
|
|
zIndex : 2
|
|
});
|
|
// Render it against the page
|
|
overlay.render(Y.one('#page'));
|
|
return overlay;
|
|
})();
|
|
|
|
Y.all('.group_hoverdescription').each(function() {
|
|
var node = this.ancestor();
|
|
var id = this.getAttribute('data-groupid');
|
|
|
|
node.on('mouseenter', function(){
|
|
M.core_group.hoveroverlay.set('xy', [this.getX()+(this.get('offsetWidth')/2),this.getY()+this.get('offsetHeight')-5]);
|
|
M.core_group.hoveroverlay.set("bodyContent", events[id]);
|
|
M.core_group.hoveroverlay.show();
|
|
M.core_group.hoveroverlay.get('boundingBox').setStyle('visibility', 'visible');
|
|
});
|
|
node.on('mouseleave', function(){
|
|
M.core_group.hoveroverlay.hide();
|
|
M.core_group.hoveroverlay.get('boundingBox').setStyle('visibility', 'hidden');
|
|
});
|
|
});
|
|
};
|
|
|
|
M.core_group.init_index = function(Y, wwwroot, courseid) {
|
|
M.core_group.groupsCombo = new UpdatableGroupsCombo(wwwroot, courseid);
|
|
M.core_group.membersCombo = new UpdatableMembersCombo(wwwroot, courseid);
|
|
};
|
|
|
|
M.core_group.groupslist = function(Y, preventgroupremoval) {
|
|
var actions = {
|
|
init : function() {
|
|
// We need to add check_deletable both on change for the groups, and then call it the first time the page loads
|
|
Y.one('#groups').on('change', this.check_deletable, this);
|
|
this.check_deletable();
|
|
},
|
|
check_deletable : function() {
|
|
// Ensure that if the 'preventremoval' attribute is set, the delete button is greyed out
|
|
var candelete = true;
|
|
var optionselected = false;
|
|
Y.one('#groups').get('options').each(function(option) {
|
|
if (option.get('selected')) {
|
|
optionselected = true;
|
|
if (option.getAttribute('value') in preventgroupremoval) {
|
|
candelete = false;
|
|
}
|
|
}
|
|
}, this);
|
|
var deletebutton = Y.one('#deletegroup');
|
|
if (candelete && optionselected) {
|
|
deletebutton.removeAttribute('disabled');
|
|
} else {
|
|
deletebutton.setAttribute('disabled', 'disabled');
|
|
}
|
|
}
|
|
}
|
|
actions.init();
|
|
};
|