[build][xs]: regular build.

This commit is contained in:
Rufus Pollock
2013-01-04 20:14:33 +00:00
parent 965bf6e9bb
commit a50733e552
2 changed files with 76 additions and 72 deletions

View File

@@ -2,7 +2,7 @@
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Model = this.recline.Model || {}; this.recline.Model = this.recline.Model || {};
(function($, my) { (function(my) {
// ## <a id="dataset">Dataset</a> // ## <a id="dataset">Dataset</a>
my.Dataset = Backbone.Model.extend({ my.Dataset = Backbone.Model.extend({
@@ -47,7 +47,7 @@ my.Dataset = Backbone.Model.extend({
// Retrieve dataset and (some) records from the backend. // Retrieve dataset and (some) records from the backend.
fetch: function() { fetch: function() {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
if (this.backend !== recline.Backend.Memory) { if (this.backend !== recline.Backend.Memory) {
this.backend.fetch(this.toJSON()) this.backend.fetch(this.toJSON())
@@ -181,7 +181,7 @@ my.Dataset = Backbone.Model.extend({
// also returned. // also returned.
query: function(queryObj) { query: function(queryObj) {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
this.trigger('query:start'); this.trigger('query:start');
if (queryObj) { if (queryObj) {
@@ -245,7 +245,7 @@ my.Dataset = Backbone.Model.extend({
this.fields.each(function(field) { this.fields.each(function(field) {
query.addFacet(field.id); query.addFacet(field.id);
}); });
var dfd = $.Deferred(); var dfd = new _.Deferred();
this._store.query(query.toJSON(), this.toJSON()).done(function(queryResult) { this._store.query(query.toJSON(), this.toJSON()).done(function(queryResult) {
if (queryResult.facets) { if (queryResult.facets) {
_.each(queryResult.facets, function(facetResult, facetId) { _.each(queryResult.facets, function(facetResult, facetId) {
@@ -585,13 +585,13 @@ Backbone.sync = function(method, model, options) {
return model.backend.sync(method, model, options); return model.backend.sync(method, model, options);
}; };
}(jQuery, this.recline.Model)); }(this.recline.Model));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.Memory = this.recline.Backend.Memory || {}; this.recline.Backend.Memory = this.recline.Backend.Memory || {};
(function($, my) { (function(my) {
my.__type__ = 'memory'; my.__type__ = 'memory';
// ## Data Wrapper // ## Data Wrapper
@@ -600,42 +600,44 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
// functionality like querying, faceting, updating (by ID) and deleting (by // functionality like querying, faceting, updating (by ID) and deleting (by
// ID). // ID).
// //
// @param data list of hashes for each record/row in the data ({key: // @param records list of hashes for each record/row in the data ({key:
// value, key: value}) // value, key: value})
// @param fields (optional) list of field hashes (each hash defining a field // @param fields (optional) list of field hashes (each hash defining a field
// as per recline.Model.Field). If fields not specified they will be taken // as per recline.Model.Field). If fields not specified they will be taken
// from the data. // from the data.
my.Store = function(data, fields) { my.Store = function(records, fields) {
var self = this; var self = this;
this.data = data; this.records = records;
// backwards compatability (in v0.5 records was named data)
this.data = this.records;
if (fields) { if (fields) {
this.fields = fields; this.fields = fields;
} else { } else {
if (data) { if (records) {
this.fields = _.map(data[0], function(value, key) { this.fields = _.map(records[0], function(value, key) {
return {id: key, type: 'string'}; return {id: key, type: 'string'};
}); });
} }
} }
this.update = function(doc) { this.update = function(doc) {
_.each(self.data, function(internalDoc, idx) { _.each(self.records, function(internalDoc, idx) {
if(doc.id === internalDoc.id) { if(doc.id === internalDoc.id) {
self.data[idx] = doc; self.records[idx] = doc;
} }
}); });
}; };
this.remove = function(doc) { this.remove = function(doc) {
var newdocs = _.reject(self.data, function(internalDoc) { var newdocs = _.reject(self.records, function(internalDoc) {
return (doc.id === internalDoc.id); return (doc.id === internalDoc.id);
}); });
this.data = newdocs; this.records = newdocs;
}; };
this.save = function(changes, dataset) { this.save = function(changes, dataset) {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
// TODO _.each(changes.creates) { ... } // TODO _.each(changes.creates) { ... }
_.each(changes.updates, function(record) { _.each(changes.updates, function(record) {
self.update(record); self.update(record);
@@ -648,10 +650,10 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}, },
this.query = function(queryObj) { this.query = function(queryObj) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
var numRows = queryObj.size || this.data.length; var numRows = queryObj.size || this.records.length;
var start = queryObj.from || 0; var start = queryObj.from || 0;
var results = this.data; var results = this.records;
results = this._applyFilters(results, queryObj); results = this._applyFilters(results, queryObj);
results = this._applyFreeTextQuery(results, queryObj); results = this._applyFreeTextQuery(results, queryObj);
@@ -816,11 +818,11 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}; };
this.transform = function(editFunc) { this.transform = function(editFunc) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
// TODO: should we clone before mapping? Do not see the point atm. // TODO: should we clone before mapping? Do not see the point atm.
self.data = _.map(self.data, editFunc); self.records = _.map(self.records, editFunc);
// now deal with deletes (i.e. nulls) // now deal with deletes (i.e. nulls)
self.data = _.filter(self.data, function(record) { self.records = _.filter(self.records, function(record) {
return record != null; return record != null;
}); });
dfd.resolve(); dfd.resolve();
@@ -828,4 +830,4 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}; };
}; };
}(jQuery, this.recline.Backend.Memory)); }(this.recline.Backend.Memory));

100
dist/recline.js vendored
View File

@@ -2,7 +2,7 @@ this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.Ckan = this.recline.Backend.Ckan || {}; this.recline.Backend.Ckan = this.recline.Backend.Ckan || {};
(function($, my) { (function(my) {
// ## CKAN Backend // ## CKAN Backend
// //
// This provides connection to the CKAN DataStore (v2) // This provides connection to the CKAN DataStore (v2)
@@ -41,7 +41,7 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {};
dataset.id = out.resource_id; dataset.id = out.resource_id;
var wrapper = my.DataStore(out.endpoint); var wrapper = my.DataStore(out.endpoint);
} }
var dfd = $.Deferred(); var dfd = new _.Deferred();
var jqxhr = wrapper.search({resource_id: dataset.id, limit: 0}); var jqxhr = wrapper.search({resource_id: dataset.id, limit: 0});
jqxhr.done(function(results) { jqxhr.done(function(results) {
// map ckan types to our usual types ... // map ckan types to our usual types ...
@@ -84,7 +84,7 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {};
var wrapper = my.DataStore(out.endpoint); var wrapper = my.DataStore(out.endpoint);
} }
var actualQuery = my._normalizeQuery(queryObj, dataset); var actualQuery = my._normalizeQuery(queryObj, dataset);
var dfd = $.Deferred(); var dfd = new _.Deferred();
var jqxhr = wrapper.search(actualQuery); var jqxhr = wrapper.search(actualQuery);
jqxhr.done(function(results) { jqxhr.done(function(results) {
var out = { var out = {
@@ -107,7 +107,7 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {};
}; };
that.search = function(data) { that.search = function(data) {
var searchUrl = that.endpoint + '/3/action/datastore_search'; var searchUrl = that.endpoint + '/3/action/datastore_search';
var jqxhr = $.ajax({ var jqxhr = jQuery.ajax({
url: searchUrl, url: searchUrl,
data: data, data: data,
dataType: 'json' dataType: 'json'
@@ -136,13 +136,13 @@ this.recline.Backend.Ckan = this.recline.Backend.Ckan || {};
'float8': 'float' 'float8': 'float'
}; };
}(jQuery, this.recline.Backend.Ckan)); }(this.recline.Backend.Ckan));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.CSV = this.recline.Backend.CSV || {}; this.recline.Backend.CSV = this.recline.Backend.CSV || {};
// Note that provision of jQuery is optional (it is **only** needed if you use fetch on a remote file) // Note that provision of jQuery is optional (it is **only** needed if you use fetch on a remote file)
(function(my, $) { (function(my) {
// ## fetch // ## fetch
// //
@@ -150,7 +150,7 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {};
// //
// 1. `dataset.file`: `file` is an HTML5 file object. This is opened and parsed with the CSV parser. // 1. `dataset.file`: `file` is an HTML5 file object. This is opened and parsed with the CSV parser.
// 2. `dataset.data`: `data` is a string in CSV format. This is passed directly to the CSV parser // 2. `dataset.data`: `data` is a string in CSV format. This is passed directly to the CSV parser
// 3. `dataset.url`: a url to an online CSV file that is ajax accessible (note this usually requires either local or on a server that is CORS enabled). The file is then loaded using $.ajax and parsed using the CSV parser (NB: this requires jQuery) // 3. `dataset.url`: a url to an online CSV file that is ajax accessible (note this usually requires either local or on a server that is CORS enabled). The file is then loaded using jQuery.ajax and parsed using the CSV parser (NB: this requires jQuery)
// //
// All options generates similar data and use the memory store outcome, that is they return something like: // All options generates similar data and use the memory store outcome, that is they return something like:
// //
@@ -162,7 +162,7 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {};
// } // }
// </pre> // </pre>
my.fetch = function(dataset) { my.fetch = function(dataset) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
if (dataset.file) { if (dataset.file) {
var reader = new FileReader(); var reader = new FileReader();
var encoding = dataset.encoding || 'UTF-8'; var encoding = dataset.encoding || 'UTF-8';
@@ -187,7 +187,7 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {};
useMemoryStore: true useMemoryStore: true
}); });
} else if (dataset.url) { } else if (dataset.url) {
$.get(dataset.url).done(function(data) { jQuery.get(dataset.url).done(function(data) {
var rows = my.parseCSV(data, dataset); var rows = my.parseCSV(data, dataset);
dfd.resolve({ dfd.resolve({
records: rows, records: rows,
@@ -424,12 +424,12 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {};
} }
}(this.recline.Backend.CSV, jQuery)); }(this.recline.Backend.CSV));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {}; this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
(function($, my) { (function(my) {
my.__type__ = 'dataproxy'; my.__type__ = 'dataproxy';
// URL for the dataproxy // URL for the dataproxy
my.dataproxy_url = 'http://jsonpdataproxy.appspot.com'; my.dataproxy_url = 'http://jsonpdataproxy.appspot.com';
@@ -448,12 +448,12 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
'max-results': dataset.size || dataset.rows || 1000, 'max-results': dataset.size || dataset.rows || 1000,
type: dataset.format || '' type: dataset.format || ''
}; };
var jqxhr = $.ajax({ var jqxhr = jQuery.ajax({
url: my.dataproxy_url, url: my.dataproxy_url,
data: data, data: data,
dataType: 'jsonp' dataType: 'jsonp'
}); });
var dfd = $.Deferred(); var dfd = new _.Deferred();
_wrapInTimeout(jqxhr).done(function(results) { _wrapInTimeout(jqxhr).done(function(results) {
if (results.error) { if (results.error) {
dfd.reject(results.error); dfd.reject(results.error);
@@ -477,7 +477,7 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
// Many of backends use JSONP and so will not get error messages and this is // Many of backends use JSONP and so will not get error messages and this is
// a crude way to catch those errors. // a crude way to catch those errors.
var _wrapInTimeout = function(ourFunction) { var _wrapInTimeout = function(ourFunction) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
var timer = setTimeout(function() { var timer = setTimeout(function() {
dfd.reject({ dfd.reject({
message: 'Request Error: Backend did not respond after ' + (my.timeout / 1000) + ' seconds' message: 'Request Error: Backend did not respond after ' + (my.timeout / 1000) + ' seconds'
@@ -495,7 +495,7 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {};
return dfd.promise(); return dfd.promise();
} }
}(jQuery, this.recline.Backend.DataProxy)); }(this.recline.Backend.DataProxy));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {};
@@ -677,7 +677,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {};
// ### fetch // ### fetch
my.fetch = function(dataset) { my.fetch = function(dataset) {
var es = new my.Wrapper(dataset.url, my.esOptions); var es = new my.Wrapper(dataset.url, my.esOptions);
var dfd = $.Deferred(); var dfd = new _.Deferred();
es.mapping().done(function(schema) { es.mapping().done(function(schema) {
if (!schema){ if (!schema){
@@ -705,7 +705,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {};
my.save = function(changes, dataset) { my.save = function(changes, dataset) {
var es = new my.Wrapper(dataset.url, my.esOptions); var es = new my.Wrapper(dataset.url, my.esOptions);
if (changes.creates.length + changes.updates.length + changes.deletes.length > 1) { if (changes.creates.length + changes.updates.length + changes.deletes.length > 1) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
msg = 'Saving more than one item at a time not yet supported'; msg = 'Saving more than one item at a time not yet supported';
alert(msg); alert(msg);
dfd.reject(msg); dfd.reject(msg);
@@ -723,7 +723,7 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {};
// ### query // ### query
my.query = function(queryObj, dataset) { my.query = function(queryObj, dataset) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
var es = new my.Wrapper(dataset.url, my.esOptions); var es = new my.Wrapper(dataset.url, my.esOptions);
var jqxhr = es.query(queryObj); var jqxhr = es.query(queryObj);
jqxhr.done(function(results) { jqxhr.done(function(results) {
@@ -782,7 +782,7 @@ this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.GDocs = this.recline.Backend.GDocs || {}; this.recline.Backend.GDocs = this.recline.Backend.GDocs || {};
(function($, my) { (function(my) {
my.__type__ = 'gdocs'; my.__type__ = 'gdocs';
// ## Google spreadsheet backend // ## Google spreadsheet backend
@@ -809,15 +809,15 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {};
// * fields: array of Field objects // * fields: array of Field objects
// * records: array of objects for each row // * records: array of objects for each row
my.fetch = function(dataset) { my.fetch = function(dataset) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
var urls = my.getGDocsAPIUrls(dataset.url); var urls = my.getGDocsAPIUrls(dataset.url);
// TODO cover it with tests // TODO cover it with tests
// get the spreadsheet title // get the spreadsheet title
(function () { (function () {
var titleDfd = $.Deferred(); var titleDfd = new _.Deferred();
$.getJSON(urls.spreadsheet, function (d) { jQuery.getJSON(urls.spreadsheet, function (d) {
titleDfd.resolve({ titleDfd.resolve({
spreadsheetTitle: d.feed.title.$t spreadsheetTitle: d.feed.title.$t
}); });
@@ -827,7 +827,7 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {};
}()).then(function (response) { }()).then(function (response) {
// get the actual worksheet data // get the actual worksheet data
$.getJSON(urls.worksheet, function(d) { jQuery.getJSON(urls.worksheet, function(d) {
var result = my.parseData(d); var result = my.parseData(d);
var fields = _.map(result.fields, function(fieldId) { var fields = _.map(result.fields, function(fieldId) {
return {id: fieldId}; return {id: fieldId};
@@ -941,12 +941,12 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {};
return urls; return urls;
}; };
}(jQuery, this.recline.Backend.GDocs)); }(this.recline.Backend.GDocs));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.Memory = this.recline.Backend.Memory || {}; this.recline.Backend.Memory = this.recline.Backend.Memory || {};
(function($, my) { (function(my) {
my.__type__ = 'memory'; my.__type__ = 'memory';
// ## Data Wrapper // ## Data Wrapper
@@ -955,42 +955,44 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
// functionality like querying, faceting, updating (by ID) and deleting (by // functionality like querying, faceting, updating (by ID) and deleting (by
// ID). // ID).
// //
// @param data list of hashes for each record/row in the data ({key: // @param records list of hashes for each record/row in the data ({key:
// value, key: value}) // value, key: value})
// @param fields (optional) list of field hashes (each hash defining a field // @param fields (optional) list of field hashes (each hash defining a field
// as per recline.Model.Field). If fields not specified they will be taken // as per recline.Model.Field). If fields not specified they will be taken
// from the data. // from the data.
my.Store = function(data, fields) { my.Store = function(records, fields) {
var self = this; var self = this;
this.data = data; this.records = records;
// backwards compatability (in v0.5 records was named data)
this.data = this.records;
if (fields) { if (fields) {
this.fields = fields; this.fields = fields;
} else { } else {
if (data) { if (records) {
this.fields = _.map(data[0], function(value, key) { this.fields = _.map(records[0], function(value, key) {
return {id: key, type: 'string'}; return {id: key, type: 'string'};
}); });
} }
} }
this.update = function(doc) { this.update = function(doc) {
_.each(self.data, function(internalDoc, idx) { _.each(self.records, function(internalDoc, idx) {
if(doc.id === internalDoc.id) { if(doc.id === internalDoc.id) {
self.data[idx] = doc; self.records[idx] = doc;
} }
}); });
}; };
this.remove = function(doc) { this.remove = function(doc) {
var newdocs = _.reject(self.data, function(internalDoc) { var newdocs = _.reject(self.records, function(internalDoc) {
return (doc.id === internalDoc.id); return (doc.id === internalDoc.id);
}); });
this.data = newdocs; this.records = newdocs;
}; };
this.save = function(changes, dataset) { this.save = function(changes, dataset) {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
// TODO _.each(changes.creates) { ... } // TODO _.each(changes.creates) { ... }
_.each(changes.updates, function(record) { _.each(changes.updates, function(record) {
self.update(record); self.update(record);
@@ -1003,10 +1005,10 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}, },
this.query = function(queryObj) { this.query = function(queryObj) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
var numRows = queryObj.size || this.data.length; var numRows = queryObj.size || this.records.length;
var start = queryObj.from || 0; var start = queryObj.from || 0;
var results = this.data; var results = this.records;
results = this._applyFilters(results, queryObj); results = this._applyFilters(results, queryObj);
results = this._applyFreeTextQuery(results, queryObj); results = this._applyFreeTextQuery(results, queryObj);
@@ -1171,11 +1173,11 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}; };
this.transform = function(editFunc) { this.transform = function(editFunc) {
var dfd = $.Deferred(); var dfd = new _.Deferred();
// TODO: should we clone before mapping? Do not see the point atm. // TODO: should we clone before mapping? Do not see the point atm.
self.data = _.map(self.data, editFunc); self.records = _.map(self.records, editFunc);
// now deal with deletes (i.e. nulls) // now deal with deletes (i.e. nulls)
self.data = _.filter(self.data, function(record) { self.records = _.filter(self.records, function(record) {
return record != null; return record != null;
}); });
dfd.resolve(); dfd.resolve();
@@ -1183,7 +1185,7 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
}; };
}; };
}(jQuery, this.recline.Backend.Memory)); }(this.recline.Backend.Memory));
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Backend = this.recline.Backend || {}; this.recline.Backend = this.recline.Backend || {};
this.recline.Backend.Solr = this.recline.Backend.Solr || {}; this.recline.Backend.Solr = this.recline.Backend.Solr || {};
@@ -1204,7 +1206,7 @@ this.recline.Backend.Solr = this.recline.Backend.Solr || {};
dataType: 'jsonp', dataType: 'jsonp',
jsonp: 'json.wrf' jsonp: 'json.wrf'
}); });
var dfd = $.Deferred(); var dfd = new _.Deferred();
jqxhr.done(function(results) { jqxhr.done(function(results) {
// if we get 0 results we cannot get fields // if we get 0 results we cannot get fields
var fields = [] var fields = []
@@ -1237,7 +1239,7 @@ this.recline.Backend.Solr = this.recline.Backend.Solr || {};
dataType: 'jsonp', dataType: 'jsonp',
jsonp: 'json.wrf' jsonp: 'json.wrf'
}); });
var dfd = $.Deferred(); var dfd = new _.Deferred();
jqxhr.done(function(results) { jqxhr.done(function(results) {
var out = { var out = {
total: results.response.numFound, total: results.response.numFound,
@@ -1386,7 +1388,7 @@ if (!('some' in Array.prototype)) {
this.recline = this.recline || {}; this.recline = this.recline || {};
this.recline.Model = this.recline.Model || {}; this.recline.Model = this.recline.Model || {};
(function($, my) { (function(my) {
// ## <a id="dataset">Dataset</a> // ## <a id="dataset">Dataset</a>
my.Dataset = Backbone.Model.extend({ my.Dataset = Backbone.Model.extend({
@@ -1431,7 +1433,7 @@ my.Dataset = Backbone.Model.extend({
// Retrieve dataset and (some) records from the backend. // Retrieve dataset and (some) records from the backend.
fetch: function() { fetch: function() {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
if (this.backend !== recline.Backend.Memory) { if (this.backend !== recline.Backend.Memory) {
this.backend.fetch(this.toJSON()) this.backend.fetch(this.toJSON())
@@ -1565,7 +1567,7 @@ my.Dataset = Backbone.Model.extend({
// also returned. // also returned.
query: function(queryObj) { query: function(queryObj) {
var self = this; var self = this;
var dfd = $.Deferred(); var dfd = new _.Deferred();
this.trigger('query:start'); this.trigger('query:start');
if (queryObj) { if (queryObj) {
@@ -1629,7 +1631,7 @@ my.Dataset = Backbone.Model.extend({
this.fields.each(function(field) { this.fields.each(function(field) {
query.addFacet(field.id); query.addFacet(field.id);
}); });
var dfd = $.Deferred(); var dfd = new _.Deferred();
this._store.query(query.toJSON(), this.toJSON()).done(function(queryResult) { this._store.query(query.toJSON(), this.toJSON()).done(function(queryResult) {
if (queryResult.facets) { if (queryResult.facets) {
_.each(queryResult.facets, function(facetResult, facetId) { _.each(queryResult.facets, function(facetResult, facetId) {
@@ -1969,7 +1971,7 @@ Backbone.sync = function(method, model, options) {
return model.backend.sync(method, model, options); return model.backend.sync(method, model, options);
}; };
}(jQuery, this.recline.Model)); }(this.recline.Model));
/*jshint multistr:true */ /*jshint multistr:true */