Skip to content
This repository was archived by the owner on Jan 8, 2024. It is now read-only.

Commit 31db393

Browse files
committed
ui/project: force refresh after settings change
This is rather inelegant but the [RouterService.refresh] method is not yet available to us. [RouterService.refresh]: emberjs/rfcs#631
1 parent fe67538 commit 31db393

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

ui/app/components/app-form/project-repository-settings.ts

+12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import Ember from 'ember';
12
import Component from '@glimmer/component';
23
import { inject as service } from '@ember/service';
34
import RouterService from '@ember/routing/router-service';
@@ -8,6 +9,7 @@ import { tracked } from '@glimmer/tracking';
89
import { action } from '@ember/object';
910
import { Project, Job } from 'waypoint-pb';
1011
import parseUrl from 'parse-url';
12+
import { later } from '@ember/runloop';
1113

1214
const FORMAT = {
1315
HCL: 0,
@@ -223,6 +225,16 @@ export default class AppFormProjectRepositorySettings extends Component<ProjectS
223225
try {
224226
await this.api.upsertProject(this.project, this.authCase);
225227
this.flashMessages.success('Settings saved');
228+
229+
// Refresh project route to get the latest state of the InitOp (if any)
230+
this.router.refresh('workspace.projects.project');
231+
232+
if (!Ember.testing) {
233+
// Optimistically refresh again a couple of seconds later, by which time
234+
// the InitOp is likely to have completed
235+
later(this.router, 'refresh', 'workspace.projects.project', 2000);
236+
}
237+
226238
this.router.transitionTo('workspace.projects.project', this.project.name);
227239
} catch (err) {
228240
this.flashMessages.error('Failed to save Settings', { content: err.message, sticky: true });

ui/app/services/poll-model.ts

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ export default class PollModelService extends Service {
3535
taskFor(this.poll).cancelAll();
3636
}
3737

38+
expedite(): void {
39+
this.route?.refresh();
40+
}
41+
3842
@task({
3943
restartable: true,
4044
maxConcurrency: 1,

0 commit comments

Comments
 (0)