mirror of
https://github.com/karl0ss/homepage.git
synced 2025-05-04 14:33:41 +01:00
Added paperless-ngx widget
This commit is contained in:
parent
69af4286a9
commit
a677a507b8
@ -349,5 +349,9 @@
|
|||||||
"passed": "Passed",
|
"passed": "Passed",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"unknown": "Unknown"
|
"unknown": "Unknown"
|
||||||
|
},
|
||||||
|
"paperlessngx": {
|
||||||
|
"inbox": "Inbox",
|
||||||
|
"total": "Total"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,6 +118,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
container,
|
container,
|
||||||
currency, // coinmarketcap widget
|
currency, // coinmarketcap widget
|
||||||
symbols,
|
symbols,
|
||||||
|
inboxTag, // paperlessngx widget
|
||||||
} = cleanedService.widget;
|
} = cleanedService.widget;
|
||||||
|
|
||||||
cleanedService.widget = {
|
cleanedService.widget = {
|
||||||
@ -129,6 +130,8 @@ export function cleanServiceGroups(groups) {
|
|||||||
|
|
||||||
if (currency) cleanedService.widget.currency = currency;
|
if (currency) cleanedService.widget.currency = currency;
|
||||||
if (symbols) cleanedService.widget.symbols = symbols;
|
if (symbols) cleanedService.widget.symbols = symbols;
|
||||||
|
|
||||||
|
if (inboxTag) cleanedService.widget.inboxTag = inboxTag;
|
||||||
|
|
||||||
if (type === "docker") {
|
if (type === "docker") {
|
||||||
if (server) cleanedService.widget.server = server;
|
if (server) cleanedService.widget.server = server;
|
||||||
|
@ -23,6 +23,7 @@ const components = {
|
|||||||
nzbget: dynamic(() => import("./nzbget/component")),
|
nzbget: dynamic(() => import("./nzbget/component")),
|
||||||
ombi: dynamic(() => import("./ombi/component")),
|
ombi: dynamic(() => import("./ombi/component")),
|
||||||
overseerr: dynamic(() => import("./overseerr/component")),
|
overseerr: dynamic(() => import("./overseerr/component")),
|
||||||
|
paperlessngx: dynamic(() => import("./paperlessngx/component")),
|
||||||
pihole: dynamic(() => import("./pihole/component")),
|
pihole: dynamic(() => import("./pihole/component")),
|
||||||
plex: dynamic(() => import("./plex/component")),
|
plex: dynamic(() => import("./plex/component")),
|
||||||
portainer: dynamic(() => import("./portainer/component")),
|
portainer: dynamic(() => import("./portainer/component")),
|
||||||
|
42
src/widgets/paperlessngx/component.jsx
Normal file
42
src/widgets/paperlessngx/component.jsx
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
export default function Component({ service }) {
|
||||||
|
const { widget } = service;
|
||||||
|
|
||||||
|
const { data: inboxData, error: inboxError } = useWidgetAPI(widget, "inbox",
|
||||||
|
{
|
||||||
|
query: `tag:${widget.inboxTag}`,
|
||||||
|
format: "json",
|
||||||
|
fields: "count"
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const { data: documentData, error: documentError } = useWidgetAPI(widget, "documents",
|
||||||
|
{
|
||||||
|
fields: "count",
|
||||||
|
format: "json",
|
||||||
|
});
|
||||||
|
|
||||||
|
if (inboxError || documentError) {
|
||||||
|
const finalError = inboxError ?? documentError;
|
||||||
|
return <Container error={finalError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inboxData || !documentData) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="paperlessngx.inbox" />
|
||||||
|
<Block label="paperlessngx.total" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="paperlessngx.inbox" value={inboxData.count} />
|
||||||
|
<Block label="paperlessngx.total" value={documentData.count} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
25
src/widgets/paperlessngx/widget.js
Normal file
25
src/widgets/paperlessngx/widget.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/api/{endpoint}",
|
||||||
|
proxyHandler: genericProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
"inbox": {
|
||||||
|
endpoint: "documents/",
|
||||||
|
params: ["format", "query", "fields"],
|
||||||
|
validate: [
|
||||||
|
"count"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"documents": {
|
||||||
|
endpoint: "documents/",
|
||||||
|
params: ["format", "fields"],
|
||||||
|
validate: [
|
||||||
|
"count"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
@ -18,6 +18,7 @@ import npm from "./npm/widget";
|
|||||||
import nzbget from "./nzbget/widget";
|
import nzbget from "./nzbget/widget";
|
||||||
import ombi from "./ombi/widget";
|
import ombi from "./ombi/widget";
|
||||||
import overseerr from "./overseerr/widget";
|
import overseerr from "./overseerr/widget";
|
||||||
|
import paperlessngx from "./paperlessngx/widget";
|
||||||
import pihole from "./pihole/widget";
|
import pihole from "./pihole/widget";
|
||||||
import plex from "./plex/widget";
|
import plex from "./plex/widget";
|
||||||
import portainer from "./portainer/widget";
|
import portainer from "./portainer/widget";
|
||||||
@ -63,6 +64,7 @@ const widgets = {
|
|||||||
nzbget,
|
nzbget,
|
||||||
ombi,
|
ombi,
|
||||||
overseerr,
|
overseerr,
|
||||||
|
paperlessngx,
|
||||||
pihole,
|
pihole,
|
||||||
plex,
|
plex,
|
||||||
portainer,
|
portainer,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user