diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index d41f37700..f29eb3913 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -814,7 +814,9 @@
"weakness": "Schwäche",
"will_not_fix": "Wird nicht repariert",
"workaround_available": "Problemumgehung verfügbar",
- "x_trust_boundary": "Vertrauensgrenzen überschreiten"
+ "x_trust_boundary": "Vertrauensgrenzen überschreiten",
+ "component_properties": "Komponenteneigenschaften",
+ "create_component_property": "Komponenteneigenschaft erstellen"
},
"operator": {
"contains_all": "enthält alle",
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index 665c9704d..a46858dc9 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -362,6 +362,7 @@
"component_namespace_group_vendor": "Namespace / group / vendor",
"component_operating_system": "Operating system",
"component_package_url_desc": "A Valid Package URL is required for libraries and frameworks. PURL syntax: pkg:type/namespace/name@version?qualifiers#subpath",
+ "component_properties": "Component Properties",
"component_search": "Component Search",
"component_spdx_license_desc": "Specifies the SPDX license ID of the component",
"component_supplier_name_desc": "The organization that supplied the component",
@@ -381,6 +382,7 @@
"cpe": "CPE",
"cpe_full": "Common Platform Enumeration (CPE)",
"create": "Create",
+ "create_component_property": "Create Component Property",
"create_license_group": "Create License Group",
"create_policy": "Create Policy",
"create_project": "Create Project",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 2057a0925..8c2152805 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -814,7 +814,9 @@
"weakness": "Debilidad",
"will_not_fix": "No se reparara",
"workaround_available": "Solución alternativa disponible",
- "x_trust_boundary": "Cruzar el límite de confianza"
+ "x_trust_boundary": "Cruzar el límite de confianza",
+ "component_properties": "Propiedades de los componentes",
+ "create_component_property": "Crear propiedad de componente"
},
"operator": {
"contains_all": "contiene todo",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index fdffebd2f..8b1b1a4e1 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -814,7 +814,9 @@
"weakness": "Faiblesse",
"will_not_fix": "Ne réglera pas",
"workaround_available": "Solution de contournement disponible",
- "x_trust_boundary": "Frontière de confiance croisée"
+ "x_trust_boundary": "Frontière de confiance croisée",
+ "component_properties": "Propriétés des composants",
+ "create_component_property": "Créer une propriété de composant"
},
"operator": {
"contains_all": "contient tout",
diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json
index ad3b95cd8..fa01f570a 100644
--- a/src/i18n/locales/hi.json
+++ b/src/i18n/locales/hi.json
@@ -814,7 +814,9 @@
"weakness": "कमजोरी",
"will_not_fix": "ठीक नहीं होगा",
"workaround_available": "वैकल्पिक उपाय उपलब्ध है",
- "x_trust_boundary": "क्रॉस ट्रस्ट सीमा"
+ "x_trust_boundary": "क्रॉस ट्रस्ट सीमा",
+ "component_properties": "घटक गुण",
+ "create_component_property": "घटक संपत्ति बनाएँ"
},
"operator": {
"contains_all": "इसमें सभी शामिल हैं",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index b3a30d626..d97dc91f1 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -814,7 +814,9 @@
"weakness": "Debolezza",
"will_not_fix": "Non risolverà",
"workaround_available": "Soluzione disponibile",
- "x_trust_boundary": "Confine di fiducia incrociata"
+ "x_trust_boundary": "Confine di fiducia incrociata",
+ "component_properties": "Proprietà del componente",
+ "create_component_property": "Crea proprietà componente"
},
"operator": {
"contains_all": "contiene tutto",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 1bd9cf407..f0e0f4bec 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -814,7 +814,9 @@
"weakness": "弱点",
"will_not_fix": "直らないでしょう",
"workaround_available": "回避策あり",
- "x_trust_boundary": "信頼境界を越える"
+ "x_trust_boundary": "信頼境界を越える",
+ "component_properties": "コンポーネントのプロパティ",
+ "create_component_property": "コンポーネントプロパティの作成"
},
"operator": {
"contains_all": "すべてを含む",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 8f5c5a0a6..fa52be18f 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -814,7 +814,9 @@
"weakness": "Słabość",
"will_not_fix": "Nie naprawi",
"workaround_available": "Dostępne obejście",
- "x_trust_boundary": "Granica zaufania krzyżowego"
+ "x_trust_boundary": "Granica zaufania krzyżowego",
+ "component_properties": "Właściwości komponentu",
+ "create_component_property": "Utwórz właściwość komponentu"
},
"operator": {
"contains_all": "zawiera wszystko",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index d481e2576..cbf4da78e 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -814,7 +814,9 @@
"weakness": "Fraqueza",
"will_not_fix": "Não irá corrigir",
"workaround_available": "Solução alternativa disponível",
- "x_trust_boundary": "Limite de confiança cruzada"
+ "x_trust_boundary": "Limite de confiança cruzada",
+ "component_properties": "Propriedades do Componente",
+ "create_component_property": "Criar propriedade de componente"
},
"operator": {
"contains_all": "contém tudo",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 814976913..1a8ee6c15 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -814,7 +814,9 @@
"weakness": "Fraqueza",
"will_not_fix": "Não irá corrigir",
"workaround_available": "Solução alternativa disponível",
- "x_trust_boundary": "Limite de confiança cruzada"
+ "x_trust_boundary": "Limite de confiança cruzada",
+ "component_properties": "Propriedades do Componente",
+ "create_component_property": "Criar propriedade de componente"
},
"operator": {
"contains_all": "contém tudo",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 15da20214..3c6063301 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -814,7 +814,9 @@
"weakness": "Слабость",
"will_not_fix": "Не будет исправлено",
"workaround_available": "Доступное решение",
- "x_trust_boundary": "Пересечение границы доверия"
+ "x_trust_boundary": "Пересечение границы доверия",
+ "component_properties": "Свойства компонента",
+ "create_component_property": "Создать свойство компонента"
},
"operator": {
"contains_all": "содержит все",
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index feda6b6a0..667b0c620 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -814,7 +814,9 @@
"weakness": "弱点",
"will_not_fix": "不会修复",
"workaround_available": "有解决方法",
- "x_trust_boundary": "跨越信任边界"
+ "x_trust_boundary": "跨越信任边界",
+ "component_properties": "组件属性",
+ "create_component_property": "创建组件属性"
},
"operator": {
"contains_all": "包含全部",
diff --git a/src/views/portfolio/projects/Component.vue b/src/views/portfolio/projects/Component.vue
index 13dee8516..e27f0e2aa 100644
--- a/src/views/portfolio/projects/Component.vue
+++ b/src/views/portfolio/projects/Component.vue
@@ -162,6 +162,8 @@
:component="cloneDeep(component)"
v-on:componentUpdated="syncComponentFields"
/>
+
+
@@ -178,10 +180,14 @@ import EventBus from '../../../shared/eventbus';
import permissionsMixin from '../../../mixins/permissionsMixin';
import ComponentDetailsModal from './ComponentDetailsModal';
import ExternalReferencesDropdown from '../../components/ExternalReferencesDropdown.vue';
+import ComponentCreatePropertyModal from './ComponentCreatePropertyModal.vue';
+import ComponentPropertiesModal from './ComponentPropertiesModal.vue';
export default {
mixins: [permissionsMixin],
components: {
+ ComponentCreatePropertyModal,
+ ComponentPropertiesModal,
SeverityBarChart,
ComponentDashboard,
ComponentVulnerabilities,
diff --git a/src/views/portfolio/projects/ComponentCreatePropertyModal.vue b/src/views/portfolio/projects/ComponentCreatePropertyModal.vue
new file mode 100644
index 000000000..32ba07194
--- /dev/null
+++ b/src/views/portfolio/projects/ComponentCreatePropertyModal.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $t('message.close')
+ }}
+ {{
+ $t('message.create')
+ }}
+
+
+
+
+
+
+
diff --git a/src/views/portfolio/projects/ComponentDetailsModal.vue b/src/views/portfolio/projects/ComponentDetailsModal.vue
index 231fc40b2..f302ada12 100644
--- a/src/views/portfolio/projects/ComponentDetailsModal.vue
+++ b/src/views/portfolio/projects/ComponentDetailsModal.vue
@@ -363,6 +363,13 @@
v-permission="PERMISSIONS.PORTFOLIO_MANAGEMENT"
>{{ $t('message.delete') }}
+ {{ $t('message.properties') }}
{{
$t('message.close')
}}
@@ -380,6 +387,7 @@
+
+