Skip to content

Commit ad78185

Browse files
AndriiMyskovitalie
authored and
vitalie
committed
[PRD] TCI/Assembla Handshake with SVN/P4 (#2778)
1 parent 4532177 commit ad78185

16 files changed

+57
-18
lines changed

app/adapters/repo.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,21 @@ export default V3Adapter.extend({
1919
const prefix = this.urlPrefix();
2020

2121
if (query) {
22-
const { provider, slug, custom } = query;
22+
const { provider, slug, serverType, custom } = query;
2323
const providerPrefix = provider ? `${provider}/` : '';
2424

2525
delete query.provider;
2626
delete query.slug;
2727
delete query.custom;
28+
delete query.serverType;
2829

2930
// fetch repo by slug
3031
if (!id && slug) {
31-
return `${prefix}/repo/${providerPrefix}${encodeURIComponent(slug)}`;
32+
let url = `${prefix}/repo/${providerPrefix}${encodeURIComponent(slug)}`;
33+
if (serverType) {
34+
url = `${url}?server_type=${serverType}`;
35+
}
36+
return url;
3237
}
3338

3439
if (custom && custom.type === 'byOwner') {

app/controllers/repo.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ export default Controller.extend({
1616
features: service(),
1717
updateTimesService: service('updateTimes'),
1818

19-
queryParams: ['migrationStatus'],
19+
queryParams: ['migrationStatus', 'serverType'],
20+
serverType: null,
2021
migrationStatus: null,
2122

2223
jobController: controller('job'),

app/models/repo.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -426,12 +426,15 @@ Repo.reopenClass({
426426
});
427427
},
428428

429-
fetchBySlug(store, slug, provider = defaultVcsConfig.urlPrefix) {
430-
const loadedRepos = store.peekAll('repo').filterBy('provider', provider).filterBy('slug', slug);
429+
fetchBySlug(store, slug, provider = defaultVcsConfig.urlPrefix, serverType = undefined) {
430+
let loadedRepos = store.peekAll('repo').filterBy('provider', provider).filterBy('slug', slug);
431+
if (serverType) {
432+
loadedRepos = loadedRepos.filterBy('serverType', serverType);
433+
}
431434
if (!isEmpty(loadedRepos)) {
432435
return EmberPromise.resolve(loadedRepos.firstObject);
433436
}
434-
return store.queryRecord('repo', { slug, provider });
437+
return store.queryRecord('repo', { slug, provider, serverType });
435438
},
436439
});
437440

app/router.js

+2
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ Router.map(function () {
9393
this.route('legacy-repo-url', { path: '/:owner/:repo/:method' });
9494
this.route('legacy-repo-url', { path: '/:owner/:repo/:method/:id' });
9595
this.route('legacy-repo-url', { path: '/:owner/:repo/:method/:id/:view' });
96+
this.route('legacy-repo-url', { path: '/:provider/:owner/:repo/:serverType/:method/:id' });
97+
this.route('legacy-repo-url', { path: '/:provider/:owner/:repo/:serverType/:method/:id/:view' });
9698

9799
this.route('error404', { path: '/404' });
98100
this.route('page-not-found', { path: '/*wildcard' });

app/routes/legacy-repo-url.js

+18-5
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,32 @@ export default Route.extend({
77

88
beforeModel(transition) {
99
const { params, queryParams } = transition.to;
10-
let { owner, repo, method, id, view } = params;
11-
let provider, routeName = 'provider', routeModels = [];
10+
let { owner, repo, method, id, view, provider, serverType } = params;
11+
let vcsConfig, routeName = 'provider', routeModels = [];
1212

13-
const vcsConfig = vcsConfigByUrlPrefix(owner);
13+
if (provider) {
14+
vcsConfig = vcsConfigByUrlPrefix(provider);
15+
} else {
16+
vcsConfig = vcsConfigByUrlPrefix(owner);
17+
}
1418

1519
const isLegacyUrl = isEmpty(vcsConfig);
20+
const serverTypes = ['git', 'svn', 'perforce'];
21+
const isServerTypeUrl = serverTypes.includes(serverType) || serverTypes.includes(id);
22+
1623
if (isLegacyUrl) {
1724
provider = defaultVcsConfig.urlPrefix;
1825
} else {
1926
// params include provider, so swap them accordingly
20-
[provider, owner, repo, method, id] = [owner, repo, method, id, view];
27+
if (!isServerTypeUrl) {
28+
[provider, owner, repo, method, id] = [owner, repo, method, id, view];
29+
} else if (serverTypes.includes(id)) {
30+
[provider, owner, repo, serverType, method, id, view] = [owner, repo, method, id, view];
31+
}
2132
}
2233

34+
const newQueryParams = { serverType: serverType, ...queryParams };
35+
2336
routeModels.push(provider);
2437

2538
if (owner) {
@@ -43,7 +56,7 @@ export default Route.extend({
4356

4457
if (this._router.hasRoute(routeName)) {
4558
transition.abort();
46-
this.transitionTo(routeName, ...routeModels, { queryParams });
59+
this.transitionTo(routeName, ...routeModels, { queryParams: newQueryParams });
4760
}
4861
}
4962
});

app/routes/repo.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ export default TravisRoute.extend(ScrollResetMixin, {
5252
return { provider, owner, name };
5353
},
5454

55-
model({ provider, owner, name }) {
55+
model({ provider, owner, name, serverType }) {
5656
const slug = `${owner}/${name}`;
5757
this.set('slug', slug);
58-
return Repo.fetchBySlug(this.store, slug, provider);
58+
return Repo.fetchBySlug(this.store, slug, provider, serverType);
5959
},
6060

6161
beforeModel() {

app/templates/account/settings.hbs

+4-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@
105105
{{#each this.unsubscribedRepos as |repo|}}
106106
<div class="row" data-test-email-settings-resubscribe-item>
107107
<div class="name">
108-
<LinkTo @route="repo" @models={{array repo.provider repo.urlOwnerName repo.urlName}}>
108+
<LinkTo
109+
@route="repo" @models={{array repo.provider repo.urlOwnerName repo.urlName}}
110+
@query={{hash serverType=repo.serverType}}
111+
>
109112
{{repo.formattedSlug}}
110113
</LinkTo>
111114
</div>

app/templates/components/dashboard-row.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
@route="repo"
3434
@models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}
3535
@title={{this.repo.name}}
36+
@query={{hash serverType=this.repo.serverType}}
3637
>
3738
{{this.repo.name}}
3839
{{#if this.repo.shared}}

app/templates/components/email-unsubscribe.hbs

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
<LinkTo
3030
@route="repo"
3131
@models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}
32+
@query={{hash serverType=this.repo.serverType}}
3233
@target="_blank"
3334
class="repo-link repo-slug"
3435
>
@@ -72,6 +73,7 @@
7273
<LinkTo
7374
@route="repo"
7475
@models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}
76+
@query={{hash serverType=this.repo.serverType}}
7577
@tagName="button"
7678
@disabled={{this.task.isRunning}}
7779
class="no-button control"

app/templates/components/github-apps-repository.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<LinkTo
33
@route="repo"
44
@models={{array this.repository.provider this.repository.urlOwnerName this.repository.urlName}}
5-
@query={{this.hash}}
5+
@query={{hash serverType=this.repository.serverType}}
66
class="profile-repo"
77
>
88
<span class="profile-repo-name">{{this.name}}</span>

app/templates/components/my-build.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<LinkTo
2525
@route="repo"
2626
@models={{array this.build.repo.provider this.build.repo.urlOwnerName this.build.repo.urlName}}
27+
@query={{hash serverType=this.build.repo.serverType}}
2728
class="inner-underline"
2829
>
2930
{{this.build.repo.name}}

app/templates/components/owner-repo-tile.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<LinkTo
1818
@route="repo"
1919
@models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}
20+
@query={{hash serverType=this.repo.serverType}}
2021
class="label-align"
2122
>
2223
<span class="repo-title-text">

app/templates/components/plan_usage.hbs

+4-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,10 @@
108108
{{#each this.summarizedRepositories as |repository|}}
109109
<tr data-test-repository='true'>
110110
<td>
111-
<LinkTo @route="repo" @models={{array repository.provider repository.urlOwnerName repository.urlName}}>
111+
<LinkTo
112+
@route="repo" @models={{array repository.provider repository.urlOwnerName repository.urlName}}
113+
@query={{hash serverType=this.repo.serverType}}
114+
>
112115
{{repository.formattedSlug}}
113116
</LinkTo>
114117
</td>

app/templates/components/repos-list-item.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div class="tile {{this.repo.currentBuild.state}}">
22
<h2 class="tile-title {{this.repo.currentBuild.state}}">
33
{{#if this.repo.slug}}
4-
<LinkTo @route="repo" @models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}>
4+
<LinkTo @route="repo" @models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}} @query={{hash serverType=this.repo.serverType}}>
55
<StatusIcon @status={{this.repo.currentBuild.state}} />
66
<span data-test-repos-list-item-slug class="label-align inner-underline">
77
{{this.repo.slug}}

app/templates/components/repository-layout.hbs

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
{{this.repo.owner.login}}
1010
</LinkTo>
1111
/
12-
<LinkTo @route="repo" @models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}} >
12+
<LinkTo
13+
@route="repo" @models={{array this.repo.provider this.repo.urlOwnerName this.repo.urlName}}
14+
@query={{hash serverType=this.repo.serverType}}
15+
>
1316
{{this.repo.name}}
1417
</LinkTo>
1518
</h1>

app/templates/components/repository-status-toggle.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<LinkTo
33
@route="repo"
44
@models={{array this.repository.provider this.repository.urlOwnerName this.repository.urlName}}
5+
@query={{hash serverType=this.repository.serverType}}
56
class="profile-repo"
67
@classNameBindings="admin:admin:non-admin"
78
>

0 commit comments

Comments
 (0)