- add sources.
[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 {HTMLButtonElement}
9    */
10   var okButton;
11
12   /**
13    * The cancel <button>.
14    * @type {HTMLButtonElement}
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=} okTitle The title of the OK button. If undefined or empty,
46    *     no button is shown.
47    * @param {string=} cancelTitle The title of the cancel button. If undefined
48    *     or empty, no button is shown.
49    * @param {function=} okCallback A function to be called when the user presses
50    *     the ok button. Can be undefined if |okTitle| is falsey.
51    * @param {function=} cancelCallback A function to be called when the user
52    *     presses the cancel button. Can be undefined if |cancelTitle| is falsey.
53    */
54   function setValues(
55       title, message, okTitle, cancelTitle, okCallback, cancelCallback) {
56     if (typeof title != 'undefined')
57       $('alertOverlayTitle').textContent = title;
58     $('alertOverlayTitle').hidden = typeof title == 'undefined';
59
60     if (typeof message != 'undefined')
61       $('alertOverlayMessage').textContent = message;
62     $('alertOverlayMessage').hidden = typeof message == 'undefined';
63
64     if (okTitle)
65       okButton.textContent = okTitle;
66     okButton.hidden = !okTitle;
67     okButton.clickCallback = okCallback;
68
69     if (cancelTitle)
70       cancelButton.textContent = cancelTitle;
71     cancelButton.hidden = !cancelTitle;
72     cancelButton.clickCallback = cancelCallback;
73   };
74
75   // Export
76   return {
77     initialize: initialize,
78     setValues: setValues
79   };
80 });
81
82 document.addEventListener('DOMContentLoaded', alertOverlay.initialize);