Expand inline diffs based on user preference
If a user has enabled the expand inline diffs preference, the file list expands the file inline instead of opening a diff view. The toggle arrow is also hidden when this preference is selected. Feature: Issue 5115 Change-Id: I814d7dfff0348a8a315c992c0259810fcbc4704f
This commit is contained in:
@@ -232,7 +232,8 @@ limitations under the License.
|
||||
[[_computeFileStatus(file.status)]]
|
||||
</div>
|
||||
<a class$="[[_computePathClass(file.__expanded)]]"
|
||||
href$="[[_computeDiffURL(changeNum, patchRange, file.__path)]]">
|
||||
href$="[[_computeDiffURL(changeNum, patchRange, file.__path)]]"
|
||||
on-click="_handleFileClick">
|
||||
<div title$="[[_computeFileDisplayName(file.__path)]]"
|
||||
class="fullFileName">
|
||||
[[_computeFileDisplayName(file.__path)]]
|
||||
@@ -265,7 +266,7 @@ limitations under the License.
|
||||
[[_formatPercentage(file.size, file.size_delta)]]
|
||||
</span>
|
||||
</div>
|
||||
<div class="show-hide">
|
||||
<div class="show-hide" hidden$="[[_userPrefs.expand_inline_diffs]]">
|
||||
<label class="show-hide">
|
||||
<input type="checkbox" class="show-hide"
|
||||
checked$="[[!file.__expanded]]" data-path$="[[file.__path]]"
|
||||
|
||||
@@ -312,6 +312,15 @@
|
||||
});
|
||||
},
|
||||
|
||||
_handleFileClick: function(e) {
|
||||
// If the user prefers to expand inline diffs rather than opening the diff
|
||||
// view, intercept the click event.
|
||||
if (this._userPrefs && this._userPrefs.expand_inline_diffs) {
|
||||
e.preventDefault();
|
||||
this._handleHiddenChange(e);
|
||||
}
|
||||
},
|
||||
|
||||
_handleShiftLeftKey: function(e) {
|
||||
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
|
||||
if (!this._showInlineDiffs) { return; }
|
||||
|
||||
@@ -617,14 +617,6 @@ limitations under the License.
|
||||
assert.isNotOk(element.$$('.expanded'));
|
||||
});
|
||||
|
||||
test('expanded attribute set on path when expanded', function() {
|
||||
element._files = [
|
||||
{__path: '/COMMIT_MSG', __expanded: true},
|
||||
];
|
||||
flushAsynchronousOperations();
|
||||
assert.isOk(element.$$('.expanded'));
|
||||
});
|
||||
|
||||
test('_getDiffViewMode', function() {
|
||||
// No user prefs or diff view mode set.
|
||||
assert.equal(element._getDiffViewMode(), 'SIDE_BY_SIDE');
|
||||
@@ -638,5 +630,34 @@ limitations under the License.
|
||||
assert.equal(element._getDiffViewMode(
|
||||
element.diffViewMode, element._userPrefs), 'SIDE_BY_SIDE');
|
||||
});
|
||||
test('expand_inline_diffs user preference', function() {
|
||||
element._files = [
|
||||
{__path: '/COMMIT_MSG', __expanded: false},
|
||||
];
|
||||
element.changeNum = '42';
|
||||
element.patchRange = {
|
||||
basePatchNum: 'PARENT',
|
||||
patchNum: '2',
|
||||
};
|
||||
flushAsynchronousOperations();
|
||||
var commitMsgFile = Polymer.dom(element.root)
|
||||
.querySelectorAll('.row:not(.header) a')[0];
|
||||
|
||||
// Remove href attribute so the app doesn't route to a diff view
|
||||
commitMsgFile.removeAttribute('href');
|
||||
var hiddenChangeSpy = sandbox.spy(element, '_handleHiddenChange');
|
||||
|
||||
MockInteractions.tap(commitMsgFile);
|
||||
flushAsynchronousOperations();
|
||||
assert(hiddenChangeSpy.notCalled, 'file is opened as diff view');
|
||||
assert.isNotOk(element.$$('.expanded'));
|
||||
|
||||
element._userPrefs = {expand_inline_diffs: true};
|
||||
flushAsynchronousOperations();
|
||||
MockInteractions.tap(commitMsgFile);
|
||||
flushAsynchronousOperations();
|
||||
assert(hiddenChangeSpy.calledOnce, 'file is expanded');
|
||||
assert.isOk(element.$$('.expanded'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user