Left: | ||
Right: |
OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | |
3 * Copyright (C) 2006-2013 Eyeo GmbH | |
4 * | |
5 * Adblock Plus is free software: you can redistribute it and/or modify | |
6 * it under the terms of the GNU General Public License version 3 as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * Adblock Plus is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License | |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | |
16 */ | |
17 | |
18 var backgroundPage = chrome.extension.getBackgroundPage(); | |
19 var require = backgroundPage.require; | |
20 | |
21 var Utils = require("utils").Utils; | |
22 var Notification = require("notification").Notification; | |
23 | |
24 function getDocLinks(notification) | |
25 { | |
26 if (!notification.links) | |
27 return []; | |
28 | |
29 var docLinks = []; | |
30 notification.links.forEach(function(link) | |
31 { | |
32 docLinks.push(Utils.getDocLink(link)); | |
33 }); | |
34 return docLinks; | |
35 } | |
36 | |
37 function insertMessage(element, text, links) | |
38 { | |
39 var match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(text); | |
40 if (!match) | |
41 { | |
42 element.appendChild(document.createTextNode(text)); | |
43 return; | |
44 } | |
45 | |
46 var before = match[1]; | |
47 var tagName = match[2]; | |
48 var value = match[3]; | |
49 var after = match[4]; | |
50 | |
51 insertMessage(element, before, links); | |
52 | |
53 var newElement = document.createElement(tagName); | |
54 if (tagName === "a" && links && links.length) | |
55 newElement.href = links.shift(); | |
56 insertMessage(newElement, value, links); | |
57 element.appendChild(newElement); | |
58 | |
59 insertMessage(element, after, links); | |
60 } | |
61 | |
62 window.addEventListener("load", function() | |
63 { | |
64 var notification = backgroundPage.activeNotification; | |
65 if (!notification) | |
66 return; | |
67 | |
68 if (notification.onClicked) | |
69 notification.onClicked(); | |
70 | |
71 var texts = Notification.getLocalizedTexts(notification); | |
72 var titleElement = document.getElementById("title"); | |
73 titleElement.textContent = texts.title; | |
74 | |
75 var docLinks = getDocLinks(notification); | |
76 var messageElement = document.getElementById("message"); | |
77 insertMessage(messageElement, texts.message, docLinks); | |
78 | |
79 var linkElements = messageElement.getElementsByTagName("a"); | |
80 for (var i = 0; i < linkElements.length; i++) | |
81 { | |
82 var linkElement = linkElements[i]; | |
83 linkElement.addEventListener("click", function(event) | |
84 { | |
85 event.preventDefault(); | |
86 event.stopPropagation(); | |
87 chrome.tabs.create({url: linkElement.href}); | |
88 }); | |
89 } | |
Wladimir Palant
2013/07/22 14:18:36
So this loop is only there to attach event listene
Felix Dahlke
2013/07/22 15:10:22
Yes, that would also work. Note that we have prett
Wladimir Palant
2013/07/23 07:25:04
Sure, it should be changed there as well.
Felix Dahlke
2013/07/23 10:38:08
Done.
| |
90 | |
91 var notificationElement = document.getElementById("notification"); | |
92 notificationElement.className = notification.severity; | |
93 notificationElement.style.display = "block"; | |
94 }); | |
OLD | NEW |