Move assignment status into the component

This commit is contained in:
Andrei Prigorshnev 2024-04-01 22:57:55 +04:00
parent 58d785cf8f
commit a1bcdd1d9b
No known key found for this signature in database
GPG Key ID: 185E0A5F45783902
4 changed files with 31 additions and 24 deletions

View File

@ -29,18 +29,7 @@
{{/if}}
</div>
{{#if this.siteSettings.enable_assign_status}}
<div class="control-group assign-status">
<label>{{i18n "discourse_assign.assign_modal.status_label"}}</label>
<ComboBox
@id="assign-status"
@content={{this.availableStatuses}}
@value={{this.status}}
@onChange={{fn (mut @model.status)}}
/>
</div>
{{/if}}
<Assignment
@note={{@model.note}}
@status={{@model.status}}
@onSubmit={{this.assign}} />

View File

@ -18,18 +18,6 @@ export default class AssignUserForm extends Component {
this.args.formApi.submit = this.assign;
}
get availableStatuses() {
return this.siteSettings.assign_statuses
.split("|")
.map((status) => ({ id: status, name: status }));
}
get status() {
return (
this.args.model.status || this.siteSettings.assign_statuses.split("|")[0]
);
}
@action
handleTextAreaKeydown(event) {
if ((event.ctrlKey || event.metaKey) && event.key === "Enter") {

View File

@ -1,3 +1,15 @@
{{#if this.siteSettings.enable_assign_status}}
<div class="control-group assign-status">
<label>{{i18n "discourse_assign.assign_modal.status_label"}}</label>
<ComboBox
@id="assign-status"
@content={{this.availableStatuses}}
@value={{this.status}}
@onChange={{fn (mut @status)}}
/>
</div>
{{/if}}
<div class="control-group assign-status">
<label>
{{i18n "discourse_assign.assign_modal.note_label"}}&nbsp;<span class="label-optional"

View File

@ -4,10 +4,28 @@ import { action } from "@ember/object";
import { inject as service } from "@ember/service";
export default class Assignment extends Component {
@service siteSettings;
constructor() {
super(...arguments);
}
get status() {
return this.args.status || this.#assignStatuses[0];
}
get availableStatuses() {
return this.#assignStatuses.map((status) => ({ id: status, name: status }));
}
@action
handleTextAreaKeydown(event) {
if ((event.ctrlKey || event.metaKey) && event.key === "Enter") {
this.args.onSubmit();
}
}
get #assignStatuses() {
return this.siteSettings.assign_statuses.split("|");
}
}