mirror of
https://github.com/discourse/discourse.git
synced 2025-03-02 20:04:27 +08:00

This commit converts the current chat plugin UI into the new "show plugin" UI already followed by AI and Gamification. In the process, I also: * Made a dedicated /new route to create new webhooks * Converted the webhook form to FormKit * Made some fixes and improvements to the `AdminPluginConfigPage`, `AdminPageHeader`, and `AdminPageSubheader` generic components, so more plugins can adopt the UI guidelines too. This includes adding a header outlet so plugins can add action buttons to the plugin show page header. * Fixes the submit button loading state for FormKit (by Joffrey) --------- Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
53 lines
1.5 KiB
Plaintext
53 lines
1.5 KiB
Plaintext
import Component from "@glimmer/component";
|
|
import { hash } from "@ember/helper";
|
|
import { htmlSafe } from "@ember/template";
|
|
import i18n from "discourse-common/helpers/i18n";
|
|
import {
|
|
DangerButton,
|
|
DefaultButton,
|
|
PrimaryButton,
|
|
} from "admin/components/admin-page-action-button";
|
|
|
|
export default class AdminPageSubheader extends Component {
|
|
get title() {
|
|
if (this.args.titleLabelTranslated) {
|
|
return this.args.titleLabelTranslated;
|
|
} else if (this.args.titleLabel) {
|
|
return i18n(this.args.titleLabel);
|
|
}
|
|
}
|
|
|
|
get description() {
|
|
if (this.args.descriptionLabelTranslated) {
|
|
return this.args.descriptionLabelTranslated;
|
|
} else if (this.args.descriptionLabel) {
|
|
return i18n(this.args.descriptionLabel);
|
|
}
|
|
}
|
|
|
|
<template>
|
|
<div class="admin-page-subheader">
|
|
<div class="admin-page-subheader__title-row">
|
|
<h3 class="admin-page-subheader__title">{{this.title}}</h3>
|
|
<div class="admin-page-subheader__actions">
|
|
{{yield
|
|
(hash
|
|
Primary=PrimaryButton Default=DefaultButton Danger=DangerButton
|
|
)
|
|
to="actions"
|
|
}}
|
|
</div>
|
|
</div>
|
|
|
|
{{#if this.description}}
|
|
<p class="admin-page-subheader__description">
|
|
{{htmlSafe this.description}}
|
|
{{#if @learnMoreUrl}}
|
|
{{htmlSafe (i18n "learn_more_with_link" url=@learnMoreUrl)}}
|
|
{{/if}}
|
|
</p>
|
|
{{/if}}
|
|
</div>
|
|
</template>
|
|
}
|