mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 21:43:21 +00:00
streams: Show message retention policy details in subscription_type text.
This commit adds message retention policy details in the subscription_type text below the stream description. We do not show any text when realm-level settings is set to forever and stream-level is set to either forever or realm_default.
This commit is contained in:
@@ -160,7 +160,7 @@ run_test('update_property', () => {
|
|||||||
// Test stream message_retention_days change event
|
// Test stream message_retention_days change event
|
||||||
with_overrides(function (override) {
|
with_overrides(function (override) {
|
||||||
global.with_stub(function (stub) {
|
global.with_stub(function (stub) {
|
||||||
override('stream_data.update_message_retention_setting', stub.f);
|
override('subs.update_message_retention_setting', stub.f);
|
||||||
stream_events.update_property(1, 'message_retention_days', 20);
|
stream_events.update_property(1, 'message_retention_days', 20);
|
||||||
const args = stub.get_args('sub', 'val');
|
const args = stub.get_args('sub', 'val');
|
||||||
assert.equal(args.sub.stream_id, 1);
|
assert.equal(args.sub.stream_id, 1);
|
||||||
|
|||||||
@@ -63,6 +63,30 @@ exports.get_users_from_subscribers = function (subscribers) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.get_retention_policy_text_for_subscription_type = function (sub) {
|
||||||
|
let message_retention_days = sub.message_retention_days;
|
||||||
|
// If both this stream and the organization-level policy are to retain forever,
|
||||||
|
// there's no need to comment on retention policies when describing the stream.
|
||||||
|
if ((page_params.realm_message_retention_days === -1 ||
|
||||||
|
page_params.realm_message_retention_days === null)
|
||||||
|
&& (sub.message_retention_days === null || sub.message_retention_days === -1)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Forever for this stream, overriding the organization default
|
||||||
|
if (sub.message_retention_days === -1) {
|
||||||
|
return i18n.t("Messages in this stream will be retained forever.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we are deleting messages, even if it's the organization
|
||||||
|
// default, it's worth commenting on the policy.
|
||||||
|
if (message_retention_days === null) {
|
||||||
|
message_retention_days = page_params.realm_message_retention_days;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i18n.t("Messages in this stream will be automatically deleted after __retention_days__ days.", {retention_days: message_retention_days});
|
||||||
|
};
|
||||||
|
|
||||||
exports.get_display_text_for_realm_message_retention_setting = function () {
|
exports.get_display_text_for_realm_message_retention_setting = function () {
|
||||||
const realm_message_retention_days = page_params.realm_message_retention_days;
|
const realm_message_retention_days = page_params.realm_message_retention_days;
|
||||||
if (realm_message_retention_days === -1 || realm_message_retention_days === null) {
|
if (realm_message_retention_days === -1 || realm_message_retention_days === null) {
|
||||||
@@ -315,6 +339,7 @@ exports.show_settings_for = function (node) {
|
|||||||
sub: sub,
|
sub: sub,
|
||||||
settings: exports.stream_settings(sub),
|
settings: exports.stream_settings(sub),
|
||||||
stream_post_policy_values: stream_data.stream_post_policy_values,
|
stream_post_policy_values: stream_data.stream_post_policy_values,
|
||||||
|
message_retention_text: exports.get_retention_policy_text_for_subscription_type(sub),
|
||||||
});
|
});
|
||||||
ui.get_content_element($('.subscriptions .right .settings')).html(html);
|
ui.get_content_element($('.subscriptions .right .settings')).html(html);
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ exports.update_property = function (stream_id, property, value, other_values) {
|
|||||||
subs.update_stream_post_policy(sub, value);
|
subs.update_stream_post_policy(sub, value);
|
||||||
break;
|
break;
|
||||||
case 'message_retention_days':
|
case 'message_retention_days':
|
||||||
stream_data.update_message_retention_setting(sub, value);
|
subs.update_message_retention_setting(sub, value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
blueslip.warn("Unexpected subscription property type", {property: property,
|
blueslip.warn("Unexpected subscription property type", {property: property,
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ exports.update_stream_subscription_type_text = function (sub) {
|
|||||||
const template_data = {
|
const template_data = {
|
||||||
...sub,
|
...sub,
|
||||||
stream_post_policy_values: stream_data.stream_post_policy_values,
|
stream_post_policy_values: stream_data.stream_post_policy_values,
|
||||||
|
message_retention_text: stream_edit.get_retention_policy_text_for_subscription_type(sub),
|
||||||
};
|
};
|
||||||
const html = render_subscription_type(template_data);
|
const html = render_subscription_type(template_data);
|
||||||
if (stream_edit.is_sub_settings_active(sub)) {
|
if (stream_edit.is_sub_settings_active(sub)) {
|
||||||
|
|||||||
@@ -192,6 +192,11 @@ exports.update_stream_post_policy = function (sub, new_value) {
|
|||||||
stream_ui_updates.update_stream_subscription_type_text(sub);
|
stream_ui_updates.update_stream_subscription_type_text(sub);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.update_message_retention_setting = function (sub, new_value) {
|
||||||
|
stream_data.update_message_retention_setting(sub, new_value);
|
||||||
|
stream_ui_updates.update_stream_subscription_type_text(sub);
|
||||||
|
};
|
||||||
|
|
||||||
exports.set_color = function (stream_id, color) {
|
exports.set_color = function (stream_id, color) {
|
||||||
const sub = stream_data.get_sub_by_id(stream_id);
|
const sub = stream_data.get_sub_by_id(stream_id);
|
||||||
stream_edit.set_stream_property(sub, 'color', color);
|
stream_edit.set_stream_property(sub, 'color', color);
|
||||||
|
|||||||
@@ -35,7 +35,8 @@
|
|||||||
<div class="subscription-type">
|
<div class="subscription-type">
|
||||||
<div class="subscription-type-text">
|
<div class="subscription-type-text">
|
||||||
{{> subscription_type
|
{{> subscription_type
|
||||||
stream_post_policy_values=../stream_post_policy_values}}
|
stream_post_policy_values=../stream_post_policy_values
|
||||||
|
message_retention_text=../message_retention_text}}
|
||||||
</div>
|
</div>
|
||||||
<a class="change-stream-privacy" {{#unless can_change_stream_permissions}}style="display: none;"{{/unless}}>[{{t "Change" }}]</a>
|
<a class="change-stream-privacy" {{#unless can_change_stream_permissions}}style="display: none;"{{/unless}}>[{{t "Change" }}]</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,3 +15,4 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
{{t 'All stream members can post.'}}
|
{{t 'All stream members can post.'}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{message_retention_text}}
|
||||||
|
|||||||
Reference in New Issue
Block a user