Merge branch 'MDL-48771-squashed' of git://github.com/timhunt/moodle
[moodle.git] / mod / quiz / yui / src / repaginate / js / repaginate.js
1 // This file is part of Moodle - http://moodle.org/
2 //
3 // Moodle is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // Moodle is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Repaginate functionality for a popup in quiz editing page.
19  *
20  * @package   mod_quiz
21  * @copyright 2014 The Open University
22  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 var CSS = {
26     REPAGINATECOMMAND: '#repaginatecommand'
27 };
29 var PARAMS = {
30     CMID: 'cmid',
31     HEADER: 'header',
32     FORM: 'form'
33 };
35 var POPUP = function() {
36     POPUP.superclass.constructor.apply(this, arguments);
37 };
39 Y.extend(POPUP, Y.Base, {
40     header: null,
41     body: null,
43     initializer: function() {
44         var repaginatebutton = Y.one(CSS.REPAGINATECOMMAND);
46         // Set popup header and body.
47         this.header = repaginatebutton.getData(PARAMS.HEADER);
48         this.body = repaginatebutton.getData(PARAMS.FORM);
49         repaginatebutton.on('click', this.display_dialog, this);
50     },
52     display_dialog: function(e) {
53         e.preventDefault();
55         // Configure the popup.
56         var config = {
57             headerContent: this.header,
58             bodyContent: this.body,
59             draggable: true,
60             modal: true,
61             zIndex: 1000,
62             context: [CSS.REPAGINATECOMMAND, 'tr', 'br', ['beforeShow']],
63             centered: false,
64             width: '30em',
65             visible: false,
66             postmethod: 'form',
67             footerContent: null
68         };
70         var popup = {dialog: null};
71         popup.dialog = new M.core.dialogue(config);
72         popup.dialog.show();
73     }
74 });
76 M.mod_quiz = M.mod_quiz || {};
77 M.mod_quiz.repaginate = M.mod_quiz.repaginate || {};
78 M.mod_quiz.repaginate.init = function() {
79     return new POPUP();
80 };