2016-06-23 15:00:58 +09:00
|
|
|
import Users from 'meteor/nova:users';
|
|
|
|
|
2016-04-15 15:42:14 +09:00
|
|
|
const isInSettingsJSON = function () {
|
2016-04-21 15:09:03 +09:00
|
|
|
// settings can either be in settings json's public, or in the special object we publish only for admins for private settings
|
|
|
|
return typeof Telescope.settings.getFromJSON(this.name) !== "undefined" || typeof Telescope.settings.settingsJSON[this.name] !== "undefined";
|
|
|
|
};
|
|
|
|
|
|
|
|
const getFromJSON = function () {
|
|
|
|
return Telescope.settings.getFromJSON(this.name) || Telescope.settings.settingsJSON[this.name];
|
2016-04-15 15:42:14 +09:00
|
|
|
};
|
|
|
|
|
2016-02-16 15:08:30 +09:00
|
|
|
Telescope.settings.collection = new Mongo.Collection("settings");
|
2015-04-22 07:50:11 +09:00
|
|
|
|
2016-07-21 09:53:58 +09:00
|
|
|
const canEdit = user => Users.canDo(user, "settings.edit");
|
|
|
|
|
2016-02-16 15:08:30 +09:00
|
|
|
Telescope.settings.schema = new SimpleSchema({
|
2015-04-22 07:50:11 +09:00
|
|
|
title: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: "Your site's title.",
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
siteUrl: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2015-06-05 12:01:50 +09:00
|
|
|
// regEx: SimpleSchema.RegEx.Url,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general",
|
2015-06-05 12:01:50 +09:00
|
|
|
type: "bootstrap-url",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'Your site\'s URL (with trailing "/"). Will default to Meteor.absoluteUrl()'
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
tagline: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
description: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general",
|
2015-04-22 07:50:11 +09:00
|
|
|
rows: 5,
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'A short description used for SEO purposes.'
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
siteImage: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
regEx: SimpleSchema.RegEx.Url,
|
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: "URL to an image for the open graph image tag for all pages"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
requireViewInvite: {
|
|
|
|
type: Boolean,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2016-04-15 15:42:14 +09:00
|
|
|
control: "checkbox",
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-22 07:50:11 +09:00
|
|
|
group: 'invites',
|
|
|
|
leftLabel: 'Require View Invite'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
requirePostInvite: {
|
|
|
|
type: Boolean,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2016-04-15 15:42:14 +09:00
|
|
|
control: "checkbox",
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-22 07:50:11 +09:00
|
|
|
group: 'invites',
|
|
|
|
leftLabel: 'Require Post Invite'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
requirePostsApproval: {
|
|
|
|
type: Boolean,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2016-04-15 15:42:14 +09:00
|
|
|
control: "checkbox",
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "01_general",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: "Posts must be approved by admin",
|
2015-04-22 07:50:11 +09:00
|
|
|
leftLabel: "Require Posts Approval"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
defaultEmail: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "06_email",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'The address all outgoing emails will be sent from.',
|
2015-04-25 12:39:07 +09:00
|
|
|
class: "private-field"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
mailUrl: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "06_email",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'MAIL_URL environment variable (requires restart).',
|
2015-04-25 12:39:07 +09:00
|
|
|
class: "private-field"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
scoreUpdateInterval: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
|
|
|
defaultValue: 30,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-06-18 16:46:45 +09:00
|
|
|
group: '01_general',
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'How often to recalculate scores, in seconds (default to 30)',
|
2015-04-25 12:39:07 +09:00
|
|
|
class: "private-field"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
postInterval: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2015-04-22 07:50:11 +09:00
|
|
|
defaultValue: 30,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "02_posts",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'Minimum time between posts, in seconds (defaults to 30)'
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
2015-10-13 10:16:40 +09:00
|
|
|
RSSLinksPointTo: {
|
2015-07-18 12:12:55 +09:00
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2016-04-15 15:42:14 +09:00
|
|
|
control: "radiogroup",
|
2015-07-18 12:12:55 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-07-18 12:12:55 +09:00
|
|
|
group: "02_posts",
|
|
|
|
options: [
|
|
|
|
{value: 'page', label: 'Discussion page'},
|
|
|
|
{value: 'link', label: 'Outgoing link'}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2015-04-22 07:50:11 +09:00
|
|
|
commentInterval: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2015-04-22 07:50:11 +09:00
|
|
|
defaultValue: 15,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "03_comments",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'Minimum time between comments, in seconds (defaults to 15)'
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
maxPostsPerDay: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2015-04-22 07:50:11 +09:00
|
|
|
defaultValue: 30,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "02_posts",
|
2016-06-19 14:32:15 +09:00
|
|
|
instructions: 'Maximum number of posts a user can post in a day (default to 30).'
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
startInvitesCount: {
|
|
|
|
type: Number,
|
|
|
|
defaultValue: 3,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-22 07:50:11 +09:00
|
|
|
group: 'invites'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
postsPerPage: {
|
|
|
|
type: Number,
|
|
|
|
defaultValue: 10,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "02_posts"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
logoUrl: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "04_logo"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
logoHeight: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "04_logo"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
logoWidth: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "04_logo"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
|
|
|
faviconUrl: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "04_logo"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
2016-04-15 11:11:13 +09:00
|
|
|
// language: {
|
|
|
|
// type: String,
|
|
|
|
// defaultValue: 'en',
|
|
|
|
// optional: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
// insertableIf: canEdit,
|
|
|
|
// editableIf: canEdit,
|
2016-04-15 11:11:13 +09:00
|
|
|
// autoform: {
|
|
|
|
// group: "01_general",
|
2016-06-19 14:32:15 +09:00
|
|
|
// instructions: 'The app\'s language. Defaults to English.',
|
2016-04-15 11:11:13 +09:00
|
|
|
// options: function () {
|
|
|
|
// var languages = _.map(TAPi18n.getLanguages(), function (item, key) {
|
|
|
|
// return {
|
|
|
|
// value: key,
|
|
|
|
// label: item.name
|
|
|
|
// };
|
|
|
|
// });
|
|
|
|
// return languages;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// },
|
2015-04-22 07:50:11 +09:00
|
|
|
twitterAccount: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "07_integrations"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
2015-08-03 15:43:02 +09:00
|
|
|
facebookPage: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-08-03 15:43:02 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-08-03 15:43:02 +09:00
|
|
|
group: "07_integrations"
|
|
|
|
}
|
|
|
|
},
|
2015-04-22 07:50:11 +09:00
|
|
|
googleAnalyticsId: {
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-04-21 15:09:03 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2015-04-25 12:39:07 +09:00
|
|
|
group: "07_integrations"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
},
|
2016-06-09 20:26:33 +09:00
|
|
|
locale: {
|
2015-04-22 07:50:11 +09:00
|
|
|
type: String,
|
|
|
|
optional: true,
|
2016-06-09 20:26:33 +09:00
|
|
|
publish: true,
|
2016-07-21 09:53:58 +09:00
|
|
|
insertableIf: canEdit,
|
|
|
|
editableIf: canEdit,
|
2015-04-22 07:50:11 +09:00
|
|
|
autoform: {
|
2016-04-15 15:42:14 +09:00
|
|
|
disabled: isInSettingsJSON,
|
2016-04-21 15:09:03 +09:00
|
|
|
prefill: getFromJSON,
|
2016-06-09 20:26:33 +09:00
|
|
|
group: "01_general"
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-02-16 15:08:30 +09:00
|
|
|
Telescope.settings.collection.attachSchema(Telescope.settings.schema);
|
2015-04-22 07:50:11 +09:00
|
|
|
|
2016-06-19 14:32:15 +09:00
|
|
|
Telescope.subscriptions.preload("settings");
|