diff --git a/package.json b/package.json index 07dcef4..7b0e020 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "title": "PrintingTools NG", "name": "printing-tools-ng", - "version": "2.1.1", + "version": "2.1.3", "description": "Message Printing Tools NG", "author": "Christopher Leidigh", "engines": { diff --git a/rep-resources/screenshots/2022-06-06-22-39-26 .png b/rep-resources/screenshots/2022-06-06-22-39-26 .png new file mode 100644 index 0000000..73754d1 Binary files /dev/null and b/rep-resources/screenshots/2022-06-06-22-39-26 .png differ diff --git a/rep-resources/screenshots/2022-06-06-22-39-49 .png b/rep-resources/screenshots/2022-06-06-22-39-49 .png new file mode 100644 index 0000000..0a04ad3 Binary files /dev/null and b/rep-resources/screenshots/2022-06-06-22-39-49 .png differ diff --git a/rep-resources/screenshots/2022-06-08-18-39-10 .png b/rep-resources/screenshots/2022-06-08-18-39-10 .png new file mode 100644 index 0000000..6ea737a Binary files /dev/null and b/rep-resources/screenshots/2022-06-08-18-39-10 .png differ diff --git a/scripts/translate-gc.js b/scripts/translate-gc.js index 670729d..dab854d 100644 --- a/scripts/translate-gc.js +++ b/scripts/translate-gc.js @@ -16,7 +16,7 @@ const translate = new Translate({ projectId, key }); // console.debug( translate ); var translationArray = [ // { key: "", text: "" }, - { key: "date_custom.label", text: "Custom"}, + { key: "messageBody", text: "Message Body"}, ]; @@ -407,7 +407,7 @@ function loadTranslationArray(inputFiles, options) { } // manifest files -var options = { +var optionsM = { inputLocaleDir: `./src/_locales/en-US`, outputLocaleDir: "./src/_locales", outputLocaleDirSuffix: "", @@ -416,7 +416,7 @@ var options = { }; // files from array -var options3 = { +var options = { inputLocaleDir: `./src/chrome/locale/en-US/`, outputLocaleDir: "./src/chrome/locale", outputLocaleDirSuffix: "", @@ -450,7 +450,7 @@ let inputFiles = ["printingtoolsng.dtd"]; // 'el', 'pl', 'da', 'pt-PT']; // printingtools -var localeFolders = ['ca', 'da-DK', 'de', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR', 'gl-ES', 'hu-HU', +var localeFolders = ['ja', 'ca', 'da-DK', 'de-DE', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR', 'gl-ES', 'hu-HU', 'hy-AM', 'it-IT', 'ko-KR', 'nl', 'nb-NO', 'pl', 'pt-PT', 'ru', 'sk-SK', 'sl-SI', 'sv-SE', 'uk', 'zh-CN', 'zh-TW']; @@ -460,16 +460,16 @@ var localeFolders = ['ca', 'da-DK', 'de', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR', // var localeFolders = ['ca', 'gl-ES', 'hu-HU', 'hy-AM', // 'sk-SK', 'sl-SI', 'sv-SE']; -//localeFolders = ['zh-TW']; +//localeFolders = ['de-DE']; // localeFolders = ['ru', 'hu-HU', 'hy-AM', 'ko-KR', 'pl', 'da', 'pt-PT']; //localeFile = "settings.json"; // t(); -translateHelpPage(); +//translateHelpPage(); //translatePage(); // translateAll("printingtoolsng.properties", translationArray, options); -//translateAll(inputFiles, translationArray, options3); +translateAll(inputFiles, translationArray, options); //translateAll("mboximport.dtd", translationArray, options); //loadTranslationArray(inputFiles, options); // let inputFiles = ["settings.dtd"]; \ No newline at end of file diff --git a/src/background.js b/src/background.js index fd1d62c..33a1bc2 100644 --- a/src/background.js +++ b/src/background.js @@ -115,6 +115,21 @@ browser.runtime.onInstalled.addListener(async (info) => { messenger.NotifyTools.onNotifyBackground.addListener(async (info) => { switch (info.command) { + case "getCurrentURL": + //console.log("geturl") + // method one: via tabs in focused window + try { + var w = await browser.windows.getAll({populate: true}) + } catch { + return "unknown"; + } + + let cw = w.find(fw => fw.focused) + //console.log(cw) + let url1 = cw.tabs.find(t => t.active).url; + //console.log(url1); + + return url1; case "getAttatchmentList": let rv = await getAttatchmentList(info.messageId); diff --git a/src/chrome/content/printingtoolsng-pengine.js b/src/chrome/content/printingtoolsng-pengine.js index 71e1873..80543be 100644 --- a/src/chrome/content/printingtoolsng-pengine.js +++ b/src/chrome/content/printingtoolsng-pengine.js @@ -104,6 +104,7 @@ var printingtools = { running: false, extRunning: false, externalQ: [], + msgRestoration: {}, /** Prints the messages selected in the thread pane. */ PrintSelectedMessages: async function (options) { @@ -163,7 +164,7 @@ var printingtools = { const br = printingtools.previewDoc.querySelector('br'); - + br.setAttribute("id", "sep1") //console.log(t) // Create new range for the page and main headers const range = new Range(); @@ -239,6 +240,19 @@ var printingtools = { printingtools.showAttatchmentBodyTable(); printingtools.restoreIMGstyle(); + // restore msg fonts + if (printingtools.msgRestoration.msgFontFamilyOrig) { + printingtools.msgRestoration.msgDiv.style.fontFamily = printingtools.msgRestoration.msgFontFamilyOrig; + } + + if (printingtools.msgRestoration.msgFontSizeOrig) { + printingtools.msgRestoration.msgDiv.style.fontSize = printingtools.msgRestoration.msgFontSizeOrig; + } + + printingtools.doc.styleSheets[0].deleteRule(printingtools.msgRestoration.ruleIndex); + + + //console.log("after rest") //console.log(printingtools.doc.documentElement.outerHTML); @@ -454,7 +468,27 @@ var printingtools = { cmd_printng: async function (options) { - //console.log("cmd_printng start" + this.running); + console.log("cmd_printng start" + this.running); + + // only process mail types else use TB print #119 + let url = await window.ptngAddon.notifyTools.notifyBackground({ command: "getCurrentURL" }); + //console.log(url) + + let mailType = false; + if ((url.startsWith("imap") || + url.startsWith("mailbox") || + url.startsWith("unknown") || + url.startsWith("file")) && + !url.includes("&type=")) { + mailType = true; + } else { + mailType = false; + } + + if (!mailType) { + goDoCommand("cmd_print"); + return; + } options = options || {}; @@ -1087,30 +1121,61 @@ var printingtools = { // if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.black_text")) // printingtools.doc.body.removeAttribute("text"); + var hSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.headers.size"); + + var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size"); + if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.style")) { - var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size"); var mFamily = printingtools.getComplexPref("extensions.printingtoolsng.messages.font_family"); - if (printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.style_apply") == 0) { - rule = '* {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}'; - printingtools.doc.styleSheets[0].insertRule(rule, printingtools.doc.styleSheets[0].cssRules.length); + + var rule; + let mozPlainTextDiv = printingtools.doc.querySelector("div.moz-text-plain"); + let mozTextFlowedDiv = printingtools.doc.querySelector("div.moz-text-flowed"); + let mozTextHtmlDiv = printingtools.doc.querySelector("div.moz-text-html"); + + if (mozPlainTextDiv) { + printingtools.msgRestoration.msgDiv = mozPlainTextDiv; + printingtools.msgRestoration.msgFontFamilyOrig = mozPlainTextDiv.style.fontFamily; + printingtools.msgRestoration.msgFontSizeOrig = mozPlainTextDiv.style.fontSize; + mozPlainTextDiv.style.fontFamily = mFamily; + mozPlainTextDiv.style.fontSize = mSize; + } else if (mozTextFlowedDiv) { + printingtools.msgRestoration.msgDiv = mozTextFlowedDiv; + printingtools.msgRestoration.msgFontFamilyOrig = mozTextFlowedDiv.style.fontFamily; + printingtools.msgRestoration.msgFontSizeOrig = mozTextFlowedDiv.style.fontSize; + mozTextFlowedDiv.style.fontFamily = mFamily; + mozTextFlowedDiv.style.fontSize = mSize; + } else { + printingtools.msgRestoration.msgDiv = mozTextHtmlDiv; + printingtools.msgRestoration.msgFontFamilyOrig = null; + printingtools.msgRestoration.msgFontSizeOrig = null; } - else { - if (table1) { - // table1.style.width = "75%"; - table1.style.fontFamily = mFamily; - table1.style.fontSize = mSize; - } - if (table2) { - table2.style.fontFamily = mFamily; - table2.style.fontSize = mSize; - } - if (!noExtHeaders && hpref == 2 && table3) { - table3.style.fontFamily = mFamily; - table3.style.fontSize = mSize; - } + + rule = 'div.moz-text-html * {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}'; + + //rule = '* {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}'; + printingtools.msgRestoration.ruleIndex = printingtools.doc.styleSheets[0].insertRule(rule, printingtools.doc.styleSheets[0].cssRules.length); + + } + + if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.style")) { + var hFamily = printingtools.getComplexPref("extensions.printingtoolsng.headers.font_family"); + if (table1) { + // table1.style.width = "75%"; + table1.style.fontFamily = hFamily; + table1.style.fontSize = hSize; + } + if (table2) { + table2.style.fontFamily = hFamily; + table2.style.fontSize = hSize; + } + if (!noExtHeaders && hpref == 2 && table3) { + table3.style.fontFamily = hFamily; + table3.style.fontSize = hSize; } } + if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.cite.style")) { var cSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.cite.size"); var cColor = printingtools.prefs.getCharPref("extensions.printingtoolsng.cite.color"); @@ -1268,11 +1333,11 @@ var printingtools = { tw.setAttribute("cellspacing", "0"); // md.document.body.appendChild(tw); - if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.style")) { - var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size"); - var mFamily = printingtools.getComplexPref("extensions.printingtoolsng.messages.font_family"); - tw.style.fontFamily = mFamily; - tw.style.fontSize = mSize; + if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.style")) { + var hSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.headers.size"); + var hFamily = printingtools.getComplexPref("extensions.printingtoolsng.headers.font_family"); + tw.style.fontFamily = hFamily; + tw.style.fontSize = hSize; } if (!table3) { @@ -1281,7 +1346,7 @@ var printingtools = { } else { printingtools.insertAfter(tw, table3); - var maxHdrWidth = tw.getBoundingClientRect().width; + var maxHdrWidth = tw.getBoundingClientRect().width + 12; //console.log(maxHdrWidth) } //console.log(printingtools.doc.documentElement.outerHTML); @@ -1293,18 +1358,22 @@ var printingtools = { } else { let locale = Services.locale.appLocaleAsBCP47.split("-")[0]; let alwaysCcBcc = printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always"); + var fs = window.getComputedStyle(table1).getPropertyValue('font-size'); + var fsn = Number(fs.split("px")[0]) switch (locale) { case "de": if (!alwaysCcBcc) { - maxHdrWidth = 130; + maxHdrWidth = 130 + 6*(fsn - 14); + } else { - maxHdrWidth = 110; + maxHdrWidth = 110 + 6*(fsn - 14); } break; default: - maxHdrWidth = 110; + + maxHdrWidth = 110 + 6*(fsn - 14); break; } @@ -1576,12 +1645,12 @@ var printingtools = { var imgs = printingtools.doc.getElementsByTagName("img"); for (i = 0; i < imgs.length; i++) { if (imgs[i].getAttribute("class") != "attIcon") { - + let display = imgs[i].getAttribute("_display"); - + if (display !== undefined && display !== null) { if (display == "") { - + imgs[i].style.display = null; } else { imgs[i].style.display = display; @@ -1959,7 +2028,7 @@ var printingtools = { let fileNames = [...printingtools.previewDoc.querySelectorAll(".moz-mime-attachment-table .moz-mime-attachment-file")].map(elm => elm.innerHTML) let fileSizes = [...printingtools.previewDoc.querySelectorAll(".moz-mime-attachment-table .moz-mime-attachment-size")].map(elm => elm.innerHTML) - + printingtoolsng.attList = fileNames.map((fn, i) => { return { name: fn, size: fileSizes[i] }; }); @@ -2000,7 +2069,13 @@ var printingtools = { attRowTR.appendChild(attTD); attTD = printingtools.doc.createElement("TD"); - attTD.textContent = printingtools.formatBytes(attEntry.size); + // fix for #125 eml files have string sizes for attachments + if(isNaN(attEntry.size)) { + attTD.textContent = attEntry.size; + } else { + attTD.textContent = printingtools.formatBytes(attEntry.size); + } + attRowTR.appendChild(attTD); attTable.appendChild(attRowTR); diff --git a/src/chrome/content/ptng-options.js b/src/chrome/content/ptng-options.js index fb2a1f8..ae211b6 100644 --- a/src/chrome/content/ptng-options.js +++ b/src/chrome/content/ptng-options.js @@ -1,654 +1,687 @@ -/* globals -List, -ListController, - -*/ - -var { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm'); -var { strftime } = ChromeUtils.import("chrome://printingtoolsng/content/strftime.js"); -var PMDstr = Cc["@mozilla.org/supports-string;1"] - .createInstance(Ci.nsISupportsString); - -var strBundleService = Services.strings; - -var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); -var fullPanel; -var fromPreview; -var gheaderList; -var abook = false; - - -function getComplexPref(pref) { - if (prefs.getStringPref) - return prefs.getStringPref(pref); - return prefs.getComplexValue(pref, Ci.nsISupportsString).data; -} - -function setComplexPref(pref, value) { - if (prefs.setStringPref) - prefs.setStringPref(pref, value); - else { - PMDstr.data = value; - prefs.setComplexValue(pref, Ci.nsISupportsString, PMDstr); - } -} - -async function loadHelp(bmark) { - //console.log("help load") - t = await window.opener.ptngAddon.notifyTools.notifyBackground({ command: "openHelp", locale: Services.locale.appLocaleAsBCP47}); -} - -async function initPMDpanel() { - - // cleidigh - //console.debug('initialize panel'); - - var win = Cc["@mozilla.org/appshell/window-mediator;1"] - .getService(Ci.nsIWindowMediator) - .getMostRecentWindow("mail:3pane"); - - - var PTNGVersion = win.printingtoolsng.extension.addonData.version; - - let title = document.getElementById("ptng-options").getAttribute("title"); - - document.getElementById("ptng-options").setAttribute("title", `${title} - v${PTNGVersion}`); - - if (window.arguments) { - if (typeof window.arguments[0] === 'object' || window.arguments[0] === false) { - fromPreview = false; - abook = window.arguments[1] || false; - - } else { - fromPreview = window.arguments[0] || false; - abook = window.arguments[1] || false; - } - } else { - fromPreview = false; - abook = false; - } - // console.debug(fromPreview); - // console.debug(abook); - - var wm = Cc["@mozilla.org/appshell/window-mediator;1"] - .getService(Ci.nsIWindowMediator); - var awin = wm.getMostRecentWindow("mail:addressbook"); - if (awin) { - abook = true; - } - - if (abook) { - document.getElementById("ptng-tbox").selectedIndex = 4; - } - - fullPanel = true; - initPMDabpanel(); - - var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); - - - document.getElementById("useCcBccAlways").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always"); - - if (Array.isArray) { - document.getElementById("dateLoc").collapsed = true; - document.getElementById("dateSpacer").collapsed = true; - document.getElementById("dateShortRadio").label += (" " + bundle.GetStringFromName("dateformatTB5")); - } - - if (prefs.getPrefType("extensions.printingtoolsng.headers.addname") > 0) { - if (prefs.getBoolPref("extensions.printingtoolsng.headers.addname")) - prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 1); - else - prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 0); - prefs.deleteBranch("extensions.printingtoolsng.headers.addname"); - } - document.getElementById("addRdate").checked = prefs.getBoolPref("extensions.printingtoolsng.add_received_date"); - document.getElementById("addNameRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.headers.add_name_type"); - document.getElementById("addNameBox").value = getComplexPref("extensions.printingtoolsng.headers.custom_name_value"); - document.getElementById("PMDdate").checked = prefs.getBoolPref("extensions.printingtoolsng.process.date"); - document.getElementById("PMDattach").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments"); - document.getElementById("PMDborders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.setborders"); - document.getElementById("border_style").value = prefs.getCharPref("extensions.printingtoolsng.headers.border_style"); - - document.getElementById("PMDhide").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.hide"); - - - document.getElementById("useHeadersBkColor").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.use_background_color"); - toggleUseBackgroundColor(document.getElementById("useHeadersBkColor")); - - document.getElementById("headersBkColor").value = prefs.getCharPref("extensions.printingtoolsng.headers.background.color"); - - - document.getElementById("PMDextHide").checked = prefs.getBoolPref("extensions.printingtoolsng.ext_headers.hide"); - document.getElementById("PMDhideImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.hide"); - document.getElementById("resizeImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.resize"); - document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate"); - document.getElementById("PMDmaxchars").value = prefs.getIntPref("extensions.printingtoolsng.headers.maxchars"); - document.getElementById("PMDprogress").checked = !prefs.getBoolPref("print.show_print_progress"); - document.getElementById("PMDhideAtt").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments"); - document.getElementById("InlineAttsListhide").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments_list"); - - document.getElementById("PMDselection").checked = prefs.getBoolPref("extensions.printingtoolsng.print.just_selection"); - document.getElementById("PMDattachIcon").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments_with_icon"); - document.getElementById("num_atts_line").value = prefs.getIntPref("extensions.printingtoolsng.headers.attachments_per_line"); - - //document.getElementById("showButtonPreview").checked = prefs.getBoolPref("extensions.printingtoolsng.show_options_button"); - - document.getElementById("addP7M").checked = prefs.getBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach"); - document.getElementById("radiostyle").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.messages.style_apply"); - document.getElementById("messageStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.style"); - document.getElementById("addFolder").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.addfolder"); - document.getElementById("PMDblack").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.black_text"); - document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate"); - document.getElementById("alignHeaders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.align"); - document.getElementById("dateLongRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.date.long_format_type"); - - document.getElementById("customDate").value = prefs.getStringPref("extensions.printingtoolsng.date.custom_format"); - - var max_pre_len = prefs.getIntPref("extensions.printingtoolsng.pre_max_length"); - if (max_pre_len > 0) { - document.getElementById("PREtruncate").checked = true; - document.getElementById("PREmaxchars").value = max_pre_len; - } - - document.getElementById("PMDsilent").checked = prefs.getBoolPref("extensions.printingtoolsng.print.silent"); - document.getElementById("PMDprogress").checked = prefs.getBoolPref("extensions.printingtoolsng.print.showprogress"); - - var sID = "s" + prefs.getIntPref("extensions.printingtoolsng.cite.size"); - document.getElementById("citeSize").selectedItem = document.getElementById(sID); - var xID = "x" + prefs.getIntPref("extensions.printingtoolsng.messages.size"); - document.getElementById("fontsize").selectedItem = document.getElementById(xID); - - // document.getElementById("citeColor").color = prefs.getCharPref("extensions.printingtoolsng.cite.color"); - document.getElementById("citeColor").value = prefs.getCharPref("extensions.printingtoolsng.cite.color"); - document.getElementById("citeCheck").checked = prefs.getBoolPref("extensions.printingtoolsng.cite.style"); - - var fontlist = document.getElementById("fontlist"); - var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator); - var allfonts = fonten.EnumerateAllFonts({}); - var selindex = 0; - var popup = document.createXULElement("menupopup"); - - for (var j = 0; j < allfonts.length; j++) { - var menuitem = document.createXULElement("menuitem"); - menuitem.setAttribute("value", allfonts[j]); - menuitem.setAttribute("label", allfonts[j]); - if (prefs.getPrefType("extensions.printingtoolsng.messages.font_family") > 0 && - allfonts[j] === getComplexPref("extensions.printingtoolsng.messages.font_family")) { - selindex = j; - } - popup.appendChild(menuitem); - } - fontlist.appendChild(popup); - fontlist.selectedIndex = selindex; - - toggleCiteStyle(document.getElementById("citeCheck")); - toggleMessageStyle(document.getElementById("messageStyle"), false); - toggleAtt(); - - // cleidigh fix - - /* List.js is required to make this table work. */ - - Document.prototype.createElement = function (e) { - var element = document.createElementNS("http://www.w3.org/1999/xhtml", e); - return element; - }; - - var options = { - valueNames: ['headerName', { data: ['id', 'headerToken', 'show'] }], - item: '', - }; - - gheaderList = new List('headersListContainer', options); - gheaderList.controller = new ListController(gheaderList, { onSelectedCB: this.onSelectListRow }); - - // var list = document.getElementById("headersList"); - var order = prefs.getCharPref("extensions.printingtoolsng.headers.order"); - var u = order.split(","); - if (u.length < 7) - u[6] = "%r3"; - - gheaderList.clear(); - for (var i = 0; i < u.length; i++) { - var lab = getHeaderLabel(u[i].replace('!', '')); - let show = !u[i].startsWith('!'); - - gheaderList.add({ headerName: lab, headerToken: u[i], id: i + 1, show: show }); - } - // console.debug(gheaderList.listElement.outerHTML); - gheaderList.controller.selectRowByDataId('1'); - - // Services.console.logStringMessage("printingtools: call printer setup"); - setPrinterList(); - - document.getElementById("debug-options").value = prefs.getCharPref("extensions.printingtoolsng.debug.options"); - - document.getElementById("useCcBccAlways").focus; -} - -async function setPrinterList() { - var outputPrinter = null; - try { - outputPrinter = prefs.getCharPref("print_printer"); - } catch (error) { - - } - var printerListMenu = document.getElementById("OutputPrinter"); - var selindex = 0; - var popup = document.createXULElement("menupopup"); - - // change for 91 - var printerList = Cc["@mozilla.org/gfx/printerlist;1"] - .getService(Ci.nsIPrinterList); - - // Services.console.logStringMessage("printingtools: print_printer " + outputPrinter); - var printers = await printerList.printers; - // var printers = []; - var i = 0; - // while(pe.hasMore()) { - for (let printer of printers) { - printer.QueryInterface(Ci.nsIPrinter); - let printerName = printer.name; - var menuitem = document.createXULElement("menuitem"); - - // Services.console.logStringMessage("printingtools: printerName: " + printerName); - // printers.push(printerName); - menuitem.setAttribute("value", printerName); - menuitem.setAttribute("label", printerName); - popup.appendChild(menuitem); - if (printerName === outputPrinter) { - selindex = i; - // Services.console.logStringMessage("printingtools: selected: " + outputPrinter); - } - i++; - } - - var PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"] - .getService(Ci.nsIPrintSettingsService); - - - printerListMenu.appendChild(popup); - printerListMenu.selectedIndex = selindex; - // Services.console.logStringMessage("printingtools: printerName index: " + selindex); -} - -function initPMDabpanel() { - - document.getElementById("multipleCards").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards"); - document.getElementById("PMDabmaxcompact").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.max_compact"); - document.getElementById("PMDabsmallfont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size"); - document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family"); - if (String.trim) - document.getElementById("PMDabnohead").collapsed = true; - else - document.getElementById("PMDabnohead").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.hide_header_card"); - document.getElementById("PMDabjustaddress").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses"); - document.getElementById("PMDcutnotes").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.cut_notes"); - document.getElementById("PMDaddname").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.add_ab_name"); - - var fontlist = document.getElementById("ABfontlist"); - var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator); - var allfonts = fonten.EnumerateAllFonts({}); - var selindex = 0; - var popup = document.createXULElement("menupopup"); - - for (var j = 0; j < allfonts.length; j++) { - var menuitem = document.createXULElement("menuitem"); - menuitem.setAttribute("value", allfonts[j]); - menuitem.setAttribute("label", allfonts[j]); - if (prefs.getPrefType("extensions.printingtoolsng.addressbook.font_family") > 0 && - allfonts[j] === getComplexPref("extensions.printingtoolsng.addressbook.font_family")) { - selindex = j; - } - popup.appendChild(menuitem); - } - fontlist.appendChild(popup); - fontlist.selectedIndex = selindex; - - - document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family"); - var fontsize = prefs.getIntPref("extensions.printingtoolsng.addressbook.custom_font_size"); - if (fontsize > 7 && fontsize < 19) - document.getElementById("ABfontsize").selectedIndex = fontsize - 8; - else - document.getElementById("ABfontsize").selectedIndex = 2; - -} - -function onSelectListRow(event, data_id) { - if (event.type === 'onclick') { - // miczThunderStatsPrefPanel.onNBDItemClick(event, data_id); - - } else { - // miczThunderStatsPrefPanel.updateNBDButtons(window); - } -} - -function getHeaderLabel(string) { - - var bundle; - //console.log(Services.locale.appLocaleAsBCP47) - if (Services.locale.appLocaleAsBCP47 === "ja") { - bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-ja.properties"); - } else if (Services.locale.appLocaleAsBCP47 === "zh-CN") { - - bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh.properties"); -} else if (Services.locale.appLocaleAsBCP47 === "zh-TW") { - - bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh-tw.properties"); - } else { - bundle = strBundleService.createBundle("chrome://messenger/locale/mime.properties"); - } - - var bundle2 = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); - switch (string) { - case "%a": - return bundle2.GetStringFromName("attachments"); - case "%s": - return bundle.GetStringFromID(1000); - case "%f": - return bundle.GetStringFromID(1009); - case "%r1": - return bundle.GetStringFromID(1012); - case "%r2": - if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) { - return "Cc" - } - return bundle.GetStringFromID(1013); - case "%r3": - if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) { - return "Bcc" - } - return bundle.GetStringFromID(1023); - case "%d": - return bundle.GetStringFromID(1007); - default: - return null; - } -} - -function savePMDprefs() { - //console.debug('save options'); - - prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value); - prefs.setCharPref("print_printer", ""); - prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value); - //Services.console.logStringMessage("printingtools: print_printer " + document.getElementById("OutputPrinter").value); - - prefs.setBoolPref("extensions.printingtoolsng.headers.useCcBcc_always", document.getElementById("useCcBccAlways").checked); - - var max_pre_len; - if (document.getElementById("PREtruncate").checked) - max_pre_len = document.getElementById("PREmaxchars").value; - else - max_pre_len = -1; - - prefs.setIntPref("extensions.printingtoolsng.pre_max_length", max_pre_len); - prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", document.getElementById("addNameRG").selectedIndex); - prefs.setBoolPref("extensions.printingtoolsng.process.date", document.getElementById("PMDdate").checked); - prefs.setBoolPref("extensions.printingtoolsng.process.attachments", document.getElementById("PMDattach").checked); - prefs.setBoolPref("extensions.printingtoolsng.headers.setborders", document.getElementById("PMDborders").checked); - prefs.setCharPref("extensions.printingtoolsng.headers.border_style", document.getElementById("border_style").value); - - prefs.setBoolPref("extensions.printingtoolsng.headers.hide", document.getElementById("PMDhide").checked); - prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value); - prefs.setBoolPref("extensions.printingtoolsng.ext_headers.hide", document.getElementById("PMDextHide").checked); - prefs.setBoolPref("extensions.printingtoolsng.images.hide", document.getElementById("PMDhideImgs").checked); - prefs.setBoolPref("extensions.printingtoolsng.images.resize", document.getElementById("resizeImgs").checked); - prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked); - prefs.setIntPref("extensions.printingtoolsng.headers.maxchars", document.getElementById("PMDmaxchars").value); - prefs.setBoolPref("extensions.printingtoolsng.print.silent", document.getElementById("PMDsilent").checked); - prefs.setBoolPref("extensions.printingtoolsng.print.showprogress", !document.getElementById("PMDprogress").checked); - prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked); - prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments", document.getElementById("PMDhideAtt").checked); - prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments_list", document.getElementById("InlineAttsListhide").checked); - prefs.setBoolPref("extensions.printingtoolsng.print.just_selection", document.getElementById("PMDselection").checked); - prefs.setBoolPref("extensions.printingtoolsng.headers.addfolder", document.getElementById("addFolder").checked); - prefs.setBoolPref("extensions.printingtoolsng.messages.black_text", document.getElementById("PMDblack").checked); - prefs.setBoolPref("extensions.printingtoolsng.headers.align", document.getElementById("alignHeaders").checked); - - //prefs.setBoolPref("extensions.printingtoolsng.show_options_button", document.getElementById("showButtonPreview").checked); - - prefs.setBoolPref("extensions.printingtoolsng.add_received_date", document.getElementById("addRdate").checked); - - - prefs.setIntPref("extensions.printingtoolsng.date.long_format_type", document.getElementById("dateLongRG").selectedIndex); - - prefs.setStringPref("extensions.printingtoolsng.date.custom_format", document.getElementById("customDate").value); - var size = document.getElementById("citeSize").selectedItem.id.replace("s", ""); - prefs.setIntPref("extensions.printingtoolsng.cite.size", size); - prefs.setCharPref("extensions.printingtoolsng.cite.color", document.getElementById("citeColor").value); - prefs.setBoolPref("extensions.printingtoolsng.cite.style", document.getElementById("citeCheck").checked); - prefs.setBoolPref("extensions.printingtoolsng.process.attachments_with_icon", document.getElementById("PMDattachIcon").checked); - - prefs.setIntPref("extensions.printingtoolsng.headers.attachments_per_line", document.getElementById("num_atts_line").selectedItem.value); - - var fontlistchild = document.getElementById("fontlist").getElementsByTagName("menuitem"); - var selfont = fontlistchild[document.getElementById("fontlist").selectedIndex].getAttribute("value"); - setComplexPref("extensions.printingtoolsng.messages.font_family", selfont); - setComplexPref("extensions.printingtoolsng.headers.custom_name_value", document.getElementById("addNameBox").value); - - prefs.setBoolPref("extensions.printingtoolsng.messages.style", document.getElementById("messageStyle").checked); - size = document.getElementById("fontsize").selectedItem.id.replace("x", ""); - prefs.setIntPref("extensions.printingtoolsng.messages.size", size); - prefs.setIntPref("extensions.printingtoolsng.messages.style_apply", document.getElementById("radiostyle").selectedIndex); - - let ubkc = document.getElementById("useHeadersBkColor").checked; - prefs.setBoolPref("extensions.printingtoolsng.headers.use_background_color", ubkc); - - prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value); - - - var list = document.getElementById("headersList"); - var val = ""; - for (var i = 0; i < 6; i++) { - var item = list.rows.item(i); - val = val + item.getAttribute("data-headerToken") + ","; - } - val = val + list.rows.item(6).getAttribute("data-headerToken"); - prefs.setCharPref("extensions.printingtoolsng.headers.order", val); - prefs.setBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach", document.getElementById("addP7M").checked); - if (fromPreview) { - // console.debug('closing from preview'); - try { - opener.close(); - var wm = Cc["@mozilla.org/appshell/window-mediator;1"] - .getService(Ci.nsIWindowMediator); - var win; - if (abook) { - win = wm.getMostRecentWindow("mail:addressbook"); - win.AbPrintPreviewAddressBook(); - } else { - win = wm.getMostRecentWindow("mail:3pane"); - win.PrintEnginePrintPreview(); - } - } catch (e) { - console.debug(e); - } - } - - prefs.setCharPref("extensions.printingtoolsng.debug.options", document.getElementById("debug-options").value); - -} - -function savePMDabprefs(fullpanel) { - - prefs.setBoolPref("extensions.printingtoolsng.addressbook.max_compact", document.getElementById("PMDabmaxcompact").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size", document.getElementById("PMDabsmallfont").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.hide_header_card", document.getElementById("PMDabnohead").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses", document.getElementById("PMDabjustaddress").checked); - prefs.setIntPref("extensions.printingtoolsng.addressbook.custom_font_size", document.getElementById("ABfontsize").selectedItem.label); - - var fontlistchild = document.getElementById("ABfontlist").getElementsByTagName("menuitem"); - var selfont = fontlistchild[document.getElementById("ABfontlist").selectedIndex].getAttribute("value"); - setComplexPref("extensions.printingtoolsng.addressbook.font_family", selfont); - - prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family", document.getElementById("ABcustomFont").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.cut_notes", document.getElementById("PMDcutnotes").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.add_ab_name", document.getElementById("PMDaddname").checked); - prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards", document.getElementById("multipleCards").checked); - if (document.getElementById("PMDabsmallfont") && opener.printingtools) { - var isContact = opener.printingtools.isContact; - opener.close(); - var wm = Cc["@mozilla.org/appshell/window-mediator;1"] - .getService(Ci.nsIWindowMediator); - var win = wm.getMostRecentWindow("mail:addressbook"); - if (!win) - return; - if (!isContact) { - // console.debug('address.Preview'); - win.AbPrintPreviewAddressBook(); - } - else - win.AbPrintPreviewCard(); - } -} - - -function move2(offset) { - var list = document.getElementById("headersList"); - var pos = list.selectedIndex; - if ((pos === 0 && offset > 0) || (pos === (list.itemCount - 1) && offset < 0)) - return; - var label = list.currentItem.label; - var value = list.currentItem.value; - var newpos = pos - offset; - var item = list.removeItemAt(list.currentIndex); - var newitem = list.insertItemAt(newpos, label, value); - list.selectedIndex = newpos; -} - -function dumpList() { - var listElement = gheaderList.list; - var selectedID = Number(gheaderList.controller.getSelectedRowDataId()); - - [...listElement.rows].forEach(element => { - let v = element.firstChild.textContent; - let i = element.getAttribute("data-id") - // Services.console.logStringMessage(`${v} ${i}`); - }); -} - -function move(offset) { - var listElement = gheaderList.list; - var selectedID = Number(gheaderList.controller.getSelectedRowDataId()); - // Services.console.logStringMessage(`move ${offset} ${selectedID}`); - // Services.console.logStringMessage(listElement.outerHTML); - dumpList(); - - if (selectedID === 1 && offset === 1 || selectedID === listElement.rows.length && offset === -1) { - return; - } - - var selectedElement = gheaderList.controller.getSelectedRowElement(); - var swapElement; - if (offset === 1) { - swapElement = selectedElement.previousElementSibling; - - } else { - swapElement = selectedElement.nextElementSibling; - } - - selectedElement.remove(); - if (offset === 1) { - listElement.insertBefore(selectedElement, swapElement); - } else { - swapElement.parentNode.insertBefore(selectedElement, swapElement.nextSibling); - } - - // Services.console.logStringMessage(listElement.outerHTML); - dumpList(); - - // Services.console.logStringMessage(`swap ${swapElement.getAttribute("data-id")}`); - if (offset === 1) { - selectedElement.setAttribute("data-id", selectedID - 1); - swapElement.setAttribute("data-id", selectedID); - gheaderList.controller.selectRowByDataId(selectedID - 1); - } else { - selectedElement.setAttribute("data-id", selectedID + 1); - swapElement.setAttribute("data-id", selectedID); - - gheaderList.controller.selectRowByDataId(selectedID + 1); - } - gheaderList.reIndex(); - // Services.console.logStringMessage(listElement.outerHTML); - dumpList(); -} - -function toggleHeaderShow() { - // Services.console.logStringMessage("toggle show"); - - // Services.console.logStringMessage(gheaderList.list.outerHTML); - dumpList(); - var selectedElement = gheaderList.controller.getSelectedRowElement(); - var idx = Number(selectedElement.getAttribute("data-id")) - 1; - var s = selectedElement.getAttribute("data-show"); - // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`); - s = ((s === "true") ? "false" : "true"); - // s = !s; - // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`); - var t = gheaderList.items[idx].values().headerToken; - t = ((s === "true") ? t.replace('!', '') : '!' + t); - // Services.console.logStringMessage(`after just ${s} ${t}`); - gheaderList.items[idx].values({ "show": s, "headerToken": t }); - - // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s} ${t}`); - // Services.console.logStringMessage(gheaderList.list.outerHTML); - dumpList(); - // if (s) { - - // } else { - - // } -} - -function toggleUseBackgroundColor(el) { - document.getElementById("headersBkColor").disabled = !el.checked; -} - -function toggleCiteStyle(el) { - document.getElementById("citeColor").disabled = !el.checked; - document.getElementById("citeSize").disabled = !el.checked; -} - -function toggleMessageStyle(el, notify) { - document.getElementById("fontlist").disabled = !el.checked; - document.getElementById("fontsize").disabled = !el.checked; - document.getElementById("radiostyle").disabled = !el.checked; - var strBundleService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService); - var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); - if (document.getElementById("messageStyle").checked && notify) { - // alert("The system option:\n Allow messages to use other fonts\nhas been enabled"); - alert(bundle.GetStringFromName("allowFonts")); - prefs.setIntPref("browser.display.use_document_fonts", 1); - } else if (notify) { - // alert("The system option:\n Allow messages to use other fonts\nhas been disabled"); - alert(bundle.GetStringFromName("disallowFonts")); - prefs.setIntPref("browser.display.use_document_fonts", 0); - } -} - -function toggleAtt() { - document.getElementById("PMDattachIcon").disabled = !document.getElementById("PMDattach").checked; - document.getElementById("addP7M").disabled = !document.getElementById("PMDattach").checked; - document.getElementById("num_atts_line").disabled = !document.getElementById("PMDattach").checked; -} - -function toggleDate() { - document.getElementById("dateLongRG").disabled = !document.getElementById("PMDdate").checked; -} - - -document.addEventListener("dialogaccept", function (event) { - savePMDprefs(); - -}); - -window.addEventListener("load", function (event) { - initPMDpanel(); - document.getElementById("useCcBccAlways").focus; - document.getElementById("useCcBccAlways").selected; -}); - - +/* globals +List, +ListController, + +*/ + +var { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm'); +var { strftime } = ChromeUtils.import("chrome://printingtoolsng/content/strftime.js"); +var PMDstr = Cc["@mozilla.org/supports-string;1"] + .createInstance(Ci.nsISupportsString); + +var strBundleService = Services.strings; + +var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); +var fullPanel; +var fromPreview; +var gheaderList; +var abook = false; + + +function getComplexPref(pref) { + if (prefs.getStringPref) + return prefs.getStringPref(pref); + return prefs.getComplexValue(pref, Ci.nsISupportsString).data; +} + +function setComplexPref(pref, value) { + if (prefs.setStringPref) + prefs.setStringPref(pref, value); + else { + PMDstr.data = value; + prefs.setComplexValue(pref, Ci.nsISupportsString, PMDstr); + } +} + +async function loadHelp(bmark) { + //console.log("help load") + t = await window.opener.ptngAddon.notifyTools.notifyBackground({ command: "openHelp", locale: Services.locale.appLocaleAsBCP47}); +} + +async function initPMDpanel() { + + // cleidigh + //console.debug('initialize panel'); + + var win = Cc["@mozilla.org/appshell/window-mediator;1"] + .getService(Ci.nsIWindowMediator) + .getMostRecentWindow("mail:3pane"); + + + var PTNGVersion = win.printingtoolsng.extension.addonData.version; + + let title = document.getElementById("ptng-options").getAttribute("title"); + + document.getElementById("ptng-options").setAttribute("title", `${title} - v${PTNGVersion}`); + + if (window.arguments) { + if (typeof window.arguments[0] === 'object' || window.arguments[0] === false) { + fromPreview = false; + abook = window.arguments[1] || false; + + } else { + fromPreview = window.arguments[0] || false; + abook = window.arguments[1] || false; + } + } else { + fromPreview = false; + abook = false; + } + // console.debug(fromPreview); + // console.debug(abook); + + var wm = Cc["@mozilla.org/appshell/window-mediator;1"] + .getService(Ci.nsIWindowMediator); + var awin = wm.getMostRecentWindow("mail:addressbook"); + if (awin) { + abook = true; + } + + if (abook) { + document.getElementById("ptng-tbox").selectedIndex = 4; + } + + fullPanel = true; + initPMDabpanel(); + + var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); + + + document.getElementById("useCcBccAlways").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always"); + + if (Array.isArray) { + document.getElementById("dateLoc").collapsed = true; + document.getElementById("dateSpacer").collapsed = true; + document.getElementById("dateShortRadio").label += (" " + bundle.GetStringFromName("dateformatTB5")); + } + + if (prefs.getPrefType("extensions.printingtoolsng.headers.addname") > 0) { + if (prefs.getBoolPref("extensions.printingtoolsng.headers.addname")) + prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 1); + else + prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 0); + prefs.deleteBranch("extensions.printingtoolsng.headers.addname"); + } + document.getElementById("addRdate").checked = prefs.getBoolPref("extensions.printingtoolsng.add_received_date"); + document.getElementById("addNameRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.headers.add_name_type"); + document.getElementById("addNameBox").value = getComplexPref("extensions.printingtoolsng.headers.custom_name_value"); + document.getElementById("PMDdate").checked = prefs.getBoolPref("extensions.printingtoolsng.process.date"); + document.getElementById("PMDattach").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments"); + document.getElementById("PMDborders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.setborders"); + document.getElementById("border_style").value = prefs.getCharPref("extensions.printingtoolsng.headers.border_style"); + + document.getElementById("PMDhide").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.hide"); + + + document.getElementById("useHeadersBkColor").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.use_background_color"); + toggleUseBackgroundColor(document.getElementById("useHeadersBkColor")); + + document.getElementById("headersBkColor").value = prefs.getCharPref("extensions.printingtoolsng.headers.background.color"); + + + document.getElementById("PMDextHide").checked = prefs.getBoolPref("extensions.printingtoolsng.ext_headers.hide"); + document.getElementById("PMDhideImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.hide"); + document.getElementById("resizeImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.resize"); + document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate"); + document.getElementById("PMDmaxchars").value = prefs.getIntPref("extensions.printingtoolsng.headers.maxchars"); + + document.getElementById("PMDhideAtt").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments"); + document.getElementById("InlineAttsListhide").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments_list"); + + document.getElementById("PMDselection").checked = prefs.getBoolPref("extensions.printingtoolsng.print.just_selection"); + document.getElementById("PMDattachIcon").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments_with_icon"); + document.getElementById("num_atts_line").value = prefs.getIntPref("extensions.printingtoolsng.headers.attachments_per_line"); + + document.getElementById("addP7M").checked = prefs.getBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach"); + document.getElementById("headersStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.style"); + document.getElementById("messageStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.style"); + document.getElementById("addFolder").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.addfolder"); + document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate"); + document.getElementById("alignHeaders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.align"); + document.getElementById("dateLongRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.date.long_format_type"); + + document.getElementById("customDate").value = prefs.getStringPref("extensions.printingtoolsng.date.custom_format"); + + var max_pre_len = prefs.getIntPref("extensions.printingtoolsng.pre_max_length"); + if (max_pre_len > 0) { + document.getElementById("PREtruncate").checked = true; + document.getElementById("PREmaxchars").value = max_pre_len; + } + + document.getElementById("PMDsilent").checked = prefs.getBoolPref("extensions.printingtoolsng.print.silent"); + + var sID = "s" + prefs.getIntPref("extensions.printingtoolsng.cite.size"); + document.getElementById("citeSize").selectedItem = document.getElementById(sID); + var hID = "h" + prefs.getIntPref("extensions.printingtoolsng.headers.size"); + document.getElementById("hdrfontsize").selectedItem = document.getElementById(hID); + + + var xID = "x" + prefs.getIntPref("extensions.printingtoolsng.messages.size"); + document.getElementById("fontsize").selectedItem = document.getElementById(xID); + + // document.getElementById("citeColor").color = prefs.getCharPref("extensions.printingtoolsng.cite.color"); + document.getElementById("citeColor").value = prefs.getCharPref("extensions.printingtoolsng.cite.color"); + document.getElementById("citeCheck").checked = prefs.getBoolPref("extensions.printingtoolsng.cite.style"); + + var hdrfontlist = document.getElementById("hdrfontlist"); + var fontlist = document.getElementById("fontlist"); + var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator); + var allfonts = fonten.EnumerateAllFonts({}); + var selindex = 0; + var popup = document.createXULElement("menupopup"); + + for (var j = 0; j < allfonts.length; j++) { + var menuitem = document.createXULElement("menuitem"); + menuitem.setAttribute("value", allfonts[j]); + menuitem.setAttribute("label", allfonts[j]); + if (prefs.getPrefType("extensions.printingtoolsng.messages.font_family") > 0 && + allfonts[j] === getComplexPref("extensions.printingtoolsng.messages.font_family")) { + selindex = j; + } + popup.appendChild(menuitem); + } + fontlist.appendChild(popup); + fontlist.selectedIndex = selindex; + + var hdrselindex = 0; + var hdrpopup = document.createXULElement("menupopup"); + + for (var j = 0; j < allfonts.length; j++) { + let menuitem = document.createXULElement("menuitem"); + menuitem.setAttribute("value", allfonts[j]); + menuitem.setAttribute("label", allfonts[j]); + if (prefs.getPrefType("extensions.printingtoolsng.headers.font_family") > 0 && + allfonts[j] === getComplexPref("extensions.printingtoolsng.headers.font_family")) { + hdrselindex = j; + } + hdrpopup.appendChild(menuitem); + } + hdrfontlist.appendChild(hdrpopup); + hdrfontlist.selectedIndex = hdrselindex; + + + toggleCiteStyle(document.getElementById("citeCheck")); + toggleHeadersStyle(document.getElementById("headersStyle"), false); + toggleMessageStyle(document.getElementById("messageStyle"), false); + toggleAtt(); + + // cleidigh fix + + /* List.js is required to make this table work. */ + + Document.prototype.createElement = function (e) { + var element = document.createElementNS("http://www.w3.org/1999/xhtml", e); + return element; + }; + + var options = { + valueNames: ['headerName', { data: ['id', 'headerToken', 'show'] }], + item: '', + }; + + gheaderList = new List('headersListContainer', options); + gheaderList.controller = new ListController(gheaderList, { onSelectedCB: this.onSelectListRow }); + + // var list = document.getElementById("headersList"); + var order = prefs.getCharPref("extensions.printingtoolsng.headers.order"); + var u = order.split(","); + if (u.length < 7) + u[6] = "%r3"; + + gheaderList.clear(); + for (var i = 0; i < u.length; i++) { + var lab = getHeaderLabel(u[i].replace('!', '')); + let show = !u[i].startsWith('!'); + + gheaderList.add({ headerName: lab, headerToken: u[i], id: i + 1, show: show }); + } + // console.debug(gheaderList.listElement.outerHTML); + gheaderList.controller.selectRowByDataId('1'); + + // Services.console.logStringMessage("printingtools: call printer setup"); + setPrinterList(); + + document.getElementById("debug-options").value = prefs.getCharPref("extensions.printingtoolsng.debug.options"); + + document.getElementById("useCcBccAlways").focus; +} + +async function setPrinterList() { + var outputPrinter = null; + try { + outputPrinter = prefs.getCharPref("print_printer"); + } catch (error) { + + } + var printerListMenu = document.getElementById("OutputPrinter"); + var selindex = 0; + var popup = document.createXULElement("menupopup"); + + // change for 91 + var printerList = Cc["@mozilla.org/gfx/printerlist;1"] + .getService(Ci.nsIPrinterList); + + // Services.console.logStringMessage("printingtools: print_printer " + outputPrinter); + var printers = await printerList.printers; + // var printers = []; + var i = 0; + // while(pe.hasMore()) { + for (let printer of printers) { + printer.QueryInterface(Ci.nsIPrinter); + let printerName = printer.name; + var menuitem = document.createXULElement("menuitem"); + + // Services.console.logStringMessage("printingtools: printerName: " + printerName); + // printers.push(printerName); + menuitem.setAttribute("value", printerName); + menuitem.setAttribute("label", printerName); + popup.appendChild(menuitem); + if (printerName === outputPrinter) { + selindex = i; + // Services.console.logStringMessage("printingtools: selected: " + outputPrinter); + } + i++; + } + + var PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"] + .getService(Ci.nsIPrintSettingsService); + + + printerListMenu.appendChild(popup); + printerListMenu.selectedIndex = selindex; + // Services.console.logStringMessage("printingtools: printerName index: " + selindex); +} + +function initPMDabpanel() { + + document.getElementById("multipleCards").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards"); + document.getElementById("PMDabmaxcompact").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.max_compact"); + document.getElementById("PMDabsmallfont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size"); + document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family"); + if (String.trim) + document.getElementById("PMDabnohead").collapsed = true; + else + document.getElementById("PMDabnohead").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.hide_header_card"); + document.getElementById("PMDabjustaddress").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses"); + document.getElementById("PMDcutnotes").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.cut_notes"); + document.getElementById("PMDaddname").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.add_ab_name"); + + var fontlist = document.getElementById("ABfontlist"); + var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator); + var allfonts = fonten.EnumerateAllFonts({}); + var selindex = 0; + var popup = document.createXULElement("menupopup"); + + for (var j = 0; j < allfonts.length; j++) { + var menuitem = document.createXULElement("menuitem"); + menuitem.setAttribute("value", allfonts[j]); + menuitem.setAttribute("label", allfonts[j]); + if (prefs.getPrefType("extensions.printingtoolsng.addressbook.font_family") > 0 && + allfonts[j] === getComplexPref("extensions.printingtoolsng.addressbook.font_family")) { + selindex = j; + } + popup.appendChild(menuitem); + } + fontlist.appendChild(popup); + fontlist.selectedIndex = selindex; + + + document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family"); + var fontsize = prefs.getIntPref("extensions.printingtoolsng.addressbook.custom_font_size"); + if (fontsize > 7 && fontsize < 19) + document.getElementById("ABfontsize").selectedIndex = fontsize - 8; + else + document.getElementById("ABfontsize").selectedIndex = 2; + +} + +function onSelectListRow(event, data_id) { + if (event.type === 'onclick') { + // miczThunderStatsPrefPanel.onNBDItemClick(event, data_id); + + } else { + // miczThunderStatsPrefPanel.updateNBDButtons(window); + } +} + +function getHeaderLabel(string) { + + var bundle; + //console.log(Services.locale.appLocaleAsBCP47) + if (Services.locale.appLocaleAsBCP47 === "ja") { + bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-ja.properties"); + } else if (Services.locale.appLocaleAsBCP47 === "zh-CN") { + + bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh.properties"); +} else if (Services.locale.appLocaleAsBCP47 === "zh-TW") { + + bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh-tw.properties"); + } else { + bundle = strBundleService.createBundle("chrome://messenger/locale/mime.properties"); + } + + var bundle2 = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); + switch (string) { + case "%a": + return bundle2.GetStringFromName("attachments"); + case "%s": + return bundle.GetStringFromID(1000); + case "%f": + return bundle.GetStringFromID(1009); + case "%r1": + return bundle.GetStringFromID(1012); + case "%r2": + if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) { + return "Cc" + } + return bundle.GetStringFromID(1013); + case "%r3": + if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) { + return "Bcc" + } + return bundle.GetStringFromID(1023); + case "%d": + return bundle.GetStringFromID(1007); + default: + return null; + } +} + +function savePMDprefs() { + //console.debug('save options'); + + prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value); + prefs.setCharPref("print_printer", ""); + prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value); + //Services.console.logStringMessage("printingtools: print_printer " + document.getElementById("OutputPrinter").value); + + prefs.setBoolPref("extensions.printingtoolsng.headers.useCcBcc_always", document.getElementById("useCcBccAlways").checked); + + var max_pre_len; + if (document.getElementById("PREtruncate").checked) + max_pre_len = document.getElementById("PREmaxchars").value; + else + max_pre_len = -1; + + prefs.setIntPref("extensions.printingtoolsng.pre_max_length", max_pre_len); + prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", document.getElementById("addNameRG").selectedIndex); + prefs.setBoolPref("extensions.printingtoolsng.process.date", document.getElementById("PMDdate").checked); + prefs.setBoolPref("extensions.printingtoolsng.process.attachments", document.getElementById("PMDattach").checked); + prefs.setBoolPref("extensions.printingtoolsng.headers.setborders", document.getElementById("PMDborders").checked); + prefs.setCharPref("extensions.printingtoolsng.headers.border_style", document.getElementById("border_style").value); + + prefs.setBoolPref("extensions.printingtoolsng.headers.hide", document.getElementById("PMDhide").checked); + prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value); + prefs.setBoolPref("extensions.printingtoolsng.ext_headers.hide", document.getElementById("PMDextHide").checked); + prefs.setBoolPref("extensions.printingtoolsng.images.hide", document.getElementById("PMDhideImgs").checked); + prefs.setBoolPref("extensions.printingtoolsng.images.resize", document.getElementById("resizeImgs").checked); + prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked); + prefs.setIntPref("extensions.printingtoolsng.headers.maxchars", document.getElementById("PMDmaxchars").value); + prefs.setBoolPref("extensions.printingtoolsng.print.silent", document.getElementById("PMDsilent").checked); + prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked); + prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments", document.getElementById("PMDhideAtt").checked); + prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments_list", document.getElementById("InlineAttsListhide").checked); + prefs.setBoolPref("extensions.printingtoolsng.print.just_selection", document.getElementById("PMDselection").checked); + prefs.setBoolPref("extensions.printingtoolsng.headers.addfolder", document.getElementById("addFolder").checked); + prefs.setBoolPref("extensions.printingtoolsng.headers.align", document.getElementById("alignHeaders").checked); + + //prefs.setBoolPref("extensions.printingtoolsng.show_options_button", document.getElementById("showButtonPreview").checked); + + prefs.setBoolPref("extensions.printingtoolsng.add_received_date", document.getElementById("addRdate").checked); + + + prefs.setIntPref("extensions.printingtoolsng.date.long_format_type", document.getElementById("dateLongRG").selectedIndex); + + prefs.setStringPref("extensions.printingtoolsng.date.custom_format", document.getElementById("customDate").value); + var size = document.getElementById("citeSize").selectedItem.id.replace("s", ""); + prefs.setIntPref("extensions.printingtoolsng.cite.size", size); + prefs.setCharPref("extensions.printingtoolsng.cite.color", document.getElementById("citeColor").value); + prefs.setBoolPref("extensions.printingtoolsng.cite.style", document.getElementById("citeCheck").checked); + prefs.setBoolPref("extensions.printingtoolsng.process.attachments_with_icon", document.getElementById("PMDattachIcon").checked); + + prefs.setIntPref("extensions.printingtoolsng.headers.attachments_per_line", document.getElementById("num_atts_line").selectedItem.value); + + var hdrfontlistchild = document.getElementById("hdrfontlist").getElementsByTagName("menuitem"); + var hdrselfont = hdrfontlistchild[document.getElementById("hdrfontlist").selectedIndex].getAttribute("value"); + console.log(hdrselfont) + setComplexPref("extensions.printingtoolsng.headers.font_family", hdrselfont); + + var fontlistchild = document.getElementById("fontlist").getElementsByTagName("menuitem"); + var selfont = fontlistchild[document.getElementById("fontlist").selectedIndex].getAttribute("value"); + setComplexPref("extensions.printingtoolsng.messages.font_family", selfont); + + setComplexPref("extensions.printingtoolsng.headers.custom_name_value", document.getElementById("addNameBox").value); + + prefs.setBoolPref("extensions.printingtoolsng.headers.style", document.getElementById("headersStyle").checked); + size = document.getElementById("hdrfontsize").selectedItem.id.replace("h", ""); + prefs.setIntPref("extensions.printingtoolsng.headers.size", size); + + prefs.setBoolPref("extensions.printingtoolsng.messages.style", document.getElementById("messageStyle").checked); + size = document.getElementById("fontsize").selectedItem.id.replace("x", ""); + prefs.setIntPref("extensions.printingtoolsng.messages.size", size); + + + let ubkc = document.getElementById("useHeadersBkColor").checked; + prefs.setBoolPref("extensions.printingtoolsng.headers.use_background_color", ubkc); + + prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value); + + + var list = document.getElementById("headersList"); + var val = ""; + for (var i = 0; i < 6; i++) { + var item = list.rows.item(i); + val = val + item.getAttribute("data-headerToken") + ","; + } + val = val + list.rows.item(6).getAttribute("data-headerToken"); + prefs.setCharPref("extensions.printingtoolsng.headers.order", val); + prefs.setBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach", document.getElementById("addP7M").checked); + if (fromPreview) { + // console.debug('closing from preview'); + try { + opener.close(); + var wm = Cc["@mozilla.org/appshell/window-mediator;1"] + .getService(Ci.nsIWindowMediator); + var win; + if (abook) { + win = wm.getMostRecentWindow("mail:addressbook"); + win.AbPrintPreviewAddressBook(); + } else { + win = wm.getMostRecentWindow("mail:3pane"); + win.PrintEnginePrintPreview(); + } + } catch (e) { + console.debug(e); + } + } + + prefs.setCharPref("extensions.printingtoolsng.debug.options", document.getElementById("debug-options").value); + +} + +function savePMDabprefs(fullpanel) { + + prefs.setBoolPref("extensions.printingtoolsng.addressbook.max_compact", document.getElementById("PMDabmaxcompact").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size", document.getElementById("PMDabsmallfont").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.hide_header_card", document.getElementById("PMDabnohead").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses", document.getElementById("PMDabjustaddress").checked); + prefs.setIntPref("extensions.printingtoolsng.addressbook.custom_font_size", document.getElementById("ABfontsize").selectedItem.label); + + var fontlistchild = document.getElementById("ABfontlist").getElementsByTagName("menuitem"); + var selfont = fontlistchild[document.getElementById("ABfontlist").selectedIndex].getAttribute("value"); + setComplexPref("extensions.printingtoolsng.addressbook.font_family", selfont); + + prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family", document.getElementById("ABcustomFont").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.cut_notes", document.getElementById("PMDcutnotes").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.add_ab_name", document.getElementById("PMDaddname").checked); + prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards", document.getElementById("multipleCards").checked); + if (document.getElementById("PMDabsmallfont") && opener.printingtools) { + var isContact = opener.printingtools.isContact; + opener.close(); + var wm = Cc["@mozilla.org/appshell/window-mediator;1"] + .getService(Ci.nsIWindowMediator); + var win = wm.getMostRecentWindow("mail:addressbook"); + if (!win) + return; + if (!isContact) { + // console.debug('address.Preview'); + win.AbPrintPreviewAddressBook(); + } + else + win.AbPrintPreviewCard(); + } +} + + +function move2(offset) { + var list = document.getElementById("headersList"); + var pos = list.selectedIndex; + if ((pos === 0 && offset > 0) || (pos === (list.itemCount - 1) && offset < 0)) + return; + var label = list.currentItem.label; + var value = list.currentItem.value; + var newpos = pos - offset; + var item = list.removeItemAt(list.currentIndex); + var newitem = list.insertItemAt(newpos, label, value); + list.selectedIndex = newpos; +} + +function dumpList() { + var listElement = gheaderList.list; + var selectedID = Number(gheaderList.controller.getSelectedRowDataId()); + + [...listElement.rows].forEach(element => { + let v = element.firstChild.textContent; + let i = element.getAttribute("data-id") + // Services.console.logStringMessage(`${v} ${i}`); + }); +} + +function move(offset) { + var listElement = gheaderList.list; + var selectedID = Number(gheaderList.controller.getSelectedRowDataId()); + // Services.console.logStringMessage(`move ${offset} ${selectedID}`); + // Services.console.logStringMessage(listElement.outerHTML); + dumpList(); + + if (selectedID === 1 && offset === 1 || selectedID === listElement.rows.length && offset === -1) { + return; + } + + var selectedElement = gheaderList.controller.getSelectedRowElement(); + var swapElement; + if (offset === 1) { + swapElement = selectedElement.previousElementSibling; + + } else { + swapElement = selectedElement.nextElementSibling; + } + + selectedElement.remove(); + if (offset === 1) { + listElement.insertBefore(selectedElement, swapElement); + } else { + swapElement.parentNode.insertBefore(selectedElement, swapElement.nextSibling); + } + + // Services.console.logStringMessage(listElement.outerHTML); + dumpList(); + + // Services.console.logStringMessage(`swap ${swapElement.getAttribute("data-id")}`); + if (offset === 1) { + selectedElement.setAttribute("data-id", selectedID - 1); + swapElement.setAttribute("data-id", selectedID); + gheaderList.controller.selectRowByDataId(selectedID - 1); + } else { + selectedElement.setAttribute("data-id", selectedID + 1); + swapElement.setAttribute("data-id", selectedID); + + gheaderList.controller.selectRowByDataId(selectedID + 1); + } + gheaderList.reIndex(); + // Services.console.logStringMessage(listElement.outerHTML); + dumpList(); +} + +function toggleHeaderShow() { + // Services.console.logStringMessage("toggle show"); + + // Services.console.logStringMessage(gheaderList.list.outerHTML); + dumpList(); + var selectedElement = gheaderList.controller.getSelectedRowElement(); + var idx = Number(selectedElement.getAttribute("data-id")) - 1; + var s = selectedElement.getAttribute("data-show"); + // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`); + s = ((s === "true") ? "false" : "true"); + // s = !s; + // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`); + var t = gheaderList.items[idx].values().headerToken; + t = ((s === "true") ? t.replace('!', '') : '!' + t); + // Services.console.logStringMessage(`after just ${s} ${t}`); + gheaderList.items[idx].values({ "show": s, "headerToken": t }); + + // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s} ${t}`); + // Services.console.logStringMessage(gheaderList.list.outerHTML); + dumpList(); + // if (s) { + + // } else { + + // } +} + +function toggleUseBackgroundColor(el) { + document.getElementById("headersBkColor").disabled = !el.checked; +} + +function toggleCiteStyle(el) { + document.getElementById("citeColor").disabled = !el.checked; + document.getElementById("citeSize").disabled = !el.checked; +} + + +function toggleHeadersStyle(el) { + document.getElementById("hdrfontlist").disabled = !el.checked; + document.getElementById("hdrfontsize").disabled = !el.checked; +} + +function toggleMessageStyle(el, notify) { + document.getElementById("fontlist").disabled = !el.checked; + document.getElementById("fontsize").disabled = !el.checked; + //document.getElementById("radiostyle").disabled = !el.checked; + var strBundleService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService); + var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties"); + if (document.getElementById("messageStyle").checked && notify) { + // alert("The system option:\n Allow messages to use other fonts\nhas been enabled"); + alert(bundle.GetStringFromName("allowFonts")); + prefs.setIntPref("browser.display.use_document_fonts", 1); + } else if (notify) { + // alert("The system option:\n Allow messages to use other fonts\nhas been disabled"); + alert(bundle.GetStringFromName("disallowFonts")); + prefs.setIntPref("browser.display.use_document_fonts", 0); + } +} + +function toggleAtt() { + document.getElementById("PMDattachIcon").disabled = !document.getElementById("PMDattach").checked; + document.getElementById("addP7M").disabled = !document.getElementById("PMDattach").checked; + document.getElementById("num_atts_line").disabled = !document.getElementById("PMDattach").checked; +} + +function toggleDate() { + document.getElementById("dateLongRG").disabled = !document.getElementById("PMDdate").checked; +} + + +document.addEventListener("dialogaccept", function (event) { + savePMDprefs(); + +}); + +window.addEventListener("load", function (event) { + initPMDpanel(); + document.getElementById("useCcBccAlways").focus; + document.getElementById("useCcBccAlways").selected; +}); + + diff --git a/src/chrome/content/ptng-options.xhtml b/src/chrome/content/ptng-options.xhtml index f2658e3..05b01fb 100644 --- a/src/chrome/content/ptng-options.xhtml +++ b/src/chrome/content/ptng-options.xhtml @@ -3,7 +3,6 @@ %mainDTD; ]> - @@ -25,48 +24,31 @@ - - + - - + - + - + - + - - - - - - - - - - - - - - @@ -80,7 +62,7 @@ - + @@ -88,17 +70,16 @@ - + - - + - + @@ -123,26 +104,22 @@ - + - + - + - + - - - - + + + + + + + + + + + + + &messageBody; + + + + + + + + + + + - - - - - - - - - - - - - + + + @@ -289,9 +303,6 @@ - - -