Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(function () {
- $('#scan').focus();
- });
- function handleScan(scandata, e) {
- if (e.keyCode == 13) {
- if (scandata.length) {
- toggleParticipant(scandata, 1);
- }
- return (e.keyCode != 13);
- }
- }
- function updateStatus(message, mtype) {
- $('#actionstatus').removeClass();
- $('#actionstatus').addClass(mtype);
- $('#actionstatus').text(message);
- $('#scan').val('');
- $('#scan').focus();
- }
- function toggleParticipant(partID, scanned) {
- // get participant current status
- selector = '[class*="' + partID + '"]';
- partRow = $(selector);
- if (! partRow.length) {
- updateStatus('Error: Ticket ID ' + partID + ' not found.', 'error');
- return;
- }
- classList = partRow.attr('class').split(/\s+/);
- for (var i = 0; i < classList.length; i++) {
- if (classList[i].indexOf("-strike") >= 0) {
- if (scanned) {
- updateStatus('Error: Ticket ID ' + partID + ' already admitted.', 'error');
- return;
- }
- var currentclass = classList[i];
- var targetclass = classList[i].replace("-strike", "");
- var partNewStatus = 1;
- }
- else if (classList[i].indexOf("table-highlighter") >= 0) {
- var currentclass = classList[i];
- var targetclass = currentclass + "-strike";
- var partNewStatus = 2;
- }
- }
- // update participant row
- partRow.removeClass(currentclass);
- partRow.addClass(targetclass);
- // update participant with new status
- $().crmAPI('Participant', 'create', {'id':partID, 'participant_status_id':partNewStatus }, { 'ajaxURL':'/civicrm/ajax/rest', success: function(data) {
- if (data['is_error']) {
- updateStatus(data['error_message'], 'error');
- return;
- }
- // update checked in count
- $('.view-filters form').submit();
- // update status message
- message = "Ticket ID " + partID;
- if (partNewStatus == 2) {
- message += " accepted.";
- mtype = "accept";
- }
- else {
- message += " cleared.";
- mtype = "normal";
- }
- setTimeout("try{ updateStatus(message, mtype); } catch(error) {}", 1500);
- }});
- }
Advertisement