|
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