// Provides handlers for the buttons!
$(setup_handlers);
function setup_handlers()
{
$('.btn-present').on("click", set_present);
$('.btn-absent').on("click", set_absent);
}
// Update all references on the page to this activity:
// 1. The present/absent buttons
// 2. The activity's row-color in any tables
function activity_changed(activity_id, new_state)
{
// Set the present buttons and absent buttons to their appropriate state
}
function set_present(e)
{
var group, person, activity;
group = this.dataset["groupId"];
person = this.dataset["personId"];
activity = this.dataset["activityId"];
$.ajax(`/groups/${group}/activities/${activity}/presence`,
{
method: 'PUT',
data: {person_id: person, attending: true}
}
);
// Set row state to success
$(`tr[data-person-id=${person}][data-activity-id=${activity}]`)
.removeClass('danger warning')
.addClass('success');
// Update present buttons
$(`.btn-present[data-person-id=${person}][data-activity-id=${activity}]`)
.html(check_selected);
$(`.btn-absent[data-person-id=${person}][data-activity-id=${activity}]`)
.html(times_unselected);
}
function set_absent()
{
var group, person, activity;
group = this.dataset["groupId"];
person = this.dataset["personId"];
activity = this.dataset["activityId"];
$.ajax(`/groups/${group}/activities/${activity}/presence`,
{
method: 'PUT',
data: {person_id: person, attending: false}
}
);
// Set row state to danger
$(`tr[data-person-id=${person}][data-activity-id=${activity}]`)
.removeClass('success warning')
.addClass('danger');
// Update present buttons
$(`.btn-present[data-person-id=${person}][data-activity-id=${activity}]`)
.html(check_unselected);
$(`.btn-absent[data-person-id=${person}][data-activity-id=${activity}]`)
.html(times_selected);
}
var check_unselected = '';
var check_selected = '';
var times_unselected = '';
var times_selected = '';