View | Details | Raw Unified | Return to bug 6815
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/pages/patron-webcam.js (-29 / +49 lines)
Lines 1-20 Link Here
1
var div_take_image = document.getElementById('take_patron_image');
2
var mediaConfig =  { video: true };
3
var errBack = function( error ) {
4
    div_take_image.style.display = 'none';
5
    if( error.name = "NotAllowedError" ){
6
        alert("No permission to use camera");
7
    } else {
8
        alert("Cannot load camera interface");
9
    }
10
};
11
1
function initializeCamera( camera_form ){
12
function initializeCamera( camera_form ){
2
    // Grab elements, create settings, etc.
13
    // Grab elements, create settings, etc.
3
    console.log(camera_form);
14
    console.log(camera_form);
4
    var context = camera_form.find("#canvas")[0].getContext('2d');
15
    var context = camera_form.find("#canvas")[0].getContext('2d');
5
    var video = camera_form.find("#video")[0];
16
    var video = camera_form.find("#video")[0];
6
    var mediaConfig =  { video: true };
7
    var errBack = function( error ) {
8
        if( error.name = "NotAllowedError" ){
9
            alert("No permission to use camera");
10
        } else {
11
            alert("Cannot load camera interface");
12
        }
13
    };
14
    navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
15
                           navigator.webkitGetUserMedia ||
16
                           navigator.mozGetUserMedia ||
17
                           navigator.msGetUserMedia );
18
17
19
    // Put video listeners into place
18
    // Put video listeners into place
20
    if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
19
    if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
Lines 28-33 function initializeCamera( camera_form ){ Link Here
28
    }
27
    }
29
    /* Legacy code below! */
28
    /* Legacy code below! */
30
    else {
29
    else {
30
        navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
31
                               navigator.webkitGetUserMedia ||
32
                               navigator.mozGetUserMedia ||
33
                               navigator.msGetUserMedia );
34
31
        navigator.getMedia(
35
        navigator.getMedia(
32
            mediaConfig,
36
            mediaConfig,
33
            function(stream) {
37
            function(stream) {
Lines 72-94 function initializeCamera( camera_form ){ Link Here
72
    });
76
    });
73
}
77
}
74
78
75
navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
79
// Detect webcam, and make 'Take' button available.
76
                       navigator.webkitGetUserMedia ||
80
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
77
                       navigator.mozGetUserMedia ||
81
    navigator.mediaDevices.getUserMedia(mediaConfig).then(
78
                       navigator.msGetUserMedia );
82
        function(stream) {
83
            div_take_image.style.display = 'block';
84
            stream.getTracks().forEach(function(track) {
85
                if (track.readyState == 'live' && track.kind === 'video') {
86
                    track.stop();
87
                }
88
            });
89
        },
90
        errBack
91
    );
92
} else {
93
    navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
94
                           navigator.webkitGetUserMedia ||
95
                           navigator.mozGetUserMedia ||
96
                           navigator.msGetUserMedia );
79
97
80
var div_take_image = document.getElementById('take_patron_image');
98
    navigator.getMedia(
81
navigator.getMedia({video: true}, function(stream) {
99
        mediaConfig,
82
        div_take_image.style.display = 'block';
100
        function(stream) {
83
        stream.getTracks().forEach(function(track) {
101
            div_take_image.style.display = 'block';
84
            if (track.readyState == 'live' && track.kind === 'video') {
102
            stream.getTracks().forEach(function(track) {
85
                track.stop();
103
                if (track.readyState == 'live' && track.kind === 'video') {
86
            }
104
                    track.stop();
87
        });
105
                }
88
    }, function() {
106
            });
89
        div_take_image.style.display = 'none';
107
        },
90
    }
108
        function() {
91
);
109
            div_take_image.style.display = 'none';
110
        }
111
    );
112
}
92
113
93
114
94
$(document).ready(function(){
115
$(document).ready(function(){
95
- 

Return to bug 6815