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}}