Image4 / static /js /script.js
nagasurendra's picture
Update static/js/script.js
00c547a verified
raw
history blame
3.58 kB
$(document).ready(function() {
const video = document.getElementById('videoElement');
const canvas = document.getElementById('canvas');
const capturedImage = document.getElementById('capturedImage');
const cameraSelect = document.getElementById('cameraSelect');
const actionButtons = document.getElementById('actionButtons');
let stream = null;
let currentImageUrl = null;
// Open camera
$('#openCamera').click(function() {
$('#cameraContainer').show();
actionButtons.style.display = 'none';
capturedImage.style.display = 'none';
startCamera(cameraSelect.value);
});
// Switch camera
cameraSelect.addEventListener('change', function() {
if (stream) {
stopCamera();
startCamera(this.value);
}
});
// Capture image
$('#captureButton').click(function() {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0);
const dataUrl = canvas.toDataURL('image/jpeg');
// Send to server
$.ajax({
type: 'POST',
url: '/capture',
data: { image: dataUrl },
success: function(response) {
if (response.status === 'success') {
capturedImage.src = response.image_url;
capturedImage.style.display = 'block';
actionButtons.style.display = 'block';
currentImageUrl = response.image_url;
stopCamera();
$('#cameraContainer').hide();
} else {
alert('Error: ' + response.message);
}
},
error: function() {
alert('Failed to capture image.');
}
});
});
// Retake button
$('#retakeButton').click(function() {
$('#cameraContainer').show();
actionButtons.style.display = 'none';
capturedImage.style.display = 'none';
startCamera(cameraSelect.value);
});
// Upload to Zapier
$('#uploadButton').click(function() {
if (!currentImageUrl) {
alert('No image to upload.');
return;
}
$.ajax({
type: 'POST',
url: '/upload_zapier',
data: { image_url: currentImageUrl },
success: function(response) {
if (response.status === 'success') {
alert('Image sent to Zapier successfully!');
actionButtons.style.display = 'none';
capturedImage.style.display = 'none';
} else {
alert('Error sending to Zapier: ' + response.message);
}
},
error: function() {
alert('Failed to send image to Zapier.');
}
});
});
function startCamera(facingMode) {
const constraints = {
video: { facingMode: facingMode }
};
navigator.mediaDevices.getUserMedia(constraints)
.then(function(mediaStream) {
stream = mediaStream;
video.srcObject = stream;
})
.catch(function(err) {
alert('Error accessing camera: ' + err.message);
});
}
function stopCamera() {
if (stream) {
stream.getTracks().forEach(track => track.stop());
stream = null;
video.srcObject = null;
}
}
});