From a2d1d7696102cdd1d23ebd896e60486eb0794fe6 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Wed, 6 Jun 2012 15:49:37 +0800 Subject: [PATCH 1/2] MDL-33547: Fix for mod_assign portfolio export for a list of files. This will fix any submission or feedback plugin using render_area_files to show a list of files. --- mod/assign/locallib.php | 10 ---------- mod/assign/portfolio_callback.php | 4 ++-- mod/assign/renderable.php | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 2ab70d61029..bb203f0b4e0 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -39,12 +39,6 @@ define('ASSIGN_FILTER_SUBMITTED', 'submitted'); define('ASSIGN_FILTER_SINGLE_USER', 'singleuser'); define('ASSIGN_FILTER_REQUIRE_GRADING', 'require_grading'); -/** - * File areas for assignment portfolio if enabled - */ -define('ASSIGN_FILEAREA_PORTFOLIO_FILES', 'portfolio_files'); - - /** Include accesslib.php */ require_once($CFG->libdir.'/accesslib.php'); /** Include formslib.php */ @@ -53,8 +47,6 @@ require_once($CFG->libdir.'/formslib.php'); require_once($CFG->dirroot . '/repository/lib.php'); /** Include local mod_form.php */ require_once($CFG->dirroot.'/mod/assign/mod_form.php'); -/** Include portfoliolib.php */ -require_once($CFG->libdir . '/portfoliolib.php'); /** gradelib.php */ require_once($CFG->libdir.'/gradelib.php'); /** grading lib.php */ @@ -2275,8 +2267,6 @@ class assign { $submissionid = $submission->id; } - - $fs = get_file_storage(); $browser = get_file_browser(); $files = $fs->get_area_files($this->get_context()->id, $component, $area , $submissionid , "timemodified", false); diff --git a/mod/assign/portfolio_callback.php b/mod/assign/portfolio_callback.php index 7453ef22cf4..cee75bcd272 100644 --- a/mod/assign/portfolio_callback.php +++ b/mod/assign/portfolio_callback.php @@ -69,6 +69,7 @@ class assign_portfolio_caller extends portfolio_module_caller_base { 'cmid' => true, 'sid' => false, 'area' => false, + 'component' => false, 'fileid' => false, 'plugin' => false, 'editor' => false, @@ -105,11 +106,10 @@ class assign_portfolio_caller extends portfolio_module_caller_base { } - // export either an area of files or a single file (see function for more detail) // the first arg is an id or null. If it is an id, the rest of the args are ignored // if it is null, the rest of the args are used to load a list of files from get_areafiles - $this->set_file_and_format_data($this->fileid, $context->id, 'mod_assign', $this->area, $this->sid, 'timemodified', false); + $this->set_file_and_format_data($this->fileid, $context->id, $this->component, $this->area, $this->sid, 'timemodified', false); } diff --git a/mod/assign/renderable.php b/mod/assign/renderable.php index fa7a9fe4f40..2f52c347ff6 100644 --- a/mod/assign/renderable.php +++ b/mod/assign/renderable.php @@ -473,7 +473,7 @@ class assign_files implements renderable { require_once($CFG->libdir . '/portfoliolib.php'); if (count($files) >= 1 && has_capability('mod/assign:exportownsubmission', $this->context)) { $button = new portfolio_add_button(); - $button->set_callback_options('assign_portfolio_caller', array('cmid' => $this->cm->id, 'sid'=>$sid, 'area'=>$filearea), '/mod/assign/portfolio_callback.php'); + $button->set_callback_options('assign_portfolio_caller', array('cmid' => $this->cm->id, 'sid'=>$sid, 'area'=>$filearea, 'component'=>$component), '/mod/assign/portfolio_callback.php'); $button->reset_formats(); $this->portfolioform = $button->to_html(PORTFOLIO_ADD_TEXT_LINK); } From 371409f41e7b0f30f953f976f0bb65f1f6128939 Mon Sep 17 00:00:00 2001 From: Andrew Robert Nicols Date: Thu, 7 Jun 2012 14:46:21 +0100 Subject: [PATCH 2/2] MDL-33588 Ensure that a drop target is defined before checking a drop group --- lib/yui/dragdrop/dragdrop.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/yui/dragdrop/dragdrop.js b/lib/yui/dragdrop/dragdrop.js index 27d0f1db421..6669f37126a 100644 --- a/lib/yui/dragdrop/dragdrop.js +++ b/lib/yui/dragdrop/dragdrop.js @@ -135,7 +135,7 @@ YUI.add('moodle-core-dragdrop', function(Y) { global_drop_over : function(e) { // Check that drop object belong to correct group - if (!e.drop.inGroup(this.groups)) { + if (!e.drop || !e.drop.inGroup(this.groups)) { return; } //Get a reference to our drag and drop nodes @@ -168,7 +168,7 @@ YUI.add('moodle-core-dragdrop', function(Y) { // this.lastdroptarget (ghost node we use for indicating where to drop) e.drag = e.target; // Check that drop object belong to correct group - if (!e.drag.target.inGroup(this.groups)) { + if (!e.drop || !e.drop.inGroup(this.groups)) { return; } e.drop = this.lastdroptarget; @@ -177,7 +177,7 @@ YUI.add('moodle-core-dragdrop', function(Y) { global_drop_hit : function(e) { // Check that drop object belong to correct group - if (!e.drop.inGroup(this.groups)) { + if (!e.drop || !e.drop.inGroup(this.groups)) { return; } this.drop_hit(e);