Zmiany wyglądu i działania filtra stacji, poprawki

This commit is contained in:
2021-02-27 14:25:08 +01:00
parent f55e13201d
commit 6cbe9fc557
13 changed files with 349 additions and 271 deletions
+23 -22
View File
@@ -1,23 +1,24 @@
export default interface Filter {
"default": false,
"notDefault": false,
"nonPublic": false,
"SPK": false,
"SCS": false,
"ręczne": false,
"mechaniczne": false,
"współczesna": false,
"kształtowa": false,
"historyczna": false,
"mieszana": false,
"minLevel": 0,
"minOneWayCatenary": 0,
"minOneWay": 0,
"minTwoWayCatenary": 0,
"minTwoWay": 0,
"no-1track": false,
"no-2track": false,
"free": true,
"occupied": false,
"ending": false
}
default: boolean;
notDefault: boolean;
real: boolean;
fictional: boolean;
SPK: boolean;
SCS: boolean;
ręczne: boolean;
mechaniczne: boolean;
współczesna: boolean;
kształtowa: boolean;
historyczna: boolean;
mieszana: boolean;
minLevel: number;
minOneWayCatenary: number;
minOneWay: number;
minTwoWayCatenary: number;
minTwoWay: number;
'no-1track': boolean;
'no-2track': boolean;
free: boolean;
occupied: boolean;
ending: boolean;
}
+1 -1
View File
@@ -21,7 +21,7 @@ export default interface Station {
stationProject: string;
reqLevel: string;
supportersOnly: string;
supportersOnly: boolean;
SBL: string;
TWB: string;
+9 -4
View File
@@ -1,10 +1,12 @@
import Station from '@/scripts/interfaces/Station';
import Filter from '@/scripts/interfaces/Filter';
export default class StationFilterManager {
private filterInitStates = {
private filterInitStates: Filter = {
default: false,
notDefault: false,
nonPublic: false,
real: false,
fictional: false,
SPK: false,
SCS: false,
ręczne: false,
@@ -25,11 +27,11 @@ export default class StationFilterManager {
ending: false,
};
private filters = { ...this.filterInitStates };
private filters: Filter = { ...this.filterInitStates };
private sorter: { index: number; dir: number } = { index: 0, dir: 1 };
filteredStationList(stationList: Station[]): Station[] {
private filteredStationList(stationList: Station[]): Station[] {
return stationList
.filter(station => {
if ((station.nonPublic || !station.reqLevel) && this.filters['nonPublic']) return false;
@@ -42,6 +44,9 @@ export default class StationFilterManager {
if (station.default && this.filters['default']) return false;
if (!station.default && this.filters['notDefault']) return false;
if (this.filters['real'] && station.stationLines != '') return false;
if (this.filters['fictional'] && station.stationLines == '') return false;
if (station.reqLevel == '-1') return true;
if (parseInt(station.reqLevel) < this.filters['minLevel']) return false;