michael@0: // -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: "use strict"; michael@0: michael@0: function init() { michael@0: var addon = window.arguments[0]; michael@0: var extensionsStrings = document.getElementById("extensionsStrings"); michael@0: michael@0: document.documentElement.setAttribute("addontype", addon.type); michael@0: michael@0: if (addon.iconURL) { michael@0: var extensionIcon = document.getElementById("extensionIcon"); michael@0: extensionIcon.src = addon.iconURL; michael@0: } michael@0: michael@0: document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [addon.name]); michael@0: var extensionName = document.getElementById("extensionName"); michael@0: extensionName.textContent = addon.name; michael@0: michael@0: var extensionVersion = document.getElementById("extensionVersion"); michael@0: if (addon.version) michael@0: extensionVersion.setAttribute("value", extensionsStrings.getFormattedString("aboutWindowVersionString", [addon.version])); michael@0: else michael@0: extensionVersion.hidden = true; michael@0: michael@0: var extensionDescription = document.getElementById("extensionDescription"); michael@0: if (addon.description) michael@0: extensionDescription.textContent = addon.description; michael@0: else michael@0: extensionDescription.hidden = true; michael@0: michael@0: var numDetails = 0; michael@0: michael@0: var extensionCreator = document.getElementById("extensionCreator"); michael@0: if (addon.creator) { michael@0: extensionCreator.setAttribute("value", addon.creator); michael@0: numDetails++; michael@0: } else { michael@0: extensionCreator.hidden = true; michael@0: var extensionCreatorLabel = document.getElementById("extensionCreatorLabel"); michael@0: extensionCreatorLabel.hidden = true; michael@0: } michael@0: michael@0: var extensionHomepage = document.getElementById("extensionHomepage"); michael@0: var homepageURL = addon.homepageURL; michael@0: if (homepageURL) { michael@0: extensionHomepage.setAttribute("homepageURL", homepageURL); michael@0: extensionHomepage.setAttribute("tooltiptext", homepageURL); michael@0: numDetails++; michael@0: } else { michael@0: extensionHomepage.hidden = true; michael@0: } michael@0: michael@0: numDetails += appendToList("extensionDevelopers", "developersBox", addon.developers); michael@0: numDetails += appendToList("extensionTranslators", "translatorsBox", addon.translators); michael@0: numDetails += appendToList("extensionContributors", "contributorsBox", addon.contributors); michael@0: michael@0: if (numDetails == 0) { michael@0: var groove = document.getElementById("groove"); michael@0: groove.hidden = true; michael@0: var extensionDetailsBox = document.getElementById("extensionDetailsBox"); michael@0: extensionDetailsBox.hidden = true; michael@0: } michael@0: michael@0: var acceptButton = document.documentElement.getButton("accept"); michael@0: acceptButton.label = extensionsStrings.getString("aboutWindowCloseButton"); michael@0: michael@0: setTimeout(sizeToContent, 0); michael@0: } michael@0: michael@0: function appendToList(aHeaderId, aNodeId, aItems) { michael@0: var header = document.getElementById(aHeaderId); michael@0: var node = document.getElementById(aNodeId); michael@0: michael@0: if (!aItems || aItems.length == 0) { michael@0: header.hidden = true; michael@0: return 0; michael@0: } michael@0: michael@0: for (let currentItem of aItems) { michael@0: var label = document.createElement("label"); michael@0: label.textContent = currentItem; michael@0: label.setAttribute("class", "contributor"); michael@0: node.appendChild(label); michael@0: } michael@0: michael@0: return aItems.length; michael@0: } michael@0: michael@0: function loadHomepage(aEvent) { michael@0: window.close(); michael@0: openURL(aEvent.target.getAttribute("homepageURL")); michael@0: }