Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / options / reset_profile_settings_overlay.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 cr.define('options', function() {
6   var Page = cr.ui.pageManager.Page;
7
8   var AutomaticSettingsResetBanner = options.AutomaticSettingsResetBanner;
9
10   /**
11    * ResetProfileSettingsOverlay class
12    * Encapsulated handling of the 'Reset Profile Settings' overlay page.
13    * @class
14    */
15   function ResetProfileSettingsOverlay() {
16     Page.call(this, 'resetProfileSettings',
17               loadTimeData.getString('resetProfileSettingsOverlayTabTitle'),
18               'reset-profile-settings-overlay');
19   }
20
21   cr.addSingletonGetter(ResetProfileSettingsOverlay);
22
23   ResetProfileSettingsOverlay.prototype = {
24     // Inherit ResetProfileSettingsOverlay from Page.
25     __proto__: Page.prototype,
26
27     /** @override */
28     initializePage: function() {
29       Page.prototype.initializePage.call(this);
30
31       $('reset-profile-settings-dismiss').onclick = function(event) {
32         ResetProfileSettingsOverlay.dismiss();
33       };
34       $('reset-profile-settings-commit').onclick = function(event) {
35         ResetProfileSettingsOverlay.setResettingState(true);
36         chrome.send('performResetProfileSettings',
37                     [$('send-settings').checked]);
38       };
39       $('expand-feedback').onclick = function(event) {
40         var feedbackTemplate = $('feedback-template');
41         feedbackTemplate.hidden = !feedbackTemplate.hidden;
42       };
43     },
44
45     /** @override */
46     didShowPage: function() {
47       chrome.send('onShowResetProfileDialog');
48     },
49
50     /** @override */
51     didClosePage: function() {
52       chrome.send('onHideResetProfileDialog');
53     },
54   };
55
56   /**
57    * Enables/disables UI elements after/while Chrome is performing a reset.
58    * @param {boolean} state If true, UI elements are disabled.
59    */
60   ResetProfileSettingsOverlay.setResettingState = function(state) {
61     $('reset-profile-settings-throbber').style.visibility =
62         state ? 'visible' : 'hidden';
63     $('reset-profile-settings-dismiss').disabled = state;
64     $('reset-profile-settings-commit').disabled = state;
65   };
66
67   /**
68    * Chrome callback to notify ResetProfileSettingsOverlay that the reset
69    * operation has terminated.
70    */
71   ResetProfileSettingsOverlay.doneResetting = function() {
72     AutomaticSettingsResetBanner.dismiss();
73     ResetProfileSettingsOverlay.dismiss();
74   };
75
76   /**
77    * Dismisses the overlay.
78    */
79   ResetProfileSettingsOverlay.dismiss = function() {
80     PageManager.closeOverlay();
81     ResetProfileSettingsOverlay.setResettingState(false);
82   };
83
84   ResetProfileSettingsOverlay.setFeedbackInfo = function(feedbackListData) {
85     var input = new JsEvalContext(feedbackListData);
86     var output = $('feedback-template');
87     jstProcess(input, output);
88   };
89
90   // Export
91   return {
92     ResetProfileSettingsOverlay: ResetProfileSettingsOverlay
93   };
94 });