Fix overlapping text in gr-message Previously, the amount of space the date took up on the screen was estimated, but different types of formatting (time with AM/PM vs Date) took up different amounts of space. Estimating was not working. Instead, update the collapsed message to use flexbox. The message content shrinks/expands when the width of the page changes, and will fit regardless of the width of the date in a particular message. This change also displays text content in a regular div while collpased rather than gr-formatted-text so that it can be constrained to a single line. Bug: Issue 4608 Change-Id: Id34b93c33b376d522f1d396a69133f854ad4dbf6
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.html b/polygerrit-ui/app/elements/change/gr-message/gr-message.html index 2fccfe43..1afd548 100644 --- a/polygerrit-ui/app/elements/change/gr-message/gr-message.html +++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
@@ -39,9 +39,10 @@ left: var(--default-horizontal-margin); } .collapsed .contentContainer { + align-items: baseline; color: #777; - height: 4.5em; - overflow: hidden; + display: flex; + white-space: nowrap; } .showAvatar.expanded .contentContainer { margin-left: calc(var(--default-horizontal-margin) + 2.5em); @@ -50,10 +51,6 @@ .showAvatar.collapsed .contentContainer { margin-left: calc(var(--default-horizontal-margin) + 1.75em); } - .showAvatar.collapsed .contentContainer, - .hideAvatar.collapsed .contentContainer { - margin-right: calc(var(--default-horizontal-margin) + 2.25em); - } .hideAvatar.collapsed .contentContainer, .hideAvatar.expanded .contentContainer { margin-left: 0; @@ -86,11 +83,26 @@ display: inline; } .collapsed gr-comment-list, - .collapsed .replyContainer { + .collapsed .replyContainer, + .collapsed .hideOnCollapsed, + .hideOnOpen { display: none; } + .collapsed .hideOnOpen { + display: block; + } + .collapsed .content { + flex: 1; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + } + .collapsed .date { + position: static; + } .collapsed .name { color: var(--default-text-color); + margin-right: .4em; } .expanded .name { cursor: pointer; @@ -111,8 +123,9 @@ <div class="name" on-tap="_handleNameTap">[[author.name]]</div> <template is="dom-if" if="[[message.message]]"> <div class="content"> + <div class="message hideOnOpen">[[message.message]]</div> <gr-formatted-text - class="message" + class="message hideOnCollapsed" content="[[message.message]]" config="[[projectConfig.commentlinks]]"></gr-formatted-text> <gr-comment-list @@ -126,10 +139,12 @@ </a> </template> <template is="dom-if" if="[[message.reviewer]]"> - set reviewer status for - <gr-account-chip account="[[message.reviewer]]"> - </gr-account-chip> - to [[message.state]]. + <div class="content"> + set reviewer status for + <gr-account-chip account="[[message.reviewer]]"> + </gr-account-chip> + to [[message.state]]. + </div> <gr-date-formatter class="date" date-str="[[message.updated]]"> </gr-date-formatter> </template>