diff --git a/_includes/recline-deps.html b/_includes/recline-deps.html index 84d43041..87705ccc 100644 --- a/_includes/recline-deps.html +++ b/_includes/recline-deps.html @@ -23,7 +23,6 @@ - diff --git a/src/backend.ckan.js b/src/backend.ckan.js index dafe6ecd..62fc91e7 100644 --- a/src/backend.ckan.js +++ b/src/backend.ckan.js @@ -27,6 +27,9 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {}; my.__type__ = 'ckan'; + // private - use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // Default CKAN API endpoint used for requests (you can change this but it will affect every request!) // // DEPRECATION: this will be removed in v0.7. Please set endpoint attribute on dataset instead @@ -41,7 +44,7 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {}; dataset.id = out.resource_id; var wrapper = my.DataStore(out.endpoint); } - var dfd = new _.Deferred(); + var dfd = new Deferred(); var jqxhr = wrapper.search({resource_id: dataset.id, limit: 0}); jqxhr.done(function(results) { // map ckan types to our usual types ... @@ -84,7 +87,7 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {}; var wrapper = my.DataStore(out.endpoint); } var actualQuery = my._normalizeQuery(queryObj, dataset); - var dfd = new _.Deferred(); + var dfd = new Deferred(); var jqxhr = wrapper.search(actualQuery); jqxhr.done(function(results) { var out = { diff --git a/src/backend.couchdb.js b/src/backend.couchdb.js index 8c2c9ad9..994cfc9b 100755 --- a/src/backend.couchdb.js +++ b/src/backend.couchdb.js @@ -5,6 +5,9 @@ this.recline.Backend.CouchDB = this.recline.Backend.CouchDB || {}; (function($, my) { my.__type__ = 'couchdb'; +// use either jQuery or Underscore Deferred depending on what is available +var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ## CouchDB Wrapper // // Connecting to [CouchDB] (http://www.couchdb.apache.org/) endpoints. @@ -197,7 +200,7 @@ my.__type__ = 'couchdb'; var db_url = dataset.db_url; var view_url = dataset.view_url; var cdb = new my.CouchDBWrapper(db_url, view_url); - var dfd = new _.Deferred(); + var dfd = new Deferred(); // if 'doc' attribute is present, return schema of that // else return schema of 'value' attribute which contains @@ -239,7 +242,7 @@ my.__type__ = 'couchdb'; // // my.save = function (changes, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var total = changes.creates.length + changes.updates.length + changes.deletes.length; var results = {'done': [], 'fail': [] }; @@ -280,7 +283,7 @@ my.save = function (changes, dataset) { // @param {Object} recline.Dataset instance // @param {Object} recline.Query instance. my.query = function(queryObj, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var db_url = dataset.db_url; var view_url = dataset.view_url; var query_options = dataset.query_options; @@ -475,7 +478,7 @@ function randomId(length, chars) { } _createDocument = function (new_doc, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var db_url = dataset.db_url; var view_url = dataset.view_url; var _id = new_doc['id']; @@ -497,7 +500,7 @@ _createDocument = function (new_doc, dataset) { }; _updateDocument = function (new_doc, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var db_url = dataset.db_url; var view_url = dataset.view_url; var _id = new_doc['id']; @@ -527,7 +530,7 @@ _updateDocument = function (new_doc, dataset) { }; _deleteDocument = function (del_doc, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var db_url = dataset.db_url; var view_url = dataset.view_url; var _id = del_doc['id']; diff --git a/src/backend.csv.js b/src/backend.csv.js index 454015f0..aacfc5e9 100644 --- a/src/backend.csv.js +++ b/src/backend.csv.js @@ -6,6 +6,9 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {}; (function(my) { my.__type__ = 'csv'; + // use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ## fetch // // fetch supports 3 options depending on the attribute provided on the dataset argument @@ -24,7 +27,7 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {}; // } // my.fetch = function(dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); if (dataset.file) { var reader = new FileReader(); var encoding = dataset.encoding || 'UTF-8'; diff --git a/src/backend.dataproxy.js b/src/backend.dataproxy.js index b8f17826..44db50cf 100644 --- a/src/backend.dataproxy.js +++ b/src/backend.dataproxy.js @@ -10,6 +10,10 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {}; // Needed because use JSONP so do not receive e.g. 500 errors my.timeout = 5000; + + // use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ## load // // Load data from a URL via the [DataProxy](http://github.com/okfn/dataproxy). @@ -26,7 +30,7 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {}; data: data, dataType: 'jsonp' }); - var dfd = new _.Deferred(); + var dfd = new Deferred(); _wrapInTimeout(jqxhr).done(function(results) { if (results.error) { dfd.reject(results.error); @@ -50,7 +54,7 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {}; // Many of backends use JSONP and so will not get error messages and this is // a crude way to catch those errors. var _wrapInTimeout = function(ourFunction) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var timer = setTimeout(function() { dfd.reject({ message: 'Request Error: Backend did not respond after ' + (my.timeout / 1000) + ' seconds' diff --git a/src/backend.elasticsearch.js b/src/backend.elasticsearch.js index 56075a3c..82ba52de 100644 --- a/src/backend.elasticsearch.js +++ b/src/backend.elasticsearch.js @@ -5,6 +5,9 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; (function($, my) { my.__type__ = 'elasticsearch'; + // use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ## ElasticSearch Wrapper // // A simple JS wrapper around an [ElasticSearch](http://www.elasticsearch.org/) endpoints. @@ -179,7 +182,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; // ### fetch my.fetch = function(dataset) { var es = new my.Wrapper(dataset.url, my.esOptions); - var dfd = new _.Deferred(); + var dfd = new Deferred(); es.mapping().done(function(schema) { if (!schema){ @@ -207,7 +210,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; my.save = function(changes, dataset) { var es = new my.Wrapper(dataset.url, my.esOptions); if (changes.creates.length + changes.updates.length + changes.deletes.length > 1) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); msg = 'Saving more than one item at a time not yet supported'; alert(msg); dfd.reject(msg); @@ -225,7 +228,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; // ### query my.query = function(queryObj, dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var es = new my.Wrapper(dataset.url, my.esOptions); var jqxhr = es.query(queryObj); jqxhr.done(function(results) { diff --git a/src/backend.gdocs.js b/src/backend.gdocs.js index 3f1812a8..4d18aa9b 100644 --- a/src/backend.gdocs.js +++ b/src/backend.gdocs.js @@ -5,6 +5,9 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {}; (function(my) { my.__type__ = 'gdocs'; + // use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ## Google spreadsheet backend // // Fetch data from a Google Docs spreadsheet. @@ -29,13 +32,13 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {}; // * fields: array of Field objects // * records: array of objects for each row my.fetch = function(dataset) { - var dfd = new _.Deferred(); + var dfd = new Deferred(); var urls = my.getGDocsAPIUrls(dataset.url); // TODO cover it with tests // get the spreadsheet title (function () { - var titleDfd = new _.Deferred(); + var titleDfd = new Deferred(); jQuery.getJSON(urls.spreadsheet, function (d) { titleDfd.resolve({ diff --git a/src/backend.solr.js b/src/backend.solr.js index 51b4ab71..36e465f0 100644 --- a/src/backend.solr.js +++ b/src/backend.solr.js @@ -5,6 +5,9 @@ this.recline.Backend.Solr = this.recline.Backend.Solr || {}; (function($, my) { my.__type__ = 'solr'; + // use either jQuery or Underscore Deferred depending on what is available + var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; + // ### fetch // // dataset must have a solr or url attribute pointing to solr endpoint @@ -18,7 +21,7 @@ this.recline.Backend.Solr = this.recline.Backend.Solr || {}; dataType: 'jsonp', jsonp: 'json.wrf' }); - var dfd = new _.Deferred(); + var dfd = new Deferred(); jqxhr.done(function(results) { // if we get 0 results we cannot get fields var fields = [] @@ -51,7 +54,7 @@ this.recline.Backend.Solr = this.recline.Backend.Solr || {}; dataType: 'jsonp', jsonp: 'json.wrf' }); - var dfd = new _.Deferred(); + var dfd = new Deferred(); jqxhr.done(function(results) { var out = { total: results.response.numFound, diff --git a/src/model.js b/src/model.js index c279b655..2f405762 100644 --- a/src/model.js +++ b/src/model.js @@ -4,7 +4,7 @@ this.recline.Model = this.recline.Model || {}; (function(my) { -// private - use either jQuery or Underscore Deferred depending on what is available +// use either jQuery or Underscore Deferred depending on what is available var Deferred = _.isUndefined(this.jQuery) ? _.Deferred : jQuery.Deferred; // ## Dataset diff --git a/test/index.html b/test/index.html index 7a102b4f..e9152613 100644 --- a/test/index.html +++ b/test/index.html @@ -10,7 +10,6 @@ -