diff options
Diffstat (limited to 'bandwagon/content/ui/overlays/extensionsOverlayController.js')
-rw-r--r-- | bandwagon/content/ui/overlays/extensionsOverlayController.js | 128 |
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; |