Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
Línea 483... Línea 483...
483
                    lock = lock || hiddenVal;
483
                    lock = lock || hiddenVal;
484
                    return;
484
                    return;
485
                }
485
                }
486
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
486
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
487
                    // Check for filepicker status.
487
                    // Check for filepicker status.
488
                    var elementname = this.getAttribute('name');
488
                    const elementId = this.getAttribute('id');
489
                    if (elementname && M.form_filepicker.instances[elementname].fileadded) {
489
                    if (elementId && M.form_filepicker.instances[elementId].fileadded) {
490
                        lock = false;
490
                        lock = false;
491
                    } else {
491
                    } else {
492
                        lock = true;
492
                        lock = true;
493
                    }
493
                    }
494
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
494
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
Línea 500... Línea 500...
500
                    options.each(function() {
500
                    options.each(function() {
501
                        if (this.get('selected')) {
501
                        if (this.get('selected')) {
502
                            selected[selected.length] = this.get('value');
502
                            selected[selected.length] = this.get('value');
503
                        }
503
                        }
504
                    });
504
                    });
505
                    if (selected.length > 0 && selected.length === values.length) {
505
                    if (values.length === 1 && values[0] === '') {
506
                        for (var i in selected) {
506
                        // Values array contains a single empty entry -> value was empty.
507
                            v = selected[i];
507
                        lock = selected.length === 0;
508
                            if (values.indexOf(v) > -1) {
-
 
509
                                lock = true;
-
 
510
                            } else {
-
 
511
                                lock = false;
-
 
512
                                return;
508
                        return;
513
                            }
-
 
514
                        }
509
                    }
515
                    } else {
510
                    if (selected.length !== values.length) {
516
                        lock = false;
511
                        lock = false;
-
 
512
                        return;
-
 
513
                    }
-
 
514
                    lock = true;
-
 
515
                    for (const i in selected) {
-
 
516
                        v = selected[i];
-
 
517
                        if (values.indexOf(v) === -1) {
-
 
518
                            lock = false;
-
 
519
                            return;
-
 
520
                        }
517
                    }
521
                    }
518
                } else {
522
                } else {
519
                    lock = lock || this.get('value') == value;
523
                    lock = lock || this.get('value') == value;
520
                }
524
                }
521
            });
525
            });
Línea 551... Línea 555...
551
                    lock = lock || hiddenVal;
555
                    lock = lock || hiddenVal;
552
                    return;
556
                    return;
553
                }
557
                }
554
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
558
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
555
                    // Check for filepicker status.
559
                    // Check for filepicker status.
556
                    var elementname = this.getAttribute('name');
560
                    const elementId = this.getAttribute('id');
557
                    if (elementname && M.form_filepicker.instances[elementname].fileadded) {
561
                    if (elementId && M.form_filepicker.instances[elementId].fileadded) {
558
                        lock = false;
562
                        lock = false;
559
                    } else {
563
                    } else {
560
                        lock = true;
564
                        lock = true;
561
                    }
565
                    }
562
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
566
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
Línea 566... Línea 570...
566
                    options.each(function() {
570
                    options.each(function() {
567
                        if (this.get('selected')) {
571
                        if (this.get('selected')) {
568
                            selected[selected.length] = this.get('value');
572
                            selected[selected.length] = this.get('value');
569
                        }
573
                        }
570
                    });
574
                    });
-
 
575
 
571
                    if (selected.length > 0 && selected.length === values.length) {
576
                    // Needed to support subset resolution for empty selects, where 'no selection' is represented by ''.
572
                        for (var i in selected) {
577
                    if (selected.length == 0) {
573
                            v = selected[i];
578
                        selected.push('');
574
                            if (values.indexOf(v) > -1) {
-
 
575
                                lock = true;
-
 
576
                            } else {
579
                    }
-
 
580
 
577
                                lock = false;
581
                    // Lock/hide if the selected values are a subset of the values.
578
                                return;
582
                    let isSubset = selected.every(element => values.includes(element));
579
                            }
-
 
580
                        }
-
 
581
                    } else {
-
 
582
                        lock = false;
583
                    lock = isSubset;
583
                    }
584
                    return;
584
                } else {
585
                } else {
585
                    value = this.get('value');
586
                    value = this.get('value');
586
                    lock = lock || (values.indexOf(value) > -1);
587
                    lock = lock || (values.indexOf(value) > -1);
587
                }
588
                }
588
            });
589
            });
Línea 615... Línea 616...
615
                    lock = lock || hiddenVal;
616
                    lock = lock || hiddenVal;
616
                    return;
617
                    return;
617
                }
618
                }
618
                // Check for filepicker status.
619
                // Check for filepicker status.
619
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
620
                if (this.getAttribute('class').toLowerCase() == 'filepickerhidden') {
620
                    var elementname = this.getAttribute('name');
621
                    const elementId = this.getAttribute('id');
621
                    if (elementname && M.form_filepicker.instances[elementname].fileadded) {
622
                    if (elementId && M.form_filepicker.instances[elementId].fileadded) {
622
                        lock = true;
623
                        lock = true;
623
                    } else {
624
                    } else {
624
                        lock = false;
625
                        lock = false;
625
                    }
626
                    }
626
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
627
                } else if (this.get('nodeName').toUpperCase() === 'SELECT' && this.get('multiple') === true) {
Línea 631... Línea 632...
631
                    this.get('options').each(function() {
632
                    this.get('options').each(function() {
632
                        if (this.get('selected')) {
633
                        if (this.get('selected')) {
633
                            selected[selected.length] = this.get('value');
634
                            selected[selected.length] = this.get('value');
634
                        }
635
                        }
635
                    });
636
                    });
636
                    if (selected.length > 0 && selected.length === values.length) {
637
                    if (values.length === 1 && values[0] === '') {
637
                        for (var i in selected) {
-
 
638
                            if (values.indexOf(selected[i]) > -1) {
638
                        // Values array contains a single empty entry -> value was empty.
639
                                lock = false;
639
                        lock = selected.length !== 0;
640
                            } else {
-
 
641
                                lock = true;
-
 
642
                                return;
640
                        return;
643
                            }
-
 
644
                        }
641
                    }
645
                    } else {
642
                    if (selected.length !== values.length) {
646
                        lock = true;
643
                        lock = true;
-
 
644
                        return;
-
 
645
                    }
-
 
646
                    lock = false;
-
 
647
                    for (const i in selected) {
-
 
648
                        if (values.indexOf(selected[i]) === -1) {
-
 
649
                            lock = true;
-
 
650
                            return;
-
 
651
                        }
647
                    }
652
                    }
648
                } else {
653
                } else {
649
                    lock = lock || this.get('value') != value;
654
                    lock = lock || this.get('value') != value;
650
                }
655
                }
651
            });
656
            });