diff --git a/static/js/admin.js b/static/js/admin.js
index 829db19a53..0d2054b7c6 100644
--- a/static/js/admin.js
+++ b/static/js/admin.js
@@ -374,6 +374,10 @@ exports.populate_auth_methods = function (auth_methods) {
loading.destroy_indicator($('#admin_page_auth_methods_loading_indicator'));
};
+exports.update_message_retention_days = function () {
+ $("#id_realm_message_retention_days").val(page_params.message_retention_days);
+};
+
function _setup_page() {
var options = {
realm_name: page_params.realm_name,
@@ -393,6 +397,7 @@ function _setup_page() {
realm_allow_message_editing: page_params.realm_allow_message_editing,
realm_message_content_edit_limit_minutes:
Math.ceil(page_params.realm_message_content_edit_limit_seconds / 60),
+ realm_message_retention_days: page_params.realm_message_retention_days,
language_list: page_params.language_list,
realm_default_language: page_params.realm_default_language,
realm_waiting_period_threshold: page_params.realm_waiting_period_threshold,
@@ -669,6 +674,7 @@ function _setup_page() {
var new_add_emoji_by_admins_only = $("#id_realm_add_emoji_by_admins_only").prop("checked");
var new_allow_message_editing = $("#id_realm_allow_message_editing").prop("checked");
var new_message_content_edit_limit_minutes = $("#id_realm_message_content_edit_limit_minutes").val();
+ var new_message_retention_days = $("#id_realm_message_retention_days").val();
var new_default_language = $("#id_realm_default_language").val();
var new_waiting_period_threshold = $("#id_realm_waiting_period_threshold").val();
var new_auth_methods = {};
@@ -687,6 +693,10 @@ function _setup_page() {
new_message_content_edit_limit_minutes = 10;
}
}
+ if (parseInt(new_message_retention_days, 10).toString() !==
+ new_message_retention_days && new_message_retention_days !== "") {
+ new_message_retention_days = "";
+ }
var url = "/json/realm";
var data = {
@@ -705,6 +715,7 @@ function _setup_page() {
allow_message_editing: JSON.stringify(new_allow_message_editing),
message_content_edit_limit_seconds:
JSON.stringify(parseInt(new_message_content_edit_limit_minutes, 10) * 60),
+ message_retention_days: new_message_retention_days !== "" ? JSON.stringify(parseInt(new_message_retention_days, 10)) : null,
default_language: JSON.stringify(new_default_language),
waiting_period_threshold: JSON.stringify(parseInt(new_waiting_period_threshold, 10)),
};
diff --git a/static/js/server_events.js b/static/js/server_events.js
index 1264d9e548..54f311f3a2 100644
--- a/static/js/server_events.js
+++ b/static/js/server_events.js
@@ -81,6 +81,9 @@ function dispatch_normal_event(event) {
page_params.add_emoji_by_admins_only = event.value;
} else if (event.op === 'update' && event.property === 'restricted_to_domain') {
page_params.realm_restricted_to_domain = event.value;
+ } else if (event.op === 'update' && event.property === 'message_retention_days') {
+ page_params.message_retention_days = event.value;
+ admin.update_message_retention_days();
} else if (event.op === 'update_dict' && event.property === 'default') {
$.each(event.data, function (key, value) {
page_params['realm_' + key] = value;
diff --git a/static/styles/settings.css b/static/styles/settings.css
index 15cda83539..e3aafa70b4 100644
--- a/static/styles/settings.css
+++ b/static/styles/settings.css
@@ -421,6 +421,11 @@ input[type=checkbox].inline-block {
text-align: right;
}
+.admin-realm-message-retention-days {
+ width: 5ch;
+ text-align: right;
+}
+
#account-settings-status {
text-align: center;
width: 50%;
diff --git a/static/templates/settings/organization-settings-admin.handlebars b/static/templates/settings/organization-settings-admin.handlebars
index 47bcd4e4b7..d730b1de27 100644
--- a/static/templates/settings/organization-settings-admin.handlebars
+++ b/static/templates/settings/organization-settings-admin.handlebars
@@ -147,6 +147,19 @@
value="{{ realm_message_content_edit_limit_minutes }}"
{{#unless realm_allow_message_editing}}disabled="disabled"{{/unless}} />
+ {{#if false}}
+
+
+
+
+ {{/if}}