{"_id":"apostrophe-moderator","_rev":"92-bde8d33d2f54d01235ff89dc90be3014","name":"apostrophe-moderator","dist-tags":{"beta":"0.5.2","latest":"0.5.8"},"versions":{"0.0.1":{"name":"apostrophe-moderator","version":"0.0.1","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.1","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"}],"bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"948a2dffb0da51d603c62318f2a8b6c96d483cce","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.1.tgz","integrity":"sha512-RW3e4us/ZNBu8hAZT3N280x/GwUf78fNSzYrkdKcVxExMAz7NWDZnZi3gL5KyqbDbnlyY10n4P3+nxWzzPU6Pw==","signatures":[{"sig":"MEYCIQC4OpnMfgqT2B6c5Z8UliIGfVCtlgWOsnlskv0hcoRjLAIhAOGXE30YOYQtpola2Iu1bkEYqrQAfm20u4EgZNpsmxPx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"colpanik","email":"kerry@punkave.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.1","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"},"devDependencies":{}},"0.0.2":{"name":"apostrophe-moderator","version":"0.0.2","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.2","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"e503422220743df1d085ec65ab7ea16c89e44502","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.2.tgz","integrity":"sha512-vzLPhFuHvskTNJUx9Om+iYkiDMiaqYjbyBxTzs6ogc7TYMsXZ2Ax26fUb0ddHz9TprZbk+wGMzbRp+ddV79gxQ==","signatures":[{"sig":"MEUCICxO0AyvBzo9umquy1tyZk75k32PpQdVLzclAu4jzFcSAiEAu72doBwxv3maNILRYhzi6UKs0dDgKjb6PKXgi1rckOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.14","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.0.3":{"name":"apostrophe-moderator","version":"0.0.3","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.3","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"ae6250dbbb9f788ad2450378961f264813defd22","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.3.tgz","integrity":"sha512-MbuAP1tPpO7eh4jeXJGuk3TfoHxxiEaSSN296mbhe2n+kZ2GpuWlOB1ti/zkL08UIuUb1XaG2ZNBbiHc7+A1ug==","signatures":[{"sig":"MEQCID7wf7VCM7ibcp0n+lRWlQcOmGxVoKZXOTyTo4sotUfxAiBr/h1JcXeB0sr2ZhET5Ef+LG2Hg/WY8r9ZyO6rgQ2RCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.14","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.0.4":{"name":"apostrophe-moderator","version":"0.0.4","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.4","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"9442a71174ef2e1d6de469e3c411cef160fd0f00","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.4.tgz","integrity":"sha512-sruf9N8FF6TgO9zB7dE6My8OGX2l/l2+Tw9o+NckrUV3iCckGXWstMF/IMX+210sCYX9onAY1qIJTj0ZEqGPQQ==","signatures":[{"sig":"MEUCIHVFoH/64Efnf+ZPWne3mP12uW6pvWXUdEx2+tEYtCevAiEAtgL31fm2JjMwbeXnu8T35hmK8w8UYhUhNhwS52/mgOg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.14","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.0.5":{"name":"apostrophe-moderator","version":"0.0.5","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.5","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"add1a0f6d4f55bf4df1678df2dbaaca7a25e7391","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.5.tgz","integrity":"sha512-J4KtAFejA3RJEQivELOynSRs2RiMrkNc8BAajo0+aE5fFSBv0hDfxjDZsNIbsbTRGsQIGnmNbMRtcyV2uQoiQw==","signatures":[{"sig":"MEUCIQCASl0pJ/mlZnexVABq7QBvUZvFMo3C7hQFzhVjYou+QAIge+f10hso9vgdroQebgA4regSR/b8sKS2HRoFA4GTEXs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.14","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.0.6":{"name":"apostrophe-moderator","version":"0.0.6","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.0.6","maintainers":[{"name":"boutell","email":"boutell@boutell.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"fcb8fdc62e67976d11f9732225639e90c3cbb10b","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.0.6.tgz","integrity":"sha512-gHLt8UqlR2dtt5qyTCHT5p/ME/l/6ufgll8Hns1x380LlwQ9PNpiDV26/Gn6FsXO81O2lLx+yRdDk/GMCgbh0w==","signatures":[{"sig":"MEUCIQD+XHa8WDETLhedXUIzy4IKi8QQtEnpZ6KJjA1GPc1xSgIgUR5ivZAb2IaboqLGJ3CLIB8NB8Pba4FejX2DdtCgtqk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.4.0":{"name":"apostrophe-moderator","version":"0.4.0","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.4.0","maintainers":[{"name":"boutell","email":"boutell@boutell.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"31106f735722d513115629a2024ab8db774cc835","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.4.0.tgz","integrity":"sha512-Hv5sXB/kQC37/61kMmnlfiCKrPCpDjwhorzcx3+81jRVBZHppvqhxHeAwd3qyxF6M9VtBrqXIISztj7ezIzKAg==","signatures":[{"sig":"MEYCIQChTsMsaincXLJ2gRgCnLiL6V8LtBqx/ddVeJ9sUIsofwIhAPlt7f7/Kdc6PFX1w+CUhTudHvJ5ASVF0vWp0hnGHOSJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.0.x"}},"0.5.0":{"name":"apostrophe-moderator","version":"0.5.0","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.0","maintainers":[{"name":"boutell","email":"boutell@boutell.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"245f3ae4ec20265d318cbc420304ec498ad48e50","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.0.tgz","integrity":"sha512-GmUC5d18JHzIo86OGQa/blEbqdcSKaufG6l3D0KYO3GOz5WvUJTJx5/502cw3EbSm7GbHDn1U9hgCiBa9Phj3g==","signatures":[{"sig":"MEUCIQD2e9sYL1n+uAtCgRFECJTsGv9jo3X7X/16BOBeWIsywAIgIMslZ+CjurDO1MZibxj7D78F2MQpL/QDd/qAgxQFejI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.4.1":{"name":"apostrophe-moderator","version":"0.4.1","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.4.1","maintainers":[{"name":"boutell","email":"boutell@boutell.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"8399bdc619d4d25440421c6490ff4ac5d26a468b","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.4.1.tgz","integrity":"sha512-MALN9WvTsKGYXZpaGB5uUVcUayAB4FCQg9shLU+RK0ymq79ewbcz/McC+MSGFczrsAuNi6GABUoAZAjCfowTkQ==","signatures":[{"sig":"MEUCIFCV9jSimB2Ced8a7IoP7PrAg2snqKeHC1/77RAYxC/5AiEA2swuf5cI1SVK6zWF0QY00AHq/3zaeprC8NgBm8+RoQI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.4.x"}},"0.4.2":{"name":"apostrophe-moderator","version":"0.4.2","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.4.2","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"51b1f9d8f167f6a6063113fd80faca3c05ba26d6","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.4.2.tgz","integrity":"sha512-3hhJxEX7uNHLWL8YrKe1yMXBZXO3JNVAOa9oOqL3DL2Re12AIBM0mUHYwT85rTLXMEM3couMwyysm38TsppTQg==","signatures":[{"sig":"MEUCIDyGnFa9PX3+U2X35kc7a1vdig67hRaoaHOBzlp01BQwAiEAiQYCdjU3CvEtR8jhHaTB9J4Dtwg7n7p9EkBxjnyTx5E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.4.x"}},"0.5.1":{"name":"apostrophe-moderator","version":"0.5.1","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.1","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"4f2230a41f9f789a1d6792f290173b09e57ae072","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.1.tgz","integrity":"sha512-oD/jQCwKp7V7/9nOM6DoJzxfuyThiRPCBi9O3OXdWIvJ9CtHnWCcrh5QHuGmDx0UoJiRq5CrerK018g6Vf1mmg==","signatures":[{"sig":"MEYCIQDvVFPoUkwgLYm7rbIAdtbss9pgXc7lBEJJXrvo5Kc/GwIhAP3tngbJ2k2MT7U4iS+3oHwtfmB8qn3CGQJcjcvV58ku","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.4.3":{"name":"apostrophe-moderator","version":"0.4.3","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.4.3","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"0e41d4505e753a6ef51c6323f739ad6469c9aceb","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.4.3.tgz","integrity":"sha512-2YXgGuOcF2qkbC/47m+bmaPK2ViVou2HYCtm9dU5JhZEcTLqf5rBFpBoxzj6K8jmb8Ruc+qi10l8dZ7gbWiO+g==","signatures":[{"sig":"MEQCIBFuTkUfNgpsQhl1guHjJCHxrprfy/6oTTOu4IuoQ3AOAiAg63D555KiSt5WLSEYX8GHn7AIHloH8Uc/gfrLV8Y4Cg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.4.x"}},"0.5.2":{"name":"apostrophe-moderator","version":"0.5.2","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.2","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"ecdfaae94a6c16817a8c4adf03b0f69ccbc391b1","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.2.tgz","integrity":"sha512-3L/oxjeqfE/H7G1UDBzZ/yKmyJ+oaHfR5XXrLvg8BzXmfIhcIkAg+Dw/FfUy1fmSxq/Pe3x1JgDcuEciFJvqGg==","signatures":[{"sig":"MEUCIQCLhylmQY7ZOe9KkbAMdv2RvZcRwdHorKWAq9SLAyjP3wIgDvux8R16Qsy+RtkvS2i2RlcBV/VFqbz6IBY4AT7uiLI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.3.24","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","moment":"~2.0.0","underscore":"~1.4.4","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.3":{"name":"apostrophe-moderator","version":"0.5.3","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.3","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"c1d68bf3f25d40d6268acbde9462617ed3dd8bbe","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.3.tgz","integrity":"sha512-fzUjIpSXZ+DGJ5PgLZ3XVelwaw4lF9XVLTlM1K+0gzoX4OVZhCoZQpEh9YFHcyXXgJWRbgDhfhAkhCgnSYZj5Q==","signatures":[{"sig":"MEYCIQCeh704870Xxd+jRrmEiKeCwp82NOVNM7CW7jicdn7+iwIhAOfTWQp86ZL6TwCNbo/4tXB5YdMmGAF6EwmcUr3S1s2m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.4.4","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.4":{"name":"apostrophe-moderator","version":"0.5.4","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.4","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"4ff8c6190dd8ebe278119c027a59db6744510390","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.4.tgz","integrity":"sha512-+9NeaMZuHEhumbkAOces5seBCPLN24w9w3BRnv+dxgXhzT6Tc5/tENteDLVRLJOfo7VZERnF5UQAiBq6k3vqmA==","signatures":[{"sig":"MEUCIAuQPIUKMb1Mtu9LSnPOZxPWFt/dlfBgWmp9MsKpwsa1AiEAuwWjPTYPaOKIHlBguCR8H+EVxqgAUQ6lytbBxiWvDL8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.4.4","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.5":{"name":"apostrophe-moderator","version":"0.5.5","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.5","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"614eee84e96c7ba1162e598c41ddef26e0f035a7","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.5.tgz","integrity":"sha512-RQ/2I/K7SUXSfin7Nmpym5XHaSumkAuX4MbJC1AYttEyP0GOCU+d03Q2LvI04N2LtuXhWbDmqQdbmC+gUJwMQg==","signatures":[{"sig":"MEYCIQDuDliF3R49CMRIyyVtXoq/k+PIumUvcRd8/xnR/hA50gIhANAGhJnChiMAsxdiCn+TM3pvtVrtQHw7bPLNMIzg2cJE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.4.4","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"~0.2.6","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.6":{"name":"apostrophe-moderator","version":"0.5.6","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.6","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"a8df625b1ef20cabf81d23d93f7ca7c4f7eb030a","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.6.tgz","integrity":"sha512-gzuubnNfYudIMkkzECqDsPiQKprxMe6u6G1IKbhzXz56j+Ij2uFM2hN+qMs/7E6dS9++Q/SL4lnxE6dqd+NmeA==","signatures":[{"sig":"MEQCIEp3RAzUC+p8bf8fgxl26dJ5Dwx9HKqa44FwwAbjhn1vAiAvCiv9V42C6cadplX9+kEh+GSZf/YkwG6mqp08cXhIAA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"colpanik","email":"kerry@punkave.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.4.3","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"0.8.x","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.7":{"name":"apostrophe-moderator","version":"0.5.7","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.7","maintainers":[{"name":"colpanik","email":"kerry@punkave.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"kylestetz","email":"kyle@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"gsf","email":"g@grrawr.com"},{"name":"stuartromanek","email":"stuart@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"764f50d8300e7bdcb34305e3025f432bc423cfbd","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.7.tgz","integrity":"sha512-QzK4CH6Ek85wPjy9wW2OC57S4EoGTkqcGXMR9ZKQ7XAvQ7sMjQPkbQeuAlwCblpfDym0p68PS5LIMrJq2MTupw==","signatures":[{"sig":"MEYCIQDfKEFLSP566nnQRFiB3iQVoAIQGuo2XvXsEFHrhbwawAIhAK3G/bryJq/itlrsbb0rvKa8U1DPauqI9ub/unrY6mYD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"764f50d8300e7bdcb34305e3025f432bc423cfbd","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git@github.com:punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"1.4.9","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"dependencies":{"async":"0.8.x","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"}},"0.5.8":{"name":"apostrophe-moderator","version":"0.5.8","keywords":["apostrophe","cms","punkave"],"author":{"name":"P'unk Avenue LLC"},"license":"MIT","_id":"apostrophe-moderator@0.5.8","maintainers":[{"name":"alexgilbert","email":"alex@punkave.com"},{"name":"austinstarin","email":"austin.starin@gmail.com"},{"name":"benirose","email":"ben@punkave.com"},{"name":"boutell","email":"boutell@boutell.com"},{"name":"colpanik","email":"kerry@punkave.com"},{"name":"dkh202","email":"danielkhunter@gmail.com"},{"name":"gsf","email":"g@gsf.io"},{"name":"jimmyh","email":"jimmy@punkave.com"},{"name":"joshuatrii","email":"jan@joshuatrii.com"},{"name":"jsumnersmith","email":"joel@punkave.com"},{"name":"kyjoya","email":"kyleejacker@gmail.com"},{"name":"kylestetz","email":"kylestetz@gmail.com"},{"name":"livhaas","email":"olivia@duckduckgo.com"},{"name":"mcoppola","email":"coppola@punkave.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"suhmantha1","email":"sam@punkave.com"}],"homepage":"https://github.com/punkave/apostrophe-moderator#readme","bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"dist":{"shasum":"400222b42c26afdfa29847a93f6e1966155a4999","tarball":"https://registry.npmjs.org/apostrophe-moderator/-/apostrophe-moderator-0.5.8.tgz","integrity":"sha512-2aBo2pfM8oOxy+5rVl/OTsMpnqH39kRVDTSZIfw98lzf2Rsq9HDn30hd28V+cHSFmf1+O4Nh/avE0wlycnZmBw==","signatures":[{"sig":"MEUCIQCca13pjPt/4DIdVA35Iafp8QEMmuVc+880hYCgQOB80QIgRV5La1VmrdTddnDvk/1+qdMEDz8ENnmNdeCLudMYKDM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"400222b42c26afdfa29847a93f6e1966155a4999","gitHead":"b4c7be350e8d4eca912292141ff03c487b5c08fe","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"boutell","email":"boutell@boutell.com"},"repository":{"url":"git+ssh://git@github.com/punkave/apostrophe-moderator.git","type":"git"},"_npmVersion":"3.6.0","description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","directories":{},"_nodeVersion":"0.10.41","dependencies":{"async":"0.8.x","extend":"~1.2.0","lodash":"2.4.x","moment":"~2.0.0","random-words":"0.0.1","apostrophe-snippets":"0.5.x"},"_npmOperationalInternal":{"tmp":"tmp/apostrophe-moderator-0.5.8.tgz_1463423677212_0.20754726510494947","host":"packages-12-west.internal.npmjs.com"}}},"time":{"created":"2013-11-18T20:53:12.968Z","modified":"2026-01-26T19:10:27.723Z","0.0.1":"2013-11-18T20:53:14.887Z","0.0.2":"2013-12-05T17:15:10.951Z","0.0.3":"2013-12-05T18:22:59.695Z","0.0.4":"2013-12-13T02:03:43.475Z","0.0.5":"2013-12-18T21:00:42.230Z","0.0.6":"2014-01-28T19:54:14.427Z","0.4.0":"2014-02-02T18:35:51.190Z","0.5.0":"2014-02-02T19:25:34.787Z","0.4.1":"2014-02-02T20:52:33.160Z","0.4.2":"2014-02-12T16:18:55.940Z","0.5.1":"2014-02-12T16:18:59.483Z","0.4.3":"2014-02-19T19:24:06.386Z","0.5.2":"2014-02-19T19:24:08.151Z","0.5.3":"2014-03-31T17:56:07.974Z","0.5.4":"2014-04-30T14:43:10.208Z","0.5.5":"2014-04-30T15:33:24.762Z","0.5.6":"2014-06-04T14:09:21.944Z","0.5.7":"2014-09-08T15:03:58.001Z","0.5.8":"2016-05-16T18:34:39.854Z"},"bugs":{"url":"https://github.com/punkave/apostrophe-moderator/issues"},"author":{"name":"P'unk Avenue LLC"},"license":"MIT","homepage":"https://github.com/punkave/apostrophe-moderator#readme","keywords":["apostrophe","cms","punkave"],"repository":{"url":"git+ssh://git@github.com/punkave/apostrophe-moderator.git","type":"git"},"description":"This component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.","maintainers":[{"email":"alex@apostrophecms.com","name":"alexgilbert"},{"email":"tom@apostrophecms.com","name":"boutell"},{"email":"stuart+npm@apostrophecms.com","name":"romanek"},{"email":"robert.means1969+apostrophecms@gmail.com","name":"bodonkey"},{"email":"kerry@punkave.com","name":"colpanik"},{"email":"stuart@punkave.com","name":"stuartromanek"},{"email":"mcoppola832@gmail.com","name":"mcoppola"},{"email":"jimmy@punkave.com","name":"jimmyh"},{"email":"austin.starin@gmail.com","name":"austinstarin"},{"email":"ajchappelle@gmail.com","name":"arti5m"},{"email":"grdunn@gmail.com","name":"grdunn"},{"email":"abea@mailbox.org","name":"alexbea"},{"email":"matthew.mance@gmail.com","name":"mtthwmnc"}],"readme":"apostrophe-moderator\n====================\n\nThis component creates a public-facing interface that allows users to submit instances of existing apostrophe classes to the site's database.\n\n## Code Status\n\nThis module now has a reasonably complete feature set and is on track to be used in production on our own sites.\n\n## TODO\n\n* The provided filter for locating newly submitted material in the \"manage\" modal dialogs is effective, but we would prefer to build a classy modal dedicated to moderation which displays a normal view of each article, and consider making the approval process a little slicker than the current routine of clicking \"pending,\" clicking to edit each item, switching \"published\" to \"yes\" and clicking \"save.\"\n\n## Configuration\n\nIn your apostrophe-site configuration, include apostrophe-moderator. Pass it an array of instance types to be moderated. Be sure to specify the permitted fields, otherwise users are presented with all the possible fields which in most cases would include things like `published` that you do not want them to control.\n\nYou may use `addFields`, `orderFields` and `removeFields` exactly as you would when extending the schema of any type in app.js. Adding a field might not make sense, but you can use `addFields` to override the definition of a field by name. In order to present fewer widget choices for the `body`, for instance.\n\nThe `slug` and `published` fields are always suppressed from user submitted content forms.\n\nSee the `apostrophe-schemas` module for more information on the use of these options.\n\n```\n  types: {\n    'event': {\n      removeFields: [ 'thumbnail' ],\n      addFields: [\n        {\n          name: 'body',\n          label: 'Body',\n          type: 'area',\n          options: {\n            textOnly: true\n          }\n        }\n      ]\n    }\n  }\n```\n\nNote that eliminating the thumbnail and using the `textOnly` option is only an example. Guests may submit and manage media for use in their own content if you want to let them.\n\n## Adding Submission Buttons To Your Site\n\n```html\n<a href=\"#\" data-moderator-submit-button=\"event\">Submit Your Event</a>\n```\n\nEasy, no?\n\nJust make sure the element has the `data-moderator-submit-button` attribute, and the value is the instance type (like \"event\") to be submitted.\n\n## Adding Submission Forms\n\nFor submissions to work you must have a `submissionEditor.html` template in the `views` folder for the appropriate module.\n\nFor instance, this could be the content of `lib/modules/events/views/submissionEditor.html`:\n\n```jinja\n{% include 'schemas:schemaMacros.html' %}\n<div class=\"apos-modal apos-template\">\n  <h3>My Event</h3>\n  {% block topButtons %}\n  {% endblock %}\n  <div class=\"apos-modal-body\">\n    <form>\n      {{ schemaFields(fields) }}\n    </form>\n  </div>\n  <div class=\"apos-modal-footer\">\n    <div class=\"apos-modal-footer-buttons\">\n      <a href=\"#\" data-action=\"dismiss\" class=\"apos-control apos-button apos-cancel\">Cancel</a>\n      <a href=\"#\" class=\"apos-control apos-button apos-save\">Submit My Event</a>\n    </div>\n  </div>\n</div>\n```\n\nNote the use of `schemaFields` to render all the fields in the form without a fuss. You can customize the way fields are output; see the [apostrophe-schemas](apostrophe-schemas) module documentation.\n\n## Approving Submitted Content\n\nAll submitted content is initially unpublished. In order for admins to effectively moderate incoming content, you will need to override the `manage.html` template of the module in question and add a call to `snippetModerationFilter()`. You'll put your override in `lib/modules/apostrophe-events/views/manage.html`, as usual when overriding templates in Apostrophe.\n\nThis allows admins to click \"Pending\" to see just the as-yet-unapproved content. Then admins can edit those items and set \"Published\" to \"Yes.\"\n\nBe sure to include the appropriate macros file first in `manage.html`, like this:\n\n```jinja\n{% include 'snippetMacros.html' %}\n{% include 'moderator:moderatorMacros.html' %}\n\n<div class=\"apos-modal apos-template {{ manageClass }}\">\n  <h3>{% block action %}Manage {{ label | e }}{% endblock %}</h3>\n  <div class=\"apos-modal-body\">\n    <a href=\"#\" class=\"apos-control apos-button apos-new-button apos-new-snippet-button\" {{ newButtonData }}>New {{ instanceLabel | e }}</a>\n    <div class=\"apos-modal-filters\">\n      {{ snippetTrashFilter() }}\n      {{ snippetPublishedFilter() }}\n      {{ snippetDateFilter() }}\n      {{ snippetModerationFilter() }}\n      {{ snippetSearchFilter() }}\n    </div>\n\n    <table data-items class=\"apos-manage-table\">\n      <tr>\n        <th class=\"apos-manage-events-date\">Date</th>\n        <th class=\"apos-manage-events-title\">Title</th>\n        <th class=\"apos-manage-events-author\">Author</th>\n        <th class=\"apos-manage-events-status\">Status</th>\n      </tr>\n      <tr class=\"apos-template\" data-item>\n        <td>\n          <span data-date></span>\n        </td>\n        <td>\n          <span><a href=\"#\" {{ editButtonData }} data-title>Sample Title</a></span>\n        </td>\n        <td></td>\n        <td>\n          <span data-status></span>\n        </td>\n      </tr>\n    </table>\n\n    {# Container for pager, which gets rendered here by js #}\n    <div data-pager-box></div>\n  </div>\n  <div class=\"apos-modal-footer\">\n    <a href=\"#\" data-action=\"dismiss\" class=\"apos-control apos-button apos-cancel\">Done</a>\n  </div>\n</div>\n```\n\nAgain, admins can now select \"All\" to see all events, or \"Pending\" to see user-submitted events that are not yet published.\n\nTo publish an event an admin simply marks it published.\n\n... And that's it! Your site now supports user-submitted content. Enjoy.\n\n## Validation\n\nThe `required` option, and any other validation options supported by `apostrophe-schemas`, are supported by `apostrophe-moderator`.\n\nIf you need more than that, [implement a `validate` callback in your browser-side snippet subclass](https://github.com/punkave/apostrophe-snippets#sending-extra-properties-to-the-server-subclassing-on-the-browser-side). Your `validate` callback will be fired with the `insert` action just as it would be when an administrator creates a new snippet.\n\n## Notifications\n\nSometimes you'll want to do something special when a submission is received, published, or rejected (moved to the trash without ever having been published).\n\nThis is easy to do! The module for the content you're moderating just has to include appropriate methods, and apostrophe-moderator will automatically call them.\n\nHere is an example of a `lib/modules/apostrophe-events/index.js` file that sends email when these events happen:\n\n```javascript\nmodule.exports = events;\n\nfunction events(options, callback) {\n  return new events.Events(options, callback);\n}\n\nevents.Events = function(options, callback) {\n  var self = this;\n\n  module.exports.Super.call(this, options, null);\n\n  self._apos.mixinModuleEmail(self);\n\n  self.afterRejection = function(req, snippet, callback) {\n    return sendAuthorNotice(req, snippet, 'Your event submission has been rejected', 'rejected', callback);\n  };\n\n  self.afterAcceptance = function(req, snippet, callback) {\n    return sendAuthorNotice(req, snippet, 'Your event submission has been accepted for publication!', 'accepted', callback);\n  };\n\n  self.afterSubmission = function(req, snippet, callback) {\n    return sendAuthorNotice(req, snippet, 'Your event submission has been received for review', 'submitted', callback);\n  };\n\n  function sendAuthorNotice(req, snippet, subject, template, callback) {\n    // bypass permissions so we're allowed to fetch them even if they are unpublished\n    return self._pages.getManager('person').getOne(req, { _id: snippet.authorId }, { permissions: false }, function(err, author) {\n      if (err) {\n        console.error('error getting author for notice, nonfatal');\n        return callback(null);\n      }\n      if (!author) {\n        // No author, again, not fatal\n        console.error('no author for notice');\n        return callback(null);\n      }\n      return self.email(req, author,\n        subject, template,\n        { event: snippet }, callback);\n    });\n  }\n\n  // Must wait at least until next tick to invoke callback!\n  if (callback) {\n    process.nextTick(function() { return callback(null); });\n  }\n\n};\n```\n\nThe tricky bit is getting hold of the original author's name and email address so you know where to send the email. If you are requiring people to log in before submitting content, you can take advantage of `authorId`, a property that `apostrophe-moderator` adds to each submission, to fetch the appropriate person object as shown above. If you are not requiring logins, then you'll need to make sure that full name and email address fields are part of the schema for each submission, and just use those:\n\n```javascript\nreturn self.email(req, { fullName: snippet.contactName, email: snippet.contactEmail }, ...)\n```\n\nNote the use of `mixinModuleEmail` to make the `self.email` method available:\n\n```javascript\n  // Initialize the superclass...\n  module.exports.Super.call(this, options, null);\n\n  // Now we can mix in email\n  self._apos.mixinModuleEmail(self);\n```\n\nEmail message templates named `rejection.html` and `rejection.txt` must exist in `lib/modules/apostrophe-events/views`, and likewise for `accepted` and `submitted`.\n\n## Overriding methods\n\nThere are a few methods, such as `submitError`, `serverError` and `thankYou`, that can be overridden to change behavior. This is what a project-level, browser-side subclass that changes these messages looks like:\n\n```javascript\n(function() {\n\n  var Super = AposModerator;\n\n  function MyAposModerator(options) {\n    var self = this;\n    Super.call(this, options);\n\n    self.serverError = function() {\n      alert('A server error occurred, oh dear.');\n    };\n\n    self.submitError = function() {\n      alert('An error occurred. Please try again. Oh dear.');\n    };\n\n    self.thankYou = function() {\n      alert('Thank you for your submission! It will be reviewed before it appears on the site. Oh my.');\n    };\n  }\n\n  AposModerator = MyAposModerator;\n\n})();\n```\n","readmeFilename":"README.md"}