import { i18n } from 'meteor/universe:i18n'; import SimpleSchema from 'simpl-schema'; import ModuleTypes from '../subTypes'; export default { available: true, price: () => 25, type: ModuleTypes.CONSUMER, settings: new SimpleSchema({ minDuration: { label: () => i18n.__('modules.reservations.settings.minDuration'), type: SimpleSchema.Integer, defaultValue: 30, // Minutes min: 0, }, maxDuration: { label: () => i18n.__('modules.reservations.settings.maxDuration'), type: SimpleSchema.Integer, defaultValue: 600, // Minutes optional: true, min: 1, }, durationGranularity: { label: () => i18n.__('modules.reservations.settings.durationGranularity.label'), type: SimpleSchema.Integer, defaultValue: 30, // Minutes optional: true, min: 1, max: 30, uniforms: { options: () => new Array(60 / 5 + 1).fill(0).map((_, i) => { const n = i * 5 || 1; return { label: `${n} ${i18n.__(`modules.reservations.settings.durationGranularity.${i === 1 ? 'minute' : 'minutes'}`)}`, value: n, }; }), }, }, Capacity: { label: () => i18n.__('modules.reservations.settings.capacity'), type: SimpleSchema.Integer, defaultValue: 1, // number of reservations optional: true, min: 0, }, maxPeople: { label: () => i18n.__('modules.reservations.settings.maxPeople'), type: SimpleSchema.Integer, defaultValue: 12, min: 1, }, minPeople: { label: () => i18n.__('modules.reservations.settings.minPeople'), type: SimpleSchema.Integer, defaultValue: 1, optional: true, min: 1, }, minStartDate: { label: () => i18n.__('modules.reservations.settings.minStartDate'), type: SimpleSchema.Integer, defaultValue: 20, // Minutes optional: true, min: 0, }, maxStartDate: { label: () => i18n.__('modules.reservations.settings.maxStartDate'), type: SimpleSchema.Integer, defaultValue: 365, // Year optional: true, min: 1, }, managerIds: { label: () => i18n.__('modules.reservations.settings.managers'), type: Array, defaultValue: [], optional: true, }, 'managerIds.$': { type: String, }, reminderEmailOffsetInHours: { helpText: () => i18n.__('modules.reservations.settings.reminderEmailOffset.help'), label: () => i18n.__('modules.reservations.settings.reminderEmailOffset.label'), type: SimpleSchema.Integer, defaultValue: 24, optional: true, min: -1, max: 31, }, reservationInstructions: { label: () => i18n.__('modules.reservations.settings.reservationInstructions'), type: String, optional: true, uniforms: { multiline: true, }, }, approvalInstructions: { label: () => i18n.__('modules.reservations.settings.approvalInstructions'), type: String, optional: true, uniforms: { multiline: true, }, }, }), };
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter