Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export default async function FeatureFlagInclusionExclusionLogic(): Promise<void
const flag = await featureFlagService.create(featureFlagObject, user, new UpgradeLogger());

const featureFlagSegmentInclusion = {
flagId: flag.id,
id: flag.id,
listType: 'group',
enabled: true,
segment: {
Expand All @@ -38,7 +38,7 @@ export default async function FeatureFlagInclusionExclusionLogic(): Promise<void
};

const featureFlagSegmentExclusion = {
flagId: flag.id,
id: flag.id,
listType: 'individual',
enabled: true,
segment: {
Expand Down
39 changes: 3 additions & 36 deletions frontend/projects/upgrade/src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,49 +1,20 @@
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule, inject, provideAppInitializer } from '@angular/core';
import { NgModule } from '@angular/core';

import { SharedModule } from './shared/shared.module';
import { CoreModule } from './core/core.module';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { SimpleNotificationsModule } from 'angular2-notifications';
import { environment } from '../environments/environment';
import { ENV, Environment, RuntimeEnvironmentConfig } from '../environments/environment-types';
import { ENV } from '../environments/environment-types';
import { AuthModule } from './core/auth/auth.module';
import { provideImportServiceTypeAdapters } from './shared-standalone-component-lib/components/common-import-modal/common-import-type-adapters';

export const getEnvironmentConfig = (http: HttpClient, env: Environment) => {
// in non-prod build, all env vars can be provided on .environment.ts,
// so skip fetch
if (!environment.production || (environment.apiBaseUrl && environment.googleClientId)) {
return () => Promise.resolve();
}

// in a prod build, we currently need to fetch environment.json at runtime
// to provide apiBaseUr, googleClientId, featureFlagNavToggle, segmentsRefreshToggle and withinSubjectExperimentSupportToggle
return () =>
http
.get('/environment.json')
.toPromise()
.then((config: RuntimeEnvironmentConfig) => {
env.apiBaseUrl = config.endpointApi || config.apiBaseUrl;
env.googleClientId = config.gapiClientId || config.googleClientId;
env.featureFlagNavToggle = config.featureFlagNavToggle ?? env.featureFlagNavToggle ?? false;
env.segmentsRefreshToggle = config.segmentsRefreshToggle ?? env.segmentsRefreshToggle ?? false;
env.withinSubjectExperimentSupportToggle =
config.withinSubjectExperimentSupportToggle ?? env.withinSubjectExperimentSupportToggle ?? false;
env.errorLogsToggle = config.errorLogsToggle ?? env.errorLogsToggle ?? false;
env.metricAnalyticsExperimentDisplayToggle =
config.metricAnalyticsExperimentDisplayToggle ?? env.metricAnalyticsExperimentDisplayToggle ?? false;
})
.catch((error) => {
console.log({ error });
});
};

@NgModule({
declarations: [AppComponent],
bootstrap: [AppComponent],
Expand All @@ -69,10 +40,6 @@ export const getEnvironmentConfig = (http: HttpClient, env: Environment) => {
],
providers: [
{ provide: ENV, useValue: environment },
provideAppInitializer(() => {
const initializerFn = getEnvironmentConfig(inject(HttpClient), inject(ENV));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both inject() and provideAppInitializer() are now unused and can be removed from the imports

return initializerFn();
}),
provideHttpClient(withInterceptorsFromDi()),
...provideImportServiceTypeAdapters(),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ export class DashboardRootComponent implements OnInit {
text: 'global.experiment.title',
iconType: 'assignment',
},
{
path: ['/featureflags'],
text: 'feature-flags.title.text',
iconType: 'toggle_on',
},
{
path: ['/participants'],
text: 'global.experiment-user.title',
Expand All @@ -36,15 +41,7 @@ export class DashboardRootComponent implements OnInit {
},
];

constructor(
@Inject(ENV) private environment: Environment,
private authService: AuthService,
private versionService: VersionService
) {
if (this.environment.featureFlagNavToggle) {
this.addFeatureFlagsLink();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still need the addFeatureFlagsLink() method? Doesn't look like it was called from anywhere else?

}
}
constructor(private authService: AuthService, private versionService: VersionService) {}

logout() {
this.authService.setRedirectionUrl('/home');
Expand All @@ -54,12 +51,4 @@ export class DashboardRootComponent implements OnInit {
async ngOnInit() {
this.serverVersion = 'v' + (await this.versionService.getVersion());
}

addFeatureFlagsLink() {
this.routeLinks.splice(1, 0, {
path: ['/featureflags'],
text: 'feature-flags.title.text',
iconType: 'toggle_on',
});
}
}

This file was deleted.

6 changes: 0 additions & 6 deletions frontend/projects/upgrade/src/app/shared/shared.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ import { MatDialogModule } from '@angular/material/dialog';
import { MatStepperModule } from '@angular/material/stepper';
import { MatRadioModule } from '@angular/material/radio';
import { MatExpansionModule } from '@angular/material/expansion';
import { DevToolsModule } from '../../dev-tools/dev-tools.module';

import { SharedIconsComponent } from './components/shared-icons/shared-icons.component';
import { TruncatePipe } from './pipes/truncate.pipe';
import { ExperimentStatePipe } from './pipes/experiment-state.pipe';
Expand All @@ -42,8 +40,6 @@ import { QueryResultComponent } from './components/query-result/query-result.com
import { DeleteComponent } from './components/delete/delete.component';
import { MatConfirmDialogComponent } from './components/mat-confirm-dialog/mat-confirm-dialog.component';

import { environment } from '../../environments/environment';

@NgModule({
imports: [
CommonModule,
Expand Down Expand Up @@ -74,7 +70,6 @@ import { environment } from '../../environments/environment';
MatProgressSpinnerModule,
MatAutocompleteModule,
MatTreeModule,
environment.production ? [] : DevToolsModule,
],
declarations: [
SharedIconsComponent,
Expand Down Expand Up @@ -128,7 +123,6 @@ import { environment } from '../../environments/environment';
DeleteComponent,
SegmentStatusPipe,
MatConfirmDialogComponent,
environment.production ? [] : DevToolsModule,
],
})
export class SharedModule {}
11 changes: 0 additions & 11 deletions frontend/projects/upgrade/src/dev-tools/dev-tools.module.ts

This file was deleted.

17 changes: 0 additions & 17 deletions frontend/projects/upgrade/src/dev-tools/key-value-bubble/README.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading