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
86
87
88
89
90
91
92
|
/* 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/. */
var { MailServices } = ChromeUtils.import(
"resource:///modules/MailServices.jsm"
);
var markreadElement = null;
var numberElement = null;
var nntpServer = null;
var args = null;
document.addEventListener("dialogaccept", OkButtonCallback);
document.addEventListener("dialogcancel", CancelButtonCallback);
function OnLoad() {
let newsBundle = document.getElementById("bundle_news");
if ("arguments" in window && window.arguments[0]) {
args = window.arguments[0].QueryInterface(Ci.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(Ci.nsINntpIncomingServer);
document.title = newsBundle.getString("downloadHeadersTitlePrefix");
let infotext = newsBundle.getFormattedString("downloadHeadersInfoText", [
args.articleCount,
]);
setText("info", infotext);
let okButtonText = newsBundle.getString("okButtonText");
let okbutton = document.querySelector("dialog").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;
setupDownloadUI(true);
return true;
}
function setText(id, value) {
let element = document.getElementById(id);
if (!element) {
return;
}
while (element.lastChild) {
element.lastChild.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;
}
function CancelButtonCallback() {
args.hitOK = false;
}
function setupDownloadUI(enable) {
let checkbox = document.getElementById("markread");
let numberFld = document.getElementById("number");
checkbox.disabled = !enable;
numberFld.disabled = !enable;
numberFld.select();
}
|