Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: options.js

Issue 8616123: adblockplusopera: Update code from ABP for Chrome (Closed)
Patch Set: Generated locales Created Oct. 22, 2012, 12:34 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « locales/zh-TW/messages.json ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: options.js
===================================================================
--- a/options.js
+++ b/options.js
@@ -1,9 +1,21 @@
var backgroundPage = opera.extension.bgProcess;
-var imports = ["FilterStorage", "FilterNotifier", "Subscription", "SpecialSubscription",
- "DownloadableSubscription", "Filter", "WhitelistFilter",
- "Synchronizer", "Prefs", "Utils", "require"];
-for (var i = 0; i < imports.length; i++)
- window[imports[i]] = backgroundPage[imports[i]];
+var require = backgroundPage.require;
+
+with(require("filterClasses"))
+{
+ this.Filter = Filter;
+ this.WhitelistFilter = WhitelistFilter;
+}
+with(require("subscriptionClasses"))
+{
+ this.Subscription = Subscription;
+ this.SpecialSubscription = SpecialSubscription;
+ this.DownloadableSubscription = DownloadableSubscription;
+}
+var FilterStorage = require("filterStorage").FilterStorage;
+var FilterNotifier = require("filterNotifier").FilterNotifier;
+var Prefs = require("prefs").Prefs;
+var Synchronizer = require("synchronizer").Synchronizer;
// Loads options from localStorage and sets UI elements accordingly
function loadOptions()
@@ -13,7 +25,7 @@
// Set links
$("#acceptableAdsLink").attr("href", Prefs.subscriptions_exceptionsurl);
- $("#acceptableAdsDocs").attr("href", Prefs.documentation_link.replace(/%LINK%/g, "acceptable_ads").replace(/%LANG%/g, Utils.appLocale));
+ $("#acceptableAdsDocs").attr("href", Prefs.documentation_link.replace(/%LINK%/g, "acceptable_ads").replace(/%LANG%/g, require("utils").Utils.appLocale));
// Add event listeners
window.addEventListener("unload", unloadOptions, false);
@@ -136,7 +148,7 @@
for (var i = 0; i < elements.length; i++)
{
var element = elements[i];
- var option = document.createElement("option");
+ var option = new Option();
option.text = element.getAttribute("title") + " (" + element.getAttribute("specialization") + ")";
option._data = {
title: element.getAttribute("title"),
@@ -174,7 +186,7 @@
list.appendChild(option);
}
- var option = document.createElement("option");
+ var option = new Option();
option.text = i18n.getMessage("filters_addSubscriptionOther_label") + "\u2026";
option._data = null;
list.appendChild(option);
@@ -355,16 +367,23 @@
updateSubscriptionInfo(element);
break;
case "subscription.added":
- if (!(item instanceof SpecialSubscription) && !findSubscriptionElement(item))
+ if (item instanceof SpecialSubscription)
{
- if (item.url == Prefs.subscriptions_exceptionsurl)
- $("#acceptableAds").prop("checked", true);
- else
- addSubscriptionEntry(item);
+ for (var i = 0; i < item.filters.length; i++)
+ onFilterChange("filter.added", item.filters[i]);
}
+ else if (item.url == Prefs.subscriptions_exceptionsurl)
+ $("#acceptableAds").prop("checked", true);
+ else if (!findSubscriptionElement(item))
+ addSubscriptionEntry(item);
break;
case "subscription.removed":
- if (item.url == Prefs.subscriptions_exceptionsurl)
+ if (item instanceof SpecialSubscription)
+ {
+ for (var i = 0; i < item.filters.length; i++)
+ onFilterChange("filter.removed", item.filters[i]);
+ }
+ else if (item.url == Prefs.subscriptions_exceptionsurl)
$("#acceptableAds").prop("checked", false);
else
{
@@ -398,7 +417,7 @@
entries.sort();
for (var i = 0; i < entries.length; i++)
{
- var option = document.createElement("option");
+ var option = new Option();
option.text = entries[i];
option.value = entries[i];
list.appendChild(option);
@@ -408,7 +427,7 @@
// Add a filter string to the list box.
function appendToListBox(boxId, text)
{
- var elt = document.createElement("option");
+ var elt = new Option(); /* Note: document.createElement("option") is unreliable in Opera */
elt.text = text;
elt.value = text;
document.getElementById(boxId).appendChild(elt);
@@ -417,9 +436,6 @@
// Remove a filter string from a list box.
function removeFromListBox(boxId, text)
{
- var elt = document.createElement("option");
- elt.text = text;
- elt.value = text;
var list = document.getElementById(boxId);
for (var i = 0; i < list.length; i++)
if (list.options[i].value == text)
« no previous file with comments | « locales/zh-TW/messages.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld