npm packages update

This commit is contained in:
mrfry 2023-03-09 16:31:34 +01:00
parent ed507dc39f
commit 32522097c0
51 changed files with 3247 additions and 5187 deletions

View file

@ -1,11 +1,24 @@
module.exports = { module.exports = {
env: { env: {
browser: true, browser: true,
es6: true, es2021: true,
node: true,
}, },
parser: 'babel-eslint', parser: '@babel/eslint-parser',
extends: ['eslint:recommended', 'plugin:react/recommended'], parserOptions: {
sourceType: 'module',
},
settings: {
react: {
version: 'detect',
},
},
extends: [
'plugin:react/recommended',
'standard',
'plugin:react/jsx-runtime',
'plugin:testing-library/react',
'plugin:jest/all',
],
globals: { globals: {
Atomics: 'readonly', Atomics: 'readonly',
SharedArrayBuffer: 'readonly', SharedArrayBuffer: 'readonly',

7770
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -13,15 +13,17 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"babel-eslint": "^10.1.0", "@babel/eslint-parser": "^7.5.4",
"eslint-plugin-react": "^7.21.5", "eslint-plugin-react": "^7.32.2",
"linkify-string": "^3.0.4", "linkify-string": "^4.1.0",
"next": "^10.0.3", "next": "^13.2.3",
"react": "^16.13.0", "react": "^18.2.0",
"react-dom": "^16.13.0", "react-dom": "^18.2.0",
"react-query": "^3.34.16", "react-query": "^3.39.3",
"react-snowfall": "^1.0.2", "react-snowfall": "^1.2.1",
"socket.io-client": "^4.1.2", "socket.io-client": "^4.6.1"
"unfetch": "^4.1.0" },
"devDependencies": {
"@babel/preset-react": "^7.18.6"
} }
} }

View file

@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import Questions from './Questions.js' import Questions from './Questions'
import constants from '../constants.json' import constants from '../constants.json'

View file

@ -1,6 +1,6 @@
import React, { PureComponent } from 'react' import React, { PureComponent } from 'react'
import Question from './Question.js' import Question from './Question'
import styles from './Questions.module.css' import styles from './Questions.module.css'

View file

