Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/bandwagon/content/ui/overlays/extensionsOverlayController.js
diff options
context:
space:
mode:
Diffstat (limited to 'bandwagon/content/ui/overlays/extensionsOverlayController.js')
-rw-r--r--bandwagon/content/ui/overlays/extensionsOverlayController.js128
1 files changed, 91 insertions, 37 deletions
diff --git a/bandwagon/content/ui/overlays/extensionsOverlayController.js b/bandwagon/content/ui/overlays/extensionsOverlayController.js
index 3cb08b5..a1faac0 100644
--- a/bandwagon/content/ui/overlays/extensionsOverlayController.js
+++ b/bandwagon/content/ui/overlays/extensionsOverlayController.js
@@ -19,7 +19,7 @@
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): David McNamara
- * Brian King
+ * Brian King <brian (at) briks (dot) si>
*
* 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
@@ -54,7 +54,7 @@ Bandwagon.Controller.ExtensionsOverlay.init = function()
// So lets hackily hide ours in that circumstance
var extView = document.getElementById("extensions-view");
- var bfv = document.getElementById("bandwagon-feeds-view");
+ var bfv = document.getElementById("bandwagon-collections-view");
var lsi = extView.ownerDocument.defaultView.getComputedStyle( extView, '' ).getPropertyCSSValue("list-style-image").cssText;
if (lsi == "none")
@@ -82,29 +82,32 @@ Bandwagon.Controller.ExtensionsOverlay.init = function()
if (inArgs)
{
+ /** OBSOLETE
if (inArgs.subscribe)
{
Bandwagon.Logger.debug("Have window argument subscribe = " + inArgs.subscribe);
setTimeout(function()
{
- Bandwagon.Controller.ExtensionsOverlay._showFeedsPaneView();
- Bandwagon.Controller.FeedsPane.doShowFeedPreview(inArgs.subscribe);
+ Bandwagon.Controller.ExtensionsOverlay._showCollectionsPaneView();
+ Bandwagon.Controller.CollectionsPane.doShowCollectionPreview(inArgs.subscribe);
},
500);
}
- else if (inArgs.selectFeed)
+ else
+ */
+ if (inArgs.selectCollection)
{
- Bandwagon.Logger.debug("Have window argument selectFeed = " + inArgs.selectFeed);
+ Bandwagon.Logger.debug("Have window argument selectCollection = " + inArgs.selectCollection);
- if (bandwagonService.feeds[inArgs.selectFeed])
+ if (bandwagonService.collections[inArgs.selectCollection])
{
- Bandwagon.Controller.FeedsPane.preferredFeed = bandwagonService.feeds[inArgs.selectFeed];
+ Bandwagon.Controller.CollectionsPane.preferredCollection = bandwagonService.collections[inArgs.selectCollection];
}
setTimeout(function()
{
- Bandwagon.Controller.ExtensionsOverlay._showFeedsPaneView();
+ Bandwagon.Controller.ExtensionsOverlay._showCollectionsPaneView();
},
500);
}
@@ -112,22 +115,48 @@ Bandwagon.Controller.ExtensionsOverlay.init = function()
}
}
-Bandwagon.Controller.ExtensionsOverlay.doPublishToFeed = function(feed)
+Bandwagon.Controller.ExtensionsOverlay.doPublishToCollection = function(collection)
{
- Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doPublishToFeed() with feed = '" + feed.url + "'");
+ Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doPublishToCollection() with collection = '" + collection.toString() + "'");
var extension = Bandwagon.Controller.ExtensionsOverlay._getSelectedExtension();
var params =
{
publishType: 1,
- publishDestination: feed,
+ publishDestination: collection,
publishExtension: extension
};
Bandwagon.Controller.ExtensionsOverlay._openPublishDialog(params);
}
+Bandwagon.Controller.ExtensionsOverlay.doRemoveFromCollection = function(collection)
+{
+ var extension = Bandwagon.Controller.ExtensionsOverlay._getSelectedExtension();
+
+ Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doRemoveFromCollection() with collection = '" + collection.toString() + "' and extension: name = '" + extension.name + "', guid = '" + extension.guid + "'");
+
+ var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+ var check = {value: false};
+ var flags = promptService.BUTTON_POS_0 * promptService.BUTTON_TITLE_IS_STRING + promptService.BUTTON_POS_1 * promptService.BUTTON_TITLE_IS_STRING;
+ var button = promptService.confirmEx(
+ window,
+ Bandwagon.Controller.ExtensionsOverlay.stringBundle.getString("publish.remove.title"),
+ Bandwagon.Controller.ExtensionsOverlay.stringBundle.getFormattedString("publish.remove.label", [extension.name, collection.name]),
+ flags,
+ Bandwagon.Controller.ExtensionsOverlay.stringBundle.getString("publish.remove.button0"),
+ Bandwagon.Controller.ExtensionsOverlay.stringBundle.getString("publish.remove.button1"),
+ null,
+ null,
+ check);
+
+ if (button == 0)
+ {
+ bandwagonService.removeAddonFromCollection(extension.guid, collection);
+ }
+}
+
Bandwagon.Controller.ExtensionsOverlay.doShareToEmail = function(emailAddress)
{
Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doShareToEmail() with email = '" + emailAddress + "'");
@@ -150,15 +179,15 @@ Bandwagon.Controller.ExtensionsOverlay._getSelectedExtension = function()
if (document.getElementById("extensionsView").selectedItem)
{
- var selectedFeedItem = document.getElementById("extensionsView").selectedItem;
- extension.guid = selectedFeedItem.getAttribute("addonID");
- extension.name = selectedFeedItem.getAttribute("name");
+ var selectedAddon = document.getElementById("extensionsView").selectedItem;
+ extension.guid = selectedAddon.getAttribute("addonID");
+ extension.name = selectedAddon.getAttribute("name");
}
- else if (Bandwagon.Controller.FeedsPane && Bandwagon.Controller.FeedsPane.elemBandwagonFeedItems.selectedItem)
+ else if (Bandwagon.Controller.CollectionsPane && Bandwagon.Controller.CollectionsPane.elemBandwagonAddons && Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem)
{
- var selectedFeedItem = Bandwagon.Controller.FeedsPane.elemBandwagonFeedItems.selectedItem;
- extension.guid = selectedFeedItem.guid;
- extension.name = selectedFeedItem.name;
+ var selectedAddon = Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem;
+ extension.guid = selectedAddon.guid;
+ extension.name = selectedAddon.name;
}
else
{
@@ -168,6 +197,13 @@ Bandwagon.Controller.ExtensionsOverlay._getSelectedExtension = function()
return extension;
}
+Bandwagon.Controller.ExtensionsOverlay.doNewCollection = function()
+{
+ Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doNewCollection()");
+
+ Bandwagon.Controller.CollectionsPane._openLocalizedURL(Bandwagon.COLLECTIONSPANE_DO_NEW_COLLECTION_URL);
+}
+
Bandwagon.Controller.ExtensionsOverlay.doAddNewShareEmail = function()
{
Bandwagon.Logger.debug("In Bandwagon.Controller.ExtensionsOverlay.doAddNewShareEmail()");
@@ -241,7 +277,7 @@ Bandwagon.Controller.ExtensionsOverlay._invalidatePublishButton = function()
}
Bandwagon.Controller.ExtensionsOverlay._publishButton.emailAddresses = Bandwagon.Controller.ExtensionsOverlay._getEmailAddresses();
- Bandwagon.Controller.ExtensionsOverlay._publishButton.writableFeeds = Bandwagon.Controller.ExtensionsOverlay._getWritableFeeds();
+ Bandwagon.Controller.ExtensionsOverlay._publishButton.writableCollections = Bandwagon.Controller.ExtensionsOverlay._getWritableCollections();
try
{
@@ -250,21 +286,39 @@ Bandwagon.Controller.ExtensionsOverlay._invalidatePublishButton = function()
catch (e) {}
}
-Bandwagon.Controller.ExtensionsOverlay._getWritableFeeds = function()
+Bandwagon.Controller.ExtensionsOverlay._getWritableCollections = function()
{
- var writableFeeds = [];
+ var writableCollections = [];
+
+ var extension = Bandwagon.Controller.ExtensionsOverlay._getSelectedExtension();
- for (var id in bandwagonService.feeds)
+ for (var id in bandwagonService.collections)
{
- if (1 || (bandwagonService.feeds[id].editable && !bandwagonService.feeds[id].preview))
+ var collection = bandwagonService.collections[id];
+
+ //if (1 || (bandwagonService.collections[id].writable && !bandwagonService.collections[id].preview))
+
+ if (collection.writable)
{
- writableFeeds.push(bandwagonService.feeds[id]);
+ // Check if extension is in collection
+ collection.__containsCurrentlySelectedExtension = false;
+
+ for (var id in collection.addons)
+ {
+ if (extension.guid == collection.addons[id].guid)
+ {
+ collection.__containsCurrentlySelectedExtension = true;
+ break;
+ }
+ }
+
+ writableCollections.push(collection);
}
}
- writableFeeds.sort();
+ writableCollections.sort();
- return writableFeeds;
+ return writableCollections;
}
Bandwagon.Controller.ExtensionsOverlay._getEmailAddresses = function()
@@ -276,12 +330,12 @@ Bandwagon.Controller.ExtensionsOverlay._getEmailAddresses = function()
return previouslySharedEmailAddresses;
}
-Bandwagon.Controller.ExtensionsOverlay._showFeedsPaneView = function()
+Bandwagon.Controller.ExtensionsOverlay._showCollectionsPaneView = function()
{
- Bandwagon.Logger.debug("in _showFeedsPaneView()");
+ Bandwagon.Logger.debug("in _showCollectionsPaneView()");
- updateLastSelected("bandwagon-feeds");
- gView = "bandwagon-feeds";
+ updateLastSelected("bandwagon-collections");
+ gView = "bandwagon-collections";
document.getElementById("installFileButton").hidden = true;
document.getElementById("checkUpdatesAllButton").hidden = true;
@@ -301,12 +355,12 @@ Bandwagon.Controller.ExtensionsOverlay._showFeedsPaneView = function()
AddonsViewBuilder.clearChildren(gExtensionsView);
- document.getElementById("bandwagon-feeds-panel").hidden = false;
+ document.getElementById("bandwagon-collections-panel").hidden = false;
updateGlobalCommands();
- Bandwagon.Controller.FeedsPane.init();
- Bandwagon.Controller.FeedsPane.onViewSelect();
+ Bandwagon.Controller.CollectionsPane.init();
+ Bandwagon.Controller.CollectionsPane.onViewSelect();
}
// magic
@@ -315,13 +369,13 @@ Bandwagon.Controller.ExtensionsOverlay._defaultShowView = showView;
Bandwagon.Controller.ExtensionsOverlay._showView = function(aView)
{
- if (aView == "bandwagon-feeds")
+ if (aView == "bandwagon-collections")
{
- Bandwagon.Controller.ExtensionsOverlay._showFeedsPaneView();
+ Bandwagon.Controller.ExtensionsOverlay._showCollectionsPaneView();
}
else
{
- document.getElementById("bandwagon-feeds-panel").hidden = true;
+ document.getElementById("bandwagon-collections-panel").hidden = true;
document.getElementById("extensionsView").hidden = false;
document.getElementById("extensionsView").parentNode.hidden = false;