From a18abab7d799c39cdade1a401d1ede79626af404 Mon Sep 17 00:00:00 2001 From: ElenaStroebele Date: Mon, 27 Jul 2026 11:41:34 +0000 Subject: [PATCH 1/2] Implemented filter option for projects. Signed-off-by: ElenaStroebele --- src/assets/scss/_custom.scss | 30 + src/i18n/locales/de.json | 7 + src/i18n/locales/en.json | 7 + src/i18n/locales/es.json | 7 + src/i18n/locales/fr.json | 7 + src/i18n/locales/hi.json | 7 + src/i18n/locales/it.json | 7 + src/i18n/locales/ja.json | 7 + src/i18n/locales/ko.json | 7 + src/i18n/locales/pl.json | 7 + src/i18n/locales/pt-BR.json | 7 + src/i18n/locales/pt.json | 7 + src/i18n/locales/ru.json | 7 + src/i18n/locales/uk-UA.json | 7 + src/i18n/locales/zh-TW.json | 7 + src/i18n/locales/zh.json | 7 + src/shared/api.json | 2 +- src/shared/common.js | 19 +- .../components/MultiValueTextFilterPill.vue | 200 +++ .../components/PolicyViolationProgressBar.vue | 24 +- .../SearchableMultiSelectFilterPill.vue | 250 ++++ src/views/components/filter-pills.css | 11 - .../projects/ProjectCreateProjectModal.vue | 11 - src/views/portfolio/projects/ProjectList.vue | 1273 ++++++++++++++--- .../portfolio/projects/SelectProjectModal.vue | 94 +- .../portfolio/projects/projectFormMixin.js | 20 +- 26 files changed, 1693 insertions(+), 346 deletions(-) create mode 100644 src/views/components/MultiValueTextFilterPill.vue create mode 100644 src/views/components/SearchableMultiSelectFilterPill.vue 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..8a3b81892 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..bdd48aa4d 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -441,6 +441,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 +609,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 +727,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", @@ -1088,6 +1094,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..1f0947e48 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..c548c124e 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -440,6 +440,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 +608,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 +726,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é", @@ -1087,6 +1093,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..2b7119be8 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -440,6 +440,7 @@ "classifier": "वर्गीकरणकर्ता", "clear": "साफ़ करें", "clear_all": "सभी साफ करें", + "clear_filters": "सभी फ़िल्टर साफ़ करें", "close": "बंद करना", "code_not_present": "कोड मौजूद नहीं है", "code_not_reachable": "कोड उपलब्ध नहीं है", @@ -607,6 +608,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 +726,7 @@ "no_changes": null, "no_file_chosen": "कोई फ़ाइल चुना नही", "no_kev_assertions": null, + "no_results": "कोई परिणाम नहीं", "no_version": null, "non_vulnerable": "गैर असुरक्षित", "not_affected": "प्रभावित नहीं", @@ -1087,6 +1093,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..a33220d57 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..ab26fdfe4 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -440,6 +440,7 @@ "classifier": "分類器", "clear": "クリア", "clear_all": "すべてクリア", + "clear_filters": "すべてのフィルターをクリア", "close": "閉じる", "code_not_present": "コードが存在しません", "code_not_reachable": "コードにアクセスできません", @@ -607,6 +608,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 +726,7 @@ "no_changes": null, "no_file_chosen": "ファイルが選択されていません", "no_kev_assertions": null, + "no_results": "結果はありません", "no_version": null, "non_vulnerable": "脆弱ではない", "not_affected": "影響を受けません", @@ -1087,6 +1093,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..41f5c353d 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -441,6 +441,7 @@ "classifier": "분류자", "clear": "지우기", "clear_all": "모두 지우기", + "clear_filters": "모든 필터 지우기", "close": "닫기", "code_not_present": "코드 미포함", "code_not_reachable": "코드 도달 불가", @@ -608,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": "심사된 발견 항목", @@ -722,6 +727,7 @@ "no_changes": "저장할 변경 사항 없음", "no_file_chosen": "선택된 파일 없음", "no_kev_assertions": null, + "no_results": "결과 없음", "no_version": "(버전 없음)", "non_vulnerable": "취약점 없음", "not_affected": "영향 없음", @@ -1088,6 +1094,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..e711a2344 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..deffc3b2c 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..586b24385 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -440,6 +440,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 +608,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 +726,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", @@ -1087,6 +1093,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..351b0bd8a 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -440,6 +440,7 @@ "classifier": "Классификатор", "clear": "Очистить", "clear_all": "Очистить все", + "clear_filters": "Очистить все фильтры", "close": "Закрыть", "code_not_present": "Код отсутствует", "code_not_reachable": "Код недоступен", @@ -607,6 +608,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 +726,7 @@ "no_changes": null, "no_file_chosen": "Файл не выбран", "no_kev_assertions": null, + "no_results": "Нет результатов", "no_version": null, "non_vulnerable": "Неуязвимый", "not_affected": "Не затронуто", @@ -1087,6 +1093,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..6e6a355dc 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -440,6 +440,7 @@ "classifier": "Класифікатор", "clear": "Очистити", "clear_all": "Очистити все", + "clear_filters": "Очистити всі фільтри", "close": "Закрити", "code_not_present": "Код відсутній", "code_not_reachable": "Код недоступний", @@ -607,6 +608,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 +726,7 @@ "no_changes": null, "no_file_chosen": "Файл не вибрано", "no_kev_assertions": null, + "no_results": "Результатів немає", "no_version": null, "non_vulnerable": "Не уразливий", "not_affected": "Не уражений", @@ -1087,6 +1093,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..1860bb620 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -440,6 +440,7 @@ "classifier": "分類器", "clear": "清除", "clear_all": "清除全部", + "clear_filters": "清除所有過濾器", "close": "關閉", "code_not_present": "程式碼不存在", "code_not_reachable": "程式碼無法存取", @@ -607,6 +608,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 +726,7 @@ "no_changes": "沒有要儲存的更改", "no_file_chosen": "未選取任何檔案", "no_kev_assertions": null, + "no_results": "沒有結果", "no_version": null, "non_vulnerable": "非易受攻擊", "not_affected": "不受影響", @@ -1087,6 +1093,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..0495b151a 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -440,6 +440,7 @@ "classifier": "分类器", "clear": "清除", "clear_all": "清除全部", + "clear_filters": "清除所有过滤器", "close": "关闭", "code_not_present": "代码不存在", "code_not_reachable": "代码不可达", @@ -607,6 +608,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 +726,7 @@ "no_changes": null, "no_file_chosen": "未选择文件", "no_kev_assertions": null, + "no_results": "没有结果", "no_version": null, "non_vulnerable": "无漏洞", "not_affected": "不受影响", @@ -1087,6 +1093,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..341aab506 100644 --- a/src/shared/common.js +++ b/src/shared/common.js @@ -430,13 +430,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 +439,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 +640,12 @@ $common.sameQueryParams = function (a, b) { }; $common.getCollectionLogicText = function (i18n, project) { - const tag = project.collectionTag - ? xssFilters.inDoubleQuotedAttr(project.collectionTag.name) + const collectionLogic = project.collection_logic ?? project.collectionLogic; + const collectionTag = project.collection_tag ?? project.collectionTag; + const tag = collectionTag + ? xssFilters.inDoubleQuotedAttr(collectionTag.name) : ''; - switch (project.collectionLogic) { + 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 @@