Cleanup gr-change-view (remove gr-ajax use) Bug: Issue 3988 Change-Id: I9a0134ef96ee48a54cac85bd92e3dea88cb7c76f
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html index 00fb2c9..8b77489 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
@@ -18,7 +18,6 @@ <link rel="import" href="../../../behaviors/keyboard-shortcut-behavior.html"> <link rel="import" href="../../../behaviors/rest-client-behavior.html"> <link rel="import" href="../../shared/gr-account-link/gr-account-link.html"> -<link rel="import" href="../../shared/gr-ajax/gr-ajax.html"> <link rel="import" href="../../shared/gr-button/gr-button.html"> <link rel="import" href="../../shared/gr-change-star/gr-change-star.html"> <link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html"> @@ -218,22 +217,6 @@ } } </style> - <gr-ajax id="detailXHR" - url="[[_computeDetailPath(_changeNum)]]" - params="[[_computeDetailQueryParams()]]" - last-response="{{_change}}" - loading="{{_loading}}"></gr-ajax> - <gr-ajax id="commentsXHR" - url="[[_computeCommentsPath(_changeNum)]]" - last-response="{{_comments}}"></gr-ajax> - <gr-ajax id="commitInfoXHR" - url="[[_computeCommitInfoPath(_changeNum, _patchNum)]]" - last-response="{{_commitInfo}}"></gr-ajax> - <!-- TODO(andybons): Cache the project config. --> - <gr-ajax id="configXHR" - auto - url="[[_computeProjectConfigPath(_change.project)]]" - last-response="{{_projectConfig}}"></gr-ajax> <div class="container loading" hidden$="{{!_loading}}">Loading...</div> <div class="container" hidden$="{{_loading}}"> <div class="headerContainer">
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js index 9af6aa9..0709f62 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -225,31 +225,6 @@ return '(' + status.toLowerCase() + ')'; }, - _computeDetailPath: function(changeNum) { - return '/changes/' + changeNum + '/detail'; - }, - - _computeCommitInfoPath: function(changeNum, patchNum) { - return this.changeBaseURL(changeNum, patchNum) + '/commit?links'; - }, - - _computeCommentsPath: function(changeNum) { - return '/changes/' + changeNum + '/comments'; - }, - - _computeProjectConfigPath: function(project) { - return '/projects/' + encodeURIComponent(project) + '/config'; - }, - - _computeDetailQueryParams: function() { - var options = this.listChangesOptionsToHex( - this.ListChangesOption.ALL_REVISIONS, - this.ListChangesOption.CHANGE_ACTIONS, - this.ListChangesOption.DOWNLOAD_COMMANDS - ); - return {O: options}; - }, - _computeLatestPatchNum: function(change) { return change.revisions[change.current_revision]._number; }, @@ -345,13 +320,44 @@ _getDiffDrafts: function() { return this.$.restAPI.getDiffDrafts(this._changeNum).then( - function(drafts) { return this._diffDrafts = drafts; }.bind(this)); + function(drafts) { + return this._diffDrafts = drafts; + }.bind(this)); }, _getLoggedIn: function() { return this.$.restAPI.getLoggedIn(); }, + _getProjectConfig: function() { + return this.$.restAPI.getProjectConfig(this._change.project).then( + function(config) { + this._projectConfig = config; + }.bind(this)); + }, + + _getChangeDetail: function() { + return this.$.restAPI.getChangeDetail(this._changeNum).then( + function(change) { + this._change = change; + }.bind(this)); + }, + + _getComments: function() { + return this.$.restAPI.getDiffComments(this._changeNum).then( + function(comments) { + this._comments = comments; + }.bind(this)); + }, + + _getCommitInfo: function() { + return this.$.restAPI.getChangeCommitInfo( + this._changeNum, this._patchNum).then( + function(commitInfo) { + this._commitInfo = commitInfo; + }.bind(this)); + }, + _reloadDiffDrafts: function() { this._diffDrafts = {}; this._getDiffDrafts().then(function() { @@ -362,24 +368,31 @@ }, _reload: function() { + this._loading = true; + this._getLoggedIn().then(function(loggedIn) { if (!loggedIn) { return; } this._reloadDiffDrafts(); }.bind(this)); - var detailCompletes = this.$.detailXHR.generateRequest().completes; - this.$.commentsXHR.generateRequest(); + var detailCompletes = this._getChangeDetail().then(function() { + this._loading = false; + }.bind(this)); + this._getComments(); var reloadPatchNumDependentResources = function() { return Promise.all([ - this.$.commitInfoXHR.generateRequest().completes, + this._getCommitInfo(), this.$.actions.reload(), this.$.fileList.reload(), ]); }.bind(this); var reloadDetailDependentResources = function() { - return this.$.relatedChanges.reload(); + return Promise.all([ + this.$.relatedChanges.reload(), + this._getProjectConfig(), + ]); }.bind(this); this._resetHeaderEl();
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html index 6d4d4b0..ee08ba1 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
@@ -35,27 +35,12 @@ <script> suite('gr-change-view tests', function() { var element; - var server; setup(function() { + stub('gr-rest-api-interface', { + getAccount: function() { return Promise.resolve(null); }, + }); element = fixture('basic'); - element.$.configXHR.auto = false; - - server = sinon.fakeServer.create(); - // Eat any requests made by elements in this suite. - server.respondWith( - 'GET', - /\/changes\/(.*)/, - [ - 200, - {'Content-Type': 'application/json'}, - ')]}\'\n{}', - ] - ); - }); - - teardown(function() { - server.restore(); }); test('keyboard shortcuts', function() { @@ -66,7 +51,6 @@ 'Should navigate to /'); showStub.restore(); - MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a' var overlayEl = element.$.replyOverlay; assert.isFalse(overlayEl.opened);