Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / options / certificate_restore_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('options', function() {
6   /** @const */ var Page = cr.ui.pageManager.Page;
7   /** @const */ var PageManager = cr.ui.pageManager.PageManager;
8
9   /**
10    * CertificateRestoreOverlay class
11    * Encapsulated handling of the 'enter restore password' overlay page.
12    * @class
13    */
14   function CertificateRestoreOverlay() {
15     Page.call(this, 'certificateRestore', '', 'certificateRestoreOverlay');
16   }
17
18   cr.addSingletonGetter(CertificateRestoreOverlay);
19
20   CertificateRestoreOverlay.prototype = {
21     __proto__: Page.prototype,
22
23     /** @override */
24     initializePage: function() {
25       Page.prototype.initializePage.call(this);
26
27       var self = this;
28       $('certificateRestoreCancelButton').onclick = function(event) {
29         self.cancelRestore_();
30       };
31       $('certificateRestoreOkButton').onclick = function(event) {
32         self.finishRestore_();
33       };
34
35       self.clearInputFields_();
36     },
37
38     /** @override */
39     didShowPage: function() {
40       $('certificateRestorePassword').focus();
41     },
42
43     /**
44      * Clears any uncommitted input, and dismisses the overlay.
45      * @private
46      */
47     dismissOverlay_: function() {
48       this.clearInputFields_();
49       PageManager.closeOverlay();
50     },
51
52     /**
53      * Attempt the restore operation.
54      * The overlay will be left up with inputs disabled until the backend
55      * finishes and dismisses it.
56      * @private
57      */
58     finishRestore_: function() {
59       chrome.send('importPersonalCertificatePasswordSelected',
60                   [$('certificateRestorePassword').value]);
61       $('certificateRestoreCancelButton').disabled = true;
62       $('certificateRestoreOkButton').disabled = true;
63     },
64
65     /**
66      * Cancel the restore operation.
67      * @private
68      */
69     cancelRestore_: function() {
70       chrome.send('cancelImportExportCertificate');
71       this.dismissOverlay_();
72     },
73
74     /**
75      * Clears the value of each input field.
76      * @private
77      */
78     clearInputFields_: function() {
79       $('certificateRestorePassword').value = '';
80       $('certificateRestoreCancelButton').disabled = false;
81       $('certificateRestoreOkButton').disabled = false;
82     },
83   };
84
85   CertificateRestoreOverlay.show = function() {
86     CertificateRestoreOverlay.getInstance().clearInputFields_();
87     PageManager.showPageByName('certificateRestore');
88   };
89
90   CertificateRestoreOverlay.dismiss = function() {
91     CertificateRestoreOverlay.getInstance().dismissOverlay_();
92   };
93
94   // Export
95   return {
96     CertificateRestoreOverlay: CertificateRestoreOverlay
97   };
98
99 });