mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-10-01 08:40:10 +00:00
Harvey Tindall
f8f5f35cc1
Discord, Email & Telegram can be enabled, although email is always enabled right now (will fix). Also apparently markdown hyperlinks don't work in Discord, eventually will implement something to convert them to embeds.
135 lines
3.1 KiB
TypeScript
135 lines
3.1 KiB
TypeScript
declare interface Modal {
|
|
modal: HTMLElement;
|
|
closeButton: HTMLSpanElement
|
|
show: () => void;
|
|
close: (event?: Event) => void;
|
|
toggle: () => void;
|
|
onopen: (f: () => void) => void;
|
|
onclose: (f: () => void) => void;
|
|
}
|
|
|
|
interface ArrayConstructor {
|
|
from(arrayLike: any, mapFn?, thisArg?): Array<any>;
|
|
}
|
|
|
|
declare interface Window {
|
|
URLBase: string;
|
|
modals: Modals;
|
|
cssFile: string;
|
|
availableProfiles: string[];
|
|
jfUsers: Array<Object>;
|
|
notificationsEnabled: boolean;
|
|
emailEnabled: boolean;
|
|
telegramEnabled: boolean;
|
|
discordEnabled: boolean;
|
|
ombiEnabled: boolean;
|
|
usernameEnabled: boolean;
|
|
token: string;
|
|
buttonWidth: number;
|
|
transitionEvent: string;
|
|
animationEvent: string;
|
|
tabs: Tabs;
|
|
invites: inviteList;
|
|
notifications: NotificationBox;
|
|
language: string;
|
|
lang: Lang;
|
|
langFile: {};
|
|
updater: updater;
|
|
}
|
|
|
|
declare interface Update {
|
|
version: string;
|
|
commit: string;
|
|
date: number;
|
|
description: string;
|
|
changelog: string;
|
|
link: string;
|
|
download_link?: string;
|
|
can_update: boolean;
|
|
}
|
|
|
|
declare interface updater extends Update {
|
|
checkForUpdates: (run?: (req: XMLHttpRequest) => void) => void;
|
|
updateAvailable: boolean;
|
|
update: Update;
|
|
}
|
|
|
|
declare interface Lang {
|
|
get: (sect: string, key: string) => string;
|
|
strings: (key: string) => string;
|
|
notif: (key: string) => string;
|
|
var: (sect: string, key: string, ...subs: string[]) => string;
|
|
quantity: (key: string, number: number) => string;
|
|
}
|
|
|
|
declare interface NotificationBox {
|
|
connectionError: () => void;
|
|
customError: (type: string, message: string) => void;
|
|
customPositive: (type: string, bold: string, message: string) => void;
|
|
customSuccess: (type: string, message: string) => void;
|
|
}
|
|
|
|
declare interface Tabs {
|
|
current: string;
|
|
tabs: Array<Tab>;
|
|
addTab: (tabID: string, preFunc?: () => void, postFunc?: () => void) => void;
|
|
switch: (tabID: string, noRun?: boolean) => void;
|
|
}
|
|
|
|
declare interface Tab {
|
|
tabID: string;
|
|
tabEl: HTMLDivElement;
|
|
buttonEl: HTMLSpanElement;
|
|
preFunc?: () => void;
|
|
postFunc?: () => void;
|
|
}
|
|
|
|
|
|
declare interface Modals {
|
|
about: Modal;
|
|
login: Modal;
|
|
addUser: Modal;
|
|
modifyUser: Modal;
|
|
deleteUser: Modal;
|
|
settingsRestart: Modal;
|
|
settingsRefresh: Modal;
|
|
ombiDefaults?: Modal;
|
|
profiles: Modal;
|
|
addProfile: Modal;
|
|
announce: Modal;
|
|
editor: Modal;
|
|
customizeEmails: Modal;
|
|
extendExpiry: Modal;
|
|
updateInfo: Modal;
|
|
telegram: Modal;
|
|
}
|
|
|
|
interface Invite {
|
|
code?: string;
|
|
expiresIn?: string;
|
|
remainingUses?: string;
|
|
email?: string;
|
|
usedBy?: { [name: string]: number };
|
|
created?: number;
|
|
notifyExpiry?: boolean;
|
|
notifyCreation?: boolean;
|
|
profile?: string;
|
|
label?: string;
|
|
userExpiry?: boolean;
|
|
userExpiryTime?: string;
|
|
}
|
|
|
|
interface inviteList {
|
|
empty: boolean;
|
|
invites: { [code: string]: Invite }
|
|
add: (invite: Invite) => void;
|
|
reload: () => void;
|
|
}
|
|
|
|
declare interface SubmitEvent extends Event {
|
|
submitter: HTMLInputElement;
|
|
}
|
|
|
|
declare var config: Object;
|
|
declare var modifiedConfig: Object;
|