summaryrefslogtreecommitdiffstats
path: root/mailnews/news/content/downloadheaders.js
blob: bd856ae0de76eef7b65e915c9bb2bb02631419ce (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */

Components.utils.import("resource:///modules/mailServices.js");

var markreadElement = null;
var numberElement = null;

var nntpServer = null;
var args = null;

function OnLoad()
{
  let newsBundle = document.getElementById("bundle_news");

  if ("arguments" in window && window.arguments[0]) {
    args = window.arguments[0]
                 .QueryInterface(Components.interfaces.nsINewsDownloadDialogArgs);
    /* by default, act like the user hit cancel */
    args.hitOK = false;
    /* by default, act like the user did not select download all */
    args.downloadAll = false;


    nntpServer = MailServices.accounts.getIncomingServer(args.serverKey)
               .QueryInterface(Components.interfaces.nsINntpIncomingServer);

    document.title = newsBundle.getString("downloadHeadersTitlePrefix");

    let infotext = newsBundle.getFormattedString("downloadHeadersInfoText",
                                                 [args.articleCount]);
    setText('info', infotext);
    let okButtonText = newsBundle.getString("okButtonText");
    let okbutton = document.documentElement.getButton("accept");
    okbutton.setAttribute("label", okButtonText);
    okbutton.focus();
    setText("newsgroupLabel", args.groupName);
  }

  numberElement = document.getElementById("number");
  numberElement.value = nntpServer.maxArticles;

  markreadElement = document.getElementById("markread");
  markreadElement.checked = nntpServer.markOldRead;

  return true;
}

function setText(id, value) {
  let element = document.getElementById(id);
  if (!element)
    return;

  if (element.hasChildNodes())
    element.firstChild.remove();
  let textNode = document.createTextNode(value);
  element.appendChild(textNode);
}

function OkButtonCallback() {
  nntpServer.maxArticles = numberElement.value;
  nntpServer.markOldRead = markreadElement.checked;

  let radio = document.getElementById("all");
  if (radio)
    args.downloadAll = radio.selected;

  args.hitOK = true;
  return true;
}

function CancelButtonCallback() {
  args.hitOK = false;
  return true;
}

function setupDownloadUI(enable) {
  let checkbox = document.getElementById("markread");
  let numberFld = document.getElementById("number");

  checkbox.disabled = !enable;
  numberFld.disabled = !enable;
}