faceManager : face image listing and deletion working

build-default-monitor-config-from-definitions
Moe 2020-04-23 00:22:10 -07:00
parent cb7fb2ac6d
commit fa70dabcf9
5 changed files with 42 additions and 19 deletions

View File

@ -1,3 +1,4 @@
var fs = require('fs')
var fileUpload = require('express-fileupload')
module.exports = function(s,config,lang,app,io){
if(!config.facesFolder)config.facesFolder = s.mainDirectory + '/plugins/face/faces/'
@ -27,10 +28,14 @@ module.exports = function(s,config,lang,app,io){
var stats = fs.statSync(config.facesFolder + name)
if(stats.isDirectory()){
faces[name] = []
fs.readdir(config.facesFolder + name,(err,images)=>{
images.forEach((image)=>{
faces[name].push(image)
})
var images
try{
images = fs.readdirSync(config.facesFolder + name)
}catch(err){
images = []
}
images.forEach((image)=>{
faces[name].push(image)
})
}
})
@ -93,7 +98,7 @@ module.exports = function(s,config,lang,app,io){
}))
},res,req)
})
app.post(config.webPaths.superApiPrefix+':auth/faceManager/image/:name', fileUpload(), function (req,res){
app.post(config.webPaths.superApiPrefix+':auth/faceManager/image/:name/:image', fileUpload(), function (req,res){
s.superAuth(req.params,function(resp){
res.setHeader('Content-Type', 'application/json')
var fileKeys = Object.keys(req.files)

View File

@ -1,5 +1,5 @@
{
"faceManager": "Face Manager",
"deleteImage": "Delete Image",
"deleteImageText": "Are you sure you want to delete this image? it will not be recoverable.",
"deleteImageText": "Are you sure you want to delete this image? it will not be recoverable."
}

View File

@ -1,4 +1,8 @@
#faceManagerImages .face-image img {width:100%}
#faceManagerImages .face-image {
background-size: cover;
background-position: center;
border-radius: 5px;
}
#faceManagerImages .face-image .controls {
position: absolute;
width: 100%;

View File

@ -1,27 +1,27 @@
$(document).ready(function(){
var faceManagerModal = $('#faceManager')
var faceManagerImages = $('#faceManagerImages')
var faceManagerForm = $('#faceManagerUploadForm')
var getFaceImages = function(callback){
$.get(superApiPrefix + $user.sessionKey + '/faceManager/images',function(faces){
callback(faces)
$.get(superApiPrefix + $user.sessionKey + '/faceManager/images',function(response){
callback(response.faces || [])
})
}
var deleteFaceImage = function(name,image,callback){
$.get(superApiPrefix + $user.sessionKey + '/faceManager/image/' + name + '/' + image,function(response){
$.get(superApiPrefix + $user.sessionKey + '/faceManager/image/' + name + '/' + image + '/delete',function(response){
callback(response)
})
}
var getFaceImageHtml = function(name,image){
return `<div class="col-3 face-image" face="${name}" image="${image}">
return `<div class="col-3 face-image" face="${name}" image="${image}" style="background-image:url(${superApiPrefix}${$user.sessionKey}/faceManager/image/${name}/${image})">
<div class="controls">
<a class="btn btn-sm btn-default delete"><i class="fa fa-trash-o"></i></a>
<a href="#" class="btn btn-sm btn-danger delete"><i class="fa fa-trash-o"></i></a>
</div>
<img src="${superApiPrefix}/faceManager/image/${name}/${image}">
</div>`
}
var drawFaceImages = function(){
var html = ''
getFaceImages(function(faces){
var html = ''
$.each(faces,function(name,images){
html += `<div class="row" face="${name}">`
$.each(images,function(n,image){
@ -29,8 +29,9 @@ $(document).ready(function(){
})
html += `</div>`
})
faceManagerImages.html(html)
prettySizeFaceImages()
})
faceManagerImages.html(html)
}
var prettySizeFaceImages = function(){
var faceImagesRendered = faceManagerImages.find('.face-image')
@ -40,12 +41,13 @@ $(document).ready(function(){
faceManagerModal.on('shown.bs.modal',function(){
drawFaceImages()
})
faceManagerImages.on('click','.delete',function(){
faceManagerImages.on('click','.delete',function(e){
e.preventDefault()
var el = $(this).parents('.face-image')
var faceName = el.attr('face')
var faceImage = el.attr('image')
$.confirm.create({
title: lang['Delete Image'],
title: lang.deleteImage,
body: lang.deleteImageText,
clickOptions: {
class: 'btn-danger',
@ -57,6 +59,16 @@ $(document).ready(function(){
})
}
})
return false;
})
$('#fileinput').change(function(){
for(var i = 0; i<this.files.length; i++){
var name = 'kaizo'
var file = this.files[i];
$.post(superApiPrefix + $user.sessionKey + '/faceManager/image/' + name + '/' + file.name,faceManagerForm.serializeObject(),function(data){
console.log(data)
})
}
})
$('#tablist').append('<li class="nav-item">\
<a class="nav-link" data-toggle="modal" data-target="#faceManager">' + lang.faceManager + '</a>\

View File

@ -9,9 +9,11 @@
</div>
<div class="modal-body overflow-hidden">
<div class="row">
<div class="col-4"></div>
<form id="faceManagerUploadForm" class="col-4">
<input type="file" id="fileinput" name="files" />
</form>
<div class="col-8" id="faceManagerImages">
</div>
</div>
</div>