// NOTE: in datatables 2.0, can use simply api.column(id).name()
var number_col_classes = "text-right monospace"
var column_settings = [
    {data: "Category", name: "Category"}, // TODO use an enum def to sort by caregory
    {data: "Type", name: "Type"},
    {data: "Bottle", name: "Bottle"},
    {data: "In_Stock", name: "In_Stock"},
    {data: "Proof", name: "Proof", className: number_col_classes, render: function(data, type, row, meta){
        if (type === "display"){
            if (data == 0) {
                return "&mdash;"
            }
            return ((data / 2.0)+0.01).toFixed(1) + " %";
        }
        return data;
    }},
    {data: "Size_mL", name: "Size_mL",
        className: number_col_classes, render: $.fn.dataTable.render.number('','.',0,''," mL")},
    {data: "Size_oz", name: "Size_oz",
        className: number_col_classes, render: $.fn.dataTable.render.number('','.',1,''," oz")},
    {data: "Price_Paid", name: "Price_Paid",
        className: number_col_classes, render: $.fn.dataTable.render.number(',','.',2,"$ ")},
    {data: "Cost_per_oz", name: "Cost_per_oz",
        className: number_col_classes, render: $.fn.dataTable.render.number(',','.',3,"$ ")}
]

var barstock_table;
$(document).ready( function () {
    barstock_table = $("#barstock-table").DataTable( {
        "paging": false,
        "ajax": "/api/load_ingredients",
        "columns": column_settings
    });
    // editCell integration
    barstock_table.MakeCellsEditable({
        "onUpdate": editCell,
        "confirmationButton": {
            "confirmCss": 'btn btn-sm btn-outline-success btn-icon',
            "cancelCss": 'btn btn-sm btn-outline-danger btn-icon',
            "confirmValue": '<i class="fa fa-check" style="width:1rem;"></i>',
            "cancelValue": '<i class="fa fa-times" style="width:1rem;"></i>'
        },

    })
} );


function editCell (cell, row, oldValue) {
    console.log("The new value for the cell is: " + cell.data());
    if (cell.data() == oldValue) {
        return null;
    }
}

@@ -1356,13 +1356,8 @@
 api/
-load_
 ingr
@@ -1894,24 +1894,81 @@
 oldValue) %7B%0A
+    if (cell.data() != oldValue) %7B%0A        return;%0A    %7D%0A
     console.
@@ -2029,64 +2029,338 @@
     
-if (cell.data() == oldValue) %7B%0A        return null;%0A    %7D
+var col = column_settings%5B cell.index().column %5D.name%0A    $.put(%22/api/ingredient%22, %7B Bottle: row.data().Bottle, Type: row.data().Type,%0A            field: col, value: cell.data() %7D)%0A        .done(function(data) %7B%0A            // update the rest of the row with the received data%0A            // perhaps table.draw() ?%0A        %7D%0A    );
 %0A%7D%0A

Add sketched out post call