Get rid of <gr-comment-api> element
By now there was just small left-over that was easy to replace by
calling into the comments service instead.
Change-Id: Ice8ec80db73aab12814baa81ae19298e9e6ebb54
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index 8d64bc0..2a4290a 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -18,7 +18,6 @@
import '../../../styles/gr-a11y-styles';
import '../../../styles/gr-paper-styles';
import '../../../styles/shared-styles';
-import '../../diff/gr-comment-api/gr-comment-api';
import '../../plugins/gr-endpoint-decorator/gr-endpoint-decorator';
import '../../plugins/gr-endpoint-param/gr-endpoint-param';
import '../../shared/gr-account-link/gr-account-link';
@@ -129,10 +128,7 @@
import {GrIncludedInDialog} from '../gr-included-in-dialog/gr-included-in-dialog';
import {GrDownloadDialog} from '../gr-download-dialog/gr-download-dialog';
import {GrChangeMetadata} from '../gr-change-metadata/gr-change-metadata';
-import {
- ChangeComments,
- GrCommentApi,
-} from '../../diff/gr-comment-api/gr-comment-api';
+import {ChangeComments} from '../../diff/gr-comment-api/gr-comment-api';
import {
assertIsDefined,
hasOwnProperty,
@@ -230,7 +226,6 @@
export interface GrChangeView {
$: {
- commentAPI: GrCommentApi;
applyFixDialog: GrApplyFixDialog;
fileList: GrFileList & Element;
fileListHeader: GrFileListHeader;
@@ -2040,7 +2035,7 @@
if (!this._changeNum)
throw new Error('missing required changeNum property');
- this.commentsService.loadAll(this._changeNum, this._patchRange?.patchNum);
+ this.commentsService.reloadAll(this._changeNum, this._patchRange?.patchNum);
}
@observe('_changeComments')
@@ -2230,13 +2225,20 @@
assertIsDefined(this._changeNum, '_changeNum');
if (!this._patchRange?.patchNum) throw new Error('missing patchNum');
const promises = [this._getCommitInfo(), this.$.fileList.reload()];
- if (patchNumChanged)
+ if (patchNumChanged) {
promises.push(
- this.$.commentAPI.reloadPortedComments(
+ this.commentsService.reloadPortedComments(
this._changeNum,
this._patchRange?.patchNum
)
);
+ promises.push(
+ this.commentsService.reloadPortedDrafts(
+ this._changeNum,
+ this._patchRange?.patchNum
+ )
+ );
+ }
return Promise.all(promises);
}
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_html.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_html.ts
index 9341b18..cb37458 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_html.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_html.ts
@@ -720,5 +720,4 @@
</gr-reply-dialog>
</template>
</gr-overlay>
- <gr-comment-api id="commentAPI"></gr-comment-api>
`;
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
index ab17f47..72cd91e 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
@@ -40,6 +40,7 @@
import {
mockPromise,
queryAndAssert,
+ stubComments,
stubRestApi,
stubUsers,
waitQueryAndAssert,
@@ -1346,10 +1347,8 @@
sinon.stub(element, '_getCommitInfo');
sinon.stub(element.$.fileList, 'reload');
flush();
- const reloadPortedCommentsStub = sinon.stub(
- element.$.commentAPI,
- 'reloadPortedComments'
- );
+ const reloadPortedCommentsStub = stubComments('reloadPortedComments');
+ const reloadPortedDraftsStub = stubComments('reloadPortedDrafts');
sinon.stub(element.$.fileList, 'collapseAllDiffs');
const value: AppElementChangeViewParams = {
@@ -1374,6 +1373,7 @@
element.params = {...value};
await flush();
assert.isTrue(reloadPortedCommentsStub.calledOnce);
+ assert.isTrue(reloadPortedDraftsStub.calledOnce);
});
test('do not reload entire page when patchRange doesnt change', async () => {
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
index 95984b8..d02f09b 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.ts
@@ -18,7 +18,6 @@
import '../../../styles/shared-styles';
import '../../diff/gr-diff-cursor/gr-diff-cursor';
import '../../diff/gr-diff-host/gr-diff-host';
-import '../../diff/gr-comment-api/gr-comment-api';
import '../../diff/gr-diff-preferences-dialog/gr-diff-preferences-dialog';
import '../../edit/gr-edit-file-controls/gr-edit-file-controls';
import '../../shared/gr-button/gr-button';
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.js b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.js
index 0db7690..ee65837 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.js
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.js
@@ -16,7 +16,6 @@
*/
import '../../../test/common-test-setup-karma.js';
-import '../../diff/gr-comment-api/gr-comment-api.js';
import '../../shared/gr-date-formatter/gr-date-formatter.js';
import {getMockDiffResponse} from '../../../test/mocks/diff-response.js';
import './gr-file-list.js';
@@ -49,7 +48,6 @@
'gr-file-list-comment-api-mock', html`
<gr-file-list id="fileList"
change-comments="[[_changeComments]]"></gr-file-list>
- <gr-comment-api id="commentAPI"></gr-comment-api>
`);
const basicFixture = fixtureFromElement(commentApiMock.is);
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.js b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.js
index 0939daa..a3b8873 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.js
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.js
@@ -16,7 +16,6 @@
*/
import '../../../test/common-test-setup-karma.js';
-import '../../diff/gr-comment-api/gr-comment-api.js';
import './gr-messages-list.js';
import {createCommentApiMockWithTemplateElement} from '../../../test/mocks/comment-api.js';
import {TEST_ONLY} from './gr-messages-list.js';
@@ -30,7 +29,6 @@
<gr-messages-list
id="messagesList"
change-comments="[[_changeComments]]"></gr-messages-list>
- <gr-comment-api id="commentAPI"></gr-comment-api>
`);
const basicFixture = fixtureFromTemplate(html`
diff --git a/polygerrit-ui/app/elements/diff/gr-comment-api/gr-comment-api.ts b/polygerrit-ui/app/elements/diff/gr-comment-api/gr-comment-api.ts
index 7e7e507..32c732e 100644
--- a/polygerrit-ui/app/elements/diff/gr-comment-api/gr-comment-api.ts
+++ b/polygerrit-ui/app/elements/diff/gr-comment-api/gr-comment-api.ts
@@ -14,16 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import {PolymerElement} from '@polymer/polymer/polymer-element';
-import {htmlTemplate} from './gr-comment-api_html';
-import {customElement, property} from '@polymer/decorators';
import {
CommentBasics,
PatchRange,
PatchSetNum,
RobotCommentInfo,
UrlEncodedCommentId,
- NumericChangeId,
PathToCommentsInfoMap,
FileInfo,
ParentPatchSetNum,
@@ -45,7 +41,6 @@
addPath,
} from '../../../utils/comment-util';
import {PatchSetFile, PatchNumOnly, isPatchSetFile} from '../../../types/types';
-import {appContext} from '../../../services/app-context';
import {CommentSide, Side} from '../../../constants/constants';
import {pluralize} from '../../../utils/string-util';
import {NormalizedFileInfo} from '../../change/gr-file-list/gr-file-list';
@@ -611,38 +606,3 @@
return createCommentThreads(comments);
}
}
-
-@customElement('gr-comment-api')
-export class GrCommentApi extends PolymerElement {
- static get template() {
- return htmlTemplate;
- }
-
- @property({type: Object})
- _changeComments?: ChangeComments;
-
- private readonly restApiService = appContext.restApiService;
-
- private readonly commentsService = appContext.commentsService;
-
- reloadPortedComments(changeNum: NumericChangeId, patchNum: PatchSetNum) {
- if (!this._changeComments) {
- this.commentsService.loadAll(changeNum);
- return Promise.resolve();
- }
- return Promise.all([
- this.restApiService.getPortedComments(changeNum, patchNum),
- this.restApiService.getPortedDrafts(changeNum, patchNum),
- ]).then(res => {
- if (!this._changeComments) return;
- this._changeComments =
- this._changeComments.cloneWithUpdatedPortedComments(res[0], res[1]);
- });
- }
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- 'gr-comment-api': GrCommentApi;
- }
-}
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
index 0ffe61f..2d47ce3 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
@@ -65,7 +65,7 @@
GrDropdownList,
} from '../../shared/gr-dropdown-list/gr-dropdown-list';
import {GrOverlay} from '../../shared/gr-overlay/gr-overlay';
-import {ChangeComments, GrCommentApi} from '../gr-comment-api/gr-comment-api';
+import {ChangeComments} from '../gr-comment-api/gr-comment-api';
import {GrDiffModeSelector} from '../gr-diff-mode-selector/gr-diff-mode-selector';
import {
BasePatchSetNum,
@@ -134,7 +134,6 @@
export interface GrDiffView {
$: {
- commentAPI: GrCommentApi;
diffHost: GrDiffHost;
reviewed: HTMLInputElement;
dropdown: GrDropdownList;
@@ -1466,7 +1465,7 @@
_loadComments(patchSet?: PatchSetNum) {
assertIsDefined(this._changeNum, '_changeNum');
- return this.commentsService.loadAll(this._changeNum, patchSet);
+ return this.commentsService.reloadAll(this._changeNum, patchSet);
}
@observe(
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_html.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_html.ts
index 16adb45..d87d192 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_html.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_html.ts
@@ -426,5 +426,4 @@
on-reload-diff-preference="_handleReloadingDiffPreference"
>
</gr-diff-preferences-dialog>
- <gr-comment-api id="commentAPI"></gr-comment-api>
`;
diff --git a/polygerrit-ui/app/services/comments/comments-service.ts b/polygerrit-ui/app/services/comments/comments-service.ts
index 16ee2f7..2e28ece 100644
--- a/polygerrit-ui/app/services/comments/comments-service.ts
+++ b/polygerrit-ui/app/services/comments/comments-service.ts
@@ -49,22 +49,47 @@
*/
// TODO(dhruvsri): listen to changeNum changes or reload event to update
// automatically
- loadAll(changeNum: NumericChangeId, patchNum = CURRENT as RevisionId) {
- const revision = patchNum;
- this.restApiService
+ reloadAll(changeNum: NumericChangeId, patchNum = CURRENT as RevisionId) {
+ this.reloadComments(changeNum);
+ this.reloadRobotComments(changeNum);
+ this.reloadDrafts(changeNum);
+ this.reloadPortedComments(changeNum, patchNum);
+ this.reloadPortedDrafts(changeNum, patchNum);
+ }
+
+ reloadComments(changeNum: NumericChangeId): Promise<void> {
+ return this.restApiService
.getDiffComments(changeNum)
.then(comments => updateStateComments(comments));
- this.restApiService
+ }
+
+ reloadRobotComments(changeNum: NumericChangeId): Promise<void> {
+ return this.restApiService
.getDiffRobotComments(changeNum)
.then(robotComments => updateStateRobotComments(robotComments));
- this.restApiService
+ }
+
+ reloadDrafts(changeNum: NumericChangeId): Promise<void> {
+ return this.restApiService
.getDiffDrafts(changeNum)
.then(drafts => updateStateDrafts(drafts));
- this.restApiService
- .getPortedComments(changeNum, revision)
+ }
+
+ reloadPortedComments(
+ changeNum: NumericChangeId,
+ patchNum = CURRENT as RevisionId
+ ): Promise<void> {
+ return this.restApiService
+ .getPortedComments(changeNum, patchNum)
.then(portedComments => updateStatePortedComments(portedComments));
- this.restApiService
- .getPortedDrafts(changeNum, revision)
+ }
+
+ reloadPortedDrafts(
+ changeNum: NumericChangeId,
+ patchNum = CURRENT as RevisionId
+ ): Promise<void> {
+ return this.restApiService
+ .getPortedDrafts(changeNum, patchNum)
.then(portedDrafts => updateStatePortedDrafts(portedDrafts));
}
diff --git a/polygerrit-ui/app/services/comments/comments-service_test.ts b/polygerrit-ui/app/services/comments/comments-service_test.ts
index 604b5c4..0e6e042 100644
--- a/polygerrit-ui/app/services/comments/comments-service_test.ts
+++ b/polygerrit-ui/app/services/comments/comments-service_test.ts
@@ -73,7 +73,7 @@
Promise.resolve({})
);
- commentsService.loadAll(changeNum);
+ commentsService.reloadAll(changeNum);
assert.isTrue(diffCommentsSpy.calledWithExactly(changeNum));
assert.isTrue(diffRobotCommentsSpy.calledWithExactly(changeNum));
assert.isTrue(diffDraftsSpy.calledWithExactly(changeNum));
@@ -118,7 +118,7 @@
Promise.resolve({})
);
- commentsService.loadAll(changeNum);
+ commentsService.reloadAll(changeNum);
assert.isTrue(diffCommentsSpy.calledWithExactly(changeNum));
assert.isTrue(diffRobotCommentsSpy.calledWithExactly(changeNum));
assert.isTrue(diffDraftsSpy.calledWithExactly(changeNum));