Upstream version 5.34.98.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / chromeos / login / screen_message_box.js
1 // Copyright 2013 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 /**
6  * @fileoverview A simple message box screen implementation.
7  */
8
9 login.createScreen('MessageBoxScreen', 'message-box', function() { return {
10     EXTERNAL_API: [
11       'show'
12     ],
13
14     /**
15      * Callback to run when the screen is dismissed.
16      * @type {function()}
17      */
18     callback_: null,
19
20     /**
21      * Ok button of the message box.
22      * @type {HTMLButtonElement}
23      */
24     okButton_: null,
25
26     /**
27      * Saved hidden status of 'progress-dots'.
28      * @type {boolean}
29      */
30     savedProgressDotsHidden_: null,
31
32     /**
33      * Screen controls in bottom strip.
34      * @type {Array.<HTMLButtonElement>} Buttons to be put in the bottom strip.
35      */
36     get buttons() {
37       var buttons = [];
38
39       this.okButton_ = this.ownerDocument.createElement('button');
40       this.okButton_.addEventListener('click', this.onDismiss_.bind(this));
41       buttons.push(this.okButton_);
42
43       return buttons;
44     },
45
46     get defaultControl() {
47       return this.okButton_;
48     },
49
50     /**
51      * Invoked when user clicks on the ok button.
52      */
53     onDismiss_: function() {
54       this.callback_();
55       $('progress-dots').hidden = this.savedProgressDotsHidden_;
56     },
57
58     /**
59      * Shows the no password warning screen.
60      * @param {string} title Title string of the message box.
61      * @param {string} message Body text of the message box.
62      * @param {string} okLabel Label text for the okay button.
63      * @param {function()} callback The callback to be invoked when the
64      *     screen is dismissed.
65      */
66     show: function(title, message, okLabel, callback) {
67       $('message-box-title').textContent = title;
68       $('message-box-body').textContent = message;
69       this.okButton_.textContent = okLabel;
70       this.callback_ = callback;
71
72       Oobe.showScreen({id: SCREEN_MESSAGE_BOX});
73
74       this.savedProgressDotsHidden_ = $('progress-dots').hidden;
75       $('progress-dots').hidden = true;
76     }
77   };
78 });