Merge "Replace "attached" with observers"

This commit is contained in:
Wyatt Allen
2017-06-27 21:30:23 +00:00
committed by Gerrit Code Review
3 changed files with 45 additions and 32 deletions

View File

@@ -73,6 +73,7 @@
type: Object, type: Object,
notify: true, notify: true,
value() { return {}; }, value() { return {}; },
observer: '_viewStateChanged',
}, },
backPage: String, backPage: String,
hasParent: Boolean, hasParent: Boolean,
@@ -87,6 +88,7 @@
_diffPrefs: Object, _diffPrefs: Object,
_numFilesShown: { _numFilesShown: {
type: Number, type: Number,
value: DEFAULT_NUM_FILES_SHOWN,
observer: '_numFilesShownChanged', observer: '_numFilesShownChanged',
}, },
_account: { _account: {
@@ -221,9 +223,6 @@
} }
}); });
this._numFilesShown = this.viewState.numFilesShown ?
this.viewState.numFilesShown : DEFAULT_NUM_FILES_SHOWN;
this.addEventListener('comment-save', this._handleCommentSave.bind(this)); this.addEventListener('comment-save', this._handleCommentSave.bind(this));
this.addEventListener('comment-discard', this.addEventListener('comment-discard',
this._handleCommentDiscard.bind(this)); this._handleCommentDiscard.bind(this));
@@ -512,6 +511,11 @@
} }
}, },
_viewStateChanged(viewState) {
this._numFilesShown = viewState.numFilesShown ?
viewState.numFilesShown : DEFAULT_NUM_FILES_SHOWN;
},
_numFilesShownChanged(numFilesShown) { _numFilesShownChanged(numFilesShown) {
this.viewState.numFilesShown = numFilesShown; this.viewState.numFilesShown = numFilesShown;
}, },

View File

