Set _loading flag in diff-view while awaiting API
Previously, PolyGerrit relied on the default value of the loading flag
in the diff view to show/hide the appropriate diff panels (or loading
message). Because of this, stale information is displayed when a user
navigates between different files within the same diff view.
With this change, the `_loading` flag is set before the major API calls
are made, and the loading message is made more obvious.
Bug: Issue 7381
Change-Id: Id70d981a2c72fef9f44a32c5463dc43c3ce41cf6
(cherry picked from commit 29b2ab4a69)
This commit is contained in:
committed by
Paladox none
parent
9fb181d7b8
commit
7d521fc71c
@@ -124,8 +124,11 @@ limitations under the License.
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
.loading {
|
.loading {
|
||||||
padding: 0 var(--default-horizontal-margin) 1em;
|
color: #777;
|
||||||
color: #666;
|
font-size: 2em;
|
||||||
|
height: 100%;
|
||||||
|
padding: 1em var(--default-horizontal-margin);
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
.subHeader {
|
.subHeader {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|||||||
@@ -540,6 +540,7 @@
|
|||||||
|
|
||||||
promises.push(this._getChangeEdit(this._changeNum));
|
promises.push(this._getChangeEdit(this._changeNum));
|
||||||
|
|
||||||
|
this._loading = true;
|
||||||
Promise.all(promises).then(r => {
|
Promise.all(promises).then(r => {
|
||||||
const edit = r[4];
|
const edit = r[4];
|
||||||
if (edit) {
|
if (edit) {
|
||||||
|
|||||||
@@ -100,23 +100,27 @@ limitations under the License.
|
|||||||
'10', PARENT), 'Should navigate to /c/42/10/wheatley.md');
|
'10', PARENT), 'Should navigate to /c/42/10/wheatley.md');
|
||||||
element._path = 'wheatley.md';
|
element._path = 'wheatley.md';
|
||||||
assert.equal(element.changeViewState.selectedFileIndex, 2);
|
assert.equal(element.changeViewState.selectedFileIndex, 2);
|
||||||
|
assert.isTrue(element._loading);
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
assert(diffNavStub.lastCall.calledWith(element._change, 'glados.txt',
|
assert(diffNavStub.lastCall.calledWith(element._change, 'glados.txt',
|
||||||
'10', PARENT), 'Should navigate to /c/42/10/glados.txt');
|
'10', PARENT), 'Should navigate to /c/42/10/glados.txt');
|
||||||
element._path = 'glados.txt';
|
element._path = 'glados.txt';
|
||||||
assert.equal(element.changeViewState.selectedFileIndex, 1);
|
assert.equal(element.changeViewState.selectedFileIndex, 1);
|
||||||
|
assert.isTrue(element._loading);
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
assert(diffNavStub.lastCall.calledWith(element._change, 'chell.go', '10',
|
assert(diffNavStub.lastCall.calledWith(element._change, 'chell.go', '10',
|
||||||
PARENT), 'Should navigate to /c/42/10/chell.go');
|
PARENT), 'Should navigate to /c/42/10/chell.go');
|
||||||
element._path = 'chell.go';
|
element._path = 'chell.go';
|
||||||
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
||||||
|
assert.isTrue(element._loading);
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
assert(changeNavStub.lastCall.calledWith(element._change),
|
assert(changeNavStub.lastCall.calledWith(element._change),
|
||||||
'Should navigate to /c/42/');
|
'Should navigate to /c/42/');
|
||||||
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
||||||
|
assert.isTrue(element._loading);
|
||||||
|
|
||||||
const showPrefsStub =
|
const showPrefsStub =
|
||||||
sandbox.stub(element.$.diffPreferences.$.prefsOverlay, 'open',
|
sandbox.stub(element.$.diffPreferences.$.prefsOverlay, 'open',
|
||||||
@@ -190,24 +194,28 @@ limitations under the License.
|
|||||||
'5'), 'Should navigate to /c/42/5..10');
|
'5'), 'Should navigate to /c/42/5..10');
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 221, null, ']');
|
MockInteractions.pressAndReleaseKeyOn(element, 221, null, ']');
|
||||||
|
assert.isTrue(element._loading);
|
||||||
assert(diffNavStub.lastCall.calledWithExactly(element._change,
|
assert(diffNavStub.lastCall.calledWithExactly(element._change,
|
||||||
'wheatley.md', '10', '5'),
|
'wheatley.md', '10', '5'),
|
||||||
'Should navigate to /c/42/5..10/wheatley.md');
|
'Should navigate to /c/42/5..10/wheatley.md');
|
||||||
element._path = 'wheatley.md';
|
element._path = 'wheatley.md';
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
|
assert.isTrue(element._loading);
|
||||||
assert(diffNavStub.lastCall.calledWithExactly(element._change,
|
assert(diffNavStub.lastCall.calledWithExactly(element._change,
|
||||||
'glados.txt', '10', '5'),
|
'glados.txt', '10', '5'),
|
||||||
'Should navigate to /c/42/5..10/glados.txt');
|
'Should navigate to /c/42/5..10/glados.txt');
|
||||||
element._path = 'glados.txt';
|
element._path = 'glados.txt';
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
|
assert.isTrue(element._loading);
|
||||||
assert(diffNavStub.lastCall.calledWithExactly(element._change, 'chell.go',
|
assert(diffNavStub.lastCall.calledWithExactly(element._change, 'chell.go',
|
||||||
'10', '5'),
|
'10', '5'),
|
||||||
'Should navigate to /c/42/5..10/chell.go');
|
'Should navigate to /c/42/5..10/chell.go');
|
||||||
element._path = 'chell.go';
|
element._path = 'chell.go';
|
||||||
|
|
||||||
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
MockInteractions.pressAndReleaseKeyOn(element, 219, null, '[');
|
||||||
|
assert.isTrue(element._loading);
|
||||||
assert(changeNavStub.lastCall.calledWithExactly(element._change, '10',
|
assert(changeNavStub.lastCall.calledWithExactly(element._change, '10',
|
||||||
'5'),
|
'5'),
|
||||||
'Should navigate to /c/42/5..10');
|
'Should navigate to /c/42/5..10');
|
||||||
|
|||||||
Reference in New Issue
Block a user