blob: dac17f91ea756a27930851fedb2f3a8370f35e39 [file] [log] [blame]
giolekva0f503aa2020-04-20 22:41:06 +04001async function fetchAllPhotos() {
giolekvafb52e0d2020-04-23 22:52:13 +04002 return await fetch("/graphql?query={queryImage(){id objectPath}}")
giolekva0f503aa2020-04-20 22:41:06 +04003 .then(resp => resp.json())
giolekvafb52e0d2020-04-23 22:52:13 +04004 .then(resp => resp.queryImage)
5 .catch(error => {
6 alert(error);
7 return [];
8 });
9
10}
11
12async function fetchImage(id) {
13 return await fetch("/graphql?query={getImage(id: \"" + id + "\"){id objectPath}}")
14 .then(resp => resp.json())
15 .then(resp => resp.getImage)
16 .catch(error => {
17 alert(error);
18 return {};
19 });
20
21}
22
23async function fetchAllImageSegments(id) {
24 return await fetch("/graphql?query={getImage(id: \"" + id + "\"){segments { upperLeftX upperLeftY lowerRightX lowerRightY }}}")
25 .then(resp => resp.json())
26 .then(resp => resp.getImage.segments)
giolekva0f503aa2020-04-20 22:41:06 +040027 .catch(error => {
28 alert(error);
29 return [];
30 });
31
32}
33
34async function initGallery(gallery_elem_id) {
35 imgs = await fetchAllPhotos();
giolekva0f503aa2020-04-20 22:41:06 +040036 img_list = "<ul>";
37 for (img of imgs) {
giolekvaede6d2b2020-05-05 22:14:16 +040038 img_list += "<li><a href='/photo?id=" + img.id + "'><img style='max-width: 300px' src='http://minio/" + img.objectPath + "' /></a></li>";
giolekva0f503aa2020-04-20 22:41:06 +040039 }
40 img_list += "</ul>";
giolekva0f503aa2020-04-20 22:41:06 +040041 document.getElementById(gallery_elem_id).innerHTML = img_list;
42}
giolekvafb52e0d2020-04-23 22:52:13 +040043
44async function initImg(img_elem_id, id) {
45 img = await fetchImage(id);
giolekvaede6d2b2020-05-05 22:14:16 +040046 document.getElementById(img_elem_id).setAttribute("src", "http://minio/" + img.objectPath);
giolekvafb52e0d2020-04-23 22:52:13 +040047}
48
49async function drawFaces(photo_elem_id, faces_canvas_elem_id, id){
50 console.log(id);
51 faces = await fetchAllImageSegments(id);
52
53 var img = document.getElementById(photo_elem_id);
54 var cnvs = document.getElementById(faces_canvas_elem_id);
55
56 cnvs.style.position = "absolute";
57 cnvs.style.left = img.offsetLeft + "px";
58 cnvs.style.top = img.offsetTop + "px";
59 cnvs.width = img.width;
60 cnvs.height = img.height;
61
62 var ctx = cnvs.getContext("2d");
63 for (f of faces) {
64 ctx.beginPath();
65 ctx.lineWidth = 2;
66 ctx.strokeStyle = 'red';
67 ctx.rect(f.upperLeftX, f.upperLeftY, f.lowerRightX - f.upperLeftX, f.lowerRightY - f.upperLeftY);
68 ctx.stroke();
69 }
70}