@@ -57,6 +57,7 @@
type: Object, type: Object,
notify: true, notify: true,
value() { return {}; }, value() { return {}; },
observer: '_changeViewStatehanged',
}, },
_patchRange: Object, _patchRange: Object,
@@ -120,6 +121,7 @@
observers: [ observers: [
'_getProjectConfig(_change.project)', '_getProjectConfig(_change.project)',
'_getFiles(_changeNum, _patchRange.*)', '_getFiles(_changeNum, _patchRange.*)',
'_setReviewedObserver(_loggedIn, params.*)',
], ],
keyBindings: { keyBindings: {
@@ -141,21 +143,7 @@
attached() { attached() {
this._getLoggedIn().then(loggedIn => { this._getLoggedIn().then(loggedIn => {
this._loggedIn = loggedIn; this._loggedIn = loggedIn;
if (loggedIn) {
this._setReviewed(true);
}
}); });
if (this.changeViewState.diffMode === null) {
// If screen size is small, always default to unified view.
this.$.restAPI.getPreferences().then(prefs => {
this.set('changeViewState.diffMode', prefs.default_diff_view);
});
}
if (this._path) {
this.fire('title-change',
{title: this._computeFileDisplayName(this._path)});
}
this.$.cursor.push('diffs', this.$.diff); this.$.cursor.push('diffs', this.$.diff);
}, },
@@ -476,6 +464,21 @@
}); });
}, },
_changeViewStatehanged(changeViewState) {
if (changeViewState.diffMode === null) {
// If screen size is small, always default to unified view.
this.$.restAPI.getPreferences().then(prefs => {
this.set('changeViewState.diffMode', prefs.default_diff_view);
});
}
},
_setReviewedObserver(_loggedIn) {
if (_loggedIn) {
this._setReviewed(true);
}
},
/** /**
* If the URL hash is a diff address then configure the diff cursor. * If the URL hash is a diff address then configure the diff cursor.
*/ */
@@ -492,14 +495,15 @@
}, },
_pathChanged(path) { _pathChanged(path) {
if (path) {
this.fire('title-change',
{title: this._computeFileDisplayName(path)});
}
if (this._fileList.length == 0) { return; } if (this._fileList.length == 0) { return; }
this.set('changeViewState.selectedFileIndex', this.set('changeViewState.selectedFileIndex',
this._fileList.indexOf(path)); this._fileList.indexOf(path));
if (this._loggedIn) {
this._setReviewed(true);
}
}, },
_getDiffURL(changeNum, patchRange, path) { _getDiffURL(changeNum, patchRange, path) {
@@ -522,6 +526,7 @@
_computeAvailablePatches(revisions) { _computeAvailablePatches(revisions) {
const patchNums = []; const patchNums = [];
if (!revisions) { return patchNums; }
for (const rev of Object.values(revisions)) { for (const rev of Object.values(revisions)) {
patchNums.push(rev._number); patchNums.push(rev._number);
} }

View File

@@ -54,6 +54,8 @@ limitations under the License.
getDiffChangeDetail() { return Promise.resolve(null); }, getDiffChangeDetail() { return Promise.resolve(null); },
getChangeFiles() { return Promise.resolve({}); }, getChangeFiles() { return Promise.resolve({}); },
saveFileReviewed() { return Promise.resolve(); }, saveFileReviewed() { return Promise.resolve(); },
getDiffRobotComments() { return Promise.resolve(); },
getDiffDrafts() { return Promise.resolve(); },
}); });
element = fixture('basic'); element = fixture('basic');
}); });
@@ -469,16 +471,21 @@ limitations under the License.
}); });
test('file review status', done => { test('file review status', done => {
element._loggedIn = true; stub('gr-rest-api-interface', {
element._changeNum = '42'; getDiffComments() { return Promise.resolve({}); },
element._patchRange = { });
basePatchNum: '1',
patchNum: '2',
};
element._fileList = ['/COMMIT_MSG'];
element._path = '/COMMIT_MSG';
const saveReviewedStub = sandbox.stub(element, '_saveReviewedState', const saveReviewedStub = sandbox.stub(element, '_saveReviewedState',
() => Promise.resolve()); () => Promise.resolve());
sandbox.stub(element.$.diff, 'reload');
element._loggedIn = true;
element.params = {
view: 'gr-diff-view',
changeNum: '42',
patchNum: '2',
basePatchNum: '1',
path: '/COMMIT_MSG',
};
flush(() => { flush(() => {
const commitMsg = Polymer.dom(element.root).querySelector( const commitMsg = Polymer.dom(element.root).querySelector(
@@ -625,7 +632,6 @@ limitations under the License.
suite('_loadCommentMap', () => { suite('_loadCommentMap', () => {
test('empty', done => { test('empty', done => {
stub('gr-rest-api-interface', { stub('gr-rest-api-interface', {
getDiffRobotComments() { return Promise.resolve({}); },
getDiffComments() { return Promise.resolve({}); }, getDiffComments() { return Promise.resolve({}); },
}); });
element._loadCommentMap().then(map => { element._loadCommentMap().then(map => {
@@ -636,7 +642,6 @@ limitations under the License.
test('paths in patch range', done => { test('paths in patch range', done => {
stub('gr-rest-api-interface', { stub('gr-rest-api-interface', {
getDiffRobotComments() { return Promise.resolve({}); },
getDiffComments() { getDiffComments() {
return Promise.resolve({ return Promise.resolve({
'path/to/file/one.cpp': [{patch_set: 3, message: 'lorem'}], 'path/to/file/one.cpp': [{patch_set: 3, message: 'lorem'}],
@@ -658,7 +663,6 @@ limitations under the License.
test('empty for paths outside patch range', done => { test('empty for paths outside patch range', done => {
stub('gr-rest-api-interface', { stub('gr-rest-api-interface', {
getDiffRobotComments() { return Promise.resolve({}); },
getDiffComments() { getDiffComments() {
return Promise.resolve({ return Promise.resolve({
'path/to/file/one.cpp': [{patch_set: 'PARENT', message: 'lorem'}], 'path/to/file/one.cpp': [{patch_set: 'PARENT', message: 'lorem'}],