From 0470a094e2c9998f0134e2c2ce5711dcf946fc21 Mon Sep 17 00:00:00 2001 From: Davo Smith Date: Fri, 4 Jan 2013 12:31:31 +0000 Subject: [PATCH] MDL-35568 course dndupload - resources created with the same visibility as the section they are dragged onto --- course/dndupload.js | 6 ++++++ course/dnduploadlib.php | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/course/dndupload.js b/course/dndupload.js index d41bfe9925d..1ee839546f4 100644 --- a/course/dndupload.js +++ b/course/dndupload.js @@ -729,6 +729,9 @@ M.course_dndupload = { resel.icon.src = result.icon; resel.a.href = result.link; resel.namespan.innerHTML = result.name; + if (!parseInt(result.visible, 10)) { + resel.a.className = 'dimmed'; + } if (result.groupingname) { resel.groupingspan.innerHTML = '(' + result.groupingname + ')'; @@ -916,6 +919,9 @@ M.course_dndupload = { resel.icon.src = result.icon; resel.a.href = result.link; resel.namespan.innerHTML = result.name; + if (!parseInt(result.visible, 10)) { + resel.a.className = 'dimmed'; + } if (result.groupingname) { resel.groupingspan.innerHTML = '(' + result.groupingname + ')'; diff --git a/course/dnduploadlib.php b/course/dnduploadlib.php index 6fb00b02f89..9ce43a535e2 100644 --- a/course/dnduploadlib.php +++ b/course/dnduploadlib.php @@ -611,6 +611,9 @@ class dndupload_ajax_processor { throw new moodle_exception('errorcreatingactivity', 'moodle', '', $this->module->name); } + // Note the section visibility + $visible = get_fast_modinfo($this->course)->get_section_info($this->section)->visible; + $DB->set_field('course_modules', 'instance', $instanceid, array('id' => $this->cm->id)); // Rebuild the course cache after update action rebuild_course_cache($this->course->id, true); @@ -618,7 +621,10 @@ class dndupload_ajax_processor { $sectionid = course_add_cm_to_section($this->course, $this->cm->id, $this->section); - set_coursemodule_visible($this->cm->id, true); + set_coursemodule_visible($this->cm->id, $visible); + if (!$visible) { + $DB->set_field('course_modules', 'visibleold', 1, array('id' => $this->cm->id)); + } // retrieve the final info about this module. $info = get_fast_modinfo($this->course); @@ -627,7 +633,7 @@ class dndupload_ajax_processor { delete_course_module($this->cm->id); throw new moodle_exception('errorcreatingactivity', 'moodle', '', $this->module->name); } - $mod = $info->cms[$this->cm->id]; + $mod = $info->get_cm($this->cm->id); $mod->groupmodelink = $this->cm->groupmodelink; $mod->groupmode = $this->cm->groupmode; @@ -666,6 +672,7 @@ class dndupload_ajax_processor { $resp->elementid = 'module-'.$mod->id; $resp->commands = make_editing_buttons($mod, true, true, 0, $mod->sectionnum); $resp->onclick = $mod->get_on_click(); + $resp->visible = $mod->visible; // if using groupings, then display grouping name if (!empty($mod->groupingid) && has_capability('moodle/course:managegroups', $this->context)) {