From 4a824b90f6944418e109dac7e7c1e1e6e5a5f3d8 Mon Sep 17 00:00:00 2001 From: Kasper Nilsson Date: Mon, 7 Aug 2017 14:57:20 -0700 Subject: [PATCH] Specify project in URLs Modify _generateURL to add project to the URL if it exists. Bug: Issue 6708 Change-Id: I5bda0fd4abbb29a7e8ef3889b05eddb5a6b7d601 --- .../app/elements/core/gr-router/gr-router.js | 22 +++++++++++------ .../core/gr-router/gr-router_test.html | 24 ++++++++++++------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js index f39344521d..6e1cb64aeb 100644 --- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js +++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js @@ -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'); diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html index 92d0fde377..d1392ee790 100644 --- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html +++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.html @@ -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'); }); }); });