timelapsStorage = localStorage; if (typeof timelapsStorage.current_kart_id === "undefined") { timelapsStorage.setItem('current_kart_id', null); } if (typeof timelapsStorage.params_max_relay_time === "undefined") { timelapsStorage.setItem('params_max_relay_time', null); } if (typeof timelapsStorage.params_min_stand_time === "undefined") { timelapsStorage.setItem('params_min_stand_time', null); } if (typeof timelapsStorage.params_max_fuel_autonomy === "undefined") { timelapsStorage.setItem('params_max_fuel_autonomy', null); } function getKartsMenu() { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'karts/', dataType: 'json', success: function (data, status) { actual_kart = timelapsStorage.current_kart_id; $.each(data.reverse(), function (index, value) { btn_class = 'btn-light'; if (actual_kart == value.id) { btn_class = 'btn-primary'; } $('#link_all').after("" + " \n \n" + " \n" + " \n" + "\n" + " " + value.name + "" + " "); }); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function getParams() { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'params/1/', dataType: 'json', success: function (data, status) { $('#id').val(data.id); $('#autonomy').val(data.autonomy); $('#stand_minimum_time').val(data.stand_minimum_time); $('#default_relay').val(data.default_relay); $('#comment').val(data.comment); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function editParams(data) { $.ajax({ type: 'PUT', crossDomain: true, url: api_url + 'params/1/', dataType: 'json', data: data, success: function (data, status) { $.notify("Update done!", "success"); getParams(); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } /*** * Get one kart data by Id * @param id */ function getKarts(id) { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'karts/' + id + '/', dataType: 'json', success: function (data, status) { console.log(data); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function listKarts() { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'karts/', dataType: 'json', success: function (data, status) { if ($.fn.DataTable.isDataTable("#dataTable_kart_list")) { $('#dataTable_kart_list').DataTable().destroy(); } $('#dataTable_kart_list').DataTable({ data: data, columns: [ { data: "id", render: function (data, type, row, meta) { return '' + '' + '' + ' ' + '' + '' + ''; } }, { data: "name" }, { data: "autonomy" } ] }); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function deleteKarts(id, index) { $.ajax({ type: 'DELETE', crossDomain: true, url: api_url + 'karts/' + id + '/', dataType: 'json', success: function (data, status) { $.notify("Delete done!", "success"); tableListKart.row(index).remove().draw(); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function addKarts(data) { $.ajax({ type: 'POST', crossDomain: true, url: api_url + 'karts/', dataType: 'json', data: data, success: function (data, status) { $.notify("Update done!", "success"); $('#modal_newkart').modal('hide'); $("#saveKartChanges").prop('disabled', false); $("#saveKartChanges").closest('form').find("input, textarea").val(""); listKarts() }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); $("#saveKartChanges").prop('disabled', false); }, }); } function modalEditKarts(id) { $('#modal_newkart').modal('show'); $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'karts/' + id + '/', dataType: 'json', success: function (data, status) { $('#id').val(data.id); $('#name').val(data.name); $('#autonomy').val(data.autonomy); $('#comment').val(data.comment); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function editKarts(id, data) { $.ajax({ type: 'PUT', crossDomain: true, url: api_url + 'karts/' + id + '/', dataType: 'json', data: data, success: function (data, status) { $.notify("Update done!", "success"); $('#modal_newkart').modal('hide'); $("#saveKartChanges").prop('disabled', false); $("#saveKartChanges").closest('form').find("input, textarea").val(""); listKarts() }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); $("#saveKartChanges").prop('disabled', false); }, }); } function modalEditDriver(id) { $('#modal_new_driver').modal('show'); $('#modal_new_driver').val(kart_id); $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'drivers/' + id + '/', dataType: 'json', success: function (data, status) { $('#id').val(data.id); $('#short_name').val(data.short_name); $('#first_name').val(data.first_name); $('#last_name').val(data.last_name); $('#order').val(data.order); $('#ref_time').val(data.ref_time); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function modalAddDriver(kart_id) { $('#modal_new_driver').modal('show'); $('#kart_id').val(kart_id); } function getDriversByKart() { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'karts/', dataType: 'json', success: function (data, status) { $.each(data, function (index, value) { if ($.fn.DataTable.isDataTable("#dataTable_drivers" + value.id)) { $('#dataTable_drivers' + value.id).DataTable().destroy(); } else { $('.container-fluid').append("" + "
\n" + "
\n" + "
\n" + " " + value.name + "   \n" + " \n" + " \n" + " \n" + "
\n" + "
\n" + "
\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
OrderShort NameFirst NameLast NameRef time (Sec)
\n" + "
\n" + "
\n" + "
" + ""); } $('#dataTable_drivers' + value.id).DataTable({ data: value.drivers, columns: [ { data: "id", render: function (data, type, row, meta) { return ' '; } }, { data: "order" }, { data: "short_name" }, { data: "first_name" }, { data: "last_name" }, { data: "ref_time" } ] }); }); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function getDriver(id) { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'drivers/' + id + '/', dataType: 'json', success: function (data, status) { $('#id').val(data.id); $('#autonomy').val(data.autonomy); $('#stand_minimum_time').val(data.stand_minimum_time); $('#default_relay').val(data.default_relay); $('#comment').val(data.comment); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function addDriver(data) { $.ajax({ type: 'POST', crossDomain: true, url: api_url + 'drivers/', dataType: 'json', data: data, success: function (data, status) { $.notify("Insert done!", "success"); getDriversByKart(); $("#saveDriverChanges").prop('disabled', false); $('#modal_new_driver').modal('hide'); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); $("#saveDriverChanges").prop('disabled', false); }, }); } function editDriver(id, data) { $.ajax({ type: 'PUT', crossDomain: true, url: api_url + 'drivers/' + id + '/', dataType: 'json', data: data, success: function (data, status) { $.notify("Update done!", "success"); getDriversByKart(); $("#saveDriverChanges").prop('disabled', false); $('#modal_new_driver').modal('hide'); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); $("#saveDriverChanges").prop('disabled', false); }, }); } function deleteDriver(id, kart_id, row_index) { $.ajax({ type: 'DELETE', crossDomain: true, url: api_url + 'drivers/' + id + '/', dataType: 'json', success: function (data, status) { $.notify("Delete done!", "success"); $('#dataTable_drivers' + kart_id).DataTable().row(row_index).remove().draw(); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function startRace() { } function getDashboardKartInfo() { $.ajax({ type: 'GET', crossDomain: true, url: api_url + 'relaysbykart/' + timelapsStorage.current_kart_id + '/', dataType: 'json', success: function (data, status) { console.log(data); $.each(data.reverse(), function (index, value) { console.log(value); if(value.relay_end == null){ $('#current_driver_name').text(value.driver.first_name); $('#refTime_current_driver').val(value.driver.ref_time); }else{ $('#next_driver_list').append("" + "
\n" + "
\n" + " \n" + " \"Card\n" + " \n" + "
\n" + "
"+value.driver.first_name+"
\n" + "

Total : 03:39:36
\n" + " Tps de repos : 14:05:26
\n" + " \n" + "

\n" + "\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + "
\n" + "
\n" + "
" + ""); } }); }, error: function (xhr) { $.notify("APIs unreachable!", "error"); console.log('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); }, }); } function showKartDashboard(kart_id) { timelapsStorage.setItem('current_kart_id', kart_id); if (kart_id != null) { window.location.href = 'index_kart.html'; } else { window.location.href = 'index.html'; } } $(document).ready(function () { if (timelapsStorage.current_kart_id == "null" || typeof timelapsStorage.current_kart_id === "undefined") { $('#link_all').removeClass('btn-light').addClass('btn-primary'); } });