1// Copyright (c) 2010 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
5cr.define('options', function() {
6
7  var OptionsPage = options.OptionsPage;
8
9  /**
10   * CertificateImportErrorOverlay class
11   * Displays a list of certificates and errors.
12   * @class
13   */
14  function CertificateImportErrorOverlay() {
15    OptionsPage.call(this, 'certificateImportErrorOverlay', '',
16                     'certificateImportErrorOverlay');
17  }
18
19  cr.addSingletonGetter(CertificateImportErrorOverlay);
20
21  CertificateImportErrorOverlay.prototype = {
22    // Inherit CertificateImportErrorOverlay from OptionsPage.
23    __proto__: OptionsPage.prototype,
24
25    /**
26     * Initialize the page.
27     */
28    initializePage: function() {
29      // Call base class implementation to start preference initialization.
30      OptionsPage.prototype.initializePage.call(this);
31
32      $('certificateImportErrorOverlayOk').onclick = function(event) {
33        OptionsPage.closeOverlay();
34      };
35    },
36  };
37
38  /**
39   * Show an alert overlay with the given message, button titles, and
40   * callbacks.
41   * @param {string} title The alert title to display to the user.
42   * @param {string} message The alert message to display to the user.
43   * @param {Array} certErrors The list of cert errors.  Each error should have
44   *                           a .name and .error attribute.
45   */
46  CertificateImportErrorOverlay.show = function(title, message, certErrors) {
47    $('certificateImportErrorOverlayTitle').textContent = title;
48    $('certificateImportErrorOverlayMessage').textContent = message;
49
50    ul = $('certificateImportErrorOverlayCertErrors');
51    ul.innerHTML = '';
52    for (var i = 0; i < certErrors.length; ++i) {
53      li = document.createElement("li");
54      li.textContent = localStrings.getStringF('certificateImportErrorFormat',
55                                               certErrors[i].name,
56                                               certErrors[i].error);
57      ul.appendChild(li);
58    }
59
60    OptionsPage.navigateToPage('certificateImportErrorOverlay');
61  }
62
63  // Export
64  return {
65    CertificateImportErrorOverlay: CertificateImportErrorOverlay
66  };
67
68});
69