Skip to content

Commit 8f56f5f

Browse files
committed
Auto merge of #1912 - kzys:fastboot-install, r=jtgeibel
Make /install work under FastBoot Will add nginx.conf change after #1907. Early feedback is welcome!
2 parents eea11cd + 976e8e8 commit 8f56f5f

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

app/routes/crate/docs.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import { inject as service } from '@ember/service';
33

44
export default Route.extend({
55
flashMessages: service(),
6+
redirector: service(),
67

78
redirect() {
89
let crate = this.modelFor('crate');
910

1011
let documentation = crate.get('documentation');
1112
if (documentation) {
12-
window.location = documentation;
13+
this.redirector.redirectTo(documentation);
1314
} else {
1415
// Redirect to the crate's main page and show a flash error if
1516
// no documentation is found

app/routes/crate/repo.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import { inject as service } from '@ember/service';
33

44
export default Route.extend({
55
flashMessages: service(),
6+
redirector: service(),
67

78
redirect() {
89
let crate = this.modelFor('crate');
910

1011
let repository = crate.get('repository');
1112
if (repository) {
12-
window.location = repository;
13+
this.redirector.redirectTo(repository);
1314
} else {
1415
// Redirect to the crate's main page and show a flash error if
1516
// no repository is found

app/routes/install.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import Route from '@ember/routing/route';
2+
import { inject as service } from '@ember/service';
23

34
export default Route.extend({
5+
redirector: service(),
6+
47
redirect() {
5-
window.location = 'https://doc.rust-lang.org/cargo/getting-started/installation.html';
8+
this.redirector.redirectTo('https://doc.rust-lang.org/cargo/getting-started/installation.html');
69
},
710
});

app/services/redirector.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import Service, { inject as service } from '@ember/service';
2+
3+
export default Service.extend({
4+
fastboot: service(),
5+
6+
redirectTo(url) {
7+
if (this.fastboot.isFastBoot) {
8+
let headers = this.fastboot.response.headers;
9+
headers.set('location', url);
10+
this.set('fastboot.response.statusCode', 301);
11+
} else {
12+
window.location = url;
13+
}
14+
},
15+
});

0 commit comments

Comments
 (0)