|
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