data-set samples
by Nuno Costa
HTML
<script src="https://rawgit.com/francodacosta/data-set/master/dist/data-set-complete.min.js"></script>
<button id="sort">sort by title</button>
<button id="filter">show only HardCover</button>
<button id="filterPDF">show only PDF</button>
<button id="filterNone">show All</button>
<div id="info"></div>
CSS
label {
font-weight: bold;
}
JavaScript
var sampleData = [
{
"ID": 102,
"Title": "Book 102 Title",
"ISBN": "222-2222222222",
"Price": 20,
"Dimensions": "8.5 x 11.0 x 0.8",
"PageCount": 600,
"InPublication": true,
"ProductCategory": "HardCover"
},
{
"ID": 101,
"Title": "Book 101 Title",
"ISBN": "111-1111111111",
"Price": -2,
"Dimensions": "8.5 x 11.0 x 0.5",
"PageCount": 500,
"InPublication": true,
"ProductCategory": "HardCover"
},
{
"ID": 101,
"Title": "Book 103 Title",
"ISBN": "333-3333333333",
"Price": 200,
"Dimensions": "8.5 x 11.0 x 1.5",
"PageCount": 700 ,
"InPublication": false,
"ProductCategory": "PDF"
}
];
var info = function(msg) {
$('#info').append(msg + '<br>');
}
var displayData = function(data) {
$('#info').html('');
info('matched '+ data.length +' records<br>');
for (i = 0; i < data.length; i++) {
record = data[i];
info('#'+ record.get('ID') +' <label>Title:</label> '+ record.get('Title') +' <label>Category:</label> ' + record.get('ProductCategory'));
}
}
// load the data into our dataset
var loader = new window.Francodacosta.DataSet.Loader.Json(sampleData)
var dataset
dataset = loader.load();
data = dataset.getData();
displayData(data);
// sort by title (ASC is the default)
$('#sort').click(function(){
dataset.setSorting('Title');
displayData(dataset.getData());
})
// filter by HardCover
$('#filter').click(function(){
dataset.clearFilters()
dataset.addFilter('ProductCategory', window.Francodacosta.DataSet.Filter.Text.match(), 'HardCover');
displayData(dataset.getData());
})
// Filter by pdf
$('#filterPDF').click(function(){
dataset.clearFilters()
dataset.addFilter('ProductCategory', window.Francodacosta.DataSet.Filter.Text.match(), 'PDF');
...