From 2c915542e190daf1786e81312a56e21975c4e847 Mon Sep 17 00:00:00 2001 From: kavdan1 Date: Tue, 19 Aug 2025 09:44:26 +0200 Subject: [PATCH 1/4] Adding authors field Signed-off-by: kavdan1 --- src/i18n/locales/en.json | 2 + .../projects/ComponentDetailsModal.vue | 4 +- .../projects/ProjectCreateProjectModal.vue | 576 +++++++++++------- 3 files changed, 348 insertions(+), 234 deletions(-) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 2582ce737..0d943787f 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -764,6 +764,8 @@ "project_metadata_supplier_name_desc": "The organization that supplied the BOM", "project_name": "Project Name", "project_name_desc": "The name of the project or component as provided by the supplier", + "project_author":"Authors", + "project_author_desc": "The author of the project", "project_properties": "Project Properties", "project_reanalyze": "Reanalyze", "project_reanalyze_requested": "A Project Vulnerability Analysis has been requested. Project vulnerability data will be updated when the reanalysis task has completed.", diff --git a/src/views/portfolio/projects/ComponentDetailsModal.vue b/src/views/portfolio/projects/ComponentDetailsModal.vue index df25e253e..f990627cc 100644 --- a/src/views/portfolio/projects/ComponentDetailsModal.vue +++ b/src/views/portfolio/projects/ComponentDetailsModal.vue @@ -63,7 +63,7 @@ id="component-author-input" input-group-size="mb-3" type="text" - v-model="component.author" + v-model="component.authors" required="false" :label="$t('message.component_author')" :tooltip="this.$t('message.component_author_desc')" @@ -548,7 +548,7 @@ export default { name: this.component.name, version: this.component.version, group: this.component.group, - author: this.component.author, + authors: this.component.authors, description: this.component.description, license: this.selectedLicense, licenseExpression: this.component.licenseExpression, diff --git a/src/views/portfolio/projects/ProjectCreateProjectModal.vue b/src/views/portfolio/projects/ProjectCreateProjectModal.vue index 7a587a872..55f4d7906 100644 --- a/src/views/portfolio/projects/ProjectCreateProjectModal.vue +++ b/src/views/portfolio/projects/ProjectCreateProjectModal.vue @@ -1,244 +1,304 @@ diff --git a/src/views/portfolio/projects/ProjectCreateProjectModal.vue b/src/views/portfolio/projects/ProjectCreateProjectModal.vue index 55f4d7906..e1675f663 100644 --- a/src/views/portfolio/projects/ProjectCreateProjectModal.vue +++ b/src/views/portfolio/projects/ProjectCreateProjectModal.vue @@ -254,7 +254,7 @@
- Add Author + {{ $t('message.add_author') }} @@ -293,7 +293,7 @@ Save - Cancel + $t('message.cancel')
@@ -313,6 +313,8 @@ import common from '../../../shared/common'; import availableClassifiersMixin from '@/mixins/availableClassifiersMixin'; import availableCollectionLogicsMixin from '@/mixins/availableCollectionLogicsMixin'; import { BTable, BTableLite } from 'bootstrap-vue'; +import ProjectAddVersionModal from './ProjectAddVersionModal.vue'; +import ProjectAddAuthorModal from './ProjectAddAuthorModal.vue'; export default { name: 'ProjectCreateProjectModal', @@ -569,7 +571,7 @@ export default { return project.name; } }, - asyncFind: function (query) {4 + asyncFind: function (query) { if (query) { this.isLoading = true; let url = `${this.$api.BASE_URL}/${this.$api.URL_PROJECT}?searchText=${query}&excludeInactive=true`; diff --git a/src/views/portfolio/projects/ProjectDetailsModal.vue b/src/views/portfolio/projects/ProjectDetailsModal.vue index 5c53718c1..2f4587a00 100644 --- a/src/views/portfolio/projects/ProjectDetailsModal.vue +++ b/src/views/portfolio/projects/ProjectDetailsModal.vue @@ -114,6 +114,10 @@ deselectLabel="" > + + @@ -523,6 +523,12 @@ export default { }; }, methods: { + addAuthor(newAuthor) { + if (!this.project.authors) { + this.project.authors = []; + } + this.project.authors.push(newAuthor); + }, cloneDeep: function (component) { return cloneDeep(component); }, diff --git a/src/views/portfolio/projects/ProjectAddAuthorModal.vue b/src/views/portfolio/projects/ProjectAddAuthorModal.vue index fc6b68dee..f5066ebae 100644 --- a/src/views/portfolio/projects/ProjectAddAuthorModal.vue +++ b/src/views/portfolio/projects/ProjectAddAuthorModal.vue @@ -43,11 +43,12 @@ export default { }, methods: { handleSubmit() { - console.log("Form submitted with:", { + const newAuthor = { name: this.name, email: this.email, phone: this.phone, - }); + }; + this.$emit("author-added", newAuthor); this.name = ""; this.email = ""; this.phone = ""; diff --git a/src/views/portfolio/projects/ProjectCreateProjectModal.vue b/src/views/portfolio/projects/ProjectCreateProjectModal.vue index e1675f663..fe8669622 100644 --- a/src/views/portfolio/projects/ProjectCreateProjectModal.vue +++ b/src/views/portfolio/projects/ProjectCreateProjectModal.vue @@ -293,7 +293,7 @@ Save - $t('message.cancel') + Cancel diff --git a/src/views/portfolio/projects/ProjectDetailsModal.vue b/src/views/portfolio/projects/ProjectDetailsModal.vue index 2f4587a00..50d509f64 100644 --- a/src/views/portfolio/projects/ProjectDetailsModal.vue +++ b/src/views/portfolio/projects/ProjectDetailsModal.vue @@ -1,494 +1,497 @@ - + + - - - - + + + - - - - - - + + + + + - - - + {{ $t('message.supplier') }} - + + - - - + + + + + + + + + + + - - - - - + + - - {{ $t('message.bom') }} - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + - - - - - - - - - - + + + + + + + + + + + + +