Add/update table when adding targets via CSV too

pull/320/head
Rob Cutmore 2016-07-09 16:15:47 -04:00
parent 21c55c579c
commit f88e68077e
1 changed files with 39 additions and 34 deletions

View File

@ -94,14 +94,11 @@ function edit(idx) {
},
done: function(e, data) {
$.each(data.result, function(i, record) {
targets.DataTable()
.row.add([
escapeHtml(record.first_name),
escapeHtml(record.last_name),
escapeHtml(record.email),
escapeHtml(record.position),
'<span style="cursor:pointer;"><i class="fa fa-trash-o"></i></span>'
]).draw()
addTarget(
record.first_name,
record.last_name,
record.email,
record.position);
});
}
})
@ -117,6 +114,35 @@ function deleteGroup(idx) {
}
}
function addTarget(firstNameInput, lastNameInput, emailInput, positionInput) {
// Create new data row.
var email = escapeHtml(emailInput).toLowerCase();
var newRow = [
escapeHtml(firstNameInput),
escapeHtml(lastNameInput),
email,
escapeHtml(positionInput),
'<span style="cursor:pointer;"><i class="fa fa-trash-o"></i></span>'
];
// Check table to see if email already exists.
var targetsTable = targets.DataTable();
var existingRowIndex = targetsTable
.column(2, {order: "index"}) // Email column has index of 2
.data()
.indexOf(email);
// Update or add new row as necessary.
if (existingRowIndex >= 0) {
targetsTable
.row(existingRowIndex, {order: "index"})
.data(newRow);
} else {
targetsTable.row.add(newRow);
}
targetsTable.draw();
}
function load() {
$("#groupTable").hide()
$("#emptyMessage").hide()
@ -171,32 +197,11 @@ $(document).ready(function() {
// Setup the event listeners
// Handle manual additions
$("#targetForm").submit(function() {
// Create new data row.
var emailInput = escapeHtml($("#email").val()).toLowerCase();
var newRow = [
escapeHtml($("#firstName").val()),
escapeHtml($("#lastName").val()),
emailInput,
escapeHtml($("#position").val()),
'<span style="cursor:pointer;"><i class="fa fa-trash-o"></i></span>'
];
// Check table to see if email already exists.
var targetsTable = targets.DataTable();
var existingRowIndex = targetsTable
.column(2, {order: "index"}) // Email column
.data()
.indexOf(emailInput);
// Update or add new row as necessary.
if (existingRowIndex >= 0) {
targetsTable
.row(existingRowIndex, {order: "index"})
.data(newRow);
} else {
targetsTable.row.add(newRow);
}
targetsTable.draw();
addTarget(
$("#firstName").val(),
$("#lastName").val(),
$("#email").val(),
$("#position").val());
// Reset user input.
$("#targetForm>div>input").val('');