This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/plugins/chat/assets/javascripts/discourse/controllers/chat-channel-edit-title.js
Roman Rizzi 0a5f548635
DEV: Move discourse-chat to the core repo. (#18776)
As part of this move, we are also renaming `discourse-chat` to `chat`.
2022-11-02 10:41:30 -03:00

50 lines
1.2 KiB
JavaScript

import Controller from "@ember/controller";
import { action, computed } from "@ember/object";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import ChatApi from "discourse/plugins/chat/discourse/lib/chat-api";
export default class ChatChannelEditTitleController extends Controller.extend(
ModalFunctionality
) {
editedTitle = "";
@computed("model.title", "editedTitle")
get isSaveDisabled() {
return (
this.model.title === this.editedTitle ||
this.editedTitle?.length > this.siteSettings.max_topic_title_length
);
}
onShow() {
this.set("editedTitle", this.model.title || "");
}
onClose() {
this.set("editedTitle", "");
this.clearFlash();
}
@action
onSaveChatChannelTitle() {
return ChatApi.modifyChatChannel(this.model.id, {
name: this.editedTitle,
})
.then((chatChannel) => {
this.model.set("title", chatChannel.title);
this.send("closeModal");
})
.catch((event) => {
if (event.jqXHR?.responseJSON?.errors) {
this.flash(event.jqXHR.responseJSON.errors.join("\n"), "error");
}
});
}
@action
onChangeChatChannelTitle(title) {
this.clearFlash();
this.set("editedTitle", title);
}
}