mirror of https://github.com/zulip/zulip.git
297 lines
8.2 KiB
JavaScript
297 lines
8.2 KiB
JavaScript
/*
|
|
This file contains translations between the integer values used in
|
|
the Zulip API to describe values in dropdowns, radio buttons, and
|
|
similar widgets and the user-facing strings that should be used to
|
|
describe them, as well as data details like sort orders that may
|
|
be useful for some widgets.
|
|
|
|
We plan to eventually transition much of this file to have a more
|
|
standard format and then to be populated using data sent from the
|
|
Zulip server in `page_params`, so that the data is available for
|
|
other parts of the ecosystem to use (including the mobile apps and
|
|
API documentation) without a ton of copying.
|
|
*/
|
|
|
|
exports.demote_inactive_streams_values = {
|
|
automatic: {
|
|
code: 1,
|
|
description: i18n.t("Automatic"),
|
|
},
|
|
always: {
|
|
code: 2,
|
|
description: i18n.t("Always"),
|
|
},
|
|
never: {
|
|
code: 3,
|
|
description: i18n.t("Never"),
|
|
},
|
|
};
|
|
|
|
exports.color_scheme_values = {
|
|
automatic: {
|
|
code: 1,
|
|
description: i18n.t("Automatic"),
|
|
},
|
|
night: {
|
|
code: 2,
|
|
description: i18n.t("Night mode"),
|
|
},
|
|
day: {
|
|
code: 3,
|
|
description: i18n.t("Day mode"),
|
|
},
|
|
};
|
|
|
|
exports.twenty_four_hour_time_values = {
|
|
twenty_four_hour_clock: {
|
|
value: true,
|
|
description: i18n.t("24-hour clock (17:00)"),
|
|
},
|
|
twelve_hour_clock: {
|
|
value: false,
|
|
description: i18n.t("12-hour clock (5:00 PM)"),
|
|
},
|
|
};
|
|
|
|
exports.get_all_display_settings = () => ({
|
|
settings: {
|
|
user_display_settings: [
|
|
"dense_mode",
|
|
"high_contrast_mode",
|
|
"left_side_userlist",
|
|
"starred_message_counts",
|
|
"fluid_layout_width",
|
|
],
|
|
},
|
|
render_only: {
|
|
high_contrast_mode: page_params.development_environment,
|
|
dense_mode: page_params.development_environment,
|
|
},
|
|
});
|
|
|
|
exports.email_address_visibility_values = {
|
|
everyone: {
|
|
code: 1,
|
|
description: i18n.t("Admins, members, and guests"),
|
|
},
|
|
//// Backend support for this configuration is not available yet.
|
|
// admins_and_members: {
|
|
// code: 2,
|
|
// description: i18n.t("Members and admins"),
|
|
// },
|
|
admins_only: {
|
|
code: 3,
|
|
description: i18n.t("Admins only"),
|
|
},
|
|
nobody: {
|
|
code: 4,
|
|
description: i18n.t("Nobody"),
|
|
},
|
|
};
|
|
|
|
exports.create_stream_policy_values = {
|
|
by_admins_only: {
|
|
order: 1,
|
|
code: 2,
|
|
description: i18n.t("Admins"),
|
|
},
|
|
by_full_members: {
|
|
order: 2,
|
|
code: 3,
|
|
description: i18n.t("Admins and full members"),
|
|
},
|
|
by_members: {
|
|
order: 3,
|
|
code: 1,
|
|
description: i18n.t("Admins and members"),
|
|
},
|
|
};
|
|
|
|
exports.invite_to_stream_policy_values = exports.create_stream_policy_values;
|
|
|
|
exports.user_group_edit_policy_values = {
|
|
by_admins_only: {
|
|
order: 1,
|
|
code: 2,
|
|
description: i18n.t("Admins"),
|
|
},
|
|
by_members: {
|
|
order: 2,
|
|
code: 1,
|
|
description: i18n.t("Admins and members"),
|
|
},
|
|
};
|
|
|
|
exports.private_message_policy_values = {
|
|
by_anyone: {
|
|
order: 1,
|
|
code: 1,
|
|
description: i18n.t("Admins, members, and guests"),
|
|
},
|
|
disabled: {
|
|
order: 2,
|
|
code: 2,
|
|
description: i18n.t("Private messages disabled"),
|
|
},
|
|
};
|
|
|
|
const time_limit_dropdown_values = new Map([
|
|
["any_time", {
|
|
text: i18n.t("Any time"),
|
|
seconds: 0,
|
|
}],
|
|
["never", {
|
|
text: i18n.t("Never"),
|
|
}],
|
|
["upto_two_min", {
|
|
text: i18n.t("Up to __time_limit__ after posting", {time_limit: i18n.t("2 minutes")}),
|
|
seconds: 2 * 60,
|
|
}],
|
|
["upto_ten_min", {
|
|
text: i18n.t("Up to __time_limit__ after posting", {time_limit: i18n.t("10 minutes")}),
|
|
seconds: 10 * 60,
|
|
}],
|
|
["upto_one_hour", {
|
|
text: i18n.t("Up to __time_limit__ after posting", {time_limit: i18n.t("1 hour")}),
|
|
seconds: 60 * 60,
|
|
}],
|
|
["upto_one_day", {
|
|
text: i18n.t("Up to __time_limit__ after posting", {time_limit: i18n.t("1 day")}),
|
|
seconds: 24 * 60 * 60,
|
|
}],
|
|
["upto_one_week", {
|
|
text: i18n.t("Up to __time_limit__ after posting", {time_limit: i18n.t("1 week")}),
|
|
seconds: 7 * 24 * 60 * 60,
|
|
}],
|
|
["custom_limit", {
|
|
text: i18n.t("Up to N minutes after posting"),
|
|
}],
|
|
]);
|
|
exports.msg_edit_limit_dropdown_values = time_limit_dropdown_values;
|
|
exports.msg_delete_limit_dropdown_values = time_limit_dropdown_values;
|
|
|
|
exports.retain_message_forever = -1;
|
|
|
|
exports.user_role_values = {
|
|
guest: {
|
|
code: 600,
|
|
description: i18n.t("Guest"),
|
|
},
|
|
member: {
|
|
code: 400,
|
|
description: i18n.t("Member"),
|
|
},
|
|
admin: {
|
|
code: 200,
|
|
description: i18n.t("Administrator"),
|
|
},
|
|
owner: {
|
|
code: 100,
|
|
description: i18n.t("Owner"),
|
|
},
|
|
};
|
|
|
|
const user_role_array = Object.values(exports.user_role_values);
|
|
exports.user_role_map = new Map(user_role_array.map((role) => [role.code, role.description]));
|
|
|
|
// NOTIFICATIONS
|
|
|
|
exports.general_notifications_table_labels = {
|
|
realm: [
|
|
/* An array of notification settings of any category like
|
|
* `stream_notification_settings` which makes a single row of
|
|
* "Notification triggers" table should follow this order
|
|
*/
|
|
"visual", "audio", "mobile", "email", "all_mentions",
|
|
],
|
|
stream: {
|
|
is_muted: i18n.t("Mute stream"),
|
|
desktop_notifications: i18n.t("Visual desktop notifications"),
|
|
audible_notifications: i18n.t("Audible desktop notifications"),
|
|
push_notifications: i18n.t("Mobile notifications"),
|
|
email_notifications: i18n.t("Email notifications"),
|
|
pin_to_top: i18n.t("Pin stream to top of left sidebar"),
|
|
wildcard_mentions_notify: i18n.t("Notifications for @all/@everyone mentions"),
|
|
},
|
|
};
|
|
|
|
exports.stream_specific_notification_settings = [
|
|
"desktop_notifications",
|
|
"audible_notifications",
|
|
"push_notifications",
|
|
"email_notifications",
|
|
"wildcard_mentions_notify",
|
|
];
|
|
|
|
exports.stream_notification_settings = [
|
|
"enable_stream_desktop_notifications",
|
|
"enable_stream_audible_notifications",
|
|
"enable_stream_push_notifications",
|
|
"enable_stream_email_notifications",
|
|
"wildcard_mentions_notify",
|
|
];
|
|
|
|
const pm_mention_notification_settings = [
|
|
"enable_desktop_notifications",
|
|
"enable_sounds",
|
|
"enable_offline_push_notifications",
|
|
"enable_offline_email_notifications",
|
|
];
|
|
|
|
const desktop_notification_settings = [
|
|
"pm_content_in_desktop_notifications",
|
|
];
|
|
|
|
const mobile_notification_settings = [
|
|
"enable_online_push_notifications",
|
|
];
|
|
|
|
const email_notification_settings = [
|
|
"enable_digest_emails",
|
|
"enable_login_emails",
|
|
"message_content_in_email_notifications",
|
|
"realm_name_in_notifications",
|
|
];
|
|
|
|
const presence_notification_settings = [
|
|
"presence_enabled",
|
|
];
|
|
|
|
const other_notification_settings = desktop_notification_settings.concat(
|
|
["desktop_icon_count_display"],
|
|
mobile_notification_settings,
|
|
email_notification_settings,
|
|
presence_notification_settings,
|
|
["notification_sound"]
|
|
);
|
|
|
|
exports.all_notification_settings = other_notification_settings.concat(
|
|
pm_mention_notification_settings,
|
|
exports.stream_notification_settings
|
|
);
|
|
|
|
exports.all_notifications = () => ({
|
|
general_settings: [
|
|
{
|
|
label: i18n.t("Streams"),
|
|
notification_settings: settings_notifications.get_notifications_table_row_data(
|
|
exports.stream_notification_settings),
|
|
},
|
|
{
|
|
label: i18n.t("PMs, mentions, and alerts"),
|
|
notification_settings: settings_notifications.get_notifications_table_row_data(
|
|
pm_mention_notification_settings),
|
|
},
|
|
],
|
|
settings: {
|
|
desktop_notification_settings: desktop_notification_settings,
|
|
mobile_notification_settings: mobile_notification_settings,
|
|
email_notification_settings: email_notification_settings,
|
|
presence_notification_settings: presence_notification_settings,
|
|
},
|
|
show_push_notifications_tooltip: {
|
|
push_notifications: !page_params.realm_push_notifications_enabled,
|
|
enable_online_push_notifications: !page_params.realm_push_notifications_enabled,
|
|
},
|
|
});
|