Vulcan/packages/nova-newsletter/lib/custom_fields.js

170 lines
3.7 KiB
JavaScript
Raw Normal View History

2016-08-08 11:18:21 +09:00
import Telescope from 'meteor/nova:lib';
import NewsletterSubscribe from './components/NewsletterSubscribe.jsx';
2016-06-23 11:40:35 +09:00
import Posts from "meteor/nova:posts";
2016-06-23 15:00:58 +09:00
import Users from 'meteor/nova:users';
2016-07-21 09:40:05 +09:00
// check if user can create a new account
const canInsert = user => Users.canDo(user, "users.new");
// check if user can edit a user
const canEdit = Users.canEdit;
Posts.addField({
fieldName: 'scheduledAt',
fieldSchema: {
type: Date,
2016-04-05 16:27:48 +09:00
optional: true
}
});
Users.addField([
{
2016-02-25 17:44:43 +09:00
fieldName: 'telescope.newsletter_subscribeToNewsletter',
fieldSchema: {
label: 'Subscribe to newsletter',
type: Boolean,
optional: true,
2016-05-22 14:29:04 +02:00
publish: true,
defaultValue: false,
2016-07-21 09:40:05 +09:00
insertableIf: canInsert,
editableIf: canEdit,
control: NewsletterSubscribe,
group: {
name: "newsletter",
label: "Newsletter",
order: 3
}
2016-05-22 14:29:04 +02:00
}
},
]);
// Settings
if (typeof Telescope.settings.collection !== "undefined") {
Telescope.settings.collection.addField([
{
fieldName: 'enableNewsletter',
fieldSchema: {
type: Boolean,
optional: true,
form: {
group: 'newsletter',
instructions: 'Enable newsletter (requires restart).'
}
}
},
{
fieldName: 'enableNewsletterInDev',
fieldSchema: {
type: Boolean,
optional: true,
form: {
group: 'newsletter',
instructions: 'Enable newsletter in development too (requires restart).'
}
}
},
{
fieldName: "mailChimpAPIKey",
fieldSchema: {
type: String,
optional: true,
private: true,
form: {
group: "newsletter",
class: "private-field"
}
}
},
{
fieldName: 'mailChimpListId',
fieldSchema: {
type: String,
optional: true,
private: true,
form: {
group: 'newsletter',
instructions: 'The ID of the list you want to send to.',
class: "private-field"
}
}
},
{
fieldName: 'postsPerNewsletter',
fieldSchema: {
type: Number,
optional: true,
form: {
group: 'newsletter'
}
}
},
{
fieldName: 'newsletterFrequency',
fieldSchema: {
type: [Number],
optional: true,
defaultValue: [2,4,6],
form: {
group: 'newsletter',
instructions: 'Defaults to once a week on Monday. Changes require restarting your app to take effect.',
noselect: true,
options: [
{
value: 1,
label: 'Sunday'
},
{
value: 2,
label: 'Monday'
},
{
value: 3,
label: 'Tuesday'
},
{
value: 4,
label: 'Wednesday'
},
{
value: 5,
label: 'Thursday'
},
{
value: 6,
label: 'Friday'
},
{
value: 7,
label: 'Saturday'
}
]
}
}
},
{
fieldName: 'newsletterTime',
fieldSchema: {
type: String,
optional: true,
defaultValue: '00:00',
form: {
group: 'newsletter',
instructions: 'Defaults to 00:00/12:00 AM. Time to send out newsletter if enabled (GMT).',
type: 'time'
}
}
},
{
fieldName: 'autoSubscribe',
fieldSchema: {
type: Boolean,
optional: true,
form: {
group: 'newsletter',
instructions: 'Automatically subscribe new users on sign-up.'
}
}
}
]);
2016-05-22 14:29:04 +02:00
}