Skip to content

Error while trying to move or merge picture with/to a person #1502

@corias82

Description

@corias82

Which version of recognize are you using?

11

Enabled Modes

Face recognition

TensorFlow mode

WASM mode

Downstream App

Memories App

Which Nextcloud version do you have installed?

33.0.2

Which Operating system do you have installed?

Ubuntu 24.04

Which database are you running Nextcloud on?

Mariadb Ver 15.1 Distrib 10.11.14-MariaDB

Which Docker container are you using to run Nextcloud? (if applicable)

No response

How much RAM does your server have?

4

What processor Architecture does your CPU have?

ARM64

Describe the Bug

Hello, I installed Recognize app and my photos were succesfully indexed.
When I try to merge or assign a photo with/to a person. I always get an error message "unable to move pic123.jpg to JohnDoe"

I installed Memories app as suggested in this topic this topic
but it did not solved the problem...

Here are highlighteds lines related to the error (in the browser console)

`.concat(e.stack)),o)}log(e,n,r){var o,i;if(!(typeof((o=this.context)==null?void 0:o.level)=="number"&&e<((i=this.context)==null?void 0:i.level)))switch(typeof n=="object"&&r?.error===void 0&&(r.error=n),e){case it.Debug:console.debug(this.formatMessage(n,it.Debug,r),r);break;case it.Info:console.info(this.formatMessage(n,it.Info,r),r);break;case it.Warn:console.warn(this.formatMessage(n,it.Warn,r),r);break;case it.Error:console.error(this.formatMessage(n,it.Error,r),r);break;case it.Fatal:default:console.error(this.formatMessage(n,it.Fatal,r),r);break}}debug(e,n){this.log(it.Debug,e,Object.assign({},this.context,n))}info(e,n){this.log(it.Info,e,Object.assign({},this.context,n))}warn(e,n){this.log(it.Warn,e,Object.assign({},this.context,n))}error(e,n){this.log(it.Error,e,Object.assign({},this.context,n))}fatal(e,n){this.log(it.Fatal,e,Object.assign({},this.context,n))}}function op(t){return new rp(t)}var ip=Object.defineProperty,sp=(t,e,n)=>e in t?ip(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Qs=(t,e,n)=>(sp(t,typeof e!="symbol"?e+"":e,n),n);class ap{constructor(e){Qs(this,"context"),Qs(this,"factory"),this.context={},this.factory=e}setApp(e){return this.context.app=e,this}setLogLevel(e){return this.context.level=e,this}setUid(e){return this.context.uid=e,this}detectUser(){const e=Rr();return e!==null&&(this.context.uid=e.uid),this}detectLogLevel(){const e=this,n=()=>{var r,o;document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=(o=(r=window._oc_config)==null?void 0:r.loglevel)!=null?o:it.Warn,window._oc_debug&&(e.context.level=it.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function up(){return new ap(op)}var go,ta;function cp(){if(ta)return go;ta=1;function t(o){if(typeof o!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(o))}function e(o,i){for(var s="",u=0,c=-1,l=0,a,p=0;p<=o.length;++p){if(p<o.length)a=o.charCodeAt(p);else{if(a===47)break;a=47}if(a===47){if(!(c===p-1||l===1))if(c!==p-1&&l===2){if(s.length<2||u!==2||s.charCodeAt(s.length-1)!==46||s.charCodeAt(s.length-2)!==46){if(s.length>2){var f=s.lastIndexOf("/");if(f!==s.length-1){f===-1?(s="",u=0):(s=s.slice(0,f),u=s.length-1-s.lastIndexOf("/")),c=p,l=0;continue}}else if(s.length===2||s.length===1){s="",u=0,c=p,l=0;continue}}i&&(s.length>0?s+="/..":s="..",u=2)}else s.length>0?s+="/"+o.slice(c+1,p):s=o.slice(c+1,p),u=p-c-1;c=p,l=0}else a===46&&l!==-1?++l:l=-1}return s}function n(o,i){var s=i.dir||i.root,u=i.base||(i.name||"")+(i.ext||"");return s?s===i.root?s+u:s+o+u:u}var r={resolve:function(){for(var o="",i=!1,s,u=arguments.length-1;u>=-1&&!i;u--){var c;u>=0?c=arguments[u]:(s===void 0&&(s=Ze.cwd()),c=s),t(c),c.length!==0&&(o=c+"/"+o,i=c.charCodeAt(0)===47)}return o=e(o,!i),i?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(o){if(t(o),o.length===0)return".";var i=o.charCodeAt(0)===47,s=o.charCodeAt(o.length-1)===47;return o=e(o,!i),o.length===0&&!i&&(o="."),o.length>0&&s&&(o+="/"),i?"/"+o:o},isAbsolute:function(o){return t(o),o.length>0&&o.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var o,i=0;i<arguments.length;++i){var s=arguments[i];t(s),s.length>0&&(o===void 0?o=s:o+="/"+s)}return o===void 0?".":r.normalize(o)},relative:function(o,i){if(t(o),t(i),o===i||(o=r.resolve(o),i=r.resolve(i),o===i))return"";for(var s=1;s<o.length&&o.charCodeAt(s)===47;++s);for(var u=o.length,c=u-s,l=1;l<i.length&&i.charCodeAt(l)===47;++l);for(var a=i.length,p=a-l,f=c<p?c:p,h=-1,d=0;d<=f;++d){if(d===f){if(p>f){if(i.charCodeAt(l+d)===47)return i.slice(l+d+1);if(d===0)return i.slice(l+d)}else c>f&&(o.charCodeAt(s+d)===47?h=d:d===0&&(h=0));break}var g=o.charCodeAt(s+d),v=i.charCodeAt(l+d);if(g!==v)break;g===47&&(h=d)}var O="";for(d=s+h+1;d<=u;++d)(d===u||o.charCodeAt(d)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+i.slice(l+h):(l+=h,i.charCodeAt(l)===47&&++l,i.slice(l))},_makeLong:function(o){return o},dirname:function(o){if(t(o),o.length===0)return".";for(var i=o.charCodeAt(0),s=i===47,u=-1,c=!0,l=o.length-1;l>=1;--l)if(i=o.charCodeAt(l),i===47){if(!c){u=l;break}}else c=!1;return u===-1?s?"/":".":s&&u===1?"//":o.slice(0,u)},basename:function(o,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');t(o);var s=0,u=-1,c=!0,l;if(i!==void 0&&i.length>0&&i.length<=o.length){if(i.length===o.length&&i===o)return"";var a=i.length-1,p=-1;for(l=o.length-1;l>=0;--l){var f=o.charCodeAt(l);if(f===47){if(!c){s=l+1;break}}else p===-1&&(c=!1,p=l+1),a>=0&&(f===i.charCodeAt(a)?--a===-1&&(u=l):(a=-1,u=p))}return s===u?u=p:u===-1&&(u=o.length),o.slice(s,u)}else{for(l=o.length-1;l>=0;--l)if(o.charCodeAt(l)===47){if(!c){s=l+1;break}}else u===-1&&(c=!1,u=l+1);return u===-1?"":o.slice(s,u)}},extname:function(o){t(o);for(var i=-1,s=0,u=-1,c=!0,l=0,a=o.length-1;a>=0;--a){var p=o.charCodeAt(a);if(p===47){if(!c){s=a+1;break}continue}u===-1&&(c=!1,u=a+1),p===46?i===-1?i=a:l!==1&&(l=1):i!==-1&&(l=-1)}return i===-1||u===-1||l===0||l===1&&i===u-1&&i===s+1?"":o.slice(i,u)},format:function(o){if(o===null||typeof o!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof o);return n("/",o)},parse:function(o){t(o);var i={root:"",dir:"",base:"",ext:"",name:""};if(o.length===0)return i;var s=o.charCodeAt(0),u=s===47,c;u?(i.root="/",c=1):c=0;for(var l=-1,a=0,p=-1,f=!0,h=o.length-1,d=0;h>=c;--h){if(s=o.charCodeAt(h),s===47){if(!f){a=h+1;break}continue}p===-1&&(f=!1,p=h+1),s===46?l===-1?l=h:d!==1&&(d=1):l!==-1&&(d=-1)}return l===-1||p===-1||d===0||d===1&&l===p-1&&l===a+1?p!==-1&&(a===0&&u?i.base=i.name=o.slice(1,p):i.base=i.name=o.slice(a,p)):(a===0&&u?(i.name=o.slice(1,l),i.base=o.slice(1,p)):(i.name=o.slice(a,l),i.base=o.slice(a,p)),i.ext=o.slice(l,p)),a>0?i.dir=o.slice(0,a-1):u&&(i.dir="/"),i},sep:"/",delimiter:":",win32:null,posix:null};return r.posix=r,go=r,go}var Te=cp();function lp(t){return t&&t.split("/").map(encodeURIComponent).join("/")}function bm(t){return t.replace(/\\/g,"/").replace(/.*\//,"")}function _m(...t){if(arguments.length<1)return"";const e=t.filter(c=>c.length>0);if(e.length<1)return"";const n=e[e.length-1],r=e[0].charAt(0)==="/",o=n.charAt(n.length-1)==="/",i=e.reduce((c,l)=>c.concat(l.split("/")),[]);let s=!r;const u=i.reduce((c,l)=>l===""?c:s?(s=!1,c+l):c+"/"+l,"");return o?u+"/":u}const ar=up().setApp("@nextcloud/files").detectUser().build();var Ti=(t=>(t.Folder="folder",t.File="file",t))(Ti||{}),Vt=(t=>(t[t.NONE=0]="NONE",t[t.CREATE=4]="CREATE",t[t.READ=1]="READ",t[t.UPDATE=2]="UPDATE",t[t.DELETE=8]="DELETE",t[t.SHARE=16]="SHARE",t[t.ALL=31]="ALL",t))(Vt||{});const Mu=function(t,e){return t.match(e)!==null},fe=(t,e)=>{if(t.id&&typeof t.id!="number")throw new Error("Invalid id type of value");if(!t.source)throw new Error("Missing mandatory source");try{new URL(t.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!t.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(t.displayname&&typeof t.displayname!="string")throw new Error("Invalid displayname type");if(t.mtime&&!(t.mtime instanceof Date))throw new Error("Invalid mtime type");if(t.crtime&&!(t.crtime instanceof Date))throw new Error("Invalid crtime type");if(!t.mime||typeof t.mime!="string"||!t.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in t&&typeof t.size!="number"&&t.size!==void 0)throw new Error("Invalid size type");if("permissions"in t&&t.permissions!==void 0&&!(typeof t.permissions=="number"&&t.permissions>=Vt.NONE&&t.permissions<=Vt.ALL))throw new Error("Invalid permissions");if(t.owner&&t.owner!==null&&typeof t.owner!="string")throw new Error("Invalid owner type");if(t.attributes&&typeof t.attributes!="object")throw new Error("Invalid attributes type");if(t.root&&typeof t.root!="string")throw new Error("Invalid root type");if(t.root&&!t.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(t.root&&!t.source.includes(t.root))throw new Error("Root must be part of the source");if(t.root&&Mu(t.source,e)){const n=t.source.match(e)[0];if(!t.source.includes(Te.join(n,t.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(t.status&&!Object.values(Ni).includes(t.status))throw new Error("Status must be a valid NodeStatus")};var Ni=(t=>(t.NEW="new",t.FAILED="failed",t.LOADING="loading",t.LOCKED="locked",t))(Ni||{});class Dr{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(Dr.prototype)).filter(e=>typeof e[1].get=="function"&&e[0]!=="__proto__").map(e=>e[0]);handler={set:(e,n,r)=>this.readonlyAttributes.includes(n)?!1:Reflect.set(e,n,r),deleteProperty:(e,n)=>this.readonlyAttributes.includes(n)?!1:Reflect.deleteProperty(e,n),get:(e,n,r)=>this.readonlyAttributes.includes(n)?(ar.warn(`Accessing "Node.attributes.${n}" is deprecated, access it directly on the Node instance.`),Reflect.get(this,n)):Reflect.get(e,n,r)};constructor(e,n){e.mime||(e.mime="application/octet-stream"),fe(e,n||this._knownDavService),this._data={displayname:e.attributes?.displayname,...e,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(e.attributes??{}),n&&(this._knownDavService=n)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:e}=new URL(this.source);return e+lp(this.source.slice(e.length))}get basename(){return Te.basename(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(e){fe({...this._data,displayname:e},this._knownDavService),this._data.displayname=e}get extension(){return Te.extname(this.source)}get dirname(){if(this.root){let n=this.source;this.isDavResource&&(n=n.split(this._knownDavService).pop());const r=n.indexOf(this.root),o=this.root.replace(/\/$/,"");return Te.dirname(n.slice(r+o.length)||"/")}const e=new URL(this.source);return Te.dirname(e.pathname)}get mime(){return this._data.mime||"application/octet-stream"}set mime(e){e??="application/octet-stream",fe({...this._data,mime:e},this._knownDavService),this._data.mime=e}get mtime(){return this._data.mtime}set mtime(e){fe({...this._data,mtime:e},this._knownDavService),this._data.mtime=e}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(e){fe({...this._data,size:e},this._knownDavService),this.updateMtime(),this._data.size=e}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?Vt.READ:this._data.permissions!==void 0?this._data.permissions:Vt.NONE}set permissions(e){fe({...this._data,permissions:e},this._knownDavService),this.updateMtime(),this._data.permissions=e}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return Mu(this.source,this._knownDavService)}get isDavRessource(){return this.isDavResource}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavResource&&Te.dirname(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){let e=this.source;this.isDavResource&&(e=e.split(this._knownDavService).pop());const n=e.indexOf(this.root),r=this.root.replace(/\/$/,"");return e.slice(n+r.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(e){fe({...this._data,status:e},this._knownDavService),this._data.status=e}get data(){return structuredClone(this._data)}move(e){fe({...this._data,source:e},this._knownDavService);const n=this.basename;this._data.source=e,this.displayname===n&&this.basename!==n&&(this.displayname=this.basename)}rename(e){if(e.includes("/"))throw new Error("Invalid basename");this.move(Te.dirname(this.source)+"/"+e)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(e){for(const[n,r]of Object.entries(e))try{r===void 0?delete this.attributes[n]:this.attributes[n]=r}catch(o){if(o instanceof TypeError)continue;throw o}}}class Ai extends Dr{get type(){return Ti.File}clone(){return new Ai(this.data)}}class Si extends Dr{constructor(e){super({...e,mime:"httpd/unix-directory"})}get type(){return Ti.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}clone(){return new Si(this.data)}}const fp=function(t=""){let e=Vt.NONE;return t&&((t.includes("C")||t.includes("K"))&&(e|=Vt.CREATE),t.includes("G")&&(e|=Vt.READ),(t.includes("W")||t.includes("N")||t.includes("V"))&&(e|=Vt.UPDATE),t.includes("D")&&(e|=Vt.DELETE),t.includes("R")&&(e|=Vt.SHARE)),e},Fu=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],Uu={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},wm=function(t,e={nc:"http://nextcloud.org/ns"}){typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...Fu],window._nc_dav_namespaces={...Uu});const n={...window._nc_dav_namespaces,...e};if(window._nc_dav_properties.find(o=>o===t))return ar.warn(`${t} already registered`,{prop:t}),!1;if(t.startsWith("<")||t.split(":").length!==2)return ar.error(`${t} is not valid. See example: 'oc:fileid'`,{prop:t}),!1;const r=t.split(":")[0];return n[r]?(window._nc_dav_properties.push(t),window._nc_dav_namespaces=n,!0):(ar.error(`${t} namespace unknown`,{prop:t,namespaces:n}),!1)},Ci=function(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...Fu]),window._nc_dav_properties.map(t=>`<${t} />`).join(" ")},$i=function(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...Uu}),Object.keys(window._nc_dav_namespaces).map(t=>`xmlns:${t}="${window._nc_dav_namespaces?.[t]}"`).join(" ")},Em=function(){return`<?xml version="1.0"?>
import{f as n,t as i,V as c}from"./preload-helper-DadE4qT2.chunk.mjs";import{N as l}from"./NcActionButton-DykQxmXJ-BQWCX8rI.chunk.mjs";import{j as r,i as f,y as d,x as h,l as s,C as a}from"./index-CP7j5eJN.chunk.mjs";import{N as u}from"./NcEmptyContent--pYG7aSD.chunk.mjs";import{g as p,h as m,f as F,i as v,j as g,A as _,e as y,k as N,S as w,a as C,c as M,n as k}from"./icons-CFZwNZD8.chunk.mjs";import{F as S}from"./FaceMergeForm-B335Pla_.chunk.mjs";import{F as I}from"./FileComponent-CeO_wawf.chunk.mjs";import{F as A,a as $}from"./FilesSelectionMixin-DCdPp1le.chunk.mjs";import{F as x}from"./FaceCover-CsQ3hCig.chunk.mjs";import{F as R}from"./FetchFilesMixin-BooETt60.chunk.mjs";import"./index-BCevi9E9.chunk.mjs";import"./createElementId-DhjFt1I9-B2HCdIOx.chunk.mjs";import"./NcCheckboxRadioSwitch-DAPHFb0L-BhQ4Gz0m.chunk.mjs";import"./useModelMigration-EhAWvqDD-Zhby4giX.chunk.mjs";import"./fileFetcher-Dgdh_mFl.chunk.mjs";import"./AbortControllerMixin-Bb5X6Yae.chunk.mjs";import"./PhotoSearch-DG75KrdK.chunk.mjs";const B={name:"FaceContent",components:{PencilOutline:M,Star:C,StarOutline:w,Download:N,Close:y,AlertCircleOutline:_,SendOutline:g,Merge:v,ArrowLeft:F,AccountBoxMultipleOutline:m,FaceMergeForm:S,FilesListViewer:$,FileComponent:I,NcLoadingIcon:h,NcEmptyContent:u,NcActions:d,NcActionButton:l,NcDialog:f,NcButton:r,AccountSwitchOutline:p},directives:{focus(e){c.nextTick(()=>e.focus())}},mixins:[x,R,A],props:{faceName:{type:String,default:"/"}},data(){return{showMoveModal:!1,showMergeModal:!1,showRenameModal:!1,loadingCount:0,appContent:document.getElementById("app-content-vue")}},computed:{files(){return this.$store.state.files.files},facesFiles(){return this.$store.state.faces.facesFiles},face(){return this.faces[this.faceName]},faceFileIds(){return this.facesFiles[this.faceName]||[]},shouldFavoriteSelection(){return this.selectedFileIds.some(e=>this.$store.state.files.files[e].attributes.favorite===0)}},watch:{face(){this.face&&this.fetchFaceContent(this.faceName)}},mounted(){this.fetchFaceContent(this.faceName)},methods:{openViewer(e){window.OCA.Viewer.open({fileInfo:a(this.files[e]),list:this.faceFileIds.map(t=>a(this.files[t]))})},async handleRemoveFilesFromFace(e){try{this.loadingCount++,await this.$store.dispatch("removeFilesFromFace",{faceName:this.faceName,fileIdsToRemove:e}),this.resetSelection()}catch(t){s.error(t)}finally{this.loadingCount--}},async handleDeleteFace(){try{this.loadingCount++,await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.$router.push("/faces")}catch(e){s.error(e)}finally{this.loadingCount--}},async handleRenameFace(e){try{this.loadingCount++,this.showRenameModal=!1;const t=this.faceName;await this.$store.dispatch("renameFace",{oldName:t,faceName:e}),this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMerge(e){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:this.facesFiles[this.faceName]}),await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.showMergeModal=!1,this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMove(e,t){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:t}),this.showMoveModal=!1}catch(o){s.error(o)}finally{this.loadingCount--}},async favoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!0})}catch(e){s.error(e)}finally{this.loadingCount--}},async unFavoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!1})}catch(e){s.error(e)}finally{this.loadingCount--}},async downloadSelection(){try{this.loadingCount++,await this.$store.dispatch("downloadFiles",this.selectedFileIds)}catch(e){s.error(e)}finally{this.loadingCount--}},t:i,n}};var O=function(){var e=this,t=e._self._c;return e.face===void 0&&!e.loadingFiles&&!e.loadingFaces?t("NcEmptyContent",{staticClass:"empty-content-with-illustration",scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountBoxMultipleOutline")]},proxy:!0}],null,!1,2861705255)},[e._v(" "+e._s(e.t("photos","This person could not be found"))+" ")]):e.errorFetchingFiles||e.errorFetchingFaces?t("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[t("AlertCircleOutline")]},proxy:!0}])},[e._v(" "+e._s(e.t("photos","An error occurred"))+" ")]):t("div",{staticClass:"face"},[t("div",{staticClass:"face__header"},[t("div",{staticClass:"face__header__left"},[t("NcActions",[t("NcActionButton",{on:{click:function(o){return e.$router.push("/faces/")}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeft")]},proxy:!0}])},[e._v(e._s(e.t("photos","Back"))+" ")])],1),t("div",{staticClass:"face__header__title"},[e.face!==void 0?t("h2",{staticClass:"face-name",class:{"hidden-visually":e.face.basename.match(/^[0-9]+$/)}},[e._v(" "+e._s(e.face.basename)+" ")]):e._e()]),e.loadingCount>0||e.loadingFaces?t("NcLoadingIcon"):e._e()],1),e.face!==void 0?t("div",{staticClass:"face__header__actions"},[t("NcActions",[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Rename person")},on:{click:function(o){e.showRenameModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("PencilOutline")]},proxy:!0}],null,!1,347985790)},[e._v(" "+e._s(e.t("photos","Rename person"))+" ")])],1),t("NcActions",{attrs:{"force-menu":!0}},[Object.keys(e.faces).length>1?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Merge with different person")},on:{click:function(o){e.showMergeModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Merge")]},proxy:!0}],null,!1,3117189691)},[e._v(" "+e._s(e.t("photos","Merge with different person"))+" ")]):e._e(),e.selectedFileIds.length?[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Download selected files")},on:{click:e.downloadSelection}},[t("Download",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Download selected photos"))+" ")],1),e.shouldFavoriteSelection?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Mark selection as favorite")},on:{click:e.favoriteSelection}},[t("StarOutline",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Favorite"))+" ")],1):t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Remove selection from favorites")},on:{click:e.unFavoriteSelection}},[t("Star",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Remove from favorites"))+" ")],1),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){e.showMoveModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountSwitchOutline")]},proxy:!0}],null,!1,1476410576)},[e._v(" "+e._s(e.n("photos","Move photo to a different person","Move photos to a different person",e.selectedFileIds.length))+" ")]),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){return e.handleRemoveFilesFromFace(e.selectedFileIds)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.n("photos","Remove photo from person","Remove photos from person",e.selectedFileIds.length))+" ")])]:e._e(),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:e.handleDeleteFace},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.t("photos","Remove person"))+" ")])],2)],1):e._e()]),e.face!==void 0?t("FilesListViewer",{staticClass:"face__photos",attrs:{"container-element":e.appContent,"file-ids":e.faceFileIds,loading:e.loadingFiles||e.loadingFaces},scopedSlots:e._u([{key:"default",fn:function({file:o}){return t("FileComponent",{attrs:{file:e.files[o.id],"allow-selection":!0,selected:e.selection[o.id]===!0},on:{click:e.openViewer,"select-toggled":e.onFileSelectToggle}})}}],null,!1,3208665420)}):e._e(),e.showRenameModal?t("NcDialog",{attrs:{name:e.t("photos","Rename person"),"close-on-click-outside":"",size:"small"},on:{closing:function(o){e.showRenameModal=!1}},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{"aria-label":e.t("photos","Save."),variant:"primary",disabled:e.$refs.nameInput&&e.$refs.nameInput.value.trim()===""},on:{click:function(o){return e.handleRenameFace(e.$refs.nameInput.value)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingCount?t("NcLoadingIcon"):t("SendOutline")]},proxy:!0}],null,!1,4093389955)},[e._v(" "+e._s(e.t("photos","Save"))+" ")])]},proxy:!0}],null,!1,1503261394)},[t("div",{staticClass:"rename-form"},[t("input",{directives:[{name:"focus",rawName:"v-focus"}],ref:"nameInput",attrs:{type:"text",name:"name",required:"",placeholder:e.t("photos","Name of this person")},domProps:{value:e.faceName},on:{keydown:function(o){return!o.type.indexOf("key")&&e._k(o.keyCode,"enter",13,o.key,"Enter")?null:e.handleRenameFace(e.$refs.nameInput.value)}}})])]):e._e(),e.showMergeModal?t("NcDialog",{attrs:{name:e.t("photos","Merge person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMergeModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMerge(o)}}})],1):e._e(),e.showMoveModal?t("NcDialog",{attrs:{name:e.t("photos","Move to different person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMoveModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMove(o,e.selectedFileIds)}}})],1):e._e()],1)},b=[],D=k(B,O,b,!1,null,"e7556087");const Z=D.exports;export{Z as default};

Expected Behavior

Pictures moved/merge to same selected/same person

To Reproduce

Select one or more pics and then select merge or assign with/to an existing a person.

Debug log

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions