Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/bandwagon/content/ui/overlays/browserOverlayController.js
diff options
context:
space:
mode:
Diffstat (limited to 'bandwagon/content/ui/overlays/browserOverlayController.js')
-rw-r--r--bandwagon/content/ui/overlays/browserOverlayController.js103
1 files changed, 76 insertions, 27 deletions
diff --git a/bandwagon/content/ui/overlays/browserOverlayController.js b/bandwagon/content/ui/overlays/browserOverlayController.js
index d2f3761..868ac37 100644
--- a/bandwagon/content/ui/overlays/browserOverlayController.js
+++ b/bandwagon/content/ui/overlays/browserOverlayController.js
@@ -14,11 +14,11 @@
* The Original Code is bandwagon.
*
* The Initial Developer of the Original Code is
- * David McNamara.
+ * Mozilla Corporation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
- * Contributor(s):
+ * Contributor(s): David McNamara
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -34,6 +34,8 @@
*
* ***** END LICENSE BLOCK ***** */
+var bandwagonService;
+
Bandwagon.Controller.BrowserOverlay = new function() {}
Bandwagon.Controller.BrowserOverlay.initBandwagon = function()
@@ -44,7 +46,7 @@ Bandwagon.Controller.BrowserOverlay.initBandwagon = function()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- var bandwagonService = Components.classes["@addons.mozilla.org/bandwagonservice;1"]
+ bandwagonService = Components.classes["@addons.mozilla.org/bandwagonservice;1"]
.getService().wrappedJSObject;
// We can safely call init() for each new browser window; the service
@@ -60,10 +62,44 @@ Bandwagon.Controller.BrowserOverlay.initBandwagon = function()
Bandwagon.Logger.error("Error initializing bandwagon: " + e);
}
+ /** OBSOLETE
// add listener to every page loaded in the browser - listen for our custom bandwagonSubscribe event
gBrowser.addEventListener("load", Bandwagon.Controller.BrowserOverlay.addSubscribeEventListenerToDocument, true);
+ */
+
+ gBrowser.addEventListener("load", Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument, true);
+}
+
+Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument = function(event)
+{
+ if (event.originalTarget instanceof HTMLDocument)
+ {
+ var doc = event.originalTarget;
+
+ if (event.originalTarget.defaultView.frameElement)
+ {
+ while (doc.defaultView.frameElement)
+ {
+ doc=doc.defaultView.frameElement.ownerDocument;
+ }
+ }
+
+ // TODO only add to AMO
+
+ doc.addEventListener("bandwagonRefresh", Bandwagon.Controller.BrowserOverlay.handleSubscriptionRefreshEvent, true);
+
+ Bandwagon.Logger.debug("added bandwagonRefresh listener");
+ }
}
+Bandwagon.Controller.BrowserOverlay.handleSubscriptionRefreshEvent = function(event)
+{
+ Bandwagon.Logger.info("Received bandwagon subscription refresh event");
+
+ bandwagonService.updateCollectionsList();
+}
+
+/** OBSOLETE
Bandwagon.Controller.BrowserOverlay.addSubscribeEventListenerToDocument = function(event)
{
if (event.originalTarget instanceof HTMLDocument)
@@ -83,24 +119,28 @@ Bandwagon.Controller.BrowserOverlay.addSubscribeEventListenerToDocument = functi
//Bandwagon.Logger.debug("added bandwagonSubscribe listener");
}
}
+*/
+/** OBSOLETE
Bandwagon.Controller.BrowserOverlay.handleSubscribeEvent = function(event)
{
if (event.target && event.target.getAttribute("href"))
{
- var feedURL = event.target.getAttribute("href");
+ var collectionURL = event.target.getAttribute("href");
- Bandwagon.Logger.info("Received subscribe event for feed: " + feedURL);
+ Bandwagon.Logger.info("Received subscribe event for collection: " + collectionURL);
- Bandwagon.Controller.BrowserOverlay._openExtensionManagerFeedsPaneWithSubscribe(feedURL);
+ Bandwagon.Controller.BrowserOverlay._openExtensionManagerCollectionsPaneWithSubscribe(collectionURL);
}
else
{
Bandwagon.Logger.error("Missing data payload in bandwagonSubscribe event");
}
}
+*/
-Bandwagon.Controller.BrowserOverlay._openExtensionManagerFeedsPaneWithSubscribe = function(feedURL)
+/** OBSOLETE
+Bandwagon.Controller.BrowserOverlay._openExtensionManagerCollectionsPaneWithSubscribe = function(collectionURL)
{
const EMTYPE = "Extension:Manager";
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
@@ -109,23 +149,24 @@ Bandwagon.Controller.BrowserOverlay._openExtensionManagerFeedsPaneWithSubscribe
if (theEM)
{
- // extensions manager window already open - focus, show feeds pane, call doShowFeedPreview
+ // extensions manager window already open - focus, show collections pane, call doShowCollectionPreview
theEM.focus();
- theEM.showView('bandwagon-feeds');
+ theEM.showView('bandwagon-collections');
- setTimeout(function() { Bandwagon.Controller.FeedsPane.doShowFeedPreview(feedURL); }, 500);
+ setTimeout(function() { Bandwagon.Controller.CollectionsPane.doShowCollectionPreview(collectionURL); }, 500);
}
else
{
- // extensions manager window NOT already open - open with 'subscribe' argument (this will show feeds pane, call doShowFeedPreview)
+ // extensions manager window NOT already open - open with 'subscribe' argument (this will show collection pane, call doShowCollectionPreview)
const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
- window.openDialog(EMURL, "", EMFEATURES, {subscribe: feedURL});
+ window.openDialog(EMURL, "", EMFEATURES, {subscribe: collectionURL});
}
}
+*/
Bandwagon.Controller.BrowserOverlay._removeLoadListener = function()
{
@@ -144,18 +185,26 @@ Bandwagon.Controller.BrowserOverlay.openFirstRunLandingPage = function()
1000);
}
-Bandwagon.Controller.BrowserOverlay.showNewFeedItemsAlert = function(feed)
+/* Toolbar button action - Open add-ons window with Subscriptions tab focused */
+Bandwagon.Controller.BrowserOverlay.openAddons = function()
+{
+ const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
+ const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
+ window.openDialog(EMURL, "", EMFEATURES, "bandwagon-collections");
+}
+
+Bandwagon.Controller.BrowserOverlay.showNewAddonsAlert = function(collection)
{
- Bandwagon.Logger.debug("in showNewFeedItemsAlert()");
+ Bandwagon.Logger.debug("in showNewAddonsAlert()");
var bandwagonStrings = document.getElementById("bandwagon-strings");
var alertsService = Components.classes["@mozilla.org/alerts-service;1"]
.getService(Components.interfaces.nsIAlertsService);
- var unnotifiedCount = feed.getUnnotifiedFeedItems().length;
- var feedName = (feed.name?feed.name:feed.url);
- var feedURL = feed.url;
+ var unnotifiedCount = collection.getUnnotifiedAddons().length;
+ var collectionName = (collection.name?collection.name:collection.resourceURL);
+ var collectionURL = collection.resourceURL;
var listener =
{
@@ -163,7 +212,7 @@ Bandwagon.Controller.BrowserOverlay.showNewFeedItemsAlert = function(feed)
{
if (topic == "alertclickcallback")
{
- var feedURL = data;
+ var collectionURL = data;
const EMTYPE = "Extension:Manager";
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
@@ -173,22 +222,22 @@ Bandwagon.Controller.BrowserOverlay.showNewFeedItemsAlert = function(feed)
if (theEM)
{
theEM.focus();
- theEM.showView('bandwagon-feeds');
+ theEM.showView('bandwagon-collections');
- // if the em is open, select the bandwagon-feeds pane, but don't select the feed itself.
+ // if the em is open, select the bandwagon-collections pane, but don't select the collection itself.
// the user will be notified by the unread count in the left hand side bar
- //theEM.setTimeout(function() { Bandwagon.Controller.FeedsPane._selectFeed(feed); }, 500);
+ //theEM.setTimeout(function() { Bandwagon.Controller.CollectionsPane._selectCollection(collection); }, 500);
}
else
{
const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
- // the em is not open - open it, and select this feed
+ // the em is not open - open it, and select this collection
if (window)
- window.openDialog(EMURL, "", EMFEATURES, {selectFeed: feedURL});
+ window.openDialog(EMURL, "", EMFEATURES, {selectCollection: collectionURL});
else
Bandwagon.Logger.error("No browser windows open - can't open EM");
}
@@ -200,11 +249,11 @@ Bandwagon.Controller.BrowserOverlay.showNewFeedItemsAlert = function(feed)
try
{
alertsService.showAlertNotification(
- "chrome://bandwagon/skin/images/tango-addonfeed-32x32.png",
- bandwagonStrings.getString("newfeeditems.alert.title"),
- bandwagonStrings.getFormattedString("newfeeditems.alert.text", [feedName]),
+ "chrome://bandwagon/skin/images/icon32.png",
+ bandwagonStrings.getString("newaddons.alert.title"),
+ bandwagonStrings.getFormattedString("newaddons.alert.text", [collectionName]),
true,
- feedURL,
+ collectionURL,
listener
);
}