[#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 || {};
|
this.recline.Backend = this.recline.Backend || {};
|
||||||
|
|
||||||
(function($, my) {
|
(function($, my) {
|
||||||
my.loadFromCSVFile = function(file) {
|
my.loadFromCSVFile = function(file, callback) {
|
||||||
var metadata = {
|
var metadata = {
|
||||||
id: file.name,
|
id: file.name,
|
||||||
file: file
|
file: file
|
||||||
@ -10,7 +10,8 @@ this.recline.Backend = this.recline.Backend || {};
|
|||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
// TODO
|
// TODO
|
||||||
reader.onload = function(e) {
|
reader.onload = function(e) {
|
||||||
// console.log(e.target.result);
|
var dataset = my.csvToDataset(e.target.result);
|
||||||
|
callback(dataset);
|
||||||
};
|
};
|
||||||
reader.onerror = function (e) {
|
reader.onerror = function (e) {
|
||||||
alert('Failed to load file. Code: ' + e.target.error.code);
|
alert('Failed to load file. Code: ' + e.target.error.code);
|
||||||
@ -18,6 +19,22 @@ this.recline.Backend = this.recline.Backend || {};
|
|||||||
reader.readAsText(file);
|
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.
|
// Converts a Comma Separated Values string into an array of arrays.
|
||||||
// Each line in the CSV becomes an array.
|
// Each line in the CSV becomes an array.
|
||||||
//
|
//
|
||||||
|
|||||||
@ -19,6 +19,14 @@ test("parseCSV", function() {
|
|||||||
'"Other, AN", 12:35\n';
|
'"Other, AN", 12:35\n';
|
||||||
var array = recline.Backend.parseCSV(csv, true);
|
var array = recline.Backend.parseCSV(csv, true);
|
||||||
deepEqual(exp, array);
|
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);
|
})(this.jQuery);
|
||||||
|
|||||||
@ -23,8 +23,10 @@
|
|||||||
<script type="text/javascript" src="../src/backend/dataproxy.js"></script>
|
<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/gdocs.js"></script>
|
||||||
<script type="text/javascript" src="../src/backend/elasticsearch.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.test.js"></script>
|
||||||
<script type="text/javascript" src="backend.elasticsearch.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.js"></script>
|
||||||
<script type="text/javascript" src="../src/view-grid.js"></script>
|
<script type="text/javascript" src="../src/view-grid.js"></script>
|
||||||
<script type="text/javascript" src="../src/view-transform-dialog.js"></script>
|
<script type="text/javascript" src="../src/view-transform-dialog.js"></script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user