From 029206d9d7e671bb48d3bbd5760d58b5ec076950 Mon Sep 17 00:00:00 2001 From: deo002 Date: Fri, 21 Jun 2024 12:28:38 +0530 Subject: [PATCH] feat(database_sanitation): Integrate api for database sanitation --- messages/de.json | 12 ++ messages/en.json | 12 ++ messages/es.json | 12 ++ messages/fr.json | 12 ++ messages/ja.json | 12 ++ messages/ko.json | 12 ++ messages/pt-BR.json | 12 ++ messages/vi.json | 12 ++ messages/zh-CN.json | 12 ++ messages/zh-TW.json | 12 ++ src/app/[locale]/admin/components/Admin.tsx | 2 +- .../components/DatabaseSanitation.tsx | 191 ++++++++++++++++++ .../admin/databaseSanitation/page.tsx | 21 ++ src/object-types/NavList.ts | 2 +- src/object-types/SearchDuplicateResponse.tsx | 23 +++ src/object-types/index.ts | 4 +- 16 files changed, 360 insertions(+), 3 deletions(-) create mode 100644 src/app/[locale]/admin/databaseSanitation/components/DatabaseSanitation.tsx create mode 100644 src/app/[locale]/admin/databaseSanitation/page.tsx create mode 100644 src/object-types/SearchDuplicateResponse.tsx diff --git a/messages/de.json b/messages/de.json index 82bcb6a2..a57169ad 100644 --- a/messages/de.json +++ b/messages/de.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "CLI-Anhang nicht im Release gefunden!", "CODE_SNIPPET": "Code Snippet", "COMPLETE": "ZUSAMMENFASSUNG", + "COMPONENTS WITH THE SAME IDENTIFIER": "KOMPONENTEN MIT DERSELBEN BEZEICHNUNG [NAME]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "mit einem Gehalt an", "COTS": "COTS", "COTS Clearing Deadline": "COTS Clearing Deadline", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "Der Import schlägt fehl, wenn im SBOM-Tag metadata bereits ein Projekt mit demselben Namen und derselben Version wie die Komponente vorhanden ist.", "CycloneDx import condition 2": "Komponenten", "CycloneDx import condition 3": "Pakete werden nicht erstellt, wenn sie nicht Name oder Version oder PURL (Paket-URL) in der SBOM-Datei enthalten.", + "DATABASE ADMINISTRATION": "DATENBANKVERWALTUNG", "DELETE_ALL_LICENCES_ERROR": "Etwas ging schief. Versuchen Sie es noch mal.", "DELETE_ALL_LICENCES_SUCCESS": "Alle Lizenzinformationen wurden erfolgreich gelöscht.", "DELETE_ALL_LICENSE": "Möchten Sie wirklich alle Lizenzen, Lizenztypen, Verpflichtungen, Verpflichtungen, Risiken, Risikokategorien und benutzerdefinierte Eigenschaften aus der Datenbank löschen?", @@ -523,6 +526,7 @@ "Linked Packages": "Verknüpfte Pakete", "Linked Releases": "Linked Releases", "Linked Releases and Projects": "Linked Releases und Projekte", + "Links": "Links", "List View": "Listenansicht", "Logout": "Anmelden", "Low": "Niedrig", @@ -625,6 +629,7 @@ "PARTIAL": "TEIL", "PHASEOUT": "Phase", "PROJECTS": "PROJEKTE", + "PROJECTS WITH THE SAME IDENTIFIER": "PROJEKTE MIT DERSELBEN IDENTIFIZIERUNG [NAME(VERSION)]", "PROJECT_TYPE_INFO": "Kunden:\nIntern:\nProdukt:\nService:\nInner Quelle: ", "PTC Integrity": "TEIL Integrität", "Packages": "Pakete", @@ -686,6 +691,8 @@ "Quick Filter": "Schneller Filter", "REFERRED": "Verwandte Artikel", "REJECTED": "Ausgestoßen", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "VERÖFFENTLICHUNGEN MIT MEHR ALS EINEM QUELLENANHANG", + "RELEASES WITH THE SAME IDENTIFIER": "VERÖFFENTLICHUNGEN MIT DERSELBEN IDENTIFIZIERUNG [NAME(VERSION)]", "RELEASE_MAIN_STATE": "Open: Bisher nicht entschieden Mainline: Organisation oder Person denkt, dass die Nutzung dieser Software empfohlen wird, die mehrere Versionen enthalten Spezifische: Die Software wird im Allgemeinen nicht empfohlen, aber für spezielle Anwendungsfall oder für diese bestimmte Version ist es in Phaseout akzeptabel: Die Software hat Probleme, bitte beachten Sie, es bald zu entfernen, wenn in Gebrauch Denied: Software, die nicht genutzt werden darf. Zum Beispiel Software, die keine Lizenzierung hat", "REPORT_AVAILABLE": "Bericht verfügbar", "REPOSITORY_TYPE": "Repository-Typ", @@ -709,6 +716,7 @@ "Release Create failed": "Erstelle Fehler", "Release Date of this Release": "Veröffentlichungsdatum dieser Veröffentlichung", "Release Mainline State": "Release Mainline State", + "Release Name": "Release-Name", "Release Overview": "Über uns", "Release Path": "Release-Pfad", "Release Repository": "Repository veröffentlichen", @@ -786,6 +794,8 @@ "Search Users": "Benutzer suchen", "Search Users Modal": "Suche Benutzer Modal", "Search Vendor": "Suche Vendor", + "Search duplicate identifiers": "Suchen Sie nach doppelten Identifikatoren", + "Searching for duplicate identifiers": "Suche nach doppelten Identifikatoren", "Secondary Departments and Roles": "", "Security Assessment": "Sicherheitsbewertung", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "Nur Software", "Software Platforms": "Software-Plattformen", "Something went wrong": "Etwas ging schief", + "Source Attachments Counts": "Anzahl der Quellanhänge", "Source Code Available": "Quelle Code verfügbar", "Source Code Bundle": "Quellcode-Bundle", "Source Code Delivery": "Lieferung von Quellcode", @@ -866,6 +877,7 @@ "Text": "Text", "The": "Der", "The component cannot be deleted, since it contains releases Please delete the releases first": "Die Komponente {name} kann nicht gelöscht werden, da es enthält (ReleaseCount) Releases. Bitte löschen Sie die Freigaben zuerst.", + "The following duplicate identifiers were found": "Die folgenden doppelten Identifikatoren wurden gefunden.", "The new Component and new Release will be created, do you want to import?": "Die neue Komponente und neue Version werden erstellt, wollen Sie importieren?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "Die Projekte sind erfolgreich mit dem Projekt verbunden", diff --git a/messages/en.json b/messages/en.json index b583c15c..d699d4e8 100644 --- a/messages/en.json +++ b/messages/en.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "CLI attachment not found in the release!", "CODE_SNIPPET": "Code Snippet", "COMPLETE": "COMPLETE", + "COMPONENTS WITH THE SAME IDENTIFIER": "COMPONENTS WITH THE SAME IDENTIFIER [NAME]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "COMPONENTS WITH THE SAME IDENTIFIER [NAME]", "CONTAINED": "Contained", "COTS": "COTS", "COTS Clearing Deadline": "COTS Clearing Deadline", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "Import will fail if there is already an existing project with same name and version as component present in SBOM metadata tag.", "CycloneDx import condition 2": "Components & Releases will not be created for those packages which does not contain VCS (Version Control System) URL.", "CycloneDx import condition 3": "Packages will not be created if it does not contain Name or Version or PURL (Package URL) in SBOM file.", + "DATABASE ADMINISTRATION": "DATABASE ADMINISTRATION", "DELETE_ALL_LICENCES_ERROR": "Something went wrong. Try again.", "DELETE_ALL_LICENCES_SUCCESS": "All license information deleted successfully.", "DELETE_ALL_LICENSE": "Do you really want to delete all licenses, license types, obligations, obligations, risks, risk categories and oblig custom properties from the database?", @@ -523,6 +526,7 @@ "Linked Packages": "Linked Packages", "Linked Releases": "Linked Releases", "Linked Releases and Projects": "Linked Releases and Projects", + "Links": "Links", "List View": "List View", "Logout": "Sign Out", "Low": "Low", @@ -625,6 +629,7 @@ "PARTIAL": "PARTIAL", "PHASEOUT": "Phaseout", "PROJECTS": "PROJECTS", + "PROJECTS WITH THE SAME IDENTIFIER": "PROJECTS WITH THE SAME IDENTIFIER [NAME(VERSION)]", "PROJECT_TYPE_INFO": "Customer: \n Internal: \n Product: \n Service: \n Inner Source: ", "PTC Integrity": "PTC Integrity", "Packages": "Packages", @@ -686,6 +691,8 @@ "Quick Filter": "Quick Filter", "REFERRED": "Related", "REJECTED": "Rejected", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT", + "RELEASES WITH THE SAME IDENTIFIER": "RELEASES WITH THE SAME IDENTIFIER [NAME(VERSION)]", "RELEASE_MAIN_STATE": "Open: Not decided so far Mainline: Organisation or person thinks that use of this software is recommended, which included multiple versions Specific: The software is not recommended in general, but for special use case or for this particular version it is acceptable In Phaseout: The software has issues, please consider removing it soon, if in use Denied: Software which is not allowed for use. For example, software that does not have licensing", "REPORT_AVAILABLE": "Report Available", "REPOSITORY_TYPE": "Repository Type", @@ -709,6 +716,7 @@ "Release Create failed": "Release Create failed", "Release Date of this Release": "Release Date of this Release", "Release Mainline State": "Release Mainline State", + "Release Name": "Release Name", "Release Overview": "Release Overview", "Release Path": "Release Path", "Release Repository": "Release Repository", @@ -786,6 +794,8 @@ "Search Users": "Search Users", "Search Users Modal": "Search Users Modal", "Search Vendor": "Search Vendor", + "Search duplicate identifiers": "Search duplicate identifiers", + "Searching for duplicate identifiers": "Searching for duplicate identifiers", "Secondary Departments and Roles": "Secondary Departments and Roles", "Security Assessment": "Security Assessment", "Security Responsible": "Security Responsible", @@ -825,6 +835,7 @@ "Software Only": "Software Only", "Software Platforms": "Software Platforms", "Something went wrong": "Something went wrong", + "Source Attachments Counts": "Source Attachments Counts", "Source Code Available": "Source Code Available", "Source Code Bundle": "Source Code Bundle", "Source Code Delivery": "Source Code Delivery", @@ -866,6 +877,7 @@ "Text": "Text", "The": "The", "The component cannot be deleted, since it contains releases Please delete the releases first": "The component {name} cannot be deleted, since it contains {releaseCount} releases. Please delete the releases first.", + "The following duplicate identifiers were found": "The following duplicate identifiers were found.", "The new Component and new Release will be created, do you want to import?": "The new Component and new Release will be created, do you want to import?", "The project cannot be deleted, since it is used by another project!": "The project cannot be deleted, since it is used by another project!", "The projects have been successfully linked to project": "The projects have been successfully linked to project", diff --git a/messages/es.json b/messages/es.json index cbf51d5c..b0a81d18 100644 --- a/messages/es.json +++ b/messages/es.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "¡Apego CLI no encontrado en la liberación!", "CODE_SNIPPET": "Code Snippet", "COMPLETE": "COMPLETO", + "COMPONENTS WITH THE SAME IDENTIFIER": "COMPONENTES CON EL MISMO IDENTIFICADOR [NOMBRE]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "Contained", "COTS": "COTS", "COTS Clearing Deadline": "COTS Fecha límite de separación", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "La importación fallará si ya existe un proyecto con el mismo nombre y versión que el componente presente en la etiqueta SBOM metadata.", "CycloneDx import condition 2": "Componentes", "CycloneDx import condition 3": "Los Paquetes no se crearán si no contienen Nombre o Versión o PURL (URL del paquete) en el archivo SBOM.", + "DATABASE ADMINISTRATION": "ADMINISTRACIÓN DE BASE DE DATOS", "DELETE_ALL_LICENCES_ERROR": "Algo salió mal. Prueba otra vez.", "DELETE_ALL_LICENCES_SUCCESS": "Toda la información de licencia se elimina con éxito.", "DELETE_ALL_LICENSE": "¿De verdad quieres eliminar todas las licencias, tipos de licencias, obligaciones, riesgos, categorías de riesgo y obligar propiedades personalizadas de la base de datos?", @@ -523,6 +526,7 @@ "Linked Packages": "Paquetes vinculados", "Linked Releases": "Comunicados vinculados", "Linked Releases and Projects": "Comunicados y proyectos vinculados", + "Links": "Enlaces", "List View": "Vista de la lista", "Logout": "Sign Out", "Low": "Bajo", @@ -625,6 +629,7 @@ "PARTIAL": "PARTIAL", "PHASEOUT": "Fase de eliminación", "PROJECTS": "PROYECTOS", + "PROJECTS WITH THE SAME IDENTIFIER": "PROYECTOS CON EL MISMO IDENTIFICADOR [NOMBRE(VERSIÓN)]", "PROJECT_TYPE_INFO": "Cliente:\nInterno:\nProducto:\nServicio:\nFuente interna: ", "PTC Integrity": "PTC Integridad", "Packages": "Paquetes", @@ -686,6 +691,8 @@ "Quick Filter": "Filtro rápido", "REFERRED": "Relacionados", "REJECTED": "Rechazado", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "LANZAMIENTOS CON MÁS DE UNA FUENTE ADJUNTA", + "RELEASES WITH THE SAME IDENTIFIER": "LANZAMIENTOS CON EL MISMO IDENTIFICADOR [NOMBRE(VERSIÓN)]", "RELEASE_MAIN_STATE": "Abierto: No decidido hasta ahora Mainline: Organización o persona piensa que se recomienda el uso de este software, que incluye múltiples versiones Específicas: El software no se recomienda en general, pero para caso de uso especial o para esta versión en particular es aceptable En Fase: El software tiene problemas, por favor considere eliminarlo pronto, si en uso Denied: Software que no está permitido para uso. Por ejemplo, software que no tiene licencias", "REPORT_AVAILABLE": "Informe disponible", "REPOSITORY_TYPE": "Tipo de depósito", @@ -709,6 +716,7 @@ "Release Create failed": "Crear falló", "Release Date of this Release": "Fecha de lanzamiento de este comunicado", "Release Mainline State": "Estado de la liberación", + "Release Name": "Nombre de la versión", "Release Overview": "Sinopsis de liberación", "Release Path": "Ruta de lanzamiento", "Release Repository": "Repositorio de liberación", @@ -786,6 +794,8 @@ "Search Users": "Usuarios de búsqueda", "Search Users Modal": "Buscar Usuarios Modal", "Search Vendor": "Search Vendor", + "Search duplicate identifiers": "Buscar identificadores duplicados", + "Searching for duplicate identifiers": "Buscando identificadores duplicados", "Secondary Departments and Roles": "", "Security Assessment": "Evaluación de la seguridad", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "Software", "Software Platforms": "Plataformas de software", "Something went wrong": "Algo salió mal.", + "Source Attachments Counts": "Recuento de archivos adjuntos de origen", "Source Code Available": "Código fuente disponible", "Source Code Bundle": "Paquete de código fuente", "Source Code Delivery": "Código fuente", @@ -866,6 +877,7 @@ "Text": "Texto", "The": "El", "The component cannot be deleted, since it contains releases Please delete the releases first": "El componente {Nombre} no se puede eliminar, ya que contiene {releaseCount} liberaciones. Por favor, elimine las liberaciones primero.", + "The following duplicate identifiers were found": "Se encontraron los siguientes identificadores duplicados.", "The new Component and new Release will be created, do you want to import?": "Se creará el nuevo componente y nueva versión, ¿quieres importar?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "Los proyectos se han relacionado con éxito con el proyecto", diff --git a/messages/fr.json b/messages/fr.json index 8e37d4e8..dd76cf8c 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "Pièce jointe CLI non trouvée dans la version !", "CODE_SNIPPET": "Extrait de code", "COMPLETE": "REMPLIR", + "COMPONENTS WITH THE SAME IDENTIFIER": "COMPOSANTS AVEC LE MÊME IDENTIFIANT [NOM]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "Contenu", "COTS": "PRODUITS", "COTS Clearing Deadline": "PRODUITS Date limite d'approbation", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "L'importation échouera s'il existe déjà un projet existant avec le même nom et la même version que le composant présent dans la balise SBOM metadata.", "CycloneDx import condition 2": "Composants", "CycloneDx import condition 3": "Les Packages ne seront pas créés s'ils ne contiennent pas Nom ou Version ou PURL (URL du package) dans le fichier SBOM.", + "DATABASE ADMINISTRATION": "ADMINISTRATION DES BASES DE DONNÉES", "DELETE_ALL_LICENCES_ERROR": "Quelque chose s'est mal passé. Essaie encore.", "DELETE_ALL_LICENCES_SUCCESS": "Toutes les informations de licence supprimées avec succès.", "DELETE_ALL_LICENSE": "Voulez-vous vraiment supprimer toutes les licences, types de licences, obligations, obligations, risques, catégories de risques et obligation de propriétés personnalisées de la base de données?", @@ -523,6 +526,7 @@ "Linked Packages": "Forfaits liés", "Linked Releases": "Communiqués liés", "Linked Releases and Projects": "Communiqués et projets liés", + "Links": "Liens", "List View": "Vue en liste", "Logout": "Déconnexion", "Low": "Faible", @@ -625,6 +629,7 @@ "PARTIAL": "PARTIEL", "PHASEOUT": "Élimination progressive", "PROJECTS": "PROJETS", + "PROJECTS WITH THE SAME IDENTIFIER": "PROJETS AVEC LE MÊME IDENTIFIANT [NOM(VERSION)]", "PROJECT_TYPE_INFO": "Client:\nInterne:\nProduit:\nService:\nSource intérieure : ", "PTC Integrity": "PTC Intégrité", "Packages": "Emballages", @@ -686,6 +691,8 @@ "Quick Filter": "Filtre rapide", "REFERRED": "Autres", "REJECTED": "Rejeté", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "", + "RELEASES WITH THE SAME IDENTIFIER": "SORTIES AVEC LE MÊME IDENTIFIANT [NOM(VERSION)]", "RELEASE_MAIN_STATE": "Open: Pas encore décidé Mainline: L'organisation ou la personne pense que l'utilisation de ce logiciel est recommandée, qui comprend plusieurs versions spécifiques: Le logiciel n'est pas recommandé en général, mais pour le cas d'utilisation spéciale ou pour cette version particulière, il est acceptable dans Phaseout: Le logiciel a des problèmes, veuillez envisager de le supprimer rapidement, si en usage Refusé: Logiciel qui n'est pas autorisé à être utilisé. Par exemple, les logiciels qui n'ont pas de licence", "REPORT_AVAILABLE": "Rapport disponible", "REPOSITORY_TYPE": "Type de dépôt", @@ -709,6 +716,7 @@ "Release Create failed": "La publication Créer a échoué", "Release Date of this Release": "Date de sortie", "Release Mainline State": "État principal de libération", + "Release Name": "Nom de la version", "Release Overview": "Aperçu de la publication", "Release Path": "Chemin de sortie", "Release Repository": "Dépôt de publication", @@ -786,6 +794,8 @@ "Search Users": "Utilisateurs de recherche", "Search Users Modal": "Utilisateurs de recherche Modal", "Search Vendor": "Fournisseur de recherche", + "Search duplicate identifiers": "Rechercher des identifiants en double", + "Searching for duplicate identifiers": "Recherche d'identifiants en double", "Secondary Departments and Roles": "", "Security Assessment": "Évaluation de la sécurité", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "Logiciels seulement", "Software Platforms": "Plateformes logicielles", "Something went wrong": "Quelque chose a mal tourné", + "Source Attachments Counts": "Nombre de pièces jointes sources", "Source Code Available": "Code source disponible", "Source Code Bundle": "Ensemble de codes sources", "Source Code Delivery": "Code source Livraison", @@ -866,6 +877,7 @@ "Text": "Texte", "The": "Le", "The component cannot be deleted, since it contains releases Please delete the releases first": "Composante {nom} ne peut pas être supprimé, car il contient {releaseCount} libérations. Veuillez d'abord supprimer les versions.", + "The following duplicate identifiers were found": "Les identifiants en double suivants ont été trouvés.", "The new Component and new Release will be created, do you want to import?": "Le nouveau composant et la nouvelle version seront créés, voulez-vous importer?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "Les projets ont été liés avec succès au projet", diff --git a/messages/ja.json b/messages/ja.json index ee1ef35f..3d1afe96 100644 --- a/messages/ja.json +++ b/messages/ja.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "CLI attachment not found in the release!", "CODE_SNIPPET": "コードスニペット", "COMPLETE": "完了", + "COMPONENTS WITH THE SAME IDENTIFIER": "同じ識別子 [名前] を持つコンポーネント", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "含まれている", "COTS": "ベビーベッド", "COTS Clearing Deadline": "COTSクリアリング締切", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "SBOM の metadata タグに存在するコンポーネントと同じ名前とバージョンを持つ既存のプロジェクトがすでに存在する場合、インポートは 失敗します。", "CycloneDx import condition 2": "コンポーネント", "CycloneDx import condition 3": "", + "DATABASE ADMINISTRATION": "データベース管理", "DELETE_ALL_LICENCES_ERROR": "何かが間違っていた。 もう一度お試しください。", "DELETE_ALL_LICENCES_SUCCESS": "すべてのライセンス情報が正常に削除されました。", "DELETE_ALL_LICENSE": "データベースからのすべてのライセンス、ライセンスの種類、義務、義務、リスク、リスクカテゴリ、および義務のカスタムプロパティを削除したいですか?", @@ -523,6 +526,7 @@ "Linked Packages": "リンクされたパッケージ", "Linked Releases": "リンクされたリリース", "Linked Releases and Projects": "リンクされたリリースとプロジェクト", + "Links": "リンク", "List View": "リストビュー", "Logout": "ログアウト", "Low": "低い", @@ -625,6 +629,7 @@ "PARTIAL": "部分的", "PHASEOUT": "フェーズアウト", "PROJECTS": "PROJECTS", + "PROJECTS WITH THE SAME IDENTIFIER": "同じ識別子 [名前(バージョン)] を持つプロジェクト", "PROJECT_TYPE_INFO": "お客様:\n \n内部:\n \n製品:\n \nサービス:\n \n内部ソース:", "PTC Integrity": "PTC インテグリティ", "Packages": "Packages", @@ -686,6 +691,8 @@ "Quick Filter": "クイックフィルター", "REFERRED": "関連する", "REJECTED": "拒否されました", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "複数のソースが添付されたリリース", + "RELEASES WITH THE SAME IDENTIFIER": "同じ識別子 [名前(バージョン)] を持つリリース", "RELEASE_MAIN_STATE": "未解決: 現在のところ決定されていません メインライン: 複数のバージョンが含まれるこのソフトウェアの使用が推奨されていると組織または個人が考えています 特定: このソフトウェアは一般的に推奨されませんが、特殊な使用例またはこの特定のバージョンでは許容されます フェーズアウト中:\nソフトウェアには問題があります。使用中の場合は、すぐに削除することを検討してください。 拒否: 使用が許可されていないソフトウェア。\nたとえば、ライセンスのないソフトウェアなど", "REPORT_AVAILABLE": "レポートあり", "REPOSITORY_TYPE": "Repository Type", @@ -709,6 +716,7 @@ "Release Create failed": "Release Create failed", "Release Date of this Release": "本リリースの公開日", "Release Mainline State": "リリースメインライン状態", + "Release Name": "リリース名", "Release Overview": "リリース概要", "Release Path": "リリースパス", "Release Repository": "リリースリポジトリ", @@ -786,6 +794,8 @@ "Search Users": "ユーザーの検索", "Search Users Modal": "ユーザー検索モーダル", "Search Vendor": "ベンダーを検索", + "Search duplicate identifiers": "重複した識別子の検索", + "Searching for duplicate identifiers": "重複する識別子の検索", "Secondary Departments and Roles": "", "Security Assessment": "セキュリティ評価", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "ソフトウェアのみ", "Software Platforms": "ソフトウェアプラットフォーム", "Something went wrong": "何かが間違っていた", + "Source Attachments Counts": "ソース添付ファイル数", "Source Code Available": "利用可能なソースコード", "Source Code Bundle": "ソースコードバンドル", "Source Code Delivery": "ソースコード提供", @@ -866,6 +877,7 @@ "Text": "Text", "The": "の", "The component cannot be deleted, since it contains releases Please delete the releases first": "コンポーネント {name}{releaseCount} を持つため消去できない.最初にリリースを消去してください", + "The following duplicate identifiers were found": "次の重複した識別子が見つかりました。", "The new Component and new Release will be created, do you want to import?": "The new Component and new Release will be created, do you want to import?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "The projects have been successfully linked to project", diff --git a/messages/ko.json b/messages/ko.json index 42c9ca46..b4f60e78 100644 --- a/messages/ko.json +++ b/messages/ko.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "릴리스에서 찾을 수없는 클립!", "CODE_SNIPPET": "코드 Snippet", "COMPLETE": "계정 관리", + "COMPONENTS WITH THE SAME IDENTIFIER": "동일한 식별자 [이름]을 가진 구성 요소", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "관련 상품", "COTS": "사이트맵", "COTS Clearing Deadline": "사이트맵 자주 묻는 질문", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "SBOM 메타데이터 태그에 구성요소와 이름 및 버전이 동일한 기존 프로젝트가 이미 있는 경우 가져오기가 실패됩니다.", "CycloneDx import condition 2": "구성요소", "CycloneDx import condition 3": "SBOM 파일에 이름 또는 버전 또는 PURL(패키지 URL)이 포함되어 있지 않으면 패키지가 생성되지 않습니다.", + "DATABASE ADMINISTRATION": "데이터베이스 관리", "DELETE_ALL_LICENCES_ERROR": "뭔가 잘못되었습니다. 다시 시도하십시오.", "DELETE_ALL_LICENCES_SUCCESS": "모든 라이센스 정보는 성공적으로 삭제됩니다.", "DELETE_ALL_LICENSE": "모든 라이센스, 라이센스 유형, 의무, 의무, 위험, 위험 범주 및 데이터베이스에서 사용자 정의 속성을 삭제하고 싶습니까?", @@ -523,6 +526,7 @@ "Linked Packages": "연결된 패키지", "Linked Releases": "링크드 릴리즈", "Linked Releases and Projects": "링크드 릴리즈 및 프로젝트", + "Links": "연결", "List View": "목록보기", "Logout": "이름 *", "Low": "낮은", @@ -625,6 +629,7 @@ "PARTIAL": "제품정보", "PHASEOUT": "연락처", "PROJECTS": "프로젝트", + "PROJECTS WITH THE SAME IDENTIFIER": "동일한 식별자 [이름(버전)]을 사용하는 프로젝트", "PROJECT_TYPE_INFO": "고객:\n내부:\n제품:\n서비스:\n안 근원: ", "PTC Integrity": "PTC 정보 이름 *", "Packages": "제품정보", @@ -686,6 +691,8 @@ "Quick Filter": "빠른 필터", "REFERRED": "이름 *", "REJECTED": "관련 상품", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "둘 이상의 소스 첨부 파일이 포함된 릴리스", + "RELEASES WITH THE SAME IDENTIFIER": "동일한 식별자 [이름(버전)]을 사용하는 릴리스", "RELEASE_MAIN_STATE": "Open: 지금까지 수정되지 않음 Mainline: Organisation or person thinks that use of this software is recommended, which include multiple version Specific: 소프트웨어는 일반적으로 권장되지 않지만 특수 사용 케이스 또는이 특정 버전은 Phaseout에서 허용됩니다. 소프트웨어에는 문제가 있습니다, 그것을 빨리 제거하는 것을 고려하십시오, 사용 Denied에서: 사용 할 수없는 소프트웨어. 예를 들어, 라이선스가 없는 소프트웨어", "REPORT_AVAILABLE": "자주 묻는 질문", "REPOSITORY_TYPE": "저장소 유형", @@ -709,6 +716,7 @@ "Release Create failed": "생성 실패", "Release Date of this Release": "출시 날짜", "Release Mainline State": "메인 라인 상태", + "Release Name": "릴리스 이름", "Release Overview": "공지사항", "Release Path": "릴리스 경로", "Release Repository": "출시 Repository", @@ -786,6 +794,8 @@ "Search Users": "사용자 정의", "Search Users Modal": "사용자 정의", "Search Vendor": "검색 Vendor", + "Search duplicate identifiers": "중복 식별자 검색", + "Searching for duplicate identifiers": "중복 식별자 검색 중", "Secondary Departments and Roles": "", "Security Assessment": "보안 평가", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "소프트웨어 전용", "Software Platforms": "소프트웨어 플랫폼", "Something went wrong": "뭔가 잘못되었습니다.", + "Source Attachments Counts": "소스 첨부 파일 수", "Source Code Available": "소스 코드 사용 가능", "Source Code Bundle": "소스 코드 번들", "Source Code Delivery": "소스 코드 납품", @@ -866,6 +877,7 @@ "Text": "이름 *", "The": "그만큼", "The component cannot be deleted, since it contains releases Please delete the releases first": "제품 설명 이름 * 삭제할 수 없습니다. {releaseCount}에 대하여 공지사항 첫 번째 릴리스를 삭제하십시오.", + "The following duplicate identifiers were found": "다음과 같은 중복 식별자가 발견되었습니다.", "The new Component and new Release will be created, do you want to import?": "새로운 구성 요소와 새로운 릴리스를 만들 것입니다, 당신은 가져올 원?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "프로젝트는 성공적으로 프로젝트에 연결되었습니다.", diff --git a/messages/pt-BR.json b/messages/pt-BR.json index 52c2c597..035fa69e 100644 --- a/messages/pt-BR.json +++ b/messages/pt-BR.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "Anexo CLI não encontrado no release!", "CODE_SNIPPET": "Trecho do Código", "COMPLETE": "COMPLETADO", + "COMPONENTS WITH THE SAME IDENTIFIER": "COMPONENTES COM O MESMO IDENTIFICADOR [NOME]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "Contida", "COTS": "COTS", "COTS Clearing Deadline": "Prazo de Limpeza de COTS", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "A importação falhará se já existir um projeto com o mesmo nome e versão do componente presente na tag metadados do SBOM.", "CycloneDx import condition 2": "Componentes", "CycloneDx import condition 3": "", + "DATABASE ADMINISTRATION": "ADMINISTRAÇÃO DE BANCO DE DADOS", "DELETE_ALL_LICENCES_ERROR": "Algo deu errado. \nTente novamente.", "DELETE_ALL_LICENCES_SUCCESS": "Todas as informações de licença foram excluídas com sucesso.", "DELETE_ALL_LICENSE": "Você realmente deseja excluir todas as licenças, tipos de licença, obrigações, obrigações, riscos, categorias de risco e propriedades personalizadas obrigatórias do banco de dados?", @@ -523,6 +526,7 @@ "Linked Packages": "Pacotes Vinculados", "Linked Releases": "Releases vinculados", "Linked Releases and Projects": "Releases e Projetos Vinculados", + "Links": "Ligações", "List View": "Exibição de lista", "Logout": "Sair", "Low": "Baixo", @@ -625,6 +629,7 @@ "PARTIAL": "PARCIAL", "PHASEOUT": "Eliminação progressiva", "PROJECTS": "PROJECTS", + "PROJECTS WITH THE SAME IDENTIFIER": "PROJETOS COM O MESMO IDENTIFICADOR [NOME(VERSÃO)]", "PROJECT_TYPE_INFO": "Cliente: \n Interno: \n Produto: \n Serviço: \n Interno Fonte:", "PTC Integrity": "Integridade PTC", "Packages": "Pacotes", @@ -686,6 +691,8 @@ "Quick Filter": "Filtro Rápido", "REFERRED": "Relacionado", "REJECTED": "Rejeitado", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "LANÇAMENTOS COM MAIS DE UM ANEXO DE FONTE", + "RELEASES WITH THE SAME IDENTIFIER": "LANÇAMENTOS COM O MESMO IDENTIFICADOR [NOME(VERSÃO)]", "RELEASE_MAIN_STATE": "Aberto: Não decidido até agora Mainline: Organização ou pessoa acha que o uso deste software é recomendado, que incluiu várias versões Específico: O software não é recomendado em geral, mas para casos de uso especiais ou para esta versão específica é aceitável In Phaseout: O software tem problemas, considere removê-lo em breve, se em uso Negado: Software que não é permitido para uso. Por exemplo, softwares que não possuem licenciamento", "REPORT_AVAILABLE": "Relatório disponível", "REPOSITORY_TYPE": "Tipo de repositório", @@ -709,6 +716,7 @@ "Release Create failed": "Falha ao liberar criação", "Release Date of this Release": "Data de release desta versão", "Release Mainline State": "Liberar estado da linha principal", + "Release Name": "Nome da versão", "Release Overview": "Visão geral da versão", "Release Path": "Caminho de lançamento", "Release Repository": "Repositório de Liberação", @@ -786,6 +794,8 @@ "Search Users": "Pesquisar Clientes", "Search Users Modal": "Pesquisar Modal de Usuários", "Search Vendor": "Procurar fornecedor", + "Search duplicate identifiers": "Pesquisar identificadores duplicados", + "Searching for duplicate identifiers": "Procurando identificadores duplicados", "Secondary Departments and Roles": "", "Security Assessment": "Avaliação da segurança do AD", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "Apenas software", "Software Platforms": "Plataformas de software", "Something went wrong": "Algo deu errado", + "Source Attachments Counts": "Contagens de anexos de origem", "Source Code Available": "Código-fonte disponível", "Source Code Bundle": "Pacote de código-fonte", "Source Code Delivery": "Entrega de código-fonte", @@ -866,6 +877,7 @@ "Text": "Texto", "The": "O", "The component cannot be deleted, since it contains releases Please delete the releases first": "O componente {name} não pode ser excluído, pois contém {releaseCount} releases. Por favor, exclua os releases primeiro.", + "The following duplicate identifiers were found": "Os seguintes identificadores duplicados foram encontrados.", "The new Component and new Release will be created, do you want to import?": "O novo Componente e a nova Versão serão criados, deseja importar?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "Os projetos foram vinculados com sucesso ao projeto", diff --git a/messages/vi.json b/messages/vi.json index 4109b630..dedbdb38 100644 --- a/messages/vi.json +++ b/messages/vi.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "Không tìm thấy tệp đính kèm CLI trong bản phát hành!", "CODE_SNIPPET": "Đoạn mã", "COMPLETE": "HOÀN THÀNH", + "COMPONENTS WITH THE SAME IDENTIFIER": "CÁC THÀNH PHẦN CÓ CÙNG NHẬN DẠNG [TÊN]", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "Chứa", "COTS": "COTS", "COTS Clearing Deadline": "Thời hạn thanh toán COTS", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "Quá trình nhập sẽ thất bại nếu đã có sẵn một dự án có cùng tên và phiên bản với thành phần có trong thẻ SBOM siêu dữ liệu.", "CycloneDx import condition 2": "Thành phần", "CycloneDx import condition 3": "Gói sẽ không được tạo nếu nó không chứa Tên hoặc Phiên bản hoặc PURL (URL gói) trong tệp SBOM.", + "DATABASE ADMINISTRATION": "QUẢN LÝ CƠ SỞ DỮ LIỆU", "DELETE_ALL_LICENCES_ERROR": "Đã xảy ra lỗi. \nThử lại.", "DELETE_ALL_LICENCES_SUCCESS": "Tất cả thông tin giấy phép đã được xóa thành công.", "DELETE_ALL_LICENSE": "Bạn có thực sự muốn xóa tất cả các giấy phép, loại giấy phép, nghĩa vụ, nghĩa vụ, rủi ro, danh mục rủi ro và các thuộc tính tùy chỉnh bắt buộc khỏi cơ sở dữ liệu không?", @@ -523,6 +526,7 @@ "Linked Packages": "Gói được liên kết", "Linked Releases": "Các bản phát hành được liên kết", "Linked Releases and Projects": "Các bản phát hành và dự án được liên kết", + "Links": "Liên kết", "List View": "Xem danh sách", "Logout": "Đăng xuất", "Low": "Thấp", @@ -625,6 +629,7 @@ "PARTIAL": "MỘT PHẦN", "PHASEOUT": "Loại bỏ dần", "PROJECTS": "DỰ ÁN", + "PROJECTS WITH THE SAME IDENTIFIER": "DỰ ÁN CÓ CÙNG NHẬN DẠNG [TÊN(PHIÊN BẢN)]", "PROJECT_TYPE_INFO": "Khách hàng:\n \nNội bộ:\n \nSản phẩm:\n \nDịch vụ:\n \nNguồn bên trong:", "PTC Integrity": "Tính toàn vẹn của PTC", "Packages": "Gói", @@ -686,6 +691,8 @@ "Quick Filter": "Lọc nhanh", "REFERRED": "Có liên quan", "REJECTED": "Vật bị loại bỏ", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "PHÁT HÀNH VỚI NHIỀU ĐÍNH KÈM NGUỒN", + "RELEASES WITH THE SAME IDENTIFIER": "PHÁT HÀNH VỚI CÙNG NHẬN DẠNG [TÊN(PHIÊN BẢN)]", "RELEASE_MAIN_STATE": "Mở: Cho đến nay chưa được quyết định Tuyến chính: Tổ chức hoặc cá nhân cho rằng nên sử dụng phần mềm này, bao gồm nhiều phiên bản Cụ thể: Phần mềm nói chung không được khuyến nghị, nhưng đối với trường hợp sử dụng đặc biệt hoặc đối với phiên bản cụ thể này thì có thể chấp nhận Trong Giai đoạn loại bỏ: \nPhần mềm có vấn đề, đề nghị sớm gỡ bỏ nếu đang sử dụng Denied: Phần mềm không được phép sử dụng. \nVí dụ: phần mềm không có giấy phép", "REPORT_AVAILABLE": "Báo cáo có sẵn", "REPOSITORY_TYPE": "Loại kho lưu trữ", @@ -709,6 +716,7 @@ "Release Create failed": "Phát hành Tạo không thành công", "Release Date of this Release": "Ngày phát hành của bản phát hành này", "Release Mainline State": "Phát hành trạng thái tuyến chính", + "Release Name": "Tên phát hành", "Release Overview": "Tổng quan về bản phát hành", "Release Path": "Đường dẫn phát hành", "Release Repository": "Kho lưu trữ phát hành", @@ -786,6 +794,8 @@ "Search Users": "Tìm kiếm người dùng", "Search Users Modal": "Tìm kiếm người dùng theo phương thức", "Search Vendor": "Tìm kiếm nhà cung cấp", + "Search duplicate identifiers": "Tìm kiếm số nhận dạng trùng lặp", + "Searching for duplicate identifiers": "Tìm kiếm số nhận dạng trùng lặp", "Secondary Departments and Roles": "", "Security Assessment": "Đánh giá an ninh", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "Chỉ phần mềm", "Software Platforms": "Nền tảng phần mềm", "Something went wrong": "Đã xảy ra lỗi", + "Source Attachments Counts": "Số lượng tệp đính kèm nguồn", "Source Code Available": "Mã nguồn có sẵn", "Source Code Bundle": "Gói mã nguồn", "Source Code Delivery": "Phân phối mã nguồn", @@ -866,6 +877,7 @@ "Text": "Chữ", "The": "Các", "The component cannot be deleted, since it contains releases Please delete the releases first": "Không thể xóa thành phần {name} vì nó chứa các bản phát hành {releaseCount}. \nVui lòng xóa các bản phát hành trước.", + "The following duplicate identifiers were found": "Đã tìm thấy các số nhận dạng trùng lặp sau đây.", "The new Component and new Release will be created, do you want to import?": "Thành phần mới và Bản phát hành mới sẽ được tạo, bạn có muốn nhập không?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "Các dự án đã được liên kết thành công với dự án", diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 33d404b9..bb388bc5 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "版本中未找到 CLI 附件!", "CODE_SNIPPET": "代码片段", "COMPLETE": "完全的", + "COMPONENTS WITH THE SAME IDENTIFIER": "具有相同标识符 [名称] 的组件", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "包含", "COTS": "商用现货", "COTS Clearing Deadline": "COTS 清算截止日期", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "如果已存在与 SBOM 元数据 标记中的组件具有相同名称和版本的现有项目,导入将失败。", "CycloneDx import condition 2": "组件", "CycloneDx import condition 3": "如果 SBOM 文件中不包含名称版本或 PURL(包 URL),则不会创建。", + "DATABASE ADMINISTRATION": "数据库管理", "DELETE_ALL_LICENCES_ERROR": "出问题了 再试一次", "DELETE_ALL_LICENCES_SUCCESS": "所有许可信息成功删除 。", "DELETE_ALL_LICENSE": "您真的想要从数据库中删除所有许可证、许可证类型、义务、义务、风险、风险类别和义务定制属性吗?", @@ -523,6 +526,7 @@ "Linked Packages": "链接包", "Linked Releases": "链接版本", "Linked Releases and Projects": "链接的版本和项目", + "Links": "链接", "List View": "列表显示", "Logout": "登出", "Low": "低的", @@ -625,6 +629,7 @@ "PARTIAL": "部分的", "PHASEOUT": "淘汰", "PROJECTS": "项目", + "PROJECTS WITH THE SAME IDENTIFIER": "具有相同标识符的项目[名称(版本)]", "PROJECT_TYPE_INFO": "顾客:\n \n内部的:\n \n产品:\n \n服务:\n \n内部来源:", "PTC Integrity": "PTC 诚信", "Packages": "套餐", @@ -686,6 +691,8 @@ "Quick Filter": "快速过滤器", "REFERRED": "有关的", "REJECTED": "拒绝", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "具有多个源附件的版本", + "RELEASES WITH THE SAME IDENTIFIER": "具有相同标识符的版本 [名称(版本)]", "RELEASE_MAIN_STATE": "开放:尚未决定 主线:组织或个人认为推荐使用该软件,包括多个版本 具体:一般不推荐该软件,但对于特殊用例或特定版本是可以接受的 逐步淘汰:\n该软件有问题,如果正在使用,请考虑尽快将其删除。 拒绝:不允许使用该软件。\n例如,没有许可的软件", "REPORT_AVAILABLE": "可用报告", "REPOSITORY_TYPE": "存储库类型", @@ -709,6 +716,7 @@ "Release Create failed": "发布创建失败", "Release Date of this Release": "本版本的发布日期", "Release Mainline State": "发布主线状态", + "Release Name": "发布名称", "Release Overview": "发布概述", "Release Path": "发布路径", "Release Repository": "发布存储库", @@ -786,6 +794,8 @@ "Search Users": "搜索用户", "Search Users Modal": "搜索用户模式", "Search Vendor": "搜寻供应商", + "Search duplicate identifiers": "搜索重复的标识符", + "Searching for duplicate identifiers": "搜索重复的标识符", "Secondary Departments and Roles": "", "Security Assessment": "安全评估", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "仅限软件", "Software Platforms": "软件平台", "Something went wrong": "出了些问题", + "Source Attachments Counts": "源附件计数", "Source Code Available": "可用源代码", "Source Code Bundle": "源代码包", "Source Code Delivery": "源代码交付", @@ -866,6 +877,7 @@ "Text": "文本", "The": "这", "The component cannot be deleted, since it contains releases Please delete the releases first": "无法删除组件 {name},因为它包含 {releaseCount} 版本。\n请先删除版本。", + "The following duplicate identifiers were found": "发现以下重复标识符。", "The new Component and new Release will be created, do you want to import?": "将创建新的组件和新的版本,是否要导入?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "项目已成功链接至项目", diff --git a/messages/zh-TW.json b/messages/zh-TW.json index 6719c248..27f77d6e 100644 --- a/messages/zh-TW.json +++ b/messages/zh-TW.json @@ -86,6 +86,8 @@ "CLI attachment not found in the release!": "解禁中找不到 CLI 附件 !", "CODE_SNIPPET": "代碼片段", "COMPLETE": "完整", + "COMPONENTS WITH THE SAME IDENTIFIER": "具有相同識別符 [名稱] 的元件", + "COMPONENTS WITH THE SAME IDENTIFIER [NAME]": "", "CONTAINED": "包含", "COTS": "科斯", "COTS Clearing Deadline": "科斯 清除截止日期", @@ -230,6 +232,7 @@ "CycloneDx import condition 1": "如果已存在與 SBOM 元資料 標籤中的元件具有相同名稱和版本的現有項目,匯入將失敗。", "CycloneDx import condition 2": "元件", "CycloneDx import condition 3": "如果 SBOM 檔案中不包含名稱版本或 PURL(套件 URL),則不會建立套件。", + "DATABASE ADMINISTRATION": "資料庫管理", "DELETE_ALL_LICENCES_ERROR": "出事了 再試一次", "DELETE_ALL_LICENCES_SUCCESS": "所有授權資訊已成功刪除 。", "DELETE_ALL_LICENSE": "您真的要從數據庫中刪除所有授權型態、授權類型、責任、風險、風險、風險類型以及自訂屬性嗎 ?", @@ -523,6 +526,7 @@ "Linked Packages": "連結包", "Linked Releases": "已連結的放行", "Linked Releases and Projects": "連結的釋放與專案", + "Links": "連結", "List View": "清單顯示", "Logout": "簽署", "Low": "低的", @@ -625,6 +629,7 @@ "PARTIAL": "部分", "PHASEOUT": "淘汰", "PROJECTS": "项目", + "PROJECTS WITH THE SAME IDENTIFIER": "具有相同識別符的項目[名稱(版本)]", "PROJECT_TYPE_INFO": "客戶 :\n內部 :\n產品 :\n服務 :\n內部來源 : ", "PTC Integrity": "PTC 廉洁", "Packages": "套件", @@ -686,6 +691,8 @@ "Quick Filter": "快速筛选", "REFERRED": "相關", "REJECTED": "拒絕", + "RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT": "具有多個來源附件的版本", + "RELEASES WITH THE SAME IDENTIFIER": "具有相同識別符的版本 [名稱(版本)]", "RELEASE_MAIN_STATE": "Open: 尚未決定主線: Organization 或 person 認為建議使用此軟體, 其中包括多個版本 Special: 此軟體不是一般的建議, 但對於特殊用途或此特定版本, 軟體有問題, 禁止使用的軟體 。 例如,沒有授權的軟體", "REPORT_AVAILABLE": "可用的報告", "REPOSITORY_TYPE": "主目錄類型", @@ -709,6 +716,7 @@ "Release Create failed": "釋放失敗", "Release Date of this Release": "此放行日期", "Release Mainline State": "釋放主線狀態", + "Release Name": "發布名稱", "Release Overview": "釋放概述", "Release Path": "發布路徑", "Release Repository": "釋放仓库", @@ -786,6 +794,8 @@ "Search Users": "搜尋使用者", "Search Users Modal": "搜尋使用者", "Search Vendor": "搜索供应商", + "Search duplicate identifiers": "搜尋重複的標識符", + "Searching for duplicate identifiers": "搜尋重複的標識符", "Secondary Departments and Roles": "", "Security Assessment": "安全评估", "Security Responsible": "", @@ -825,6 +835,7 @@ "Software Only": "只有軟體", "Software Platforms": "軟體平台", "Something went wrong": "出事了", + "Source Attachments Counts": "來源附件計數", "Source Code Available": "可用源碼", "Source Code Bundle": "原始碼包", "Source Code Delivery": "源碼交付", @@ -866,6 +877,7 @@ "Text": "文字", "The": "這", "The component cannot be deleted, since it contains releases Please delete the releases first": "构成部分 {姓名} 不能刪除, 因為它包含 {釋放 釋放 請先刪除放行", + "The following duplicate identifiers were found": "發現以下重複標識符。", "The new Component and new Release will be created, do you want to import?": "您要匯入嗎 ?", "The project cannot be deleted, since it is used by another project!": "", "The projects have been successfully linked to project": "專案已成功連結到專案", diff --git a/src/app/[locale]/admin/components/Admin.tsx b/src/app/[locale]/admin/components/Admin.tsx index 63ce5e2b..ed724969 100644 --- a/src/app/[locale]/admin/components/Admin.tsx +++ b/src/app/[locale]/admin/components/Admin.tsx @@ -80,7 +80,7 @@ const AdminMainPage = () => { {t('Import Export')} - + diff --git a/src/app/[locale]/admin/databaseSanitation/components/DatabaseSanitation.tsx b/src/app/[locale]/admin/databaseSanitation/components/DatabaseSanitation.tsx new file mode 100644 index 00000000..ff9eb38a --- /dev/null +++ b/src/app/[locale]/admin/databaseSanitation/components/DatabaseSanitation.tsx @@ -0,0 +1,191 @@ +// Copyright (C) Siemens AG, 2023. Part of the SW360 Frontend Project. + +// This program and the accompanying materials are made +// available under the terms of the Eclipse Public License 2.0 +// which is available at https://www.eclipse.org/legal/epl-2.0/ + +// SPDX-License-Identifier: EPL-2.0 +// License-Filename: LICENSE + +'use client' + +import { useTranslations } from 'next-intl' +import Link from 'next/link' +import { Table, _ } from 'next-sw360' +import { getSession, signOut, } from 'next-auth/react' +import { useState } from 'react' +import { notFound } from 'next/navigation' +import { ApiUtils } from '@/utils' +import { HttpStatus, SearchDuplicatesResponse } from '@/object-types' + +export default function DatabaseSanitation() { + const t = useTranslations('default') + const [duplicates, setDuplicates] = useState(undefined) + + const searchDuplicate = async () => { + try { + setDuplicates(null) + const session = await getSession() + const response = await ApiUtils.GET( + 'databaseSanitation/searchDuplicate', + session.user.access_token, + ) + if (response.status === HttpStatus.UNAUTHORIZED) { + return signOut() + } else if (response.status !== HttpStatus.OK) { + return notFound() + } + const data: SearchDuplicatesResponse = await response.json() + setDuplicates(data) + } catch(e) { + console.error(e) + } + } + + const duplicateReleasesColumns = [ + { + id: 'duplicateReleases.releaseName', + name: t('Release Name'), + sort: true, + }, + { + id: 'duplicateReleases.links', + name: t('Links'), + formatter: (ids: string[]) => + _( + <> + {ids.map((id, index) => ( + <> + + {index + 1} + + {' '} + + ))} + + ), + }, + ] + + const duplicateReleaseSourcesColumns = [ + { + id: 'duplicateReleaseSources.releaseName', + name: t('Release Name'), + sort: true, + }, + { + id: 'duplicateReleaseSources.sourceAttachmentsCounts', + name: t('Source Attachments Counts'), + formatter: (ids: string[]) => + _( + <> + {ids.length} + + ), + }, + ] + + const duplicateComponentsColumns = [ + { + id: 'duplicateComponents.componentName', + name: t('Component Name'), + sort: true, + }, + { + id: 'duplicateComponents.links', + name: t('Links'), + formatter: (ids: string[]) => + _( + <> + {ids.map((id, index) => ( + <> + + {index + 1} + + {' '} + + ))} + + ), + }, + ] + + const duplicateProjectsColumns = [ + { + id: 'duplicateProjects.projectName', + name: t('Project Name'), + sort: true, + }, + { + id: 'duplicateProjects.links', + name: t('Links'), + formatter: (ids: string[]) => + _( + <> +
    + {ids.map((id, index) => ( + <> + + {index + 1} + + {' '} + + ))} +
