mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 12:54:58 +00:00
settings: Add checkbox for whether message editing is allowed or not.
This commit adds a checkbox for allow_message_editing setting and thus we also remove the "Never" option from the time limit dropdown as unchecking the newly added checkbox will mean the same. We also disable the time limit input if message editing is not allowed. This commit also changes the label for time limit dropdown. Fixes part of #21739.
This commit is contained in:
@@ -374,19 +374,12 @@ function test_sync_realm_settings() {
|
||||
$property_elem.length = 1;
|
||||
$property_elem.attr("id", "id_realm_msg_edit_limit_setting");
|
||||
|
||||
page_params.realm_allow_message_editing = false;
|
||||
page_params.realm_message_content_edit_limit_seconds = 120;
|
||||
settings_org.sync_realm_settings("allow_message_editing");
|
||||
assert.equal($("#id_realm_msg_edit_limit_setting").val(), "never");
|
||||
|
||||
page_params.realm_allow_message_editing = true;
|
||||
|
||||
page_params.realm_message_content_edit_limit_seconds = 120;
|
||||
settings_org.sync_realm_settings("allow_message_editing");
|
||||
settings_org.sync_realm_settings("message_content_edit_limit_seconds");
|
||||
assert.equal($("#id_realm_msg_edit_limit_setting").val(), "upto_two_min");
|
||||
|
||||
page_params.realm_message_content_edit_limit_seconds = 130;
|
||||
settings_org.sync_realm_settings("allow_message_editing");
|
||||
settings_org.sync_realm_settings("message_content_edit_limit_seconds");
|
||||
assert.equal($("#id_realm_msg_edit_limit_setting").val(), "custom_limit");
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ const admin_settings_label = {
|
||||
realm_default_language: $t({
|
||||
defaultMessage: "Language for automated messages and invitation emails",
|
||||
}),
|
||||
realm_allow_message_editing: $t({defaultMessage: "Allow message editing"}),
|
||||
};
|
||||
|
||||
function insert_tip_box() {
|
||||
@@ -113,6 +114,7 @@ export function build_page() {
|
||||
),
|
||||
realm_message_retention_days: page_params.realm_message_retention_days,
|
||||
realm_allow_edit_history: page_params.realm_allow_edit_history,
|
||||
realm_allow_message_editing: page_params.realm_allow_message_editing,
|
||||
language_list,
|
||||
realm_default_language_name: get_language_name(page_params.realm_default_language),
|
||||
realm_default_language_code: page_params.realm_default_language,
|
||||
|
||||
@@ -278,12 +278,6 @@ const time_limit_dropdown_values = new Map([
|
||||
seconds: null,
|
||||
},
|
||||
],
|
||||
[
|
||||
"never",
|
||||
{
|
||||
text: $t({defaultMessage: "Never"}),
|
||||
},
|
||||
],
|
||||
[
|
||||
"upto_two_min",
|
||||
{
|
||||
|
||||
@@ -166,10 +166,6 @@ function get_property_value(property_name, for_realm_default_settings) {
|
||||
}
|
||||
|
||||
if (property_name === "realm_msg_edit_limit_setting") {
|
||||
if (!page_params.realm_allow_message_editing) {
|
||||
return "never";
|
||||
}
|
||||
|
||||
if (page_params.realm_message_content_edit_limit_seconds === null) {
|
||||
return "any_time";
|
||||
}
|
||||
@@ -297,6 +293,16 @@ function set_giphy_rating_dropdown() {
|
||||
$("#id_realm_giphy_rating").val(rating_id);
|
||||
}
|
||||
|
||||
function update_message_edit_sub_settings(is_checked) {
|
||||
settings_ui.disable_sub_setting_onchange(is_checked, "id_realm_msg_edit_limit_setting", true);
|
||||
settings_ui.disable_sub_setting_onchange(
|
||||
is_checked,
|
||||
"id_realm_message_content_edit_limit_minutes",
|
||||
true,
|
||||
);
|
||||
settings_ui.disable_sub_setting_onchange(is_checked, "id_realm_edit_topic_policy", true);
|
||||
}
|
||||
|
||||
function set_msg_edit_limit_dropdown() {
|
||||
const value = get_property_value("realm_msg_edit_limit_setting");
|
||||
$("#id_realm_msg_edit_limit_setting").val(value);
|
||||
@@ -304,7 +310,6 @@ function set_msg_edit_limit_dropdown() {
|
||||
"id_realm_message_content_edit_limit_minutes",
|
||||
value === "custom_limit",
|
||||
);
|
||||
settings_ui.disable_sub_setting_onchange(value !== "never", "id_realm_edit_topic_policy", true);
|
||||
}
|
||||
|
||||
function message_delete_limit_setting_enabled() {
|
||||
@@ -458,6 +463,9 @@ function update_dependent_subsettings(property_name) {
|
||||
case "realm_video_chat_provider":
|
||||
set_video_chat_provider_dropdown();
|
||||
break;
|
||||
case "realm_allow_message_editing":
|
||||
update_message_edit_sub_settings(page_params.realm_allow_message_editing);
|
||||
break;
|
||||
case "realm_msg_edit_limit_setting":
|
||||
case "realm_message_content_edit_limit_minutes":
|
||||
set_msg_edit_limit_dropdown();
|
||||
@@ -581,9 +589,6 @@ export function sync_realm_settings(property) {
|
||||
case "message_content_edit_limit_seconds":
|
||||
property = "message_content_edit_limit_minutes";
|
||||
break;
|
||||
case "allow_message_editing":
|
||||
property = "msg_edit_limit_setting";
|
||||
break;
|
||||
case "emails_restricted_to_domains":
|
||||
case "disallow_disposable_email_addresses":
|
||||
property = "org_join_restrictions";
|
||||
@@ -904,28 +909,21 @@ export function register_save_discard_widget_handlers(
|
||||
switch (subsection) {
|
||||
case "msg_editing": {
|
||||
const edit_limit_setting_value = $("#id_realm_msg_edit_limit_setting").val();
|
||||
data.allow_message_editing = $("#id_realm_allow_message_editing").prop("checked");
|
||||
switch (edit_limit_setting_value) {
|
||||
case "never": {
|
||||
data.allow_message_editing = false;
|
||||
|
||||
break;
|
||||
}
|
||||
case "custom_limit": {
|
||||
data.message_content_edit_limit_seconds = parse_time_limit(
|
||||
$("#id_realm_message_content_edit_limit_minutes"),
|
||||
);
|
||||
data.allow_message_editing = true;
|
||||
|
||||
break;
|
||||
}
|
||||
case "any_time": {
|
||||
data.allow_message_editing = true;
|
||||
data.message_content_edit_limit_seconds = JSON.stringify("unlimited");
|
||||
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
data.allow_message_editing = true;
|
||||
data.message_content_edit_limit_seconds =
|
||||
settings_config.msg_edit_limit_dropdown_values.get(
|
||||
edit_limit_setting_value,
|
||||
@@ -1194,6 +1192,11 @@ export function build_page() {
|
||||
}
|
||||
});
|
||||
|
||||
$("#id_realm_allow_message_editing").on("change", (e) => {
|
||||
const is_checked = $(e.target).prop("checked");
|
||||
update_message_edit_sub_settings(is_checked);
|
||||
});
|
||||
|
||||
$("#id_realm_org_join_restrictions").on("click", (e) => {
|
||||
// This prevents the disappearance of modal when there are
|
||||
// no allowed domains otherwise it gets closed due to
|
||||
|
||||
@@ -148,9 +148,15 @@
|
||||
{{> settings_save_discard_widget section_name="msg-editing" }}
|
||||
</div>
|
||||
<div class="inline-block organization-settings-parent">
|
||||
{{> settings_checkbox
|
||||
setting_name="realm_allow_message_editing"
|
||||
prefix="id_"
|
||||
is_checked=realm_allow_message_editing
|
||||
label=admin_settings_label.realm_allow_message_editing}}
|
||||
|
||||
<div class="input-group">
|
||||
<label for="realm_msg_edit_limit_setting" class="dropdown-title">{{t "Allow message editing" }}</label>
|
||||
<select name="realm_msg_edit_limit_setting" id="id_realm_msg_edit_limit_setting" class="prop-element">
|
||||
<label for="realm_msg_edit_limit_setting" class="dropdown-title">{{t "Time limit for editing messages" }}</label>
|
||||
<select name="realm_msg_edit_limit_setting" id="id_realm_msg_edit_limit_setting" class="prop-element" {{#unless realm_allow_message_editing}}disabled{{/unless}}>
|
||||
{{#each msg_edit_limit_dropdown_values}}
|
||||
<option value="{{0}}">{{1.text}}</option>
|
||||
{{/each}}
|
||||
@@ -164,12 +170,13 @@
|
||||
name="realm_message_content_edit_limit_minutes"
|
||||
class="admin-realm-time-limit-input prop-element"
|
||||
autocomplete="off"
|
||||
value="{{ realm_message_content_edit_limit_minutes }}"/>
|
||||
value="{{ realm_message_content_edit_limit_minutes }}"
|
||||
{{#unless realm_allow_message_editing}}disabled{{/unless}}/>
|
||||
</div>
|
||||
|
||||
<div class="input-group">
|
||||
<label for="realm_edit_topic_policy" class="dropdown-title">{{t "Who can edit the topic of any message" }}</label>
|
||||
<select name="realm_edit_topic_policy" id="id_realm_edit_topic_policy" class="prop-element" data-setting-widget-type="number">
|
||||
<select name="realm_edit_topic_policy" id="id_realm_edit_topic_policy" class="prop-element" data-setting-widget-type="number" {{#unless realm_allow_message_editing}}disabled{{/unless}}>
|
||||
{{> dropdown_options_widget option_values=common_message_policy_values}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user