|
|
|
$(document).ready(function () {
|
|
|
|
|
|
|
|
var $date_input = $("#date_id");
|
|
|
|
$date_input.datetimepicker({format: $date_input.data("format")});
|
|
|
|
|
|
|
|
var $start_time_input = $("#start_time_id");
|
|
|
|
var $end_time_input = $("#end_time_id");
|
|
|
|
[$start_time_input, $end_time_input].forEach(function($x) {
|
|
|
|
$x.datetimepicker({format: $x.data("format"), stepping: 15});
|
|
|
|
})
|
|
|
|
|
|
|
|
$("#add_time_entry_submit").click(function () {
|
|
|
|
var date = $date_input.val();
|
|
|
|
var start_date = new Date(date + " " + $start_time_input.val());
|
|
|
|
var end_date = new Date(date + " " + $end_time_input.val());
|
|
|
|
|
|
|
|
var forward = $("#add_time_entry_submit").data("forward");
|
|
|
|
|
|
|
|
// If a bike is selected, forward to the bike
|
|
|
|
// checklist.
|
|
|
|
var bike_id = parseInt($("#bike_id").val());
|
|
|
|
if (bike_id > 0) {
|
|
|
|
forward = "/task_lists/" + bike_id + "/edit";
|
|
|
|
}
|
|
|
|
|
|
|
|
//FIXME: Ideally, we'd submit the dates as ISO, but I can't figure out
|
|
|
|
// how to get Netzke to render UTC dates correctly (it calls to_json
|
|
|
|
// somewhere and drops off the timezone). For the time being, save dates
|
|
|
|
// in locale like Netzke.
|
|
|
|
var json_data = {
|
|
|
|
time_entries: [{
|
|
|
|
start_date: moment(start_date).format("DD-MM-YYYY h:mm A"),
|
|
|
|
end_date: moment(end_date).format("DD-MM-YYYY h:mm A"),
|
|
|
|
log_action_id: parseInt($('input[name=action_id]:checked').val()),
|
|
|
|
bike_id: bike_id,
|
|
|
|
description: $("#description_id").val(),
|
|
|
|
}]
|
|
|
|
};
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
url: $("#add_time_entry_submit").data("url"),
|
|
|
|
type: "POST",
|
|
|
|
data: JSON.stringify(json_data),
|
|
|
|
contentType: 'application/json',
|
|
|
|
dataType: "json",
|
|
|
|
success: function (data, status, xhr) {
|
|
|
|
window.location = forward;
|
|
|
|
},
|
|
|
|
error: function (data, status) {
|
|
|
|
displayFormErrors(data.responseJSON);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
$(".work_entry-delete-btn").click(function () {
|
|
|
|
var row = $(this).closest("tr");
|
|
|
|
var entry_id = row.data("id");
|
|
|
|
var start_date = row.data("start_date");
|
|
|
|
var duration = row.data("duration");
|
|
|
|
var description = row.data("description");
|
|
|
|
$("#work_entry_start_date").text(start_date);
|
|
|
|
$("#work_entry_duration").text(duration);
|
|
|
|
$("#work_entry_description").text(description);
|
|
|
|
$("#confirmation_delete").data("entry_id", entry_id);
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#confirmation_delete").click(function () {
|
|
|
|
var entry_id = $(this).data("entry_id");
|
|
|
|
var url = $("#confirmation_delete").data("url-template").replace(/__ID__/, entry_id);
|
|
|
|
$.ajax({
|
|
|
|
url: url,
|
|
|
|
type: "delete",
|
|
|
|
contentType: 'application/json',
|
|
|
|
success: function (data, status, xhr) {
|
|
|
|
location.reload();
|
|
|
|
},
|
|
|
|
error: function (data, status) {
|
|
|
|
displayFormErrors(data.responseJSON);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|