Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
YUI.add('moodle-mod_quiz-questionchooser', function (Y, NAME) {
2
 
3
var CSS = {
4
    ADDNEWQUESTIONBUTTONS: '.menu [data-action="addquestion"]',
5
    CREATENEWQUESTION: 'div.createnewquestion',
6
    CHOOSERDIALOGUE: 'div.chooserdialoguebody',
7
    CHOOSERHEADER: 'div.choosertitle'
8
};
9
 
10
/**
11
 * The questionchooser class  is responsible for instantiating and displaying the question chooser
12
 * when viewing a quiz in editing mode.
13
 *
14
 * @class questionchooser
15
 * @constructor
16
 * @protected
17
 * @extends M.core.chooserdialogue
18
 */
19
var QUESTIONCHOOSER = function() {
20
    QUESTIONCHOOSER.superclass.constructor.apply(this, arguments);
21
};
22
 
23
Y.extend(QUESTIONCHOOSER, M.core.chooserdialogue, {
24
    initializer: function() {
25
        Y.one('body').delegate('click', this.display_dialogue, CSS.ADDNEWQUESTIONBUTTONS, this);
26
    },
27
 
28
    display_dialogue: function(e) {
29
        e.preventDefault();
30
        var dialogue = Y.one(CSS.CREATENEWQUESTION + ' ' + CSS.CHOOSERDIALOGUE),
31
            header = Y.one(CSS.CREATENEWQUESTION + ' ' + CSS.CHOOSERHEADER);
32
 
33
        if (this.container === null) {
34
            // Setup the dialogue, and then prepare the chooser if it's not already been set up.
35
            this.setup_chooser_dialogue(dialogue, header, {});
36
            this.prepare_chooser();
37
        }
38
 
39
        // Update all of the hidden fields within the questionbank form.
40
        var parameters = Y.QueryString.parse(e.currentTarget.get('search').substring(1));
41
        var form = this.container.one('form');
42
        this.parameters_to_hidden_input(parameters, form, 'returnurl');
43
        this.parameters_to_hidden_input(parameters, form, 'cmid');
44
        this.parameters_to_hidden_input(parameters, form, 'category');
45
        this.parameters_to_hidden_input(parameters, form, 'addonpage');
46
        this.parameters_to_hidden_input(parameters, form, 'appendqnumstring');
47
 
48
        // Display the chooser dialogue.
49
        this.display_chooser(e);
50
    },
51
 
52
    parameters_to_hidden_input: function(parameters, form, name) {
53
        var value;
54
        if (parameters.hasOwnProperty(name)) {
55
            value = parameters[name];
56
        } else {
57
            value = '';
58
        }
59
        var input = form.one('input[name=' + name + ']');
60
        if (!input) {
61
            input = form.appendChild('<input type="hidden">');
62
            input.set('name', name);
63
        }
64
        input.set('value', value);
65
    }
66
}, {
67
    NAME: 'mod_quiz-questionchooser'
68
});
69
 
70
M.mod_quiz = M.mod_quiz || {};
71
M.mod_quiz.init_questionchooser = function() {
72
    M.mod_quiz.question_chooser = new QUESTIONCHOOSER({});
73
    return M.mod_quiz.question_chooser;
74
};
75
 
76
 
77
}, '@VERSION@', {"requires": ["moodle-core-chooserdialogue", "moodle-mod_quiz-util", "querystring-parse"]});