Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ui / webui / resources / js / cr / ui / alert_overlay.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 cr.define('alertOverlay', function() {
6   /**
7    * The confirm <button>.
8    * @type {HTMLElement}
9    */
10   var okButton;
11
12   /**
13    * The cancel <button>.
14    * @type {HTMLElement}
15    */
16   var cancelButton;
17
18   function initialize(e) {
19     okButton = $('alertOverlayOk');
20     cancelButton = $('alertOverlayCancel');
21
22     // The callbacks are set to the callbacks provided in show(). Clear them
23     // out when either is clicked.
24     okButton.addEventListener('click', function(e) {
25       assert(okButton.clickCallback);
26
27       okButton.clickCallback(e);
28       okButton.clickCallback = null;
29       cancelButton.clickCallback = null;
30     });
31     cancelButton.addEventListener('click', function(e) {
32       assert(cancelButton.clickCallback);
33
34       cancelButton.clickCallback(e);
35       okButton.clickCallback = null;
36       cancelButton.clickCallback = null;
37     });
38   };
39
40   /**
41    * Updates the alert overlay with the given message, button titles, and
42    * callbacks.
43    * @param {string} title The alert title to display to the user.
44    * @param {string} message The alert message to display to the user.
45    * @param {string=} opt_okTitle The title of the OK button. If undefined or
46    *     empty, no button is shown.
47    * @param {string=} opt_cancelTitle The title of the cancel button. If
48    *     undefined or empty, no button is shown.
49    * @param {function()=} opt_okCallback A function to be called when the user
50    *     presses the ok button. Can be undefined if |opt_okTitle| is falsey.
51    * @param {function()=} opt_cancelCallback A function to be called when the
52    *     user presses the cancel button. Can be undefined if |opt_cancelTitle|
53    *     is falsey.
54    */
55   function setValues(title, message, opt_okTitle, opt_cancelTitle,
56                      opt_okCallback, opt_cancelCallback) {
57     if (typeof title != 'undefined')
58       $('alertOverlayTitle').textContent = title;
59     $('alertOverlayTitle').hidden = typeof title == 'undefined';
60
61     if (typeof message != 'undefined')
62       $('alertOverlayMessage').textContent = message;
63     $('alertOverlayMessage').hidden = typeof message == 'undefined';
64
65     if (opt_okTitle)
66       okButton.textContent = opt_okTitle;
67     okButton.hidden = !opt_okTitle;
68     okButton.clickCallback = opt_okCallback;
69
70     if (opt_cancelTitle)
71       cancelButton.textContent = opt_cancelTitle;
72     cancelButton.hidden = !opt_cancelTitle;
73     cancelButton.clickCallback = opt_cancelCallback;
74   };
75
76   // Export
77   return {
78     initialize: initialize,
79     setValues: setValues
80   };
81 });
82
83 document.addEventListener('DOMContentLoaded', alertOverlay.initialize);