Prevent user from adding the same dependency multiple times (#859)

This commit is contained in:
Prospector 2023-01-11 10:03:40 -08:00 committed by GitHub
parent de212322e2
commit 61a4f15e53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1176,17 +1176,30 @@ export default {
const project = (await this.$axios.get(`project/${newDependencyId}`))
.data
this.version.dependencies.push({
project,
project_id: project.id,
dependency_type: newDependencyType,
link: `/${project.project_type}/${project.slug ?? project.id}`,
})
if (
this.version.dependencies.some(
(dep) => project.id === dep.project_id
)
) {
this.$notify({
group: 'main',
title: 'Dependency already added',
text: 'You cannot add the same dependency twice.',
type: 'error',
})
} else {
this.version.dependencies.push({
project,
project_id: project.id,
dependency_type: newDependencyType,
link: `/${project.project_type}/${project.slug ?? project.id}`,
})
this.$emit('update:dependencies', {
projects: this.dependencies.projects.concat([project]),
versions: this.dependencies.versions,
})
this.$emit('update:dependencies', {
projects: this.dependencies.projects.concat([project]),
versions: this.dependencies.versions,
})
}
} else if (dependencyAddMode === 'version') {
const version = (
await this.$axios.get(`version/${this.newDependencyId}`)
@ -1196,21 +1209,34 @@ export default {
await this.$axios.get(`project/${version.project_id}`)
).data
this.version.dependencies.push({
version,
project,
version_id: version.id,
project_id: project.id,
dependency_type: this.newDependencyType,
link: `/${project.project_type}/${
project.slug ?? project.id
}/version/${encodeURI(version.version_number)}`,
})
if (
this.version.dependencies.some(
(dep) => version.id === dep.version_id
)
) {
this.$notify({
group: 'main',
title: 'Dependency already added',
text: 'You cannot add the same dependency twice.',
type: 'error',
})
} else {
this.version.dependencies.push({
version,
project,
version_id: version.id,
project_id: project.id,
dependency_type: this.newDependencyType,
link: `/${project.project_type}/${
project.slug ?? project.id
}/version/${encodeURI(version.version_number)}`,
})
this.$emit('update:dependencies', {
projects: this.dependencies.projects.concat([project]),
versions: this.dependencies.versions.concat([version]),
})
this.$emit('update:dependencies', {
projects: this.dependencies.projects.concat([project]),
versions: this.dependencies.versions.concat([version]),
})
}
}
this.newDependencyId = ''