@switch (activeTab()) {
@case ('extensions') {
@for (
item of [
{ label: 'Settings pages', value: extensionCounts().settingsPages },
{ label: 'App pages', value: extensionCounts().appPages },
{ label: 'Side panels', value: extensionCounts().sidePanels },
{ label: 'Channel sections', value: extensionCounts().channelSections },
{ label: 'Composer actions', value: extensionCounts().composerActions },
{ label: 'Profile actions', value: extensionCounts().profileActions },
{ label: 'Toolbar actions', value: extensionCounts().toolbarActions },
{ label: 'Embed renderers', value: extensionCounts().embeds }
];
track item.label
) {
{{ item.label }}
{{ item.value }}
}
Conflict diagnostics
@if (uiConflicts().length === 0) {
No duplicate route, action, embed, channel, panel, or settings contribution ids detected.
} @else {
@for (conflict of uiConflicts(); track conflict.kind + conflict.contributionId) {
{{ conflict.kind }} / {{ conflict.contributionId }}
conflicts in {{ conflict.pluginIds.join(', ') }}
}
}
}
@case ('requirements') {
@if (requirementComparisons().length === 0) {
No server plugin requirements for the current room.
} @else {
@for (comparison of requirementComparisons(); track comparison.pluginId) {
{{ comparison.installed?.title ?? comparison.pluginId }}
{{ comparison.pluginId }}
{{ comparison.status }}
@if (comparison.requirement) {
Server status: {{ comparison.requirement.status }}
@if (comparison.requirement.versionRange) {
Version range: {{ comparison.requirement.versionRange }}
}
@if (comparison.requirement.reason) {
{{ comparison.requirement.reason }}
}
}
}
}
}
@case ('settings') {
@for (entry of entries(); track trackEntry($index, entry)) {
}
@if (selectedPlugin(); as plugin) {
{{ plugin.manifest.title }} settings
@if (selectedSettingsPages().length > 0) {
@for (page of selectedSettingsPages(); track page.id) {
{{ page.contribution.label }}
}
}
@if (selectedSettingsSchema()) {
{{ selectedSettingsSchema() | json }}
} @else {
This plugin does not declare a settings schema.
}
}
}
@case ('docs') {
@for (entry of entries(); track trackEntry($index, entry)) {
}
@if (selectedPlugin(); as plugin) {
{{ plugin.manifest.title }}
{{ plugin.manifest.description }}
{{ plugin.manifest | json }}
}
}
@case ('logs') {
@if (!selectedPlugin()) {
No plugins installed.
} @else {
@for (entry of entries(); track trackEntry($index, entry)) {
}
@if (selectedLogs().length === 0) {
No logs for selected plugin.
} @else {
@for (log of selectedLogs(); track log.timestamp) {
{{ log.level }}
{{ log.timestamp | date: 'short' }}
{{ log.message }}
}
}
}
}
@default {
@if (entries().length === 0) {
{{ emptyTitle() }}
{{ emptyBody() }}
} @else {
@for (entry of entries(); track trackEntry($index, entry)) {
{{ entry.manifest.title }}
{{ entry.state }}
v{{ entry.manifest.version }}
{{ entry.manifest.description }}
{{ entry.manifest.id }}
@if (entry.error) {
{{ entry.error }}
}
}
}
}
}