Commit da829b16 by David Ormsbee

Make client-side capture work for photo IDs

parent 3c79e81c
...@@ -161,9 +161,4 @@ body.register.verification { ...@@ -161,9 +161,4 @@ body.register.verification {
} }
video {
width: 512px;
height: 384px;
}
} }
...@@ -52,27 +52,45 @@ ...@@ -52,27 +52,45 @@
.fail(function() { alert("error"); }); .fail(function() { alert("error"); });
} }
function initFaceSnapshotHandler() { function initSnapshotHandler(name) {
var video = $('#face_video'); var video = $('#' + name + '_video');
var canvas = $('#face_canvas'); var canvas = $('#' + name + '_canvas');
var image = $('#' + name + "_image");
var captureButton = $("#" + name + "_capture_button");
var resetButton = $("#" + name + "_reset_button");
var approveButton = $("#" + name + "_approve_button");
var ctx = canvas[0].getContext('2d'); var ctx = canvas[0].getContext('2d');
var localMediaStream = null; var localMediaStream = null;
function snapshot() { function snapshot() {
if (localMediaStream) { if (localMediaStream) {
ctx.drawImage(video[0], 0, 0); ctx.drawImage(video[0], 0, 0);
$('#face_image').src = canvas[0].toDataURL('image/webp'); image[0].src = canvas[0].toDataURL('image/png');
} }
video[0].pause();
return false;
}
function reset() {
$('#face_image')[0].src = "";
video[0].play();
return false;
}
function approve() {
return false;
} }
video.click(snapshot); video.click(snapshot);
$("#face_capture_button").click(snapshot); captureButton.click(snapshot);
resetButton.click(reset);
approveButton.click(approve);
navigator.getUserMedia({video: true}, function(stream) { navigator.getUserMedia({video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream); video[0].src = window.URL.createObjectURL(stream);
localMediaStream = stream; localMediaStream = stream;
}, onVideoFail); }, onVideoFail);
} }
$(document).ready(function() { $(document).ready(function() {
...@@ -80,8 +98,8 @@ ...@@ -80,8 +98,8 @@
$("#pay_button").click(submitToPaymentProcessing); $("#pay_button").click(submitToPaymentProcessing);
initVideoCapture(); initVideoCapture();
initFaceSnapshotHandler(); initSnapshotHandler("face");
initSnapshotHandler("photo_id");
}); });
</script> </script>
...@@ -117,22 +135,20 @@ ...@@ -117,22 +135,20 @@
<div id="facecam" class="cam"> <div id="facecam" class="cam">
<div class="placeholder-cam"> <div class="placeholder-cam">
<video id="face_video" autoplay></video><br/> <video id="face_video" width="400" height="300" autoplay></video><br/>
<img id="face_image" src=""/><br/> <canvas id="face_canvas" style="display:none;" width="640" height="480"></canvas>
<canvas id="face_canvas" style="display:none;"></canvas>
<button id="face_capture_button" type="button">Take Picture</button>
</div> </div>
<div class="controls photo-controls"> <div class="controls photo-controls">
<ul class="controls-list"> <ul class="controls-list">
<li class="control control-do"> <li class="control control-do">
<a class="action action-do" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a> <a class="action action-do" id="face_capture_button" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a>
</li> </li>
<li class="control control-redo"> <li class="control control-redo">
<a class="action action-redo" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a> <a class="action action-redo" id="face_reset_button" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a>
</li> </li>
<li class="control control-approve"> <li class="control control-approve">
<a class="action action-approve" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a> <a class="action action-approve" id="face_approve_button" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -187,19 +203,20 @@ ...@@ -187,19 +203,20 @@
<div id="idcam" class="cam"> <div id="idcam" class="cam">
<div class="placeholder-cam"> <div class="placeholder-cam">
<video autoplay></video> <video id="photo_id_video" width="400" height="300" autoplay></video><br/>
<canvas id="photo_id_canvas" style="display:none;" width="640" height="480"></canvas>
</div> </div>
<div class="controls photo-controls"> <div class="controls photo-controls">
<ul class="controls-list"> <ul class="controls-list">
<li class="control control-do"> <li class="control control-do">
<a class="action action-do" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a> <a class="action action-do" id="photo_id_capture_button" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a>
</li> </li>
<li class="control control-redo"> <li class="control control-redo">
<a class="action action-redo" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a> <a class="action action-redo" id="photo_id_reset_button" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a>
</li> </li>
<li class="control control-approve"> <li class="control control-approve">
<a class="action action-approve" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a> <a class="action action-approve" id="photo_id_approve_button" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -260,7 +277,7 @@ ...@@ -260,7 +277,7 @@
<div class="wrapper-up"> <div class="wrapper-up">
<div id="review-facephoto" class="review-photo"> <div id="review-facephoto" class="review-photo">
<div class="placeholder-photo"> <div class="placeholder-photo">
<video autoplay></video> <img id="face_image" width="512" height="384" src=""/>
</div> </div>
<h4>The photo above needs to meet the following requirements:</h4> <h4>The photo above needs to meet the following requirements:</h4>
...@@ -273,7 +290,7 @@ ...@@ -273,7 +290,7 @@
<div id="review-idphoto" class="review-photo"> <div id="review-idphoto" class="review-photo">
<div class="placeholder-photo"> <div class="placeholder-photo">
<video autoplay></video> <img id="photo_id_image" width="512" height="384" src=""/>
</div> </div>
<h4>The photo above needs to meet the following requirements:</h4> <h4>The photo above needs to meet the following requirements:</h4>
...@@ -290,7 +307,7 @@ ...@@ -290,7 +307,7 @@
<div class="next"> <div class="next">
<p>Photos don't meet the requirements? <a href="">Retake the photos</a>.</p> <p>Photos don't meet the requirements? <a href="#start">Retake the photos</a>.</p>
<input type="checkbox" name="match" /> <label for="match">Yes! My details all match.</label> <input type="checkbox" name="match" /> <label for="match">Yes! My details all match.</label>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment