diff --git a/plugins/face/faceManagerCustomAutoLoadLibrary/index.js b/plugins/face/faceManagerCustomAutoLoadLibrary/index.js index 761d306a..bbe12e28 100644 --- a/plugins/face/faceManagerCustomAutoLoadLibrary/index.js +++ b/plugins/face/faceManagerCustomAutoLoadLibrary/index.js @@ -42,6 +42,30 @@ module.exports = function(s,config,lang,app,io){ callback(faces) }) } + const getFaceImagesByName = (name,callback) => { + var stats = fs.statSync(config.facesFolder + name) + if(stats.isDirectory()){ + var images + try{ + images = fs.readdirSync(config.facesFolder + name) + }catch(err){ + images = [] + } + callback(images) + }else{ + callback([]) + } + } + const deletePath = (deletionPath,callback) => { + if(fs.existsSync(deletionPath)){ + fs.unlink(deletionPath,() => { + s.file('delete',deletionPath) + if(callback)callback() + }) + }else{ + if(callback)callback(true) + } + } app.get(config.webPaths.superApiPrefix+':auth/faceManager/names', function (req,res){ s.superAuth(req.params,function(resp){ getFaceFolderNames((faces)=>{ @@ -83,22 +107,40 @@ module.exports = function(s,config,lang,app,io){ s.superAuth(req.params,function(resp){ res.setHeader('Content-Type', 'application/json') const imagePath = config.facesFolder + req.params.name + '/' + req.params.image - if(fs.existsSync(imagePath)){ - fs.unlink(imagePath,() => { - s.file('delete',imagePath) - sendDataToConnectedSuperUsers({ - f:'faceManagerImageDeleted', - faceName: req.params.name, - fileName: req.params.image, - }) - getFaceFolderNames((faces) => { - s.sendToAllDetectors({ - f: 'recompileFaceDescriptors', - faces: faces - }) + deletePath(imagePath,() => { + sendDataToConnectedSuperUsers({ + f:'faceManagerImageDeleted', + faceName: req.params.name, + fileName: req.params.image, + }) + getFaceFolderNames((faces) => { + s.sendToAllDetectors({ + f: 'recompileFaceDescriptors', + faces: faces }) }) - } + }) + res.end(s.prettyPrint({ + ok: true, + })) + },res,req) + }) + app.get(config.webPaths.superApiPrefix+':auth/faceManager/delete/:name', function (req,res){ + s.superAuth(req.params,function(resp){ + res.setHeader('Content-Type', 'application/json') + const facePath = config.facesFolder + req.params.name + deletePath(facePath,() => { + getFaceFolderNames((faces) => { + s.sendToAllDetectors({ + f: 'recompileFaceDescriptors', + faces: faces + }) + }) + }) + sendDataToConnectedSuperUsers({ + f:'faceManagerFolderDeleted', + faceName: req.params.name, + }) res.end(s.prettyPrint({ ok: true, })) diff --git a/plugins/face/faceManagerCustomAutoLoadLibrary/languages/en_CA.json b/plugins/face/faceManagerCustomAutoLoadLibrary/languages/en_CA.json index 0c0a9676..41282ae3 100644 --- a/plugins/face/faceManagerCustomAutoLoadLibrary/languages/en_CA.json +++ b/plugins/face/faceManagerCustomAutoLoadLibrary/languages/en_CA.json @@ -4,6 +4,8 @@ "Click to Upload Images": "Click to Upload Images", "Face Name": "Face Name", "faceManager": "Face Manager", + "deleteFace": "Delete Face", + "deleteFaceText": "Are you sure you want to delete ALL the images for this face? they will not be recoverable.", "deleteImage": "Delete Image", "deleteImageText": "Are you sure you want to delete this image? it will not be recoverable." } diff --git a/plugins/face/faceManagerCustomAutoLoadLibrary/web/libs/js/super.faceManager.js b/plugins/face/faceManagerCustomAutoLoadLibrary/web/libs/js/super.faceManager.js index 57adf785..a25c064f 100644 --- a/plugins/face/faceManagerCustomAutoLoadLibrary/web/libs/js/super.faceManager.js +++ b/plugins/face/faceManagerCustomAutoLoadLibrary/web/libs/js/super.faceManager.js @@ -13,6 +13,11 @@ $(document).ready(function(){ callback(response) }) } + var deleteFaceFolder = function(name,callback){ + $.get(superApiPrefix + $user.sessionKey + '/faceManager/delete/' + name,function(response){ + callback(response) + }) + } var moveFaceImage = function(name,image,newFaceName,callback){ $.get(superApiPrefix + $user.sessionKey + '/faceManager/image/' + name + '/' + image + '/move/' + newFaceName + '/' + image + '?websocketResponse=1' ,function(response){ callback(response) @@ -36,14 +41,14 @@ $(document).ready(function(){ ` } var createFaceHeader = function(name){ - return `${name}` + return `
` } var drawFaceImages = function(){ getFaceImages(function(faces){ var html = '' $.each(faces,function(name,images){ // if(images.length === 0)return - html += `${createFaceHeader(name)}