Skip to content

Commit a30587e

Browse files
committed
Switch input to type=number; Separate version validation out of byVersion
1 parent 4ed52bf commit a30587e

File tree

2 files changed

+58
-57
lines changed

2 files changed

+58
-57
lines changed

util/gh-pages/index.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
border: 1px solid var(--theme-popup-border);
292292
}
293293

294-
#version-filter-selector .checkbox {
294+
#version-filter-selector .item {
295295
display: flex;
296296
}
297297

@@ -440,23 +440,24 @@ <h1>Clippy Lints</h1>
440440
<span class="caret"></span>
441441
</button>
442442
<ul id="version-filter-selector" class="dropdown-menu">
443-
<li class="checkbox">
443+
<li class="item">
444444
<label ng-click="clearVersionFilters()">
445445
<input type="checkbox" class="invisible" />
446446
Clear filters
447447
</label>
448448
</li>
449449
<li role="separator" class="divider"></li>
450-
<li class="checkbox" ng-repeat="(filter, vars) in versionFilters">
450+
<li class="item" ng-repeat="(filter, vars) in versionFilters">
451451
<label ng-attr-for="filter-{filter}">{{filter}}</label>
452452
<span>1.</span>
453-
<input type="text"
453+
<input type="number"
454+
min="29"
454455
ng-attr-id="filter-{filter}"
455456
class="version-filter-input form-control filter-input"
456457
maxlength="2"
457-
placeholder="xx"
458458
ng-model="versionFilters[filter].minorVersion"
459-
ng-model-options="{debounce: 50}" />
459+
ng-model-options="{debounce: 50}"
460+
ng-change="updateVersionFilters()" />
460461
<span>.0</span>
461462
</li>
462463
</ul>

util/gh-pages/script.js

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@
137137
$scope.themes = THEMES_DEFAULT;
138138

139139
$scope.versionFilters = {
140-
"≥": {enabled: false, minorVersion: ""},
141-
"≤": {enabled: false, minorVersion: ""},
142-
"=": {enabled: false, minorVersion: ""},
140+
"≥": {enabled: false, minorVersion: null },
141+
"≤": {enabled: false, minorVersion: null },
142+
"=": {enabled: false, minorVersion: null },
143143
};
144144

145145
$scope.selectTheme = function (theme) {
@@ -170,70 +170,70 @@
170170

171171
$scope.clearVersionFilters = function () {
172172
for (let filter in $scope.versionFilters) {
173-
$scope.versionFilters[filter] = { enabled: false, minorVersion: "" };
173+
$scope.versionFilters[filter] = { enabled: false, minorVersion: null };
174174
}
175175
}
176176

177177
$scope.versionFilterCount = function(obj) {
178178
return Object.values(obj).filter(x => x.enabled).length;
179179
}
180180

181-
$scope.byVersion = function(lint) {
182-
function validateVersionStr(ver) {
183-
return ver.length === 2 && !isNaN(ver);
184-
}
181+
$scope.updateVersionFilters = function() {
182+
for (const filter in $scope.versionFilters) {
183+
let minorVersion = $scope.versionFilters[filter].minorVersion;
185184

186-
let filters = $scope.versionFilters;
185+
// 1.29.0 and greater
186+
if (minorVersion && minorVersion > 28) {
187+
$scope.versionFilters[filter].enabled = true;
188+
}
187189

188-
// Strip the "pre " prefix for pre 1.29.0 lints
189-
let lintVersion = lint.version.startsWith("pre ") ? lint.version.substring(4, lint.version.length) : lint.version;
190-
let lintMinorVersion = lintVersion.substring(2, 4);
190+
$scope.versionFilters[filter].enabled = false;
191+
}
192+
}
191193

194+
$scope.byVersion = function(lint) {
195+
let filters = $scope.versionFilters;
192196
for (const filter in filters) {
193-
let minorVersion = filters[filter].minorVersion;
194-
195-
// Skip the work for version strings with invalid lengths or characters
196-
if (!validateVersionStr(minorVersion)) {
197-
filters[filter].enabled = false;
198-
continue;
199-
}
197+
if (filters[filter].enabled) {
198+
let minorVersion = filters[filter].minorVersion;
199+
200+
// Strip the "pre " prefix for pre 1.29.0 lints
201+
let lintVersion = lint.version.startsWith("pre ") ? lint.version.substring(4, lint.version.length) : lint.version;
202+
let lintMinorVersion = lintVersion.substring(2, 4);
203+
204+
let result;
205+
switch (filter) {
206+
case "≥":
207+
result = (lintMinorVersion >= minorVersion);
208+
break;
209+
case "≤":
210+
result = (lintMinorVersion <= minorVersion);
211+
break;
212+
// "=" gets the highest priority, since all filters are inclusive
213+
case "=":
214+
return (lintMinorVersion == minorVersion);
215+
default:
216+
return true
217+
}
200218

201-
filters[filter].enabled = true;
202-
203-
let result;
204-
switch (filter) {
205-
case "≥":
206-
result = (lintMinorVersion >= minorVersion);
207-
break;
208-
case "≤":
209-
result = (lintMinorVersion <= minorVersion);
210-
break;
211-
// "=" gets the highest priority, since all filters are inclusive
212-
case "=":
213-
return (lintMinorVersion === minorVersion);
214-
default:
215-
return true
216-
}
219+
if (!result) {
220+
return false;
221+
}
217222

218-
if (!result) {
219-
return false;
220-
}
223+
let cmpFilter;
224+
if (filter === "≥") {
225+
cmpFilter = "≤";
226+
} else {
227+
cmpFilter = "≥";
228+
}
221229

222-
let cmpFilter;
223-
if (filter === "≥") {
224-
cmpFilter = "≤";
225-
} else {
226-
cmpFilter = "≥";
227-
}
230+
if (filters[cmpFilter].enabled) {
231+
let cmpMinorVersion = filters[cmpFilter].minorVersion;
232+
result = (cmpFilter === "≥") ? (lintMinorVersion >= cmpMinorVersion) : (lintMinorVersion <= cmpMinorVersion);
233+
}
228234

229-
let cmpMinorVersion = filters[cmpFilter].minorVersion;
230-
if (!validateVersionStr(cmpMinorVersion)) {
231-
filters[cmpFilter].enabled = false;
232-
return true;
235+
return result;
233236
}
234-
235-
filters[cmpFilter].enabled = true;
236-
return (cmpFilter === "≥") ? (lintMinorVersion >= cmpMinorVersion) : (lintMinorVersion <= cmpMinorVersion);
237237
}
238238

239239
return true;

0 commit comments

Comments
 (0)