Permalink
Browse files

Merge branch 'MDL-36752-MOODLE_23_STABLE' of git://git.luns.net.uk/mo…

…odle into MOODLE_23_STABLE
  • Loading branch information...
2 parents 6ac0d92 + 0e88b7d commit 148c786f7c0b6553b481f31f82f467bd65238c23 @danpoltawski danpoltawski committed Nov 27, 2012
Showing with 27 additions and 27 deletions.
  1. +26 −24 lib/javascript-static.js
  2. +1 −3 lib/outputrenderers.php
View
50 lib/javascript-static.js
@@ -1418,14 +1418,20 @@ M.util.help_popups = {
M.util.help_icon = {
Y : null,
instance : null,
- add : function(Y, properties) {
- this.Y = Y;
- properties.node = Y.one('#'+properties.id);
- if (properties.node) {
- properties.node.on('click', this.display, this, properties);
+ initialised : false,
+ setup : function(Y) {
+ if (this.initialised) {
+ // Exit early if we have already completed setup
+ return;
}
+ this.Y = Y;
+ Y.one('body').delegate('click', this.display, 'span.helplink a', this);
+ this.initialised = true;
},
- display : function(event, args) {
+ add : function(Y, properties) {
+ this.setup(Y);
+ },
+ display : function(event) {
event.preventDefault();
if (M.util.help_icon.instance === null) {
var Y = M.util.help_icon.Y;
@@ -1455,7 +1461,7 @@ M.util.help_icon = {
// Hide the menu if the user clicks outside of its content
boundingBox.get("ownerDocument").on("mousedown", function (event) {
var oTarget = event.target;
- var menuButton = Y.one("#"+args.id);
+ var menuButton = this.helplink;
if (!oTarget.compareTo(menuButton) &&
!menuButton.contains(oTarget) &&
@@ -1472,28 +1478,24 @@ M.util.help_icon = {
this.overlay.hide();
},
- display : function(event, args) {
- if (Y.one('html').get('dir') == 'rtl') {
- var overlayPosition = [Y.WidgetPositionAlign.TR, Y.WidgetPositionAlign.LC];
+ display : function(event) {
+ var overlayPosition;
+ this.helplink = event.target.ancestor('span.helplink a', true);
+ if (Y.one('html').get('dir') === 'rtl') {
+ overlayPosition = [Y.WidgetPositionAlign.TR, Y.WidgetPositionAlign.LC];
} else {
- var overlayPosition = [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.RC];
+ overlayPosition = [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.RC];
}
- this.helplink = args.node;
-
this.overlay.set('bodyContent', Y.Node.create('<img src="'+M.cfg.loadingicon+'" class="spinner" />'));
- this.overlay.set("align", {node:args.node, points: overlayPosition});
-
- var fullurl = args.url;
- if (!args.url.match(/https?:\/\//)) {
- fullurl = M.cfg.wwwroot + args.url;
- }
-
- var ajaxurl = fullurl + '&ajax=1';
+ this.overlay.set("align", {node:this.helplink, points: overlayPosition});
var cfg = {
method: 'get',
context : this,
+ data : {
+ ajax : 1
+ },
on: {
success: function(id, o, node) {
this.display_callback(o.responseText);
@@ -1508,7 +1510,7 @@ M.util.help_icon = {
}
};
- Y.io(ajaxurl, cfg);
+ Y.io(this.helplink.get('href'), cfg);
this.overlay.show();
},
@@ -1524,10 +1526,10 @@ M.util.help_icon = {
};
help_content_overlay.init();
M.util.help_icon.instance = help_content_overlay;
- M.util.help_icon.instance.display(event, args);
+ M.util.help_icon.instance.display(event);
});
} else {
- M.util.help_icon.instance.display(event, args);
+ M.util.help_icon.instance.display(event);
}
},
init : function(Y) {
View
4 lib/outputrenderers.php
@@ -1804,11 +1804,9 @@ protected function render_help_icon(help_icon $helpicon) {
$title = get_string('helpprefix2', '', trim($title, ". \t"));
$attributes = array('href'=>$url, 'title'=>$title, 'aria-haspopup' => 'true');
- $id = html_writer::random_id('helpicon');
- $attributes['id'] = $id;
$output = html_writer::tag('a', $output, $attributes);
- $this->page->requires->js_init_call('M.util.help_icon.add', array(array('id'=>$id, 'url'=>$url->out(false))));
+ $this->page->requires->js_init_call('M.util.help_icon.setup');
$this->page->requires->string_for_js('close', 'form');
// and finally span

0 comments on commit 148c786

Please sign in to comment.