|
137 | 137 | </div>
|
138 | 138 | </div>
|
139 | 139 |
|
140 |
| - <!-- Search Filters - Disabled for MVP version --> |
141 |
| - <!-- <div class="search-filters"> |
| 140 | + <!-- Search Filters --> |
| 141 | + <div class="search-filters"> |
142 | 142 | <div class="filter-row">
|
143 | 143 | <div class="filter-item">
|
144 | 144 | <label>CVE</label>
|
|
154 | 154 | </div>
|
155 | 155 | <div class="filter-item">
|
156 | 156 | <label>{{ t('imageScanner.imageDetails.score') }}</label>
|
157 |
| - <div class="filter-input-wrapper"> |
| 157 | + <div class="filter-input-wrapper score-range-wrapper"> |
158 | 158 | <input
|
159 |
| - v-model="filters.score" |
160 |
| - type="text" |
161 |
| - placeholder="0 - 9.9" |
| 159 | + v-model="filters.scoreMin" |
| 160 | + type="number" |
| 161 | + min="0" |
| 162 | + max="10" |
| 163 | + step="0.1" |
| 164 | + placeholder="0" |
| 165 | + class="filter-input score-input" |
| 166 | + /> |
| 167 | + <span class="score-separator">-</span> |
| 168 | + <input |
| 169 | + v-model="filters.scoreMax" |
| 170 | + type="number" |
| 171 | + min="0" |
| 172 | + max="10" |
| 173 | + step="0.1" |
| 174 | + placeholder="9.9" |
162 | 175 | class="filter-input score-input"
|
163 | 176 | />
|
164 |
| - <i class="icon icon-filter" style="color: #6C6C76; margin-left: 8px;"></i> |
| 177 | + <i class="icon icon-filter_alt" style="color: #6C6C76; margin-left: 8px;"></i> |
165 | 178 | </div>
|
166 | 179 | </div>
|
167 | 180 | <div class="filter-item">
|
|
207 | 220 | </select>
|
208 | 221 | </div>
|
209 | 222 | </div>
|
210 |
| - </div> --> |
| 223 | + </div> |
211 | 224 |
|
212 | 225 | <!-- Vulnerability Table -->
|
213 | 226 | <SortableTable
|
|
216 | 229 | :has-advanced-filtering="false"
|
217 | 230 | :namespaced="false"
|
218 | 231 | :row-actions="false"
|
219 |
| - :search="true" |
| 232 | + :search="false" |
220 | 233 | :key-field="'cveId'"
|
221 | 234 | @selection="onSelectionChange"
|
222 | 235 | >
|
@@ -271,7 +284,8 @@ export default {
|
271 | 284 | showAllProperties: false,
|
272 | 285 | filters: {
|
273 | 286 | cveSearch: '',
|
274 |
| - score: '', |
| 287 | + scoreMin: '', |
| 288 | + scoreMax: '', |
275 | 289 | packageSearch: '',
|
276 | 290 | fixAvailable: 'any',
|
277 | 291 | severity: 'any',
|
@@ -352,11 +366,12 @@ export default {
|
352 | 366 | );
|
353 | 367 | }
|
354 | 368 |
|
355 |
| - if (this.filters.score) { |
356 |
| - const score = parseFloat(this.filters.score); |
| 369 | + if (this.filters.scoreMin || this.filters.scoreMax) { |
357 | 370 | filtered = filtered.filter(v => {
|
358 |
| - const vulnScore = parseFloat(v.score.split(' ')[0]); |
359 |
| - return vulnScore >= score; |
| 371 | + const vulnScore = parseFloat(v.score.split(' ')[0]) || 0; |
| 372 | + const minScore = this.filters.scoreMin ? parseFloat(this.filters.scoreMin) : 0; |
| 373 | + const maxScore = this.filters.scoreMax ? parseFloat(this.filters.scoreMax) : 10; |
| 374 | + return vulnScore >= minScore && vulnScore <= maxScore; |
360 | 375 | });
|
361 | 376 | }
|
362 | 377 |
|
@@ -796,14 +811,35 @@ export default {
|
796 | 811 | background: transparent;
|
797 | 812 | }
|
798 | 813 |
|
| 814 | +.score-range-wrapper { |
| 815 | + display: flex; |
| 816 | + align-items: center; |
| 817 | + gap: 8px; |
| 818 | +} |
| 819 | +
|
799 | 820 | .score-input {
|
| 821 | + flex: 1; |
| 822 | + min-width: 60px; |
| 823 | + text-align: center; |
800 | 824 | color: #BEC1D2;
|
801 | 825 | }
|
802 | 826 |
|
803 | 827 | .score-input::placeholder {
|
804 | 828 | color: #BEC1D2;
|
805 | 829 | }
|
806 | 830 |
|
| 831 | +.score-separator { |
| 832 | + color: #6C6C76; |
| 833 | + font-weight: 500; |
| 834 | + font-size: 14px; |
| 835 | +} |
| 836 | +
|
| 837 | +.score-filter-icon { |
| 838 | + color: #6C6C76; |
| 839 | + margin-left: 8px; |
| 840 | + font-size: 16px; |
| 841 | +} |
| 842 | +
|
807 | 843 | .filter-input:focus {
|
808 | 844 | outline: none;
|
809 | 845 | }
|
|
0 commit comments