A new modal for editing topic assignments
This commit is contained in:
parent
47245339e7
commit
70a7585777
|
@ -0,0 +1,24 @@
|
|||
<DModal class="assign" @title={{this.title}} @closeModal={{@closeModal}}>
|
||||
<:body>
|
||||
<p>Edit topic assignments form</p>
|
||||
<!-- <AssignUserForm-->
|
||||
<!-- @model={{this.model}}-->
|
||||
<!-- @onSubmit={{this.onSubmit}}-->
|
||||
<!-- @formApi={{this.formApi}}-->
|
||||
<!-- />-->
|
||||
</:body>
|
||||
|
||||
<:footer>
|
||||
<DButton
|
||||
class="btn-primary"
|
||||
@action={{this.formApi.submit}}
|
||||
@label={{if
|
||||
this.model.reassign
|
||||
"discourse_assign.reassign.title"
|
||||
"discourse_assign.assign_modal.assign"
|
||||
}}
|
||||
/>
|
||||
|
||||
<DModalCancel @close={{@closeModal}} />
|
||||
</:footer>
|
||||
</DModal>
|
|
@ -0,0 +1,27 @@
|
|||
import Component from "@glimmer/component";
|
||||
import { action } from "@ember/object";
|
||||
import { inject as service } from "@ember/service";
|
||||
import { TrackedObject } from "@ember-compat/tracked-built-ins";
|
||||
import I18n from "I18n";
|
||||
|
||||
export default class EditTopicAssignments extends Component {
|
||||
@service taskActions;
|
||||
|
||||
model = new TrackedObject(this.args.model);
|
||||
|
||||
// `submit` property will be mutated by the `AssignUserForm` component
|
||||
formApi = {
|
||||
submit() {},
|
||||
};
|
||||
|
||||
get title() {
|
||||
const title = this.model.topic.isAssigned() ? "reassign_title" : "title";
|
||||
return I18n.t(`discourse_assign.assign_modal.${title}`);
|
||||
}
|
||||
|
||||
@action
|
||||
async onSubmit() {
|
||||
this.args.closeModal();
|
||||
await this.taskActions.assign(this.model);
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ import { htmlSafe } from "@ember/template";
|
|||
import { renderAvatar } from "discourse/helpers/user-avatar";
|
||||
import { iconHTML } from "discourse-common/lib/icon-library";
|
||||
import I18n from "I18n";
|
||||
import EditTopicAssignments from "../components/modal/edit-topic-assignments";
|
||||
|
||||
const DEPENDENT_KEYS = [
|
||||
"topic.assigned_to_user",
|
||||
|
@ -22,6 +23,7 @@ export default {
|
|||
}
|
||||
|
||||
const taskActions = getOwner(this).lookup("service:task-actions");
|
||||
const modal = getOwner(this).lookup("service:modal");
|
||||
const firstPostId = this.topic.postStream.firstPostId;
|
||||
|
||||
switch (id) {
|
||||
|
@ -42,9 +44,10 @@ export default {
|
|||
break;
|
||||
}
|
||||
case "reassign": {
|
||||
await taskActions.showAssignModal(this.topic, {
|
||||
targetType: "Topic",
|
||||
isAssigned: this.topic.isAssigned(),
|
||||
await modal.show(EditTopicAssignments, {
|
||||
model: {
|
||||
topic: this.topic,
|
||||
},
|
||||
onSuccess: () =>
|
||||
this.appEvents.trigger("post-stream:refresh", { id: firstPostId }),
|
||||
});
|
||||
|
|
|
@ -17,6 +17,7 @@ import I18n from "I18n";
|
|||
import BulkAssign from "../components/bulk-actions/assign-user";
|
||||
import BulkActionsAssignUser from "../components/bulk-actions/bulk-assign-user";
|
||||
import TopicLevelAssignMenu from "../components/topic-level-assign-menu";
|
||||
import EditTopicAssignments from "../components/modal/edit-topic-assignments";
|
||||
|
||||
const PLUGIN_ID = "discourse-assign";
|
||||
|
||||
|
@ -110,6 +111,7 @@ function registerTopicFooterButtons(api) {
|
|||
}
|
||||
|
||||
const taskActions = getOwner(this).lookup("service:task-actions");
|
||||
const modal = getOwner(this).lookup("service:modal");
|
||||
|
||||
if (this.topic.isAssigned()) {
|
||||
this.set("topic.assigned_to_user", null);
|
||||
|
@ -121,7 +123,10 @@ function registerTopicFooterButtons(api) {
|
|||
id: this.topic.postStream.firstPostId,
|
||||
});
|
||||
} else {
|
||||
await taskActions.showAssignModal(this.topic, {
|
||||
await modal.show(EditTopicAssignments, {
|
||||
model: {
|
||||
topic: this.topic,
|
||||
},
|
||||
onSuccess: () =>
|
||||
this.appEvents.trigger("post-stream:refresh", {
|
||||
id: this.topic.postStream.firstPostId,
|
||||
|
|
Loading…
Reference in New Issue