|
163 | 163 | const urlParameters = $location.search(); |
164 | 164 |
|
165 | 165 | // Define a helper function that assigns URL parameters to a provided scope variable |
166 | | - const handleParameter = (parameter, scopeVariable) => { |
| 166 | + const handleParameter = (parameter, scopeVariable, defaultValues) => { |
167 | 167 | if (urlParameters[parameter]) { |
168 | 168 | const items = urlParameters[parameter].split(','); |
169 | 169 | for (const key in scopeVariable) { |
170 | 170 | if (scopeVariable.hasOwnProperty(key)) { |
171 | 171 | scopeVariable[key] = items.includes(key); |
172 | 172 | } |
173 | 173 | } |
| 174 | + } else if (defaultValues) { |
| 175 | + for (const key in defaultValues) { |
| 176 | + if (scopeVariable.hasOwnProperty(key)) { |
| 177 | + scopeVariable[key] = defaultValues[key]; |
| 178 | + } |
| 179 | + } |
174 | 180 | } |
175 | 181 | }; |
176 | 182 |
|
177 | | - handleParameter('levels', $scope.levels); |
178 | | - handleParameter('groups', $scope.groups); |
| 183 | + handleParameter('levels', $scope.levels, LEVEL_FILTERS_DEFAULT); |
| 184 | + handleParameter('groups', $scope.groups, GROUPS_FILTER_DEFAULT); |
179 | 185 |
|
180 | 186 | // Handle 'versions' parameter separately because it needs additional processing |
181 | 187 | if (urlParameters.versions) { |
|
277 | 283 | } |
278 | 284 | }); |
279 | 285 |
|
| 286 | + $scope.$watch(function () { |
| 287 | + return $location.search(); |
| 288 | + }, function (newParameters) { |
| 289 | + loadFromURLParameters(); |
| 290 | + }); |
| 291 | + |
280 | 292 | $scope.selectTheme = function (theme) { |
281 | 293 | setTheme(theme, true); |
282 | 294 | } |
|
0 commit comments