diff --git a/frontend/src/app/components/branding/branding.component.css b/frontend/src/app/components/branding/branding.component.css index ae156a034..61a756909 100644 --- a/frontend/src/app/components/branding/branding.component.css +++ b/frontend/src/app/components/branding/branding.component.css @@ -171,3 +171,45 @@ background-color: var(--color-accentedPalette-700); } } + +.upgrade-required { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 48px 24px; + border: 1px solid var(--color-primaryPalette-100); + height: fit-content; +} + +@media (prefers-color-scheme: dark) { + .upgrade-required { + border-color: var(--color-primaryPalette-700); + } +} + +.upgrade-required__icon { + font-size: 64px; + width: 64px; + height: 64px; + color: rgba(0, 0, 0, 0.38); + margin-bottom: 24px; +} + +@media (prefers-color-scheme: dark) { + .upgrade-required__icon { + color: rgba(255, 255, 255, 0.38); + } +} + +.upgrade-required__description { + color: rgba(0, 0, 0, 0.64); + margin-bottom: 24px; + max-width: 400px; +} + +@media (prefers-color-scheme: dark) { + .upgrade-required__description { + color: rgba(255, 255, 255, 0.7); + } +} diff --git a/frontend/src/app/components/branding/branding.component.html b/frontend/src/app/components/branding/branding.component.html index 4cce16f50..97b4f15de 100644 --- a/frontend/src/app/components/branding/branding.component.html +++ b/frontend/src/app/components/branding/branding.component.html @@ -12,9 +12,9 @@
+ Upgrade to enable SAML Single Sign-On for your organization. +
+ + Upgrade to Enterprise + +Configure SAML Single Sign-On for your organization.
diff --git a/frontend/src/app/components/sso/sso.component.spec.ts b/frontend/src/app/components/sso/sso.component.spec.ts index 3380fbb92..510354fc1 100644 --- a/frontend/src/app/components/sso/sso.component.spec.ts +++ b/frontend/src/app/components/sso/sso.component.spec.ts @@ -16,7 +16,7 @@ describe('SsoComponent', () => { name: 'Test Company', address: {}, portal_link: '', - subscriptionLevel: 'FREE_PLAN', + subscriptionLevel: 'ENTERPRISE_PLAN', connections: [], invitations: [], is_payment_method_added: false, diff --git a/frontend/src/app/components/sso/sso.component.ts b/frontend/src/app/components/sso/sso.component.ts index 8cf2f4925..5f63d544b 100644 --- a/frontend/src/app/components/sso/sso.component.ts +++ b/frontend/src/app/components/sso/sso.component.ts @@ -10,6 +10,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; import { Title } from '@angular/platform-browser'; import { SamlConfig, Company } from 'src/app/models/company'; +import { SubscriptionPlans } from 'src/app/models/user'; import { CompanyService } from 'src/app/services/company.service'; import { AlertComponent } from '../ui-components/alert/alert.component'; import { ProfileSidebarComponent } from '../profile/profile-sidebar/profile-sidebar.component'; @@ -36,6 +37,7 @@ import { PlaceholderSsoComponent } from '../skeletons/placeholder-sso/placeholde }) export class SsoComponent implements OnInit { public company: Company = null; + public hasEnterprisePlan: boolean = false; public samlConfigInitial: SamlConfig = { name: '', @@ -71,9 +73,14 @@ export class SsoComponent implements OnInit { this._company.fetchCompany().subscribe(res => { this.company = res; - this._company.fetchSamlConfiguration(res.id).subscribe((config) => { - if (config.length) this.samlConfig = config[0]; - }); + this.hasEnterprisePlan = res.subscriptionLevel === SubscriptionPlans.enterprise || + res.subscriptionLevel === SubscriptionPlans.enterpriseAnnual; + + if (this.hasEnterprisePlan) { + this._company.fetchSamlConfiguration(res.id).subscribe((config) => { + if (config.length) this.samlConfig = config[0]; + }); + } }); } diff --git a/frontend/src/app/components/upgrade/upgrade.component.css b/frontend/src/app/components/upgrade/upgrade.component.css index 93eb52c4a..56c7feab2 100644 --- a/frontend/src/app/components/upgrade/upgrade.component.css +++ b/frontend/src/app/components/upgrade/upgrade.component.css @@ -28,6 +28,77 @@ width: clamp(300px, 90%, 840px); } +.current-plan-banner { + display: flex; + align-items: center; + justify-content: space-between; + padding: 20px 24px; + background: linear-gradient(135deg, var(--color-primaryPalette-50) 0%, var(--color-primaryPalette-100) 100%); + border-radius: 12px; + margin-bottom: 32px; +} + +@media (prefers-color-scheme: dark) { + .current-plan-banner { + background: linear-gradient(135deg, var(--color-primaryPalette-900) 0%, var(--color-primaryPalette-800) 100%); + } +} + +.current-plan-info { + display: flex; + flex-direction: column; + gap: 4px; +} + +.current-plan-label { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + color: rgba(0, 0, 0, 0.64); +} + +@media (prefers-color-scheme: dark) { + .current-plan-label { + color: rgba(255, 255, 255, 0.64); + } +} + +.current-plan-name { + font-size: 24px; + font-weight: 500; + color: var(--color-primaryPalette-700); +} + +@media (prefers-color-scheme: dark) { + .current-plan-label { + color: rgba(255, 255, 255, 0.7); + } + + .current-plan-name { + color: #fff; + } +} + +.payment-settings-button { + display: flex; + align-items: center; + gap: 8px; +} + +.payment-settings-button mat-icon { + font-size: 20px; + width: 20px; + height: 20px; +} + +@media (width <= 600px) { + .current-plan-banner { + flex-direction: column; + align-items: flex-start; + gap: 16px; + } +} + .header { display: grid; grid-template-columns: 0 7fr repeat(3, 6fr); diff --git a/frontend/src/app/components/upgrade/upgrade.component.html b/frontend/src/app/components/upgrade/upgrade.component.html index 6b55fd8ba..cc638d404 100644 --- a/frontend/src/app/components/upgrade/upgrade.component.html +++ b/frontend/src/app/components/upgrade/upgrade.component.html @@ -1,16 +1,30 @@