mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-21 19:42:54 +08:00
Bumps the lint group with 4 updates in the / directory: [@discourse/lint-configs](https://github.com/discourse/lint-configs), [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint), [eslint](https://github.com/eslint/eslint) and [stylelint](https://github.com/stylelint/stylelint). Updates `@discourse/lint-configs` from 2.22.0 to 2.28.0 - [Commits](https://github.com/discourse/lint-configs/commits) Updates `ember-template-lint` from 7.7.0 to 7.9.1 - [Release notes](https://github.com/ember-template-lint/ember-template-lint/releases) - [Changelog](https://github.com/ember-template-lint/ember-template-lint/blob/master/CHANGELOG.md) - [Commits](https://github.com/ember-template-lint/ember-template-lint/commits) Updates `eslint` from 9.27.0 to 9.32.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.27.0...v9.32.0) Updates `stylelint` from 16.19.1 to 16.22.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/16.19.1...16.22.0) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Discourse CI <ci@ci.invalid> Co-authored-by: Jarek Radosz <jarek@cvx.dev>
111 lines
3 KiB
Text
Vendored
111 lines
3 KiB
Text
Vendored
import Component, { Textarea } from "@ember/component";
|
|
import { action } from "@ember/object";
|
|
import { equal } from "@ember/object/computed";
|
|
import { htmlSafe } from "@ember/template";
|
|
import { tagName } from "@ember-decorators/component";
|
|
import { eq } from "truth-helpers";
|
|
import TextField from "discourse/components/text-field";
|
|
import discourseComputed from "discourse/lib/decorators";
|
|
import { i18n } from "discourse-i18n";
|
|
import ComboBox from "select-kit/components/combo-box";
|
|
|
|
const CUSTOM_REASON_KEY = "custom";
|
|
|
|
@tagName("")
|
|
export default class AdminPenaltyReason extends Component {
|
|
selectedReason = CUSTOM_REASON_KEY;
|
|
customReason = "";
|
|
|
|
reasonKeys = [
|
|
"not_listening_to_staff",
|
|
"consuming_staff_time",
|
|
"combative",
|
|
"in_wrong_place",
|
|
"no_constructive_purpose",
|
|
CUSTOM_REASON_KEY,
|
|
];
|
|
|
|
@equal("selectedReason", CUSTOM_REASON_KEY) isCustomReason;
|
|
|
|
@discourseComputed("reasonKeys")
|
|
reasons(keys) {
|
|
return keys.map((key) => {
|
|
return { id: key, name: i18n(`admin.user.suspend_reasons.${key}`) };
|
|
});
|
|
}
|
|
|
|
@action
|
|
setSelectedReason(value) {
|
|
this.set("selectedReason", value);
|
|
this.setReason();
|
|
}
|
|
|
|
@action
|
|
setCustomReason(value) {
|
|
this.set("customReason", value);
|
|
this.setReason();
|
|
}
|
|
|
|
setReason() {
|
|
if (this.isCustomReason) {
|
|
this.set("reason", this.customReason);
|
|
} else {
|
|
this.set(
|
|
"reason",
|
|
i18n(`admin.user.suspend_reasons.${this.selectedReason}`)
|
|
);
|
|
}
|
|
}
|
|
|
|
<template>
|
|
<div class="penalty-reason-controls">
|
|
{{#if (eq @penaltyType "suspend")}}
|
|
<label class="suspend-reason-title">{{i18n
|
|
"admin.user.suspend_reason_title"
|
|
}}</label>
|
|
<ComboBox
|
|
@content={{this.reasons}}
|
|
@value={{this.selectedReason}}
|
|
@onChange={{this.setSelectedReason}}
|
|
class="suspend-reason"
|
|
/>
|
|
|
|
{{#if this.isCustomReason}}
|
|
<TextField
|
|
@value={{this.customReason}}
|
|
@onChange={{this.setCustomReason}}
|
|
class="suspend-reason"
|
|
/>
|
|
{{/if}}
|
|
{{else if (eq @penaltyType "silence")}}
|
|
<label class="silence-reason-title">
|
|
{{htmlSafe (i18n "admin.user.silence_reason_label")}}</label>
|
|
|
|
<ComboBox
|
|
@content={{this.reasons}}
|
|
@value={{this.selectedReason}}
|
|
@onChange={{this.setSelectedReason}}
|
|
class="silence-reason"
|
|
/>
|
|
|
|
{{#if this.isCustomReason}}
|
|
<TextField
|
|
@value={{this.customReason}}
|
|
@onChange={{this.setCustomReason}}
|
|
@placeholderKey="admin.user.silence_reason_placeholder"
|
|
class="silence-reason"
|
|
/>
|
|
{{/if}}
|
|
{{/if}}
|
|
</div>
|
|
|
|
<div class="penalty-message-controls">
|
|
<label>{{i18n "admin.user.suspend_message"}}</label>
|
|
<Textarea
|
|
@value={{this.message}}
|
|
class="suspend-message"
|
|
placeholder={{i18n "admin.user.suspend_message_placeholder"}}
|
|
/>
|
|
</div>
|
|
</template>
|
|
}
|