PolyGerrit diff comment tweaks
+ Use buttons instead of links so that the space bar can be used
to activate them as well as enter.
+ Allow 'esc' as a shortcut to cancel.
+ Add 2px padding to the textarea so that it matches the mirror
it uses internally and resizes correctly.
Bug: Issue 3780
Change-Id: Iad9dc96274af6946f3632be53b106ef80f7ba6ca
diff --git a/polygerrit-ui/app/elements/gr-diff-comment.html b/polygerrit-ui/app/elements/gr-diff-comment.html
index c152654..10a3ba5 100644
--- a/polygerrit-ui/app/elements/gr-diff-comment.html
+++ b/polygerrit-ui/app/elements/gr-diff-comment.html
@@ -25,6 +25,9 @@
:host {
background-color: #ffd;
display: block;
+ --iron-autogrow-textarea: {
+ padding: 2px;
+ };
}
:host([disabled]) {
pointer-events: none;
@@ -74,11 +77,9 @@
padding-top: 0;
}
.action {
- margin-right: 1em;
- }
- .action[disabled] {
- opacity: .5;
- pointer-events: none;
+ cursor: pointer;
+ margin-right: .5em;
+ padding: .2em .6em .3em;
}
.danger {
display: flex;
@@ -134,18 +135,18 @@
disabled="{{disabled}}"
rows="4"
bind-value="{{_editDraft}}"
- on-keyup="_handleTextareaKeyup"></iron-autogrow-textarea>
+ on-keyup="_handleTextareaKeyup"
+ on-keydown="_handleTextareaKeydown"></iron-autogrow-textarea>
<div class="message">[[comment.message]]</div>
<div class="actions" hidden$="[[!showActions]]">
- <a class="action reply" href="#" on-tap="_handleReply">Reply</a>
- <a class="action done" href="#" on-tap="_handleDone">Done</a>
- <a class="action edit" href="#" on-tap="_handleEdit">Edit</a>
- <a class="action save" href="#"
- disabled$="[[_computeSaveDisabled(_editDraft)]]"
- on-tap="_handleSave">Save</a>
- <a class="action cancel" href="#" on-tap="_handleCancel">Cancel</a>
+ <button class="action reply" on-tap="_handleReply">Reply</button>
+ <button class="action done" on-tap="_handleDone">Done</button>
+ <button class="action edit" on-tap="_handleEdit">Edit</button>
+ <button class="action save" on-tap="_handleSave"
+ disabled$="[[_computeSaveDisabled(_editDraft)]]">Save</button>
+ <button class="action cancel" on-tap="_handleCancel">Cancel</button>
<div class="danger">
- <a class="action discard" href="#" on-tap="_handleDiscard">Discard</a>
+ <button class="action discard" on-tap="_handleDiscard">Discard</button>
</div>
</div>
</div>
@@ -274,6 +275,12 @@
this._heightChanged();
},
+ _handleTextareaKeydown: function(e) {
+ if (e.keyCode == 27) { // 'esc'
+ this._handleCancel(e);
+ }
+ },
+
_handleLinkTap: function(e) {
e.preventDefault();
var hash = this._computeLinkToComment(this.comment);
diff --git a/polygerrit-ui/app/test/gr-diff-comment-test.html b/polygerrit-ui/app/test/gr-diff-comment-test.html
index 050a1a0..d6e46bd 100644
--- a/polygerrit-ui/app/test/gr-diff-comment-test.html
+++ b/polygerrit-ui/app/test/gr-diff-comment-test.html
@@ -190,12 +190,14 @@
var numDiscardEvents = 0;
element.addEventListener('discard', function(e) {
numDiscardEvents++;
- if (numDiscardEvents == 2) {
+ if (numDiscardEvents == 3) {
done();
}
});
MockInteractions.tap(element.$$('.cancel'));
MockInteractions.tap(element.$$('.discard'));
+ MockInteractions.pressAndReleaseKeyOn(
+ element.$.editTextarea.textarea, 27); // 'esc'
});
test('draft saving/editing', function(done) {