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');
   
   ...