mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 12:54:58 +00:00
settings: Add move_messages_within_stream_limit_seconds element in UI.
This commit adds dropdown for move_messages_within_stream_limit_seconds setting which is used to control for how long the user is allowed to edit topic.
This commit is contained in:
@@ -328,6 +328,45 @@ function set_msg_edit_limit_dropdown() {
|
||||
set_time_limit_setting("realm_message_content_edit_limit_seconds");
|
||||
}
|
||||
|
||||
function message_move_limit_setting_enabled(related_setting_name) {
|
||||
const setting_value = Number.parseInt($(`#id_${CSS.escape(related_setting_name)}`).val(), 10);
|
||||
|
||||
let settings_options;
|
||||
if (related_setting_name === "realm_edit_topic_policy") {
|
||||
settings_options = settings_config.edit_topic_policy_values;
|
||||
} else {
|
||||
settings_options = settings_config.move_messages_between_streams_policy_values;
|
||||
}
|
||||
|
||||
if (setting_value === settings_options.by_admins_only.code) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (setting_value === settings_options.by_moderators_only.code) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (setting_value === settings_options.nobody.code) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function enable_or_disable_related_message_move_time_limit_setting(setting_name, disable_setting) {
|
||||
const $setting_elem = $(`#id_${CSS.escape(setting_name)}`);
|
||||
const $custom_input_elem = $setting_elem.parent().find(".time-limit-custom-input");
|
||||
|
||||
settings_ui.disable_sub_setting_onchange(disable_setting, $setting_elem.attr("id"), true);
|
||||
settings_ui.disable_sub_setting_onchange(disable_setting, $custom_input_elem.attr("id"), true);
|
||||
}
|
||||
|
||||
function set_msg_move_limit_setting(property_name) {
|
||||
set_time_limit_setting(property_name);
|
||||
const disable_setting = message_move_limit_setting_enabled("realm_edit_topic_policy");
|
||||
enable_or_disable_related_message_move_time_limit_setting(property_name, disable_setting);
|
||||
}
|
||||
|
||||
function message_delete_limit_setting_enabled(setting_value) {
|
||||
// This function is used to check whether the time-limit setting
|
||||
// should be enabled. The setting is disabled when delete_own_message_policy
|
||||
@@ -633,6 +672,9 @@ export function discard_property_element_changes(elem, for_realm_default_setting
|
||||
case "realm_message_content_delete_limit_seconds":
|
||||
set_time_limit_setting(property_name);
|
||||
break;
|
||||
case "realm_move_messages_within_stream_limit_seconds":
|
||||
set_msg_move_limit_setting(property_name);
|
||||
break;
|
||||
case "realm_message_retention_days":
|
||||
case "message_retention_days":
|
||||
set_message_retention_setting_dropdown(sub);
|
||||
@@ -886,6 +928,7 @@ export function check_property_changed(elem, for_realm_default_settings, sub) {
|
||||
break;
|
||||
case "realm_message_content_edit_limit_seconds":
|
||||
case "realm_message_content_delete_limit_seconds":
|
||||
case "realm_move_messages_within_stream_limit_seconds":
|
||||
case "realm_waiting_period_threshold":
|
||||
proposed_val = get_time_limit_setting_value($elem, false);
|
||||
break;
|
||||
@@ -1181,6 +1224,7 @@ export function build_page() {
|
||||
set_video_chat_provider_dropdown();
|
||||
set_giphy_rating_dropdown();
|
||||
set_msg_edit_limit_dropdown();
|
||||
set_msg_move_limit_setting("realm_move_messages_within_stream_limit_seconds");
|
||||
set_msg_delete_limit_dropdown();
|
||||
set_delete_own_message_policy_dropdown(page_params.realm_delete_own_message_policy);
|
||||
set_message_retention_setting_dropdown();
|
||||
@@ -1206,6 +1250,10 @@ export function build_page() {
|
||||
update_custom_value_input("realm_message_content_edit_limit_seconds");
|
||||
});
|
||||
|
||||
$("#id_realm_move_messages_within_stream_limit_seconds").on("change", () => {
|
||||
update_custom_value_input("realm_move_messages_within_stream_limit_seconds");
|
||||
});
|
||||
|
||||
$("#id_realm_message_content_delete_limit_seconds").on("change", () => {
|
||||
update_custom_value_input("realm_message_content_delete_limit_seconds");
|
||||
});
|
||||
@@ -1252,6 +1300,18 @@ export function build_page() {
|
||||
update_message_edit_sub_settings(is_checked);
|
||||
});
|
||||
|
||||
$("#org-moving-msgs").on("change", ".move-message-policy-setting", (e) => {
|
||||
const $policy_dropdown_elem = $(e.target);
|
||||
const property_name = extract_property_name($policy_dropdown_elem);
|
||||
const disable_time_limit_setting = message_move_limit_setting_enabled(property_name);
|
||||
const time_limit_setting_name = "realm_move_messages_within_stream_limit_seconds";
|
||||
|
||||
enable_or_disable_related_message_move_time_limit_setting(
|
||||
time_limit_setting_name,
|
||||
disable_time_limit_setting,
|
||||
);
|
||||
});
|
||||
|
||||
$("#id_realm_delete_own_message_policy").on("change", (e) => {
|
||||
const setting_value = Number.parseInt($(e.target).val(), 10);
|
||||
set_delete_own_message_policy_dropdown(setting_value);
|
||||
|
||||
Reference in New Issue
Block a user