Merge branch 'MDL-43687' of https://github.com/mkassaei/moodle
[moodle.git] / lib / yui / src / notification / js / alert.js
1 /**
2  * A dialogue type designed to display an alert to the user.
3  *
4  * @module moodle-core-notification
5  * @submodule moodle-core-notification-alert
6  */
8 var ALERT_NAME = 'Moodle alert',
9     ALERT;
11 /**
12  * Extends core Dialogue to show the alert dialogue.
13  *
14  * @param {Object} config Object literal specifying the dialogue configuration properties.
15  * @constructor
16  * @class M.core.alert
17  * @extends M.core.dialogue
18  */
19 ALERT = function(config) {
20     config.closeButton = false;
21     ALERT.superclass.constructor.apply(this, [config]);
22 };
23 Y.extend(ALERT, M.core.dialogue, {
24     _enterKeypress : null,
25     initializer : function() {
26         this.publish('complete');
27         var yes = Y.Node.create('<input type="button" id="id_yuialertconfirm-' + this.get('COUNT') + '" value="'+this.get(CONFIRMYES)+'" />'),
28             content = Y.Node.create('<div class="confirmation-dialogue"></div>')
29                     .append(Y.Node.create('<div class="confirmation-message">'+this.get('message')+'</div>'))
30                     .append(Y.Node.create('<div class="confirmation-buttons"></div>')
31                             .append(yes));
32         this.get(BASE).addClass('moodle-dialogue-confirm');
33         this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
34         this.setStdModContent(Y.WidgetStdMod.HEADER,
35                 '<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + this.get(TITLE) + '</h1>', Y.WidgetStdMod.REPLACE);
36         this._enterKeypress = Y.on('key', this.submit, window, 'down:13', this);
37         yes.on('click', this.submit, this);
38     },
39     submit : function() {
40         this._enterKeypress.detach();
41         this.fire('complete');
42         this.hide();
43         this.destroy();
44     }
45 }, {
46     NAME : ALERT_NAME,
47     CSS_PREFIX : DIALOGUE_PREFIX,
48     ATTRS : {
50         /**
51          * The title of the alert.
52          *
53          * @attribute title
54          * @type String
55          * @default 'Alert'
56          */
57         title : {
58             validator : Y.Lang.isString,
59             value : 'Alert'
60         },
62         /**
63          * The message of the alert.
64          *
65          * @attribute message
66          * @type String
67          * @default 'Confirm'
68          */
69         message : {
70             validator : Y.Lang.isString,
71             value : 'Confirm'
72         },
74         /**
75          * The button text to use to accept the alert.
76          *
77          * @attribute yesLabel
78          * @type String
79          * @default 'Ok'
80          */
81         yesLabel : {
82             validator : Y.Lang.isString,
83             setter : function(txt) {
84                 if (!txt) {
85                     txt = 'Ok';
86                 }
87                 return txt;
88             },
89             value : 'Ok'
90         }
91     }
92 });
94 M.core.alert = ALERT;