!import
1 //@line 37 "/home/visbrero/mnt/roisin/rev_control/hg/mozilla/toolkit/mozapps/extensions/content/about.js"
2
EM_NS
3 function EM_NS(aProperty)
4 {
5 return "http://www.mozilla.org/2004/em-rdf#" + aProperty;
6 }
7
8 var gExtensionID = "";
9 var gExtensionDB = null;
10
init
11 function init()
12 {
13 gExtensionID = window.arguments[0];
14 gExtensionDB = window.arguments[1];
15
16 var extensionsStrings = document.getElementById("extensionsStrings");
17
18 var rdfs = Components.classes["@mozilla.org/rdf/rdf-service;1"]
19 .getService(Components.interfaces.nsIRDFService);
20
21 var extension = rdfs.GetResource(gExtensionID);
22
23 // Name
24 var nameArc = rdfs.GetResource(EM_NS("name"));
25 var name = gExtensionDB.GetTarget(extension, nameArc, true);
26 name = name.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
27 // Version
28 var versionArc = rdfs.GetResource(EM_NS("version"));
29 var version = gExtensionDB.GetTarget(extension, versionArc, true);
30 version = version.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
31 // Description
32 var descriptionArc = rdfs.GetResource(EM_NS("description"));
33 var description = gExtensionDB.GetTarget(extension, descriptionArc, true);
34 if (description)
35 description = description.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
36 // Home Page URL
37 var homepageArc = rdfs.GetResource(EM_NS("homepageURL"));
38 var homepage = gExtensionDB.GetTarget(extension, homepageArc, true);
39 if (homepage) {
40 homepage = homepage.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
41 // only allow http(s) homepages
42 var scheme = "";
43 var uri = null;
44 try {
45 uri = makeURI(homepage);
46 scheme = uri.scheme;
47 } catch (ex) {}
48 if (uri && (scheme == "http" || scheme == "https"))
49 homepage = uri.spec;
50 else
51 homepage = null;
52 }
53
54 // Creator
55 var creatorArc = rdfs.GetResource(EM_NS("creator"));
56 var creator = gExtensionDB.GetTarget(extension, creatorArc, true);
57 if (creator)
58 creator = creator.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
59
60 document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [name]);
61 var extensionName = document.getElementById("extensionName");
62 extensionName.setAttribute("value", name);
63 var extensionVersion = document.getElementById("extensionVersion");
64 extensionVersion.setAttribute("value", extensionsStrings.getFormattedString("aboutWindowVersionString", [version]));
65
66 var extensionDescription = document.getElementById("extensionDescription");
67 extensionDescription.appendChild(document.createTextNode(description));
68
69 var extensionCreator = document.getElementById("extensionCreator");
70 extensionCreator.setAttribute("value", creator);
71
72 var extensionHomepage = document.getElementById("extensionHomepage");
73 if (homepage) {
74 extensionHomepage.setAttribute("homepageURL", homepage);
75 extensionHomepage.setAttribute("tooltiptext", homepage);
76 }
77 else
78 extensionHomepage.hidden = true;
79
80 var sectionProps = [["developersBox", "developer", "extensionDevelopers"],
81 ["translatorsBox", "translator", "extensionTranslators"],
82 ["contributorsBox", "contributor", "extensionContributors"]];
83
84 for (var i = 0; i < sectionProps.length; ++i) {
85 var node = document.getElementById(sectionProps[i][0]);
86 var arc = rdfs.GetResource(EM_NS(sectionProps[i][1]));
87 var targets = gExtensionDB.GetTargets(extension, arc, true);
88 if (!(targets.hasMoreElements()))
89 document.getElementById(sectionProps[i][2]).hidden = true;
90 else {
91 while (targets.hasMoreElements()) {
92 var literalValue = targets.getNext().QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
93 var label = document.createElement("label");
94 label.setAttribute("value", literalValue);
95 label.setAttribute("class", "contributor");
96 node.appendChild(label);
97 }
98 }
99 }
100
101 var acceptButton = document.documentElement.getButton("accept");
102 acceptButton.label = extensionsStrings.getString("aboutWindowCloseButton");
103 }
104
loadHomepage
105 function loadHomepage(aEvent) {
106 window.close();
107 window.opener.openURL(aEvent.target.getAttribute("homepageURL"));
108 }