+ + ), + }, + ] + + return ( +
+
+
+ +
+
+ {t('DATABASE ADMINISTRATION')} +
+
+ { + duplicates === null && +
+

{t('Searching for duplicate identifiers')}...

+
+
+
+
+ } + { + duplicates && + <> +
+

{t('The following duplicate identifiers were found')}...

+
+
+
{t('RELEASES WITH THE SAME IDENTIFIER')}
+ + +
+
{t('RELEASES WITH MORE THAN ONE SOURCE ATTACHMENT')}
+
+ +
+
{t('COMPONENTS WITH THE SAME IDENTIFIER')}
+
+ +
+
{t('PROJECTS WITH THE SAME IDENTIFIER')}
+
+ + + } + + ) +} diff --git a/src/app/[locale]/admin/databaseSanitation/page.tsx b/src/app/[locale]/admin/databaseSanitation/page.tsx new file mode 100644 index 00000000..3d600897 --- /dev/null +++ b/src/app/[locale]/admin/databaseSanitation/page.tsx @@ -0,0 +1,21 @@ +// Copyright (C) Siemens AG, 2023. Part of the SW360 Frontend Project. + +// This program and the accompanying materials are made +// available under the terms of the Eclipse Public License 2.0 +// which is available at https://www.eclipse.org/legal/epl-2.0/ + +// SPDX-License-Identifier: EPL-2.0 +// License-Filename: LICENSE + +import { Metadata } from 'next' +import DatabaseSanitation from './components/DatabaseSanitation' + +export const metadata: Metadata = { + title: 'Admin', +} + +function DatabaseSanitationAdministrationPage() { + return +} + +export default DatabaseSanitationAdministrationPage diff --git a/src/object-types/NavList.ts b/src/object-types/NavList.ts index a15b8168..bc30a7f3 100644 --- a/src/object-types/NavList.ts +++ b/src/object-types/NavList.ts @@ -36,7 +36,7 @@ function NavList() { { href: '#', name: t('Schedule'), id: 'admin_schedule' }, { href: '#', name: t('Fossology'), id: 'admin_fossology' }, { href: '#', name: t('Import Export'), id: 'admin_import_export' }, - { href: '#', name: t('Database Sanitation'), id: 'admin_database_sanitation' }, + { href: '/admin/databaseSanitation', name: t('Database Sanitation'), id: 'admin_database_sanitation' }, { href: '#', name: t('Attachment Cleanup'), id: 'admin_attachment_cleanup' }, { href: '#', name: t('OAuth Client'), id: 'admin_oauth_client' }, { href: '#', name: t('License Types'), id: 'admin_license_types' }, diff --git a/src/object-types/SearchDuplicateResponse.tsx b/src/object-types/SearchDuplicateResponse.tsx new file mode 100644 index 00000000..fcf30dad --- /dev/null +++ b/src/object-types/SearchDuplicateResponse.tsx @@ -0,0 +1,23 @@ +// Copyright (C) Siemens AG, 2023. Part of the SW360 Frontend Project. + +// This program and the accompanying materials are made +// available under the terms of the Eclipse Public License 2.0 +// which is available at https://www.eclipse.org/legal/epl-2.0/ + +// SPDX-License-Identifier: EPL-2.0 +// License-Filename: LICENSE + +export default interface SearchDuplicatesResponse { + duplicateProjects: { + [key: string]: string[] + } + duplicateReleases: { + [key: string]: string[] + } + duplicateReleaseSources: { + [key: string]: string[] + } + duplicateComponents: { + [key: string]: string[] + } +} diff --git a/src/object-types/index.ts b/src/object-types/index.ts index 2b434332..a2987a91 100644 --- a/src/object-types/index.ts +++ b/src/object-types/index.ts @@ -84,6 +84,7 @@ import SPDX from './spdx/SPDX' import SPDXDocument from './spdx/SPDXDocument' import SnippetInformation from './spdx/SnippetInformation' import SnippetRange from './spdx/SnippetRange' +import SearchDuplicatesResponse from './SearchDuplicateResponse' export type { AccessToken, @@ -166,7 +167,8 @@ export type { Message, MessageOptions, VulnerabilityTrackingStatus, - ProjectVulnerabilityTrackingStatus + ProjectVulnerabilityTrackingStatus, + SearchDuplicatesResponse } // Special functions for populate data