diff --git a/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.html b/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.html index 8fae1e023..389d7ab00 100644 --- a/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.html +++ b/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.html @@ -33,12 +33,24 @@

routerLink="/settings/addons" data-test-addon-cancel-button > - + @if (addonTypeString() === AddonType.REDIRECT) { + + } @else { + + } diff --git a/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.ts b/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.ts index 26010038c..48b9066cc 100644 --- a/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.ts +++ b/src/app/features/settings/settings-addons/components/connect-addon/connect-addon.component.ts @@ -119,6 +119,22 @@ export class ConnectAddonComponent { }); } + goToService() { + if (!this.redirectUrl()) return; + + const newWindow = window.open( + this.redirectUrl()!.toString(), + '_blank', + 'popup,width=600,height=600,scrollbars=yes,resizable=yes' + ); + if (newWindow) { + this.router.navigate([`${this.baseUrl()}/addons`]); + newWindow.focus(); + } else { + this.toastService.showError('addons.redirect.popUpError'); + } + } + private startOauthFlow(createdAddon: AuthorizedAccountModel): void { this.addonAuthUrl.set(createdAddon.authUrl!); window.open(createdAddon.authUrl!, '_blank'); diff --git a/src/app/shared/helpers/addon-type.helper.ts b/src/app/shared/helpers/addon-type.helper.ts index b3a684027..6dbf1d274 100644 --- a/src/app/shared/helpers/addon-type.helper.ts +++ b/src/app/shared/helpers/addon-type.helper.ts @@ -48,6 +48,8 @@ export function getAddonTypeString(addon: AddonModel | AuthorizedAccountModel | return AddonType.STORAGE; } else if (isLinkAddon(addon)) { return AddonType.LINK; + } else if (isRedirectAddon(addon)) { + return AddonType.REDIRECT; } else { return AddonType.CITATION; }