var dragged_elem; var features_updated=false; var touch_start_time=null; var elapsedTime=null; var maxAllowedTime=500; function drag(ev){ // ev.preventDefault(); console.log(ev.target.id); dragged_elem=ev.target; // ev.dataTransfer.setData("text",ev.target.id); } function dragTouchstart(e,elem) { elapsedTime=null; touch_start_time = new Date().getTime(); } function dragTouchmove(e,elem) { let touchX = e.touches[0].pageX; let touchY = e.touches[0].pageY; if(elapsedTime==null) { elapsedTime = new Date().getTime() - touch_start_time; } // console.log(elapsedTime); if (elapsedTime.copy").addEventListener("click",function(e){ var key_tag=document.querySelector("#api-key>p"); key_tag.focus(); console.log(key_tag.innerText); navigator.clipboard.writeText(key_tag.innerText); }) document.querySelector("#api-key>.refresh").addEventListener("click",function(e){ var key_tag=document.querySelector("#api-key>p"); fetch("update_key/").then(function(response){ return response.json(); }).then(function(response){ console.log(response); if ("key" in response){ key_tag.innerText=response["key"]; } }); }) function deselect(e,elem){ // document.body.focus(); if(e.key=="Enter") elem.blur(); else if(elem.value!=elem.dataset.name) features_updated=false; } function remove_remark(remark){ var unassigned_faces=document.querySelector("#unassigned_faces"); var all_crops=remark.querySelectorAll("#remark_list>.remark>.faces>img"); all_crops.forEach(function(crop){ unassigned_faces.appendChild(crop); }) remark.remove(); } function add_remark(){ // make such a structure: //
// //
// //
var remark=document.createElement("div"); remark.setAttribute("class","remark droppable"); remark.dataset.dropto=".faces"; remark.setAttribute("ondragover","allowDrop(event)"); remark.setAttribute("ondrop","drop(event,this.querySelector('#remark_list>.remark>.faces'))"); var name=document.createElement("input"); name.setAttribute("type","text"); name.setAttribute("ondrop","return false;"); name.setAttribute("onkeyup","deselect(event,this);"); var faces=document.createElement("div"); faces.setAttribute("class","faces"); var close_icon=document.createElement("i"); close_icon.setAttribute("class","fa-solid fa-xmark"); close_icon.setAttribute("onclick","remove_remark(this.parentElement);"); remark.appendChild(name); remark.appendChild(faces); remark.appendChild(close_icon); document.querySelector("#remark_list").appendChild(remark); name.focus(); // name.select(); } function filterFunction() { var input, filter, ul, li, a, i; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); div = document.getElementById("myDropdown"); a = div.getElementsByTagName("a"); for (i = 0; i < a.length; i++) { txtValue = a[i].textContent || a[i].innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { a[i].style.display = ""; } else { a[i].style.display = "none"; } } } var database_input=document.querySelector("#database-form>.field>.add_button>input") database_input.addEventListener("change",async function(e){ if(e.target.files[0]){ console.log(e.target.files[0].name); var image_file=e.target.files[0]; image_file=await resize(image_file); const formdata = new FormData(); formdata.append("image",image_file); var loader_txt=show_loading_bar(); const myInterval=start_timer(loader_txt,0.2); fetch("get_crops/", { method:'POST', body:formdata, }).then( function(response) { return response.json(); } ).then( function(response) { clearInterval(myInterval); hide_loading_bar(); console.log(response); if (response['message']=='successful') { // add crops to the #unassigned_faces var crop_container=document.querySelector("#unassigned_faces"); for(var i=0;i { // img_tag=document.createElement("img"); // img_tag.src=Flask.url_for('upload',{subfolder:'images',filename:img_name} ); // images_div.appendChild(img_tag); // }); } } ); } }); function update_db_crops(elem) { var all_remarks={}; var num_of_remarks=0; var face_remarks=document.querySelectorAll("#remark_list>.remark"); for (var i=0;i.remark>.faces>img"); var face_base64_list=[] if (faces.length>0) { for(var j=0;j0) { var alldata={}; alldata["person_name"]=document.querySelector("#database-form>.field>.person_name").value; alldata["remarks"]=all_remarks; console.log(alldata); var loader_txt=show_loading_bar(); const myInterval=start_timer(loader_txt,0.2); fetch("set_crops/",{ method:"POST", headers: { "Content-Type": "application/json"}, body:JSON.stringify(alldata) }).then(function(response){ return response.json(); }).then(function(response){ clearInterval(myInterval); hide_loading_bar(); console.log(response); var person_ids=document.querySelectorAll("#db_people_table>tr>td:first-child"); var matching_person_id=null; person_ids.forEach(element => { if(element.innerText==alldata["person_name"]) { element.parentElement.remove(); // element } }); alldata["remarks"] add_person_row(alldata["person_name"],Object.keys(alldata["remarks"]).join(",")); }); } else{ console.log("add database faces first"); } } async function face_recoginization(elem){ if(elem.files[0]){ var image_file=elem.files[0]; image_file=await resize(image_file); formdata=new FormData(); formdata.append("image",image_file); var loader_txt=show_loading_bar(); const myInterval=start_timer(loader_txt,0.2); fetch("face_recognize/",{ method:"POST", body:formdata }).then(function(response){ return response.json(); }).then(function(response){ console.log(response); document.querySelector("#face_recognition_image").src="data:image/jpeg;base64,"+response["pred_image"]; document.querySelector("#face_recognition_image").style.width="unset"; clearInterval(myInterval); hide_loading_bar(); }) } } function add_person_row(person_id,remarks) { //#db_people_table // // anuj // Front_face // // // // // var table_row=document.createElement("tr"); var person_id_tag=document.createElement("td"); person_id_tag.innerText=person_id; var remarks_tag=document.createElement("td"); remarks_tag.innerText=remarks; var remove_tag=document.createElement("td"); remove_tag.innerHTML=''; table_row.appendChild(person_id_tag); table_row.appendChild(remarks_tag); table_row.appendChild(remove_tag); // document.querySelector("#db_people_table").appendChild(table_row); var table=document.querySelector("#db_people_table > tbody"); table.after(table_row); } // get_all_persons_from_db/ fetch("get_all_persons_from_db/").then(function(response){ return response.json(); }).then(function(response){ console.log(response); for (var i=0 ; i