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",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
}
|
||||
}
|
||||
|
@ -118,6 +118,7 @@ export function cleanServiceGroups(groups) {
|
||||
container,
|
||||
currency, // coinmarketcap widget
|
||||
symbols,
|
||||
inboxTag, // paperlessngx widget
|
||||
} = cleanedService.widget;
|
||||
|
||||
cleanedService.widget = {
|
||||
@ -130,6 +131,8 @@ export function cleanServiceGroups(groups) {
|
||||
if (currency) cleanedService.widget.currency = currency;
|
||||
if (symbols) cleanedService.widget.symbols = symbols;
|
||||
|
||||
if (inboxTag) cleanedService.widget.inboxTag = inboxTag;
|
||||
|
||||
if (type === "docker") {
|
||||
if (server) cleanedService.widget.server = server;
|
||||
if (container) cleanedService.widget.container = container;
|
||||
|
@ -23,6 +23,7 @@ const components = {
|
||||
nzbget: dynamic(() => import("./nzbget/component")),
|
||||
ombi: dynamic(() => import("./ombi/component")),
|
||||
overseerr: dynamic(() => import("./overseerr/component")),
|
||||
paperlessngx: dynamic(() => import("./paperlessngx/component")),
|
||||
pihole: dynamic(() => import("./pihole/component")),
|
||||
plex: dynamic(() => import("./plex/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 ombi from "./ombi/widget";
|
||||
import overseerr from "./overseerr/widget";
|
||||
import paperlessngx from "./paperlessngx/widget";
|
||||
import pihole from "./pihole/widget";
|
||||
import plex from "./plex/widget";
|
||||
import portainer from "./portainer/widget";
|
||||
@ -63,6 +64,7 @@ const widgets = {
|
||||
nzbget,
|
||||
ombi,
|
||||
overseerr,
|
||||
paperlessngx,
|
||||
pihole,
|
||||
plex,
|
||||
portainer,
|
||||
|
Loading…
x
Reference in New Issue
Block a user