Compare commits
8 Commits
we-locatio
...
we-out-of-
Author | SHA1 | Date | |
---|---|---|---|
308bd7b99f | |||
df3e181e2e | |||
8e21856eb2 | |||
211257ac67 | |||
3b6aed2e41 | |||
2c5567cb62 | |||
6d6356d576 | |||
9ccd2f01c0 |
29
src/APIexamples/departureuser1.json
Normal file
29
src/APIexamples/departureuser1.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"DepartureBoard": {
|
||||
"noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
|
||||
"servertime": "10:09",
|
||||
"serverdate": "2020-12-10",
|
||||
"Departure": {
|
||||
"name": "Buss MEXP",
|
||||
"sname": "MEXP",
|
||||
"journeyNumber": "24",
|
||||
"type": "BUS",
|
||||
"stopid": "9022014014754002",
|
||||
"stop": "Bollestadsvägen, Kungälv",
|
||||
"time": "10:09",
|
||||
"date": "2020-12-10",
|
||||
"journeyid": "9015014621000024",
|
||||
"direction": "Marstrand",
|
||||
"track": "B",
|
||||
"rtTime": "10:11",
|
||||
"rtDate": "2020-12-10",
|
||||
"fgColor": "#006C93",
|
||||
"bgColor": "#FFFFFF",
|
||||
"stroke": "Solid",
|
||||
"accessibility": "wheelChair",
|
||||
"JourneyDetailRef": {
|
||||
"ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=347217%2F124275%2F19874%2F105802%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14754002%26station_type%3Ddep%26format%3Djson%26"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
29
src/APIexamples/departureuser2.json
Normal file
29
src/APIexamples/departureuser2.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"DepartureBoard": {
|
||||
"noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
|
||||
"servertime": "10:10",
|
||||
"serverdate": "2020-12-10",
|
||||
"Departure": {
|
||||
"name": "Buss MEXP",
|
||||
"sname": "MEXP",
|
||||
"journeyNumber": "24",
|
||||
"type": "BUS",
|
||||
"stopid": "9022014014020002",
|
||||
"stop": "Ekelöv västra, Kungälv",
|
||||
"time": "10:10",
|
||||
"date": "2020-12-10",
|
||||
"journeyid": "9015014621000024",
|
||||
"direction": "Marstrand",
|
||||
"track": "B",
|
||||
"rtTime": "10:13",
|
||||
"rtDate": "2020-12-10",
|
||||
"fgColor": "#006C93",
|
||||
"bgColor": "#FFFFFF",
|
||||
"stroke": "Solid",
|
||||
"accessibility": "wheelChair",
|
||||
"JourneyDetailRef": {
|
||||
"ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=740262%2F255290%2F59460%2F217024%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14020002%26station_type%3Ddep%26format%3Djson%26"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
27
src/APIexamples/departureuser3.json
Normal file
27
src/APIexamples/departureuser3.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"DepartureBoard": {
|
||||
"noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
|
||||
"servertime": "10:10",
|
||||
"serverdate": "2020-12-10",
|
||||
"Departure": {
|
||||
"name": "Buss MEXP",
|
||||
"sname": "MEXP",
|
||||
"journeyNumber": "24",
|
||||
"type": "BUS",
|
||||
"stopid": "9022014014751002",
|
||||
"stop": "Guddeby, Kungälv",
|
||||
"time": "10:07",
|
||||
"date": "2020-12-10",
|
||||
"journeyid": "9015014621000024",
|
||||
"direction": "Marstrand",
|
||||
"track": "B",
|
||||
"fgColor": "#006C93",
|
||||
"bgColor": "#FFFFFF",
|
||||
"stroke": "Solid",
|
||||
"accessibility": "wheelChair",
|
||||
"JourneyDetailRef": {
|
||||
"ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=473190%2F166266%2F666560%2F175550%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14751002%26station_type%3Ddep%26format%3Djson%26"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
31
src/APIexamples/departureuser4.json
Normal file
31
src/APIexamples/departureuser4.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"DepartureBoard": {
|
||||
"noNamespaceSchemaLocation": "http://api.vasttrafik.se/v1/hafasRestDepartureBoard.xsd",
|
||||
"servertime": "10:11",
|
||||
"serverdate": "2020-12-10",
|
||||
"Departure": [
|
||||
{
|
||||
"name": "Buss 928",
|
||||
"sname": "928",
|
||||
"journeyNumber": "10",
|
||||
"type": "BUS",
|
||||
"stopid": "9022014014225001",
|
||||
"stop": "Skrämmenborg, Kungälv",
|
||||
"time": "15:19",
|
||||
"date": "2020-12-10",
|
||||
"journeyid": "9015014692800010",
|
||||
"direction": "Kärna",
|
||||
"track": "A",
|
||||
"rtTime": "15:19",
|
||||
"rtDate": "2020-12-10",
|
||||
"fgColor": "#006C93",
|
||||
"bgColor": "#FFFFFF",
|
||||
"stroke": "Solid",
|
||||
"accessibility": "wheelChair",
|
||||
"JourneyDetailRef": {
|
||||
"ref": "https://api.vasttrafik.se/bin/rest.exe/v2/journeyDetail?ref=261732%2F87569%2F149176%2F12656%2F80%3Fdate%3D2020-12-10%26station_evaId%3D14225001%26station_type%3Ddep%26format%3Djson%26"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ import User from './classes/User.js';
|
||||
import Disruption from './classes/Disruption.js'
|
||||
import Coordinates from './classes/Coordinates.js';
|
||||
import Stop from './classes/Stop.js'
|
||||
import Departure from './classes/Departure.js';
|
||||
|
||||
let globalData = {
|
||||
user: new User(
|
||||
|
@ -9,15 +9,15 @@
|
||||
*/
|
||||
|
||||
class Departure {
|
||||
constructor(lineName, finalStop, originalTime, trafficInfo) {
|
||||
this.lineName = lineName;
|
||||
this.finalStop = finalStop;
|
||||
this.originalTime = originalTime;
|
||||
this.trafficInfo = trafficInfo;
|
||||
constructor(lineName, finalStop, originalTime) {
|
||||
this.sname = lineName;
|
||||
this.direction = finalStop;
|
||||
this.time = originalTime;
|
||||
}
|
||||
|
||||
timeUpdate(time) {
|
||||
timeUpdate(time, trafficInfo) {
|
||||
this.newTime = time;
|
||||
this.trafficInfo = trafficInfo;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,25 +6,49 @@ import user2 from '../APIexamples/user2.json'
|
||||
import user3 from '../APIexamples/user3.json'
|
||||
import user4 from '../APIexamples/user4.json'
|
||||
|
||||
import locationuser1 from '../APIexamples/locationuser1.json'
|
||||
import locationuser2 from '../APIexamples/locationuser2.json'
|
||||
import locationuser3 from '../APIexamples/locationuser3.json'
|
||||
import locationuser4 from '../APIexamples/locationuser4.json'
|
||||
|
||||
import departureuser1 from '../APIexamples/departureuser1.json'
|
||||
import departureuser2 from '../APIexamples/departureuser2.json'
|
||||
import departureuser3 from '../APIexamples/departureuser3.json'
|
||||
import departureuser4 from '../APIexamples/departureuser4.json'
|
||||
|
||||
import Button from './Button.js';
|
||||
import disruptIcon from '../img/flash.svg';
|
||||
import globalData from '../GlobalData.js';
|
||||
|
||||
class SelectUserButton extends Button {
|
||||
selectUser = () => {
|
||||
if(this.props.path === "user1"){
|
||||
globData.user = user1
|
||||
globData.user = user1
|
||||
globData.stop = locationuser1.LocationList.StopLocation[0]
|
||||
globData.stop.departures = [departureuser1.DepartureBoard.Departure]
|
||||
}else if (this.props.path === "user2"){
|
||||
globData.user = user2
|
||||
globData.user = user2
|
||||
globData.stop = locationuser2.LocationList.StopLocation[0]
|
||||
globData.stop.departures = [departureuser2.DepartureBoard.Departure]
|
||||
}else if (this.props.path === "user3"){
|
||||
globData.user = user3
|
||||
globData.user = user3
|
||||
globData.stop = locationuser3.LocationList.StopLocation[0]
|
||||
globData.stop.departures = [departureuser3.DepartureBoard.Departure]
|
||||
}else if (this.props.path === "user4"){
|
||||
globData.user = user4
|
||||
}
|
||||
globData.user = user4
|
||||
globData.stop = locationuser4.LocationList.StopLocation[0]
|
||||
globData.stop.departures = [departureuser4.DepartureBoard.Departure]
|
||||
}
|
||||
console.log(globData.stop)
|
||||
}
|
||||
|
||||
updatePage = () => {
|
||||
globalData.currentPage.render();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Button onClick={[this.selectUser]} className="disruptBtn">
|
||||
<Button onClick={[this.selectUser, this.updatePage]} className="disruptBtn">
|
||||
<img src={disruptIcon} alt="" />
|
||||
<span>{this.props.username}</span>
|
||||
</Button>
|
||||
|
@ -6,10 +6,21 @@ class StopTitle extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div id="stopTitle">
|
||||
<h1>{this.props.stop.name}</h1>
|
||||
<h1>{this.props.stop.name !== undefined ?
|
||||
this.props.stop.name
|
||||
: "Hållplats saknas"
|
||||
}</h1>
|
||||
<div>
|
||||
<h3>{this.props.stop.locations[0]}</h3>
|
||||
<button>Byt Läge</button>
|
||||
{this.props.stop.locations !== undefined ?
|
||||
<>
|
||||
<h3>
|
||||
<span>{this.props.stop.locations[0]}</span>
|
||||
</h3>
|
||||
<button>Byt Läge</button>
|
||||
</>
|
||||
:
|
||||
<h3>Vänligen aktivera platsåtkomst</h3>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -39,7 +39,7 @@ class TrafficEntry extends Component {
|
||||
<div>
|
||||
<div className="timeColumn">
|
||||
{!lineInterference &&
|
||||
<span>{this.props.departure.originalTime}</span>
|
||||
<span>{this.props.departure.time}</span>
|
||||
}
|
||||
{lineInterference &&
|
||||
<>
|
||||
@ -53,9 +53,9 @@ class TrafficEntry extends Component {
|
||||
</div>
|
||||
<div className="lineColumn">
|
||||
<div>
|
||||
<span className="lineName">{this.props.departure.lineName}</span>
|
||||
<span className="lineName">{this.props.departure.sname}</span>
|
||||
<img src={busIcon} alt=""></img>
|
||||
<span className="destination">{"Mot " + this.props.departure.finalStop}</span>
|
||||
<span className="destination">{"Mot " + this.props.departure.direction}</span>
|
||||
</div>
|
||||
{lineInterference &&
|
||||
<div className="infoWrapper" onClick={this.toggle}>
|
||||
|
@ -7,21 +7,23 @@ import './css/TrafficInfo.css';
|
||||
class TrafficList extends Component {
|
||||
render() {
|
||||
let entries = [];
|
||||
|
||||
if (this.props.departures) {
|
||||
let i = 0; // React requires elems in array to have associated unique key
|
||||
|
||||
let i = 0; // React requires elems in array to have associated unique key
|
||||
this.props.departures.forEach(departure => {
|
||||
entries.push(
|
||||
<TrafficEntry key={i++} departure={departure} />
|
||||
);
|
||||
});
|
||||
|
||||
this.props.departures.forEach(departure => {
|
||||
entries.push(
|
||||
<TrafficEntry key={i++} departure={departure} />
|
||||
);
|
||||
});
|
||||
// Add separator between every element
|
||||
const intersperse = (arr, sep) => arr.reduce((a,v)=>[...a,v,sep],[]).slice(0,-1);
|
||||
entries = intersperse(entries, (<hr key={i++} />));
|
||||
|
||||
// Add separator between every element
|
||||
const intersperse = (arr, sep) => arr.reduce((a,v)=>[...a,v,sep],[]).slice(0,-1);
|
||||
entries = intersperse(entries, (<hr key={i++} />));
|
||||
|
||||
// Add separator after the last element
|
||||
entries.push(<hr key={i++} />);
|
||||
// Add separator after the last element
|
||||
entries.push(<hr key={i++} />);
|
||||
}
|
||||
|
||||
return (
|
||||
<div id="trafficList">
|
||||
|
@ -2,9 +2,12 @@ import React, { Component } from 'react';
|
||||
|
||||
import Header from '../Header.js';
|
||||
import MainArea from '../MainArea.js';
|
||||
import globalData from '../../GlobalData.js';
|
||||
|
||||
class Tickets extends Component {
|
||||
render() {
|
||||
globalData.currentPage = this;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header title="Biljetter" />
|
||||
|
@ -9,8 +9,12 @@ import clockIcon from '../../img/clock.svg';
|
||||
import calendarIcon from '../../img/calendar.svg';
|
||||
import recurringIcon from '../../img/redo.svg';
|
||||
|
||||
import globalData from '../../GlobalData.js';
|
||||
|
||||
class TicketsBuy extends Component {
|
||||
render() {
|
||||
globalData.currentPage = this;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header title="Köp biljett" />
|
||||
|
@ -6,38 +6,25 @@ import MainArea from "../MainArea.js";
|
||||
import StopTitle from "../StopTitle.js";
|
||||
import TrafficList from "../TrafficList.js";
|
||||
|
||||
import Stop from "../../classes/Stop.js";
|
||||
import Departure from "../../classes/Departure.js";
|
||||
import globalData from '../../GlobalData.js';
|
||||
|
||||
|
||||
class TrafficInfo extends Component {
|
||||
state = {
|
||||
stop: globalData.stop
|
||||
};
|
||||
|
||||
render() {
|
||||
/* TEST DATA - TO BE REPLACED */
|
||||
let testStop = new Stop(
|
||||
"Lemmingsgatan",
|
||||
["Läge A", "Läge B", "Läge C"],
|
||||
[
|
||||
new Departure(
|
||||
"519",
|
||||
"Heden",
|
||||
"11:59",
|
||||
"Trafikolycka vid Partille Centrum. Olyckan ska ha inträffat i höjd med brandstationen och det är oklart om någon är skadad. Polis på väg. Två av bilarna behöver bärgas från platsen. Inga uppgifter om personskador."
|
||||
),
|
||||
new Departure("58", "Västra Eriksberg", "12:07"),
|
||||
]
|
||||
);
|
||||
|
||||
testStop.departures[0].timeUpdate("16:50");
|
||||
/* TEST DATA - TO BE REPLACED */
|
||||
globalData.currentPage = this;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header title="Trafikinfo" />
|
||||
<TopMenu>
|
||||
<StopTitle stop={testStop} />
|
||||
<StopTitle stop={this.state.stop} />
|
||||
</TopMenu>
|
||||
<MainArea>
|
||||
<TrafficList departures={testStop.departures} />
|
||||
<TrafficList departures={this.state.stop.departures} />
|
||||
</MainArea>
|
||||
</>
|
||||
);
|
||||
|
@ -7,8 +7,12 @@ import TripSelector from '../TripSelector.js';
|
||||
|
||||
import '../css/TripSelector.css';
|
||||
|
||||
import globalData from '../../GlobalData.js';
|
||||
|
||||
class Travel extends Component {
|
||||
render() {
|
||||
globalData.currentPage = this;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header title="Reseplanering" />
|
||||
|
Reference in New Issue
Block a user