[#36,backend/localcsv][m]: local csv 'backend' completed with new csvToDataset function - fixes #36.
This commit is contained in:
parent
cb81fe87af
commit
f51b4b6d79
@ -2,7 +2,7 @@ this.recline = this.recline || {};
|
||||
this.recline.Backend = this.recline.Backend || {};
|
||||
|
||||
(function($, my) {
|
||||
my.loadFromCSVFile = function(file) {
|
||||
my.loadFromCSVFile = function(file, callback) {
|
||||
var metadata = {
|
||||
id: file.name,
|
||||
file: file
|
||||
@ -10,7 +10,8 @@ this.recline.Backend = this.recline.Backend || {};
|
||||
var reader = new FileReader();
|
||||
// TODO
|
||||
reader.onload = function(e) {
|
||||
// console.log(e.target.result);
|
||||
var dataset = my.csvToDataset(e.target.result);
|
||||
callback(dataset);
|
||||
};
|
||||
reader.onerror = function (e) {
|
||||
alert('Failed to load file. Code: ' + e.target.error.code);
|
||||
@ -18,6 +19,22 @@ this.recline.Backend = this.recline.Backend || {};
|
||||
reader.readAsText(file);
|
||||
};
|
||||
|
||||
my.csvToDataset = function(csvString) {
|
||||
var out = my.parseCSV(csvString);
|
||||
fields = _.map(out[0], function(cell) {
|
||||
return { id: cell, label: cell };
|
||||
});
|
||||
var data = _.map(out.slice(1), function(row) {
|
||||
var _doc = {};
|
||||
_.each(out[0], function(fieldId, idx) {
|
||||
_doc[fieldId] = row[idx];
|
||||
});
|
||||
return _doc;
|
||||
});
|
||||
var dataset = recline.Backend.createDataset(data, fields);
|
||||
return dataset;
|
||||
}
|
||||
|
||||
// Converts a Comma Separated Values string into an array of arrays.
|
||||
// Each line in the CSV becomes an array.
|
||||
//
|
||||
|
||||
@ -19,6 +19,14 @@ test("parseCSV", function() {
|
||||
'"Other, AN", 12:35\n';
|
||||
var array = recline.Backend.parseCSV(csv, true);
|
||||
deepEqual(exp, array);
|
||||
|
||||
var csv = 'Name, Value\n' +
|
||||
'"Jones, Jay", 10\n' +
|
||||
'"Xyz ""ABC"" O\'Brien", 11:35\n' +
|
||||
'"Other, AN", 12:35\n';
|
||||
var dataset = recline.Backend.csvToDataset(csv);
|
||||
dataset.query();
|
||||
equal(dataset.currentDocuments.length, 3);
|
||||
});
|
||||
|
||||
})(this.jQuery);
|
||||
|
||||
@ -23,8 +23,10 @@
|
||||
<script type="text/javascript" src="../src/backend/dataproxy.js"></script>
|
||||
<script type="text/javascript" src="../src/backend/gdocs.js"></script>
|
||||
<script type="text/javascript" src="../src/backend/elasticsearch.js"></script>
|
||||
<script type="text/javascript" src="../src/backend/localcsv.js"></script>
|
||||
<script type="text/javascript" src="backend.test.js"></script>
|
||||
<script type="text/javascript" src="backend.elasticsearch.test.js"></script>
|
||||
<script type="text/javascript" src="backend.localcsv.test.js"></script>
|
||||
<script type="text/javascript" src="../src/view.js"></script>
|
||||
<script type="text/javascript" src="../src/view-grid.js"></script>
|
||||
<script type="text/javascript" src="../src/view-transform-dialog.js"></script>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user