Files
qmining-page/src/pages/pwRequest.js
T
2021-03-23 19:46:45 +01:00

154 lines
5.3 KiB
JavaScript

import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import Head from 'next/head'
import styles from './pwRequest.module.css'
import constants from '../constants.json'
export default function PwRequest(props) {
const [result, setResult] = useState([])
const [remaining, setRemaining] = useState('...')
const [requestedPWS, setRequestedPWS] = useState('...')
const [createDate, setCreateDate] = useState('...')
const [addPwPerDay, setAddPwPerDay] = useState('...')
const [daysAfterUserGetsPWs, setDaysAfterUserGetsPWs] = useState('...')
const [maxPWCount, setMaxPWCount] = useState('...')
const [addPWCount, setAddPWCount] = useState('...')
const [dayDiff, setDayDiff] = useState('...')
useEffect(() => {
console.info('Fetching avaible pws')
fetch(`${constants.apiUrl}avaiblePWS`, {
credentials: 'include',
})
.then((resp) => {
return resp.json()
})
.then((data) => {
setRemaining(data.avaiblePWS)
setCreateDate(data.userCreated)
setRequestedPWS(data.requestedPWS)
setAddPwPerDay(data.addPWPerDay)
setAddPWCount(data.addPWCount)
setDaysAfterUserGetsPWs(data.daysAfterUserGetsPWs)
setMaxPWCount(data.maxPWCount)
setDayDiff(data.dayDiff)
})
}, [])
const handleSubmit = async () => {
const rawResponse = await fetch(constants.apiUrl + 'getpw', {
method: 'POST',
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
})
try {
rawResponse
.json()
.then((resp) => {
if (resp.result === 'success') {
setResult([...result, resp.pw])
setRemaining(resp.remaining)
setRequestedPWS(resp.requestedPWS)
} else if (resp.result === 'success') {
setResult(['Nem vagy bejelentkezve!']) // this should never happpen
} else {
setResult([
...result,
'Jelszó kérési lehetőségeid elfogytak, nézz vissza később',
])
setRemaining(0)
}
})
.catch((e) => {
setResult([...result, 'Szerver oldali hiba! :('])
console.error(e)
})
} catch (e) {
setResult([...result, 'Szerver oldali hiba! :('])
console.error(e)
}
}
return (
// TODO: a generált jelszó modal-on való megjelenítésének kivitelezése.
/* TODO: <span>{' ' + createDate}</span>-kor. rész után az oldal összes jelenlegi
felhasználójának darabszámának megjelenítése.*/
<div>
<Head>
<title>Jelszó generálás - Qmining | Frylabs.net</title>
</Head>
<div className={'pageHeader'}>
<h1>Jelszó generálás</h1>
</div>
<div id="form">
<div className={styles.text}>
<p className={styles.descrip}>
Ezen az oldalon lehetőséged van lekérni jelszavakat, hogy új
felhasználókat hívhass meg az oldalra, vagy elfelejtett jelszavadat
pótold, amennyiben még be vagy jelentkezve a régivel. (Konkrét
elfelejtett jelszó funkció még nincsen)
<br />
Minden felhasználó saját és különböző jelszót kap. Inkább generálj
egyet és add oda másnak, mint hogy közösen használjatok egyet, mert
egyszerre, egy felhasználó csak egy helyen, egy eszközön lehet
belépve, mindenhol máshol automatikusan kijelentkeztetésre kerül. A
jelszavakról bővebben a Script használata oldal{' '}
<a href="/manual#pw" target="_blank">
vonatkozó részén
</a>{' '}
olvashatsz.
</p>
</div>
<div className={styles.text}>
Az új felhasználóknak
<span>{' ' + daysAfterUserGetsPWs + ' '}</span>
napot kell várniuk, míg jelszó generálási lehetőséget kapnak.
<br />
Egy felhasználó egyszerre
<span>{' ' + addPWCount + ' '}</span>
jelszót generálhat, a jelszókérések közt
<span>{' ' + addPwPerDay + ' '}</span>
napnak kell eltelnie, hogy újabb jelszót kérhess le.
<br />
Egy felhasználó összesen
<span>{' ' + maxPWCount + ' '}</span>
jelszót generálhat.
<br />
Ebből eddig
<span>{' ' + requestedPWS + ' '}</span>
lehetőséget használtál fel, tehát még
<span>{' ' + remaining}</span> db jelszót kérhetsz le. <br />
<br /> A jelenleg bejelentkezett felhasználó létrehozva:
<span>{' ' + dayDiff}</span> napja,<span>{' ' + createDate}</span>
-kor.
<br />
<br />
</div>
<div className={styles.buttonContainer}>
<div onClick={handleSubmit} className={styles.button}>
Jelszó kérése
</div>
</div>
{result ? (
<div className={styles.pwContainer}>
{result.map((r, i) => {
return (
<div key={i} className={styles.pw}>
{i + 1}.: {r}
</div>
)
})}
</div>
) : null}
</div>
</div>
)
}