141 lines
4.5 KiB
JavaScript
141 lines
4.5 KiB
JavaScript
const ORIGINAL_SETTINGS = {
|
|
title: "QUnit Discourse Tests",
|
|
site_logo_url: "/assets/logo.png",
|
|
site_logo_url: "/assets/logo.png",
|
|
site_logo_small_url: "/assets/logo-single.png",
|
|
site_mobile_logo_url: "",
|
|
site_favicon_url:
|
|
"//meta.discourse.org/uploads/default/2499/79d53726406d87af.ico",
|
|
allow_user_locale: false,
|
|
suggested_topics: 7,
|
|
ga_universal_tracking_code: "",
|
|
ga_universal_domain_name: "auto",
|
|
top_menu: "latest|new|unread|categories|top",
|
|
post_menu: "like|share|flag|edit|bookmark|delete|admin|reply",
|
|
post_menu_hidden_items: "flag|bookmark|edit|delete|admin",
|
|
share_links: "twitter|facebook|email",
|
|
category_colors:
|
|
"BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|27AA5B|B3B5B4|E45735",
|
|
enable_mobile_theme: true,
|
|
relative_date_duration: 14,
|
|
fixed_category_positions: false,
|
|
enable_badges: true,
|
|
invite_only: false,
|
|
login_required: false,
|
|
must_approve_users: false,
|
|
enable_local_logins: true,
|
|
allow_new_registrations: true,
|
|
enable_google_logins: true,
|
|
enable_google_oauth2_logins: false,
|
|
enable_twitter_logins: true,
|
|
enable_facebook_logins: true,
|
|
enable_github_logins: true,
|
|
enable_sso: false,
|
|
min_username_length: 3,
|
|
max_username_length: 20,
|
|
min_password_length: 8,
|
|
enable_names: true,
|
|
invites_shown: 30,
|
|
delete_user_max_post_age: 60,
|
|
delete_all_posts_max: 15,
|
|
min_post_length: 20,
|
|
min_personal_message_post_length: 10,
|
|
max_post_length: 32000,
|
|
min_topic_title_length: 15,
|
|
max_topic_title_length: 255,
|
|
min_personal_message_title_length: 2,
|
|
allow_uncategorized_topics: true,
|
|
min_title_similar_length: 10,
|
|
edit_history_visible_to_public: true,
|
|
delete_removed_posts_after: 24,
|
|
traditional_markdown_linebreaks: false,
|
|
suppress_reply_directly_below: true,
|
|
suppress_reply_directly_above: true,
|
|
newuser_max_images: 0,
|
|
newuser_max_attachments: 0,
|
|
display_name_on_posts: true,
|
|
short_progress_text_threshold: 10000,
|
|
default_code_lang: "auto",
|
|
autohighlight_all_code: false,
|
|
email_in: false,
|
|
authorized_extensions: ".jpg|.jpeg|.png|.gif|.svg|.txt|.ico|.yml",
|
|
authorized_extensions_for_staff: "",
|
|
max_image_width: 690,
|
|
max_image_height: 500,
|
|
allow_profile_backgrounds: true,
|
|
allow_uploaded_avatars: true,
|
|
allow_animated_avatars: false,
|
|
tl1_requires_read_posts: 30,
|
|
enable_long_polling: true,
|
|
polling_interval: 3000,
|
|
anon_polling_interval: 30000,
|
|
flush_timings_secs: 5,
|
|
enable_user_directory: true,
|
|
tos_url: "",
|
|
privacy_policy_url: "",
|
|
tos_accept_required: false,
|
|
faq_url: "",
|
|
allow_restore: false,
|
|
maximum_backups: 5,
|
|
version_checks: true,
|
|
suppress_uncategorized_badge: true,
|
|
min_search_term_length: 3,
|
|
topic_views_heat_low: 1000,
|
|
topic_views_heat_medium: 2000,
|
|
topic_views_heat_high: 5000,
|
|
global_notice: "",
|
|
show_create_topics_notice: true,
|
|
available_locales:
|
|
"cs|da|de|en|es|fr|he|id|it|ja|ko|nb_NO|nl|pl_PL|pt|pt_BR|ru|sv|uk|zh_CN|zh_TW",
|
|
highlighted_languages:
|
|
"apache|bash|cs|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|nginx|objectivec|ruby|perl|php|python|sql|handlebars",
|
|
enable_emoji: true,
|
|
enable_emoji_shortcuts: true,
|
|
emoji_set: "emoji_one",
|
|
enable_emoji_shortcuts: true,
|
|
enable_inline_emoji_translation: false,
|
|
desktop_category_page_style: "categories_and_latest_topics",
|
|
enable_mentions: true,
|
|
enable_personal_messages: true,
|
|
unicode_usernames: false,
|
|
secure_media: false
|
|
};
|
|
|
|
let siteSettings = Object.assign({}, ORIGINAL_SETTINGS);
|
|
Discourse.SiteSettings = siteSettings;
|
|
|
|
export function currentSettings() {
|
|
return siteSettings;
|
|
}
|
|
|
|
// In debug mode, Ember will decorate objects with setters that remind you to use
|
|
// this.set() because they are bound (even if you use `unbound` or `readonly` in templates!).
|
|
// Site settings are only ever changed in tests and these warnings are not wanted, so we'll
|
|
// strip them when resetting our settings between tests.
|
|
function setValue(k, v) {
|
|
let desc = Object.getOwnPropertyDescriptor(siteSettings, k);
|
|
if (desc && !desc.writable) {
|
|
Object.defineProperty(siteSettings, k, { writable: true });
|
|
}
|
|
siteSettings[k] = v;
|
|
}
|
|
|
|
export function mergeSettings(other) {
|
|
for (let p in other) {
|
|
if (other.hasOwnProperty(p)) {
|
|
setValue(p, other[p]);
|
|
}
|
|
}
|
|
return siteSettings;
|
|
}
|
|
|
|
export function resetSettings() {
|
|
for (let p in siteSettings) {
|
|
if (siteSettings.hasOwnProperty(p)) {
|
|
let v = ORIGINAL_SETTINGS[p];
|
|
typeof v !== "undefined" ? setValue(p, v) : delete siteSettings[p];
|
|
}
|
|
}
|
|
return siteSettings;
|
|
}
|