Specify project in URLs
Modify _generateURL to add project to the URL if it exists. Bug: Issue 6708 Change-Id: I5bda0fd4abbb29a7e8ef3889b05eddb5a6b7d601
This commit is contained in:
parent
f439ff4094
commit
4a824b90f6
@ -573,18 +573,26 @@
|
||||
} else if (params.view === Gerrit.Nav.View.CHANGE) {
|
||||
let range = this._getPatchRangeExpression(params);
|
||||
if (range.length) { range = '/' + range; }
|
||||
|
||||
url = `/c/${params.changeNum}${range}`;
|
||||
if (params.project) {
|
||||
url = `/c/${params.project}/+/${params.changeNum}${range}`;
|
||||
} else {
|
||||
url = `/c/${params.changeNum}${range}`;
|
||||
}
|
||||
} else if (params.view === Gerrit.Nav.View.DIFF) {
|
||||
let range = this._getPatchRangeExpression(params);
|
||||
if (range.length) { range = '/' + range; }
|
||||
|
||||
url = `/c/${params.changeNum}${range}/${encode(params.path, true)}`;
|
||||
|
||||
let suffix = `${range}/${encode(params.path, true)}`;
|
||||
if (params.lineNum) {
|
||||
url += '#';
|
||||
if (params.leftSide) { url += 'b'; }
|
||||
url += params.lineNum;
|
||||
suffix += '#';
|
||||
if (params.leftSide) { suffix += 'b'; }
|
||||
suffix += params.lineNum;
|
||||
}
|
||||
|
||||
if (params.project) {
|
||||
url = `/c/${params.project}/+/${params.changeNum}${suffix}`;
|
||||
} else {
|
||||
url = `/c/${params.changeNum}${suffix}`;
|
||||
}
|
||||
} else {
|
||||
throw new Error('Can\'t generate');
|
||||
|
@ -65,14 +65,15 @@ limitations under the License.
|
||||
const params = {
|
||||
view: Gerrit.Nav.View.CHANGE,
|
||||
changeNum: '1234',
|
||||
project: 'test',
|
||||
};
|
||||
assert.equal(element._generateUrl(params), '/c/1234');
|
||||
assert.equal(element._generateUrl(params), '/c/test/+/1234');
|
||||
|
||||
params.patchNum = 10;
|
||||
assert.equal(element._generateUrl(params), '/c/1234/10');
|
||||
assert.equal(element._generateUrl(params), '/c/test/+/1234/10');
|
||||
|
||||
params.basePatchNum = 5;
|
||||
assert.equal(element._generateUrl(params), '/c/1234/5..10');
|
||||
assert.equal(element._generateUrl(params), '/c/test/+/1234/5..10');
|
||||
});
|
||||
|
||||
test('diff', () => {
|
||||
@ -82,24 +83,31 @@ limitations under the License.
|
||||
path: 'x+y/path.cpp',
|
||||
patchNum: 12,
|
||||
};
|
||||
assert.equal(element._generateUrl(params), '/c/42/12/x%252By/path.cpp');
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/42/12/x%252By/path.cpp');
|
||||
|
||||
params.project = 'test';
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/test/+/42/12/x%252By/path.cpp');
|
||||
|
||||
params.basePatchNum = 6;
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/42/6..12/x%252By/path.cpp');
|
||||
'/c/test/+/42/6..12/x%252By/path.cpp');
|
||||
|
||||
params.path = 'foo bar/my+file.txt%';
|
||||
params.patchNum = 2;
|
||||
delete params.basePatchNum;
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/42/2/foo+bar/my%252Bfile.txt%2525');
|
||||
'/c/test/+/42/2/foo+bar/my%252Bfile.txt%2525');
|
||||
|
||||
params.path = 'file.cpp';
|
||||
params.lineNum = 123;
|
||||
assert.equal(element._generateUrl(params), '/c/42/2/file.cpp#123');
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/test/+/42/2/file.cpp#123');
|
||||
|
||||
params.leftSide = true;
|
||||
assert.equal(element._generateUrl(params), '/c/42/2/file.cpp#b123');
|
||||
assert.equal(element._generateUrl(params),
|
||||
'/c/test/+/42/2/file.cpp#b123');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user