{"version":3,"sources":["store/WeatherForecasts.ts","store/index.ts","store/Counter.ts","components/NavMenu.tsx","components/Layout.tsx","components/Home.tsx","components/Administration.tsx","components/Overview.tsx","components/ActivatePassword.tsx","components/EditReservation.tsx","App.tsx","registerServiceWorker.ts","index.tsx","store/configureStore.ts"],"names":["unloadedState","forecasts","isLoading","reducers","counter","state","incomingAction","undefined","count","type","weatherForecasts","action","startDateIndex","NavMenu","isOpen","user","toggle","setState","Navbar","className","light","Container","NavbarBrand","tag","Link","to","NavbarToggler","onClick","this","Collapse","navbar","NavItem","NavLink","React","Layout","props","children","registerLocale","da","Home","useEffect","checkAvailability","useState","priceWeekday","priceWeekdayMorning","priceWeekdayAfternoon","priceWeekdayEvening","priceFriday","priceSaturday","priceSunday","priceShortWeekend","priceLongWeekend","priceCommercialMultiplier","price","setPrice","priceText","setPriceText","Date","startDate","setStartDate","addMonths","startDate2","setStartDate2","startDate3","setStartDate3","excludedDates","setExcludedDates","bookingOptions","setOptions","selectedReservationType","setSelectedReservationType","hideDateSelection","setHideDateSelection","hideConfirmation","setHideConfirmation","hideReservationSelection","setHideReservationSelection","hideCompleteReservation","setHideCompleteReservation","discountText","setDiscountText","name","setName","email","setEmail","phone","setPhone","address","setAddress","title","setTitle","regNo","setRegNo","account","setAccount","confirmTermsAndConditions","setConfirmTermsAndConditions","nameErr","setNameErr","emailErr","setEmailErr","phoneErr","setPhoneErr","addressErr","setAddressErr","titleErr","setTitleErr","regNoErr","setRegNoErr","accountErr","setAccountErr","confirmTermsAndConditionsErr","setConfirmTermsAndConditionsErr","wizardStep","setWizardStep","date","a","start","getDay","nextDay","addDays","Number","getFullYear","getMonth","getDate","nextNextDay","find","item","getTime","fetch","slice","response","json","data","excludedSlots","options","substring","handleSelectReservationType","selectedType","selectedUse","discountPct","changeEvent","preventDefault","inputValid","test","trim","toLowerCase","dateInput","eventType","timeSlot","alert","resetReservationDetails","dates","i","length","indexOfFirst","indexOf","indexOfSecond","year","month","day","concat","content","hidden","window","innerWidth","Steps","current","Item","description","Wizard","onChange","excludeDates","minDate","maxDate","showDisabledMonthNavigation","formatWeekDay","nameOfDay","substr","locale","inline","includes","placeholder","value","e","target","maxLength","val","replace","colSpan","checked","href","src","alt","vertical","style","width","display","verticalAlign","customStyles","top","left","right","bottom","marginRight","transform","connect","checkReservations","sessionToken","userName","setReservationData","initCheckReservations","initSessionToken","id","payeeID","payeeAmount","setPaymentModalIsOpen","resetModals","setDepositModalIsOpen","setConsumptionModalIsOpen","password","setIsLoggedOn","setSessionToken","setUserName","setPassword","setActiveUser","setPayeeID","setPayeeName","setPayeeDate","setPayeeAmount","activeUser","isLoggedOn","afterOpenConfirmationModal","closeConfirmationModal","payeeName","payeeDate","paymentModalIsOpen","depositModalIsOpen","consumptionModalIsOpen","reservationData","Form","Group","controlId","Control","Button","variant","map","paid","reservationdate","depositBalance","consumption","DropdownButton","Dropdown","deposit","payment","paymentReminder","archive","regno","timeSlot1","timeSlot2","timeSlot3","confirm","deleteReservation","onAfterOpen","onRequestClose","contentLabel","pattern","executePayment","executeDepositPayment","executeConsumptionRegistration","checkNext14DaysReservations","today","repeat","setTimeout","fetchData","error","console","message","clearTimeout","query","URLSearchParams","useLocation","search","newPassword","setNewPassword","get","hideLogin","setHideLogin","setDate","setRegno","setPaid","setDepositBalance","locked","setLocked","disabled","exact","path","component","Administration","Overview","ActivatePassword","EditReservation","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","log","catch","baseUrl","document","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","push","createStore","compose","applyMiddleware","configureStore","ReactDOM","App","getElementById","URL","process","toString","origin","addEventListener","contentType","headers","status","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.b8753955.chunk.js","sourcesContent":["import { Action, Reducer } from 'redux';\r\nimport { AppThunkAction } from './';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface WeatherForecastsState {\r\n isLoading: boolean;\r\n startDateIndex?: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\nexport interface WeatherForecast {\r\n date: string;\r\n temperatureC: number;\r\n temperatureF: number;\r\n summary: string;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n\r\ninterface RequestWeatherForecastsAction {\r\n type: 'REQUEST_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n}\r\n\r\ninterface ReceiveWeatherForecastsAction {\r\n type: 'RECEIVE_WEATHER_FORECASTS';\r\n startDateIndex: number;\r\n forecasts: WeatherForecast[];\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype KnownAction = RequestWeatherForecastsAction | ReceiveWeatherForecastsAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n requestWeatherForecasts: (startDateIndex: number): AppThunkAction => (dispatch, getState) => {\r\n // Only load data if it's something we don't already have (and are not already loading)\r\n const appState = getState();\r\n if (appState && appState.weatherForecasts && startDateIndex !== appState.weatherForecasts.startDateIndex) {\r\n fetch(`weatherforecast`)\r\n .then(response => response.json() as Promise)\r\n .then(data => {\r\n dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });\r\n });\r\n\r\n dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex: startDateIndex });\r\n }\r\n }\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nconst unloadedState: WeatherForecastsState = { forecasts: [], isLoading: false };\r\n\r\nexport const reducer: Reducer = (state: WeatherForecastsState | undefined, incomingAction: Action): WeatherForecastsState => {\r\n if (state === undefined) {\r\n return unloadedState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'REQUEST_WEATHER_FORECASTS':\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: state.forecasts,\r\n isLoading: true\r\n };\r\n case 'RECEIVE_WEATHER_FORECASTS':\r\n // Only accept the incoming data if it matches the most recent request. This ensures we correctly\r\n // handle out-of-order responses.\r\n if (action.startDateIndex === state.startDateIndex) {\r\n return {\r\n startDateIndex: action.startDateIndex,\r\n forecasts: action.forecasts,\r\n isLoading: false\r\n };\r\n }\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n","import * as WeatherForecasts from './WeatherForecasts';\r\nimport * as Counter from './Counter';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n counter: Counter.CounterState | undefined;\r\n weatherForecasts: WeatherForecasts.WeatherForecastsState | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n counter: Counter.reducer,\r\n weatherForecasts: WeatherForecasts.reducer\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n","import { Action, Reducer } from 'redux';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface CounterState {\r\n count: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface IncrementCountAction { type: 'INCREMENT_COUNT' }\r\nexport interface DecrementCountAction { type: 'DECREMENT_COUNT' }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = IncrementCountAction | DecrementCountAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n increment: () => ({ type: 'INCREMENT_COUNT' } as IncrementCountAction),\r\n decrement: () => ({ type: 'DECREMENT_COUNT' } as DecrementCountAction)\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CounterState | undefined, incomingAction: Action): CounterState => {\r\n if (state === undefined) {\r\n return { count: 0 };\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'INCREMENT_COUNT':\r\n return { count: state.count + 1 };\r\n case 'DECREMENT_COUNT':\r\n return { count: state.count - 1 };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as React from 'react';\r\nimport NavDropdown from 'react-bootstrap/NavDropdown';\r\nimport Navbar from 'react-bootstrap/Navbar';\r\n\r\nimport { Collapse, Container, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\n\r\nexport default class NavMenu extends React.PureComponent<{}, { isOpen: boolean }> {\r\n public state = {\r\n isOpen: false,\r\n user: \"\"\r\n };\r\n\r\n\r\n\r\n\r\n\r\n public render() {\r\n return (\r\n
\r\n \r\n \r\n Booking\r\n \r\n \r\n
    \r\n \r\n Reserver\r\n \r\n \r\n Admin\r\n \r\n \r\n Overblik\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private toggle = () => {\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport NavMenu from './NavMenu';\r\n\r\nexport default class Layout extends React.PureComponent<{}, { children?: React.ReactNode }> {\r\n public render() {\r\n return (\r\n \r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n );\r\n }\r\n}","import React, { useEffect, useState, useMemo, useCallback } from \"react\";\r\n\r\nimport DatePicker, { registerLocale } from \"react-datepicker\";\r\nimport da from \"date-fns/locale/da\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport addDays from \"date-fns/addDays\";\r\nimport addMonths from \"date-fns/addMonths\";\r\n\r\nimport { Steps } from 'rsuite';\r\nimport 'rsuite/dist/styles/rsuite-default.css'\r\nimport { isNull } from \"util\";\r\n\r\nimport img from \"./MPmedium1x_2.png\";\r\n\r\n\r\nregisterLocale(\"da\", da);\r\n\r\n\r\nconst Wizard = (wizardStep: number) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n//const Home = () => {\r\nexport default function Home() {\r\n useEffect(() => {\r\n checkAvailability();\r\n }, []);\r\n \r\n\r\n // Pricing\r\n const [priceWeekday, setPriceWeekday] = useState(600);\r\n const [priceWeekdayMorning, setPriceWeekdayMorning] = useState(200);\r\n const [priceWeekdayAfternoon, setPriceWeekdayAfternoon] = useState(200);\r\n const [priceWeekdayEvening, setPriceWeekdayEvening] = useState(200);\r\n const [priceFriday, setPriceFriday] = useState(1875);\r\n const [priceSaturday, setPriceSaturday] = useState(2250);\r\n const [priceSunday, setPriceSunday] = useState(750);\r\n const [priceShortWeekend, setPriceShortWeekend] = useState(2625);\r\n const [priceLongWeekend, setPriceLongWeekend] = useState(3000);\r\n const [priceCommercialMultiplier, setPriceCommercialMultiplier] = useState(3);\r\n\r\n const [price, setPrice] = useState(0);\r\n const [priceText, setPriceText] = useState(\"\");\r\n\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [startDate2, setStartDate2] = useState(addMonths(new Date(), -12));\r\n const [startDate3, setStartDate3] = useState(addMonths(new Date(), -12));\r\n const [excludedDates, setExcludedDates] = useState([new Date()]);\r\n const [excludedSlots, setExcludedSlots] = useState(\"\");\r\n\r\n const [bookingOptions, setOptions] = useState(\"\");\r\n const [selectedReservationType, setSelectedReservationType] = useState(0);\r\n\r\n const [hideDateSelection, setHideDateSelection] = useState(false);\r\n const [hideConfirmation, setHideConfirmation] = useState(true);\r\n const [hideReservationSelection, setHideReservationSelection] = useState(true);\r\n const [hideCompleteReservation, setHideCompleteReservation] = useState(true);\r\n const [discountText, setDiscountText] = useState(\"\");\r\n\r\n //Input fields\r\n const [name, setName] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [phone, setPhone] = useState(\"\");\r\n const [address, setAddress] = useState(\"\");\r\n const [title, setTitle] = useState(\"\");\r\n const [regNo, setRegNo] = useState(\"\");\r\n const [account, setAccount] = useState(\"\");\r\n const [confirmTermsAndConditions, setConfirmTermsAndConditions] = useState(false);\r\n\r\n \r\n //Error codes\r\n const [nameErr, setNameErr] = useState(\"\");\r\n const [emailErr, setEmailErr] = useState(\"\");\r\n const [phoneErr, setPhoneErr] = useState(\"\");\r\n const [addressErr, setAddressErr] = useState(\"\");\r\n const [titleErr, setTitleErr] = useState(\"\");\r\n const [regNoErr, setRegNoErr] = useState(\"\");\r\n const [accountErr, setAccountErr] = useState(\"\");\r\n const [confirmTermsAndConditionsErr, setConfirmTermsAndConditionsErr] = useState(\"\");\r\n\r\n //Step Wizard\r\n const [wizardStep, setWizardStep] = useState(0);\r\n const styles = {\r\n width: '200px',\r\n display: 'inline-table',\r\n verticalAlign: 'center'\r\n };\r\n \r\n\r\n\r\n //Step 1=>2\r\n async function onChangeDate (date:any) {\r\n const start = date;\r\n \r\n setStartDate(start);\r\n setHideReservationSelection(false);\r\n setWizardStep(1);\r\n\r\n // Resetting other fields\r\n setHideConfirmation(true);\r\n setHideDateSelection(true);\r\n setHideCompleteReservation(true);\r\n setSelectedReservationType(0);\r\n\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n\r\n switch (start.getDay()) {\r\n case 0:\r\n // Sunday\r\n setOptions(\"47\");\r\n return;\r\n case 5:\r\n // Friday\r\n\r\n var nextDay = addDays(new Date(Number(start.getFullYear()), Number(start.getMonth()) , Number(start.getDate())), 1);\r\n var nextNextDay = addDays(new Date(Number(start.getFullYear()), Number(start.getMonth()), Number(start.getDate())), 2);\r\n\r\n if ((!excludedDates.find(item => { return item.getTime() == nextNextDay.getTime() })) && (!excludedDates.find(item => { return item.getTime() == nextDay.getTime() }))) {\r\n setOptions(\"267\");\r\n } else {\r\n setOptions(\"27\");\r\n }\r\n return;\r\n case 6:\r\n // Saturday\r\n var nextDay = addDays(new Date(Number(start.getFullYear()), Number(start.getMonth()), Number(start.getDate())), 1);\r\n \r\n if (!excludedDates.find(item => { return item.getTime() == nextDay.getTime() })) {\r\n setOptions(\"357\");\r\n } else {\r\n setOptions(\"37\");\r\n }\r\n return;\r\n default:\r\n // Weekday\r\n\r\n //Check timeslot availability for date\r\n const response = await fetch('availability?startDate=' + start.getFullYear() + \"-\" + ('00' + (start.getMonth() + 1)).slice(-2) + \"-\" + ('00' + start.getDate()).slice(-2) + '&queryType=timeslots');\r\n const data = await response.json();\r\n var excludedSlots = data[0] + '';\r\n \r\n \r\n \r\n var options = \"\";\r\n if (excludedSlots == \"000\" || excludedSlots == '') {\r\n options = \"17890\";\r\n } else {\r\n if (excludedSlots.substring(0, 1) == \"0\") {\r\n options = options + \"8\";\r\n }\r\n if (excludedSlots.substring(1, 2) == \"0\") {\r\n options = options + \"9\";\r\n }\r\n if (excludedSlots.substring(2, 3) == \"0\") {\r\n options = options + \"0\";\r\n }\r\n }\r\n\r\n setOptions(options);\r\n\r\n return;\r\n }\r\n }\r\n //Step 2=>3\r\n function handleSelectReservationType(selectedType: number, selectedUse: string) {\r\n //setSelectedReservationType(changeEvent.target.value);\r\n setSelectedReservationType(selectedType);\r\n setHideConfirmation(false);\r\n setWizardStep(2);\r\n\r\n //Hide other selections\r\n setHideDateSelection(true);\r\n setHideReservationSelection(true);\r\n setHideCompleteReservation(true);\r\n\r\n\r\n var discountPct = 1;\r\n\r\n if (startDate <= new Date(2021, 11, 31)) {\r\n discountPct = 0.75;\r\n setDiscountText(\"Bemærk: 25% 'corona rabat' for reservationer i 2021\");\r\n }\r\n\r\n\r\n switch (selectedType) {\r\n case 1:\r\n // Hverdagsleje\r\n if (selectedUse == \"commercial\") {\r\n setPrice(priceWeekday * priceCommercialMultiplier * discountPct);\r\n } else {\r\n setPrice(priceWeekday * discountPct);\r\n }\r\n setPriceText(\"Hverdag: 08:00 - 23:00\")\r\n\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 2:\r\n // Fredagsleje\r\n setPrice(priceFriday * discountPct);\r\n setPriceText(\"Fredag kl 08:00 - Lørdag kl 09:30\")\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 3:\r\n // Lørdagsleje\r\n setPrice(priceSaturday * discountPct);\r\n setPriceText(\"Lørdag kl 11:00 - Søndag kl 09:30\")\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 4:\r\n // Søndagsleje\r\n setPrice(priceSunday * discountPct);\r\n setPriceText(\"Søndag kl 11:00 - 23:00\")\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 5:\r\n // Kort weekend\r\n setPrice(priceShortWeekend * discountPct);\r\n setPriceText(\"Kort weekend: Lørdag kl 11:00 - Søndag kl 23:00\")\r\n setStartDate2(addDays(startDate, 1));\r\n // Hiding highlighted dates\r\n setStartDate3(addMonths(new Date(), -12));\r\n\r\n return;\r\n case 6:\r\n // Lang weekend\r\n setPrice(priceLongWeekend * discountPct);\r\n setPriceText(\"Lang weekend: Fredag kl 11:00 - Søndag kl 23:00\")\r\n setStartDate2(addDays(startDate, 1));\r\n setStartDate3(addDays(startDate, 2));\r\n return;\r\n case 7:\r\n // Offentligt arrangement\r\n setPrice(0);\r\n setPriceText(\"Offentligt arrangement\")\r\n setStartDate2(addDays(startDate, -12));\r\n setStartDate3(addDays(startDate, -12));\r\n return;\r\n case 8:\r\n // Hverdagsleje, morgen\r\n if (selectedUse == 'commercial') {\r\n setPrice(priceWeekdayMorning * priceCommercialMultiplier * discountPct);\r\n } else {\r\n setPrice(priceWeekdayMorning * discountPct);\r\n }\r\n setPriceText(\"Hverdag: 08:00 - 12:00\")\r\n\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 9:\r\n // Hverdagsleje, eftermiddag\r\n if (selectedUse == 'commercial') {\r\n setPrice(priceWeekdayAfternoon * priceCommercialMultiplier * discountPct);\r\n } else {\r\n setPrice(priceWeekdayAfternoon * discountPct);\r\n }\r\n setPriceText(\"Hverdag: 12:00 - 18:00\")\r\n\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n case 0:\r\n // Hverdagsleje, aften\r\n if (selectedUse == 'commercial') {\r\n setPrice(priceWeekdayEvening * priceCommercialMultiplier * discountPct);\r\n } else {\r\n setPrice(priceWeekdayEvening * discountPct);\r\n }\r\n \r\n setPriceText(\"Hverdag: 18:00 - 23:00\");\r\n\r\n // Hiding highlighted dates\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n return;\r\n default:\r\n // no input\r\n setPrice(0);\r\n setPriceText(\"\")\r\n setHideConfirmation(true);\r\n return;\r\n\r\n }\r\n }\r\n //Step 3=>4\r\n async function handleReservation(changeEvent: any) {\r\n changeEvent.preventDefault();\r\n\r\n var inputValid = true;\r\n setNameErr(\"\");\r\n setEmailErr(\"\");\r\n setPhoneErr(\"\");\r\n setAddressErr(\"\");\r\n setRegNoErr(\"\");\r\n setAccountErr(\"\");\r\n setAddressErr(\"\");\r\n setConfirmTermsAndConditionsErr(\"\");\r\n\r\n \r\n // Validate name\r\n if (!/^[ÆØÅæøåa-zA-Z]{1,}(?: [ÆØÅæøåa-zA-Z]+){1,6}$/.test(name.trim())) {\r\n inputValid = false;\r\n setNameErr(\"Indsæt for- og efternavn\");\r\n }\r\n\r\n // Validate email\r\n const expression = /(?!.*\\.{2})^([a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+(\\.[a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+)*|\"((([\\t]*\\r\\n)?[\\t]+)?([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*(([\\t]*\\r\\n)?[\\t]+)?\")@(([a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.)+([a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.?$/i;\r\n\r\n if (!expression.test(email.trim())) {\r\n inputValid = false;\r\n setEmailErr(\"Ugyldig email\");\r\n }\r\n\r\n // Validate phone\r\n if (!/[0-9]{8}/.test(phone)) {\r\n inputValid = false;\r\n setPhoneErr(\"8-cifret dansk telefonnr, uden mellemrum\");\r\n }\r\n\r\n // Validate address\r\n if (!/^(mølletoften|møllen|frodes mark|annas have|baastrup lund|maries dal|einars lykke|ellens høj|smedeskovvej) [0-9]{1,3}$/.test(address.toLowerCase())) {\r\n inputValid = false;\r\n setAddressErr(\"Indtast vejnavn + husnr (i Skovby Nygaard)\");\r\n }\r\n\r\n // Validate Title\r\n if (/[!@#$%^&*(),.?\":{}|<>]/g.test(title)) {\r\n inputValid = false;\r\n setTitleErr(\"Specialtegn ikke tilladt\");\r\n }\r\n\r\n // Validate regno\r\n if (!/[0-9]{4}$/.test(regNo)) {\r\n inputValid = false;\r\n setRegNoErr(\"Indtast 4 cifret reg no\");\r\n }\r\n\r\n // Validate account no\r\n if (!/[0-9]{4,10}$/.test(account)) {\r\n inputValid = false;\r\n setAccountErr(\"Indtast 10 cifret konto no\");\r\n }\r\n\r\n if (!confirmTermsAndConditions) {\r\n inputValid = false;\r\n setConfirmTermsAndConditionsErr(\"Ordensreglementet skal accepteres\");\r\n }\r\n\r\n if (inputValid) {\r\n var dateInput = \"\";\r\n var eventType = \"Private\";\r\n // For Public (free) reservations\r\n if (selectedReservationType == 7) {\r\n eventType = \"Public\";\r\n } \r\n\r\n //Setting reservation date information\r\n //Short Weekend (2 days)\r\n if (selectedReservationType == 5) {\r\n dateInput = '&date=' + startDate.getFullYear() + \"-\" + ('00' + (startDate.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate.getDate()).slice(-2) +\r\n '&date2=' + startDate2.getFullYear() + \"-\" + ('00' + (startDate2.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate2.getDate()).slice(-2);\r\n\r\n //Long Weekend (3 days)\r\n } else if (selectedReservationType == 6) {\r\n dateInput = '&date=' + startDate.getFullYear() + \"-\" + ('00' + (startDate.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate.getDate()).slice(-2) +\r\n '&date2=' + startDate2.getFullYear() + \"-\" + ('00' + (startDate2.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate2.getDate()).slice(-2) +\r\n '&date3=' + startDate3.getFullYear() + \"-\" + ('00' + (startDate3.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate3.getDate()).slice(-2);\r\n\r\n //All other reservation types\r\n } else {\r\n dateInput = '&date=' + startDate.getFullYear() + \"-\" + ('00' + (startDate.getMonth() + 1)).slice(-2) + \"-\" + ('00' +startDate.getDate()).slice(-2);\r\n }\r\n\r\n\r\n // Determine timeslot type (full/partial day)\r\n var timeSlot = \"full\";\r\n if (selectedReservationType == 8) {\r\n timeSlot = \"morning\";\r\n } else if (selectedReservationType == 9) {\r\n timeSlot = \"afternoon\";\r\n } else if (selectedReservationType == 0) {\r\n timeSlot = \"evening\";\r\n }\r\n\r\n // Send reservation request to backend\r\n const response = await fetch('reservation?name=' + name + dateInput + '&price=' + price + '&email=' + email +\r\n '&phone=' + phone + '&address=' + address + '&title=' + title + '&account=' + account + '®no=' + regNo + '&eventType=' + eventType + '&timeSlot=' + timeSlot);\r\n\r\n // Handle error response\r\n const data = await response.json();\r\n if (data[0] != \"200\") {\r\n alert(\"Fejl under reservering\");\r\n } else {\r\n setWizardStep(4);\r\n setHideCompleteReservation(false);\r\n setHideConfirmation(true);\r\n }\r\n\r\n\r\n\r\n checkAvailability();\r\n }\r\n\r\n\r\n }\r\n //Step 4=>1\r\n function resetReservationDetails() {\r\n setStartDate(new Date());\r\n setStartDate2(addMonths(new Date(), -12));\r\n setStartDate3(addMonths(new Date(), -12));\r\n setOptions(\"\");\r\n setPrice(0);\r\n setPriceText(\"\");\r\n setSelectedReservationType(0);\r\n setDiscountText(\"\");\r\n\r\n \r\n setHideDateSelection(false);\r\n setHideReservationSelection(true);\r\n setHideConfirmation(true);\r\n setHideCompleteReservation(true);\r\n setWizardStep(0);\r\n\r\n //Input fields\r\n setName(\"\");\r\n setEmail(\"\");\r\n setPhone(\"\");\r\n setAddress(\"\");\r\n setTitle(\"\");\r\n setRegNo(\"\");\r\n setAccount(\"\");\r\n setConfirmTermsAndConditions(false);\r\n }\r\n\r\n\r\n function ValidatePhoneInput(e: any){\r\n var val = e.target.value;\r\n val = val.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1');\r\n setPhone(val);\r\n }\r\n\r\n function ValidateRegNoInput(e: any) {\r\n var val = e.target.value;\r\n val = val.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1');\r\n setRegNo(val);\r\n }\r\n\r\n function ValidateAccountInput(e: any) {\r\n var val = e.target.value;\r\n val = val.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1');\r\n setAccount(val);\r\n }\r\n\r\n async function checkAvailability() {\r\n const response = await fetch('availability?startDate=' + startDate.getFullYear() + \"-\" + ('00' + (startDate.getMonth() + 1)).slice(-2) + \"-\" + ('00' + startDate.getDate()).slice(-2));\r\n const data = await response.json();\r\n\r\n //Cycle input dates and convert to Date elements\r\n var dates:Date[] = [];\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i] != null) {\r\n var indexOfFirst = data[i].indexOf(\"-\");\r\n var indexOfSecond = data[i].indexOf(\"-\", (indexOfFirst + 1));\r\n \r\n var year = data[i].substring(0, 4);\r\n var month = data[i].substring(indexOfFirst + 1, indexOfSecond) - 1;\r\n var day = data[i].substring(indexOfSecond + 1, data[i].length);\r\n \r\n dates = dates.concat(new Date(year, month, day));\r\n }\r\n \r\n }\r\n\r\n /* Example adding blocked days \"manually\"\r\n * dates = dates.concat(new Date(2022, 0, 17));\r\n */\r\n\r\n setExcludedDates(dates);\r\n }\r\n\r\n \r\n return (\r\n\r\n
\r\n \r\n \r\n\r\n

Reservering af fælleshus

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

1. Vælg ledig dato:

\r\n\r\n nameOfDay.substr(0, 3)}\r\n locale='da'\r\n inline />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

2. Vælg reservations mulighed

\r\n Start dato : {!!(startDate) ? startDate.getDate() + \".\" + (startDate.getMonth() + 1) + \".\" + startDate.getFullYear() : 'Vælg start dato'}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleSelectReservationType(2, \"\")} hidden={bookingOptions.includes(\"2\") ? false : true} >\r\n \r\n \r\n \r\n \r\n handleSelectReservationType(3, \"\")} hidden={bookingOptions.includes(\"3\") ? false : true} >\r\n \r\n \r\n \r\n \r\n handleSelectReservationType(4, \"\")} hidden={bookingOptions.includes(\"4\") ? false : true} >\r\n \r\n \r\n \r\n \r\n handleSelectReservationType(5, \"\")} hidden={bookingOptions.includes(\"5\") ? false : true} >\r\n \r\n \r\n \r\n \r\n handleSelectReservationType(6, \"\")} hidden={bookingOptions.includes(\"6\") ? false : true} >\r\n \r\n \r\n \r\n \r\n handleSelectReservationType(7, \"\")} hidden={bookingOptions.includes(\"7\") ? false : true} >\r\n \r\n \r\n \r\n \r\n \r\n
Reservations typePrivat brugKommercielt brug
Fredag kl 08:00 - Lørdag kl 09:30-
Lørdag kl 11:00 - Søndag kl 09:30-
Søndag kl 11:00 - 23:00-
Kort weekend: Lørdag kl 11:00 - Søndag kl 23:00-
Lang weekend: Fredag kl 11:00 - Søndag kl 23:00-
Offentligt Arrangement (Hele dagen)
Alle foreningsmedlemmer velkommen
-
\r\n
\r\n \r\n {\"Annuller\"}\r\n \r\n \r\n
\r\n
\r\n

3. Bekræft reservation

\r\n Reservation: {priceText}
\r\n Start dato : {!!(startDate) ? startDate.getDate() + \".\" + (startDate.getMonth()+1) + \".\" + startDate.getFullYear() : 'Vælg start dato'}
\r\n \r\n

Prisen for din reservationen bliver: kr. {price}

\r\n {discountText}

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Dit fulde navn:\r\n setName(e.target.value)}>\r\n {nameErr.length > 0 && (\r\n {nameErr})}\r\n
Din email adresse:\r\n setEmail(e.target.value)}>\r\n {emailErr.length > 0 && (\r\n {emailErr})}\r\n
Dit mobiltelefon nr:\r\n \r\n {phoneErr.length > 0 && (\r\n {phoneErr})}\r\n
Din adresse: \r\n setAddress(e.target.value)}>\r\n {addressErr.length > 0 && (\r\n {addressErr})}\r\n
Arrangementets titel: setTitle(e.target.value)}>\r\n {titleErr.length > 0 && (\r\n {titleErr})}\r\n
Registrerings nummer: \r\n \r\n {regNoErr.length > 0 && (\r\n {regNoErr})}\r\n
Konto nr:\r\n {accountErr.length > 0 && (\r\n {accountErr})}\r\n
\r\n setConfirmTermsAndConditions(!confirmTermsAndConditions)} checked={confirmTermsAndConditions} type=\"checkbox\" />\r\n Jeg bekræfter at have læst Ordensreglementet og Regler for booking (link), samt lover at overholde de gældende retningslinjer for brug af fælleshuset.\r\n {confirmTermsAndConditionsErr.length > 0 && (\r\n {confirmTermsAndConditionsErr})}\r\n
\r\n
\r\n \r\n {\"Reserver\"}\r\n    \r\n \r\n {\"Annuller\"}\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n

Tillykke, {name}!

\r\n

Du har nu reserveret Fælleshuset fra den. {startDate.getDate() + \".\" + (startDate.getMonth() + 1) + \".\" + startDate.getFullYear()}

\r\n

({priceText})

\r\n

Vi har sendt en bekræftigelse til addressen: {email}

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n//export default connect()(Home);\r\n\r\n\r\n\r\n","import { connect } from 'react-redux'; \r\nimport React, { useEffect, useState } from \"react\";\r\nimport Form from 'react-bootstrap/Form';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\nimport addDays from \"date-fns/addDays\";\r\n\r\n\r\nimport Modal from 'react-modal';\r\n\r\n\r\n \r\nconst customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)'\r\n }\r\n};\r\n\r\n\r\nconst Administration = () => {\r\n\r\n async function checkReservations() {\r\n const response = await fetch('admin?action=checkReservation&month=' + \"4\" + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n const data = await response.json();\r\n setReservationData(data);\r\n }\r\n\r\n async function checkArchive() {\r\n const response = await fetch('admin?action=checkArchive&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n const data = await response.json();\r\n setReservationData(data);\r\n }\r\n\r\n async function initCheckReservations(initSessionToken: string) {\r\n const response = await fetch('admin?action=checkReservation&month=' + \"4\" + '&sessionToken=' + initSessionToken + '&adminname=' + userName);\r\n const data = await response.json();\r\n setReservationData(data);\r\n }\r\n\r\n async function deleteReservation(id: number) {\r\n const response = await fetch('admin?action=deleteReservation&id=' + id + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n const data = await response.json();\r\n //setReservationData(data);\r\n checkReservations();\r\n }\r\n\r\n async function executePayment() {\r\n const response = await fetch('admin?action=registerPayment&id=' + payeeID + \"&amount=\" + payeeAmount + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n setPaymentModalIsOpen(false);\r\n resetModals()\r\n checkReservations();\r\n \r\n }\r\n\r\n async function executeDepositPayment() {\r\n const response = await fetch('admin?action=registerDepositPayment&id=' + payeeID + \"&amount=\" + payeeAmount + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n setDepositModalIsOpen(false);\r\n resetModals()\r\n checkReservations();\r\n\r\n }\r\n\r\n async function executeConsumptionRegistration() {\r\n const response = await fetch('admin?action=registerConsumption&id=' + payeeID + \"&amount=\" + payeeAmount + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n setConsumptionModalIsOpen(false);\r\n resetModals()\r\n checkReservations();\r\n }\r\n\r\n async function depositReminder(email: string, name: string, title: string, date: string, price: number, address: string) {\r\n const response = await fetch('reminder?action=depositReminder&email=' + email + \"&name=\" + name + '&title=' + title + '&date=' + date + '&price=' + price + '&adminname=' + userName + '&sessiontoken=' + sessionToken + '&address=' + address);\r\n const data = await response.json();\r\n if (data[0] === \"200\") {\r\n alert('Rykker sendt til: ' + email);\r\n } else {\r\n alert('Kunne ikke sende rykker til ' + email + ' fejl:' + data[1]);\r\n }\r\n }\r\n\r\n async function paymentReminder(email: string, name: string, title: string, date: string, price: number, address:string) {\r\n const response = await fetch('reminder?action=paymentReminder&email=' + email + \"&name=\" + name + '&title=' + title + '&date=' + date + '&price=' + price + '&adminname=' + userName + '&sessiontoken=' + sessionToken + '&address=' + address);\r\n const data = await response.json();\r\n if (data[0] === \"200\") {\r\n alert('Rykker sendt til: ' + email);\r\n } else {\r\n alert('Kunne ikke sende rykker til ' + email);\r\n }\r\n }\r\n\r\n async function logon() {\r\n const response = await fetch('login?adminname=' + userName + '&password=' + password);\r\n const data = await response.json();\r\n \r\n if (data[0][0] == \"200\") {\r\n setIsLoggedOn(true);\r\n setSessionToken(data[0][1]);\r\n initCheckReservations(data[0][1]);\r\n } else {\r\n alert('fejl i brugernavn eller kodeord.');\r\n setUserName(\"\");\r\n setPassword(\"\");\r\n setActiveUser(\"\");\r\n }\r\n }\r\n\r\n\r\n async function archive(id: number) {\r\n const response = await fetch('admin?action=archiveReservation&id=' + id + '&sessionToken=' + sessionToken + '&adminname=' + userName);\r\n const data = await response.json();\r\n checkReservations();\r\n }\r\n\r\n\r\n async function resetPassword() {\r\n const response = await fetch(\"AdminPassword?action=reset&username=\" + userName);\r\n const data = await response.json();\r\n if (data[0] == \"200\") {\r\n alert('Aktiveringsmail sendt');\r\n } else {\r\n alert('Kunne ikke oprette aktiverings mail.' + data[1]);\r\n }\r\n }\r\n\r\n function logoff() {\r\n setIsLoggedOn(false);\r\n setActiveUser(\"\");\r\n setPassword(\"\");\r\n setUserName(\"\");\r\n }\r\n\r\n function registerPayment(id: number, name:string, date:string, payment:number) {\r\n setPayeeID(id);\r\n setPayeeName(name);\r\n setPayeeDate(date);\r\n setPayeeAmount(payment);\r\n setPaymentModalIsOpen(true);\r\n }\r\n\r\n function registerDeposit(id: number, name: string, date: string, deposit:number) {\r\n setPayeeID(id);\r\n setPayeeName(name);\r\n setPayeeDate(date);\r\n setPayeeAmount(deposit);\r\n setDepositModalIsOpen(true);\r\n }\r\n\r\n function registerConsumption(id: number, name: string, date: string, consumption:number) {\r\n setPayeeID(id);\r\n setPayeeName(name);\r\n setPayeeDate(date);\r\n setPayeeAmount(consumption);\r\n setConsumptionModalIsOpen(true);\r\n }\r\n\r\n\r\n\r\n function resetModals() {\r\n setPayeeID(0);\r\n setPayeeName(\"\");\r\n setPayeeDate(\"\");\r\n setPayeeAmount(0);\r\n setPaymentModalIsOpen(false);\r\n setDepositModalIsOpen(false);\r\n setConsumptionModalIsOpen(false);\r\n }\r\n\r\n const [activeUser, setActiveUser] = useState(\"\");\r\n const [userName, setUserName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [isLoggedOn, setIsLoggedOn] = useState(false);\r\n const [sessionToken, setSessionToken] = useState(\"\");\r\n\r\n\r\n function afterOpenConfirmationModal() {\r\n // references are now sync'd and can be accessed.\r\n }\r\n\r\n function closeConfirmationModal() {\r\n setPaymentModalIsOpen(false);\r\n setDepositModalIsOpen(false);\r\n setConsumptionModalIsOpen(false);\r\n }\r\n\r\n const [payeeID, setPayeeID] = useState(0);\r\n const [payeeName, setPayeeName] = useState(\"\");\r\n const [payeeDate, setPayeeDate] = useState(\"\");\r\n const [payeeAmount, setPayeeAmount] = useState(0);\r\n const [paymentModalIsOpen, setPaymentModalIsOpen] = useState(false);\r\n const [depositModalIsOpen, setDepositModalIsOpen] = useState(false);\r\n const [consumptionModalIsOpen, setConsumptionModalIsOpen] = useState(false);\r\n\r\n\r\n\r\n var [reservationData, setReservationData] = useState([{ \"id\": 0, \"name\": \"\", \"date\": \"\", \"phone\": \"\", \"title\": \"\", \"price\": 0, \"paid\": 0, \"depositBalance\": 0, \"consumption\": 0, \"email\": \"\", \"address\": \"\", \"reservationdate\": \"\", \"account\": \"\", \"regno\": \"\", \"eventType\": \"\", \"state\": \"\", \"timeSlot1\": 0, \"timeSlot2\": 0, \"timeSlot3\": 0 }]);\r\n\r\n return (\r\n
\r\n

Administration

\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n \r\n};\r\n\r\nexport default connect()(Administration);\r\n\r\n\r\n","import { connect } from 'react-redux'; \r\nimport React, { useEffect, useState } from \"react\";\r\nimport addDays from \"date-fns/addDays\";\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\nconst Overview = () => {\r\n useEffect(() => {\r\n let repeat = setTimeout(fetchData, 1);\r\n\r\n async function fetchData() {\r\n try {\r\n checkNext14DaysReservations();\r\n\r\n repeat = setTimeout(fetchData, 900000); // request again after 15 minutes\r\n } catch (error) {\r\n console.error(error.message)\r\n }\r\n }\r\n \r\n\r\n return () => {\r\n if (repeat) {\r\n clearTimeout(repeat);\r\n }\r\n }\r\n }, []);\r\n\r\n async function checkNext14DaysReservations() {\r\n var today = new Date()\r\n const response = await fetch('overview?today='+today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate());\r\n const data = await response.json();\r\n setReservationData(data);\r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n var [reservationData, setReservationData] = useState([]);\r\n\r\n return (\r\n
\r\n

Kommende begivenheder:

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {reservationData.map(data =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Uge dagDatobegivenhedReserveret af
{data[0]}{data[1]}{data[2]}{data[3]}
\r\n\r\n \r\n\r\n
\r\n );\r\n \r\n};\r\n\r\nexport default connect()(Overview);\r\n\r\n\r\n","import { connect } from 'react-redux';\r\nimport React, { useState } from \"react\";\r\nimport addDays from \"date-fns/addDays\";\r\nimport { useLocation, useParams } from 'react-router';\r\n\r\n\r\n\r\nfunction useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst ActivatePassword = () => {\r\n let query = useQuery();\r\n\r\n const [newPassword, setNewPassword] = useState(\"\");\r\n\r\n\r\n async function setPassword() {\r\n const response = await fetch('AdminPassword?action=activate&id=' + query.get(\"id\") + \"&password=\" + newPassword);\r\n const data = await response.json();\r\n alert('' + data);\r\n }\r\n\r\n return (\r\n
\r\n

Aktiver nyt kodeord

\r\n

Vælg nyt kodeord:

\r\n setNewPassword(e.target.value)}>\r\n

\r\n \r\n \r\n\r\n
\r\n );\r\n\r\n};\r\n\r\nexport default connect()(ActivatePassword);\r\n\r\n\r\n","import { connect } from 'react-redux';\r\nimport React, { useState } from \"react\";\r\nimport addDays from \"date-fns/addDays\";\r\nimport { useLocation, useParams } from 'react-router';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\n\r\n\r\nfunction useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst EditReservation = () => {\r\n let query = useQuery();\r\n\r\n const [address, setAddress] = useState(\"\");\r\n const [hideLogin, setHideLogin] = useState(false);\r\n\r\n const [name, setName] = useState(\"\");\r\n const [state, setState] = useState(\"\");\r\n const [phone, setPhone] = useState(\"\");\r\n const [title, setTitle] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [date, setDate] = useState(\"\");\r\n const [regno, setRegno] = useState(\"\");\r\n const [account, setAccount] = useState(\"\");\r\n const [price, setPrice] = useState(\"\");\r\n const [paid, setPaid] = useState(\"\");\r\n const [depositBalance, setDepositBalance] = useState(\"\");\r\n\r\n const [locked, setLocked] = useState(false);\r\n var [reservationData, setReservationData] = useState([{ \"id\": 0, \"name\": \"\", \"date\": \"\", \"phone\": \"\", \"title\": \"\", \"price\": 0, \"paid\": 0, \"depositBalance\": 0, \"consumption\": 0, \"email\": \"\", \"address\": \"\", \"reservationdate\": \"\", \"account\": \"\", \"regno\": \"\", \"eventType\": \"\" , \"state\":\"\"}]);\r\n\r\n\r\n async function fetchReservation() {\r\n const response = await fetch('UserEdit?action=fetch&id=' + query.get(\"id\") + \"&address=\" + address);\r\n const data = await response.json();\r\n setName(data[0].name);\r\n setPhone(data[0].phone);\r\n setTitle(data[0].title);\r\n setEmail(data[0].email);\r\n setDate(data[0].date);\r\n setAccount(data[0].account);\r\n setRegno(data[0].regno);\r\n setPrice(data[0].price);\r\n setPaid(data[0].paid);\r\n setDepositBalance(data[0].depositBalance);\r\n\r\n if (data[0].state == \"Cancelled\") {\r\n setState(\"Aflyst\");\r\n setLocked(true);\r\n } else if (data[0].state == \"Archived\") {\r\n setState(\"Afsluttet\");\r\n setLocked(true);\r\n } else {\r\n setState(\"Aktiv\");\r\n }\r\n \r\n setHideLogin(true);\r\n }\r\n\r\n async function cancelReservation() {\r\n await fetch('UserEdit?action=cancel&id=' + query.get(\"id\") + \"&address=\" + address + \"&state=Cancelled\");\r\n \r\n setState(\"Aflyst\");\r\n setLocked(true);\r\n { /* TODO : Reload/reset Page */}\r\n \r\n }\r\n\r\n \r\n async function updateReservation() {\r\n await fetch('UserEdit?action=update&id=' + query.get(\"id\") + \"&address=\" + address + \"&state=Updated\" + \"&name=\" + name + \"&phone=\" + phone + \"&title=\" + title + \"&email=\" + email);\r\n\r\n setHideLogin(false);\r\n }\r\n\r\n return (\r\n
\r\n \r\n

