[build][xs]: regular build.
This commit is contained in:
48
dist/recline.dataset.js
vendored
48
dist/recline.dataset.js
vendored
@@ -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
100
dist/recline.js
vendored
@@ -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 */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user