From 8627f21b29c54bfb9d856b87f736043785471afc Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Thu, 2 Apr 2026 23:32:41 +0200 Subject: [PATCH 1/7] [qa] fix edge case of undefined checklist entry text --- src/components/modals/AddMetadataModal.vue | 3 +-- src/components/modals/EditCommentModal.vue | 2 +- src/components/widgets/AddComment.vue | 2 +- src/components/widgets/Checklist.vue | 4 ++-- src/components/widgets/Comment.vue | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/components/modals/AddMetadataModal.vue b/src/components/modals/AddMetadataModal.vue index a1303c5efb..a6e7cf1e2e 100644 --- a/src/components/modals/AddMetadataModal.vue +++ b/src/components/modals/AddMetadataModal.vue @@ -287,8 +287,7 @@ export default { (['string', 'number', 'boolean'].includes(this.form.data_type) || (['list', 'taglist'].includes(this.form.data_type) && this.form.values.length) || - (this.form.data_type === 'checklist' && - this.checklist?.[0]?.text.length)) && + (this.form.data_type === 'checklist' && this.checklist?.[0]?.text)) && (!this.isCurrentUserSupervisor || !this.user.departments.length || this.form.departments.length) diff --git a/src/components/modals/EditCommentModal.vue b/src/components/modals/EditCommentModal.vue index b02bb7a318..c442d3a4fc 100644 --- a/src/components/modals/EditCommentModal.vue +++ b/src/components/modals/EditCommentModal.vue @@ -297,7 +297,7 @@ export default { id: this.commentToEdit.id, text: this.form.text, task_status_id: this.form.task_status_id, - checklist: this.form.checklist.filter(item => item.text.length), + checklist: this.form.checklist.filter(item => item.text), newAttachmentFiles: this.attachmentFiles, attachmentFilesToDelete: this.attachmentFilesToDelete, links: this.form.link ? [this.form.link] : null diff --git a/src/components/widgets/AddComment.vue b/src/components/widgets/AddComment.vue index 773f97c807..3147843db3 100644 --- a/src/components/widgets/AddComment.vue +++ b/src/components/widgets/AddComment.vue @@ -685,7 +685,7 @@ export default { attachments = [] checklist = [] } else { - checklist = checklist.filter(item => item.text.length) + checklist = checklist.filter(item => item.text) } revision = Number(revision) diff --git a/src/components/widgets/Checklist.vue b/src/components/widgets/Checklist.vue index 49e73f20b6..6791463676 100644 --- a/src/components/widgets/Checklist.vue +++ b/src/components/widgets/Checklist.vue @@ -37,7 +37,7 @@ @keyup.backspace="removeChecklistEntry(index)" @keyup.up="focusPrevious(index)" @keyup.down="focusNext(index)" - :disabled="entry.text.length !== 0 && disabled" + :disabled="entry.text?.length !== 0 && disabled" v-autosize v-model.trim="entry.text" > @@ -127,7 +127,7 @@ export default { removeChecklistEntry(index) { const entry = this.checklist[index] - if (entry.text.length === 0) { + if (!entry.text) { this.$emit('remove-task', entry) this.focusPrevious(index) } diff --git a/src/components/widgets/Comment.vue b/src/components/widgets/Comment.vue index c76cd52803..57b51f68b9 100644 --- a/src/components/widgets/Comment.vue +++ b/src/components/widgets/Comment.vue @@ -811,7 +811,7 @@ export default { this.lastCall = now const comment = { id: this.comment.id, - checklist: this.checklist.filter(item => item.text?.length) + checklist: this.checklist.filter(item => item.text) } this.$emit('checklist-updated', comment) } From ff6c90948c5621bc8a30b1e0aa7edbf071c0e0fe Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Thu, 2 Apr 2026 23:33:53 +0200 Subject: [PATCH 2/7] [qa] fix edge case of undefined $ref --- src/components/previews/PreviewPlayer.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/previews/PreviewPlayer.vue b/src/components/previews/PreviewPlayer.vue index 3d1dc221dd..3addfc25dd 100644 --- a/src/components/previews/PreviewPlayer.vue +++ b/src/components/previews/PreviewPlayer.vue @@ -1164,7 +1164,7 @@ export default { }, focus() { - this.$refs.container.focus() + this.$refs.container?.focus() }, timeCodeClicked({ versionRevision, frame }) { From 1163d94bcc70ab4faf4697244476cf7b6d0ef025 Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Thu, 2 Apr 2026 23:51:57 +0200 Subject: [PATCH 3/7] [qa] fix edge case of undefined task --- src/store/modules/tasks.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/store/modules/tasks.js b/src/store/modules/tasks.js index fc7bc6051c..f667e3989f 100644 --- a/src/store/modules/tasks.js +++ b/src/store/modules/tasks.js @@ -385,9 +385,8 @@ const actions = { const selectedTaskIds = Array.from(state.selectedTasks.keys()) for (const taskId of selectedTaskIds) { const task = state.taskMap.get(taskId) - const taskType = rootGetters.taskTypeMap.get(task.task_type_id) - if (task && task.priority !== priority) { + const taskType = rootGetters.taskTypeMap.get(task.task_type_id) const updatedTask = await tasksApi.updateTask(taskId, { priority }) commit(EDIT_TASK_END, { task: updatedTask, taskType }) } From 40fd1f81641aa6564c4477e03e2bcf93762e87a2 Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Thu, 2 Apr 2026 23:56:16 +0200 Subject: [PATCH 4/7] [people] fix email error handling on the user form Reset the domain error on input change. --- src/App.vue | 5 ++++- src/components/modals/EditPersonModal.vue | 3 ++- src/components/pages/People.vue | 7 +++++++ src/components/widgets/Combobox.vue | 5 +++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index 78441c773e..551c1fa904 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1109,9 +1109,12 @@ input.input { .select select:active, .select select:focus, input.input:focus { - border-color: #00b242; + border-color: $green; outline: none; } +.select select:required:invalid { + border-color: $red; +} .button, .button.is-small { diff --git a/src/components/modals/EditPersonModal.vue b/src/components/modals/EditPersonModal.vue index 632033ab62..43dc65eb8a 100644 --- a/src/components/modals/EditPersonModal.vue +++ b/src/components/modals/EditPersonModal.vue @@ -33,6 +33,7 @@ :label="$t('people.fields.email')" :disabled="personToEdit.is_generated_from_ldap" v-model.trim="form.email" + @update:model-value="$emit('reset-error', 'email')" v-if="!isBot" /> @@ -530,6 +531,12 @@ export default { }) }, + resetError(error) { + if (error === 'email') { + this.errors.invalidEmailDomain = false + } + }, + onSearchChange() { if (this.searchField) { const searchQuery = this.searchField?.getValue() diff --git a/src/components/widgets/Combobox.vue b/src/components/widgets/Combobox.vue index 68966a690e..e105945f35 100644 --- a/src/components/widgets/Combobox.vue +++ b/src/components/widgets/Combobox.vue @@ -16,6 +16,7 @@ }" ref="select" :disabled="disabled" + :required="required && !hasSelectedOption" @keyup.enter="emitEnter()" @change="updateValue" > @@ -85,6 +86,10 @@ export default { isInline: { default: false, type: Boolean + }, + required: { + default: false, + type: Boolean } }, From f1424d243230b694448bb6229548c3dabb6a841c Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Fri, 3 Apr 2026 19:07:06 +0200 Subject: [PATCH 5/7] [assets] fix episode selection in asset edit modal --- src/components/modals/EditAssetModal.vue | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/modals/EditAssetModal.vue b/src/components/modals/EditAssetModal.vue index 45cc11ba68..ea7472197e 100644 --- a/src/components/modals/EditAssetModal.vue +++ b/src/components/modals/EditAssetModal.vue @@ -25,6 +25,7 @@ @@ -166,7 +167,7 @@ export default { form: { name: '', description: '', - source_id: null, + source_id: 'null', data: { resolution: '' }, @@ -276,9 +277,11 @@ export default { } this.form.name = '' this.form.description = '' - this.form.source_id = this.currentEpisode - ? this.currentEpisode.id - : null + this.form.source_id = + this.currentEpisode && + !['all', 'main'].includes(this.currentEpisode.id) + ? this.currentEpisode.id + : 'null' this.form.data = {} this.form.is_shared = 'false' } else { @@ -288,7 +291,8 @@ export default { project_id: this.assetToEdit.project_id, name: this.assetToEdit.name, description: this.assetToEdit.description, - source_id: this.assetToEdit.source_id || this.assetToEdit.episode_id, + source_id: + this.assetToEdit.source_id || this.assetToEdit.episode_id || 'null', data: { ...this.assetToEdit.data, From 7c6ebb53f501491eedb0dd4a2dede2335f5b4380 Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Fri, 3 Apr 2026 16:59:27 +0200 Subject: [PATCH 6/7] [qa] bump dependencies --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55b310924d..24f0c79387 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "moment-timezone": "0.6.1", "panzoom": "9.4.4", "papaparse": "5.5.3", - "qrcode.vue": "3.8.0", + "qrcode.vue": "3.8.1", "sanitize-html": "2.17.2", "socket.io-client": "4.8.3", "superagent": "10.3.0", @@ -75,7 +75,7 @@ "lint-staged": "16.4.0", "localStorage": "1.0.4", "prettier": "3.8.1", - "sass": "1.98.0", + "sass": "1.99.0", "vite": "8.0.3", "vitest": "4.1.2", "vitest-localstorage-mock": "0.1.2", @@ -7208,9 +7208,9 @@ } }, "node_modules/qrcode.vue": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.8.0.tgz", - "integrity": "sha512-+XKbSKvQu158zlHsJm+HObGUQM3Q+9Oq6yb2op/6lMM2gwOiiG9uIhujvrSV5UoTjrzR0BcNxCdW2kk7KE4NEg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.8.1.tgz", + "integrity": "sha512-kJORXcI5Uml5GtzcfFkchpljFgaXKQB/3ZUt+Hwnw7Y1F7FiA01U2yyO5Vscwv3bVxPkm/KLKXUOXsHbTsYrTw==", "license": "MIT", "peerDependencies": { "vue": "^3.0.0" @@ -7491,9 +7491,9 @@ } }, "node_modules/sass": { - "version": "1.98.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz", - "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==", + "version": "1.99.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.99.0.tgz", + "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 4d8777b69c..87ab0620d3 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "moment-timezone": "0.6.1", "panzoom": "9.4.4", "papaparse": "5.5.3", - "qrcode.vue": "3.8.0", + "qrcode.vue": "3.8.1", "sanitize-html": "2.17.2", "socket.io-client": "4.8.3", "superagent": "10.3.0", @@ -85,7 +85,7 @@ "lint-staged": "16.4.0", "localStorage": "1.0.4", "prettier": "3.8.1", - "sass": "1.98.0", + "sass": "1.99.0", "vite": "8.0.3", "vitest": "4.1.2", "vitest-localstorage-mock": "0.1.2", From dde9660c51e78a1e0adb8dfffd1fb2d55cae7da5 Mon Sep 17 00:00:00 2001 From: Nicolas Pennec Date: Fri, 3 Apr 2026 19:19:05 +0200 Subject: [PATCH 7/7] [preview] add close button and improve UX on preview modal --- src/components/modals/PreviewModal.vue | 52 ++++++++++++++++---------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/src/components/modals/PreviewModal.vue b/src/components/modals/PreviewModal.vue index 78ecd3b55f..a7809b4fcc 100644 --- a/src/components/modals/PreviewModal.vue +++ b/src/components/modals/PreviewModal.vue @@ -6,15 +6,25 @@ }" > -
- - + - @@ -22,7 +32,7 @@