MDL-47494 ddimageortext: Fix lots of coding style issues.
This commit is contained in:
@@ -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';
|
||||
}
|
||||
|
||||
+2
-2
@@ -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>';
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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+'"> </div>';
|
||||
var dropnodehtml = '<div title="' + title + '" class="' + nodeclass + '"> </div>';
|
||||
var dropnode = Y.Node.create(dropnodehtml);
|
||||
groupnodes[drop.group].append(dropnode);
|
||||
dropnode.setStyles({'opacity': 0.5});
|
||||
|
||||
+31
-33
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user