var labName = $('#lab-name').val(); var dateRange = $('#date-range').val(); var pageLen = $('#page-len').val(); var searchFilter = $('#search-filter').val(); function populateLabTable(data) { 'use strict'; var localData = data.result, table = null; table = $('#labtable').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': [5, 'desc'], 'search': { 'regex': true, 'smart': true }, 'data': localData, 'columns': [ { 'data': '_id', 'visible': false, 'searchable': false, 'orderable': false }, { 'data': 'job', 'title': 'Tree', 'type': 'string', 'render': function(data) { return '' + data + ''; } }, { 'data': 'kernel', 'title': 'Kernel', 'type': 'string', 'render': function(data, type, object) { return '' + data + ''; } }, { 'data': 'board', 'title': 'Board Model', 'render': function(data, type, object) { return '' + data + ''; } }, { 'data': 'defconfig_full', 'title': 'Defconfig', 'render': function(data, type, object) { var display = null, href = null, linkEl = null, board = object.board, job = object.job, kernel = object.kernel; href = '/boot/' + board + '/job/' + job + '/kernel/' + kernel + '/defconfig/' + data + '/'; linkEl = '' + data + ''; if (data.length > 33) { display = '' + '' + data.slice(0, 33) + '…'; } else { display = linkEl; } return display; } }, { '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', '#labtable 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(); } }); } $(document).ready(function() { 'use strict'; $('#li-boot').addClass('active'); $('#table-div').hide(); var ajaxDeferredCall = null, ajaxData = null, errorReason = 'Error loading lab data'; ajaxData = { 'lab_name': labName, 'date_range': dateRange }; ajaxDeferredCall = JSBase.createDeferredCall( '/_ajax/boot', 'GET', ajaxData, null, null, errorReason ); $.when(ajaxDeferredCall).done(populateLabTable); });