mirror of
https://github.com/zulip/zulip.git
synced 2025-11-12 18:06:44 +00:00
settings: Add moderators and members option to msg-delete dropdown.
This commit adds moderators, full members and members options to the delete_own_message_policy dropdown.
This commit is contained in:
@@ -122,10 +122,9 @@ run_test("get_editability", ({override}) => {
|
||||
assert.equal(message_edit.is_topic_editable(message), false);
|
||||
});
|
||||
|
||||
run_test("get_deletability", () => {
|
||||
run_test("get_deletability", ({override}) => {
|
||||
page_params.is_admin = true;
|
||||
page_params.realm_delete_own_message_policy =
|
||||
settings_config.delete_own_message_policy_values.by_admins_only.code;
|
||||
override(settings_data, "user_can_delete_own_message", () => false);
|
||||
page_params.realm_message_content_delete_limit_seconds = null;
|
||||
const message = {
|
||||
sent_by_me: false,
|
||||
@@ -146,8 +145,7 @@ run_test("get_deletability", () => {
|
||||
message.locally_echoed = false;
|
||||
assert.equal(message_edit.get_deletability(message), false);
|
||||
|
||||
page_params.realm_delete_own_message_policy =
|
||||
settings_config.delete_own_message_policy_values.by_everyone.code;
|
||||
override(settings_data, "user_can_delete_own_message", () => true);
|
||||
assert.equal(message_edit.get_deletability(message), true);
|
||||
|
||||
const now = new Date();
|
||||
|
||||
@@ -243,6 +243,12 @@ test_message_policy(
|
||||
settings_data.user_can_edit_topic_of_any_message,
|
||||
);
|
||||
|
||||
test_message_policy(
|
||||
"user_can_delete_own_message",
|
||||
"realm_delete_own_message_policy",
|
||||
settings_data.user_can_delete_own_message,
|
||||
);
|
||||
|
||||
run_test("using_dark_theme", () => {
|
||||
user_settings.color_scheme = settings_config.color_scheme_values.night.code;
|
||||
assert.equal(settings_data.using_dark_theme(), true);
|
||||
|
||||
@@ -576,7 +576,7 @@ function test_discard_changes_button(discard_changes) {
|
||||
page_params.realm_allow_message_editing = true;
|
||||
page_params.realm_message_content_edit_limit_seconds = 3600;
|
||||
page_params.realm_delete_own_message_policy =
|
||||
settings_config.delete_own_message_policy_values.by_everyone.code;
|
||||
settings_config.common_message_policy_values.by_everyone.code;
|
||||
page_params.realm_message_content_delete_limit_seconds = 120;
|
||||
|
||||
const allow_edit_history = $("#id_realm_allow_edit_history").prop("checked", false);
|
||||
|
||||
@@ -137,6 +137,9 @@ export function build_page() {
|
||||
realm_invite_required: page_params.realm_invite_required,
|
||||
can_edit_user_groups: settings_data.user_can_edit_user_groups(),
|
||||
policy_values: settings_config.common_policy_values,
|
||||
realm_delete_own_message_policy: page_params.realm_delete_own_message_policy,
|
||||
DELETE_OWN_MESSAGE_POLICY_ADMINS_ONLY:
|
||||
settings_config.common_message_policy_values.by_admins_only.code,
|
||||
...settings_org.get_organization_settings_options(),
|
||||
demote_inactive_streams_values: settings_config.demote_inactive_streams_values,
|
||||
color_scheme_values: settings_config.color_scheme_values,
|
||||
|
||||
@@ -28,7 +28,6 @@ import * as overlays from "./overlays";
|
||||
import {page_params} from "./page_params";
|
||||
import * as resize from "./resize";
|
||||
import * as rows from "./rows";
|
||||
import * as settings_config from "./settings_config";
|
||||
import * as settings_data from "./settings_data";
|
||||
import * as stream_bar from "./stream_bar";
|
||||
import * as stream_data from "./stream_data";
|
||||
@@ -168,10 +167,7 @@ export function get_deletability(message) {
|
||||
if (message.locally_echoed) {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
page_params.realm_delete_own_message_policy ===
|
||||
settings_config.delete_own_message_policy_values.by_admins_only.code
|
||||
) {
|
||||
if (!settings_data.user_can_delete_own_message()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ export const page_params: {
|
||||
realm_add_custom_emoji_policy: number;
|
||||
realm_avatar_changes_disabled: boolean;
|
||||
realm_create_stream_policy: number;
|
||||
realm_delete_own_message_policy: number;
|
||||
realm_edit_topic_policy: number;
|
||||
realm_email_address_visibility: number;
|
||||
realm_invite_to_realm_policy: number;
|
||||
|
||||
@@ -255,19 +255,6 @@ export const common_message_policy_values = {
|
||||
},
|
||||
};
|
||||
|
||||
export const delete_own_message_policy_values = {
|
||||
by_everyone: {
|
||||
order: 1,
|
||||
code: 5,
|
||||
description: $t({defaultMessage: "Admins, members and guests"}),
|
||||
},
|
||||
by_admins_only: {
|
||||
order: 2,
|
||||
code: 2,
|
||||
description: $t({defaultMessage: "Admins only"}),
|
||||
},
|
||||
};
|
||||
|
||||
const time_limit_dropdown_values = new Map([
|
||||
[
|
||||
"any_time",
|
||||
|
||||
@@ -121,6 +121,13 @@ function user_has_permission(policy_value: number): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* At present, by_everyone is not present in common_policy_values,
|
||||
* but we include a check for it here, so that code using
|
||||
* common_message_policy_values or other supersets can use this function. */
|
||||
if (policy_value === settings_config.common_message_policy_values.by_everyone.code) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (page_params.is_guest) {
|
||||
return false;
|
||||
}
|
||||
@@ -192,6 +199,10 @@ export function user_can_edit_topic_of_any_message(): boolean {
|
||||
return user_has_permission(page_params.realm_edit_topic_policy);
|
||||
}
|
||||
|
||||
export function user_can_delete_own_message(): boolean {
|
||||
return user_has_permission(page_params.realm_delete_own_message_policy);
|
||||
}
|
||||
|
||||
export function using_dark_theme(): boolean {
|
||||
if (user_settings.color_scheme === settings_config.color_scheme_values.night.code) {
|
||||
return true;
|
||||
|
||||
@@ -109,9 +109,6 @@ export function get_organization_settings_options() {
|
||||
options.invite_to_realm_policy_values = get_sorted_options_list(
|
||||
settings_config.invite_to_realm_policy_values,
|
||||
);
|
||||
options.delete_own_message_policy_values = get_sorted_options_list(
|
||||
settings_config.delete_own_message_policy_values,
|
||||
);
|
||||
return options;
|
||||
}
|
||||
|
||||
@@ -249,18 +246,32 @@ function set_msg_edit_limit_dropdown() {
|
||||
settings_ui.disable_sub_setting_onchange(value !== "never", "id_realm_edit_topic_policy", true);
|
||||
}
|
||||
|
||||
function message_delete_limit_setting_enabled() {
|
||||
// This function is used to check whether the time-limit setting
|
||||
// should be enabled. The setting is disabled when delete_own_message_policy
|
||||
// is set to 'admins only' as admins can delete messages irrespective of
|
||||
// time limit.
|
||||
if (
|
||||
page_params.realm_delete_own_message_policy ===
|
||||
settings_config.common_message_policy_values.by_admins_only.code
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function set_delete_own_message_policy_dropdown() {
|
||||
const value = get_property_value("realm_delete_own_message_policy");
|
||||
$("#id_realm_delete_own_message_policy").val(value);
|
||||
settings_ui.disable_sub_setting_onchange(
|
||||
value !== settings_config.delete_own_message_policy_values.by_admins_only.code,
|
||||
message_delete_limit_setting_enabled(),
|
||||
"id_realm_msg_delete_limit_setting",
|
||||
true,
|
||||
);
|
||||
const limit_value = get_property_value("realm_msg_delete_limit_setting");
|
||||
if (limit_value === "custom_limit") {
|
||||
settings_ui.disable_sub_setting_onchange(
|
||||
value !== settings_config.delete_own_message_policy_values.by_admins_only.code,
|
||||
message_delete_limit_setting_enabled(),
|
||||
"id_realm_message_content_delete_limit_minutes",
|
||||
true,
|
||||
);
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
aria-hidden="true" data-tippy-content="{{t 'Administrators can delete any message.' }}"></i>
|
||||
</label>
|
||||
<select name="realm_delete_own_message_policy" id="id_realm_delete_own_message_policy" class="prop-element" data-setting-widget-type="number">
|
||||
{{> dropdown_options_widget option_values=delete_own_message_policy_values}}
|
||||
{{> dropdown_options_widget option_values=common_message_policy_values}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user