summaryrefslogtreecommitdiffstats
path: root/browser/components/preferences/dialogs/siteDataRemoveSelected.js
blob: eba8ce5c029a16ac51c45608931a3b8a285894c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

/**
 * This dialog will ask the user to confirm that they really want to delete all
 * site data for a number of hosts.
 **/
let gSiteDataRemoveSelected = {
  init() {
    document.addEventListener("dialogaccept", function() {
      window.arguments[0].allowed = true;
    });
    document.addEventListener("dialogcancel", function() {
      window.arguments[0].allowed = false;
    });

    let list = document.getElementById("removalList");

    let hosts = window.arguments[0].hosts;

    if (!hosts) {
      throw new Error("Must specify hosts option in arguments.");
    }
    let dialog = document.getElementById("SiteDataRemoveSelectedDialog");
    if (hosts.length == 1) {
      dialog.classList.add("single-entry");
      document.l10n.setAttributes(
        document.getElementById("removing-description"),
        "site-data-removing-single-desc",
        {
          baseDomain: hosts[0],
        }
      );
      return;
    }
    dialog.classList.add("multi-entry");
    hosts.sort();
    let fragment = document.createDocumentFragment();
    for (let host of hosts) {
      let listItem = document.createXULElement("richlistitem");
      let label = document.createXULElement("label");
      if (host) {
        label.setAttribute("value", host);
      } else {
        document.l10n.setAttributes(label, "site-data-local-file-host");
      }
      listItem.appendChild(label);
      fragment.appendChild(listItem);
    }
    list.appendChild(fragment);
  },
};