Vulcan/packages/nova-lib/lib/config.js
2016-02-25 17:44:43 +09:00

62 lines
No EOL
2 KiB
JavaScript

/**
* Kick off the global namespace for Telescope.
* @namespace Telescope
*/
Telescope = {};
Telescope.VERSION = '0.25.7';
// ------------------------------------- Config -------------------------------- //
/**
* Telescope configuration namespace
* @namespace Telescope.config
*/
Telescope.config = {};
// ------------------------------------- Schemas -------------------------------- //
SimpleSchema.extendOptions({
private: Match.Optional(Boolean),
editable: Match.Optional(Boolean), // editable: true means the field can be edited by the document's owner
hidden: Match.Optional(Boolean), // hidden: true means the field is never shown in a form no matter what
editableBy: Match.Optional([String]),
publishedTo: Match.Optional([String]),
required: Match.Optional(Boolean), // required: true means the field is required to have a complete profile
public: Match.Optional(Boolean), // public: true means the field is published freely
profile: Match.Optional(Boolean), // profile: true means the field is shown on user profiles
template: Match.Optional(String), // template used to display the field
autoform: Match.Optional(Object), // autoform placeholder
control: Match.Optional(String), // autoform placeholder
join: Match.Optional(Object) // autoform placeholder
// editableBy: Match.Optional(String)
});
// ------------------------------------- Components -------------------------------- //
Telescope.components = {};
Telescope.registerComponent = (name, component) => {
Telescope.components[name] = component;
};
Telescope.getComponent = (name) => {
return Telescope.components[name];
};
// ------------------------------------- Subscriptions -------------------------------- //
/**
* Subscriptions namespace
* @namespace Telescope.subscriptions
*/
Telescope.subscriptions = [];
/**
* Add a subscription to be preloaded
* @param {string} subscription - The name of the subscription
*/
Telescope.subscriptions.preload = function (subscription, args) {
Telescope.subscriptions.push({name: subscription, arguments: args});
};