Rediger reservation

\r\n
\r\n \r\n {/* \"logon\" View */}\r\n \r\n \r\n \r\n \r\n {/* Edit View */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Adresse setAddress(e.target.value)} disabled={locked || hideLogin} />
\r\n \r\n\r\n
\r\n \r\n {' '}\r\n \r\n \r\n\r\n
\r\n );\r\n\r\n};\r\n\r\nexport default connect()(EditReservation);\r\n\r\n\r\n","import * as React from 'react';\r\nimport { Route } from 'react-router';\r\nimport Layout from './components/Layout';\r\nimport Home from './components/Home';\r\nimport Administration from './components/Administration';\r\nimport Overview from './components/Overview';\r\nimport ActivatePassword from './components/ActivatePassword';\r\nimport EditReservation from './components/EditReservation';\r\n\r\nimport './custom.css'\r\n\r\n\r\nexport default () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const url = process.env.PUBLIC_URL as string;\r\n const publicUrl = new URL(url, window.location.toString());\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing as ServiceWorker;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\n\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'));\r\n\r\nregisterServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { ApplicationState, reducers } from './';\r\n\r\nexport default function configureStore(history: History, initialState?: ApplicationState) {\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n const enhancers = [];\r\n const windowIfDefined = typeof window === 'undefined' ? null : window as any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n"],"sourceRoot":""}