Custom Chapter Naming Scheme

https://github.com/C9Glax/tranga/issues/92
This commit is contained in:
glax 2025-03-29 20:34:09 +01:00
parent e3ad70c0a9
commit b0cbb416d6
3 changed files with 18 additions and 0 deletions

View File

@ -58,4 +58,12 @@ export default class BackendSettings {
static async UpdateAprilFoolsToggle(apiUri: string, value: boolean) {
return patchData(`${apiUri}/v2/Settings/AprilFoolsMode`, value);
}
static async GetChapterNamingScheme(apiUri: string) : Promise<string> {
return getData(`${apiUri}/v2/Settings/ChapterNamingScheme`).then((state) => state as unknown as string);
}
static async UpdateChapterNamingScheme(apiUri: string, value: string) {
return patchData(`${apiUri}/v2/Settings/ChapterNamingScheme`, value);
}
}

View File

@ -26,6 +26,7 @@ export default function Settings({ backendConnected, apiUri, frontendSettings, s
const [notificationConnectors, setNotificationConnectors] = useState<INotificationConnector[]>([]);
const [mangaConnectors,setMangaConnectors] = useState<IMangaConnector[]>([]);
const [localLibraries, setLocalLibraries] = useState<ILocalLibrary[]>([]);
const [chapterNamingScheme, setChapterNamingScheme] = useState<string>("");
useEffect(() => {
if(!backendConnected)
@ -74,6 +75,14 @@ export default function Settings({ backendConnected, apiUri, frontendSettings, s
<h3>Default Job-Interval</h3>
<input type="time" min="00:30" max="23:59" defaultValue={dateToStr(new Date(frontendSettings.jobInterval))} onChange={(e) => setFrontendSettings({...frontendSettings, jobInterval: new Date(e.currentTarget.valueAsNumber-60*60*1000) ?? frontendSettings.jobInterval})}/>
</div>
<div className={"settings-chapterNamingScheme"}>
<h3>Chapter Naming-Scheme</h3>
<input type={"text"} placeholder={backendSettings?.chapterNamingScheme} onChange={(e) => setChapterNamingScheme(e.target.value)} />
<button type={"button"} onClick={() => {
setLoadingBackend(true);
BackendSettings.UpdateChapterNamingScheme(apiUri, chapterNamingScheme).finally(() => setLoadingBackend(false));
}}>Submit</button>
</div>
<div className="settings-bwimages">
<h3>B/W Images</h3>
<Toggle defaultChecked={backendSettings ? backendSettings.bwImages : false} disabled={backendSettings ? false : !loadingBackend}

View File

@ -14,4 +14,5 @@ export default interface IBackendSettings {
compression: number;
bwImages: boolean;
startNewJobTimeoutMs: number;
chapterNamingScheme: string;
}