var boardName = $('#board-name').val();
var jobName = $('#job-name').val();
var dateRange = $('#date-range').val();
var pageLen = $('#page-len').val();
var searchFilter = $('#search-filter').val();
function populateBoardTable(data) {
'use strict';
var localData = data.result,
dataLen = localData.length,
table = null;
if (dataLen > 0) {
table = $('#bootstable').dataTable({
'dom': '<"row"<"col-xs-12 col-sm-12 col-md-6 col-lg-6"' +
'<"length-menu"l>>' +
'<"col-xs-12 col-sm-12 col-md-4 col-lg-4 col-lg-offset-2"f>r' +
'<"col-xs-12 col-sm-12 col-md-12 col-lg-12"t>>' +
'<"row"<"col-xs-12 col-sm-12 col-md-6 col-lg-6"i>' +
'<"col-xs-12 col-sm-12 col-md-6 col-lg-6"p>>',
'language': {
'lengthMenu': '_MENU_ ' +
'boot reports per page',
'zeroRecords': '
No boot reports to display.
',
'search': '' +
'' +
'_INPUT_
'
},
'initComplete': function(settings, data) {
$('#table-loading').remove();
$('#table-div').fadeIn('slow', 'linear');
var api = this.api();
if (pageLen !== undefined && pageLen !== null) {
if (pageLen.length > 0) {
pageLen = Number(pageLen);
if (isNaN(pageLen)) {
pageLen = 25;
}
api.page.len(pageLen).draw();
}
}
if (searchFilter !== null && searchFilter !== undefined) {
if (searchFilter.length > 0) {
api.search(searchFilter, true).draw();
}
}
},
'lengthMenu': [25, 50, 75, 100],
'deferRender': true,
'ordering': true,
'processing': true,
'stateDuration': -1,
'stateSave': true,
'order': [4, 'desc'],
'search': {
'regex': true,
'smart': true
},
'data': localData,
'columns': [
{
'data': '_id',
'visible': false,
'searchable': false,
'orderable': false
},
{
'data': 'kernel',
'title': 'Kernel',
'type': 'string',
'render': function(data, type, object) {
return '' + data +
'';
}
},
{
'data': 'defconfig_full',
'title': 'Defconfig',
'render': function(data, type, object) {
var display = null,
href = null,
linkEl = null,
job = object.job,
kernel = object.kernel;
href = '/boot/' + boardName + '/job/' + job +
'/kernel/' + kernel + '/defconfig/' + data + '/';
linkEl = '' +
data + '';
if (data.length > 45) {
display = '' +
'' +
data.slice(0, 46) + '…';
} else {
display = linkEl;
}
return display;
}
},
{
'data': 'lab_name',
'title': 'Lab Name',
'type': 'string'
},
{
'data': 'created_on',
'title': 'Date',
'type': 'date',
'className': 'pull-center',
'render': function(data) {
var created = new Date(data.$date);
return created.getCustomISODate();
}
},
{
'data': 'status',
'title': 'Status',
'type': 'string',
'className': 'pull-center',
'render': function(data) {
var displ;
switch (data) {
case 'PASS':
displ = '' +
'' +
'';
break;
case 'FAIL':
displ = '' +
'' +
'' +
'';
break;
case 'OFFLINE':
displ = '' +
'' +
'';
break;
default:
displ = '' +
'' +
'' +
'';
break;
}
return displ;
}
},
{
'data': 'board',
'title': '',
'orderable': false,
'searchable': false,
'className': 'pull-center',
'render': function(data, type, object) {
var defconfigFull = object.defconfig_full,
kernel = object.kernel,
job = object.job,
lab = object.lab_name;
return '';
}
}
]
});
$(document).on('click', '#bootstable tbody tr', function() {
var localTable = table.fnGetData(this),
location = '#';
if (localTable) {
location = '/boot/' + localTable.board + '/job/' +
localTable.job + '/kernel/' + localTable.kernel +
'/defconfig/' + localTable.defconfig_full + '/lab/' +
localTable.lab_name + '/';
if (localTable._id !== null) {
location += '?_id=' + localTable._id.$oid;
}
window.location = location;
}
});
$('#search-area > .input-sm')
.attr('placeholder', 'Filter the results');
$('.input-sm').keyup(function(key) {
// Remove focus from input when Esc is pressed.
if (key.keyCode === 27) {
$(this).blur();
}
});
} else {
$('#table-loading').remove();
JSBase.replaceContentByID(
'#table-div',
'No board data found.');
}
}
function ajaxDefferedFailed() {
'use strict';
$('#table-loading').remove();
JSBase.replaceContentByID(
'#table-div',
'Error loading board data.');
}
$(document).ready(function() {
'use strict';
$('#li-boot').addClass('active');
$('#table-div').hide();
JSBase.replaceContentByID(
'#dd-tree',
'' +
'' + jobName +
'' +
' — ' +
''
);
JSBase.replaceContentByID(
'#dd-board',
'' +
'' + boardName +
' '
);
var ajaxDeferredCall = null,
ajaxData = null,
errorReason = 'Error loading board data';
ajaxData = {
'board': boardName,
'job': jobName,
'date_range': dateRange
};
ajaxDeferredCall = JSBase.createDeferredCall(
'/_ajax/boot',
'GET',
ajaxData,
null,
ajaxDefferedFailed,
errorReason
);
$.when(ajaxDeferredCall).done(populateBoardTable);
});