mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 23:13:25 +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);
|
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.is_admin = true;
|
||||||
page_params.realm_delete_own_message_policy =
|
override(settings_data, "user_can_delete_own_message", () => false);
|
||||||
settings_config.delete_own_message_policy_values.by_admins_only.code;
|
|
||||||
page_params.realm_message_content_delete_limit_seconds = null;
|
page_params.realm_message_content_delete_limit_seconds = null;
|
||||||
const message = {
|
const message = {
|
||||||
sent_by_me: false,
|
sent_by_me: false,
|
||||||
@@ -146,8 +145,7 @@ run_test("get_deletability", () => {
|
|||||||
message.locally_echoed = false;
|
message.locally_echoed = false;
|
||||||
assert.equal(message_edit.get_deletability(message), false);
|
assert.equal(message_edit.get_deletability(message), false);
|
||||||
|
|
||||||
page_params.realm_delete_own_message_policy =
|
override(settings_data, "user_can_delete_own_message", () => true);
|
||||||
settings_config.delete_own_message_policy_values.by_everyone.code;
|
|
||||||
assert.equal(message_edit.get_deletability(message), true);
|
assert.equal(message_edit.get_deletability(message), true);
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
|
|||||||
@@ -243,6 +243,12 @@ test_message_policy(
|
|||||||
settings_data.user_can_edit_topic_of_any_message,
|
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", () => {
|
run_test("using_dark_theme", () => {
|
||||||
user_settings.color_scheme = settings_config.color_scheme_values.night.code;
|
user_settings.color_scheme = settings_config.color_scheme_values.night.code;
|
||||||
assert.equal(settings_data.using_dark_theme(), true);
|
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_allow_message_editing = true;
|
||||||
page_params.realm_message_content_edit_limit_seconds = 3600;
|
page_params.realm_message_content_edit_limit_seconds = 3600;
|
||||||
page_params.realm_delete_own_message_policy =
|
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;
|
page_params.realm_message_content_delete_limit_seconds = 120;
|
||||||
|
|
||||||
const allow_edit_history = $("#id_realm_allow_edit_history").prop("checked", false);
|
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,
|
realm_invite_required: page_params.realm_invite_required,
|
||||||
can_edit_user_groups: settings_data.user_can_edit_user_groups(),
|
can_edit_user_groups: settings_data.user_can_edit_user_groups(),
|
||||||
policy_values: settings_config.common_policy_values,
|
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(),
|
...settings_org.get_organization_settings_options(),
|
||||||
demote_inactive_streams_values: settings_config.demote_inactive_streams_values,
|
demote_inactive_streams_values: settings_config.demote_inactive_streams_values,
|
||||||
color_scheme_values: settings_config.color_scheme_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 {page_params} from "./page_params";
|
||||||
import * as resize from "./resize";
|
import * as resize from "./resize";
|
||||||
import * as rows from "./rows";
|
import * as rows from "./rows";
|
||||||
import * as settings_config from "./settings_config";
|
|
||||||
import * as settings_data from "./settings_data";
|
import * as settings_data from "./settings_data";
|
||||||
import * as stream_bar from "./stream_bar";
|
import * as stream_bar from "./stream_bar";
|
||||||
import * as stream_data from "./stream_data";
|
import * as stream_data from "./stream_data";
|
||||||
@@ -168,10 +167,7 @@ export function get_deletability(message) {
|
|||||||
if (message.locally_echoed) {
|
if (message.locally_echoed) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (
|
if (!settings_data.user_can_delete_own_message()) {
|
||||||
page_params.realm_delete_own_message_policy ===
|
|
||||||
settings_config.delete_own_message_policy_values.by_admins_only.code
|
|
||||||
) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export const page_params: {
|
|||||||
realm_add_custom_emoji_policy: number;
|
realm_add_custom_emoji_policy: number;
|
||||||
realm_avatar_changes_disabled: boolean;
|
realm_avatar_changes_disabled: boolean;
|
||||||
realm_create_stream_policy: number;
|
realm_create_stream_policy: number;
|
||||||
|
realm_delete_own_message_policy: number;
|
||||||
realm_edit_topic_policy: number;
|
realm_edit_topic_policy: number;
|
||||||
realm_email_address_visibility: number;
|
realm_email_address_visibility: number;
|
||||||
realm_invite_to_realm_policy: 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([
|
const time_limit_dropdown_values = new Map([
|
||||||
[
|
[
|
||||||
"any_time",
|
"any_time",
|
||||||
|
|||||||
@@ -121,6 +121,13 @@ function user_has_permission(policy_value: number): boolean {
|
|||||||
return false;
|
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) {
|
if (page_params.is_guest) {
|
||||||
return false;
|
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);
|
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 {
|
export function using_dark_theme(): boolean {
|
||||||
if (user_settings.color_scheme === settings_config.color_scheme_values.night.code) {
|
if (user_settings.color_scheme === settings_config.color_scheme_values.night.code) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -109,9 +109,6 @@ export function get_organization_settings_options() {
|
|||||||
options.invite_to_realm_policy_values = get_sorted_options_list(
|
options.invite_to_realm_policy_values = get_sorted_options_list(
|
||||||
settings_config.invite_to_realm_policy_values,
|
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;
|
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);
|
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() {
|
function set_delete_own_message_policy_dropdown() {
|
||||||
const value = get_property_value("realm_delete_own_message_policy");
|
const value = get_property_value("realm_delete_own_message_policy");
|
||||||
$("#id_realm_delete_own_message_policy").val(value);
|
$("#id_realm_delete_own_message_policy").val(value);
|
||||||
settings_ui.disable_sub_setting_onchange(
|
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",
|
"id_realm_msg_delete_limit_setting",
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
const limit_value = get_property_value("realm_msg_delete_limit_setting");
|
const limit_value = get_property_value("realm_msg_delete_limit_setting");
|
||||||
if (limit_value === "custom_limit") {
|
if (limit_value === "custom_limit") {
|
||||||
settings_ui.disable_sub_setting_onchange(
|
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",
|
"id_realm_message_content_delete_limit_minutes",
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
aria-hidden="true" data-tippy-content="{{t 'Administrators can delete any message.' }}"></i>
|
aria-hidden="true" data-tippy-content="{{t 'Administrators can delete any message.' }}"></i>
|
||||||
</label>
|
</label>
|
||||||
<select name="realm_delete_own_message_policy" id="id_realm_delete_own_message_policy" class="prop-element" data-setting-widget-type="number">
|
<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>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user