Add gr-diff-host shell delegating to gr-diff In this CL, I am simply forwarding the entire API to gr-diff. In follow-up CLs, I will move the restAPI calls over, but I think it will be easier to understand the changes when all the forwarding is already out of the way. I decided not to touch the styling applied to gr-diff from gr-diff-view and gr-file-list because that currently does not hurt anyone and seems less risky. Bug: Issue 9623 Change-Id: Iacc82198b04b048dd33c380876b1c8b3a80fac95
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html index 1b5203e..2e56871 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
@@ -36,7 +36,7 @@ <link rel="import" href="../gr-diff-cursor/gr-diff-cursor.html"> <link rel="import" href="../gr-diff-mode-selector/gr-diff-mode-selector.html"> <link rel="import" href="../gr-diff-preferences/gr-diff-preferences.html"> -<link rel="import" href="../gr-diff/gr-diff.html"> +<link rel="import" href="../gr-diff-host/gr-diff-host.html"> <link rel="import" href="../gr-patch-range-select/gr-patch-range-select.html"> <dom-module id="gr-diff-view"> @@ -320,8 +320,8 @@ </div> </gr-fixed-panel> <div class="loading" hidden$="[[!_loading]]">Loading...</div> - <gr-diff - id="diff" + <gr-diff-host + id="diffHost" hidden hidden$="[[_loading]]" class$="[[_computeDiffClass(_panelFloatingDisabled)]]" @@ -337,7 +337,7 @@ view-mode="[[_diffMode]]" is-blame-loaded="{{_isBlameLoaded}}" on-line-selected="_onLineSelected"> - </gr-diff> + </gr-diff-host> <gr-diff-preferences id="diffPreferences" prefs="{{_prefs}}"
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js index 8798a8f..b0eb423 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
@@ -200,7 +200,7 @@ this._loggedIn = loggedIn; }); - this.$.cursor.push('diffs', this.$.diff); + this.$.cursor.push('diffs', this.$.diffHost); }, _getLoggedIn() { @@ -276,7 +276,7 @@ this.modifierPressed(e)) { return; } e.preventDefault(); - this.$.diff.displayLine = false; + this.$.diffHost.displayLine = false; }, _handleShiftLeftKey(e) { @@ -303,7 +303,7 @@ if (this.modifierPressed(e)) { return; } e.preventDefault(); - this.$.diff.displayLine = true; + this.$.diffHost.displayLine = true; this.$.cursor.moveUp(); }, @@ -317,7 +317,7 @@ if (this.modifierPressed(e)) { return; } e.preventDefault(); - this.$.diff.displayLine = true; + this.$.diffHost.displayLine = true; this.$.cursor.moveDown(); }, @@ -350,13 +350,13 @@ _handleCKey(e) { if (this.shouldSuppressKeyboardShortcut(e)) { return; } - if (this.$.diff.isRangeSelected()) { return; } + if (this.$.diffHost.isRangeSelected()) { return; } if (this.modifierPressed(e)) { return; } e.preventDefault(); const line = this.$.cursor.getTargetLineElement(); if (line) { - this.$.diff.addDraftAtLine(line); + this.$.diffHost.addDraftAtLine(line); } }, @@ -407,7 +407,7 @@ if (e.detail.keyboardEvent.shiftKey) { // Hide left diff. e.preventDefault(); - this.$.diff.toggleLeftDiff(); + this.$.diffHost.toggleLeftDiff(); return; } @@ -549,7 +549,7 @@ this.$.restAPI.setInProjectLookup(value.changeNum, value.project); } - this.$.diff.lineOfInterest = this._getLineOfInterest(this.params); + this.$.diffHost.lineOfInterest = this._getLineOfInterest(this.params); this._initCursor(this.params); this._changeNum = value.changeNum; @@ -621,8 +621,8 @@ }); } this._loading = false; - this.$.diff.comments = this._commentsForDiff; - return this.$.diff.reload(); + this.$.diffHost.comments = this._commentsForDiff; + return this.$.diffHost.reload(); }).then(() => { this.$.reporting.diffViewDisplayed(); }); @@ -949,13 +949,13 @@ */ _toggleBlame() { if (this._isBlameLoaded) { - this.$.diff.clearBlame(); + this.$.diffHost.clearBlame(); return; } this._isBlameLoading = true; this.fire('show-alert', {message: MSG_LOADING_BLAME}); - this.$.diff.loadBlame() + this.$.diffHost.loadBlame() .then(() => { this._isBlameLoading = false; this.fire('show-alert', {message: MSG_LOADED_BLAME}); @@ -991,7 +991,7 @@ _handleShiftXKey(e) { if (this.shouldSuppressKeyboardShortcut(e)) { return; } - this.$.diff.expandAllContext(); + this.$.diffHost.expandAllContext(); }, }); })();
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html index f947d18..00527e4 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
@@ -73,7 +73,7 @@ test('params change triggers diffViewDisplayed()', () => { sandbox.stub(element.$.reporting, 'diffViewDisplayed'); - sandbox.stub(element.$.diff, 'reload').returns(Promise.resolve()); + sandbox.stub(element.$.diffHost, 'reload').returns(Promise.resolve()); sandbox.spy(element, '_paramsChanged'); element.params = { view: Gerrit.Nav.View.DIFF, @@ -89,7 +89,8 @@ }); test('toggle left diff with a hotkey', () => { - const toggleLeftDiffStub = sandbox.stub(element.$.diff, 'toggleLeftDiff'); + const toggleLeftDiffStub = sandbox.stub( + element.$.diffHost, 'toggleLeftDiff'); MockInteractions.pressAndReleaseKeyOn(element, 65, 'shift', 'a'); assert.isTrue(toggleLeftDiffStub.calledOnce); }); @@ -168,7 +169,7 @@ MockInteractions.pressAndReleaseKeyOn(element, 80, 'shift', 'p'); assert(scrollStub.calledOnce); - const computeContainerClassStub = sandbox.stub(element.$.diff, + const computeContainerClassStub = sandbox.stub(element.$.diffHost.$.diff, '_computeContainerClass'); MockInteractions.pressAndReleaseKeyOn(element, 74, null, 'j'); assert(computeContainerClassStub.lastCall.calledWithExactly( @@ -189,7 +190,7 @@ }); test('shift+x shortcut expands all diff context', () => { - const expandStub = sandbox.stub(element.$.diff, 'expandAllContext'); + const expandStub = sandbox.stub(element.$.diffHost, 'expandAllContext'); MockInteractions.pressAndReleaseKeyOn(element, 88, 'shift', 'x'); flushAsynchronousOperations(); assert.isTrue(expandStub.called); @@ -550,7 +551,7 @@ const getReviewedStub = sandbox.stub(element, '_getReviewedStatus', () => Promise.resolve()); - sandbox.stub(element.$.diff, 'reload'); + sandbox.stub(element.$.diffHost, 'reload'); element._loggedIn = true; element.params = { view: Gerrit.Nav.View.DIFF, @@ -575,7 +576,7 @@ test('file review status', () => { const saveReviewedStub = sandbox.stub(element, '_saveReviewedState', () => Promise.resolve()); - sandbox.stub(element.$.diff, 'reload'); + sandbox.stub(element.$.diffHost, 'reload'); element._loggedIn = true; element.params = { @@ -621,7 +622,7 @@ }); test('hash is determined from params', done => { - sandbox.stub(element.$.diff, 'reload'); + sandbox.stub(element.$.diffHost, 'reload'); sandbox.stub(element, '_initCursor'); element._loggedIn = true; @@ -642,7 +643,7 @@ test('diff mode selector correctly toggles the diff', () => { const select = element.$.modeSelect; - const diffDisplay = element.$.diff; + const diffDisplay = element.$.diffHost; element._userPrefs = {default_diff_view: 'SIDE_BY_SIDE'}; // The mode selected in the view state reflects the selected option. @@ -687,7 +688,7 @@ suite('_commitRange', () => { setup(() => { - sandbox.stub(element.$.diff, 'reload'); + sandbox.stub(element.$.diffHost, 'reload'); sandbox.stub(element, '_initCursor'); sandbox.stub(element, '_getChangeDetail').returns(Promise.resolve({ _number: 42,