Show "File X of Y" next to file navigation links in diff view

Bug: Issue 4917
Change-Id: Ie993504fe80034da0e3d3ddee99687ba09ebc2ff
This commit is contained in:
Viktar Donich
2018-01-30 16:17:13 -08:00
parent a4d59f0686
commit c5069b1cd2
3 changed files with 38 additions and 0 deletions

View File

@@ -41,6 +41,9 @@ limitations under the License.
:host {
background-color: var(--view-background-color);
}
.hidden {
display: none;
}
gr-patch-range-select {
display: block;
}
@@ -214,6 +217,10 @@ limitations under the License.
</div>
</h3>
<div class="navLinks desktop">
<span class$="fileNum [[_computeFileNumVisible(_fileNum, _formattedFiles)]]">
File [[_fileNum]] of [[_formattedFiles.length]]
<span class="separator"></span>
</span>
<a class="navLink"
href$="[[_computeNavLinkURL(_change, _path, _fileList, -1, 1)]]">
Prev</a>

View File

@@ -93,6 +93,10 @@
type: String,
observer: '_pathChanged',
},
_fileNum: {
type: Number,
computed: '_computeFileNum(_path, _formattedFiles)',
},
_loggedIn: {
type: Boolean,
value: false,
@@ -928,5 +932,19 @@
_getRevisionInfo(change) {
return new Gerrit.RevisionInfo(change);
},
_computeFileNum(file, files) {
return files.findIndex(({value}) => value === file) + 1;
},
_computeFileNumVisible(file, files) {
if (!files) { return 'hidden'; }
const fileNum = this._computeFileNum(file, files);
if (!isNaN(fileNum) && isFinite(fileNum) && fileNum > 0) {
return '';
} else {
return 'hidden';
}
},
});
})();

View File

@@ -876,6 +876,19 @@ limitations under the License.
assert.isTrue(callCompute({basePatchNum: 1, patchNum: 'edit'}));
});
test('_computeFileNum', () => {
assert.equal(element._computeFileNum('/foo',
[{value: '/foo'}, {value: '/bar'}]), 1);
assert.equal(element._computeFileNum('/bar',
[{value: '/foo'}, {value: '/bar'}]), 2);
});
test('_computeFileNumVisible', () => {
assert.equal(element._computeFileNumVisible('', []), 'hidden');
assert.equal(element._computeFileNumVisible('/bar',
[{value: '/foo'}, {value: '/bar'}]), '');
});
suite('editMode behavior', () => {
setup(() => {
element._loggedIn = true;