e-hack/registration/js/main.js

89 lines
2.5 KiB
JavaScript
Raw Normal View History

2015-12-09 13:11:15 +01:00
$(function () {
// Initialize form validation
$("input,select,textarea").jqBootstrapValidation({
autoAdd: {helpBlocks: false},
submitSuccess: function (form, event) {
// will not trigger the default submission in favor of the ajax function
event.preventDefault();
registerSeat();
$('#modal-registration').modal('hide');
}
});
// Modal Handling
$(".user-selected").not(".disabled").click(function(){
$('#modal-user-type').modal('hide');
});
$('#modal-registration').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); // Button that triggered the modal
var event_id = button.data('event-id'); // Extract info from data-* attributes
var event_name = button.data('event-name');
$(this).find('input[name=event-id]').val(event_id);
$(this).find('#modal-reg-title').text("Register Attendance to "+event_name);
})
// Load events
loadEvents();
});
function htmlAlert(level, message){
switch(level.toUpperCase()){
case "INFO": level="info"; break;
case "SUCCESS": level="success"; break;
case "WARNING": level="warning"; break;
case "ERROR": level="danger"; break;
}
genFromTemplate("#template-alert", "#alert-container", {"level": level, "message": message}, true);
}
function loadEvents(){
loading(true);
$.getJSON("service.php?action=get_all_events", function(json){
if(json['error'] != null){
htmlAlert("ERROR", json['error']);
return;
}
for(i=0; i<json['events'].length; i++){
if(json['events'][i]['seats_available'] > 0)
json['events'][i]['reg-free'] = true;
else if(json['events'][i]['backup_seats_available'] > 0)
json['events'][i]['reg-backup'] = true;
else
json['events'][i]['reg-full'] = true;
}
genFromTemplate("#template-events", "#event-list", json);
loading(false);
});
}
function registerSeat(){
loading(true);
$.getJSON("service.php?action=register_seat&"+$('#registration-form').serialize(), function(json){
if(json['error'] != null){
htmlAlert("ERROR", json['error']);
return;
}
htmlAlert("SUCCESS", "Registration was successful.");
loadEvents();
loading(false);
});
}
function genFromTemplate(templateId, targetId, data){
genFromTemplate(templateId, targetId, data, false);
}
function genFromTemplate(templateId, targetId, data, append){
var template = $(templateId).html();
var rendered = Mustache.render(template, data);
if(append)
$(targetId).append( rendered );
else
$(targetId).html( rendered );
}
function loading(enabled){
//if(enabled)
// $('#loading').modal('show');
//else
// $('#loading').modal('hide');
}