Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
da829b16
Commit
da829b16
authored
Aug 23, 2013
by
David Ormsbee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make client-side capture work for photo IDs
parent
3c79e81c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
28 deletions
+40
-28
lms/static/sass/views/_verification.scss
+0
-5
lms/templates/verify_student/photo_verification.html
+40
-23
No files found.
lms/static/sass/views/_verification.scss
View file @
da829b16
...
@@ -161,9 +161,4 @@ body.register.verification {
...
@@ -161,9 +161,4 @@ body.register.verification {
}
}
video
{
width
:
512px
;
height
:
384px
;
}
}
}
lms/templates/verify_student/photo_verification.html
View file @
da829b16
...
@@ -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
();
init
FaceSnapshotHandler
(
);
init
SnapshotHandler
(
"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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment