|
|
@@ -76,7 +76,7 @@ function loadAllData()
|
|
|
{
|
|
|
console.log('requesting data');
|
|
|
|
|
|
- $.post('api/getRows.php', 'json')
|
|
|
+ $.get('api/getRows.php', 'json')
|
|
|
.done(function(companies)
|
|
|
{
|
|
|
console.log('received data');
|
|
|
@@ -99,7 +99,18 @@ function loadAllData()
|
|
|
rows[id_file_row] = company['file_rows'][r];
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ drivers_by_company[id_company] = {}
|
|
|
+
|
|
|
+ for(var i = 0; company['drivers'] && i < company['drivers'].length; i++)
|
|
|
+ {
|
|
|
+ var driver = company['drivers'][i];
|
|
|
+ var id_driver = driver['id_driver'];
|
|
|
+
|
|
|
+ drivers_by_company[id_company][id_driver] = driver;
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
//if the company's tab doesn't exist, create it
|
|
|
if(!tables[id_company])
|
|
|
{
|
|
|
@@ -170,6 +181,19 @@ function createTable(id_company, table_dom)
|
|
|
{ 'title': 'Dispatch #', 'data': 'dispatch_number', 'defaultContent': '', 'className': 'dispatch_number' },
|
|
|
{ 'title': 'Shipper', 'data': 'shipper', 'defaultContent': '', 'className': 'shipper' },
|
|
|
{ 'title': 'Ready', 'data': 'date_ready', 'defaultContent': '', 'className': 'date_ready' },
|
|
|
+
|
|
|
+ { 'title': 'Driver', 'data': 'id_driver', 'defaultContent': '', 'className': 'id_driver',
|
|
|
+ 'render': function(data, type, row)
|
|
|
+ {
|
|
|
+ var id_driver = row['id_driver'];
|
|
|
+
|
|
|
+ if(!id_driver)
|
|
|
+ return '';
|
|
|
+
|
|
|
+ return drivers_by_company[id_company][id_driver]['name'];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { 'title': 'Trailer', 'data': 'trailer', 'defaultContent': '', 'className': 'trailer' },
|
|
|
|
|
|
{ 'title': 'Address 1', 'data': 'address_1', 'address_1': '', 'className': 'address_1' },
|
|
|
{ 'title': 'Address 2', 'data': 'address_2', 'address_2': '', 'className': 'address_2' },
|
|
|
@@ -225,12 +249,31 @@ function createTable(id_company, table_dom)
|
|
|
});
|
|
|
|
|
|
|
|
|
+ var driver_options = [
|
|
|
+ {
|
|
|
+ "value": "",
|
|
|
+ "label": "None"
|
|
|
+ }];
|
|
|
+
|
|
|
+
|
|
|
+ for(var id_driver in drivers_by_company[id_company])
|
|
|
+ {
|
|
|
+ var driver = drivers_by_company[id_company][id_driver];
|
|
|
+
|
|
|
+ driver_options.push(
|
|
|
+ {
|
|
|
+ "value": id_driver,
|
|
|
+ "label": driver.name
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
var editor = new $.fn.dataTable.Editor(
|
|
|
{
|
|
|
idSrc: 'id_file_row',
|
|
|
table: table_dom,
|
|
|
- fields: [
|
|
|
- {
|
|
|
+ fields:
|
|
|
+ [{
|
|
|
label: "Pickup Time:",
|
|
|
name: "time_pickup",
|
|
|
type: "datetime",
|
|
|
@@ -247,6 +290,17 @@ function createTable(id_company, table_dom)
|
|
|
name: "bol_delivered",
|
|
|
type: "datetime",
|
|
|
format: 'MM/DD/YYYY hh:mm A'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "Trailer:",
|
|
|
+ name: "trailer",
|
|
|
+ type: "text"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "Driver:",
|
|
|
+ name: "id_driver",
|
|
|
+ type: "select",
|
|
|
+ options: driver_options
|
|
|
}],
|
|
|
ajax: function(method, url, d, success, error)
|
|
|
{
|
|
|
@@ -258,6 +312,11 @@ function createTable(id_company, table_dom)
|
|
|
|
|
|
var row_partial = d['data'][id_file_row];
|
|
|
|
|
|
+
|
|
|
+ var properties_auditable = ['time_pickup', 'time_depart', 'bol_delivered'];
|
|
|
+ var is_auditable = false;
|
|
|
+
|
|
|
+
|
|
|
//go thru all the properties on the object
|
|
|
for(var property in row_partial)
|
|
|
{
|
|
|
@@ -265,24 +324,46 @@ function createTable(id_company, table_dom)
|
|
|
|
|
|
//update our master record
|
|
|
rows[id_file_row][property] = value;
|
|
|
+
|
|
|
+ //check if this is an auditable property
|
|
|
+ if(properties_auditable.indexOf(property) !== -1)
|
|
|
+ is_auditable = true;
|
|
|
}
|
|
|
|
|
|
|
|
|
- //send the update up to the server thru api
|
|
|
- $.post('api/createRowUpdate.php?id_file_row=' + id_file_row, row_partial)
|
|
|
- .done(function(response)
|
|
|
- {
|
|
|
- console.log(response);
|
|
|
-
|
|
|
- //report to the datatable a full updated row
|
|
|
- success({ "data": [ rows[id_file_row] ] });
|
|
|
- })
|
|
|
- .fail(function(err, xhr, text)
|
|
|
- {
|
|
|
- console.log(err['responseText']);
|
|
|
-
|
|
|
- //TODO: handle error
|
|
|
- });
|
|
|
+ if(is_auditable)
|
|
|
+ {
|
|
|
+ //send the update up to the server thru api
|
|
|
+ $.post('api/createRowUpdate.php?id_file_row=' + id_file_row, row_partial)
|
|
|
+ .done(function(response)
|
|
|
+ {
|
|
|
+ console.log(response);
|
|
|
+
|
|
|
+ //report to the datatable a full updated row
|
|
|
+ success({ "data": [ rows[id_file_row] ] });
|
|
|
+ })
|
|
|
+ .fail(function(err, xhr, text)
|
|
|
+ {
|
|
|
+ console.log(err['responseText']);
|
|
|
+
|
|
|
+ //TODO: handle error
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $.post('api/updateRowImmediate.php?id_file_row=' + id_file_row, row_partial)
|
|
|
+ .done(function(response)
|
|
|
+ {
|
|
|
+ console.log(response);
|
|
|
+
|
|
|
+ //report to the datatable a full updated row
|
|
|
+ success({ "data": [ rows[id_file_row] ] });
|
|
|
+ })
|
|
|
+ .fail(function(err, xhr, text)
|
|
|
+ {
|
|
|
+ console.log(err['responseText']);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
@@ -302,6 +383,10 @@ function createTable(id_company, table_dom)
|
|
|
editor.bubble(this, 'bol_delivered');
|
|
|
});
|
|
|
|
|
|
+ $(table_dom).on('click', 'td.id_driver, td.trailer', function(e) {
|
|
|
+ editor.bubble(this, ['trailer', 'id_driver']);
|
|
|
+ });
|
|
|
+
|
|
|
/*
|
|
|
$(table_dom).on('click', 'td.time_pickup, td.time_depart, td.bol_delivered', function(e) {
|
|
|
editor.bubble(this, [ 'time_pickup', 'time_depart', 'bol_delivered' ]);
|