mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
Complete filter functionality. Formatted upper filters to take more visual column space. Force filter wrapping with flex for small screens.
This commit is contained in:
parent
0b43e03ca9
commit
e4ce248af4
@ -103,6 +103,7 @@ Otherwise, have a great day =^.^=
|
||||
@media (min-width: 405px) {
|
||||
#upper-filters {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@ -404,7 +405,7 @@ Otherwise, have a great day =^.^=
|
||||
|
||||
<div class="panel panel-default" ng-show="data">
|
||||
<div class="panel-body row">
|
||||
<div id="upper-filters" class="col-12 col-md-4">
|
||||
<div id="upper-filters" class="col-12 col-md-6">
|
||||
<div class="btn-group" filter-dropdown>
|
||||
<button type="button" class="btn btn-default dropdown-toggle">
|
||||
Lint levels <span class="badge">{{selectedValuesCount(levels)}}</span> <span class="caret"></span>
|
||||
@ -523,7 +524,7 @@ Otherwise, have a great day =^.^=
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-7 search-control">
|
||||
<div class="col-12 col-md-6 search-control">
|
||||
<div class="input-group">
|
||||
<label class="input-group-addon" id="filter-label" for="search-input">Filter:</label>
|
||||
<input type="text" class="form-control filter-input" placeholder="Keywords or search string" id="search-input"
|
||||
@ -539,7 +540,7 @@ Otherwise, have a great day =^.^=
|
||||
</div>
|
||||
</div>
|
||||
<!-- The order of the filters should be from most likely to remove a lint to least likely to improve performance. -->
|
||||
<article class="panel panel-default" id="{{lint.id}}" ng-repeat="lint in data | filter:bySearch | filter:byGroups | filter:byLevels | filter:byVersion">
|
||||
<article class="panel panel-default" id="{{lint.id}}" ng-repeat="lint in data | filter:bySearch | filter:byGroups | filter:byLevels | filter:byVersion | filter:byApplicabilities">
|
||||
<header class="panel-heading" ng-click="open[lint.id] = !open[lint.id]">
|
||||
<h2 class="panel-title">
|
||||
<div class="panel-title-name">
|
||||
|
@ -156,15 +156,17 @@
|
||||
Object.entries(versionFilterKeyMap).map(([key, value]) => [value, key])
|
||||
);
|
||||
|
||||
const APPLICABILITIES_DEFAULT = {
|
||||
unspecified: true,
|
||||
unresolved: true,
|
||||
machineApplicable: true,
|
||||
maybeIncorrect: true,
|
||||
hasPlaceholders: true
|
||||
const APPLICABILITIES_FILTER_DEFAULT = {
|
||||
Unspecified: true,
|
||||
Unresolved: true,
|
||||
MachineApplicable: true,
|
||||
MaybeIncorrect: true,
|
||||
HasPlaceholders: true
|
||||
};
|
||||
|
||||
$scope.applicabilities = APPLICABILITIES_DEFAULT;
|
||||
$scope.applicabilities = {
|
||||
...APPLICABILITIES_FILTER_DEFAULT
|
||||
}
|
||||
|
||||
// loadFromURLParameters retrieves filter settings from the URL parameters and assigns them
|
||||
// to corresponding $scope variables.
|
||||
@ -192,6 +194,7 @@
|
||||
|
||||
handleParameter('levels', $scope.levels, LEVEL_FILTERS_DEFAULT);
|
||||
handleParameter('groups', $scope.groups, GROUPS_FILTER_DEFAULT);
|
||||
handleParameter('applicabilities', $scope.applicabilities, APPLICABILITIES_FILTER_DEFAULT);
|
||||
|
||||
// Handle 'versions' parameter separately because it needs additional processing
|
||||
if (urlParameters.versions) {
|
||||
@ -259,6 +262,7 @@
|
||||
updateURLParameter($scope.levels, 'levels', LEVEL_FILTERS_DEFAULT);
|
||||
updateURLParameter($scope.groups, 'groups', GROUPS_FILTER_DEFAULT);
|
||||
updateVersionURLParameter($scope.versionFilters);
|
||||
updateURLParameter($scope.applicabilities, 'applicabilities', APPLICABILITIES_FILTER_DEFAULT);
|
||||
}
|
||||
|
||||
// Add $watches to automatically update URL parameters when the data changes
|
||||
@ -280,6 +284,13 @@
|
||||
}
|
||||
}, true);
|
||||
|
||||
$scope.$watch('applicabilities', function (newVal, oldVal) {
|
||||
console.log("Test");
|
||||
if (newVal !== oldVal) {
|
||||
updateURLParameter(newVal, 'applicabilities', APPLICABILITIES_FILTER_DEFAULT)
|
||||
}
|
||||
}, true);
|
||||
|
||||
// Watch for changes in the URL path and update the search and lint display
|
||||
$scope.$watch(function () { return $location.path(); }, function (newPath) {
|
||||
const searchParameter = newPath.substring(1);
|
||||
@ -337,6 +348,15 @@
|
||||
}
|
||||
};
|
||||
|
||||
$scope.toggleApplicabilities = function (value) {
|
||||
const applicabilities = $scope.applicabilities;
|
||||
for (const key in applicabilities) {
|
||||
if (applicabilities.hasOwnProperty(key)) {
|
||||
applicabilities[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$scope.resetGroupsToDefault = function () {
|
||||
$scope.groups = {
|
||||
...GROUPS_FILTER_DEFAULT
|
||||
@ -440,6 +460,10 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
$scope.byApplicabilities = function (lint) {
|
||||
return $scope.applicabilities[lint.applicability.applicability];
|
||||
};
|
||||
|
||||
// Show details for one lint
|
||||
$scope.openLint = function (lint) {
|
||||
$scope.open[lint.id] = true;
|
||||
|
Loading…
Reference in New Issue
Block a user