MDL-18949 Move selector is now disabled unless at least one grade item is selected. Merged from MOODLE_19_STABLE

This commit is contained in:
nicolasconnault 2009-04-24 07:56:35 +00:00
parent 10f5c0460b
commit 2be6ca78db
3 changed files with 24 additions and 9 deletions

View file

@ -12,6 +12,8 @@ function togglecheckboxes(eid, value) {
} }
} }
toggleCategorySelector();
} }
function toggle_advanced_columns() { function toggle_advanced_columns() {
@ -27,6 +29,19 @@ function toggle_advanced_columns() {
} }
} }
/**
* Check if any of the grade item checkboxes is ticked. If yes, enable the dropdown. Otherwise, disable it
*/
function toggleCategorySelector() {
var itemboxes = YAHOO.util.Dom.getElementsByClassName('itemselect');
for (var i = 0; i < itemboxes.length; i++) {
if (itemboxes[i].checked) {
document.getElementById('menumoveafter').disabled = false;
return true;
}
document.getElementById('menumoveafter').disabled = 'disabled';
}
YAHOO.namespace('grade_edit_tree'); YAHOO.namespace('grade_edit_tree');
(function() { (function() {
@ -45,13 +60,13 @@ YAHOO.namespace('grade_edit_tree');
var category_rows = edit_tree_table.getElementsByClassName('category', 'tr'); var category_rows = edit_tree_table.getElementsByClassName('category', 'tr');
new YAHOO.util.DDTarget('grade_edit_tree_table'); new YAHOO.util.DDTarget('grade_edit_tree_table');
for (i = 0; i < item_rows.length; i++) { for (i = 0; i < item_rows.length; i++) {
if (!Dom.hasClass(item_rows[i],'categoryitem')) { if (!Dom.hasClass(item_rows[i],'categoryitem')) {
new gretree.DDList(item_rows[i]); new gretree.DDList(item_rows[i]);
} }
} }
for (i = 0; i < category_rows.length; i++) { for (i = 0; i < category_rows.length; i++) {
if (!Dom.hasClass(category_rows[i],'coursecategory')) { if (!Dom.hasClass(category_rows[i],'coursecategory')) {
// Find the cell that spans rows for this category // Find the cell that spans rows for this category
@ -64,7 +79,7 @@ YAHOO.namespace('grade_edit_tree');
rows[j] = lastRow; rows[j] = lastRow;
lastRow = lastRow.nextSibling; lastRow = lastRow.nextSibling;
} }
new gretree.DDList(rows); new gretree.DDList(rows);
} }
} }
@ -94,7 +109,7 @@ YAHOO.namespace('grade_edit_tree');
}; };
gretree.DDList = function(id, sGroup, config) { gretree.DDList = function(id, sGroup, config) {
gretree.DDList.superclass.constructor.call(this, id, sGroup, config); gretree.DDList.superclass.constructor.call(this, id, sGroup, config);
this.logger = this.logger || YAHOO; this.logger = this.logger || YAHOO;
var el = this.getDragEl(); var el = this.getDragEl();
@ -152,7 +167,7 @@ YAHOO.namespace('grade_edit_tree');
var pt = DDM.interactionInfo.point; var pt = DDM.interactionInfo.point;
// The region occupied by the source element at the time of the drop // The region occupied by the source element at the time of the drop
var region = DDM.interactionInfo.sourceRegion; var region = DDM.interactionInfo.sourceRegion;
// Check to see if we are over the source element's location. We will append to the bottom of the list once we are sure it was a drop in the negative space // Check to see if we are over the source element's location. We will append to the bottom of the list once we are sure it was a drop in the negative space
if (!region.intersect(pt)) { if (!region.intersect(pt)) {

View file

@ -326,7 +326,7 @@ if (!$moving) {
echo '<input type="hidden" name="bulkmove" value="0" id="bulkmoveinput" />'; echo '<input type="hidden" name="bulkmove" value="0" id="bulkmoveinput" />';
echo get_string('moveselectedto', 'grades') . ' '; echo get_string('moveselectedto', 'grades') . ' ';
echo choose_from_menu($categories, 'moveafter', '', 'choose', echo choose_from_menu($categories, 'moveafter', '', 'choose',
'document.getElementById(\'bulkmoveinput\').value=1;document.getElementById(\'gradetreeform\').submit()', 0, true); 'document.getElementById(\'bulkmoveinput\').value=1;document.getElementById(\'gradetreeform\').submit()', 0, true, true);
echo '<div id="noscriptgradetreeform" style="display: inline;"> echo '<div id="noscriptgradetreeform" style="display: inline;">
<input type="submit" value="'.get_string('go').'" /> <input type="submit" value="'.get_string('go').'" />
</div> </div>

View file

@ -259,7 +259,7 @@ class grade_edit_tree {
} }
$levelclass = " level$level "; $levelclass = " level$level ";
$courseclass = ''; $courseclass = '';
if ($level == 1) { if ($level == 1) {
$courseclass = 'coursecategory'; $courseclass = 'coursecategory';
@ -287,7 +287,7 @@ class grade_edit_tree {
$item = grade_item::fetch(array('id' => $object->id)); $item = grade_item::fetch(array('id' => $object->id));
$element['type'] = 'item'; $element['type'] = 'item';
$element['object'] = $item; $element['object'] = $item;
$categoryitemclass = ''; $categoryitemclass = '';
if ($item->itemtype == 'category') { if ($item->itemtype == 'category') {
$categoryitemclass = 'categoryitem'; $categoryitemclass = 'categoryitem';
@ -962,7 +962,7 @@ class grade_edit_tree_column_select extends grade_edit_tree_column {
$itemselect = ''; $itemselect = '';
if ($params['itemtype'] != 'course' && $params['itemtype'] != 'category') { if ($params['itemtype'] != 'course' && $params['itemtype'] != 'category') {
$itemselect = '<input class="itemselect" type="checkbox" name="select_'.$params['eid'].'" />'; $itemselect = '<input class="itemselect" type="checkbox" name="select_'.$params['eid'].'" onchange="toggleCategorySelector();"/>';
} }
return '<td class="cell last selection">' . $itemselect . '</td>'; return '<td class="cell last selection">' . $itemselect . '</td>';
} }