MDL-47494 ddimageortext: Fix lots of coding style issues.

This commit is contained in:
Tim Hunt
2014-11-28 18:42:04 +00:00
parent aea4a6b6fa
commit 51c3521aa5
10 changed files with 105 additions and 102 deletions
@@ -15,6 +15,8 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Backup code for qtype_ddimageortext.
*
* @package qtype_ddimageortext
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -30,6 +32,10 @@ defined('MOODLE_INTERNAL') || die();
*/
class backup_qtype_ddimageortext_plugin extends backup_qtype_plugin {
/**
* Returns the question type this is.
* @return string question type name, like 'ddimageortext'.
*/
protected static function qtype_name() {
return 'ddimageortext';
}
@@ -15,6 +15,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Restore code for qtype_ddimageortext.
* @package qtype_ddimageortext
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -23,8 +24,7 @@
defined('MOODLE_INTERNAL') || die();
/**
* restore plugin class that provides the necessary information
* needed to restore one ddimageortext qtype plugin.
* Restore plugin class for the ddimageortext question type.
*
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -50,7 +50,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
$question->shuffleanswers = $question->options->shuffleanswers;
$question->drags = array();
foreach ($question->options->drags as $drag) {
$dragindex = $drag->no -1;
$dragindex = $drag->no - 1;
$question->drags[$dragindex] = array();
$question->draglabel[$dragindex] = $drag->label;
$question->drags[$dragindex]['infinite'] = $drag->infinite;
@@ -59,11 +59,11 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
}
$question->drops = array();
foreach ($question->options->drops as $drop) {
$question->drops[$drop->no -1] = array();
$question->drops[$drop->no -1]['choice'] = $drop->choice;
$question->drops[$drop->no -1]['droplabel'] = $drop->label;
$question->drops[$drop->no -1]['xleft'] = $drop->xleft;
$question->drops[$drop->no -1]['ytop'] = $drop->ytop;
$question->drops[$drop->no - 1] = array();
$question->drops[$drop->no - 1]['choice'] = $drop->choice;
$question->drops[$drop->no - 1]['droplabel'] = $drop->label;
$question->drops[$drop->no - 1]['xleft'] = $drop->xleft;
$question->drops[$drop->no - 1]['ytop'] = $drop->ytop;
}
}
// Initialise file picker for bgimage.
@@ -78,7 +78,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
list(, $imagerepeats) = $this->get_drag_item_repeats();
$draftitemids = optional_param_array('dragitem', array(), PARAM_INT);
for ($imageindex = 0; $imageindex < $imagerepeats; $imageindex++) {
$draftitemid = isset($draftitemids[$imageindex]) ? $draftitemids[$imageindex] :0;
$draftitemid = isset($draftitemids[$imageindex]) ? $draftitemids[$imageindex] : 0;
// Numbers not allowed in filearea name.
$itemid = isset($dragids[$imageindex]) ? $dragids[$imageindex] : null;
file_prepare_draft_area($draftitemid, $this->context->id, 'qtype_ddimageortext',
@@ -87,7 +87,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
}
if (!empty($question->options)) {
foreach ($question->options->drags as $drag) {
$dragindex = $drag->no -1;
$dragindex = $drag->no - 1;
if (!isset($question->dragitem[$dragindex])) {
$fileexists = false;
} else {
@@ -109,7 +109,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
public function js_call() {
global $PAGE;
$maxsizes =new stdClass();
$maxsizes = new stdClass();
$maxsizes->bgimage = new stdClass();
$maxsizes->bgimage->width = QTYPE_DDIMAGEORTEXT_BGIMAGE_MAXWIDTH;
$maxsizes->bgimage->height = QTYPE_DDIMAGEORTEXT_BGIMAGE_MAXHEIGHT;
@@ -167,7 +167,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
$draggableimageitem[] = $mform->createElement('text', 'draglabel',
get_string('label', 'qtype_ddimageortext'),
array('size'=>30, 'class'=>'tweakcss'));
array('size' => 30, 'class' => 'tweakcss'));
$mform->setType('draglabel', PARAM_RAW); // These are validated manually.
return $draggableimageitem;
}
@@ -186,10 +186,10 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
$grouparray = array();
$grouparray[] = $mform->createElement('text', 'xleft',
get_string('xleft', 'qtype_ddimageortext'),
array('size'=>5, 'class'=>'tweakcss'));
array('size' => 5, 'class' => 'tweakcss'));
$grouparray[] = $mform->createElement('text', 'ytop',
get_string('ytop', 'qtype_ddimageortext'),
array('size'=>5, 'class'=>'tweakcss'));
array('size' => 5, 'class' => 'tweakcss'));
$options = array();
$options[0] = '';
@@ -200,7 +200,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
get_string('draggableitem', 'qtype_ddimageortext'), $options);
$grouparray[] = $mform->createElement('text', 'droplabel',
get_string('label', 'qtype_ddimageortext'),
array('size'=>10, 'class'=>'tweakcss'));
array('size' => 10, 'class' => 'tweakcss'));
$mform->setType('droplabel', PARAM_NOTAGS);
$dropzone = $mform->createElement('group', 'drops',
get_string('dropzone', 'qtype_ddimageortext', '{no}'), $grouparray);
@@ -225,7 +225,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
}
$allchoices = array();
for ($i=0; $i < $data['nodropzone']; $i++) {
for ($i = 0; $i < $data['nodropzone']; $i++) {
$ytoppresent = (trim($data['drops'][$i]['ytop']) !== '');
$xleftpresent = (trim($data['drops'][$i]['xleft']) !== '');
$ytopisint = (string) clean_param($data['drops'][$i]['ytop'], PARAM_INT) === trim($data['drops'][$i]['ytop']);
@@ -252,12 +252,12 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
get_string('formerror_nofile', 'qtype_ddimageortext', $i);
}
if (isset($allchoices[$choice]) && !$data['drags'][$choice-1]['infinite']) {
if (isset($allchoices[$choice]) && !$data['drags'][$choice - 1]['infinite']) {
$errors["drops[$i]"] =
get_string('formerror_multipledraginstance', 'qtype_ddimageortext', $choice);
$errors['drops['.($allchoices[$choice]).']'] =
get_string('formerror_multipledraginstance', 'qtype_ddimageortext', $choice);
$errors['drags['.($choice-1).']'] =
$errors['drags['.($choice - 1).']'] =
get_string('formerror_multipledraginstance2', 'qtype_ddimageortext', $choice);
}
$allchoices[$choice] = $i;
@@ -268,7 +268,7 @@ class qtype_ddimageortext_edit_form extends qtype_ddtoimage_edit_form_base {
}
}
}
for ($dragindex=0; $dragindex < $data['noitems']; $dragindex++) {
for ($dragindex = 0; $dragindex < $data['noitems']; $dragindex++) {
$label = $data['draglabel'][$dragindex];
if ($data['drags'][$dragindex]['dragitemtype'] == 'word') {
$allowedtags = '<br><sub><sup><b><i><strong><em>';
+7 -7
View File
@@ -95,19 +95,19 @@ class qtype_ddimageortext extends qtype_ddtoimage_base {
'', 'no, id');
foreach (array_keys($formdata->drags) as $dragno) {
$info = file_get_draft_area_info($formdata->dragitem[$dragno]);
if ($info['filecount'] > 0 || (trim($formdata->draglabel[$dragno])!='')) {
if ($info['filecount'] > 0 || (trim($formdata->draglabel[$dragno]) != '')) {
$draftitemid = $formdata->dragitem[$dragno];
$drag = new stdClass();
$drag->questionid = $formdata->id;
$drag->no = $dragno + 1;
$drag->draggroup = $formdata->drags[$dragno]['draggroup'];
$drag->infinite = empty($formdata->drags[$dragno]['infinite'])? 0 : 1;
$drag->infinite = empty($formdata->drags[$dragno]['infinite']) ? 0 : 1;
$drag->label = $formdata->draglabel[$dragno];
if (isset($olddragids[$dragno +1])) {
$drag->id = $olddragids[$dragno +1];
unset($olddragids[$dragno +1]);
if (isset($olddragids[$dragno + 1])) {
$drag->id = $olddragids[$dragno + 1];
unset($olddragids[$dragno + 1]);
$DB->update_record('qtype_ddimageortext_drags', $drag);
} else {
$drag->id = $DB->insert_record('qtype_ddimageortext_drags', $drag);
@@ -242,7 +242,7 @@ class qtype_ddimageortext extends qtype_ddtoimage_base {
foreach ($drags as $dragxml) {
$dragno = $format->getpath($dragxml, array('#', 'no', 0, '#'), 0);
$dragindex = $dragno -1;
$dragindex = $dragno - 1;
$question->drags[$dragindex] = array();
$question->draglabel[$dragindex] =
$format->getpath($dragxml, array('#', 'text', 0, '#'), '', true);
@@ -262,7 +262,7 @@ class qtype_ddimageortext extends qtype_ddtoimage_base {
$question->drops = array();
foreach ($drops as $dropxml) {
$dropno = $format->getpath($dropxml, array('#', 'no', 0, '#'), 0);
$dropindex = $dropno -1;
$dropindex = $dropno - 1;
$question->drops[$dropindex] = array();
$question->drops[$dropindex]['choice'] =
$format->getpath($dropxml, array('#', 'choice', 0, '#'), 0);
+12 -16
View File
@@ -63,12 +63,11 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
$bgimage = self::get_url_for_image($qa, 'bgimage');
$img = html_writer::empty_tag('img',
array('src'=>$bgimage,
'class'=>'dropbackground',
'alt' => get_string('dropbackground', 'qtype_ddimageortext')));
$img = html_writer::empty_tag('img', array(
'src' => $bgimage, 'class' => 'dropbackground',
'alt' => get_string('dropbackground', 'qtype_ddimageortext')));
$droparea = html_writer::tag('div', $img, array('class'=>'droparea'));
$droparea = html_writer::tag('div', $img, array('class' => 'droparea'));
$dragimagehomes = '';
foreach ($question->choices as $groupno => $group) {
@@ -85,27 +84,24 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
}
if ($dragimageurl === null) {
$classes[] = 'yui3-cssfonts';
$dragimagehomesgroup .= html_writer::tag('div',
$dragimage->text,
array('src'=>$dragimageurl,
'class'=>join(' ', $classes)));
$dragimagehomesgroup .= html_writer::tag('div', $dragimage->text,
array('src' => $dragimageurl, 'class' => join(' ', $classes)));
} else {
$dragimagehomesgroup .= html_writer::empty_tag('img',
array('src'=>$dragimageurl,
'alt' => $dragimage->text,
'class'=>join(' ', $classes)));
array('src' => $dragimageurl, 'alt' => $dragimage->text,
'class' => join(' ', $classes)));
}
}
$dragimagehomes .= html_writer::tag('div', $dragimagehomesgroup,
array('class'=>'dragitemgroup'.$groupno));
array('class' => 'dragitemgroup' . $groupno));
}
$dragitemsclass = 'dragitems';
if ($options->readonly) {
$dragitemsclass .= ' readonly';
}
$dragitems = html_writer::tag('div', $dragimagehomes, array('class'=> $dragitemsclass));
$dropzones = html_writer::tag('div', '', array('class'=>'dropzones'));
$dragitems = html_writer::tag('div', $dragimagehomes, array('class' => $dragitemsclass));
$dropzones = html_writer::tag('div', '', array('class' => 'dropzones'));
$hiddens = '';
foreach ($question->places as $placeno => $place) {
@@ -115,7 +111,7 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
$question->places[$placeno]->fieldname = $fieldname;
}
$output .= html_writer::tag('div',
$droparea . $dragitems . $dropzones . $hiddens, array('class'=>'ddarea'));
$droparea . $dragitems . $dropzones . $hiddens, array('class' => 'ddarea'));
$topnode = 'div#q'.$qa->get_slot().' div.ddarea';
$params = array('drops' => $question->places,
'topnode' => $topnode,
@@ -35,7 +35,6 @@ require_once($CFG->dirroot . '/question/type/ddimageortext/tests/helper.php');
*
* @copyright 2009 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @group qtype_ddimageortext
*/
class qtype_ddimageortext_question_test extends basic_testcase {
@@ -35,7 +35,6 @@ require_once($CFG->dirroot . '/question/type/ddimageortext/tests/helper.php');
*
* @copyright 2010 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @group qtype_ddimageortext
*/
class qtype_ddimageortext_test extends basic_testcase {
/** @var qtype_ddimageortext instance of the question type class to test. */
@@ -35,10 +35,16 @@ require_once($CFG->dirroot . '/question/type/ddimageortext/tests/helper.php');
*
* @copyright 2010 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @group qtype_ddimageortext
*/
class qtype_ddimageortext_walkthrough_test extends qbehaviour_walkthrough_test_base {
/**
* Get an expectation that the output contains an item ready to drag.
* @param int $dragitemno the item number.
* @param int $choice which choice this is.
* @param int $group which drag group it belongs to.
* @return question_contains_tag_with_attributes the required expectation.
*/
protected function get_contains_drag_image_home_expectation($dragitemno, $choice, $group) {
$class = 'group' . $group;
$class .= ' draghome dragitemhomes' . $dragitemno. ' choice'.$choice.' yui3-cssfonts';
+23 -24
View File
@@ -70,7 +70,7 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
return topnode.all('div.dropzones div.group' + groupno);
},
drag_items_cloned_from : function(dragitemno) {
return dragitemsarea.all('.dragitems'+dragitemno);
return dragitemsarea.all('.dragitems' + dragitemno);
},
drag_item : function(draginstanceno) {
return dragitemsarea.one('.draginstance' + draginstanceno);
@@ -85,14 +85,14 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
return topnode.one('.dropbackground');
},
load_bg_img : function (url) {
dropbgarea.setContent('<img class="dropbackground" src="'+ url +'"/>');
dropbgarea.setContent('<img class="dropbackground" src="' + url + '"/>');
this.bg_img().on('load', this.on_image_load, this, 'bg_image');
},
add_or_update_drag_item_home : function (dragitemno, url, alt, group) {
var oldhome = this.drag_item_home(dragitemno);
var classes = 'draghome dragitemhomes'+dragitemno+' group'+group;
var imghtml = '<img class="'+classes+'" src="'+url+'" alt="'+alt+'" />';
var divhtml = '<div class="'+classes+'">'+alt+'</div>';
var classes = 'draghome dragitemhomes' + dragitemno + ' group' + group;
var imghtml = '<img class="' + classes + '" src="' + url + '" alt="' + alt + '" />';
var divhtml = '<div class="' + classes + '">' + alt + '</div>';
if (oldhome === null) {
if (url) {
dragitemsarea.append(imghtml);
@@ -107,7 +107,7 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
}
oldhome.remove(true);
}
var newlycreated = dragitemsarea.one('.dragitemhomes'+dragitemno);
var newlycreated = dragitemsarea.one('.dragitemhomes' + dragitemno);
if (newlycreated !== null) {
newlycreated.setData('groupno', group);
newlycreated.setData('dragitemno', dragitemno);
@@ -125,11 +125,11 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
if (patt1.test(classesarr[index])) {
var patt2 = new RegExp('([0-9])+$');
var match = patt2.exec(classesarr[index]);
return +match[0];
return + match[0];
}
}
}
throw 'Prefix "'+prefix+'" not found in class names.';
throw 'Prefix "' + prefix + '" not found in class names.';
},
clone_new_drag_item : function (draginstanceno, dragitemno) {
var draghome = this.drag_item_home(dragitemno);
@@ -191,7 +191,7 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
}
},
update_padding_size_for_group : function (groupno) {
var groupitems = this.doc.top_node().all('.draghome.group'+groupno);
var groupitems = this.doc.top_node().all('.draghome.group' + groupno);
if (groupitems.size() !== 0) {
var maxwidth = 0;
var maxheight = 0;
@@ -202,16 +202,16 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
groupitems.each(function(item) {
var margintopbottom = Math.round((10 + maxheight - item.get('clientHeight')) / 2);
var marginleftright = Math.round((10 + maxwidth - item.get('clientWidth')) / 2);
item.setStyle('padding', margintopbottom+'px '+marginleftright+'px '
+margintopbottom+'px '+marginleftright+'px');
item.setStyle('padding', margintopbottom + 'px ' + marginleftright + 'px ' +
margintopbottom + 'px ' + marginleftright + 'px');
}, this);
this.doc.drop_zone_group(groupno).setStyles({'width': maxwidth + 10,
'height': maxheight + 10});
}
},
convert_to_window_xy : function (bgimgxy) {
return [+bgimgxy[0] + this.doc.bg_img().getX() + 1,
+bgimgxy[1] + this.doc.bg_img().getY() + 1];
return [Number(bgimgxy[0]) + this.doc.bg_img().getX() + 1,
Number(bgimgxy[1]) + this.doc.bg_img().getY() + 1];
}
}, {
NAME : DDIMAGEORTEXTDDNAME,
@@ -246,10 +246,9 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
this.update_padding_sizes_all();
var i = 0;
this.doc.drag_item_homes().each(function(dragitemhome){
var dragitemno =
+this.doc.get_classname_numeric_suffix(dragitemhome, 'dragitemhomes');
var choice = +this.doc.get_classname_numeric_suffix(dragitemhome, 'choice');
var group = +this.doc.get_classname_numeric_suffix(dragitemhome, 'group');
var dragitemno = Number(this.doc.get_classname_numeric_suffix(dragitemhome, 'dragitemhomes'));
var choice = + this.doc.get_classname_numeric_suffix(dragitemhome, 'choice');
var group = + this.doc.get_classname_numeric_suffix(dragitemhome, 'group');
var groupsize = this.doc.drop_zone_group(group).size();
var dragnode = this.doc.clone_new_drag_item(i, dragitemno);
i++;
@@ -328,7 +327,7 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
},
current_drag_in_drop : function (drop) {
var inputid = drop.getData('inputid');
var inputnode = Y.one('input#'+inputid);
var inputnode = Y.one('input#' + inputid);
return inputnode.get('value');
},
remove_drag_from_drop : function (drop) {
@@ -336,7 +335,7 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
},
place_drag_in_drop : function (drag, drop) {
var inputid = drop.getData('inputid');
var inputnode = Y.one('input#'+inputid);
var inputnode = Y.one('input#' + inputid);
if (drag !== null) {
inputnode.set('value', drag.getData('choice'));
} else {
@@ -398,23 +397,23 @@ YUI.add('moodle-qtype_ddimageortext-dd', function(Y) {
init_drops : function () {
var dropareas = this.doc.top_node().one('div.dropzones');
var groupnodes = {};
for (var groupno =1; groupno <= 8; groupno++) {
var groupnode = Y.Node.create('<div class = "dropzonegroup'+groupno+'"></div>');
for (var groupno = 1; groupno <= 8; groupno++) {
var groupnode = Y.Node.create('<div class = "dropzonegroup' + groupno + '"></div>');
dropareas.append(groupnode);
groupnodes[groupno] = groupnode;
}
var drop_hit_handler = function(e) {
var drag = e.drag.get('node');
var drop = e.drop.get('node');
if (+drop.getData('group') === drag.getData('group')){
if (Number(drop.getData('group')) === drag.getData('group')){
this.place_drag_in_drop(drag, drop);
}
};
for (var dropno in this.get('drops')) {
var drop = this.get('drops')[dropno];
var nodeclass = 'dropzone group'+drop.group+' place'+dropno;
var nodeclass = 'dropzone group' + drop.group + ' place' + dropno;
var title = drop.text.replace('"', '\"');
var dropnodehtml = '<div title="'+ title +'" class="'+nodeclass+'">&nbsp;</div>';
var dropnodehtml = '<div title="' + title + '" class="' + nodeclass + '">&nbsp;</div>';
var dropnode = Y.Node.create(dropnodehtml);
groupnodes[drop.group].append(dropnode);
dropnode.setStyles({'opacity': 0.5});
+31 -33
View File
@@ -12,7 +12,7 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
initializer : function() {
this.fp = this.file_pickers();
var tn = Y.one(this.get('topnode'));
tn.one('div.fcontainer').append('<div class="ddarea"><div class="droparea"></div><div class="dragitems"></div>'+
tn.one('div.fcontainer').append('<div class="ddarea"><div class="droparea"></div><div class="dragitems"></div>' +
'<div class="dropzones"></div></div>');
this.doc = this.doc_structure(this);
this.draw_dd_area();
@@ -69,8 +69,8 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
},
load_drag_homes : function () {
//set up drag items homes
for (var i=0; i < this.form.get_form_value('noitems', []); i++) {
// Set up drag items homes.
for (var i = 0; i < this.form.get_form_value('noitems', []); i++) {
this.load_drag_home(i);
}
},
@@ -86,8 +86,8 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
},
update_drag_instances : function () {
//set up drop zones
for (var i=0; i < this.form.get_form_value('nodropzone', []); i++) {
// Set up drop zones.
for (var i = 0; i < this.form.get_form_value('nodropzone', []); i++) {
var dragitemno = this.form.get_form_value('drops', [i, 'choice']);
if (dragitemno !== '0' && (this.doc.drag_item(i) === null)) {
var drag = this.doc.clone_new_drag_item(i, dragitemno - 1);
@@ -99,7 +99,7 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
},
set_options_for_drag_item_selectors : function () {
var dragitemsoptions = {0: ''};
for (var i=0; i < this.form.get_form_value('noitems', []); i++) {
for (var i = 0; i < this.form.get_form_value('noitems', []); i++) {
var label = this.form.get_form_value('draglabel', [i]);
var file = this.fp.file(this.form.to_name_with_index('dragitem', [i]));
if ('image' === this.form.get_form_value('drags', [i, 'dragitemtype'])
@@ -110,26 +110,24 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
}
}
for (i = 0; i < this.form.get_form_value('nodropzone', []); i++) {
var selector = Y.one('#id_drops_'+i+'_choice');
var selector = Y.one('#id_drops_' + i + '_choice');
var selectedvalue = selector.get('value');
selector.all('option').remove(true);
for (var value in dragitemsoptions) {
value = +value;
var option = '<option value="'+ value +'">'
+ dragitemsoptions[value] +
'</option>';
value = + value;
var option = '<option value="' + value + '">' + dragitemsoptions[value] + '</option>';
selector.append(option);
var optionnode = selector.one('option[value="' + value + '"]');
if (value === +selectedvalue) {
if (value === + selectedvalue) {
optionnode.set('selected', true);
} else {
if (value !== 0) { // no item option is always selectable
var cbel = Y.one('#id_drags_'+(value-1)+'_infinite');
if (value !== 0) { // No item option is always selectable.
var cbel = Y.one('#id_drags_' + (value - 1) + '_infinite');
if (cbel && !cbel.get('checked')) {
Y.all('fieldset#id_dropzoneheader select').some(function (selector) {
if (+selector.get('value') === value) {
if (Number(selector.get('value')) === value) {
optionnode.set('disabled', true);
return true; // stop looping
return true; // Stop looping.
}
return false;
}, this);
@@ -145,9 +143,9 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
},
setup_form_events : function () {
//events triggered by changes to form data
// Events triggered by changes to form data.
//x and y coordinates
// X and y coordinates.
Y.all('fieldset#id_dropzoneheader input').on('blur', function (e) {
var name = e.target.getAttribute('name');
var draginstanceno = this.form.from_name_with_index(name).indexes[0];
@@ -158,7 +156,7 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
this.form.set_form_value('drops', [draginstanceno, 'ytop'], constrainedxy[1]);
}, this);
//change in selected item
// Change in selected item.
Y.all('fieldset#id_dropzoneheader select').on('change', function (e) {
var name = e.target.getAttribute('name');
var draginstanceno = this.form.from_name_with_index(name).indexes[0];
@@ -169,25 +167,25 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
this.draw_dd_area();
}, this);
for (var i=0; i < this.form.get_form_value('noitems', []); i++) {
//change to group selector
Y.all('#fgroup_id_drags_'+i+' select.draggroup').on(
for (var i = 0; i < this.form.get_form_value('noitems', []); i++) {
// Change to group selector.
Y.all('#fgroup_id_drags_' + i + ' select.draggroup').on(
'change', function () {
this.doc.drag_items().remove(true);
this.draw_dd_area();
}, this);
Y.all('#fgroup_id_drags_'+i+' select.dragitemtype').on(
Y.all('#fgroup_id_drags_' + i + ' select.dragitemtype').on(
'change', function () {
this.doc.drag_items().remove(true);
this.draw_dd_area();
}, this);
Y.all('fieldset#draggableitemheader_'+i+' input[type="text"]')
Y.all('fieldset#draggableitemheader_' + i + ' input[type="text"]')
.on('blur', this.set_options_for_drag_item_selectors, this);
//change to infinite checkbox
Y.all('fieldset#draggableitemheader_'+i+' input[type="checkbox"]')
// Change to infinite checkbox.
Y.all('fieldset#draggableitemheader_' + i + ' input[type="checkbox"]')
.on('change', this.set_options_for_drag_item_selectors, this);
}
//event on file picker new file selection
// Event on file picker new file selection.
Y.after(function (e) {
var name = this.fp.name(e.id);
if (name !== 'bgimage') {
@@ -198,12 +196,12 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
},
update_visibility_of_file_pickers : function() {
for (var i=0; i < this.form.get_form_value('noitems', []); i++) {
for (var i = 0; i < this.form.get_form_value('noitems', []); i++) {
if ('image' === this.form.get_form_value('drags', [i, 'dragitemtype'])) {
Y.one('input#id_dragitem_'+i).get('parentNode').get('parentNode')
Y.one('input#id_dragitem_' + i).get('parentNode').get('parentNode')
.setStyle('display', 'block');
} else {
Y.one('input#id_dragitem_'+i).get('parentNode').get('parentNode')
Y.one('input#id_dragitem_' + i).get('parentNode').get('parentNode')
.setStyle('display', 'none');
}
}
@@ -251,8 +249,8 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
return [xleftconstrained, ytopconstrained];
},
convert_to_bg_img_xy : function (windowxy) {
return [+windowxy[0] - this.doc.bg_img().getX()-1,
+windowxy[1] - this.doc.bg_img().getY()-1];
return [Number(windowxy[0]) - this.doc.bg_img().getX() - 1,
Number(windowxy[1]) - this.doc.bg_img().getY() - 1];
},
/**
@@ -261,7 +259,7 @@ YUI.add('moodle-qtype_ddimageortext-form', function(Y) {
form : {
to_name_with_index : function(name, indexes) {
var indexstring = name;
for (var i=0; i < indexes.length; i++) {
for (var i = 0; i < indexes.length; i++) {
indexstring = indexstring + '[' + indexes[i] + ']';
}
return indexstring;