Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fbdc7ab10 | ||
|
|
3e8a8fdfa1 |
No files matched your search
@@ -0,0 +1,9 @@
|
|||||||
|
CREATE TABLE `widget_secret` (
|
||||||
|
`item_id` varchar(64) NOT NULL,
|
||||||
|
`kind` varchar(64) NOT NULL,
|
||||||
|
`value` text NOT NULL,
|
||||||
|
`updated_at` timestamp NOT NULL,
|
||||||
|
CONSTRAINT `widget_secret_item_id_kind_pk` PRIMARY KEY(`item_id`,`kind`)
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
ALTER TABLE `widget_secret` ADD CONSTRAINT `widget_secret_item_id_item_id_fk` FOREIGN KEY (`item_id`) REFERENCES `item`(`id`) ON DELETE cascade ON UPDATE no action;
|
||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -295,6 +295,13 @@
|
|||||||
"when": 1780764500000,
|
"when": 1780764500000,
|
||||||
"tag": "0041_merge_custom_widget_url",
|
"tag": "0041_merge_custom_widget_url",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 42,
|
||||||
|
"version": "5",
|
||||||
|
"when": 1783176100870,
|
||||||
|
"tag": "0042_add_widget_secret",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
CREATE TABLE "widget_secret" (
|
||||||
|
"item_id" varchar(64) NOT NULL,
|
||||||
|
"kind" varchar(64) NOT NULL,
|
||||||
|
"value" text NOT NULL,
|
||||||
|
"updated_at" timestamp NOT NULL,
|
||||||
|
CONSTRAINT "widget_secret_item_id_kind_pk" PRIMARY KEY("item_id","kind")
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
ALTER TABLE "widget_secret" ADD CONSTRAINT "widget_secret_item_id_item_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."item"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -57,6 +57,13 @@
|
|||||||
"when": 1780764500000,
|
"when": 1780764500000,
|
||||||
"tag": "0007_merge_custom_widget_url",
|
"tag": "0007_merge_custom_widget_url",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 8,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1783176100870,
|
||||||
|
"tag": "0008_add_widget_secret",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
CREATE TABLE `widget_secret` (
|
||||||
|
`item_id` text NOT NULL,
|
||||||
|
`kind` text NOT NULL,
|
||||||
|
`value` text NOT NULL,
|
||||||
|
`updated_at` integer NOT NULL,
|
||||||
|
PRIMARY KEY(`item_id`, `kind`),
|
||||||
|
FOREIGN KEY (`item_id`) REFERENCES `item`(`id`) ON UPDATE no action ON DELETE cascade
|
||||||
|
);
|
||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -281,6 +281,13 @@
|
|||||||
"when": 1780764500000,
|
"when": 1780764500000,
|
||||||
"tag": "0039_merge_custom_widget_url",
|
"tag": "0039_merge_custom_widget_url",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 40,
|
||||||
|
"version": "6",
|
||||||
|
"when": 1783176100870,
|
||||||
|
"tag": "0040_add_widget_secret",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -50,6 +50,7 @@ import {
|
|||||||
} from "@homarr/definitions";
|
} from "@homarr/definitions";
|
||||||
import { findBestIconMatch, IconPicker } from "@homarr/forms-collection";
|
import { findBestIconMatch, IconPicker } from "@homarr/forms-collection";
|
||||||
import { createModal, useModalAction } from "@homarr/modals";
|
import { createModal, useModalAction } from "@homarr/modals";
|
||||||
|
import { showErrorNotification } from "@homarr/notifications";
|
||||||
import { useScopedI18n } from "@homarr/translation/client";
|
import { useScopedI18n } from "@homarr/translation/client";
|
||||||
import { MaskedImage } from "@homarr/ui";
|
import { MaskedImage } from "@homarr/ui";
|
||||||
|
|
||||||
@@ -269,8 +270,24 @@ const providersWithAuth: ReleaseProviderKind[] = [
|
|||||||
const ProviderTokensSection = ({ itemId, repositories }: { itemId: string; repositories: ReleasesRepository[] }) => {
|
const ProviderTokensSection = ({ itemId, repositories }: { itemId: string; repositories: ReleasesRepository[] }) => {
|
||||||
const tRepository = useScopedI18n("widget.releases.option.repositories");
|
const tRepository = useScopedI18n("widget.releases.option.repositories");
|
||||||
const { data: configuredKinds = [], refetch } = clientApi.widget.secrets.getConfiguredKinds.useQuery({ itemId });
|
const { data: configuredKinds = [], refetch } = clientApi.widget.secrets.getConfiguredKinds.useQuery({ itemId });
|
||||||
const setSecret = clientApi.widget.secrets.setSecret.useMutation({ onSuccess: () => refetch() });
|
const setSecret = clientApi.widget.secrets.setSecret.useMutation({
|
||||||
const deleteSecret = clientApi.widget.secrets.deleteSecret.useMutation({ onSuccess: () => refetch() });
|
onSuccess: () => refetch(),
|
||||||
|
onError: (error) => {
|
||||||
|
showErrorNotification({
|
||||||
|
title: "Failed to save token",
|
||||||
|
message: error.message,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const deleteSecret = clientApi.widget.secrets.deleteSecret.useMutation({
|
||||||
|
onSuccess: () => refetch(),
|
||||||
|
onError: (error) => {
|
||||||
|
showErrorNotification({
|
||||||
|
title: "Failed to delete token",
|
||||||
|
message: error.message,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const authProviders = useMemo(() => {
|
const authProviders = useMemo(() => {
|
||||||
const usedProviders = repositories.map((r) => r.provider).filter((p): p is ReleaseProviderKind => p !== undefined);
|
const usedProviders = repositories.map((r) => r.provider).filter((p): p is ReleaseProviderKind => p !== undefined);
|
||||||
|
|||||||
Reference in new issue
Block a user