</div>
+<div class="page" id="error-borrower">
+ Studentska iskaznica nije povezana sa AAI@EduHr
+</div>
+
</body>
</html>
},end_timeout);
}
- if ( state == 'error' ) {
+ if ( state == 'error' || state == 'error-borrower' ) {
beep( 'error page' );
window.setTimeout(function(){
//change_page('start');
html = '<ul class="tags">';
$.each(data.tags, function(i,tag) {
console.debug( i, tag );
+
+ if ( tag.hasOwnProperty('error') ) {
+ html += 'ERROR ' + tag.sid + ' ' + tag.error;
+ change_page('error-borrower');
+ } else {
+
html += '<li><tt class="' + tag.security + '">' + tag.sid;
var content = tag.content || tag.borrower.cardnumber;
window[state]( content, tag ); // call function with barcode
}
+
+ } // not error
+
});
html += '</ul>';
};
if ( $@ ) {
warn "ERROR reading $tag: $@\n";
- $self->_invalidate_tag( $tag );
- next;
+ if ( length $tag == 14 ) {
+ warn "XXX $tag probably new SmartX 2023+\n";
+ $self->{_tags}->{$tag}->{blocks} = [];
+ $self->{_tags}->{$tag}->{afi} = 0;
+ $self->{_tags}->{$tag}->{type} = 'SmartX';
+ $self->{_tags}->{$tag}->{reader} = ref $rfid; # save reader info
+ } else {
+ $self->_invalidate_tag( $tag );
+ next;
+ }
}
$triggers->{enter}->( $tag ) if $triggers->{enter};
}
close($fh);
}
+ $rfid_sid_cache = undef if $path eq 'examples/selfcheck.html'; # invalidate on reload
} elsif ( $method =~ m{/scan(/only/(.+))?} ) {
my $only = $2;
my @tags = $rfid->tags( reader => sub {
my $borrower = rfid_borrower $hash;
if ( exists $borrower->{error} ) {
warn "ERROR ", dump($borrower);
+ $hash->{error} = $borrower->{error};
} else {
$hash->{borrower} = $borrower->{borrower};
$hash->{content} = $borrower->{borrower}->{cardnumber}; # compatibile with 3M tags