Modernize image diff layout As per UX instructions, adds a border between the images and replaces the image outline with a box shadow. Change-Id: Iec157ce7e346cab217a49d6fcee5977c1702478c
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-image.js b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-image.js index 27f8d39..ec78421 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-image.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-image.js
@@ -35,6 +35,7 @@ GrDiffBuilderImage.prototype.constructor = GrDiffBuilderImage; GrDiffBuilderImage.prototype.renderDiff = function() { + this._outputEl.classList.add('image-diff'); const section = this._createElement('tbody', 'image-diff'); this._emitImagePair(section); @@ -75,10 +76,10 @@ GrDiffBuilderImage.prototype._emitImagePair = function(section) { const tr = this._createElement('tr'); - tr.appendChild(this._createElement('td')); + tr.appendChild(this._createElement('td', 'left lineNum blank')); tr.appendChild(this._createImageCell(this._baseImage, 'left', section)); - tr.appendChild(this._createElement('td')); + tr.appendChild(this._createElement('td', 'right lineNum blank')); tr.appendChild(this._createImageCell( this._revisionImage, 'right', section)); @@ -126,7 +127,7 @@ addNamesInLabel = true; } - tr.appendChild(this._createElement('td')); + tr.appendChild(this._createElement('td', 'left lineNum blank')); let td = this._createElement('td', 'left'); let label = this._createElement('label'); let nameSpan; @@ -145,7 +146,7 @@ td.appendChild(label); tr.appendChild(td); - tr.appendChild(this._createElement('td')); + tr.appendChild(this._createElement('td', 'right lineNum blank')); td = this._createElement('td', 'right'); label = this._createElement('label'); labelSpan = this._createElement('span', 'label');
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.js b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.js index 997e1ba..409ccf9 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder.js
@@ -544,7 +544,7 @@ return result; }; - GrDiffBuilder.prototype._createElement = function(tagName, className) { + GrDiffBuilder.prototype._createElement = function(tagName, classStr) { const el = document.createElement(tagName); // When Shady DOM is being used, these classes are added to account for // Polymer's polyfill behavior. In order to guarantee sufficient @@ -553,8 +553,10 @@ // automatically) are not being used for performance reasons, this is // done manually. el.classList.add('style-scope', 'gr-diff'); - if (className) { - el.classList.add(className); + if (classStr) { + for (const className of classStr.split(' ')) { + el.classList.add(className); + } } return el; };
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html index 129bff1..a00ecb3 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html
@@ -81,6 +81,13 @@ teardown(() => { sandbox.restore(); }); + test('_createElement classStr applies all classes', () => { + const node = builder._createElement('div', 'test classes'); + assert.isTrue(node.classList.contains('gr-diff')); + assert.isTrue(node.classList.contains('test')); + assert.isTrue(node.classList.contains('classes')); + }); + test('context control buttons', () => { const section = {}; const line = {contextGroup: {lines: []}};
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html index 718fa17..17b3187 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html
@@ -55,11 +55,15 @@ background-color: var(--table-header-background-color); } .image-diff .gr-diff { + background-color: var(--table-header-background-color); text-align: center; } .image-diff img { + box-shadow: 0 1px 3px rgba(0, 0, 0, .3); max-width: 50em; - outline: 1px solid var(--border-color); + } + .image-diff .right.lineNum { + border-left: 1px solid var(--border-color); } .image-diff label, .binary-diff label {