File: /home/barbeatleanalyti/www/manage.beatleanalytics.com/theme/black/plugins/fuelux/demo.datagrid.js--
!function ($) {
$(function(){
// fuelux datagrid
var DataGridDataSource = function (options) {
this._formatter = options.formatter;
this._columns = options.columns;
this._delay = options.delay;
};
DataGridDataSource.prototype = {
columns: function () {
return this._columns;
},
data: function (options, callback) {
var url = 'js/data/datagrid.json';
var self = this;
setTimeout(function () {
var data = $.extend(true, [], self._data);
$.ajax(url, {
dataType: 'json',
async: false,
type: 'GET'
}).done(function (response) {
data = response.geonames;
// SEARCHING
if (options.search) {
data = _.filter(data, function (item) {
var match = false;
_.each(item, function (prop) {
if (_.isString(prop) || _.isFinite(prop)) {
if (prop.toString().toLowerCase().indexOf(options.search.toLowerCase()) !== -1) match = true;
}
});
return match;
});
}
// FILTERING
if (options.filter) {
data = _.filter(data, function (item) {
switch(options.filter.value) {
case 'lt5m':
if(item.population < 5000000) return true;
break;
case 'gte5m':
if(item.population >= 5000000) return true;
break;
default:
return true;
break;
}
});
}
var count = data.length;
// SORTING
if (options.sortProperty) {
data = _.sortBy(data, options.sortProperty);
if (options.sortDirection === 'desc') data.reverse();
}
// PAGING
var startIndex = options.pageIndex * options.pageSize;
var endIndex = startIndex + options.pageSize;
var end = (endIndex > count) ? count : endIndex;
var pages = Math.ceil(count / options.pageSize);
var page = options.pageIndex + 1;
var start = startIndex + 1;
data = data.slice(startIndex, endIndex);
if (self._formatter) self._formatter(data);
callback({ data: data, start: start, end: end, count: count, pages: pages, page: page });
}).fail(function(e){
});
}, self._delay);
}
};
$('#MyStretchGrid').each(function() {
$(this).datagrid({
dataSource: new DataGridDataSource({
// Column definitions for Datagrid
columns: [
{
property: 'toponymName',
label: 'Name',
sortable: true
},
{
property: 'countrycode',
label: 'Country',
sortable: true
},
{
property: 'population',
label: 'Population',
sortable: true
},
{
property: 'fcodeName',
label: 'Type',
sortable: true
},
{
property: 'geonameId',
label: 'Edit',
sortable: true
}
],
// Create IMG tag for each returned image
formatter: function (items) {
$.each(items, function (index, item) {
item.geonameId = '<a href="modal.html?geonameid='+item.geonameId+'" data-toggle="ajaxModal"><i class="fa fa-pencil"></i></a>';
});
}
})
});
});
});
}(window.jQuery);