Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordave@33eels.com <dave@33eels.com@4eb1ac78-321c-0410-a911-ec516a8615a5>2009-03-07 13:21:10 (GMT)
committer dave@33eels.com <dave@33eels.com@4eb1ac78-321c-0410-a911-ec516a8615a5>2009-03-07 13:21:10 (GMT)
commit8742c7e99bdb1291e2b74cb273c58dc9e9d439e4 (patch)
treedb559e4c1ea48d69eeb57e0fb64010a6ccf8ad7f
parent4d6bb99344640d00f44a48b6a44a0c0ba75671e3 (diff)
Brought extension up-to-date with API changes. All seems to be working now. Remember:
1. Delete your bandwagon.sqlite file. 2. Set bandwagon.firstrun to be true. git-svn-id: http://svn.mozilla.org/addons/trunk@22984 4eb1ac78-321c-0410-a911-ec516a8615a5
-rw-r--r--bandwagon/components/bandwagon-service.js53
-rw-r--r--bandwagon/content/scripts/bandwagon.js2
-rw-r--r--bandwagon/content/scripts/factory/collectionFactory.js120
-rw-r--r--bandwagon/content/scripts/model/addon.js9
-rw-r--r--bandwagon/content/scripts/model/collection.js1
-rw-r--r--bandwagon/content/scripts/model/serviceDocument.js5
-rw-r--r--bandwagon/content/scripts/rpc/constants.js2
-rw-r--r--bandwagon/content/scripts/rpc/net.js5
-rw-r--r--bandwagon/content/ui/bindings/bandwagon.xml38
-rw-r--r--bandwagon/content/ui/collectionsPaneController.js42
-rw-r--r--bandwagon/content/ui/overlays/extensionsOverlay.xul2
-rw-r--r--bandwagon/content/ui/overlays/extensionsOverlayController.js2
-rw-r--r--bandwagon/content/ui/settingsController.js7
13 files changed, 169 insertions, 119 deletions
diff --git a/bandwagon/components/bandwagon-service.js b/bandwagon/components/bandwagon-service.js
index 1632e3a..17f9cdb 100644
--- a/bandwagon/components/bandwagon-service.js
+++ b/bandwagon/components/bandwagon-service.js
@@ -114,6 +114,9 @@ BandwagonService.prototype = {
// first run stuff
+// FIXME temp temp temp
+this.updateCollectionsList();
+
if (Bandwagon.Preferences.getPreference("firstrun") == true)
{
Bandwagon.Preferences.setPreference("firstrun", false);
@@ -268,26 +271,58 @@ BandwagonService.prototype = {
{
if (event.isError())
{
+ Bandwagon.Logger.error("Could not update collections list: " + event.getError().toString());
}
else
{
- Bandwagon.Logger.debug("Updating collections list: have " + event.collections.length + " collections");
+ var collections = event.serviceDocument.collections;
+
+ Bandwagon.Logger.debug("Updating collections list: saw " + collections.length + " collections");
- for (var i=0; i<event.collections.length; i++)
+ for (var i=0; i<bandwagonService.collections.length; i++)
{
- var collection = event.collections[i];
+ var isStaleCollection = true;
+
+ for (var j=0; j<collections.length; j++)
+ {
+ if (bandwagonService.collections[i].equals(collections[j]))
+ {
+ isStaleCollection = false;
+ break;
+ }
+ }
+
+ if (isStaleCollection)
+ {
+ Bandwagon.Logger.debug("Updating collections list: removing stale collection: " + bandwagonService.collections[i].toString());
+
+ bandwagonService.deleteCollection(bandwagonService.collections[i]);
+ }
+ }
- // TODO: do this properly, add/remove what we do/don't have.
+ for (var i=0; i<collections.length; i++)
+ {
+ var collection = collections[i];
- Bandwagon.Logger.debug("Updating collections list: adding " + collection.toString());
+ if (bandwagonService.collections[collection.resourceURL])
+ {
+ // we have already added this collection
+ }
+ else
+ {
+ // this is a new collection
+ Bandwagon.Logger.debug("Updating collections list: adding new collection: " + collection.toString());
- this.collections[collection] = collection;
+ bandwagonService.collections[collection.resourceURL] = collection;
- // TODO notify CollectionUpdate observers
+ bandwagonService.forceCheckForUpdates(collection);
+ }
}
+
+ bandwagonService._notifyListChangeObservers();
if (Bandwagon.COMMIT_NOW)
- this.commit(collection);
+ bandwagonService.commitAll();
}
}
},
@@ -720,7 +755,7 @@ BandwagonService.prototype = {
+ "addonsPerPage INTEGER NOT NULL)"
);
this._storageConnection.executeSimpleSQL(
- "CREATE TABLE IF NOT EXISTS addons "
+ "CREATE TABLE IF NOT EXISTS collectionsAddons "
+ "(id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "collection INTEGER NOT NULL, "
+ "addon INTEGER NOT NULL, "
diff --git a/bandwagon/content/scripts/bandwagon.js b/bandwagon/content/scripts/bandwagon.js
index 154c6ea..aea00cf 100644
--- a/bandwagon/content/scripts/bandwagon.js
+++ b/bandwagon/content/scripts/bandwagon.js
@@ -52,5 +52,5 @@ Bandwagon.COLLECTIONSPANE_DO_SUBSCRIBE_URL = "https://bandwagon.stage.mozilla.co
Bandwagon.MAGIC_ADD_COLLECTION_COOKIE_HOST = "www.33eels.com"; // TODO
Bandwagon.MAGIC_ADD_COLLECTION_COOKIE_NAME = "bandwagon_addcollection";
-Bandwagon.COMMIT_NOW = 0; // 1=commit on the fly. 0=commit when browser exit.
+Bandwagon.COMMIT_NOW = 1; // 1=commit on the fly. 0=commit when browser exit.
diff --git a/bandwagon/content/scripts/factory/collectionFactory.js b/bandwagon/content/scripts/factory/collectionFactory.js
index 38293a5..58372c8 100644
--- a/bandwagon/content/scripts/factory/collectionFactory.js
+++ b/bandwagon/content/scripts/factory/collectionFactory.js
@@ -64,7 +64,7 @@ Bandwagon.Factory.CollectionFactory.prototype.openCollection = function(collecti
if (!collection)
return null;
- collection.addons = this._openCollectionItems(collection);
+ collection.addons = this._openAddons(collection);
collections[collection.resourceURL] = collection;
}
@@ -94,7 +94,7 @@ Bandwagon.Factory.CollectionFactory.prototype.openCollections = function()
if (!collection)
continue;
- collection.addons = this._openCollectionItems(collection);
+ collection.addons = this._openAddons(collection);
collections[collection.resourceURL] = collection;
}
@@ -116,7 +116,7 @@ Bandwagon.Factory.CollectionFactory.prototype.commitCollection = function(collec
try
{
- (collection.id==-1?statement.bindNullParameter(0):statement.bindInt32Parameter(0, collection.id));
+ (collection.storageID==-1?statement.bindNullParameter(0):statement.bindInt32Parameter(0, collection.storageID));
statement.bindUTF8StringParameter(1, collection.resourceURL);
statement.bindUTF8StringParameter(2, collection.name);
statement.bindUTF8StringParameter(3, collection.description);
@@ -135,14 +135,14 @@ Bandwagon.Factory.CollectionFactory.prototype.commitCollection = function(collec
statement.reset();
}
- if (collection.id == -1)
+ if (collection.storageID == -1)
{
- collection.id = this.connection.lastInsertRowID;
+ collection.storageID = this.connection.lastInsertRowID;
}
for (var id in collection.addons)
{
- this._commitCollectionItem(collection, collection.addons[id]);
+ this._commitAddon(collection, collection.addons[id]);
}
return true;
@@ -162,16 +162,16 @@ Bandwagon.Factory.CollectionFactory.prototype.deleteCollection = function(collec
return null;
var statement1 = this.connection.createStatement("DELETE FROM collections where id = ?1");
- var statement2 = this.connection.createStatement("DELETE FROM addons where collection = ?1");
+ var statement2 = this.connection.createStatement("DELETE FROM collectionsAddons where collection = ?1");
try
{
// TODO transaction here?
- statement1.bindInt32Parameter(0, collection.id);
+ statement1.bindInt32Parameter(0, collection.storageID);
statement1.execute();
- statement2.bindInt32Parameter(0, collection.id);
+ statement2.bindInt32Parameter(0, collection.storageID);
statement2.execute();
}
finally
@@ -188,7 +188,7 @@ Bandwagon.Factory.CollectionFactory.prototype.deleteCollection = function(collec
Bandwagon.Factory.CollectionFactory.prototype._openCollectionFromRS = function(resultset)
{
var collection = new this.Bandwagon.Model.Collection();
- collection.id = resultset.getInt32(0);
+ collection.storageID = resultset.getInt32(0);
collection.resourceURL = resultset.getUTF8String(1);
collection.name = resultset.getUTF8String(2);
collection.description = resultset.getUTF8String(3);
@@ -206,23 +206,23 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionFromRS = function(r
return collection;
}
-Bandwagon.Factory.CollectionFactory.prototype._openCollectionItems = function(collection)
+Bandwagon.Factory.CollectionFactory.prototype._openAddons = function(collection)
{
var addons = {};
- var statement = this.connection.createStatement("SELECT addons.*, addons.id, addons.read FROM addons LEFT JOIN addons ON addons.id = addons.addon WHERE addons.collection = ?1 LIMIT ?2");
+ var statement = this.connection.createStatement("SELECT addons.*, collectionsAddons.id, collectionsAddons.read FROM addons LEFT JOIN collectionsAddons ON addons.id = collectionsAddons.addon WHERE collectionsAddons.collection = ?1 LIMIT ?2");
try
{
- statement.bindInt32Parameter(0, collection.id);
+ statement.bindInt32Parameter(0, collection.storageID);
statement.bindInt32Parameter(1, this.Bandwagon.DEFAULT_ADDONS_PER_PAGE);
while (statement.executeStep())
{
- var addon = new this.Bandwagon.Model.CollectionItem();
+ var addon = new this.Bandwagon.Model.Addon();
addon.Bandwagon = this.Bandwagon;
- addon.id = statement.getInt32(0);
+ addon.storageID = statement.getInt32(0);
addon.guid = statement.getUTF8String(1);
addon.name = statement.getUTF8String(2);
addon.type = statement.getInt32(3);
@@ -237,13 +237,13 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItems = function(co
addon.author = statement.getUTF8String(12);
addon.category = statement.getUTF8String(13);
addon.dateAdded = new Date(statement.getInt32(14)*1000);
- addon.addonId = statement.getInt32(15);
+ addon.collectionsAddonsStorageID = statement.getInt32(15);
addon.read = (statement.getInt32(16)==1?true:false);
- addon.compatibleApplications = this._openCollectionItemCompatibleApplications(addon);
- addon.compatibleOS = this._openCollectionItemCompatibleOS(addon);
- addon.installs = this._openCollectionItemInstalls(addon);
- addon.comments = this._openCollectionItemComments(addon);
+ addon.compatibleApplications = this._openAddonCompatibleApplications(addon);
+ addon.compatibleOS = this._openAddonCompatibleOS(addon);
+ addon.installs = this._openAddonInstalls(addon);
+ addon.comments = this._openAddonComments(addon);
addons[addon.guid] = addon;
}
@@ -256,7 +256,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItems = function(co
return addons;
}
-Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleApplications = function(addon)
+Bandwagon.Factory.CollectionFactory.prototype._openAddonCompatibleApplications = function(addon)
{
var compatibleApplications = {};
@@ -264,7 +264,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleAppli
try
{
- statement.bindInt32Parameter(0, addon.id);
+ statement.bindInt32Parameter(0, addon.storageID);
while (statement.executeStep())
{
@@ -288,7 +288,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleAppli
return compatibleApplications;
}
-Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleOS = function(addon)
+Bandwagon.Factory.CollectionFactory.prototype._openAddonCompatibleOS = function(addon)
{
var compatibleOS = {};
@@ -296,7 +296,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleOS =
try
{
- statement.bindInt32Parameter(0, addon.id);
+ statement.bindInt32Parameter(0, addon.storageID);
while (statement.executeStep())
{
@@ -313,7 +313,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemCompatibleOS =
return compatibleOS;
}
-Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemInstalls = function(addon)
+Bandwagon.Factory.CollectionFactory.prototype._openAddonInstalls = function(addon)
{
var installs = {};
@@ -321,7 +321,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemInstalls = func
try
{
- statement.bindInt32Parameter(0, addon.id);
+ statement.bindInt32Parameter(0, addon.storageID);
while (statement.executeStep())
{
@@ -343,7 +343,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemInstalls = func
return installs;
}
-Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemComments = function(addon)
+Bandwagon.Factory.CollectionFactory.prototype._openAddonComments = function(addon)
{
var comments = [];
@@ -351,7 +351,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemComments = func
try
{
- statement.bindInt32Parameter(0, addon.id);
+ statement.bindInt32Parameter(0, addon.storageID);
while (statement.executeStep())
{
@@ -372,7 +372,7 @@ Bandwagon.Factory.CollectionFactory.prototype._openCollectionItemComments = func
return comments;
}
-Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(collection, addon)
+Bandwagon.Factory.CollectionFactory.prototype._commitAddon = function(collection, addon)
{
if (!this.connection)
return;
@@ -382,7 +382,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(c
// if guid doesn't exist - insert
var statement = this.connection.createStatement("SELECT id FROM addons where guid = ?1");
- var addonid = null;
+ var addonStorageID = null;
try
{
@@ -390,7 +390,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(c
while (statement.executeStep())
{
- addonid = statement.getInt32(0);
+ addonStorageID = statement.getInt32(0);
}
}
finally
@@ -402,15 +402,15 @@ Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(c
try
{
- if (addonid != null)
+ if (addonStorageID != null)
{
// addon already exists (in another collection, or from previous commit of this collection)
- statement2.bindInt32Parameter(0, addonid);
+ statement2.bindInt32Parameter(0, addonStorageID);
}
- else if (addon.id != -1)
+ else if (addon.storageID != -1)
{
// addon doesn't already exist, but exists from a previous commit of this collection (?)
- statement2.bindInt32Parameter(0, addon.id);
+ statement2.bindInt32Parameter(0, addon.storageID);
}
else
{
@@ -440,50 +440,50 @@ Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(c
statement2.reset();
}
- if (addon.id == -1 && addonid == null)
+ if (addon.storageID == -1 && addonStorageID == null)
{
- addonid = this.connection.lastInsertRowID;
+ addonStorageID = this.connection.lastInsertRowID;
}
// add the other addon bits
for (var id in addon.compatibleApplications)
{
- this._commitAddonCompatibleApplication(addonid, addon.compatibleApplications[id]);
+ this._commitAddonCompatibleApplication(addonStorageID, addon.compatibleApplications[id]);
}
for (var id in addon.compatibleOS)
{
- this._commitAddonCompatibleOS(addonid, addon.compatibleOS[id]);
+ this._commitAddonCompatibleOS(addonStorageID, addon.compatibleOS[id]);
}
for (var id in addon.installs)
{
- this._commitAddonInstall(addonid, addon.installs[id]);
+ this._commitAddonInstall(addonStorageID, addon.installs[id]);
}
for (var i=0; i<addon.comments.length; i++)
{
- this._commitAddonComment(addonid, addon.comments[i]);
+ this._commitAddonComment(addonStorageID, addon.comments[i]);
}
// add the addon connector
- var statement3 = this.connection.createStatement("REPLACE INTO addons VALUES (?1, ?2, ?3, ?4)");
+ var statement3 = this.connection.createStatement("REPLACE INTO collectionsAddons VALUES (?1, ?2, ?3, ?4)");
try
{
- if (addon.addonId == -1)
+ if (addon.collectionsAddonsStorageID == -1)
{
statement3.bindNullParameter(0);
}
else
{
- statement3.bindInt32Parameter(0, addon.addonId);
+ statement3.bindInt32Parameter(0, addon.collectionsAddonsStorageID);
}
- statement3.bindInt32Parameter(1, collection.id);
- statement3.bindInt32Parameter(2, addonid);
+ statement3.bindInt32Parameter(1, collection.storageID);
+ statement3.bindInt32Parameter(2, addonStorageID);
statement3.bindInt32Parameter(3, (addon.read?1:0));
statement3.execute();
@@ -493,21 +493,21 @@ Bandwagon.Factory.CollectionFactory.prototype._commitCollectionItem = function(c
statement3.reset();
}
- if (addon.addonId == -1)
+ if (addon.collectionsAddonsStorageID == -1)
{
- addon.addonId = this.connection.lastInsertRowID;
+ addon.collectionsAddonsStorageID = this.connection.lastInsertRowID;
}
return true;
}
-Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleApplication = function(addonid, application)
+Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleApplication = function(addonStorageID, application)
{
var statement = this.connection.createStatement("DELETE FROM addonCompatibleApplications WHERE addon = ?1");
try
{
- statement.bindInt32Parameter(0, addonid);
+ statement.bindInt32Parameter(0, addonStorageID);
statement.execute();
}
finally
@@ -519,7 +519,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleApplication
try
{
- statement2.bindInt32Parameter(0, addonid);
+ statement2.bindInt32Parameter(0, addonStorageID);
statement2.bindUTF8StringParameter(1, application.name);
statement2.bindInt32Parameter(2, application.applicationId);
statement2.bindUTF8StringParameter(3, application.minVersion);
@@ -534,13 +534,13 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleApplication
}
}
-Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleOS = function(addonid, os)
+Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleOS = function(addonStorageID, os)
{
var statement = this.connection.createStatement("DELETE FROM addonCompatibleOS WHERE addon = ?1");
try
{
- statement.bindInt32Parameter(0, addonid);
+ statement.bindInt32Parameter(0, addonStorageID);
statement.execute();
}
finally
@@ -552,7 +552,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleOS = functio
try
{
- statement2.bindInt32Parameter(0, addonid);
+ statement2.bindInt32Parameter(0, addonStorageID);
statement2.bindUTF8StringParameter(1, os);
statement2.execute();
@@ -563,13 +563,13 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonCompatibleOS = functio
}
}
-Bandwagon.Factory.CollectionFactory.prototype._commitAddonInstall = function(addonid, install)
+Bandwagon.Factory.CollectionFactory.prototype._commitAddonInstall = function(addonStorageID, install)
{
var statement = this.connection.createStatement("DELETE FROM addonInstalls WHERE addon = ?1");
try
{
- statement.bindInt32Parameter(0, addonid);
+ statement.bindInt32Parameter(0, addonStorageID);
statement.execute();
}
finally
@@ -581,7 +581,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonInstall = function(add
try
{
- statement2.bindInt32Parameter(0, addonid);
+ statement2.bindInt32Parameter(0, addonStorageID);
statement2.bindUTF8StringParameter(1, install.url);
statement2.bindUTF8StringParameter(2, install.hash);
statement2.bindUTF8StringParameter(3, install.os);
@@ -594,13 +594,13 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonInstall = function(add
}
}
-Bandwagon.Factory.CollectionFactory.prototype._commitAddonComment = function(addonid, comment)
+Bandwagon.Factory.CollectionFactory.prototype._commitAddonComment = function(addonStorageID, comment)
{
var statement = this.connection.createStatement("DELETE FROM addonComments WHERE addon = ?1");
try
{
- statement.bindInt32Parameter(0, addonid);
+ statement.bindInt32Parameter(0, addonStorageID);
statement.execute();
}
finally
@@ -612,7 +612,7 @@ Bandwagon.Factory.CollectionFactory.prototype._commitAddonComment = function(add
try
{
- statement2.bindInt32Parameter(0, addonid);
+ statement2.bindInt32Parameter(0, addonStorageID);
statement2.bindUTF8StringParameter(1, comment.comment);
statement2.bindUTF8StringParameter(2, comment.author);
diff --git a/bandwagon/content/scripts/model/addon.js b/bandwagon/content/scripts/model/addon.js
index 58e74fc..1131f64 100644
--- a/bandwagon/content/scripts/model/addon.js
+++ b/bandwagon/content/scripts/model/addon.js
@@ -45,6 +45,9 @@ Bandwagon.Model.Addon = function()
this.TYPE_EXTENSION = 1;
this.STATUS_PUBLIC = 4;
+ this.storageID = -1;
+ this.collectionsAddonsStorageID = -1;
+
this.name = "";
this.type = -1;
this.guid = "";
@@ -260,16 +263,18 @@ Bandwagon.Model.Addon.prototype.unserialize = function(xaddon)
for each (var xauthor in xaddon.authors.author)
{
- this.authors.push(xauthor.text().toString());
+ this.authors[xauthor.text().toString()] = xauthor.text().toString();
}
for each (var xcategory in xaddon.categories.category)
{
- this.categories.push(xcategory.text().toString());
+ this.categories[xcategory.text().toString()] = xcategory.text().toString();
}
this.dateAdded = this.Bandwagon.Util.ISO8601toDate(xaddon.meta.added.text().toString());
+ this.comments = [];
+
for each (var xcomment in xaddon.meta.comments.comment)
{
this.comments.push(xcomment.text().toString());
diff --git a/bandwagon/content/scripts/model/collection.js b/bandwagon/content/scripts/model/collection.js
index f89e701..ba949bd 100644
--- a/bandwagon/content/scripts/model/collection.js
+++ b/bandwagon/content/scripts/model/collection.js
@@ -38,6 +38,7 @@ Bandwagon.Model.Collection = function()
{
this.Bandwagon = Bandwagon;
+ this.storageID = -1;
this.resourceURL = "";
this.name = "";
diff --git a/bandwagon/content/scripts/model/serviceDocument.js b/bandwagon/content/scripts/model/serviceDocument.js
index 67e87eb..2cd8aff 100644
--- a/bandwagon/content/scripts/model/serviceDocument.js
+++ b/bandwagon/content/scripts/model/serviceDocument.js
@@ -38,11 +38,14 @@ Bandwagon.Model.ServiceDocument = function()
{
this.Bandwagon = Bandwagon;
- this.collections = {};
+ this.collections = [];
}
Bandwagon.Model.ServiceDocument.prototype.unserialize = function(xsharing)
{
+ var xmlns = new Namespace('http://www.w3.org/XML/1998/namespace');
+ var baseURL = xsharing.@xmlns::base.toString();
+
// collections
for each (var xcollection in xsharing.collections.collection)
diff --git a/bandwagon/content/scripts/rpc/constants.js b/bandwagon/content/scripts/rpc/constants.js
index b558245..d0d36f4 100644
--- a/bandwagon/content/scripts/rpc/constants.js
+++ b/bandwagon/content/scripts/rpc/constants.js
@@ -37,7 +37,7 @@
Bandwagon.RPC.Constants = new function()
{
- this.BANDWAGON_RPC_SERVICE_DOCUMENT = "https://bandwagon.stage.mozilla.org/en-US/firefox/api/1.3/sharing";
+ this.BANDWAGON_RPC_SERVICE_DOCUMENT = "https://bandwagon.stage.mozilla.com/en-US/firefox/api/1.3/sharing";
this.BANDWAGON_RPC_EVENT_TYPE_BANDWAGON_RPC_SHARE_TO_EMAIL_ACTION = "firefox/api/recommend_email";
this.BANDWAGON_RPC_EVENT_TYPE_BANDWAGON_RPC_GET_SERVICE_DOCUMENT_COMPLETE = 100;
diff --git a/bandwagon/content/scripts/rpc/net.js b/bandwagon/content/scripts/rpc/net.js
index 82c712e..d6ae3e9 100644
--- a/bandwagon/content/scripts/rpc/net.js
+++ b/bandwagon/content/scripts/rpc/net.js
@@ -117,9 +117,12 @@ Bandwagon.RPC.Net = function(Bandwagon, Components)
// parse xml here instead, put in response var
var xmlStr = rpcnetrequest.responseText;
- // workaround for E4X bug/feature
+ // workaround for E4X bugs/features
xmlStr = xmlStr.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, ""); // bug 336551
+ //default xml namespace = 'http://addons.mozilla.org/';
+ xmlStr = xmlStr.replace(/xmlns="http:\/\/addons.mozilla.org\/"/, "");
+
response = new XML(xmlStr);
//rpcnet._logger.debug("Bandwagon.RPC.Net.send.onreadystatechange: ' + rpcnet.id + ': XML representation: '" + response.toXMLString() + "'");
diff --git a/bandwagon/content/ui/bindings/bandwagon.xml b/bandwagon/content/ui/bindings/bandwagon.xml
index 919d066..93cac05 100644
--- a/bandwagon/content/ui/bindings/bandwagon.xml
+++ b/bandwagon/content/ui/bindings/bandwagon.xml
@@ -144,13 +144,13 @@
</content>
<implementation>
- <field name="collectionItem"/>
+ <field name="addon"/>
<field name="_stringBundle">document.getAnonymousElementByAttribute(this, "anonid", "stringbundle");</field>
<constructor>
<![CDATA[
- if (this.collectionItem)
- this.setAddon(this.collectionItem);
+ if (this.addon)
+ this.setAddon(this.addon);
]]>
</constructor>
@@ -291,24 +291,24 @@
</property>
<method name="setAddon">
- <parameter name="collectionItem"/>
+ <parameter name="addon"/>
<body>
<![CDATA[
- this.collectionItem = collectionItem;
- this.name = collectionItem.name;
- this.guid = collectionItem.guid;
- this.summary = collectionItem.summary;
- this.description = collectionItem.summary; // Use summary and not description
- this.iconURL = collectionItem.icon;
- this.thumbnailURL = collectionItem.thumbnail;
- this.author = (collectionItem.author?collectionItem.author:"Unknown");
- this.category = (collectionItem.category?collectionItem.category:"Unknown");
- this.dateAdded = collectionItem.dateAdded;
- this.read = collectionItem.read;
-
- if (collectionItem.comments.length > 0)
+ this.addon = addon;
+ this.name = addon.name;
+ this.guid = addon.guid;
+ this.summary = addon.summary;
+ this.description = addon.summary; // Use summary and not description
+ this.iconURL = addon.icon;
+ this.thumbnailURL = addon.thumbnail;
+ this.author = (addon.author?addon.author:"Unknown");
+ this.category = (addon.category?addon.category:"Unknown");
+ this.dateAdded = addon.dateAdded;
+ this.read = addon.read;
+
+ if (addon.comments.length > 0)
{
- this.comment = collectionItem.comments[0];
+ this.comment = addon.comments[0];
}
else
{
@@ -319,7 +319,7 @@
}
}
- var canInstall = collectionItem.canInstall(Bandwagon.Util.getHostEnvironmentInfo());
+ var canInstall = addon.canInstall(Bandwagon.Util.getHostEnvironmentInfo());
this.showVersionHelper(canInstall.type, canInstall.requiredVersion);
if (document.getAnonymousElementByAttribute(this, 'anonid', 'publish'))
diff --git a/bandwagon/content/ui/collectionsPaneController.js b/bandwagon/content/ui/collectionsPaneController.js
index b1a9a39..7b193dc 100644
--- a/bandwagon/content/ui/collectionsPaneController.js
+++ b/bandwagon/content/ui/collectionsPaneController.js
@@ -63,7 +63,7 @@ Bandwagon.Controller.CollectionsPane.init = function()
Bandwagon.Logger.debug("Initializing Bandwagon.Controller.CollectionsPane");
this.elemBandwagonCollections = document.getElementById("bandwagon-collections-list");
- this.elemBandwagonAddons = document.getElementById("bandwagon-collectionitems-list");
+ this.elemBandwagonAddons = document.getElementById("bandwagon-addons-list");
this.elemBandwagonButtonViewSite = document.getElementById("bandwagon-button-viewsite");
//this.elemBandwagonButtonUpdate = document.getElementById("bandwagon-button-update");
this.elemBandwagonButtonRemove = document.getElementById("bandwagon-button-remove");
@@ -409,12 +409,12 @@ Bandwagon.Controller.CollectionsPane.doExpandAddon = function(event)
var selectedElemBandwagonAddon = Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem;
- if (selectedElemBandwagonAddon != null && selectedElemBandwagonAddon.collectionItem != null)
+ if (selectedElemBandwagonAddon != null && selectedElemBandwagonAddon.addon != null)
{
selectedElemBandwagonAddon.read = true;
- var collectionItem = selectedElemBandwagonAddon.collectionItem;
- collectionItem.read = true;
+ var addon = selectedElemBandwagonAddon.addon;
+ addon.read = true;
Bandwagon.Controller.CollectionsPane.elemBandwagonCollections.selectedItem.unread = Bandwagon.Controller.CollectionsPane.elemBandwagonCollections.selectedItem.collection.getUnreadAddons().length;
@@ -423,11 +423,11 @@ Bandwagon.Controller.CollectionsPane.doExpandAddon = function(event)
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var elemBandwagonAddonExpanded = document.createElementNS(XULNS, "bandwagonAddonExpanded");
- elemBandwagonAddonExpanded.collectionItem = collectionItem;
+ elemBandwagonAddonExpanded.addon = addon;
try
{
- Bandwagon.Controller.CollectionsPane.elemBandwagonAddonExpanded.setAddon(collectionItem);
+ Bandwagon.Controller.CollectionsPane.elemBandwagonAddonExpanded.setAddon(addon);
} catch (e) {}
Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.insertBefore(elemBandwagonAddonExpanded, selectedElemBandwagonAddon);
@@ -444,7 +444,7 @@ Bandwagon.Controller.CollectionsPane.doMoreInfo = function(event)
if (Bandwagon.Controller.CollectionsPane.elemBandwagonAddons == null)
return;
- Bandwagon.Controller.CollectionsPane._openURL(Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem.collectionItem.learnmore);
+ Bandwagon.Controller.CollectionsPane._openURL(Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem.addon.learnmore);
}
Bandwagon.Controller.CollectionsPane.doAddToFirefox = function()
@@ -452,16 +452,16 @@ Bandwagon.Controller.CollectionsPane.doAddToFirefox = function()
if (Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem == null)
return;
- var collectionItem = Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem.collectionItem;
+ var addon = Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.selectedItem.addon;
if (!isXPInstallEnabled())
return;
- if (collectionItem.eula && collectionItem.eula != "")
+ if (addon.eula && addon.eula != "")
{
var eula = {
- name: collectionItem.name,
- text: collectionItem.eula,
+ name: addon.name,
+ text: addon.eula,
accepted: false
};
@@ -472,7 +472,7 @@ Bandwagon.Controller.CollectionsPane.doAddToFirefox = function()
return;
}
- var installer = collectionItem.getInstaller(Bandwagon.Util.getHostEnvironmentInfo().os);
+ var installer = addon.getInstaller(Bandwagon.Util.getHostEnvironmentInfo().os);
if (!installer)
{
@@ -481,7 +481,7 @@ Bandwagon.Controller.CollectionsPane.doAddToFirefox = function()
}
var params = [];
- params[collectionItem.name] = installer;
+ params[addon.name] = installer;
// TODO do some user collectionback here?
@@ -618,7 +618,7 @@ Bandwagon.Controller.CollectionsPane.prefObserver =
if (topic != "nsPref:changed")
return;
- if (data.match(/collectionitemsperpage/))
+ if (data.match(/addonsperpage/))
{
Bandwagon.Controller.CollectionsPane.refresh();
}
@@ -733,24 +733,24 @@ Bandwagon.Controller.CollectionsPane._repopulateAddonsList = function(collection
Bandwagon.Logger.debug("Bandwagon.Controller.CollectionsPane: repopulating collection '" + collection.resourceURL + "'");
- // sort by collectionItem.dateAdded
+ // sort by addon.dateAdded
- var collectionItemsSorted = collection.getSortedAddons();
+ var addonsSorted = collection.getSortedAddons();
// repopulate with collection items
- var collectionItemsPerPage = bandwagonService.getAddonsPerPage(collection);
+ var addonsPerPage = bandwagonService.getAddonsPerPage(collection);
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
- for (var i=0; (i<collectionItemsSorted.length&&i<collectionItemsPerPage); i++)
+ for (var i=0; (i<addonsSorted.length&&i<addonsPerPage); i++)
{
- var collectionItem = collection.collectionItems[collectionItemsSorted[i].guid];
+ var addon = collection.addons[addonsSorted[i].guid];
- if (collectionItem == null)
+ if (addon == null)
continue;
var elemBandwagonAddon = document.createElementNS(XULNS, "bandwagonAddon");
- elemBandwagonAddon.collectionItem = collectionItem;
+ elemBandwagonAddon.addon = addon;
Bandwagon.Controller.CollectionsPane.elemBandwagonAddons.appendChild(elemBandwagonAddon);
}
diff --git a/bandwagon/content/ui/overlays/extensionsOverlay.xul b/bandwagon/content/ui/overlays/extensionsOverlay.xul
index a008812..f2d1fb3 100644
--- a/bandwagon/content/ui/overlays/extensionsOverlay.xul
+++ b/bandwagon/content/ui/overlays/extensionsOverlay.xul
@@ -109,7 +109,7 @@
</vbox>
<deck id="bandwagon-collection-deck" selectedIndex="0" flex="1">
<hbox flex="1">
- <richlistbox id="bandwagon-collectionitems-list"
+ <richlistbox id="bandwagon-addons-list"
seltype="single"
flex="1"/>
</hbox>
diff --git a/bandwagon/content/ui/overlays/extensionsOverlayController.js b/bandwagon/content/ui/overlays/extensionsOverlayController.js
index 05a09d6..50a66d8 100644
--- a/bandwagon/content/ui/overlays/extensionsOverlayController.js
+++ b/bandwagon/content/ui/overlays/extensionsOverlayController.js
@@ -99,7 +99,7 @@ Bandwagon.Controller.ExtensionsOverlay.init = function()
if (bandwagonService.collections[inArgs.selectCollection])
{
- Bandwagon.Controller.ColllectionsPane.preferredCollection = bandwagonService.collections[inArgs.selectCollection];
+ Bandwagon.Controller.CollectionsPane.preferredCollection = bandwagonService.collections[inArgs.selectCollection];
}
setTimeout(function()
diff --git a/bandwagon/content/ui/settingsController.js b/bandwagon/content/ui/settingsController.js
index 4e5de97..ef7d60e 100644
--- a/bandwagon/content/ui/settingsController.js
+++ b/bandwagon/content/ui/settingsController.js
@@ -129,7 +129,7 @@ Bandwagon.Controller.Settings.collectionsListChangeObserver = function()
Bandwagon.Controller.Settings.invalidate = function()
{
var collectionCount = Bandwagon.Controller.Settings.elemBandwagonCollections.getElementsByTagName("bandwagonCollection").length;
- var colllectionSelection = Bandwagon.Controller.Settings.elemBandwagonCollections.selectedItem;
+ var collectionSelection = Bandwagon.Controller.Settings.elemBandwagonCollections.selectedItem;
var disabled = (!collectionSelection || collectionCount == 0);
@@ -162,7 +162,10 @@ Bandwagon.Controller.Settings.doShowCollection = function()
return;
}
- Bandwagon.Controller.Settings.elemCollectionName.value = (collection.name&&collection.name!=""?collection.name:collection.resourceURL);
+ if ( Bandwagon.Controller.Settings.elemCollectionName)
+ {
+ Bandwagon.Controller.Settings.elemCollectionName.value = (collection.name&&collection.name!=""?collection.name:collection.resourceURL);
+ }
//if (document.getElementById("checkbox-updateinterval-global").checked)
if (true)