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/app/assets/javascripts/discourse/controllers/request-group-membership-form.js.es6
2019-11-07 15:38:28 -06:00

43 lines
1.2 KiB
JavaScript

import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
import { alias } from "@ember/object/computed";
import Controller from "@ember/controller";
import { popupAjaxError } from "discourse/lib/ajax-error";
import DiscourseURL from "discourse/lib/url";
import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
loading: false,
reason: alias("model.membership_request_template"),
@discourseComputed("model.name")
title(groupName) {
return I18n.t("groups.membership_request.title", { group_name: groupName });
},
@discourseComputed("loading", "reason")
disableSubmit(loading, reason) {
return loading || isEmpty(reason);
},
actions: {
requestMember() {
if (this.currentUser) {
this.set("loading", true);
this.model
.requestMembership(this.reason)
.then(result => {
DiscourseURL.routeTo(result.relative_url);
})
.catch(popupAjaxError)
.finally(() => {
this.set("loading", false);
});
} else {
this._showLoginModal();
}
}
}
});