stream_edit: Extract submit_add_subscriber_form.

This commit is contained in:
Tim Abbott
2020-06-21 09:46:53 -07:00
parent f10efa27b8
commit 96044d0bd1

View File

@@ -202,6 +202,47 @@ exports.invite_user_to_stream = function (user_ids, sub, success, failure) {
});
};
function submit_add_subscriber_form(e) {
const settings_row = $(e.target).closest('.subscription_settings');
const sub = get_sub_for_target(settings_row);
if (!sub) {
blueslip.error('.subscriber_list_add form submit fails');
return;
}
const user_ids = user_pill.get_user_ids(exports.pill_widget);
const stream_subscription_info_elem = $('.stream_subscription_info').expectOne();
if (user_ids.length === 0) {
stream_subscription_info_elem.text(i18n.t("No user to subscribe."))
.addClass("text-error").removeClass("text-success");
return;
}
function invite_success(data) {
exports.pill_widget.clear();
if (!Object.entries(data.already_subscribed).length) {
stream_subscription_info_elem.text(i18n.t("Subscribed successfully!"));
// The rest of the work is done via the subscription -> add event we will get
} else {
stream_subscription_info_elem.text(i18n.t("User already subscribed."));
const already_subscribed_users = Object.keys(data.already_subscribed).join(', ');
stream_subscription_info_elem.text(i18n.t(
" __already_subscribed_users__ are already subscribed.", {already_subscribed_users: already_subscribed_users}));
}
stream_subscription_info_elem.addClass("text-success")
.removeClass("text-error");
}
function invite_failure(xhr) {
const error = JSON.parse(xhr.responseText);
stream_subscription_info_elem.text(error.msg)
.addClass("text-error").removeClass("text-success");
}
exports.invite_user_to_stream(user_ids, sub, invite_success, invite_failure);
}
exports.remove_user_from_stream = function (user_id, sub, success, failure) {
// TODO: use stream_id when backend supports it
const stream_name = sub.name;
@@ -626,44 +667,7 @@ exports.initialize = function () {
$("#subscriptions_table").on("submit", ".subscriber_list_add form", function (e) {
e.preventDefault();
const settings_row = $(e.target).closest('.subscription_settings');
const sub = get_sub_for_target(settings_row);
if (!sub) {
blueslip.error('.subscriber_list_add form submit fails');
return;
}
const user_ids = user_pill.get_user_ids(exports.pill_widget);
const stream_subscription_info_elem = $('.stream_subscription_info').expectOne();
if (user_ids.length === 0) {
stream_subscription_info_elem.text(i18n.t("No user to subscribe."))
.addClass("text-error").removeClass("text-success");
return;
}
function invite_success(data) {
exports.pill_widget.clear();
if (!Object.entries(data.already_subscribed).length) {
stream_subscription_info_elem.text(i18n.t("Subscribed successfully!"));
// The rest of the work is done via the subscription -> add event we will get
} else {
stream_subscription_info_elem.text(i18n.t("User already subscribed."));
const already_subscribed_users = Object.keys(data.already_subscribed).join(', ');
stream_subscription_info_elem.text(i18n.t(
" __already_subscribed_users__ are already subscribed.", {already_subscribed_users: already_subscribed_users}));
}
stream_subscription_info_elem.addClass("text-success")
.removeClass("text-error");
}
function invite_failure(xhr) {
const error = JSON.parse(xhr.responseText);
stream_subscription_info_elem.text(error.msg)
.addClass("text-error").removeClass("text-success");
}
exports.invite_user_to_stream(user_ids, sub, invite_success, invite_failure);
submit_add_subscriber_form(e);
});
$("#subscriptions_table").on("submit", ".subscriber_list_remove form", function (e) {