stream subscription: Clean up error handling.

This commit is contained in:
YJDave
2017-12-30 01:37:37 +05:30
committed by showell
parent 4f700ddcbf
commit f83a694fb6
2 changed files with 20 additions and 26 deletions

View File

@@ -151,9 +151,6 @@ function show_subscription_settings(sub_row) {
var stream_id = sub_row.data("stream-id"); var stream_id = sub_row.data("stream-id");
var sub = stream_data.get_sub_by_id(stream_id); var sub = stream_data.get_sub_by_id(stream_id);
var sub_settings = settings_for_sub(sub); var sub_settings = settings_for_sub(sub);
var alerts = sub_settings
.find('.subscriber_list_container')
.find('.alert-warning, .alert-error');
var colorpicker = sub_settings.find('.colorpicker'); var colorpicker = sub_settings.find('.colorpicker');
var color = stream_data.get_color(sub.name); var color = stream_data.get_color(sub.name);
@@ -164,7 +161,6 @@ function show_subscription_settings(sub_row) {
} }
// fetch subscriber list from memory. // fetch subscriber list from memory.
var list = get_subscriber_list(sub_settings); var list = get_subscriber_list(sub_settings);
alerts.addClass("hide");
list.empty(); list.empty();
var emails = get_email_of_subscribers(sub.subscribers); var emails = get_email_of_subscribers(sub.subscribers);
@@ -472,16 +468,13 @@ $(function () {
var text_box = settings_row.find('input[name="principal"]'); var text_box = settings_row.find('input[name="principal"]');
var principal = $.trim(text_box.val()); var principal = $.trim(text_box.val());
// TODO: clean up this error handling var stream_subscription_info_elem = $('.stream_subscription_info').expectOne();
var error_elem = settings_row.find('.subscriber_list_container .alert-error');
var warning_elem = settings_row.find('.subscriber_list_container .alert-warning');
function invite_success(data) { function invite_success(data) {
text_box.val(''); text_box.val('');
if (data.subscribed.hasOwnProperty(principal)) { if (data.subscribed.hasOwnProperty(principal)) {
error_elem.addClass("hide"); stream_subscription_info_elem.text(i18n.t("Subscribed successfully!"));
warning_elem.addClass("hide");
if (people.is_current_user(principal)) { if (people.is_current_user(principal)) {
// mark_subscribed adds the user to the member list // mark_subscribed adds the user to the member list
// TODO: We should really let the event system // TODO: We should really let the event system
@@ -490,14 +483,16 @@ $(function () {
stream_events.mark_subscribed(sub); stream_events.mark_subscribed(sub);
} }
} else { } else {
error_elem.addClass("hide"); stream_subscription_info_elem.text(i18n.t("User already subscribed"));
warning_elem.removeClass("hide").text(i18n.t("User already subscribed"));
} }
stream_subscription_info_elem.addClass("text-success")
.removeClass("text-error");
} }
function invite_failure() { function invite_failure() {
warning_elem.addClass("hide"); stream_subscription_info_elem.text(i18n.t("Could not add user to this stream"))
error_elem.removeClass("hide").text(i18n.t("Could not add user to this stream")); .addClass("text-error")
.removeClass("text-success");
} }
exports.invite_user_to_stream(principal, sub, invite_success, invite_failure); exports.invite_user_to_stream(principal, sub, invite_success, invite_failure);
@@ -515,17 +510,13 @@ $(function () {
blueslip.error('.subscriber_list_remove form submit fails'); blueslip.error('.subscriber_list_remove form submit fails');
return; return;
} }
var stream_subscription_info_elem = $('.stream_subscription_info').expectOne();
var error_elem = settings_row.find('.subscriber_list_container .alert-error');
var warning_elem = settings_row.find('.subscriber_list_container .alert-warning');
function removal_success(data) { function removal_success(data) {
if (data.removed.length > 0) { if (data.removed.length > 0) {
error_elem.addClass("hide");
warning_elem.addClass("hide");
// Remove the user from the subscriber list. // Remove the user from the subscriber list.
list_entry.remove(); list_entry.remove();
stream_subscription_info_elem.text(i18n.t("Unsubscribed successfully!"));
if (people.is_current_user(principal)) { if (people.is_current_user(principal)) {
// If you're unsubscribing yourself, mark whole // If you're unsubscribing yourself, mark whole
@@ -536,14 +527,16 @@ $(function () {
stream_events.mark_unsubscribed(sub); stream_events.mark_unsubscribed(sub);
} }
} else { } else {
error_elem.addClass("hide"); stream_subscription_info_elem.text(i18n.t("User is already not subscribed"));
warning_elem.removeClass("hide").text(i18n.t("User is already not subscribed"));
} }
stream_subscription_info_elem.addClass('text-success')
.removeClass('text-error');
} }
function removal_failure() { function removal_failure() {
warning_elem.addClass("hide"); stream_subscription_info_elem.text(i18n.t("Error removing user from this stream"))
error_elem.removeClass("hide").text(i18n.t("Error removing user from this stream")); .addClass("text-error")
.removeClass("text-success");
} }
exports.remove_user_from_stream(principal, sub, removal_success, exports.remove_user_from_stream(principal, sub, removal_success,

View File

@@ -95,7 +95,10 @@
{{#render_subscribers}} {{#render_subscribers}}
<div class="subscriber_list_settings"> <div class="subscriber_list_settings">
<div class="sub_settings_title float-left">{{t "Stream membership" }}</div> <div class="sub_settings_title float-left">
{{t "Stream membership" }}
<div class="stream_subscription_info small"></div>
</div>
<div class="subscriber_list_add float-right"> <div class="subscriber_list_add float-right">
<form class="form-inline"> <form class="form-inline">
<input type="text" class="search" placeholder="{{t 'Search subscribers' }}" /> <input type="text" class="search" placeholder="{{t 'Search subscribers' }}" />
@@ -110,8 +113,6 @@
<div class="subscriber-list-box"> <div class="subscriber-list-box">
<div class="subscriber_list_container"> <div class="subscriber_list_container">
<div class="subscriber_list_loading_indicator"></div> <div class="subscriber_list_loading_indicator"></div>
<div class="alert alert-error hide"></div>
<div class="alert alert-warning hide"></div>
<table class="subscriber-list"></table> <table class="subscriber-list"></table>
</div> </div>
</div> </div>