@ -1,6 +1,6 @@
import React, { PureComponent } from 'react' import React, { PureComponent } from 'react'
import Question from './Question.js' import Question from './Question'
class Subject extends PureComponent { class Subject extends PureComponent {
render() { render() {

View file

@ -1,7 +1,7 @@
import React, { useState } from 'react' import React, { useState } from 'react'
import ReactButton from './reactButton.js' import ReactButton from './reactButton'
import Modal from './modal.js' import Modal from './modal'
import Link from 'next/link' import Link from 'next/link'
import styles from './comments.module.css' import styles from './comments.module.css'
@ -63,10 +63,12 @@ function Comment({ comment, index, onComment, onDelete, onReact, uid }) {
> >
{displayed ? '[-]' : '[+]'} {displayed ? '[-]' : '[+]'}
</div> </div>
<Link href={`/chat?user=${user}`}> <Link
<a title={`Chat #${user}-el`} className={'userId'}> href={`/chat?user=${user}`}
User #{user} title={`Chat #${user}-el`}
</a> className={'userId'}>
User #{user}
</Link> </Link>
</div> </div>
<div className={styles.commentDate} title={dateObj.toLocaleString()}> <div className={styles.commentDate} title={dateObj.toLocaleString()}>
@ -140,7 +142,7 @@ function Comment({ comment, index, onComment, onDelete, onReact, uid }) {
})} })}
</div> </div>
</div> </div>
) );
} }
function countComments(comments) { function countComments(comments) {

View file

@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import Modal from './modal.js' import Modal from './modal'
import constants from '../constants.json' import constants from '../constants.json'
import styles from './dbSelector.module.css' import styles from './dbSelector.module.css'

View file

@ -1,5 +1,4 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import LoadingIndicator from '../components/LoadingIndicator' import LoadingIndicator from '../components/LoadingIndicator'
import Sleep from '../components/sleep' import Sleep from '../components/sleep'

View file

@ -5,10 +5,10 @@ import dynamic from 'next/dynamic'
const Snowfall = dynamic(() => import('react-snowfall'), { ssr: false }) const Snowfall = dynamic(() => import('react-snowfall'), { ssr: false })
import LogoutIcon from './logoutIcon.js' import LogoutIcon from './logoutIcon'
import Modal from './modal.js' import Modal from './modal'
import constants from '../constants.json' import constants from '../constants.json'
import BB from './b.js' import BB from './b'
import styles from './layout.module.css' import styles from './layout.module.css'
import tabs from '../data/tabs.json' import tabs from '../data/tabs.json'
@ -67,37 +67,36 @@ function TopBar({
unreads, unreads,
userId, userId,
}) { }) {
return ( return <>
<> <MenuIcon setSidebarOpen={setSidebarOpen} sidebarOpen={sidebarOpen} />
<MenuIcon setSidebarOpen={setSidebarOpen} sidebarOpen={sidebarOpen} /> <Link href="/">
<Link href="/">
<a>
<img
src={`${constants.siteUrl}img/frylabs-logo_small_transparent.png`}
alt="FryLabs"
/>
</a>
</Link>
<div className={styles.topBarLinks}>
{Object.keys(topBarLinks).map((key) => {
const item = topBarLinks[key]
return ( <img
<Link key={key} href={item.href}> src={`${constants.siteUrl}img/frylabs-logo_small_transparent.png`}
<a alt="FryLabs"
onClick={closeSideBar} />
className={href.includes(key) ? styles.active : undefined}
> </Link>
{item.text} <div className={styles.topBarLinks}>
</a> {Object.keys(topBarLinks).map((key) => {
</Link> const item = topBarLinks[key]
)
})} return (
</div> (<Link
<div className={'seperator'} /> key={key}
<UserStatus onClick={closeSideBar} unreads={unreads} userId={userId} /> href={item.href}
</> onClick={closeSideBar}
) className={href.includes(key) ? styles.active : undefined}>
{item.text}
</Link>)
);
})}
</div>
<div className={'seperator'} />
<UserStatus onClick={closeSideBar} unreads={unreads} userId={userId} />
</>;
} }
function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) { function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) {
@ -111,16 +110,17 @@ function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) {
} }
return ( return (
<Link href={item.href} key={key}> (<Link
<a href={item.href}
onClick={closeSideBar} key={key}
className={href.includes(key) ? styles.active : undefined} onClick={closeSideBar}
id={item.id || undefined} className={href.includes(key) ? styles.active : undefined}
> id={item.id || undefined}>
{item.text}
</a> {item.text}
</Link>
) </Link>)
);
})} })}
<a <a
onClick={() => { onClick={() => {
@ -132,7 +132,7 @@ function SideBar({ sidebarOpen, closeSideBar, href, setDonateShowing }) {
</a> </a>
</div> </div>
</> </>
) : null ) : null;
} }
function Donate() { function Donate() {
@ -183,15 +183,15 @@ function UserStatus({ userId, unreads, onClick }) {
<div className={'uid'} title="User ID"> <div className={'uid'} title="User ID">
UID: {userId || '...'} UID: {userId || '...'}
</div> </div>
<Link href="/chat"> <Link
<a href="/chat"
onClick={onClick} onClick={onClick}
title={`Chat${unreadCount ? ' (' + unreadCount + ' új üzenet)' : ''}`} title={`Chat${unreadCount ? ' (' + unreadCount + ' új üzenet)' : ''}`}
className={styles.unreadNotification} className={styles.unreadNotification}>
>
<span>💬</span> <span>💬</span>
{unreadCount ? <div>{unreadCount}</div> : null} {unreadCount ? <div>{unreadCount}</div> : null}
</a>
</Link> </Link>
<div <div
@ -215,7 +215,7 @@ function UserStatus({ userId, unreads, onClick }) {
<LogoutIcon size={28} /> <LogoutIcon size={28} />
</div> </div>
</div> </div>
) );
} }
function MenuIcon({ setSidebarOpen, sidebarOpen }) { function MenuIcon({ setSidebarOpen, sidebarOpen }) {

View file

@ -223,7 +223,7 @@
} }
.unreadNotification > span { .unreadNotification > span {
top: 8px; top: 4px;
right: -8px; right: -8px;
display: inline-block; display: inline-block;
position: relative; position: relative;

View file

@ -1,7 +1,7 @@
import React from 'react' import React from 'react'
import ReactButton from './reactButton.js' import ReactButton from './reactButton'
import Comments from './comments.js' import Comments from './comments'
import Link from 'next/link' import Link from 'next/link'
import constants from '../constants.json' import constants from '../constants.json'
@ -92,10 +92,12 @@ export default function NewsEntry({
{title} {title}
</div> </div>
<div className={styles.userinfo}> <div className={styles.userinfo}>
<Link href={`/chat?user=${user}`}> <Link
<a title={`Chat #${user}-el`} className={'userId'}> href={`/chat?user=${user}`}
User #{user} title={`Chat #${user}-el`}
</a> className={'userId'}>
User #{user}
</Link> </Link>
<div className={styles.newsDate} title={dateObj.toLocaleString()}> <div className={styles.newsDate} title={dateObj.toLocaleString()}>
@ @
@ -143,5 +145,5 @@ export default function NewsEntry({
/> />
</div> </div>
</div> </div>
) );
} }

View file

@ -1,6 +1,6 @@
import React, { useState, useEffect, useRef } from 'react' import React, { useState, useEffect, useRef } from 'react'
import Tooltip from './tooltip.js' import Tooltip from './tooltip'
import styles from './reactButton.module.css' import styles from './reactButton.module.css'
import reactions from '../data/reactions.json' import reactions from '../data/reactions.json'

View file

@ -1,18 +1,12 @@
import React from 'react' import React from 'react'
import TodoCard from './todoCard.js' import TodoCard from './todoCard'
import styles from './todoBoard.module.css' import styles from './todoBoard.module.css'
export default function TodoBoard(props) { export default function TodoBoard(props) {
const { const { columns, cards, userId, categories, onCardClick, selectedGroup } =
columns, props
cards,
userId,
categories,
onCardClick,
selectedGroup,
} = props
const clickableTypes = Object.keys(columns).reduce((acc, key) => { const clickableTypes = Object.keys(columns).reduce((acc, key) => {
const col = columns[key] const col = columns[key]

View file

@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import TodoRow from './todoRow.js' import TodoRow from './todoRow'
import styles from './todoTable.module.css' import styles from './todoTable.module.css'

View file

@ -1,10 +1,10 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import LoadingIndicator from '../LoadingIndicator.js' import LoadingIndicator from '../LoadingIndicator'
import TodoBoard from './todoBoard.js' import TodoBoard from './todoBoard'
import TodoTable from './todoTable.js' import TodoTable from './todoTable'
import TodoSidebar from './todoSidebar.js' import TodoSidebar from './todoSidebar'
import Modal from '../modal.js' import Modal from '../modal'
import styles from './todo.module.css' import styles from './todo.module.css'
import constants from '../../constants.json' import constants from '../../constants.json'

View file

@ -1,3 +1,5 @@
import React from 'react'
export default function Custom404() { export default function Custom404() {
return ( return (
<center> <center>

View file

@ -1,10 +1,10 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import Header from '../components/header' import Header from '../components/header'
import LoadingIndicator from '../components/LoadingIndicator.js' import LoadingIndicator from '../components/LoadingIndicator'
import QuestionSearchResult from '../components/QuestionSearchResult.js' import QuestionSearchResult from '../components/QuestionSearchResult'
import Subject from '../components/Subject.js' import Subject from '../components/Subject'
import SubjectSelector from '../components/SubjectSelector.js' import SubjectSelector from '../components/SubjectSelector'
import ExternalLinkIcon from '../components/externalLinkIcon' import ExternalLinkIcon from '../components/externalLinkIcon'
import SearchBar from '../components/searchBar' import SearchBar from '../components/searchBar'
@ -36,7 +36,7 @@ function fetchData(db) {
credentials: 'include', credentials: 'include',
}) })
.then((resp) => { .then((resp) => {
return resp.json() return respon()
}) })
.then((resp) => { .then((resp) => {
resolve({ resolve({
@ -61,7 +61,7 @@ function fetchDbs() {
credentials: 'include', credentials: 'include',
}) })
.then((resp) => { .then((resp) => {
return resp.json() return respon()
}) })
.then((data) => { .then((data) => {
resolve(data) resolve(data)

View file

@ -45,7 +45,7 @@ export default function Contact({ globalState, setGlobalState }) {
<div className={'subtitle'}>Chat</div> <div className={'subtitle'}>Chat</div>
<div className={styles.text}> <div className={styles.text}>
<Link href="/chat?user=1"> <Link href="/chat?user=1">
<a>Weboldal chat-jén keresztül beszélgetés admin-nal</a> Weboldal chat-jén keresztül beszélgetés admin-nal
</Link> </Link>
<br /> <br />
Valós idejű chat, képeket és fájlokat is lehet küldeni. Valós idejű chat, képeket és fájlokat is lehet küldeni.
@ -94,5 +94,5 @@ export default function Contact({ globalState, setGlobalState }) {
)} )}
</div> </div>
</div> </div>
) );
} }

View file

@ -92,7 +92,7 @@ function FAQSection() {
<br /> <br />
Több infó a{' '} Több infó a{' '}
<Link href="/faq?tab=risk"> <Link href="/faq?tab=risk">
<a>kockázatok résznél</a> kockázatok résznél
</Link> </Link>
. .
</li> </li>
@ -108,134 +108,130 @@ function FAQSection() {
</li> </li>
</ul> </ul>
</div> </div>
) );
} }
function RiskSection() { function RiskSection() {
return ( return <>
<> Itt {'"én"'} alatt a szerver, weboldal és script egyedüli üzemeltetője
Itt {'"én"'} alatt a szerver, weboldal és script egyedüli üzemeltetője értendő, az egyetlen személy, aki hozzáfér akármilyen szolgáltatással
értendő, az egyetlen személy, aki hozzáfér akármilyen szolgáltatással kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs
kapcsolatos adathoz, pl.: szerver statisztikák, szerver operációs rendszere, beküldött fájlok. A weboldalon a felhasználó azonosítója:{' '}
rendszere, beküldött fájlok. A weboldalon a felhasználó azonosítója:{' '} <i>#1</i>
<i>#1</i> <ul>
<ul> <li>
<li> <b>Beküldött fájlok kezelése</b>A beküldött fájlokban szerepelhet
<b>Beküldött fájlok kezelése</b>A beküldött fájlokban szerepelhet személyes adat, pl.: név. Ha ilyen információval találkozok, akkor azt
személyes adat, pl.: név. Ha ilyen információval találkozok, akkor azt ki szoktam törölni. Ezekhez a fájlokhoz és információkhoz csak én
ki szoktam törölni. Ezekhez a fájlokhoz és információkhoz csak én férek hozzá, és sehova sincs kiadva. Ezek az információk nincsenek
férek hozzá, és sehova sincs kiadva. Ezek az információk nincsenek sehol gyűjtve.
sehol gyűjtve. </li>
</li> <li>
<li> <b>
<b> Ha esetleg {'"'}lebukik{'"'} a szerver, és tárolt személyes infók
Ha esetleg {'"'}lebukik{'"'} a szerver, és tárolt személyes infók </b>
</b> Semmi személyes információ nincs eltárolva szerveren. Egyedüli
Semmi személyes információ nincs eltárolva szerveren. Egyedüli információ amit egyáltalán ki tudnék deríteni az amúgy is az IP címed,
információ amit egyáltalán ki tudnék deríteni az amúgy is az IP címed, de az nincs letárolva. Ha nagyon gonosz lennék, akkor a script el
de az nincs letárolva. Ha nagyon gonosz lennék, akkor a script el tudná küldeni a neved és talán még 1-2 adatot a szervernek, de ezt nem
tudná küldeni a neved és talán még 1-2 adatot a szervernek, de ezt nem teszi.
teszi. <p />
<p /> Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '}
Bizonyíték? A script, weboldal és szerver teljesen nyílt forráskódú,{' '} <Link href="/contribute#gitrepo">
<Link href="/contribute#gitrepo"> ezek repository-ja publikus
<a>ezek repository-ja publikus</a> </Link>{' '}
</Link>{' '} (contribute oldal alja), és akármikor felülvizsgálható. A script a te
(contribute oldal alja), és akármikor felülvizsgálható. A script a te böngésződben fut, tampermonkey bővítmény menüjében megtekinthető
böngésződben fut, tampermonkey bővítmény menüjében megtekinthető milyen kód fut pontosan.
milyen kód fut pontosan. </li>
</li> <li>
<li> <b>Bármikor észrevehetik hogy használod a scriptet</b>A weboldalt már
<b>Bármikor észrevehetik hogy használod a scriptet</b>A weboldalt már kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '}
kevésbé, de úgy nem menti el a kérdéseket a script, mert nem fut.{' '} <a
<a href={`${constants.siteUrl}dataeditor`}
href={`${constants.siteUrl}dataeditor`} target="_blank"
target="_blank" rel="noreferrer"
rel="noreferrer" >
> Manuálisan is be lehet küldeni kérdés-válaszokat.
Manuálisan is be lehet küldeni kérdés-válaszokat. </a>
</a> <p />
<p /> A script shadow-root hoz teszi hozzá az összes megjelenített
A script shadow-root hoz teszi hozzá az összes megjelenített elementet, így ezeket szinte lehetetlen detektálni. A moodle
elementet, így ezeket szinte lehetetlen detektálni. A moodle semmiféleképpen nem látja, hogy milyen más oldalak vannak megnyitva a
semmiféleképpen nem látja, hogy milyen más oldalak vannak megnyitva a böngésződben. Nem látja az XMLHttp requesteket se, amit a script
böngésződben. Nem látja az XMLHttp requesteket se, amit a script végez. Egy Matomo nevű script látja hogy milyen oldalakra navigálsz a
végez. Egy Matomo nevű script látja hogy milyen oldalakra navigálsz a moodle-ről, de a script nem linkekkel irányít át, hanem javascript
moodle-ről, de a script nem linkekkel irányít át, hanem javascript eseménnyel, amit nem tud nyomon követni.
eseménnyel, amit nem tud nyomon követni. <p />
<p /> Aztán ki tudja ténylegesen hogy lehet
Aztán ki tudja ténylegesen hogy lehet </li>
</li> <li>
<li> <b>Bármikor leállhat a szerver</b>
<b>Bármikor leállhat a szerver</b> És akkor nem bírod megnézni a válaszokat. Erre van az{' '}
És akkor nem bírod megnézni a válaszokat. Erre van az{' '} <a
<a href="http://qmining.frylabs.net/allqr.txt?man"
href="http://qmining.frylabs.net/allqr.txt?man" target="_blank"
target="_blank" rel="noreferrer"
rel="noreferrer" >
> összes kérdés TXT
összes kérdés TXT </a>
</a> </li>
</li> <li>
<li> <b>Akármelyik válasz rossz lehet</b>
<b>Akármelyik válasz rossz lehet</b> Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ
Pl.: ha a script rosszul menti le, vagy rossz kérdésre ad választ </li>
</li> </ul>
</ul> </>;
</>
)
} }
function WebsiteSaveSection() { function WebsiteSaveSection() {
return ( return <>
<> <p>
<p> Ha hibát találsz, kérlek jelents. Hogy a hibákat a saját gépemen
Ha hibát találsz, kérlek jelents. Hogy a hibákat a saját gépemen reprodukálni tudjam, és könnyen ki bírjam javítani, sokszor jól jön, ha
reprodukálni tudjam, és könnyen ki bírjam javítani, sokszor jól jön, ha egy lementett weboldalt megkapok, amin a hiba történik. Így lehet
egy lementett weboldalt megkapok, amin a hiba történik. Így lehet menteni egy oldalt:
menteni egy oldalt: </p>
</p> <ul>
<ul> <li>
<li> Lementett oldalon jobb klikk, oldal mentése
Lementett oldalon jobb klikk, oldal mentése <br />
<br /> <img
<img src="img/faq/sitesave-1.jpg"
src="img/faq/sitesave-1.jpg" alt="img"
alt="img" className={'manual_img'}
className={'manual_img'} />
/> </li>
</li> <li>
<li> A lementett oldal egy fájlból és mappából áll.
A lementett oldal egy fájlból és mappából áll. <br />
<br /> <img
<img src="img/faq/sitesave-2.jpg"
src="img/faq/sitesave-2.jpg" alt="img"
alt="img" className={'manual_img'}
className={'manual_img'} />
/> </li>
</li> <li>
<li> A fájlt nyisd meg szövegszerkesztővel (notepad), és keress a
A fájlt nyisd meg szövegszerkesztővel (notepad), és keress a nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Nem
nevedre, majd (csak a neved, ne a sort) töröld ki, és mentsd el. Nem szoktam megnézni a neveket, nem is tudok velük mit kezdeni, és nem is
szoktam megnézni a neveket, nem is tudok velük mit kezdeni, és nem is adom ki soha. Amit beküldesz, azt csak én látom.{' '}
adom ki soha. Amit beküldesz, azt csak én látom.{' '} <Link href="/faq?tab=risk">
<Link href="/faq?tab=risk"> Több infó itt
<a>Több infó itt</a> </Link>{' '}
</Link>{' '} </li>
</li> <li>
<li> <Link href="/contact">
<Link href="/contact"> Ide tudod feltölteni
<a>Ide tudod feltölteni</a> </Link>{' '}
</Link>{' '} </li>
</li> </ul>
</ul> <p>
<p> Mivel nincs hozzáférésem semmilyen egyetemi oldalhoz, így csak így tudom
Mivel nincs hozzáférésem semmilyen egyetemi oldalhoz, így csak így tudom hatékonyan tesztelni a scriptet. Ezért hatalmas segítség ha feltöltöd
hatékonyan tesztelni a scriptet. Ezért hatalmas segítség ha feltöltöd azt az oldalt amin hibával találkozol.
azt az oldalt amin hibával találkozol. </p>
</p> </>;
</>
)
} }
function ScriptSection() { function ScriptSection() {
@ -245,7 +241,7 @@ function ScriptSection() {
<li> <li>
<b>Hogy kell a scriptet telepíteni, és milyen oldalakon működik? </b> <b>Hogy kell a scriptet telepíteni, és milyen oldalakon működik? </b>
<Link href="/script"> <Link href="/script">
<a>Ezen az oldalon van leírva</a> Ezen az oldalon van leírva
</Link>{' '} </Link>{' '}
</li> </li>
<li> <li>
@ -264,7 +260,7 @@ function ScriptSection() {
Más felhasználóknak köszönhetően már valószínűleg lesznek Más felhasználóknak köszönhetően már valószínűleg lesznek
megoldások a tesztjeidhez.{' '} megoldások a tesztjeidhez.{' '}
<Link href="/allQuestions"> <Link href="/allQuestions">
<a>Itt</a> Itt
</Link>{' '} </Link>{' '}
meg tudod tekinteni, hogy vannak-e válaszok a tárgyadhoz. meg tudod tekinteni, hogy vannak-e válaszok a tárgyadhoz.
</li> </li>
@ -382,79 +378,77 @@ function ScriptSection() {
</li> </li>
</ul> </ul>
</div> </div>
) );
} }
function AddSite() { function AddSite() {
return ( return <>
<> Jelenleg az, hogy a script melyik oldalakon fut bele van égetve a script
Jelenleg az, hogy a script melyik oldalakon fut bele van égetve a script forráskódjába. Ez itt látható:{' '}
forráskódjába. Ez itt látható:{' '} <a
<a rel="noreferrer"
rel="noreferrer" target="_blank"
target="_blank" href="https://gitlab.com/MrFry/moodle-test-userscript/-/blob/master/stable.user.js#L52"
href="https://gitlab.com/MrFry/moodle-test-userscript/-/blob/master/stable.user.js#L52" >
> stable.user.js#L52
stable.user.js#L52 </a>
</a> {'. '}
{'. '} Ez azért van így, hogy biztos csak olyan oldalakon fusson a script amit
Ez azért van így, hogy biztos csak olyan oldalakon fusson a script amit támogat is.
támogat is. <p />
<p /> Ehhez persze kézzel hozzá lehet adni ideiglenesen bármilyen oldalt, hogy
Ehhez persze kézzel hozzá lehet adni ideiglenesen bármilyen oldalt, hogy kipróbáld ott működik-e. Akár működik, akár nem kérlek szólj, és frissítem
kipróbáld ott működik-e. Akár működik, akár nem kérlek szólj, és frissítem a scriptet hogy azon a domainen is fusson és működjön alapból.
a scriptet hogy azon a domainen is fusson és működjön alapból. <p />
<p /> Egyetem moodle oldalának hozzáadása a scripthez kézzel:
Egyetem moodle oldalának hozzáadása a scripthez kézzel: <ul>
<ul> <li>
<li> <Link href="/script">
<Link href="/script"> Először telepítsd a scriptet rendesen
<a>Először telepítsd a scriptet rendesen</a> </Link>{' '}
</Link>{' '} </li>
</li> <li>
<li> Böngészőben nyisd meg a Tampermonkey bővítményt <br />
Böngészőben nyisd meg a Tampermonkey bővítményt <br /> <img className={'manual_img'} src={`img/faq/siteadd-1.png`} />
<img className={'manual_img'} src={`img/faq/siteadd-1.png`} /> <br />
<br /> Itt kattints a Dashboard-ra.
Itt kattints a Dashboard-ra. </li>
</li> <li>
<li> Keresd meg a scriptet, majd kattints :
Keresd meg a scriptet, majd kattints : <br />
<br /> <img className={'manual_img'} src={`img/faq/siteadd-2.png`} />
<img className={'manual_img'} src={`img/faq/siteadd-2.png`} /> </li>
</li> <li>
<li> A felugró szerkesztőben keresd meg a következő sorokat:
A felugró szerkesztőben keresd meg a következő sorokat: <br />
<br /> <img className={'manual_img'} src={`img/faq/siteadd-3.png`} />
<img className={'manual_img'} src={`img/faq/siteadd-3.png`} /> </li>
</li> <li>
<li> Itt az egyik <i>@match ...</i> sor után egy új sorban írd be az
Itt az egyik <i>@match ...</i> sor után egy új sorban írd be az egyetemed moodle oldalának címét. Ha ez a cím pl.:{' '}
egyetemed moodle oldalának címét. Ha ez a cím pl.:{' '} <i>https://moodle.egyetem.hu/main/akármi</i>, akkor a következőre írd
<i>https://moodle.egyetem.hu/main/akármi</i>, akkor a következőre írd át: <i>https://moodle.egyetem.hu/*</i>. Fenti képen látsz néhány
át: <i>https://moodle.egyetem.hu/*</i>. Fenti képen látsz néhány példát. <i>A {'"*"'} a végén fontos!</i>
példát. <i>A {'"*"'} a végén fontos!</i> </li>
</li> <li>
<li> Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól
Ezután mentsd el (ctrl + s, vagy file {'->'} save). Ha minden jól ment, akkor elég frissíteni a moodle oldalát, és a script futni fog
ment, akkor elég frissíteni a moodle oldalát, és a script futni fog rajta. Ezek után azon az oldalon amit beírtál meg kell jelennie a
rajta. Ezek után azon az oldalon amit beírtál meg kell jelennie a Tampermonkey menüjében is:
Tampermonkey menüjében is: <br />
<br /> <img className={'manual_img'} src={`img/faq/siteadd-4.png`} />
<img className={'manual_img'} src={`img/faq/siteadd-4.png`} /> </li>
</li> <li>
<li> Ha a tesztek közben mégsem megy, akkor ellenőrizd, hogy a beírt moodle
Ha a tesztek közben mégsem megy, akkor ellenőrizd, hogy a beírt moodle cím egyezik-e a teszt közbenivel. Ha kell egy kis segítség, kérdésed
cím egyezik-e a teszt közbenivel. Ha kell egy kis segítség, kérdésed van, nem működik valami, vagy éppen működik, de alapból nincs
van, nem működik valami, vagy éppen működik, de alapból nincs hozzáadva:{' '}
hozzáadva:{' '} <Link href="/contact">
<Link href="/contact"> írj a kapcsolat oldalon!
<a>írj a kapcsolat oldalon!</a> </Link>
</Link> </li>
</li> </ul>
</ul> </>;
</>
)
} }
const pages = { const pages = {

View file

@ -1,6 +1,5 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import { useQuery } from 'react-query' import { useQuery } from 'react-query'
import fetch from 'unfetch'
import Head from 'next/head' import Head from 'next/head'
import LoadingIndicator from '../components/LoadingIndicator' import LoadingIndicator from '../components/LoadingIndicator'

View file

@ -1,5 +1,4 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import Link from 'next/link' import Link from 'next/link'
import Header from '../components/header' import Header from '../components/header'
@ -110,7 +109,7 @@ export default function PwRequest({ globalData, globalState, setGlobalState }) {
ha ugyan az a felhasználó több helyen is belépve marad. A ha ugyan az a felhasználó több helyen is belépve marad. A
jelszavakról bővebben a{' '} jelszavakról bővebben a{' '}
<Link href="/faq?tab=pw"> <Link href="/faq?tab=pw">
<a>GYIK</a> GYIK
</Link>{' '} </Link>{' '}
vonatkozó részében olvashatsz. vonatkozó részében olvashatsz.
</p> </p>
@ -192,5 +191,5 @@ export default function PwRequest({ globalData, globalState, setGlobalState }) {
</div> </div>
</center> </center>
</div> </div>
) );
} }

View file

@ -1,5 +1,4 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import Header from '../components/header' import Header from '../components/header'
import LoadingIndicator from '../components/LoadingIndicator' import LoadingIndicator from '../components/LoadingIndicator'

View file

@ -62,7 +62,7 @@ export default function Script() {
})} })}
<li> <li>
<Link href="/faq?tab=addsite"> <Link href="/faq?tab=addsite">
<a>új oldal hozzáadásának menete itt</a> új oldal hozzáadásának menete itt
</Link> </Link>
</li> </li>
</ul> </ul>
@ -103,11 +103,11 @@ export default function Script() {
Ha be vagy jelentkezve, akkor a teszt oldalakon a megoldásokat Ha be vagy jelentkezve, akkor a teszt oldalakon a megoldásokat
kellene látnod egy felugró ablakban felül. Ha nem, akkor{' '} kellene látnod egy felugró ablakban felül. Ha nem, akkor{' '}
<Link href="/faq"> <Link href="/faq">
<a>GYIK</a> GYIK
</Link> </Link>
-be olvass bele, vagy{' '} -be olvass bele, vagy{' '}
<Link href="/contact"> <Link href="/contact">
<a>írj üzenetet mi nem működik</a> írj üzenetet mi nem működik
</Link> </Link>
</li> </li>
</ol> </ol>
@ -144,7 +144,7 @@ export default function Script() {
<ul> <ul>
<li> <li>
<Link href="/allQuestions"> <Link href="/allQuestions">
<a>Itt elérhető online az összes kérdés</a> Itt elérhető online az összes kérdés
</Link>{' '} </Link>{' '}
ha esetleg a script valamiért nem működne. ha esetleg a script valamiért nem működne.
</li> </li>
@ -161,5 +161,5 @@ export default function Script() {
</ul> </ul>
</div> </div>
</div> </div>
) );
} }

View file

@ -1,3 +1,4 @@
import React from 'react'
import styles from './thanks.module.css' import styles from './thanks.module.css'
import constants from '../constants.json' import constants from '../constants.json'
import Head from 'next/head' import Head from 'next/head'

View file

@ -476,19 +476,19 @@ export default function UserFiles({
Törlés Törlés
</div> </div>
) : ( ) : (
<Link href={`/chat?user=${user}`}> <Link
<a href={`/chat?user=${user}`}
title={`Chat #${user}-el`} title={`Chat #${user}-el`}
onClick={(e) => { onClick={(e) => {
e.stopPropagation() e.stopPropagation()
}} }}
className={'userId'} className={'userId'}>
>{`#${user}`}</a> {`#${user}`}
</Link> </Link>
))} ))}
</div> </div>
</div> </div>
) );
})} })}
</> </>
) : ( ) : (
@ -513,7 +513,7 @@ export default function UserFiles({
<LoadingIndicator /> <LoadingIndicator />
)} )}
</div> </div>
) );
} }
return ( return (
@ -536,7 +536,7 @@ export default function UserFiles({
</b>{' '} </b>{' '}
Ha valami nem idevalót látsz, azt a{' '} Ha valami nem idevalót látsz, azt a{' '}
<Link href="/contact"> <Link href="/contact">
<a>Kapcsolat</a> Kapcsolat
</Link>{' '} </Link>{' '}
oldalon jelezd kérlek. Tudatos károkozásért ban jár. oldalon jelezd kérlek. Tudatos károkozásért ban jár.
</div> </div>
@ -602,5 +602,5 @@ export default function UserFiles({
</Modal> </Modal>
)} )}
</div> </div>
) );
} }