diff --git a/src/components/FaceMergeModal.vue b/src/components/FaceMergeModal.vue
new file mode 100644
index 00000000..0f945b06
--- /dev/null
+++ b/src/components/FaceMergeModal.vue
@@ -0,0 +1,162 @@
+
+
+
+ {{ t('memories', 'Merge {name} with person', { name }) }}
+
+
+
+
+
+
+
+
+ {{ t('memories', 'Processing … {n}/{m}', {
+ n: processing,
+ m: procesingTotal,
+ }) }}
+
+
+
+
+
+ {{ t('memories', 'Cancel') }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/FaceTopMatter.vue b/src/components/FaceTopMatter.vue
index a548041c..ded8f6e9 100644
--- a/src/components/FaceTopMatter.vue
+++ b/src/components/FaceTopMatter.vue
@@ -11,11 +11,15 @@
-
+
{{ t('memories', 'Rename person') }}
-
+
+ {{ t('memories', 'Merge with different person') }}
+
+
+
{{ t('memories', 'Remove person') }}
@@ -24,6 +28,7 @@
+
@@ -34,9 +39,11 @@ import GlobalMixin from '../mixins/GlobalMixin';
import { NcActions, NcActionButton } from '@nextcloud/vue';
import FaceEditModal from './FaceEditModal.vue';
import FaceDeleteModal from './FaceDeleteModal.vue';
+import FaceMergeModal from './FaceMergeModal.vue';
import BackIcon from 'vue-material-design-icons/ArrowLeft.vue';
import EditIcon from 'vue-material-design-icons/Pencil.vue';
import DeleteIcon from 'vue-material-design-icons/Close.vue';
+import MergeIcon from 'vue-material-design-icons/Merge.vue';
@Component({
components: {
@@ -44,15 +51,18 @@ import DeleteIcon from 'vue-material-design-icons/Close.vue';
NcActionButton,
FaceEditModal,
FaceDeleteModal,
+ FaceMergeModal,
BackIcon,
EditIcon,
DeleteIcon,
+ MergeIcon,
},
})
export default class FaceTopMatter extends Mixins(GlobalMixin) {
private name: string = '';
private showEditModal: boolean = false;
private showDeleteModal: boolean = false;
+ private showMergeModal: boolean = false;
@Watch('$route')
async routeChange(from: any, to: any) {
diff --git a/src/components/Modal.vue b/src/components/Modal.vue
index a972e7e4..85dc181f 100644
--- a/src/components/Modal.vue
+++ b/src/components/Modal.vue
@@ -1,6 +1,6 @@
@@ -18,7 +18,7 @@
diff --git a/src/components/Tag.vue b/src/components/Tag.vue
index 24007408..925dc098 100644
--- a/src/components/Tag.vue
+++ b/src/components/Tag.vue
@@ -57,6 +57,7 @@ interface IFaceDetection extends IPhoto {
export default class Tag extends Mixins(GlobalMixin) {
@Prop() data: ITag;
@Prop() rowHeight: number;
+ @Prop() noNavigate: boolean;
// Separate property because the one on data isn't reactive
private previews: IPhoto[] = [];
@@ -112,6 +113,11 @@ export default class Tag extends Mixins(GlobalMixin) {
/** Open tag */
openTag() {
+ this.$emit('open', this.data);
+ if (this.noNavigate) {
+ return;
+ }
+
if (this.isFace) {
const name = this.data.name || this.data.fileid.toString();
const user = this.data.user_id;
@@ -178,7 +184,7 @@ export default class Tag extends Mixins(GlobalMixin) {
top: 50%; width: 100%;
transform: translateY(-50%);
color: white;
- width: 100%;
+ width: 90%;
padding: 0 5%;
text-align: center;
font-size: 1.2em;