diff --git a/package-lock.json b/package-lock.json
index 55b310924..24f0c7938 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 4d8777b69..87ab0620d 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",
diff --git a/src/App.vue b/src/App.vue
index 78441c773..551c1fa90 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/AddMetadataModal.vue b/src/components/modals/AddMetadataModal.vue
index a1303c5ef..a6e7cf1e2 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/EditAssetModal.vue b/src/components/modals/EditAssetModal.vue
index 45cc11ba6..ea7472197 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,
diff --git a/src/components/modals/EditCommentModal.vue b/src/components/modals/EditCommentModal.vue
index b02bb7a31..c442d3a4f 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/modals/EditPersonModal.vue b/src/components/modals/EditPersonModal.vue
index 632033ab6..43dc65eb8 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"
/>
-