|
137 | 137 | $scope.themes = THEMES_DEFAULT;
|
138 | 138 |
|
139 | 139 | $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 }, |
143 | 143 | };
|
144 | 144 |
|
145 | 145 | $scope.selectTheme = function (theme) {
|
|
170 | 170 |
|
171 | 171 | $scope.clearVersionFilters = function () {
|
172 | 172 | for (let filter in $scope.versionFilters) {
|
173 |
| - $scope.versionFilters[filter] = { enabled: false, minorVersion: "" }; |
| 173 | + $scope.versionFilters[filter] = { enabled: false, minorVersion: null }; |
174 | 174 | }
|
175 | 175 | }
|
176 | 176 |
|
177 | 177 | $scope.versionFilterCount = function(obj) {
|
178 | 178 | return Object.values(obj).filter(x => x.enabled).length;
|
179 | 179 | }
|
180 | 180 |
|
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; |
185 | 184 |
|
186 |
| - let filters = $scope.versionFilters; |
| 185 | + // 1.29.0 and greater |
| 186 | + if (minorVersion && minorVersion > 28) { |
| 187 | + $scope.versionFilters[filter].enabled = true; |
| 188 | + } |
187 | 189 |
|
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 | + } |
191 | 193 |
|
| 194 | + $scope.byVersion = function(lint) { |
| 195 | + let filters = $scope.versionFilters; |
192 | 196 | 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 | + } |
200 | 218 |
|
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 | + } |
217 | 222 |
|
218 |
| - if (!result) { |
219 |
| - return false; |
220 |
| - } |
| 223 | + let cmpFilter; |
| 224 | + if (filter === "≥") { |
| 225 | + cmpFilter = "≤"; |
| 226 | + } else { |
| 227 | + cmpFilter = "≥"; |
| 228 | + } |
221 | 229 |
|
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 | + } |
228 | 234 |
|
229 |
| - let cmpMinorVersion = filters[cmpFilter].minorVersion; |
230 |
| - if (!validateVersionStr(cmpMinorVersion)) { |
231 |
| - filters[cmpFilter].enabled = false; |
232 |
| - return true; |
| 235 | + return result; |
233 | 236 | }
|
234 |
| - |
235 |
| - filters[cmpFilter].enabled = true; |
236 |
| - return (cmpFilter === "≥") ? (lintMinorVersion >= cmpMinorVersion) : (lintMinorVersion <= cmpMinorVersion); |
237 | 237 | }
|
238 | 238 |
|
239 | 239 | return true;
|
|
0 commit comments