mirror of
https://github.com/C9Glax/tranga-website.git
synced 2025-03-04 07:55:49 +01:00
Add GetStandbyJobs call and display to footer.
Fix IJob to represent possible return values.
This commit is contained in:
parent
96b5163486
commit
c1d333e002
@ -2,17 +2,19 @@ import React, {useEffect} from 'react';
|
|||||||
import '../styles/footer.css';
|
import '../styles/footer.css';
|
||||||
import {Job} from './Job';
|
import {Job} from './Job';
|
||||||
import Icon from '@mdi/react';
|
import Icon from '@mdi/react';
|
||||||
import { mdiRun, mdiCounter, mdiEyeCheck } from '@mdi/js';
|
import { mdiRun, mdiCounter, mdiEyeCheck, mdiTrayFull } from '@mdi/js';
|
||||||
|
|
||||||
export default function Footer(){
|
export default function Footer({showQueue} : {showQueue(): void}){
|
||||||
const [MonitoringJobsCount, setMonitoringJobsCount] = React.useState(0);
|
const [MonitoringJobsCount, setMonitoringJobsCount] = React.useState(0);
|
||||||
const [AllJobsCount, setAllJobsCount] = React.useState(0);
|
const [AllJobsCount, setAllJobsCount] = React.useState(0);
|
||||||
const [RunningJobsCount, setRunningJobsCount] = React.useState(0);
|
const [RunningJobsCount, setRunningJobsCount] = React.useState(0);
|
||||||
|
const [StandbyJobsCount, setStandbyJobsCount] = React.useState(0);
|
||||||
|
|
||||||
function UpdateBackendState(){
|
function UpdateBackendState(){
|
||||||
Job.GetMonitoringJobs().then((jobs) => setMonitoringJobsCount(jobs.length));
|
Job.GetMonitoringJobs().then((jobs) => setMonitoringJobsCount(jobs.length));
|
||||||
Job.GetAllJobs().then((jobs) => setAllJobsCount(jobs.length));
|
Job.GetAllJobs().then((jobs) => setAllJobsCount(jobs.length));
|
||||||
Job.GetRunningJobs().then((jobs) => setRunningJobsCount(jobs.length));
|
Job.GetRunningJobs().then((jobs) => setRunningJobsCount(jobs.length));
|
||||||
|
Job.GetStandbyJobs().then((jobs) => setStandbyJobsCount(jobs.length));
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -22,7 +24,8 @@ export default function Footer(){
|
|||||||
return (
|
return (
|
||||||
<footer>
|
<footer>
|
||||||
<div><Icon path={mdiEyeCheck} size={1}/> <span>{MonitoringJobsCount}</span></div>
|
<div><Icon path={mdiEyeCheck} size={1}/> <span>{MonitoringJobsCount}</span></div>
|
||||||
<div><Icon path={mdiRun} size={1} /> <span>{RunningJobsCount}</span></div>
|
<div onClick={showQueue} className="hoverHand"><Icon path={mdiTrayFull} size={1}/> <span>{StandbyJobsCount}</span></div>
|
||||||
|
<div onClick={showQueue} className="hoverHand"><Icon path={mdiRun} size={1}/> <span>{RunningJobsCount}</span></div>
|
||||||
<div><Icon path={mdiCounter} size={1}/> <span>{AllJobsCount}</span></div>
|
<div><Icon path={mdiCounter} size={1}/> <span>{AllJobsCount}</span></div>
|
||||||
<p id="madeWith">Made with Blåhaj 🦈</p>
|
<p id="madeWith">Made with Blåhaj 🦈</p>
|
||||||
</footer>)
|
</footer>)
|
||||||
|
@ -37,6 +37,17 @@ export class Job
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async GetStandbyJobs(): Promise<string[]> {
|
||||||
|
console.info("Getting all standby Jobs");
|
||||||
|
return getData("http://127.0.0.1:6531/v2/Jobs/Standby")
|
||||||
|
.then((json) => {
|
||||||
|
console.info("Got all standby Jobs");
|
||||||
|
const ret = json as string[];
|
||||||
|
console.debug(ret);
|
||||||
|
return (ret);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static async GetMonitoringJobs(): Promise<string[]> {
|
static async GetMonitoringJobs(): Promise<string[]> {
|
||||||
console.info("Getting all monitoring Jobs");
|
console.info("Getting all monitoring Jobs");
|
||||||
return getData("http://127.0.0.1:6531/v2/Jobs/Monitoring")
|
return getData("http://127.0.0.1:6531/v2/Jobs/Monitoring")
|
||||||
|
@ -22,7 +22,8 @@ export default function MonitorJobsList({onStartSearch, onJobsChanged} : {onStar
|
|||||||
MonitoringJobs.forEach(job => {
|
MonitoringJobs.forEach(job => {
|
||||||
if(AllManga.find(manga => manga.internalId == job.mangaInternalId))
|
if(AllManga.find(manga => manga.internalId == job.mangaInternalId))
|
||||||
return;
|
return;
|
||||||
Manga.GetMangaById(job.mangaInternalId).then((manga: IManga) => setAllManga([...AllManga, manga]));
|
Manga.GetMangaById(job.mangaInternalId != undefined ? job.mangaInternalId : job.chapter != undefined ? job.chapter.parentManga.internalId : "").
|
||||||
|
then((manga: IManga) => setAllManga([...AllManga, manga]));
|
||||||
});
|
});
|
||||||
}, [MonitoringJobs]);
|
}, [MonitoringJobs]);
|
||||||
|
|
||||||
|
@ -1,16 +1,28 @@
|
|||||||
import IMangaConnector from "./IMangaConnector";
|
import IMangaConnector from "./IMangaConnector";
|
||||||
import IProgressToken from "./IProgressToken";
|
import IProgressToken from "./IProgressToken";
|
||||||
|
import IChapter from "./IChapter";
|
||||||
|
|
||||||
export default interface IJob{
|
export default interface IJob{
|
||||||
jobType: number;
|
|
||||||
mangaInternalId: string;
|
|
||||||
translatedLanguage: string;
|
|
||||||
progressToken: IProgressToken;
|
progressToken: IProgressToken;
|
||||||
recurring: boolean;
|
recurring: boolean;
|
||||||
recurrenceTime: string;
|
recurrenceTime: string;
|
||||||
lastExecution: Date;
|
lastExecution: Date;
|
||||||
nextExecution: Date;
|
nextExecution: Date;
|
||||||
id: string;
|
id: string;
|
||||||
|
jobType: number;
|
||||||
parentJobId: string | null;
|
parentJobId: string | null;
|
||||||
mangaConnector: IMangaConnector;
|
mangaConnector: IMangaConnector;
|
||||||
|
mangaInternalId: string | undefined; //only on DownloadNewChapters
|
||||||
|
translatedLanguage: string | undefined; //only on DownloadNewChapters
|
||||||
|
chapter: IChapter | undefined; //only on DownloadChapter
|
||||||
|
}
|
||||||
|
|
||||||
|
export function JobTypeFromNumber(n: number): string {
|
||||||
|
switch(n) {
|
||||||
|
case 0: return "Download Chapter";
|
||||||
|
case 1: return "Download New Chapters";
|
||||||
|
case 2: return "Update Metadata";
|
||||||
|
case 3: return "Monitor";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
}
|
}
|
@ -34,3 +34,7 @@ footer div > * {
|
|||||||
margin: 0 2px;
|
margin: 0 2px;
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer .hoverHand {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user