adding @summary for jsdocs compatibility

This commit is contained in:
Sacha Greif 2016-04-09 09:41:20 +09:00
parent b89f1693a7
commit 104cad9b15
37 changed files with 214 additions and 155 deletions

View file

@ -4,7 +4,7 @@
// node.js install path, default to: "`which node`" on Mac and Linux, "`where node`" on Windows // node.js install path, default to: "`which node`" on Mac and Linux, "`where node`" on Windows
"nodePath": "", "nodePath": "",
// Project docs path // Project docs path
"docsPath": "~/nova-docs", "docsPath": "~/Dev/nova-docs",
// Project docs Meteor server port, default to: 3333 // Project docs Meteor server port, default to: 3333
"meteorPort": 3333, "meteorPort": 3333,
// Copy the Meteor docs server before building the docs (required for the first build) // Copy the Meteor docs server before building the docs (required for the first build)

View file

@ -1,6 +1,6 @@
/** /**
* Get all of a category's parents * @summary Get all of a category's parents
* @param {Object} category * @param {Object} category
*/ */
Categories.getParents = function (category) { Categories.getParents = function (category) {
@ -19,7 +19,7 @@ Categories.getParents = function (category) {
Categories.helpers({getParents: function () {return Categories.getParents(this);}}); Categories.helpers({getParents: function () {return Categories.getParents(this);}});
/** /**
* Get all of a category's children * @summary Get all of a category's children
* @param {Object} category * @param {Object} category
*/ */
Categories.getChildren = function (category) { Categories.getChildren = function (category) {
@ -38,7 +38,7 @@ Categories.getChildren = function (category) {
Categories.helpers({getChildren: function () {return Categories.getChildren(this);}}); Categories.helpers({getChildren: function () {return Categories.getChildren(this);}});
/** /**
* Get all of a post's categories * @summary Get all of a post's categories
* @param {Object} post * @param {Object} post
*/ */
Posts.getCategories = function (post) { Posts.getCategories = function (post) {
@ -47,7 +47,7 @@ Posts.getCategories = function (post) {
Posts.helpers({getCategories: function () {return Posts.getCategories(this);}}); Posts.helpers({getCategories: function () {return Posts.getCategories(this);}});
/** /**
* Get a category's URL * @summary Get a category's URL
* @param {Object} category * @param {Object} category
*/ */
Categories.getUrl = function (category, isAbsolute) { Categories.getUrl = function (category, isAbsolute) {
@ -59,7 +59,7 @@ Categories.getUrl = function (category, isAbsolute) {
Categories.helpers({getUrl: function () {return Categories.getUrl(this);}}); Categories.helpers({getUrl: function () {return Categories.getUrl(this);}});
/** /**
* Get a category's counter name * @summary Get a category's counter name
* @param {Object} category * @param {Object} category
*/ */
Categories.getCounterName = function (category) { Categories.getCounterName = function (category) {

View file

@ -16,7 +16,7 @@ Comments.before.update(function (userId, doc, fieldNames, modifier) {
}); });
/** /**
* Disallow $rename * @summary Disallow $rename
*/ */
Comments.before.update(function (userId, doc, fieldNames, modifier) { Comments.before.update(function (userId, doc, fieldNames, modifier) {
if (!!modifier.$rename) { if (!!modifier.$rename) {

View file

@ -1,11 +1,11 @@
/** /**
* The global namespace for Comments. * @summary The global namespace for Comments.
* @namespace Comments * @namespace Comments
*/ */
Comments = new Mongo.Collection("comments"); Comments = new Mongo.Collection("comments");
/** /**
* Comments schema * @summary Comments schema
* @type {SimpleSchema} * @type {SimpleSchema}
*/ */
Comments.schema = new SimpleSchema({ Comments.schema = new SimpleSchema({

View file

@ -3,7 +3,7 @@
////////////////// //////////////////
/** /**
* Get URL of a comment page. * @summary Get URL of a comment page.
* @param {Object} comment * @param {Object} comment
*/ */
Comments.getPageUrl = function(comment, isAbsolute){ Comments.getPageUrl = function(comment, isAbsolute){
@ -18,7 +18,7 @@ Comments.helpers({getPageUrl: function () {return Comments.getPageUrl(this);}});
/////////////////// ///////////////////
/** /**
* Get a comment author's name * @summary Get a comment author's name
* @param {Object} comment * @param {Object} comment
*/ */
Comments.getAuthorName = function (comment) { Comments.getAuthorName = function (comment) {

View file

@ -1,8 +1,9 @@
Comments.parameters = {}; Comments.parameters = {};
/** /**
* Gives an object containing the appropriate find * @summary Gives an object containing the appropriate find
* and options arguments for the subscriptions's Comments.find() * and options arguments for the subscriptions's Comments.find()
* @memberof Parameters
* @param {Object} terms * @param {Object} terms
*/ */
Comments.parameters.get = function (terms) { Comments.parameters.get = function (terms) {

View file

@ -3,7 +3,7 @@ import PublicationsUtils from 'meteor/utilities:smart-publications';
Comments.publishedFields = {}; Comments.publishedFields = {};
/** /**
* Specify which fields should be published by the posts.list publication * @summary Specify which fields should be published by the posts.list publication
* @array Posts.publishedFields.list * @array Posts.publishedFields.list
*/ */
Comments.publishedFields.list = PublicationsUtils.arrayToFields([ Comments.publishedFields.list = PublicationsUtils.arrayToFields([
@ -21,7 +21,7 @@ Comments.publishedFields.list = PublicationsUtils.arrayToFields([
]); ]);
/** /**
* Specify which fields should be published by the posts.single publication * @summary Specify which fields should be published by the posts.single publication
* @array Posts.publishedFields.single * @array Posts.publishedFields.single
*/ */
Comments.publishedFields.single = PublicationsUtils.arrayToFields(Comments.getPublishedFields()); Comments.publishedFields.single = PublicationsUtils.arrayToFields(Comments.getPublishedFields());

View file

@ -2,7 +2,7 @@ Comments._ensureIndex({postId: 1});
Comments._ensureIndex({parentCommentId: 1}); Comments._ensureIndex({parentCommentId: 1});
/** /**
* Publish a list of comments, along with the posts and users corresponding to these comments * @summary Publish a list of comments, along with the posts and users corresponding to these comments
* @param {Object} terms * @param {Object} terms
*/ */
Meteor.publish('comments.list', function (terms) { Meteor.publish('comments.list', function (terms) {

View file

@ -1,11 +1,11 @@
/** /**
* Comment views are filters used for subscribing to and viewing comments * @summary Comment views are filters used for subscribing to and viewing comments
* @namespace Comments.views * @namespace Comments.views
*/ */
Comments.views = {}; Comments.views = {};
/** /**
* Add a module to a comment view * @summary Add a module to a comment view
* @param {string} viewName - The name of the view * @param {string} viewName - The name of the view
* @param {function} [viewFunction] - The function used to calculate query terms. Takes terms and baseParameters arguments * @param {function} [viewFunction] - The function used to calculate query terms. Takes terms and baseParameters arguments
*/ */

View file

@ -3,7 +3,7 @@ var modifyKarma = function (userId, karma) {
}; };
/** /**
* Update an item's (post or comment) score * @summary Update an item's (post or comment) score
* @param {object} item - The item being operated on * @param {object} item - The item being operated on
* @param {object} user - The user doing the operation * @param {object} user - The user doing the operation
* @param {object} collection - The collection the item belongs to * @param {object} collection - The collection the item belongs to
@ -18,7 +18,7 @@ Telescope.callbacks.add("cancelUpvote.async", updateScore);
Telescope.callbacks.add("cancelDownvote.async", updateScore); Telescope.callbacks.add("cancelDownvote.async", updateScore);
/** /**
* Update the profile of the user doing the operation * @summary Update the profile of the user doing the operation
* @param {object} item - The item being operated on * @param {object} item - The item being operated on
* @param {object} user - The user doing the operation * @param {object} user - The user doing the operation
* @param {object} collection - The collection the item belongs to * @param {object} collection - The collection the item belongs to
@ -58,7 +58,7 @@ Telescope.callbacks.add("cancelUpvote.async", updateUser);
Telescope.callbacks.add("cancelDownvote.async", updateUser); Telescope.callbacks.add("cancelDownvote.async", updateUser);
/** /**
* Update the karma of the item's owner * @summary Update the karma of the item's owner
* @param {object} item - The item being operated on * @param {object} item - The item being operated on
* @param {object} user - The user doing the operation * @param {object} user - The user doing the operation
* @param {object} collection - The collection the item belongs to * @param {object} collection - The collection the item belongs to

View file

@ -1,5 +1,5 @@
/** /**
* A dictionnary of all the elements that use custom colors * @summary A dictionnary of all the elements that use custom colors
*/ */
Telescope.colorElements = {}; Telescope.colorElements = {};
@ -19,7 +19,7 @@ Telescope.colorElements.defaultColors = {
}; };
/** /**
* Register an element to use a custom color * @summary Register an element to use a custom color
* @param {string} selector - the CSS selector of the element * @param {string} selector - the CSS selector of the element
* @param {string} color - the color. Either `accentColor`, `accentContrastColor`, `secondaryColor`, or `secondaryContrastColor` * @param {string} color - the color. Either `accentColor`, `accentContrastColor`, `secondaryColor`, or `secondaryContrastColor`
* @param {string} [property=color] - the property to colorize. Usually `color`, `background-color`, `border-color`, etc. * @param {string} [property=color] - the property to colorize. Usually `color`, `background-color`, `border-color`, etc.

View file

@ -1,7 +1,7 @@
// ------------------------------ Dynamic Icons ------------------------------ // // ------------------------------ Dynamic Icons ------------------------------ //
/** /**
* Take an icon name (such as "open") and return the HTML code to display the icon * @summary Take an icon name (such as "open") and return the HTML code to display the icon
* @param {string} iconName - the name of the icon * @param {string} iconName - the name of the icon
* @param {string} [iconClass] - an optional class to assign to the icon * @param {string} [iconClass] - an optional class to assign to the icon
*/ */
@ -13,7 +13,7 @@ Telescope.utils.getIcon = function (iconName, iconClass) {
}; };
/** /**
* A directory of icon keys and icon codes * @summary A directory of icon keys and icon codes
*/ */
Telescope.utils.icons = { Telescope.utils.icons = {
expand: "angle-right", expand: "angle-right",

View file

@ -1,5 +1,5 @@
/** /**
* Telescope Telescope.email namespace * @summary Telescope Telescope.email namespace
* @namespace Telescope.email * @namespace Telescope.email
*/ */
Telescope.email = {}; Telescope.email = {};

View file

@ -43,7 +43,7 @@ fieldSchema: {
}); });
/** /**
* Copy over profile.isDummy to telescope.isDummy on user creation * @summary Copy over profile.isDummy to telescope.isDummy on user creation
* @param {Object} user the user object being iterated on and returned * @param {Object} user the user object being iterated on and returned
* @param {Object} options user options * @param {Object} options user options
*/ */

View file

@ -1,11 +1,11 @@
/** /**
* Callback hooks provide an easy way to add extra steps to common operations. * @summary Callback hooks provide an easy way to add extra steps to common operations.
* @namespace Telescope.callbacks * @namespace Telescope.callbacks
*/ */
Telescope.callbacks = {}; Telescope.callbacks = {};
/** /**
* Add a callback function to a hook * @summary Add a callback function to a hook
* @param {String} hook - The name of the hook * @param {String} hook - The name of the hook
* @param {Function} callback - The callback function * @param {Function} callback - The callback function
*/ */
@ -20,7 +20,7 @@ Telescope.callbacks.add = function (hook, callback) {
}; };
/** /**
* Remove a callback from a hook * @summary Remove a callback from a hook
* @param {string} hook - The name of the hook * @param {string} hook - The name of the hook
* @param {string} functionName - The name of the function to remove * @param {string} functionName - The name of the function to remove
*/ */
@ -31,7 +31,7 @@ Telescope.callbacks.remove = function (hookName, callbackName) {
}; };
/** /**
* Successively run all of a hook's callbacks on an item * @summary Successively run all of a hook's callbacks on an item
* @param {String} hook - The name of the hook * @param {String} hook - The name of the hook
* @param {Object} item - The post, comment, modifier, etc. on which to run the callbacks * @param {Object} item - The post, comment, modifier, etc. on which to run the callbacks
* @param {Object} [constant] - An optional constant that will be passed along to each callback * @param {Object} [constant] - An optional constant that will be passed along to each callback
@ -54,7 +54,7 @@ Telescope.callbacks.run = function (hook, item, constant) {
}; };
/** /**
* Successively run all of a hook's callbacks on an item, in async mode (only works on server) * @summary Successively run all of a hook's callbacks on an item, in async mode (only works on server)
* @param {String} hook - The name of the hook * @param {String} hook - The name of the hook
* @param {Object} item - The post, comment, modifier, etc. on which to run the callbacks * @param {Object} item - The post, comment, modifier, etc. on which to run the callbacks
* @param {Object} [constant] - An optional constant that will be passed along to each callback * @param {Object} [constant] - An optional constant that will be passed along to each callback

View file

@ -1,10 +1,10 @@
/** /**
* Meteor Collections. * @summary Meteor Collections.
* @class Mongo.Collection * @class Mongo.Collection
*/ */
/** /**
* @summary Add an additional field (or an array of fields) to a schema. * @summary @summary Add an additional field (or an array of fields) to a schema.
* @param {Object|Object[]} field * @param {Object|Object[]} field
*/ */
Mongo.Collection.prototype.addField = function (fieldOrFieldArray) { Mongo.Collection.prototype.addField = function (fieldOrFieldArray) {
@ -24,7 +24,7 @@ Mongo.Collection.prototype.addField = function (fieldOrFieldArray) {
}; };
/** /**
* Remove a field from a schema. * @summary Remove a field from a schema.
* @param {String} fieldName * @param {String} fieldName
*/ */
Mongo.Collection.prototype.removeField = function (fieldName) { Mongo.Collection.prototype.removeField = function (fieldName) {
@ -37,7 +37,7 @@ Mongo.Collection.prototype.removeField = function (fieldName) {
}; };
/** /**
* Global schemas object. Note: not reactive, won't be updated after initialization * @summary Global schemas object. Note: not reactive, won't be updated after initialization
* @namespace Telescope.schemas * @namespace Telescope.schemas
*/ */
Telescope.schemas = {}; Telescope.schemas = {};

View file

@ -1,5 +1,5 @@
/** /**
* Kick off the global namespace for Telescope. * @summary Kick off the global namespace for Telescope.
* @namespace Telescope * @namespace Telescope
*/ */
@ -10,7 +10,7 @@ Telescope.VERSION = '0.25.7';
// ------------------------------------- Config -------------------------------- // // ------------------------------------- Config -------------------------------- //
/** /**
* Telescope configuration namespace * @summary Telescope configuration namespace
* @namespace Telescope.config * @namespace Telescope.config
*/ */
Telescope.config = {}; Telescope.config = {};
@ -44,13 +44,13 @@ Telescope.getComponent = (name) => {
// ------------------------------------- Subscriptions -------------------------------- // // ------------------------------------- Subscriptions -------------------------------- //
/** /**
* Subscriptions namespace * @summary Subscriptions namespace
* @namespace Telescope.subscriptions * @namespace Telescope.subscriptions
*/ */
Telescope.subscriptions = []; Telescope.subscriptions = [];
/** /**
* Add a subscription to be preloaded * @summary Add a subscription to be preloaded
* @param {string} subscription - The name of the subscription * @param {string} subscription - The name of the subscription
*/ */
Telescope.subscriptions.preload = function (subscription, args) { Telescope.subscriptions.preload = function (subscription, args) {

View file

@ -1,12 +1,12 @@
/** /**
* The global namespace for Telescope utils. * @summary The global namespace for Telescope utils.
* @namespace Telescope.utils * @namespace Telescope.utils
*/ */
Telescope.utils = {}; Telescope.utils = {};
/** /**
* Convert a camelCase string to dash-separated string * @summary Convert a camelCase string to dash-separated string
* @param {String} str * @param {String} str
*/ */
Telescope.utils.camelToDash = function (str) { Telescope.utils.camelToDash = function (str) {
@ -14,7 +14,7 @@ Telescope.utils.camelToDash = function (str) {
}; };
/** /**
* Convert a camelCase string to a space-separated capitalized string * @summary Convert a camelCase string to a space-separated capitalized string
* See http://stackoverflow.com/questions/4149276/javascript-camelcase-to-regular-form * See http://stackoverflow.com/questions/4149276/javascript-camelcase-to-regular-form
* @param {String} str * @param {String} str
*/ */
@ -23,7 +23,7 @@ Telescope.utils.camelToSpaces = function (str) {
}; };
/** /**
* Convert an underscore-separated string to dash-separated string * @summary Convert an underscore-separated string to dash-separated string
* @param {String} str * @param {String} str
*/ */
Telescope.utils.underscoreToDash = function (str) { Telescope.utils.underscoreToDash = function (str) {
@ -31,7 +31,7 @@ Telescope.utils.underscoreToDash = function (str) {
}; };
/** /**
* Convert a dash separated string to camelCase. * @summary Convert a dash separated string to camelCase.
* @param {String} str * @param {String} str
*/ */
Telescope.utils.dashToCamel = function (str) { Telescope.utils.dashToCamel = function (str) {
@ -39,7 +39,7 @@ Telescope.utils.dashToCamel = function (str) {
}; };
/** /**
* Convert a string to camelCase and remove spaces. * @summary Convert a string to camelCase and remove spaces.
* @param {String} str * @param {String} str
*/ */
Telescope.utils.camelCaseify = function(str) { Telescope.utils.camelCaseify = function(str) {
@ -49,7 +49,7 @@ Telescope.utils.camelCaseify = function(str) {
}; };
/** /**
* Trim a sentence to a specified amount of words and append an ellipsis. * @summary Trim a sentence to a specified amount of words and append an ellipsis.
* @param {String} s - Sentence to trim. * @param {String} s - Sentence to trim.
* @param {Number} numWords - Number of words to trim sentence to. * @param {Number} numWords - Number of words to trim sentence to.
*/ */
@ -65,7 +65,7 @@ Telescope.utils.trimWords = function(s, numWords) {
}; };
/** /**
* Trim a block of HTML code to get a clean text excerpt * @summary Trim a block of HTML code to get a clean text excerpt
* @param {String} html - HTML to trim. * @param {String} html - HTML to trim.
*/ */
Telescope.utils.trimHTML = function (html, numWords) { Telescope.utils.trimHTML = function (html, numWords) {
@ -74,7 +74,7 @@ Telescope.utils.trimHTML = function (html, numWords) {
}; };
/** /**
* Capitalize a string. * @summary Capitalize a string.
* @param {String} str * @param {String} str
*/ */
Telescope.utils.capitalise = function(str) { Telescope.utils.capitalise = function(str) {
@ -111,14 +111,14 @@ Telescope.utils.getDateRange = function(pageNumber) {
////////////////////////// //////////////////////////
/** /**
* Returns the user defined site URL or Meteor.absoluteUrl * @summary Returns the user defined site URL or Meteor.absoluteUrl
*/ */
Telescope.utils.getSiteUrl = function () { Telescope.utils.getSiteUrl = function () {
return Telescope.settings.get('siteUrl', Meteor.absoluteUrl()); return Telescope.settings.get('siteUrl', Meteor.absoluteUrl());
}; };
/** /**
* The global namespace for Telescope utils. * @summary The global namespace for Telescope utils.
* @param {String} url - the URL to redirect * @param {String} url - the URL to redirect
*/ */
Telescope.utils.getOutgoingUrl = function (url) { Telescope.utils.getOutgoingUrl = function (url) {

View file

@ -19,7 +19,7 @@ Posts.views.add("campaign", function (terms) {
const Campaign = {}; const Campaign = {};
/** /**
* Return an array containing the latest n posts that can be sent in a newsletter * @summary Return an array containing the latest n posts that can be sent in a newsletter
* @param {Number} postsCount * @param {Number} postsCount
*/ */
Campaign.getPosts = function (postsCount) { Campaign.getPosts = function (postsCount) {
@ -41,7 +41,7 @@ Campaign.getPosts = function (postsCount) {
}; };
/** /**
* Build a newsletter campaign from an array of posts * @summary Build a newsletter campaign from an array of posts
* (Called from Campaign.scheduleNextWithMailChimp) * (Called from Campaign.scheduleNextWithMailChimp)
* @param {Array} postsArray * @param {Array} postsArray
*/ */

View file

@ -4,7 +4,7 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
/** /**
* Generate HTML body and excerpt from Markdown on post insert * @summary Generate HTML body and excerpt from Markdown on post insert
*/ */
Posts.before.insert(function (userId, doc) { Posts.before.insert(function (userId, doc) {
if(!!doc.body) { if(!!doc.body) {
@ -15,7 +15,7 @@ Posts.before.insert(function (userId, doc) {
}); });
/** /**
* Generate HTML body and excerpt from Markdown when post body is updated * @summary Generate HTML body and excerpt from Markdown when post body is updated
*/ */
Posts.before.update(function (userId, doc, fieldNames, modifier) { Posts.before.update(function (userId, doc, fieldNames, modifier) {
// if body is being modified or $unset, update htmlBody too // if body is being modified or $unset, update htmlBody too
@ -31,7 +31,7 @@ Posts.before.update(function (userId, doc, fieldNames, modifier) {
}); });
/** /**
* Generate slug when post title is updated * @summary Generate slug when post title is updated
*/ */
Posts.before.update(function (userId, doc, fieldNames, modifier) { Posts.before.update(function (userId, doc, fieldNames, modifier) {
// if title is being modified, update slug too // if title is being modified, update slug too
@ -41,7 +41,7 @@ Posts.before.update(function (userId, doc, fieldNames, modifier) {
}); });
/** /**
* Disallow $rename * @summary Disallow $rename
*/ */
Posts.before.update(function (userId, doc, fieldNames, modifier) { Posts.before.update(function (userId, doc, fieldNames, modifier) {
if (!!modifier.$rename) { if (!!modifier.$rename) {
@ -58,7 +58,7 @@ Posts.before.update(function (userId, doc, fieldNames, modifier) {
// ------------------------------------- posts.new.method -------------------------------- // // ------------------------------------- posts.new.method -------------------------------- //
/** /**
* Check that the current user can post * @summary Check that the current user can post
*/ */
function clientSubmitChecks (post, user) { function clientSubmitChecks (post, user) {
// check that user can post // check that user can post
@ -69,7 +69,7 @@ function clientSubmitChecks (post, user) {
Telescope.callbacks.add("posts.new.method", clientSubmitChecks); Telescope.callbacks.add("posts.new.method", clientSubmitChecks);
/** /**
* Rate limiting * @summary Rate limiting
*/ */
function rateLimiting (post, user) { function rateLimiting (post, user) {
@ -95,7 +95,7 @@ function rateLimiting (post, user) {
Telescope.callbacks.add("posts.new.method", rateLimiting); Telescope.callbacks.add("posts.new.method", rateLimiting);
/** /**
* Properties * @summary Properties
*/ */
function propertyChecks (post, user) { function propertyChecks (post, user) {
@ -122,7 +122,7 @@ function propertyChecks (post, user) {
Telescope.callbacks.add("posts.new.method", propertyChecks); Telescope.callbacks.add("posts.new.method", propertyChecks);
/** /**
* Properties * @summary Properties
*/ */
function methodDefaultProperties (post, user) { function methodDefaultProperties (post, user) {
@ -145,7 +145,7 @@ Telescope.callbacks.add("posts.new.method", methodDefaultProperties);
// ------------------------------------- posts.new.sync -------------------------------- // // ------------------------------------- posts.new.sync -------------------------------- //
/** /**
* Check for necessary properties * @summary Check for necessary properties
*/ */
function postSubmitChecks (post, user) { function postSubmitChecks (post, user) {
// check that a title was provided // check that a title was provided
@ -159,7 +159,7 @@ function postSubmitChecks (post, user) {
Telescope.callbacks.add("posts.new.sync", postSubmitChecks); Telescope.callbacks.add("posts.new.sync", postSubmitChecks);
/** /**
* Set properties to default values if missing * @summary Set properties to default values if missing
*/ */
function setProperties (post, user) { function setProperties (post, user) {
@ -190,7 +190,7 @@ function setProperties (post, user) {
Telescope.callbacks.add("posts.new.sync", setProperties); Telescope.callbacks.add("posts.new.sync", setProperties);
/** /**
* Set postedAt date * @summary Set postedAt date
*/ */
function setPostedAt (post, user) { function setPostedAt (post, user) {
// if post is approved but doesn't have a postedAt date, give it a default date // if post is approved but doesn't have a postedAt date, give it a default date
@ -205,7 +205,7 @@ Telescope.callbacks.add("posts.new.sync", setPostedAt);
// ------------------------------------- posts.new.async -------------------------------- // // ------------------------------------- posts.new.async -------------------------------- //
/** /**
* Increment the user's post count * @summary Increment the user's post count
*/ */
function incrementPostCount (post) { function incrementPostCount (post) {
var userId = post.userId; var userId = post.userId;
@ -215,7 +215,7 @@ function incrementPostCount (post) {
Telescope.callbacks.add("posts.new.async", incrementPostCount); Telescope.callbacks.add("posts.new.async", incrementPostCount);
/** /**
* Make users upvote their own new posts * @summary Make users upvote their own new posts
*/ */
if (typeof Telescope.operateOnItem !== "undefined") { if (typeof Telescope.operateOnItem !== "undefined") {
function upvoteOwnPost (post) { function upvoteOwnPost (post) {
@ -227,7 +227,7 @@ if (typeof Telescope.operateOnItem !== "undefined") {
} }
/** /**
* Add new post notification callback on post submit * @summary Add new post notification callback on post submit
*/ */
if (typeof Telescope.notifications !== "undefined") { if (typeof Telescope.notifications !== "undefined") {
function postSubmitNotification (post) { function postSubmitNotification (post) {
@ -254,7 +254,7 @@ if (typeof Telescope.notifications !== "undefined") {
Telescope.callbacks.add("posts.new.async", postSubmitNotification); Telescope.callbacks.add("posts.new.async", postSubmitNotification);
/** /**
* Add notification callback when a post is approved * @summary Add notification callback when a post is approved
*/ */
function postApprovedNotification (post) { function postApprovedNotification (post) {
@ -275,7 +275,7 @@ if (typeof Telescope.notifications !== "undefined") {
// ------------------------------------- posts.edit.sync -------------------------------- // // ------------------------------------- posts.edit.sync -------------------------------- //
/** /**
* Force sticky to default to false when it's not specified * @summary Force sticky to default to false when it's not specified
*/ */
function forceStickyToFalse (modifier, post) { function forceStickyToFalse (modifier, post) {
if (!modifier.$set.sticky) { if (!modifier.$set.sticky) {
@ -289,7 +289,7 @@ Telescope.callbacks.add("posts.edit.sync", forceStickyToFalse);
// ------------------------------------- posts.edit.async -------------------------------- // // ------------------------------------- posts.edit.async -------------------------------- //
/** /**
* Set postedAt date * @summary Set postedAt date
*/ */
function setPostedAtOnEdit (post, oldPost) { function setPostedAtOnEdit (post, oldPost) {
// if post is approved but doesn't have a postedAt date, give it a default date // if post is approved but doesn't have a postedAt date, give it a default date

View file

@ -1,5 +1,5 @@
/** /**
* Posts schema * @summary Posts schema
* @type {SimpleSchema} * @type {SimpleSchema}
*/ */
Posts.schema = new SimpleSchema({ Posts.schema = new SimpleSchema({
@ -224,6 +224,6 @@ Posts.schema = new SimpleSchema({
// }); // });
/** /**
* Attach schema to Posts collection * @summary Attach schema to Posts collection
*/ */
Posts.attachSchema(Posts.schema); Posts.attachSchema(Posts.schema);

View file

@ -1,18 +1,18 @@
/** /**
* The global namespace/collection for Posts. * @summary The global namespace/collection for Posts.
* @namespace Posts * @namespace Posts
*/ */
Posts = new Mongo.Collection("posts"); Posts = new Mongo.Collection("posts");
/** /**
* Posts config namespace * @summary Posts config namespace
* @type {Object} * @type {Object}
*/ */
Posts.config = {}; Posts.config = {};
/** /**
* Post Statuses * @summary Post Statuses
*/ */
Posts.config.postStatuses = [ Posts.config.postStatuses = [
{ {

View file

@ -3,7 +3,7 @@
////////////////// //////////////////
/** /**
* Return a post's link if it has one, else return its post page URL * @summary Return a post's link if it has one, else return its post page URL
* @param {Object} post * @param {Object} post
*/ */
Posts.getLink = function (post, isAbsolute) { Posts.getLink = function (post, isAbsolute) {
@ -12,7 +12,7 @@ Posts.getLink = function (post, isAbsolute) {
Posts.helpers({getLink: function (isAbsolute) {return Posts.getLink(this, isAbsolute);}}); Posts.helpers({getLink: function (isAbsolute) {return Posts.getLink(this, isAbsolute);}});
/** /**
* Depending on the settings, return either a post's URL link (if it has one) or its page URL. * @summary Depending on the settings, return either a post's URL link (if it has one) or its page URL.
* @param {Object} post * @param {Object} post
*/ */
Posts.getShareableLink = function (post) { Posts.getShareableLink = function (post) {
@ -21,7 +21,7 @@ Posts.getShareableLink = function (post) {
Posts.helpers({getShareableLink: function () {return Posts.getShareableLink(this);}}); Posts.helpers({getShareableLink: function () {return Posts.getShareableLink(this);}});
/** /**
* Whether a post's link should open in a new tab or not * @summary Whether a post's link should open in a new tab or not
* @param {Object} post * @param {Object} post
*/ */
Posts.getLinkTarget = function (post) { Posts.getLinkTarget = function (post) {
@ -30,7 +30,7 @@ Posts.getLinkTarget = function (post) {
Posts.helpers({getLinkTarget: function () {return Posts.getLinkTarget(this);}}); Posts.helpers({getLinkTarget: function () {return Posts.getLinkTarget(this);}});
/** /**
* Get URL of a post page. * @summary Get URL of a post page.
* @param {Object} post * @param {Object} post
*/ */
Posts.getPageUrl = function(post, isAbsolute){ Posts.getPageUrl = function(post, isAbsolute){
@ -41,7 +41,7 @@ Posts.getPageUrl = function(post, isAbsolute){
Posts.helpers({getPageUrl: function (isAbsolute) {return Posts.getPageUrl(this, isAbsolute);}}); Posts.helpers({getPageUrl: function (isAbsolute) {return Posts.getPageUrl(this, isAbsolute);}});
/** /**
* Get post edit page URL. * @summary Get post edit page URL.
* @param {String} id * @param {String} id
*/ */
Posts.getEditUrl = function(post, isAbsolute){ Posts.getEditUrl = function(post, isAbsolute){
@ -56,7 +56,7 @@ Posts.helpers({getEditUrl: function (isAbsolute) {return Posts.getEditUrl(this,
/////////////////// ///////////////////
/** /**
* Get a post author's name * @summary Get a post author's name
* @param {Object} post * @param {Object} post
*/ */
Posts.getAuthorName = function (post) { Posts.getAuthorName = function (post) {
@ -70,7 +70,7 @@ Posts.getAuthorName = function (post) {
Posts.helpers({getAuthorName: function () {return Posts.getAuthorName(this);}}); Posts.helpers({getAuthorName: function () {return Posts.getAuthorName(this);}});
/** /**
* Get default status for new posts. * @summary Get default status for new posts.
* @param {Object} user * @param {Object} user
*/ */
Posts.getDefaultStatus = function (user) { Posts.getDefaultStatus = function (user) {
@ -84,7 +84,7 @@ Posts.getDefaultStatus = function (user) {
}; };
/** /**
* Check if a post is approved * @summary Check if a post is approved
* @param {Object} post * @param {Object} post
*/ */
Posts.isApproved = function (post) { Posts.isApproved = function (post) {
@ -93,7 +93,7 @@ Posts.isApproved = function (post) {
Posts.helpers({isApproved: function () {return Posts.isApproved(this);}}); Posts.helpers({isApproved: function () {return Posts.isApproved(this);}});
/** /**
* Check to see if post URL is unique. * @summary Check to see if post URL is unique.
* We need the current user so we know who to upvote the existing post as. * We need the current user so we know who to upvote the existing post as.
* @param {String} url * @param {String} url
*/ */
@ -109,14 +109,14 @@ Posts.checkForSameUrl = function (url) {
}; };
/** /**
* When on a post page, return the current post * @summary When on a post page, return the current post
*/ */
Posts.current = function () { Posts.current = function () {
return Posts.findOne(FlowRouter.getParam("_id")); return Posts.findOne(FlowRouter.getParam("_id"));
}; };
/** /**
* Check to see if a post is a link to a video * @summary Check to see if a post is a link to a video
* @param {Object} post * @param {Object} post
*/ */
Posts.isVideo = function (post) { Posts.isVideo = function (post) {

View file

@ -6,7 +6,7 @@
Posts.methods = {}; Posts.methods = {};
/** /**
* Insert a post in the database (note: optional post properties not listed here) * @summary Insert a post in the database (note: optional post properties not listed here)
* @param {Object} post - the post being inserted * @param {Object} post - the post being inserted
* @param {string} post.userId - the id of the user the post belongs to * @param {string} post.userId - the id of the user the post belongs to
* @param {string} post.title - the post's title * @param {string} post.title - the post's title
@ -26,7 +26,7 @@ Posts.methods.new = function (post) {
}; };
/** /**
* Edit a post in the database * @summary Edit a post in the database
* @param {string} postId the ID of the post being edited * @param {string} postId the ID of the post being edited
* @param {Object} modifier the modifier object * @param {Object} modifier the modifier object
* @param {Object} post - the current post object * @param {Object} post - the current post object
@ -55,8 +55,9 @@ var postViews = [];
Meteor.methods({ Meteor.methods({
/** /**
* Meteor method for submitting a post from the client * @summary Meteor method for submitting a post from the client
* @memberof Posts * @memberof Posts
* @isMethod true
* @param {Object} post - the post being inserted * @param {Object} post - the post being inserted
*/ */
'posts.new': function(post){ 'posts.new': function(post){
@ -86,8 +87,9 @@ Meteor.methods({
}, },
/** /**
* Meteor method for editing a post from the client * @summary Meteor method for editing a post from the client
* @memberof Posts * @memberof Posts
* @isMethod true
* @param {Object} modifier - the update modifier * @param {Object} modifier - the update modifier
* @param {Object} postId - the id of the post being updated * @param {Object} postId - the id of the post being updated
*/ */
@ -127,6 +129,12 @@ Meteor.methods({
}, },
/**
* @summary Meteor method for approving a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post to approve
*/
'posts.approve': function(postId){ 'posts.approve': function(postId){
check(postId, String); check(postId, String);
@ -151,6 +159,12 @@ Meteor.methods({
} }
}, },
/**
* @summary Meteor method for rejecting a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post to reject
*/
'posts.reject': function(postId){ 'posts.reject': function(postId){
check(postId, String); check(postId, String);
@ -167,6 +181,12 @@ Meteor.methods({
} }
}, },
/**
* @summary Meteor method for increasing the number of views on a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.increaseViews': function(postId, sessionId){ 'posts.increaseViews': function(postId, sessionId){
check(postId, String); check(postId, String);
@ -183,6 +203,12 @@ Meteor.methods({
} }
}, },
/**
* @summary Meteor method for deleting a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.deleteById': function(postId) { 'posts.deleteById': function(postId) {
check(postId, String); check(postId, String);
@ -207,25 +233,56 @@ Meteor.methods({
}, },
/**
* @summary Check for other posts with the same URL
* @memberof Posts
* @isMethod true
* @param {String} url - the URL to check
*/
'posts.checkForDuplicates': function (url) { 'posts.checkForDuplicates': function (url) {
Posts.checkForSameUrl(url); Posts.checkForSameUrl(url);
}, },
/**
* Upvote a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.upvote': function (postId) { 'posts.upvote': function (postId) {
check(postId, String); check(postId, String);
return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "upvote"); return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "upvote");
}, },
/**
* Downvote a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.downvote': function (postId) { 'posts.downvote': function (postId) {
check(postId, String); check(postId, String);
return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "downvote"); return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "downvote");
}, },
/**
* Cancel an upvote on a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.cancelUpvote': function (postId) { 'posts.cancelUpvote': function (postId) {
check(postId, String); check(postId, String);
return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "cancelUpvote"); return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "cancelUpvote");
}, },
/**
* Cancel a downvote on a post
* @memberof Posts
* @isMethod true
* @param {String} postId - the id of the post
*/
'posts.cancelDownvote': function (postId) { 'posts.cancelDownvote': function (postId) {
check(postId, String); check(postId, String);
return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "cancelDownvote"); return Telescope.operateOnItem.call(this, Posts, postId, Meteor.user(), "cancelDownvote");

View file

@ -1,12 +1,13 @@
/** /**
* Parameter callbacks let you add parameters to subscriptions * @summary Parameter callbacks let you add parameters to subscriptions
* @namespace Posts.parameters * @namespace Posts.parameters
*/ */
Posts.parameters = {}; Posts.parameters = {};
/** /**
* Takes a set of terms, and translates them into a `parameter` object containing the appropriate find * @summary Takes a set of terms, and translates them into a `parameter` object containing the appropriate find
* and options arguments for the subscriptions's Posts.find() * and options arguments for the subscriptions's Posts.find()
* @memberof Parameters
* @param {Object} terms * @param {Object} terms
*/ */
Posts.parameters.get = function (terms) { Posts.parameters.get = function (terms) {

View file

@ -3,7 +3,7 @@ import PublicationsUtils from 'meteor/utilities:smart-publications';
Posts.publishedFields = {}; Posts.publishedFields = {};
/** /**
* Specify which fields should be published by the posts.list publication * @summary Specify which fields should be published by the posts.list publication
* @array Posts.publishedFields.list * @array Posts.publishedFields.list
*/ */
Posts.publishedFields.list = PublicationsUtils.arrayToFields([ Posts.publishedFields.list = PublicationsUtils.arrayToFields([
@ -26,7 +26,7 @@ Posts.publishedFields.list = PublicationsUtils.arrayToFields([
]); ]);
/** /**
* Specify which fields should be published by the posts.single publication * @summary Specify which fields should be published by the posts.single publication
* @array Posts.publishedFields.single * @array Posts.publishedFields.single
*/ */
Meteor.startup(() => { Meteor.startup(() => {

View file

@ -3,7 +3,7 @@ Posts._ensureIndex({"status": 1, "postedAt": 1});
// ------------------------------------- Helpers -------------------------------- // // ------------------------------------- Helpers -------------------------------- //
/** /**
* Get all users relevant to a list of posts * @summary Get all users relevant to a list of posts
* (authors of the listed posts, and first four commenters of each post) * (authors of the listed posts, and first four commenters of each post)
* @param {Object} posts * @param {Object} posts
*/ */
@ -24,7 +24,7 @@ const getPostsListUsers = posts => {
}; };
/** /**
* Get all users relevant to a single post * @summary Get all users relevant to a single post
* (author of the current post, authors of its comments, and upvoters & downvoters of the post) * (author of the current post, authors of its comments, and upvoters & downvoters of the post)
* @param {Object} post * @param {Object} post
*/ */
@ -57,7 +57,7 @@ const getSinglePostUsers = post => {
// ------------------------------------- Publications -------------------------------- // // ------------------------------------- Publications -------------------------------- //
/** /**
* Publish a list of posts, along with the users corresponding to these posts * @summary Publish a list of posts, along with the users corresponding to these posts
* @param {Object} terms * @param {Object} terms
*/ */
Meteor.publish('posts.list', function (terms) { Meteor.publish('posts.list', function (terms) {
@ -85,7 +85,7 @@ Meteor.publish('posts.list', function (terms) {
}); });
/** /**
* Publish a single post, along with all relevant users * @summary Publish a single post, along with all relevant users
* @param {Object} terms * @param {Object} terms
*/ */
Meteor.publish('posts.single', function (terms) { Meteor.publish('posts.single', function (terms) {

View file

@ -1,11 +1,11 @@
/** /**
* Post views are filters used for subscribing to and viewing posts * @summary Post views are filters used for subscribing to and viewing posts
* @namespace Posts.views * @namespace Posts.views
*/ */
Posts.views = {}; Posts.views = {};
/** /**
* Add a post view * @summary Add a post view
* @param {string} viewName - The name of the view * @param {string} viewName - The name of the view
* @param {function} [viewFunction] - The function used to calculate query terms. Takes terms and baseParameters arguments * @param {function} [viewFunction] - The function used to calculate query terms. Takes terms and baseParameters arguments
*/ */
@ -14,7 +14,7 @@ Posts.views.add = function (viewName, viewFunction) {
}; };
/** /**
* Base parameters that will be common to all other view unless specific properties are overwritten * @summary Base parameters that will be common to all other view unless specific properties are overwritten
*/ */
Posts.views.baseParameters = { Posts.views.baseParameters = {
selector: { selector: {
@ -26,7 +26,7 @@ Posts.views.baseParameters = {
}; };
/** /**
* Top view * @summary Top view
*/ */
Posts.views.add("top", function (terms) { Posts.views.add("top", function (terms) {
return { return {
@ -35,7 +35,7 @@ Posts.views.add("top", function (terms) {
}); });
/** /**
* New view * @summary New view
*/ */
Posts.views.add("new", function (terms) { Posts.views.add("new", function (terms) {
return { return {
@ -44,7 +44,7 @@ Posts.views.add("new", function (terms) {
}); });
/** /**
* Best view * @summary Best view
*/ */
Posts.views.add("best", function (terms) { Posts.views.add("best", function (terms) {
return { return {
@ -53,7 +53,7 @@ Posts.views.add("best", function (terms) {
}); });
/** /**
* Pending view * @summary Pending view
*/ */
Posts.views.add("pending", function (terms) { Posts.views.add("pending", function (terms) {
return { return {
@ -66,7 +66,7 @@ Posts.views.add("pending", function (terms) {
}); });
/** /**
* Rejected view * @summary Rejected view
*/ */
Posts.views.add("rejected", function (terms) { Posts.views.add("rejected", function (terms) {
return { return {
@ -79,7 +79,7 @@ Posts.views.add("rejected", function (terms) {
}); });
/** /**
* Scheduled view * @summary Scheduled view
*/ */
Posts.views.add("scheduled", function (terms) { Posts.views.add("scheduled", function (terms) {
return { return {
@ -90,7 +90,7 @@ Posts.views.add("scheduled", function (terms) {
}); });
/** /**
* User posts view * @summary User posts view
*/ */
Posts.views.add("userPosts", function (terms) { Posts.views.add("userPosts", function (terms) {
return { return {
@ -100,7 +100,7 @@ Posts.views.add("userPosts", function (terms) {
}); });
/** /**
* User upvoted posts view * @summary User upvoted posts view
*/ */
Posts.views.add("userUpvotedPosts", function (terms) { Posts.views.add("userUpvotedPosts", function (terms) {
var user = Meteor.users.findOne(terms.userId); var user = Meteor.users.findOne(terms.userId);
@ -112,7 +112,7 @@ Posts.views.add("userUpvotedPosts", function (terms) {
}); });
/** /**
* User downvoted posts view * @summary User downvoted posts view
*/ */
Posts.views.add("userDownvotedPosts", function (terms) { Posts.views.add("userDownvotedPosts", function (terms) {
var user = Meteor.users.findOne(terms.userId); var user = Meteor.users.findOne(terms.userId);

View file

@ -1,5 +1,5 @@
/** /**
* The global namespace for Settings. * @summary The global namespace for Settings.
* @namespace Telescope.settings.collection * @namespace Telescope.settings.collection
*/ */
Telescope.settings.collection = new Mongo.Collection("settings"); Telescope.settings.collection = new Mongo.Collection("settings");

View file

@ -3,7 +3,7 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
/** /**
* Generate HTML body from Markdown on user bio insert * @summary Generate HTML body from Markdown on user bio insert
*/ */
Users.after.insert(function (userId, user) { Users.after.insert(function (userId, user) {
@ -18,7 +18,7 @@ Users.after.insert(function (userId, user) {
}); });
/** /**
* Generate HTML body from Markdown when user bio is updated * @summary Generate HTML body from Markdown when user bio is updated
*/ */
Users.before.update(function (userId, doc, fieldNames, modifier) { Users.before.update(function (userId, doc, fieldNames, modifier) {
// if bio is being modified, update htmlBio too // if bio is being modified, update htmlBio too
@ -28,7 +28,7 @@ Users.before.update(function (userId, doc, fieldNames, modifier) {
}); });
/** /**
* Disallow $rename * @summary Disallow $rename
*/ */
Users.before.update(function (userId, doc, fieldNames, modifier) { Users.before.update(function (userId, doc, fieldNames, modifier) {
if (!!modifier.$rename) { if (!!modifier.$rename) {
@ -37,7 +37,7 @@ Users.before.update(function (userId, doc, fieldNames, modifier) {
}); });
/** /**
* If user.telescope.email has changed, check for existing emails and change user.emails and email hash if needed * @summary If user.telescope.email has changed, check for existing emails and change user.emails and email hash if needed
*/ */
if (Meteor.isServer) { if (Meteor.isServer) {
Users.before.update(function (userId, doc, fieldNames, modifier) { Users.before.update(function (userId, doc, fieldNames, modifier) {
@ -73,7 +73,7 @@ Users.before.update(function (userId, doc, fieldNames, modifier) {
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
/** /**
* Set up user object on creation * @summary Set up user object on creation
* @param {Object} user the user object being iterated on and returned * @param {Object} user the user object being iterated on and returned
* @param {Object} options user options * @param {Object} options user options
*/ */

View file

@ -1,6 +1,6 @@
/** /**
* Vote schema * @summary Vote schema
* @type {SimpleSchema} * @type {SimpleSchema}
*/ */
Telescope.schemas.votes = new SimpleSchema({ Telescope.schemas.votes = new SimpleSchema({
@ -18,7 +18,7 @@ Telescope.schemas.votes = new SimpleSchema({
}); });
/** /**
* User Data schema * @summary User Data schema
* @type {SimpleSchema} * @type {SimpleSchema}
*/ */
Telescope.schemas.userData = new SimpleSchema({ Telescope.schemas.userData = new SimpleSchema({
@ -187,7 +187,7 @@ Telescope.schemas.userData = new SimpleSchema({
}); });
/** /**
* Users schema * @summary Users schema
* @type {SimpleSchema} * @type {SimpleSchema}
*/ */
Users.schema = new SimpleSchema({ Users.schema = new SimpleSchema({
@ -252,7 +252,7 @@ Users.schema = new SimpleSchema({
// }); // });
/** /**
* Attach schema to Meteor.users collection * @summary Attach schema to Meteor.users collection
*/ */
Users.attachSchema(Users.schema); Users.attachSchema(Users.schema);

View file

@ -3,7 +3,7 @@
//////////////////// ////////////////////
/** /**
* Get a user * @summary Get a user
* @param {String} userOrUserId * @param {String} userOrUserId
*/ */
Users.getUser = function (userOrUserId) { Users.getUser = function (userOrUserId) {
@ -21,7 +21,7 @@ Users.getUser = function (userOrUserId) {
}; };
/** /**
* Get a user's username (unique, no special characters or spaces) * @summary Get a user's username (unique, no special characters or spaces)
* @param {Object} user * @param {Object} user
*/ */
Users.getUserName = function (user) { Users.getUserName = function (user) {
@ -40,7 +40,7 @@ Users.helpers({getUserName: function () {return Users.getUserName(this);}});
Users.getUserNameById = function (userId) {return Users.getUserName(Meteor.users.findOne(userId))}; Users.getUserNameById = function (userId) {return Users.getUserName(Meteor.users.findOne(userId))};
/** /**
* Get a user's display name (not unique, can take special characters and spaces) * @summary Get a user's display name (not unique, can take special characters and spaces)
* @param {Object} user * @param {Object} user
*/ */
Users.getDisplayName = function (user) { Users.getDisplayName = function (user) {
@ -54,7 +54,7 @@ Users.helpers({getDisplayName: function () {return Users.getDisplayName(this);}}
Users.getDisplayNameById = function (userId) {return Users.getDisplayName(Meteor.users.findOne(userId));}; Users.getDisplayNameById = function (userId) {return Users.getDisplayName(Meteor.users.findOne(userId));};
/** /**
* Get a user's profile URL * @summary Get a user's profile URL
* @param {Object} user (note: we only actually need either the _id or slug properties) * @param {Object} user (note: we only actually need either the _id or slug properties)
* @param {Boolean} isAbsolute * @param {Boolean} isAbsolute
*/ */
@ -73,7 +73,7 @@ Users.getProfileUrl = function (user, isAbsolute) {
Users.helpers({getProfileUrl: function (isAbsolute) {return Users.getProfileUrl(this, isAbsolute);}}); Users.helpers({getProfileUrl: function (isAbsolute) {return Users.getProfileUrl(this, isAbsolute);}});
/** /**
* Get a user's Twitter name * @summary Get a user's Twitter name
* @param {Object} user * @param {Object} user
*/ */
Users.getTwitterName = function (user) { Users.getTwitterName = function (user) {
@ -91,7 +91,7 @@ Users.helpers({getTwitterName: function () {return Users.getTwitterName(this);}}
Users.getTwitterNameById = function (userId) {return Users.getTwitterName(Meteor.users.findOne(userId));}; Users.getTwitterNameById = function (userId) {return Users.getTwitterName(Meteor.users.findOne(userId));};
/** /**
* Get a user's GitHub name * @summary Get a user's GitHub name
* @param {Object} user * @param {Object} user
*/ */
Users.getGitHubName = function (user) { Users.getGitHubName = function (user) {
@ -107,7 +107,7 @@ Users.helpers({getGitHubName: function () {return Users.getGitHubName(this);}});
Users.getGitHubNameById = function (userId) {return Users.getGitHubName(Meteor.users.findOne(userId));}; Users.getGitHubNameById = function (userId) {return Users.getGitHubName(Meteor.users.findOne(userId));};
/** /**
* Get a user's email * @summary Get a user's email
* @param {Object} user * @param {Object} user
*/ */
Users.getEmail = function (user) { Users.getEmail = function (user) {
@ -121,7 +121,7 @@ Users.helpers({getEmail: function () {return Users.getEmail(this);}});
Users.getEmailById = function (userId) {return Users.getEmail(Meteor.users.findOne(userId));}; Users.getEmailById = function (userId) {return Users.getEmail(Meteor.users.findOne(userId));};
/** /**
* Get a user's email hash * @summary Get a user's email hash
* @param {Object} user * @param {Object} user
*/ */
Users.getEmailHash = function (user) { Users.getEmailHash = function (user) {
@ -132,7 +132,7 @@ Users.helpers({getEmailHash: function () {return Users.getEmailHash(this);}});
Users.getEmailHashById = function (userId) {return Users.getEmailHash(Meteor.users.findOne(userId));}; Users.getEmailHashById = function (userId) {return Users.getEmailHash(Meteor.users.findOne(userId));};
/** /**
* Check if a user's profile is complete * @summary Check if a user's profile is complete
* @param {Object} user * @param {Object} user
*/ */
Users.userProfileComplete = function (user) { Users.userProfileComplete = function (user) {
@ -147,7 +147,7 @@ Users.helpers({userProfileComplete: function () {return Users.userProfileComplet
Users.userProfileCompleteById = function (userId) {return Users.userProfileComplete(Meteor.users.findOne(userId));}; Users.userProfileCompleteById = function (userId) {return Users.userProfileComplete(Meteor.users.findOne(userId));};
/** /**
* Get a user setting * @summary Get a user setting
* @param {Object} user * @param {Object} user
* @param {String} settingName * @param {String} settingName
* @param {Object} defaultValue * @param {Object} defaultValue
@ -169,7 +169,7 @@ Users.getSetting = function (user, settingName, defaultValue) {
Users.helpers({getSetting: function (settingName, defaultValue) {return Users.getSetting(this, settingName, defaultValue);}}); Users.helpers({getSetting: function (settingName, defaultValue) {return Users.getSetting(this, settingName, defaultValue);}});
/** /**
* Set a user setting * @summary Set a user setting
* @param {Object} user * @param {Object} user
* @param {String} settingName * @param {String} settingName
* @param {Object} defaultValue * @param {Object} defaultValue
@ -182,7 +182,7 @@ Users.setSetting = function (user, settingName, value) {
Users.helpers({setSetting: function () {return Users.setSetting(this);}}); Users.helpers({setSetting: function () {return Users.setSetting(this);}});
/** /**
* Check if a user has upvoted a post * @summary Check if a user has upvoted a post
* @param {Object} user * @param {Object} user
* @param {Object} post * @param {Object} post
*/ */
@ -192,7 +192,7 @@ Users.hasUpvoted = function (user, post) {
Users.helpers({hasUpvoted: function (post) {return Users.hasUpvoted(this, post);}}); Users.helpers({hasUpvoted: function (post) {return Users.hasUpvoted(this, post);}});
/** /**
* Check if a user has downvoted a post * @summary Check if a user has downvoted a post
* @param {Object} user * @param {Object} user
* @param {Object} post * @param {Object} post
*/ */
@ -259,7 +259,7 @@ Users.findByEmail = function (email) {
/** /**
* @method Users.getRequiredFields * @summary @method Users.getRequiredFields
* Get a list of all fields required for a profile to be complete. * Get a list of all fields required for a profile to be complete.
*/ */
Users.getRequiredFields = function () { Users.getRequiredFields = function () {
@ -272,7 +272,7 @@ Users.getRequiredFields = function () {
}; };
/** /**
* Check if the user has completed their profile. * @summary Check if the user has completed their profile.
* @param {Object} user * @param {Object} user
*/ */
Users.hasCompletedProfile = function (user) { Users.hasCompletedProfile = function (user) {
@ -284,7 +284,7 @@ Users.helpers({hasCompletedProfile: function () {return Users.hasCompletedProfil
Users.hasCompletedProfileById = function (userId) {return Users.hasCompletedProfile(Meteor.users.findOne(userId));}; Users.hasCompletedProfileById = function (userId) {return Users.hasCompletedProfile(Meteor.users.findOne(userId));};
/** /**
* Check if the user has upvoted an item before * @summary Check if the user has upvoted an item before
* @param {Object} user * @param {Object} user
* @param {Object} item * @param {Object} item
*/ */
@ -294,7 +294,7 @@ Users.hasUpvotedItem = function (user, item) {
Users.helpers({hasUpvotedItem: function (item) {return Users.hasUpvotedItem(this, item);}}); Users.helpers({hasUpvotedItem: function (item) {return Users.hasUpvotedItem(this, item);}});
/** /**
* Check if the user has downvoted an item before * @summary Check if the user has downvoted an item before
* @param {Object} user * @param {Object} user
* @param {Object} item * @param {Object} item
*/ */

View file

@ -1,5 +1,5 @@
/** /**
* Telescope Users namespace * @summary Telescope Users namespace
* @namespace Users * @namespace Users
*/ */
Users = Meteor.users; Users = Meteor.users;

View file

@ -2,13 +2,13 @@
// because they'll throw an error when the user is undefined // because they'll throw an error when the user is undefined
/** /**
* Telescope permissions * @summary Telescope permissions
* @namespace Users.can * @namespace Users.can
*/ */
Users.can = {}; Users.can = {};
/** /**
* Check if a given user has access to view posts * @summary Check if a given user has access to view posts
* @param {Object} user * @param {Object} user
*/ */
Users.can.view = function (user) { Users.can.view = function (user) {
@ -26,7 +26,7 @@ Users.can.view = function (user) {
Users.helpers({canView: function () {return Users.can.view(this);}}); Users.helpers({canView: function () {return Users.can.view(this);}});
/** /**
* Check if a given user can view a specific post * @summary Check if a given user can view a specific post
* @param {Object} user * @param {Object} user
* @param {Object} post * @param {Object} post
*/ */
@ -40,7 +40,7 @@ Users.can.viewById = function (userId) {
Users.helpers({canViewById: function () {return Users.can.viewById(this);}}); Users.helpers({canViewById: function () {return Users.can.viewById(this);}});
/** /**
* Check if a given user can view a specific post * @summary Check if a given user can view a specific post
* @param {Object} user - can be undefined! * @param {Object} user - can be undefined!
* @param {Object} post * @param {Object} post
*/ */
@ -69,7 +69,7 @@ Users.can.viewPost = function (user, post) {
Users.helpers({canViewPost: function () {return Users.can.viewPost(this, post);}}); Users.helpers({canViewPost: function () {return Users.can.viewPost(this, post);}});
/** /**
* Check if a given user has permission to submit new posts * @summary Check if a given user has permission to submit new posts
* @param {Object} user * @param {Object} user
*/ */
Users.can.post = function (user) { Users.can.post = function (user) {
@ -97,7 +97,7 @@ Users.can.post = function (user) {
Users.helpers({canPost: function () {return Users.can.post(this);}}); Users.helpers({canPost: function () {return Users.can.post(this);}});
/** /**
* Check if a given user has permission to comment (same as posting for now) * @summary Check if a given user has permission to comment (same as posting for now)
* @param {Object} user * @param {Object} user
*/ */
Users.can.comment = function (user) { Users.can.comment = function (user) {
@ -106,7 +106,7 @@ Users.can.comment = function (user) {
Users.helpers({canComment: function () {return Users.can.comment(this);}}); Users.helpers({canComment: function () {return Users.can.comment(this);}});
/** /**
* Check if a user has permission to vote (same as posting for now) * @summary Check if a user has permission to vote (same as posting for now)
* @param {Object} user * @param {Object} user
*/ */
Users.can.vote = function (user) { Users.can.vote = function (user) {
@ -115,7 +115,7 @@ Users.can.vote = function (user) {
Users.helpers({canVote: function () {return Users.can.vote(this);}}); Users.helpers({canVote: function () {return Users.can.vote(this);}});
/** /**
* Check if a user can edit a document * @summary Check if a user can edit a document
* @param {Object} user - The user performing the action * @param {Object} user - The user performing the action
* @param {Object} document - The document being edited * @param {Object} document - The document being edited
*/ */
@ -140,7 +140,7 @@ Users.can.editById = function (userId, document) {
Users.helpers({canEditById: function (document) {return Users.can.editById(this, document);}}); Users.helpers({canEditById: function (document) {return Users.can.editById(this, document);}});
/** /**
* Check if a user can submit a field * @summary Check if a user can submit a field
* @param {Object} user - The user performing the action * @param {Object} user - The user performing the action
* @param {Object} field - The field being edited or inserted * @param {Object} field - The field being edited or inserted
*/ */

View file

@ -3,7 +3,7 @@ import PublicationsUtils from 'meteor/utilities:smart-publications';
Users.publishedFields = {}; Users.publishedFields = {};
/** /**
* Specify which fields should be public * @summary Specify which fields should be public
* @type {Array} * @type {Array}
*/ */
Users.publishedFields.public = PublicationsUtils.arrayToFields([ Users.publishedFields.public = PublicationsUtils.arrayToFields([
@ -15,7 +15,7 @@ Users.publishedFields.public = PublicationsUtils.arrayToFields([
]); ]);
/** /**
* Minimum required properties to display avatars and display names * @summary Minimum required properties to display avatars and display names
* @type {Array} * @type {Array}
*/ */
// Users.publishedFields.list = PublicationsUtils.arrayToFields([ // Users.publishedFields.list = PublicationsUtils.arrayToFields([

View file

@ -1,11 +1,11 @@
/** /**
* Telescope roles * @summary Telescope roles
* @namespace Users.is * @namespace Users.is
*/ */
Users.is = {}; Users.is = {};
/** /**
* Check if a user is an admin * @summary Check if a user is an admin
* @param {Object|string} userOrUserId - The user or their userId * @param {Object|string} userOrUserId - The user or their userId
*/ */
Users.is.admin = function (userOrUserId) { Users.is.admin = function (userOrUserId) {
@ -21,7 +21,7 @@ Users.is.adminById = Users.is.admin;
Users.helpers({_isAdmin: function () {return Users.is.admin(this);}}); Users.helpers({_isAdmin: function () {return Users.is.admin(this);}});
/** /**
* Check if a user owns a document * @summary Check if a user owns a document
* @param {Object|string} userOrUserId - The user or their userId * @param {Object|string} userOrUserId - The user or their userId
* @param {Object} document - The document to check (post, comment, user object, etc.) * @param {Object} document - The document to check (post, comment, user object, etc.)
*/ */
@ -43,7 +43,7 @@ Users.is.ownerById = Users.is.owner;
Users.helpers({isOwner: function () {return Users.is.owner(this, document);}}); Users.helpers({isOwner: function () {return Users.is.owner(this, document);}});
/** /**
* Check if a user is a member or an admin * @summary Check if a user is a member or an admin
* @param {Object} user - The user * @param {Object} user - The user
* @param {Object} document - The document to check (post, comment, user object, etc.) * @param {Object} document - The document to check (post, comment, user object, etc.)
*/ */
@ -56,7 +56,7 @@ Users.is.memberOrAdmin = function (user) {
}; };
/** /**
* Check if a user owns a document or is an admin * @summary Check if a user owns a document or is an admin
* @param {Object} user - The user * @param {Object} user - The user
* @param {Object} document - The document to check (post, comment, user object, etc.) * @param {Object} document - The document to check (post, comment, user object, etc.)
*/ */

View file

@ -1,5 +1,5 @@
/** /**
* Publish a single user * @summary Publish a single user
* @param {String} idOrSlug * @param {String} idOrSlug
*/ */
Meteor.publish('users.single', function (terms) { Meteor.publish('users.single', function (terms) {
@ -15,7 +15,7 @@ Meteor.publish('users.single', function (terms) {
}); });
/** /**
* Publish the current user * @summary Publish the current user
*/ */
Meteor.publish('users.current', function () { Meteor.publish('users.current', function () {
const user = Meteor.users.find({_id: this.userId}, {fields: {'services.password.bcrypt': false}}); const user = Meteor.users.find({_id: this.userId}, {fields: {'services.password.bcrypt': false}});