mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
MDL-37430 Course - Make modules created in hidden sections visible when section is made visible.
This commit is contained in:
parent
2254fb2764
commit
a83dd077f8
@ -3137,7 +3137,7 @@ function reorder_sections($sections, $origin_position, $target_position) {
|
||||
* All parameters are objects
|
||||
*/
|
||||
function moveto_module($mod, $section, $beforemod=NULL) {
|
||||
global $OUTPUT;
|
||||
global $OUTPUT, $DB;
|
||||
|
||||
/// Remove original module from original section
|
||||
if (! delete_mod_from_section($mod->id, $mod->section)) {
|
||||
@ -3146,7 +3146,16 @@ function moveto_module($mod, $section, $beforemod=NULL) {
|
||||
|
||||
// if moving to a hidden section then hide module
|
||||
if (!$section->visible && $mod->visible) {
|
||||
// Set this in the object because it is sent as a response to ajax calls.
|
||||
$mod->visible = 0;
|
||||
set_coursemodule_visible($mod->id, 0);
|
||||
// Set visibleold to 1 so module will be visible when section is made visible.
|
||||
$DB->set_field('course_modules', 'visibleold', 1, array('id' => $mod->id));
|
||||
}
|
||||
if ($section->visible && !$mod->visible) {
|
||||
set_coursemodule_visible($mod->id, $mod->visibleold);
|
||||
// Set this in the object because it is sent as a response to ajax calls.
|
||||
$mod->visible = $mod->visibleold;
|
||||
}
|
||||
|
||||
/// Add the module into the new section
|
||||
|
@ -480,6 +480,7 @@ if ($mform->is_cancelled()) {
|
||||
// make sure visibility is set correctly (in particular in calendar)
|
||||
// note: allow them to set it even without moodle/course:activityvisibility
|
||||
set_coursemodule_visible($fromform->coursemodule, $fromform->visible);
|
||||
$DB->set_field('course_modules', 'visibleold', 1, array('id' => $fromform->coursemodule));
|
||||
|
||||
if (isset($fromform->cmidnumber)) { //label
|
||||
// set cm idnumber - uniqueness is already verified by form validation
|
||||
|
@ -134,6 +134,7 @@ switch($requestmethod) {
|
||||
}
|
||||
|
||||
moveto_module($cm, $section, $beforemod);
|
||||
echo json_encode(array('visible' => $cm->visible));
|
||||
break;
|
||||
case 'gettitle':
|
||||
require_capability('moodle/course:manageactivities', $modcontext);
|
||||
|
3
course/yui/dragdrop/dragdrop.js
vendored
3
course/yui/dragdrop/dragdrop.js
vendored
@ -385,6 +385,9 @@ YUI.add('moodle-course-dragdrop', function(Y) {
|
||||
spinner.show();
|
||||
},
|
||||
success: function(tid, response) {
|
||||
var responsetext = Y.JSON.parse(response.responseText);
|
||||
var params = {element: dragnode, visible: responsetext.visible};
|
||||
M.course.coursebase.invoke_function('set_visibility_resource_ui', params);
|
||||
this.unlock_drag_handle(drag, CSS.EDITINGMOVE);
|
||||
window.setTimeout(function(e) {
|
||||
spinner.hide();
|
||||
|
20
course/yui/toolboxes/toolboxes.js
vendored
20
course/yui/toolboxes/toolboxes.js
vendored
@ -601,6 +601,26 @@ YUI.add('moodle-course-toolboxes', function(Y) {
|
||||
}
|
||||
}, this);
|
||||
listenevents.push(thisevent);
|
||||
},
|
||||
/**
|
||||
* Set the visibility of the current resource (identified by the element)
|
||||
* to match the hidden parameter (this is not a toggle).
|
||||
* Only changes the visibility in the browser (no ajax update).
|
||||
* @param args An object with 'element' being the A node containing the resource
|
||||
* and 'visible' being the state that the visiblity should be set to.
|
||||
* @return void
|
||||
*/
|
||||
set_visibility_resource_ui: function(args) {
|
||||
var element = args.element;
|
||||
var shouldbevisible = args.visible;
|
||||
var buttonnode = element.one(CSS.SHOW);
|
||||
var visible = (buttonnode === null);
|
||||
if (visible) {
|
||||
buttonnode = element.one(CSS.HIDE);
|
||||
}
|
||||
if (visible != shouldbevisible) {
|
||||
this.toggle_hide_resource_ui(buttonnode);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
NAME : 'course-resource-toolbox',
|
||||
|
Loading…
x
Reference in New Issue
Block a user