diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 5f0a97605..835569047 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -356,6 +356,7 @@ "add_license": "Add License", "add_tag": "Add Tag", "add_version": "Add Version", + "add_author": "Add Author", "administration": "Administration", "affected_components": "Affected Components", "affected_projects": "Affected Projects", @@ -770,6 +771,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.", @@ -800,6 +803,7 @@ "references": "References", "reindex": "Rebuild index(es)", "rejected": "Rejected", + "remove_author": "Remove Author", "remove_component": "Remove Component", "reported_by": "Reported By", "required_component_identifier": "A component identifier is required", 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/Project.vue b/src/views/portfolio/projects/Project.vue index 9252d768a..0a4156d6c 100644 --- a/src/views/portfolio/projects/Project.vue +++ b/src/views/portfolio/projects/Project.vue @@ -384,13 +384,14 @@ + @@ -412,6 +413,7 @@ import ProjectDetailsModal from './ProjectDetailsModal'; import ProjectPropertiesModal from './ProjectPropertiesModal'; import ProjectCreatePropertyModal from './ProjectCreatePropertyModal'; import ProjectAddVersionModal from './ProjectAddVersionModal'; +import ProjectAddAuthorModal from './ProjectAddAuthorModal.vue'; import ProjectFindings from './ProjectFindings'; import ProjectPolicyViolations from './ProjectPolicyViolations'; import ProjectEpss from './ProjectEpss'; @@ -424,6 +426,7 @@ export default { ProjectPolicyViolations, ProjectFindings, ProjectAddVersionModal, + ProjectAddAuthorModal, ProjectCreatePropertyModal, ProjectPropertiesModal, ProjectDetailsModal, @@ -520,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 new file mode 100644 index 000000000..5436343c1 --- /dev/null +++ b/src/views/portfolio/projects/ProjectAddAuthorModal.vue @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + Close + + + Submit + + + + + + + diff --git a/src/views/portfolio/projects/ProjectCreateProjectModal.vue b/src/views/portfolio/projects/ProjectCreateProjectModal.vue index 7a587a872..275b39756 100644 --- a/src/views/portfolio/projects/ProjectCreateProjectModal.vue +++ b/src/views/portfolio/projects/ProjectCreateProjectModal.vue @@ -1,244 +1,303 @@ - - - - {{ $t('message.general') }} - - - - - - - - - - - - - - (this.collectionTags = newCollectionTags) - " - class="mw-100 bg-transparent text-lowercase" - :max-tags="1" - v-show="showCollectionTags" - :readonly="this.isNotPermitted(PERMISSIONS.PORTFOLIO_MANAGEMENT)" - /> - - - Parent - - - + + + + {{ $t('message.general') }} - + + + + + + + + + + + + + {{ $t('message.project_author') }} + + + + - - (this.tags = newTags)" + @tags-changed=" + (newCollectionTags) => (this.collectionTags = newCollectionTags) + " class="mw-100 bg-transparent text-lowercase" + :max-tags="1" + v-show="showCollectionTags" + :readonly="this.isNotPermitted(PERMISSIONS.PORTFOLIO_MANAGEMENT)" /> - - - - - {{ $t('message.identity') }} + Parent + + + + + + + (this.tags = newTags)" + class="mw-100 bg-transparent text-lowercase" + /> + + + + + {{ $t('message.identity') }} + + + + + + + + + + + + + {{ + $t('message.close') + }} + {{ + $t('message.create') + }} + + + + + - - - - - - - - - - - - - {{ - $t('message.close') - }} - {{ - $t('message.create') - }} - - + + + + + + Save + + Cancel + + + + +