Merge "Move account-status endpoint to account-label"
diff --git a/Documentation/pg-plugin-endpoints.txt b/Documentation/pg-plugin-endpoints.txt
index c16d0d4..f2a72f1 100644
--- a/Documentation/pg-plugin-endpoints.txt
+++ b/Documentation/pg-plugin-endpoints.txt
@@ -228,3 +228,13 @@
+
current revision displayed, an instance of
link:rest-api-changes.html#revision-info[RevisionInfo]
+
+=== account-status-icon
+The `account-status-icon` extension point adds an icon to all account chips and
+labels.
+
+In addition to default parameters, the following are available:
+
+* `accountId`
++
+the Id of the account that the status icon should correspond to.
\ No newline at end of file
diff --git a/polygerrit-ui/app/elements/shared/gr-account-chip/gr-account-chip.ts b/polygerrit-ui/app/elements/shared/gr-account-chip/gr-account-chip.ts
index 3dba057..9ce62c1 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-chip/gr-account-chip.ts
+++ b/polygerrit-ui/app/elements/shared/gr-account-chip/gr-account-chip.ts
@@ -96,6 +96,7 @@
border: 1px solid var(--border-color);
display: inline-flex;
padding: 0 1px;
+ --account-label-padding-horizontal: 6px;
}
:host:focus {
border-color: transparent;
@@ -131,9 +132,6 @@
/* eslint-disable lit/prefer-static-styles */
const customStyle = html`
<style>
- .container {
- --account-label-padding-horizontal: 6px;
- }
gr-button.remove::part(paper-button),
gr-button.remove:hover::part(paper-button),
gr-button.remove:focus::part(paper-button) {
diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts
index bff4e20..99e10ae 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts
+++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts
@@ -17,6 +17,8 @@
import '@polymer/iron-icon/iron-icon';
import '../gr-avatar/gr-avatar';
import '../gr-hovercard-account/gr-hovercard-account';
+import '../../plugins/gr-endpoint-decorator/gr-endpoint-decorator';
+import '../../plugins/gr-endpoint-param/gr-endpoint-param';
import {getAppContext} from '../../../services/app-context';
import {getDisplayName} from '../../../utils/display-name-util';
import {isSelf, isServiceUser} from '../../../utils/account-util';
@@ -254,15 +256,16 @@
? html`<gr-avatar .account="${account}" imageSize="32"></gr-avatar>`
: ''}
<span class="text" part="gr-account-label-text">
- <span class="name"
- >${this._computeName(account, this.firstName, this._config)}</span
- >
+ <span class="name">
+ ${this._computeName(account, this.firstName, this._config)}
+ </span>
${!this.hideStatus && account.status
? html`<iron-icon
class="status"
icon="gr-icons:unavailable"
></iron-icon>`
: ''}
+ ${this.renderAccountStatusPlugins()}
</span>
</span>`;
}
@@ -281,6 +284,22 @@
});
}
+ // Note: account statuses from plugins are shown regardless of
+ // hideStatus setting
+ private renderAccountStatusPlugins() {
+ if (!this.account?._account_id) {
+ return;
+ }
+ return html`
+ <gr-endpoint-decorator name="account-status-icon">
+ <gr-endpoint-param
+ name="accountId"
+ .value="${this.account._account_id}"
+ ></gr-endpoint-param>
+ </gr-endpoint-decorator>
+ `;
+ }
+
handleKeyDown(e: KeyboardEvent) {
if (modifierPressed(e)) return;
// Only react to `return` and `space`.
diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.ts b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.ts
index 731b7c4..edeb399 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.ts
@@ -75,6 +75,9 @@
<span class="name">
kermit
</span>
+ <gr-endpoint-decorator name="account-status-icon">
+ <gr-endpoint-param name="accountId"></gr-endpoint-param>
+ </gr-endpoint-decorator>
</span>
</span>
`);
diff --git a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link.ts b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link.ts
index bbb743a..f0c9106 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link.ts
+++ b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link.ts
@@ -99,12 +99,6 @@
exportparts="gr-account-label-text: gr-account-link-text"
>
</gr-account-label>
- <gr-endpoint-decorator name="account-status">
- <gr-endpoint-param
- name="accountId"
- .value="${this.account._account_id}"
- ></gr-endpoint-param>
- </gr-endpoint-decorator>
</a>
</span>`;
}
diff --git a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.ts b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.ts
index 00990b8..a78f32f 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.ts
@@ -45,9 +45,6 @@
exportparts="gr-account-label-text: gr-account-link-text"
>
</gr-account-label>
- <gr-endpoint-decorator name="account-status">
- <gr-endpoint-param name="accountId"></gr-endpoint-param>
- </gr-endpoint-decorator>
</a>
</span>
`);