diff --git a/src/assets/scss/_custom.scss b/src/assets/scss/_custom.scss index 326f40017..dcbe40ee1 100644 --- a/src/assets/scss/_custom.scss +++ b/src/assets/scss/_custom.scss @@ -327,6 +327,36 @@ h6 { float: none; width: 100%; } +.fixed-table-toolbar .bs-bars:has(.filter-bar-row) { + float: none; + width: 100%; +} +.fixed-table-toolbar .filter-bar-row { + display: flex; + flex-direction: row; + align-items: stretch; + gap: 0.75rem; + width: 100%; + margin-bottom: 0; +} +.fixed-table-toolbar .filter-bar-row .filter-bar-filters { + flex: 1; + min-width: 0; +} +.fixed-table-toolbar .filter-bar-row .filter-bar-actions { + flex-shrink: 0; +} +.fixed-table-toolbar .filter-bar-row .btn-create-project { + font-size: 0.85rem !important; +} +.fixed-table-toolbar .filter-bar .btn-clear-all-filters, +.fixed-table-toolbar .filter-bar .btn-more-filters > .dropdown-toggle { + border-radius: 20px; + font-size: 0.85rem !important; +} +.fixed-table-toolbar .filter-bar .btn-more-filters > .dropdown-toggle { + border-style: dashed !important; +} .fixed-table-toolbar .filter-bar { margin-bottom: 0; } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 94aa086ce..66d90965c 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -414,6 +414,7 @@ "analysis_state": "Analysestatus", "analysis_tooltip": "Der aktuelle Stand des Auftretens einer Sicherheitslücke", "analyzer": "Analysator", + "ancestor": "Vorfahr", "apply": "Anwenden", "apply_vex": "VEX anwenden", "apply_vex_tooltip": "Wenden Sie Analysen aus einem Vulnerability Exploitability eXchange (VEX)-Dokument auf dieses Projekt an.", @@ -440,6 +441,7 @@ "classifier": "Klassifikator", "clear": "Löschen", "clear_all": "Alles löschen", + "clear_filters": "Alle Filter löschen", "close": "Schließen", "code_not_present": "Code nicht vorhanden", "code_not_reachable": "Code nicht erreichbar", @@ -607,6 +609,10 @@ "external_references": "Externe Referenzen", "false_positive": "Falsch-Positiv", "filename": "Dateiname", + "filter_only_active": "Nur aktiv", + "filter_only_inactive": "Nur inaktiv", + "filter_only_latest": "Nur aktuell", + "filter_only_non_latest": "Nur nicht aktuell", "filters": "Filter", "findings": "Ergebnisse", "findings_audited": "Geprüfte Ergebnisse", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Keine Datei ausgewählt", "no_kev_assertions": null, + "no_results": "Keine Ergebnisse", "no_version": null, "non_vulnerable": "Nicht anfällig", "not_affected": "Nicht betroffen", @@ -1024,6 +1031,7 @@ "scope": "Umfang", "score": "Punktzahl", "search": "Suchen", + "search_ancestor": "Geben Sie ein, um den Vorfahren zu suchen", "search_in": null, "search_parent": "Geben Sie zur Suche nach dem übergeordnetem Element etwas ein", "security_risk": "Sicherheitsrisiko", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Tag-Zuweisung erfolgreich aufgehoben", "tags": "Tags", "team": "Team", + "team_name": "Teamname", "teams": "Mannschaften", "template": "Vorlage", "title": "Titel", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 975a1f749..2186868c2 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -415,6 +415,7 @@ "analysis_state": "Analysis State", "analysis_tooltip": "The current state of an occurrence of a vulnerability", "analyzer": "Analyzer", + "ancestor": "Ancestor", "apply": "Apply", "apply_vex": "Apply VEX", "apply_vex_tooltip": "Apply analyses from a Vulnerability Exploitability eXchange (VEX) document to this project.", @@ -441,6 +442,7 @@ "classifier": "Classifier", "clear": "Clear", "clear_all": "Clear all", + "clear_filters": "Clear all filters", "close": "Close", "code_not_present": "Code not present", "code_not_reachable": "Code not reachable", @@ -608,6 +610,10 @@ "external_references": "External References", "false_positive": "False Positive", "filename": "Filename", + "filter_only_active": "Only active", + "filter_only_inactive": "Only inactive", + "filter_only_latest": "Only latest", + "filter_only_non_latest": "Only non-latest", "filters": "Filters", "findings": "Findings", "findings_audited": "Findings Audited", @@ -722,6 +728,7 @@ "no_changes": "No changes to save", "no_file_chosen": "No file chosen", "no_kev_assertions": "No KEV assertions available.", + "no_results": "No results", "no_version": "(no version)", "non_vulnerable": "Non Vulnerable", "not_affected": "Not Affected", @@ -1025,6 +1032,7 @@ "scope": "Scope", "score": "Score", "search": "Search", + "search_ancestor": "Type to search ancestor", "search_in": "Search in", "search_parent": "Type to search parent", "security_risk": "Security Risk", @@ -1088,6 +1096,7 @@ "tag_unassigned_successfully": "Untagged successfully", "tags": "Tags", "team": "Team", + "team_name": "Team Name", "teams": "Teams", "template": "Template", "title": "Title", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index cdd1e1fbb..8aabcb4f0 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -414,6 +414,7 @@ "analysis_state": "Estado de análisis", "analysis_tooltip": "El estado actual de una ocurrencia de una vulnerabilidad.", "analyzer": "Analizador", + "ancestor": "Antepasado", "apply": "Aplicar", "apply_vex": "Aplicar VEX", "apply_vex_tooltip": "Aplique análisis de un documento de Vulnerability Exploitability eXchange (VEX) a este proyecto.", @@ -440,6 +441,7 @@ "classifier": "Clasificador", "clear": "Limpiar", "clear_all": "Limpiar todo", + "clear_filters": "Limpiar todos los filtros", "close": "Cerca", "code_not_present": "Código no presente", "code_not_reachable": "Código no accesible", @@ -607,6 +609,10 @@ "external_references": "Referencias externas", "false_positive": "Falso positivo", "filename": "Nombre del archivo", + "filter_only_active": "Sólo activo", + "filter_only_inactive": "Sólo inactivo", + "filter_only_latest": "Sólo lo último", + "filter_only_non_latest": "Sólo lo último", "filters": "Filtros", "findings": "Recomendaciones", "findings_audited": "Hallazgos auditados", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Ningún archivo elegido", "no_kev_assertions": null, + "no_results": "Sin resultados", "no_version": null, "non_vulnerable": "No vulnerable", "not_affected": "No afectado", @@ -1024,6 +1031,7 @@ "scope": "Alcance", "score": "Puntaje", "search": "Buscar", + "search_ancestor": "Escribe para buscar antepasado", "search_in": null, "search_parent": "Escriba para buscar padre", "security_risk": "Riesgo de seguridad", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Sin etiquetar con éxito", "tags": "Etiquetas", "team": "Equipo", + "team_name": "Nombre del equipo", "teams": "equipos", "template": "Plantilla", "title": "Título", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index d902acdae..1d98edb11 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -414,6 +414,7 @@ "analysis_state": "État de l'analyse", "analysis_tooltip": "L'état actuel d'une occurrence d'une vulnérabilité", "analyzer": "Analyseur", + "ancestor": "Ancêtre", "apply": "Appliquer", "apply_vex": "Appliquer VEX", "apply_vex_tooltip": "Appliquer les analyses d'un document Vulnerability Exploitability eXchange (VEX) à ce projet.", @@ -440,6 +441,7 @@ "classifier": "Catégorie", "clear": "Effacer", "clear_all": "Tout effacer", + "clear_filters": "Supprimer tous les filtres", "close": "Fermer", "code_not_present": "Code non présent", "code_not_reachable": "Code inaccessible", @@ -607,6 +609,10 @@ "external_references": "Références externes", "false_positive": "Faux positif", "filename": "Nom de fichier", + "filter_only_active": "Uniquement actif", + "filter_only_inactive": "Uniquement inactif", + "filter_only_latest": "Seulement le dernier", + "filter_only_non_latest": "Seulement non-dernier", "filters": "Filtres", "findings": "Résultats", "findings_audited": "Résultats vérifiés", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Aucun fichier choisi", "no_kev_assertions": null, + "no_results": "Aucun résultat", "no_version": null, "non_vulnerable": "Non vulnérable", "not_affected": "Pas affecté", @@ -1024,6 +1031,7 @@ "scope": "Porté", "score": "Score", "search": "Recherche", + "search_ancestor": "Tapez pour rechercher un ancêtre", "search_in": null, "search_parent": "Rechercher un parent", "security_risk": "Risque de sécurité", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Détaché avec succès", "tags": "Tags", "team": "Équipe", + "team_name": "Nom de l'équipe", "teams": "Équipes", "template": "Modèle", "title": "Titre", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 5dcf278d3..bf7ceac15 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -414,6 +414,7 @@ "analysis_state": "विश्लेषण स्थिति", "analysis_tooltip": "किसी भेद्यता की घटना की वर्तमान स्थिति", "analyzer": "विश्लेषक", + "ancestor": "पूर्वज", "apply": "लागू करें", "apply_vex": "VEX लागू करें", "apply_vex_tooltip": "इस परियोजना पर भेद्यता शोषण एक्सचेंज (VEX) दस्तावेज़ से विश्लेषण लागू करें।", @@ -440,6 +441,7 @@ "classifier": "वर्गीकरणकर्ता", "clear": "साफ़ करें", "clear_all": "सभी साफ करें", + "clear_filters": "सभी फ़िल्टर साफ़ करें", "close": "बंद करना", "code_not_present": "कोड मौजूद नहीं है", "code_not_reachable": "कोड उपलब्ध नहीं है", @@ -607,6 +609,10 @@ "external_references": "बाह्य संदर्भ", "false_positive": "सकारात्मक झूठी", "filename": "फ़ाइल का नाम", + "filter_only_active": "केवल सक्रिय", + "filter_only_inactive": "केवल निष्क्रिय", + "filter_only_latest": "केवल नवीनतम", + "filter_only_non_latest": "केवल गैर-नवीनतम", "filters": "फिल्टर", "findings": "जाँच - परिणाम", "findings_audited": "निष्कर्ष लेखापरीक्षित", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "कोई फ़ाइल चुना नही", "no_kev_assertions": null, + "no_results": "कोई परिणाम नहीं", "no_version": null, "non_vulnerable": "गैर असुरक्षित", "not_affected": "प्रभावित नहीं", @@ -1024,6 +1031,7 @@ "scope": "दायरा", "score": "अंक", "search": "खोज", + "search_ancestor": "पूर्वज खोजने के लिए टाइप करें", "search_in": null, "search_parent": "माता-पिता को खोजने के लिए टाइप करें", "security_risk": "सुरक्षा मे जोखिम", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "सफलतापूर्वक अनटैग किया गया", "tags": "टैग", "team": "टीम", + "team_name": "टीम का नाम", "teams": "टीमें", "template": "खाका", "title": "शीर्षक", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index c06f171bb..0c77e5556 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -414,6 +414,7 @@ "analysis_state": "Stato dell'analisi", "analysis_tooltip": "Lo stato attuale in cui si è verificata una vulnerabilità", "analyzer": "Analizzatore", + "ancestor": "Antenato", "apply": "Applica", "apply_vex": "Applica VEX", "apply_vex_tooltip": "Applicare le analisi da un documento Vulnerability Exploitability eXchange (VEX) a questo progetto.", @@ -440,6 +441,7 @@ "classifier": "Classificatore", "clear": "Cancella", "clear_all": "Cancella tutto", + "clear_filters": "Cancella tutti i filtri", "close": "Vicino", "code_not_present": "Codice non presente", "code_not_reachable": "Codice non raggiungibile", @@ -607,6 +609,10 @@ "external_references": "Riferimenti esterni", "false_positive": "Falso positivo", "filename": "Nome del file", + "filter_only_active": "Solo attivo", + "filter_only_inactive": "Solo inattivo", + "filter_only_latest": "Solo più recente", + "filter_only_non_latest": "Solo non più recente", "filters": "Filtri", "findings": "Risultati", "findings_audited": "Risultati verificati", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Nessun file scelto", "no_kev_assertions": null, + "no_results": "Nessun risultato", "no_version": null, "non_vulnerable": "Non vulnerabile", "not_affected": "Non affetto", @@ -1024,6 +1031,7 @@ "scope": "Ambito", "score": "Punto", "search": "Ricerca", + "search_ancestor": "Digita per cercare l'antenato", "search_in": null, "search_parent": "Digita per cercare genitore", "security_risk": "Rischio per la sicurezza", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Deselezionato con successo", "tags": "Tag", "team": "Squadra", + "team_name": "Nome della squadra", "teams": "Squadre", "template": "Modello", "title": "Titolo", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 8dfeda65a..26cbce4a4 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -414,6 +414,7 @@ "analysis_state": "分析状態", "analysis_tooltip": "脆弱性発生の現状", "analyzer": "アナライザ", + "ancestor": "祖先", "apply": "適用", "apply_vex": "VEXを適用する", "apply_vex_tooltip": "Vulnerability Exploitability eXchange (VEX) ドキュメントからの分析をこのプロジェクトに適用します。", @@ -440,6 +441,7 @@ "classifier": "分類器", "clear": "クリア", "clear_all": "すべてクリア", + "clear_filters": "すべてのフィルターをクリア", "close": "閉じる", "code_not_present": "コードが存在しません", "code_not_reachable": "コードにアクセスできません", @@ -607,6 +609,10 @@ "external_references": "外部参照", "false_positive": "偽陽性", "filename": "ファイル名", + "filter_only_active": "アクティブのみ", + "filter_only_inactive": "非アクティブのみ", + "filter_only_latest": "最新のもののみ", + "filter_only_non_latest": "最新でないもののみ", "filters": "フィルター", "findings": "調査結果", "findings_audited": "監査結果", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "ファイルが選択されていません", "no_kev_assertions": null, + "no_results": "結果はありません", "no_version": null, "non_vulnerable": "脆弱ではない", "not_affected": "影響を受けません", @@ -1024,6 +1031,7 @@ "scope": "範囲", "score": "スコア", "search": "検索", + "search_ancestor": "祖先を検索するために入力します", "search_in": null, "search_parent": "親を検索するには入力してください", "security_risk": "セキュリティリスク", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "タグが正常に解除されました", "tags": "タグ", "team": "チーム", + "team_name": "チーム名", "teams": "チーム", "template": "テンプレート", "title": "タイトル", diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index 42e2d6d6c..6a8df0772 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -415,6 +415,7 @@ "analysis_state": "분석 상태", "analysis_tooltip": "취약점 발생의 현재 상태", "analyzer": "분석기", + "ancestor": "선조", "apply": "적용", "apply_vex": "VEX 적용", "apply_vex_tooltip": "VEX(Vulnerability Exploitability eXchange) 문서의 분석 결과를 이 프로젝트에 적용합니다.", @@ -441,6 +442,7 @@ "classifier": "분류자", "clear": "지우기", "clear_all": "모두 지우기", + "clear_filters": "모든 필터 지우기", "close": "닫기", "code_not_present": "코드 미포함", "code_not_reachable": "코드 도달 불가", @@ -608,6 +610,10 @@ "external_references": "외부 참조", "false_positive": "오탐", "filename": "파일명", + "filter_only_active": "활성 상태만", + "filter_only_inactive": "비활성 상태만", + "filter_only_latest": "최신만", + "filter_only_non_latest": "최신이 아닌 것만", "filters": "필터", "findings": "발견 항목", "findings_audited": "심사된 발견 항목", @@ -722,6 +728,7 @@ "no_changes": "저장할 변경 사항 없음", "no_file_chosen": "선택된 파일 없음", "no_kev_assertions": null, + "no_results": "결과 없음", "no_version": "(버전 없음)", "non_vulnerable": "취약점 없음", "not_affected": "영향 없음", @@ -1025,6 +1032,7 @@ "scope": "범위", "score": "점수", "search": "검색", + "search_ancestor": "조상을 검색하려면 입력하세요.", "search_in": "검색 범위", "search_parent": "상위 항목 검색하려면 입력하세요", "security_risk": "보안 위험", @@ -1088,6 +1096,7 @@ "tag_unassigned_successfully": "태그가 성공적으로 해제되었습니다", "tags": "태그", "team": "팀", + "team_name": "팀 이름", "teams": "팀", "template": "템플릿", "title": "제목", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index dcfcdb285..91b0caea4 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -414,6 +414,7 @@ "analysis_state": "Stan analizy", "analysis_tooltip": "Bieżący stan wystąpienia luki", "analyzer": "Analizator", + "ancestor": "Przodek", "apply": "Zastosuj", "apply_vex": "Zastosuj VEX", "apply_vex_tooltip": "Zastosuj analizy z dokumentu Vulnerability Exploitability eXchange (VEX) do tego projektu.", @@ -440,6 +441,7 @@ "classifier": "Klasyfikator", "clear": "Wyczyść", "clear_all": "Wyczyść wszystko", + "clear_filters": "Wyczyść wszystkie filtry", "close": "Zamknąć", "code_not_present": "Brak kodu", "code_not_reachable": "Kod nieosiągalny", @@ -607,6 +609,10 @@ "external_references": "Referencje zewnętrzne", "false_positive": "Fałszywie pozytywny", "filename": "Nazwa pliku", + "filter_only_active": "Tylko aktywny", + "filter_only_inactive": "Tylko nieaktywne", + "filter_only_latest": "Tylko najnowsze", + "filter_only_non_latest": "Tylko nie najnowsze", "filters": "Filtry", "findings": "Wyniki", "findings_audited": "Wyniki audytu", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Nie wybrano żadnego pliku", "no_kev_assertions": null, + "no_results": "Brak wyników", "no_version": null, "non_vulnerable": "Niewrażliwy", "not_affected": "Nie dotyczy", @@ -1024,6 +1031,7 @@ "scope": "Zakres", "score": "Wynik", "search": "Szukaj", + "search_ancestor": "Wpisz, aby wyszukać przodka", "search_in": null, "search_parent": "Wpisz, aby wyszukać element nadrzędny", "security_risk": "Zagrożenie dla bezpieczeństwa", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Pomyślnie nieoznaczono", "tags": "Tagi", "team": "Zespół", + "team_name": "Nazwa zespołu", "teams": "Zespoły", "template": "Szablon", "title": "Tytuł", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 71dc18d97..4fe8f0497 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -414,6 +414,7 @@ "analysis_state": "Estado de análise", "analysis_tooltip": "O estado atual de uma ocorrência de uma vulnerabilidade", "analyzer": "Analisador", + "ancestor": "Antepassado", "apply": "Aplicar", "apply_vex": "Aplicar VEX", "apply_vex_tooltip": "Aplique análises de um documento Vulnerability Exploitability eXchange (VEX) a este projeto.", @@ -440,6 +441,7 @@ "classifier": "Classificador", "clear": "Limpar", "clear_all": "Limpar tudo", + "clear_filters": "Limpar todos os filtros", "close": "Fechar", "code_not_present": "Código não presente", "code_not_reachable": "Código não acessível", @@ -607,6 +609,10 @@ "external_references": "Referências Externas", "false_positive": "Falso positivo", "filename": "Nome do arquivo", + "filter_only_active": "Somente ativo", + "filter_only_inactive": "Apenas inativo", + "filter_only_latest": "Apenas o mais recente", + "filter_only_non_latest": "Somente não mais recente", "filters": "Filtros", "findings": "Descobertas", "findings_audited": "Resultados auditados", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Nenhum arquivo selecionado", "no_kev_assertions": null, + "no_results": "Nenhum resultado", "no_version": null, "non_vulnerable": "Não Vulnerável", "not_affected": "Não afetado", @@ -1024,6 +1031,7 @@ "scope": "Escopo", "score": "Pontuação", "search": "Procurar", + "search_ancestor": "Digite para pesquisar ancestral", "search_in": null, "search_parent": "Digite para pesquisar pai", "security_risk": "Risco de segurança", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Não marcado com sucesso", "tags": "Tag", "team": "Equipe", + "team_name": "Nome da equipe", "teams": "Equipes", "template": "Modelo", "title": "Título", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index c5d462654..5fa02df38 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -414,6 +414,7 @@ "analysis_state": "Estado de análise", "analysis_tooltip": "O estado atual de uma ocorrência de uma vulnerabilidade", "analyzer": "Analisador", + "ancestor": "Antepassado", "apply": "Aplicar", "apply_vex": "Aplicar VEX", "apply_vex_tooltip": "Aplique análises de um documento Vulnerability Exploitability eXchange (VEX) a este projeto.", @@ -440,6 +441,7 @@ "classifier": "Classificador", "clear": "Limpar", "clear_all": "Limpar tudo", + "clear_filters": "Limpar todos os filtros", "close": "Fechar", "code_not_present": "Código não presente", "code_not_reachable": "Código não acessível", @@ -607,6 +609,10 @@ "external_references": "Referências Externas", "false_positive": "Falso positivo", "filename": "Nome do arquivo", + "filter_only_active": "Somente ativo", + "filter_only_inactive": "Apenas inativo", + "filter_only_latest": "Apenas o mais recente", + "filter_only_non_latest": "Somente não mais recente", "filters": "Filtros", "findings": "Descobertas", "findings_audited": "Resultados auditados", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Nenhum arquivo selecionado", "no_kev_assertions": null, + "no_results": "Nenhum resultado", "no_version": null, "non_vulnerable": "Não Vulnerável", "not_affected": "Não afetado", @@ -1024,6 +1031,7 @@ "scope": "Âmbito", "score": "Pontuação", "search": "Procurar", + "search_ancestor": "Digite para pesquisar ancestral", "search_in": null, "search_parent": "Digite para pesquisar pai", "security_risk": "Risco de segurança", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Não marcado com sucesso", "tags": "Tag", "team": "Equipe", + "team_name": "Nome da equipe", "teams": "Equipes", "template": "Modelo", "title": "Título", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 02c5064a9..b7d23833e 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -414,6 +414,7 @@ "analysis_state": "Состояние анализа", "analysis_tooltip": "Текущее состояние уязвимости", "analyzer": "Анализатор", + "ancestor": "Предок", "apply": "Применить", "apply_vex": "Применить VEX", "apply_vex_tooltip": "Применить анализ из документа Vulnerability Exploitability eXchange (VEX) к этому проекту.", @@ -440,6 +441,7 @@ "classifier": "Классификатор", "clear": "Очистить", "clear_all": "Очистить все", + "clear_filters": "Очистить все фильтры", "close": "Закрыть", "code_not_present": "Код отсутствует", "code_not_reachable": "Код недоступен", @@ -607,6 +609,10 @@ "external_references": "Внешние ссылки", "false_positive": "Ложноположительный", "filename": "Имя файла", + "filter_only_active": "Только активный", + "filter_only_inactive": "Только неактивный", + "filter_only_latest": "Только последние", + "filter_only_non_latest": "Только не последние", "filters": "Фильтры", "findings": "Выводы", "findings_audited": "Проанализированные выводы", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Файл не выбран", "no_kev_assertions": null, + "no_results": "Нет результатов", "no_version": null, "non_vulnerable": "Неуязвимый", "not_affected": "Не затронуто", @@ -1024,6 +1031,7 @@ "scope": "Объем", "score": "Счет", "search": "Поиск", + "search_ancestor": "Введите для поиска предка", "search_in": null, "search_parent": "Введите для поиска родителя", "security_risk": "Риск безопасности", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Тег успешно снят", "tags": "Теги", "team": "Команда", + "team_name": "Название команды", "teams": "Команды", "template": "Шаблон", "title": "Заголовок", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index ef61f287c..619118ef8 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -414,6 +414,7 @@ "analysis_state": "Стан аналізу", "analysis_tooltip": "Поточний стан виявлення уразливості", "analyzer": "Аналізатор", + "ancestor": "Предок", "apply": "Застосувати", "apply_vex": "Застосувати VEX", "apply_vex_tooltip": "Застосувати аналізи з документа Vulnerability Exploitability eXchange (VEX) до цього проєкту.", @@ -440,6 +441,7 @@ "classifier": "Класифікатор", "clear": "Очистити", "clear_all": "Очистити все", + "clear_filters": "Очистити всі фільтри", "close": "Закрити", "code_not_present": "Код відсутній", "code_not_reachable": "Код недоступний", @@ -607,6 +609,10 @@ "external_references": "Зовнішні посилання", "false_positive": "Хибне спрацьовування", "filename": "Ім'я файлу", + "filter_only_active": "Тільки активний", + "filter_only_inactive": "Тільки неактивний", + "filter_only_latest": "Тільки останній", + "filter_only_non_latest": "Тільки не останні", "filters": "Фільтри", "findings": "Результати", "findings_audited": "Результати перевірено", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "Файл не вибрано", "no_kev_assertions": null, + "no_results": "Результатів немає", "no_version": null, "non_vulnerable": "Не уразливий", "not_affected": "Не уражений", @@ -1024,6 +1031,7 @@ "scope": "Область застосування", "score": "Оцінка", "search": "Пошук", + "search_ancestor": "Введіть для пошуку предка", "search_in": null, "search_parent": "Введіть для пошуку батьківського елемента", "security_risk": "Ризик безпеки", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "Тег успішно відв'язано", "tags": "Теги", "team": "Команда", + "team_name": "Назва команди", "teams": "Команди", "template": "Шаблон", "title": "Заголовок", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 0a1c230dd..4e5fac1e6 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -414,6 +414,7 @@ "analysis_state": "分析狀態", "analysis_tooltip": "漏洞發生的目前狀態", "analyzer": "分析器", + "ancestor": "祖先", "apply": "申請", "apply_vex": "套用 VEX", "apply_vex_tooltip": "將漏洞可利用性交換 (VEX) 檔案的分析應用於該專案。", @@ -440,6 +441,7 @@ "classifier": "分類器", "clear": "清除", "clear_all": "清除全部", + "clear_filters": "清除所有過濾器", "close": "關閉", "code_not_present": "程式碼不存在", "code_not_reachable": "程式碼無法存取", @@ -607,6 +609,10 @@ "external_references": "外部參考", "false_positive": "假陽性", "filename": "檔名", + "filter_only_active": "僅活躍", + "filter_only_inactive": "僅不活動", + "filter_only_latest": "僅最新", + "filter_only_non_latest": "僅非最新", "filters": "篩選器", "findings": "發現", "findings_audited": "稽核結果", @@ -721,6 +727,7 @@ "no_changes": "沒有要儲存的更改", "no_file_chosen": "未選取任何檔案", "no_kev_assertions": null, + "no_results": "沒有結果", "no_version": null, "non_vulnerable": "非易受攻擊", "not_affected": "不受影響", @@ -1024,6 +1031,7 @@ "scope": "範圍", "score": "分數", "search": "搜尋", + "search_ancestor": "輸入以搜尋祖先", "search_in": "搜尋範圍", "search_parent": "輸入以搜尋父項", "security_risk": "安全風險", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "成功取消標籤", "tags": "標籤", "team": "團隊", + "team_name": "團隊名稱", "teams": "團隊", "template": "範本", "title": "標題", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 773ae7e64..572ea5d32 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -414,6 +414,7 @@ "analysis_state": "分析状态", "analysis_tooltip": "漏洞发生的当前状态", "analyzer": "分析器", + "ancestor": "祖先", "apply": "应用", "apply_vex": "应用 VEX", "apply_vex_tooltip": "将漏洞可利用性交换 (VEX) 文档的分析应用于该项目。", @@ -440,6 +441,7 @@ "classifier": "分类器", "clear": "清除", "clear_all": "清除全部", + "clear_filters": "清除所有过滤器", "close": "关闭", "code_not_present": "代码不存在", "code_not_reachable": "代码不可达", @@ -607,6 +609,10 @@ "external_references": "外部引用", "false_positive": "误报", "filename": "文件名", + "filter_only_active": "仅活跃", + "filter_only_inactive": "仅不活动", + "filter_only_latest": "仅最新", + "filter_only_non_latest": "仅非最新", "filters": "筛选器", "findings": "发现", "findings_audited": "已审计的发现", @@ -721,6 +727,7 @@ "no_changes": null, "no_file_chosen": "未选择文件", "no_kev_assertions": null, + "no_results": "没有结果", "no_version": null, "non_vulnerable": "无漏洞", "not_affected": "不受影响", @@ -1024,6 +1031,7 @@ "scope": "范围", "score": "分数", "search": "搜索", + "search_ancestor": "输入以搜索祖先", "search_in": null, "search_parent": "输入以搜索父项", "security_risk": "安全风险", @@ -1087,6 +1095,7 @@ "tag_unassigned_successfully": "标签取消分配成功", "tags": "标签", "team": "团队", + "team_name": "团队名称", "teams": "团队", "template": "模板", "title": "标题", diff --git a/src/shared/api.json b/src/shared/api.json index 52582dd19..ba67a5baf 100644 --- a/src/shared/api.json +++ b/src/shared/api.json @@ -41,7 +41,7 @@ "URL_POLICY_VIOLATION": "api/v1/violation", "URL_POLICY_VIOLATION_ANALYSIS": "api/v1/violation/analysis", "URL_PROJECT": "api/v1/project", - "URL_PROJECT_CONCISE": "api/v1/project/concise", + "URL_PROJECTS": "api/v2/projects", "URL_REPOSITORY": "api/v1/repository", "URL_SEARCH": "api/v1/search", "URL_SERVICE": "api/v1/service", diff --git a/src/shared/common.js b/src/shared/common.js index 153e297df..833c40a17 100644 --- a/src/shared/common.js +++ b/src/shared/common.js @@ -34,17 +34,31 @@ $common.formatNotificationLabel = function formatNotificationLabel( return `${violationState}`; }; +/** + * Resolves a display name from a v2 string or a v1 `{ name }` object. + */ +function namedItemName(item) { + if (item == null || item === '') { + return ''; + } + if (typeof item === 'string') { + return item; + } + return item.name || ''; +} + /** * Formats and returns a specialized label for a project tag. */ $common.formatProjectTagLabel = function formatProjectTagLabel(router, tag) { - if (!tag) { + const name = namedItemName(tag); + if (!name) { return ''; } return `${xssFilters.inHTMLData( - tag.name, + name, )}`; }; @@ -52,13 +66,14 @@ $common.formatProjectTagLabel = function formatProjectTagLabel(router, tag) { * Formats and returns a specialized label for a project team. */ $common.formatProjectTeamLabel = function formatProjectTeamLabel(router, team) { - if (!team) { + const name = namedItemName(team); + if (!name) { return ''; } return `${xssFilters.inHTMLData( - team.name, + name, )}`; }; @@ -430,13 +445,6 @@ $common.componentClassifierLabelFormatter = (i18n) => { */ $common.componentClassifierLabelProjectUrlFormatter = (i18n) => { return function (value) { - let url = !this.routerFunc - ? '../projects/?classifier=' + value - : this.routerFunc().resolve({ - name: 'Projects', - query: { classifier: value }, - }).href; - switch (value) { case 'APPLICATION': case 'FRAMEWORK': @@ -446,9 +454,7 @@ $common.componentClassifierLabelProjectUrlFormatter = (i18n) => { case 'DEVICE': case 'FIRMWARE': case 'FILE': - return `${i18n.$t( - `message.component_${value.toLowerCase()}`, - )}`; + return i18n.$t(`message.component_${value.toLowerCase()}`); default: return null; } @@ -649,10 +655,11 @@ $common.sameQueryParams = function (a, b) { }; $common.getCollectionLogicText = function (i18n, project) { - const tag = project.collectionTag - ? xssFilters.inDoubleQuotedAttr(project.collectionTag.name) - : ''; - switch (project.collectionLogic) { + const collectionLogic = project.collection_logic ?? project.collectionLogic; + const collectionTag = project.collection_tag ?? project.collectionTag; + const tagName = namedItemName(collectionTag); + const tag = tagName ? xssFilters.inDoubleQuotedAttr(tagName) : ''; + switch (collectionLogic) { case 'AGGREGATE_DIRECT_CHILDREN': return i18n.$t( 'message.collection_logic_metrics_by_aggregate_direct_children', diff --git a/src/views/components/MultiValueTextFilterPill.vue b/src/views/components/MultiValueTextFilterPill.vue new file mode 100644 index 000000000..c6c1132b4 --- /dev/null +++ b/src/views/components/MultiValueTextFilterPill.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/views/components/PolicyViolationProgressBar.vue b/src/views/components/PolicyViolationProgressBar.vue index a9c108f0b..302e73d8e 100644 --- a/src/views/components/PolicyViolationProgressBar.vue +++ b/src/views/components/PolicyViolationProgressBar.vue @@ -1,5 +1,5 @@