├── packages.json ├── .meteor ├── cordova-plugins ├── release ├── .gitignore ├── platforms ├── .finished-upgraders └── .id ├── lib ├── version.js ├── config │ ├── debug.js │ └── avatar.js ├── debug.js ├── router │ └── admin.js └── events.js ├── packages ├── crunchhunt │ ├── .gitignore │ ├── package-tap.i18n │ ├── i18n │ │ └── en.i18n.json │ └── lib │ │ ├── client │ │ └── templates │ │ │ ├── custom_post_shares.html │ │ │ ├── custom_post_info.html │ │ │ └── custom_post_avatars.html │ │ └── server │ │ └── cron.js ├── npm-container │ ├── .gitignore │ ├── versions.json │ └── index.js ├── telescope-api │ ├── .gitignore │ ├── package.js │ └── lib │ │ └── server │ │ └── routes.js ├── telescope-base │ ├── .gitignore │ └── lib │ │ └── icons.js ├── telescope-blank │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ ├── stylesheets │ │ │ │ └── custom.scss │ │ │ └── templates │ │ │ │ ├── custom_template.html │ │ │ │ ├── customPostTitle.html │ │ │ │ └── custom_template.js │ │ ├── main.js │ │ ├── templates.js │ │ ├── server │ │ │ └── publications.js │ │ ├── routes.js │ │ ├── settings.js │ │ └── custom_fields.js │ ├── package-tap.i18n │ └── i18n │ │ ├── en.i18n.json │ │ └── pt-BR.i18n.json ├── telescope-daily │ ├── .gitignore │ ├── i18n │ │ ├── de.i18n.json │ │ ├── it.i18n.json │ │ ├── zh-CN.i18n.json │ │ ├── fr.i18n.json │ │ ├── en.i18n.json │ │ ├── pl.i18n.json │ │ ├── es.i18n.json │ │ └── pt-BR.i18n.json │ ├── lib │ │ ├── client │ │ │ ├── templates │ │ │ │ ├── after_day.html │ │ │ │ ├── before_day.html │ │ │ │ ├── posts_daily.html │ │ │ │ └── posts_daily.js │ │ │ └── stylesheets │ │ │ │ └── daily.scss │ │ └── daily.js │ └── package-tap.i18n ├── telescope-email │ ├── .gitignore │ ├── .npm │ │ └── package │ │ │ ├── .gitignore │ │ │ ├── README │ │ │ └── npm-shrinkwrap.json │ ├── i18n │ │ ├── pl.i18n.json │ │ ├── de.i18n.json │ │ ├── en.i18n.json │ │ ├── es.i18n.json │ │ ├── fr.i18n.json │ │ ├── it.i18n.json │ │ ├── zh-CN.i18n.json │ │ └── pt-BR.i18n.json │ ├── package-tap.i18n │ └── lib │ │ └── server │ │ └── templates │ │ ├── emailTest.handlebars │ │ ├── emailNewUser.handlebars │ │ ├── emailAccountApproved.handlebars │ │ ├── emailPostApproved.handlebars │ │ ├── emailInvite.handlebars │ │ ├── emailNewComment.handlebars │ │ ├── emailNewReply.handlebars │ │ ├── emailNewPost.handlebars │ │ └── emailNewPendingPost.handlebars ├── telescope-i18n │ ├── .gitignore │ └── package.js ├── telescope-kadira │ ├── .gitignore │ ├── i18n │ │ └── en.i18n.json │ ├── package-tap.i18n │ ├── lib │ │ ├── server │ │ │ └── kadira.js │ │ └── kadira-settings.js │ └── package.js ├── telescope-lib │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ └── jquery.exists.js │ │ └── autolink.js │ ├── versions.json │ └── package.js ├── telescope-rss │ ├── .gitignore │ ├── .npm │ │ └── package │ │ │ ├── .gitignore │ │ │ ├── npm-shrinkwrap.json │ │ │ └── README │ └── package.js ├── telescope-search │ ├── .gitignore │ ├── i18n │ │ ├── de.i18n.json │ │ ├── zh-CN.i18n.json │ │ ├── es.i18n.json │ │ ├── it.i18n.json │ │ ├── fr.i18n.json │ │ ├── tr.i18n.json │ │ ├── en.i18n.json │ │ ├── pl.i18n.json │ │ └── pt-BR.i18n.json │ ├── package-tap.i18n │ └── lib │ │ ├── server │ │ ├── publications.js │ │ └── log_search.js │ │ └── client │ │ └── templates │ │ ├── search.html │ │ ├── search_logs.html │ │ └── search_logs.js ├── telescope-tags │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ ├── templates │ │ │ │ ├── category_title.js │ │ │ │ ├── category_title.html │ │ │ │ ├── categories_menu.html │ │ │ │ ├── post_categories.html │ │ │ │ ├── category_item.html │ │ │ │ ├── categories.js │ │ │ │ ├── categories.html │ │ │ │ ├── post_categories.js │ │ │ │ ├── category_item.js │ │ │ │ └── categories_menu.js │ │ │ └── scss │ │ │ │ └── categories.scss │ │ ├── server │ │ │ ├── publications.js │ │ │ └── hooks.js │ │ ├── custom_fields.js │ │ └── hooks.js │ ├── i18n │ │ ├── zh-CN.i18n.json │ │ ├── de.i18n.json │ │ ├── es.i18n.json │ │ ├── fr.i18n.json │ │ ├── it.i18n.json │ │ ├── pl.i18n.json │ │ ├── bg.i18n.json │ │ ├── pt-BR.i18n.json │ │ └── en.i18n.json │ └── package-tap.i18n ├── telescope-embedly │ ├── .gitignore │ ├── package-tap.i18n │ ├── History.md │ ├── i18n │ │ ├── fr.i18n.json │ │ ├── pl.i18n.json │ │ ├── pt-BR.i18n.json │ │ └── en.i18n.json │ ├── lib │ │ └── client │ │ │ ├── post_video.js │ │ │ ├── post_video.html │ │ │ ├── post_thumbnail.html │ │ │ ├── post_thumbnail.js │ │ │ └── autoform-postthumbnail.html │ └── README.md ├── telescope-invites │ ├── .gitignore │ ├── i18n │ │ ├── de.i18n.json │ │ ├── en.i18n.json │ │ ├── es.i18n.json │ │ ├── fr.i18n.json │ │ ├── it.i18n.json │ │ ├── pl.i18n.json │ │ ├── zh-CN.i18n.json │ │ └── pt-BR.i18n.json │ ├── package-tap.i18n │ └── lib │ │ └── server │ │ └── publications.js ├── telescope-newsletter │ ├── .gitignore │ ├── .npm │ │ └── package │ │ │ ├── .gitignore │ │ │ ├── README │ │ │ └── npm-shrinkwrap.json │ ├── package-tap.i18n │ ├── lib │ │ ├── server │ │ │ └── templates │ │ │ │ ├── emailDigestConfirmation.handlebars │ │ │ │ ├── emailPostItem.handlebars │ │ │ │ └── emailDigest.handlebars │ │ └── client │ │ │ └── templates │ │ │ └── newsletter_banner.html │ ├── History.md │ └── i18n │ │ ├── de.i18n.json │ │ ├── es.i18n.json │ │ ├── it.i18n.json │ │ ├── zh-CN.i18n.json │ │ ├── fr.i18n.json │ │ ├── en.i18n.json │ │ ├── pt-BR.i18n.json │ │ └── pl.i18n.json ├── telescope-pages │ ├── lib │ │ ├── client │ │ │ ├── templates │ │ │ │ ├── page.js │ │ │ │ ├── page.html │ │ │ │ ├── pages_menu.js │ │ │ │ ├── pages_menu.html │ │ │ │ ├── pages.js │ │ │ │ ├── page_item.html │ │ │ │ ├── pages.html │ │ │ │ └── page_item.js │ │ │ ├── stylesheets │ │ │ │ └── pages.scss │ │ │ └── routes.js │ │ └── server │ │ │ └── publications.js │ ├── i18n │ │ └── en.i18n.json │ └── package-tap.i18n ├── telescope-releases │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ ├── scss │ │ │ │ └── releases.scss │ │ │ └── templates │ │ │ │ ├── current_release.html │ │ │ │ └── current_release.js │ │ ├── server │ │ │ └── publications.js │ │ └── releases.js │ ├── i18n │ │ ├── en.i18n.json │ │ └── pt-BR.i18n.json │ ├── package-tap.i18n │ └── releases │ │ ├── 0.15.1.md │ │ ├── 0.11.1.md │ │ ├── 0.14.2.md │ │ ├── 0.14.3.md │ │ ├── 0.14.1.md │ │ ├── 0.13.0.md │ │ ├── 0.14.0.md │ │ ├── 0.12.0.md │ │ └── 0.11.0.md ├── telescope-singleday │ ├── .gitignore │ ├── package-tap.i18n │ ├── i18n │ │ ├── zh-CN.i18n.json │ │ ├── es.i18n.json │ │ ├── de.i18n.json │ │ ├── fr.i18n.json │ │ ├── tr.i18n.json │ │ ├── it.i18n.json │ │ ├── pl.i18n.json │ │ ├── pt-BR.i18n.json │ │ ├── en.i18n.json │ │ └── bg.i18n.json │ └── lib │ │ ├── client │ │ └── templates │ │ │ ├── single_day.html │ │ │ └── single_day_nav.html │ │ └── singleday.js ├── telescope-sitemap │ ├── .gitignore │ └── package.js ├── telescope-theme-base │ ├── .gitignore │ └── lib │ │ └── client │ │ └── scss │ │ ├── specific │ │ ├── _notifications.scss │ │ ├── _errors.scss │ │ ├── _loading.scss │ │ ├── _posts.scss │ │ ├── _avatars.scss │ │ ├── _admin.scss │ │ └── _layout.scss │ │ ├── global │ │ ├── _links.scss │ │ ├── _icons.scss │ │ ├── _tables.scss │ │ └── _typography.scss │ │ ├── includes │ │ ├── _colors.scss │ │ └── _breakpoints.scss │ │ └── screen.scss ├── telescope-datetimepicker │ ├── .gitignore │ ├── autoform-bs-datetimepicker.html │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ └── package.js ├── telescope-getting-started │ ├── .gitignore │ ├── i18n │ │ ├── en.i18n.json │ │ └── pt-BR.i18n.json │ ├── package-tap.i18n │ ├── content │ │ ├── images │ │ │ ├── telescope.png │ │ │ └── stackoverflow.png │ │ ├── removing_getting_started_posts.md │ │ ├── getting_help.md │ │ └── deploying_telescope.md │ └── lib │ │ └── getting_started.js ├── telescope-module-share │ ├── .gitignore │ ├── lib │ │ ├── share.js │ │ └── client │ │ │ ├── post_share.js │ │ │ └── post_share.html │ └── package.js ├── telescope-notifications │ ├── .gitignore │ ├── package-tap.i18n │ ├── lib │ │ ├── client │ │ │ └── templates │ │ │ │ ├── unsubscribe.html │ │ │ │ ├── notifications_mark_as_read.html │ │ │ │ ├── notification_post_approved.html │ │ │ │ ├── notifications_menu.html │ │ │ │ ├── notification_new_comment.html │ │ │ │ ├── notification_new_reply.html │ │ │ │ ├── notification_item.html │ │ │ │ ├── notifications_mark_as_read.js │ │ │ │ ├── notification_item.js │ │ │ │ └── unsubscribe.js │ │ └── server │ │ │ └── routes.js │ └── i18n │ │ ├── de.i18n.json │ │ ├── es.i18n.json │ │ ├── it.i18n.json │ │ ├── zh-CN.i18n.json │ │ ├── fr.i18n.json │ │ ├── en.i18n.json │ │ ├── pt-BR.i18n.json │ │ └── pl.i18n.json ├── telescope-post-by-feed │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ ├── scss │ │ │ │ └── feeds.scss │ │ │ ├── templates │ │ │ │ ├── feeds.js │ │ │ │ ├── feed_item.html │ │ │ │ ├── feeds.html │ │ │ │ └── feed_item.js │ │ │ └── routes.js │ │ └── server │ │ │ ├── publications.js │ │ │ └── cron.js │ ├── .npm │ │ └── package │ │ │ ├── .gitignore │ │ │ └── README │ ├── package-tap.i18n │ └── i18n │ │ ├── pl.i18n.json │ │ ├── en.i18n.json │ │ └── pt-BR.i18n.json ├── telescope-update-prompt │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ └── templates │ │ │ │ ├── update_banner.js │ │ │ │ ├── update_banner.css │ │ │ │ └── update_banner.html │ │ └── server │ │ │ └── phone_home.js │ └── package.js ├── .gitignore ├── telescope-subscribe-to-posts │ ├── .gitignore │ ├── lib │ │ ├── client │ │ │ ├── stylesheets │ │ │ │ └── subscribe-to-posts.scss │ │ │ └── templates │ │ │ │ ├── post_subscribe.html │ │ │ │ └── user_subscribed_posts.html │ │ └── server │ │ │ └── publications.js │ ├── package-tap.i18n │ └── i18n │ │ ├── pl.i18n.json │ │ ├── en.i18n.json │ │ └── pt-BR.i18n.json ├── telescope-theme-hubble │ ├── lib │ │ ├── client │ │ │ └── scss │ │ │ │ ├── modules │ │ │ │ ├── _layout.scss │ │ │ │ ├── _user-profile.scss │ │ │ │ ├── _errors.scss │ │ │ │ ├── _dialogs.scss │ │ │ │ └── _banners.scss │ │ │ │ ├── screen.scss │ │ │ │ └── partials │ │ │ │ ├── _colors.scss │ │ │ │ ├── _typography.scss │ │ │ │ └── _tooltips.scss │ │ └── hubble.js │ └── .gitignore ├── telescope-tagline-banner │ ├── i18n │ │ └── en.i18n.json │ ├── package-tap.i18n │ └── lib │ │ ├── client │ │ ├── templates │ │ │ ├── tagline_banner.html │ │ │ └── tagline_banner.js │ │ └── stylesheets │ │ │ └── tagline_banner.scss │ │ └── tagline.js ├── telescope-messages │ ├── lib │ │ └── client │ │ │ ├── templates │ │ │ ├── messages.html │ │ │ ├── message_item.html │ │ │ ├── message_item.js │ │ │ └── messages.js │ │ │ └── messages.js │ └── package.js ├── telescope-settings │ ├── lib │ │ ├── client │ │ │ ├── helpers.js │ │ │ ├── language_changer.js │ │ │ └── templates │ │ │ │ ├── settings_form.html │ │ │ │ └── settings_form.js │ │ ├── router.js │ │ └── server │ │ │ └── publications.js │ └── package.js └── telescope-seo │ ├── lib │ ├── seo.js │ └── routes.js │ └── package.js ├── project-tap.i18n ├── public └── img │ ├── bg.png │ ├── bg@2x.png │ ├── logo.png │ ├── favicon.ico │ ├── loading.gif │ ├── logo@2x.png │ ├── bg-black.png │ ├── bg-header.png │ ├── bg-black@2x.png │ ├── bg-header@2x.png │ ├── default-avatar.png │ ├── telescope-logo.png │ ├── telescope-logo2.png │ └── telescope-logo@2x.png ├── server ├── start_cron.js ├── indexes.js ├── start.js └── publications │ ├── users_dashboard.js │ └── users.js ├── client ├── views │ ├── posts │ │ ├── after_post_item.html │ │ ├── before_post_item.html │ │ ├── modules │ │ │ ├── post_domain.html │ │ │ ├── post_author.html │ │ │ ├── post_rank.html │ │ │ ├── post_title.html │ │ │ ├── post_actions.html │ │ │ ├── post_rank.js │ │ │ ├── post_domain.js │ │ │ ├── post_title.js │ │ │ ├── post_info.js │ │ │ ├── post_discuss.html │ │ │ ├── post_comments_link.html │ │ │ ├── post_avatars.js │ │ │ ├── post_info.html │ │ │ ├── post_upvote.html │ │ │ ├── post_admin.html │ │ │ ├── post_actions.js │ │ │ ├── post_content.html │ │ │ ├── post_avatars.html │ │ │ ├── post_upvote.js │ │ │ └── post_admin.js │ │ ├── post_body.html │ │ ├── post_list_top.html │ │ ├── post_views_nav.html │ │ ├── post_list_top.js │ │ ├── post_submit.html │ │ ├── post_item.html │ │ ├── post_page.html │ │ ├── post_edit.html │ │ ├── post_page.js │ │ ├── post_view_nav.js │ │ └── post_item.js │ ├── errors │ │ ├── loading.html │ │ ├── loading.js │ │ ├── no_invite.js │ │ ├── already_logged_in.html │ │ ├── no_rights.html │ │ ├── not_found.html │ │ ├── no_invite.html │ │ ├── no_account.js │ │ └── no_account.html │ ├── nav │ │ ├── views_menu.html │ │ ├── submit_button.html │ │ ├── views_menu.js │ │ ├── logo.js │ │ ├── logo.html │ │ ├── mobile_nav.html │ │ ├── user_menu.html │ │ ├── user_menu.js │ │ ├── nav.html │ │ └── mobile_nav.js │ ├── users │ │ ├── dashboard │ │ │ ├── users_list_avatar.html │ │ │ ├── users_list_email.html │ │ │ ├── users_list_username.html │ │ │ ├── users_list_created_at.html │ │ │ ├── users-dashboard.html │ │ │ ├── users_list_actions.html │ │ │ └── users_list_actions.js │ │ ├── sign_out.html │ │ ├── user_edit.html │ │ ├── user_profile.html │ │ ├── user_edit.js │ │ ├── user_profile.js │ │ ├── profile │ │ │ ├── user_upvoted_posts.html │ │ │ ├── user_downvoted_posts.html │ │ │ ├── user_comments.html │ │ │ └── user_posts.html │ │ └── user_email.html │ ├── admin │ │ ├── admin_menu.js │ │ ├── admin_menu.html │ │ ├── admin_wrapper.html │ │ └── admin_wrapper.js │ ├── forms │ │ ├── urlCustomType.html │ │ └── urlCustomType.js │ ├── common │ │ ├── footer.html │ │ ├── footer.js │ │ ├── layout.html │ │ └── css.html │ └── comments │ │ ├── comment_list.html │ │ ├── comment_reply.js │ │ ├── comment_form.html │ │ ├── comment_reply.html │ │ ├── comment_edit.html │ │ ├── comment_list.js │ │ └── comment_edit.js └── main.html ├── scss.json ├── README.md ├── .travis.yml ├── .editorconfig ├── .gitignore ├── README.nitrous.md └── collections └── events.js /packages.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /.meteor/cordova-plugins: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.1.0.2 2 | -------------------------------------------------------------------------------- /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | meteorite 3 | -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /lib/version.js: -------------------------------------------------------------------------------- 1 | telescopeVersion = "0.15.1"; -------------------------------------------------------------------------------- /packages/crunchhunt/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /lib/config/debug.js: -------------------------------------------------------------------------------- 1 | // SimpleSchema.debug = true; -------------------------------------------------------------------------------- /packages/npm-container/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-api/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-base/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-blank/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-daily/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-email/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-i18n/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-kadira/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-lib/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-rss/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-search/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-tags/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-embedly/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-invites/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/page.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-releases/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-singleday/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-sitemap/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-getting-started/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-module-share/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-notifications/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/scss/feeds.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-releases/lib/client/scss/releases.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-update-prompt/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /project-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "helper_name": "_" 3 | } 4 | -------------------------------------------------------------------------------- /packages/.gitignore: -------------------------------------------------------------------------------- 1 | /bootstrap3-datepicker 2 | /npm-container -------------------------------------------------------------------------------- /packages/telescope-blank/lib/client/stylesheets/custom.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-rss/.npm/package/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/category_title.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-email/.npm/package/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/modules/_layout.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Daily" 3 | } -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Daily" 3 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/.npm/package/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/.npm/package/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Daily" 3 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "分类" 3 | } -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Jour par jour" 3 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Kategorien" 3 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Categorías" 3 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Catégories" 3 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Categorie" 3 | } -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/lib/client/stylesheets/subscribe-to-posts.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg.png -------------------------------------------------------------------------------- /server/start_cron.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function() { 2 | SyncedCron.start(); 3 | }); 4 | -------------------------------------------------------------------------------- /public/img/bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg@2x.png -------------------------------------------------------------------------------- /public/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/logo.png -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /public/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/favicon.ico -------------------------------------------------------------------------------- /public/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/loading.gif -------------------------------------------------------------------------------- /public/img/logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/logo@2x.png -------------------------------------------------------------------------------- /packages/telescope-email/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "dodał nowego posta" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/.gitignore: -------------------------------------------------------------------------------- 1 | .build* 2 | 3 | config.codekit 4 | lib/client/config.codekit -------------------------------------------------------------------------------- /public/img/bg-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg-black.png -------------------------------------------------------------------------------- /public/img/bg-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg-header.png -------------------------------------------------------------------------------- /lib/debug.js: -------------------------------------------------------------------------------- 1 | clog = function (s) { 2 | if(Settings.get('debug', false)) 3 | console.log(s); 4 | }; 5 | -------------------------------------------------------------------------------- /packages/telescope-daily/lib/client/templates/after_day.html: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /packages/telescope-email/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "has created a new post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-email/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "has created a new post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-email/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "has created a new post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-email/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "a créé un nouveau post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-email/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "has created a new post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-getting-started/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string" 3 | } -------------------------------------------------------------------------------- /packages/telescope-invites/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "chave de tradução" 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-pages/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "manage_static_pages": "Manage static pages" 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-search/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Mehr Laden", 3 | "search": "Suchen" 4 | } -------------------------------------------------------------------------------- /packages/telescope-search/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "加载更多", 3 | "search": "Search" 4 | } -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "showTaglineBanner": "Show Tagline Banner" 3 | } -------------------------------------------------------------------------------- /public/img/bg-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg-black@2x.png -------------------------------------------------------------------------------- /public/img/bg-header@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/bg-header@2x.png -------------------------------------------------------------------------------- /packages/telescope-daily/lib/client/templates/before_day.html: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /packages/telescope-email/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "has created a new post" 3 | } -------------------------------------------------------------------------------- /packages/telescope-getting-started/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "chaves de tradução" 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-search/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Cargar más", 3 | "search": "Búsqueda" 4 | } -------------------------------------------------------------------------------- /packages/telescope-search/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Carica altro", 3 | "search": "Ricerca" 4 | } -------------------------------------------------------------------------------- /public/img/default-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/default-avatar.png -------------------------------------------------------------------------------- /public/img/telescope-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/telescope-logo.png -------------------------------------------------------------------------------- /public/img/telescope-logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/telescope-logo2.png -------------------------------------------------------------------------------- /server/indexes.js: -------------------------------------------------------------------------------- 1 | Posts._ensureIndex({"status": 1, "postedAt": 1}); 2 | Comments._ensureIndex({"postId": 1}); 3 | -------------------------------------------------------------------------------- /packages/telescope-email/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "has_created_a_new_post": "criou uma nova postagem" 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-email/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_" 4 | } -------------------------------------------------------------------------------- /packages/telescope-lib/lib/client/jquery.exists.js: -------------------------------------------------------------------------------- 1 | $.fn.exists = function () { 2 | return this.length !== 0; 3 | } -------------------------------------------------------------------------------- /packages/telescope-module-share/lib/share.js: -------------------------------------------------------------------------------- 1 | postModules.push({ 2 | template: 'postShare', 3 | order: 25 4 | }); -------------------------------------------------------------------------------- /packages/telescope-releases/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "telescope_has_been_updated": "Telescope has been updated." 3 | } -------------------------------------------------------------------------------- /packages/telescope-search/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Charger plus", 3 | "search": "Rechercher" 4 | } -------------------------------------------------------------------------------- /packages/telescope-search/i18n/tr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Daha Fazla yükle", 3 | "search": "Search" 4 | } -------------------------------------------------------------------------------- /public/img/telescope-logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/public/img/telescope-logo@2x.png -------------------------------------------------------------------------------- /client/views/posts/after_post_item.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/before_post_item.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/config/avatar.js: -------------------------------------------------------------------------------- 1 | Avatar.options = { 2 | fallbackType: 'initials', 3 | emailHashProperty: 'email_hash' 4 | }; 5 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/main.js: -------------------------------------------------------------------------------- 1 | // Global Function 2 | 3 | myFunction = function (a, b) { 4 | return a + b; 5 | } -------------------------------------------------------------------------------- /packages/telescope-blank/lib/templates.js: -------------------------------------------------------------------------------- 1 | // Override "postTitle" template 2 | 3 | templates["postTitle"] = "customPostTitle"; -------------------------------------------------------------------------------- /packages/telescope-releases/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "telescope_has_been_updated": "Telescope foi atualizado." 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-kadira/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "kadiraAppId": "Kadira App ID", 3 | "kadiraAppSecret": "Kadira App Secret" 4 | } -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_notifications.scss: -------------------------------------------------------------------------------- 1 | .notification-item{ 2 | margin-bottom: 10px; 3 | } 4 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/client/templates/custom_template.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_errors.scss: -------------------------------------------------------------------------------- 1 | .error, .at-error{ 2 | background: $red; 3 | color: white; 4 | } -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_loading.scss: -------------------------------------------------------------------------------- 1 | .loading-module{ 2 | height: 70px; 3 | position: relative; 4 | } -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/hubble.js: -------------------------------------------------------------------------------- 1 | themeSettings.useDropdowns = true; // not strictly needed since "true" is the current default -------------------------------------------------------------------------------- /packages/crunchhunt/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-pages/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('pages', function() { 2 | return Pages.collection.find({}); 3 | }); 4 | -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Kategorie", 3 | "add_and_remove_categories": "Dodaj/Usuń kategorie." 4 | } -------------------------------------------------------------------------------- /packages/telescope-tags/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /scss.json: -------------------------------------------------------------------------------- 1 | { 2 | "enableAutoprefixer": true, 3 | "outputStyle": "compressed", 4 | "sourceComments": true, 5 | "sourceMap": true 6 | } -------------------------------------------------------------------------------- /client/views/errors/loading.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/errors/loading.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('loading')].helpers({ 2 | log: function () { 3 | console.log('loading…') 4 | } 5 | }); -------------------------------------------------------------------------------- /packages/telescope-blank/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-daily/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-embedly/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-invites/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-kadira/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-pages/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-releases/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-search/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-singleday/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /client/views/nav/views_menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_avatar.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /client/views/posts/modules/post_domain.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/post_body.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('customPublication', function (limit) { 2 | return Posts.find({}, {limit: limit}); 3 | }); -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailTest.handlebars: -------------------------------------------------------------------------------- 1 | This is just a test

2 | 3 | Sent at {{date}}.

-------------------------------------------------------------------------------- /packages/telescope-embedly/History.md: -------------------------------------------------------------------------------- 1 | ### v0.2.9 2 | 3 | - Update to Meteor 0.9.0. 4 | 5 | ### v0.2.8 6 | 7 | - Don't display image if it cannot be found. -------------------------------------------------------------------------------- /packages/telescope-getting-started/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/package-tap.i18n: -------------------------------------------------------------------------------- 1 | { 2 | "translation_function_name": "__", 3 | "helper_name": "_", 4 | "namespace": "project" 5 | } -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/bg.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Категории", 3 | "add_and_remove_categories": "Добавяне и изтриване на категории." 4 | } 5 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_posts.scss: -------------------------------------------------------------------------------- 1 | .posts-wrapper{ 2 | background: none; 3 | } 4 | .more-button{ 5 | display: block; 6 | } -------------------------------------------------------------------------------- /client/views/admin/admin_menu.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('adminMenu')].helpers({ 2 | adminMenuItems: function () { 3 | return adminMenu; 4 | } 5 | }); 6 | -------------------------------------------------------------------------------- /client/views/forms/urlCustomType.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Categorias", 3 | "add_and_remove_categories": "Adicionar e remover categorias." 4 | } 5 | -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_email.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_username.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_author.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_rank.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_title.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-daily/lib/daily.js: -------------------------------------------------------------------------------- 1 | daysPerPage = 5; 2 | 3 | viewsMenu.push({ 4 | route: 'postsDaily', 5 | label: 'daily', 6 | description: 'day_by_day_view' 7 | }); -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/autoform-bs-datetimepicker.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Daily", 3 | "day_by_day_view": "The most popular posts of each day.", 4 | "load_next_days": "Load Next Days" 5 | } -------------------------------------------------------------------------------- /client/views/errors/no_invite.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('no_invite')].helpers({ 2 | afterSignupText: function(){ 3 | return Settings.get("afterSignupText"); 4 | } 5 | }); 6 | -------------------------------------------------------------------------------- /packages/crunchhunt/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string", 3 | "customViewLink": "Custom View Link", 4 | "customAdminLink": "Custom Admin Link" 5 | } -------------------------------------------------------------------------------- /packages/telescope-getting-started/content/images/telescope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/packages/telescope-getting-started/content/images/telescope.png -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/category_title.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /client/views/users/sign_out.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-blank/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "translation string", 3 | "customViewLink": "Custom View Link", 4 | "customAdminLink": "Custom Admin Link" 5 | } -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Dziennie", 3 | "day_by_day_view": "Najpopularniejsze posty każdego dnia.", 4 | "load_next_days": "Wczytaj kolejne dni" 5 | } -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailNewUser.handlebars: -------------------------------------------------------------------------------- 1 | A new user account has been created: {{username}}

-------------------------------------------------------------------------------- /packages/telescope-getting-started/content/images/stackoverflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/packages/telescope-getting-started/content/images/stackoverflow.png -------------------------------------------------------------------------------- /packages/telescope-messages/lib/client/templates/messages.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/post_list_top.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Diario", 3 | "day_by_day_view": "Los post mas populares de cada día.", 4 | "load_next_days": "Cargar días siguientes" 5 | } 6 | -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('feeds', function() { 2 | if(isAdminById(this.userId)){ 3 | return Feeds.find(); 4 | } 5 | return []; 6 | }); 7 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('categories', function() { 2 | if(can.viewById(this.userId)){ 3 | return Categories.find(); 4 | } 5 | return []; 6 | }); -------------------------------------------------------------------------------- /client/views/admin/admin_menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/errors/already_logged_in.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_actions.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-daily/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "daily": "Diário", 3 | "day_by_day_view": "As postagens mais populares de cada dia.", 4 | "load_next_days": "Carregar Próximos Dias" 5 | } 6 | -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SachaG/CrunchHunt/HEAD/packages/telescope-datetimepicker/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /client/views/errors/no_rights.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-blank/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "translation_key": "chave de tradução", 3 | "customViewLink": "Link de Visão Personalizado", 4 | "customAdminLink": "Link Admin Personalizado" 5 | } 6 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/routes.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | Router.route('/custom-path', { 4 | name: 'customRoute', 5 | template: getTemplate('customTemplate') 6 | }); 7 | 8 | }); -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "subscribed_posts": "Posty które subskrybujesz", 3 | "subscribe_to_thread": "Subskrybuj", 4 | "unsubscribe_from_thread": "Nie subskrybuj" 5 | } -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/modules/_user-profile.scss: -------------------------------------------------------------------------------- 1 | .user-profile { 2 | .user-avatar { 3 | height: 80px; 4 | width: 80px; 5 | display: block; 6 | border-radius: 80px; 7 | } 8 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/lib/server/templates/emailDigestConfirmation.handlebars: -------------------------------------------------------------------------------- 1 | Newsletter scheduled for {{time}}

2 | 3 | {{subject}}

-------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/modules/_errors.scss: -------------------------------------------------------------------------------- 1 | .error, .at-error{ 2 | @extend .grid-block; 3 | margin-bottom:$grid-margin; 4 | text-align:center; 5 | background:$red; 6 | color:white; 7 | } -------------------------------------------------------------------------------- /client/views/nav/submit_button.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_rank.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postRank')].helpers({ 2 | oneBasedRank: function(){ 3 | if (typeof this.rank !== 'undefined') { 4 | return this.rank + 1; 5 | } 6 | } 7 | }); -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/unsubscribe.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /client/views/nav/views_menu.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('viewsMenu')].helpers({ 2 | viewsMenuData: function () { 3 | return { 4 | dropdownName: 'view', 5 | dropdownItems: viewsMenu 6 | } 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_domain.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postDomain')].helpers({ 2 | domain: function(){ 3 | var a = document.createElement('a'); 4 | a.href = this.url; 5 | return a.hostname; 6 | } 7 | }); -------------------------------------------------------------------------------- /client/views/users/user_edit.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /client/views/users/user_profile.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/client/templates/customPostTitle.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-search/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Load more", 3 | "search": "Search", 4 | "search_logs": "Search Logs", 5 | "see_what_people_are_searching_for": "See what people are searching for." 6 | } -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/categories_menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/main.html: -------------------------------------------------------------------------------- 1 | 2 | Loading... 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_created_at.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailAccountApproved.handlebars: -------------------------------------------------------------------------------- 1 | {{username}}, welcome to {{siteTitle}}!

2 | 3 | You've just been invited. Start posting.

-------------------------------------------------------------------------------- /packages/telescope-releases/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('currentRelease', function() { 2 | if(isAdminById(this.userId)){ 3 | return Releases.find({}, {sort: {createdAt: -1}, limit: 1}); 4 | } 5 | return []; 6 | }); -------------------------------------------------------------------------------- /packages/telescope-search/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Wczytaj więcej", 3 | "search": "Szukaj", 4 | "search_logs": "Historia wyszukiwań", 5 | "see_what_people_are_searching_for": "Zobacz co wyszukują użytkownicy." 6 | } -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "subscribed_posts": "Subscribed Posts", 3 | "subscribe_to_thread": "Subscribe to comment thread", 4 | "unsubscribe_from_thread": "Unsubscribe from comment thread" 5 | } -------------------------------------------------------------------------------- /client/views/errors/not_found.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/nav/logo.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('logo')].helpers({ 2 | site_title: function(){ 3 | return Settings.get('title', "Telescope"); 4 | }, 5 | logo_url: function(){ 6 | return Settings.get('logoUrl'); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /packages/telescope-search/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_more": "Carregar mais", 3 | "search": "Busca", 4 | "search_logs": "Logs de Busca", 5 | "see_what_people_are_searching_for": "Veja o que as pessoas estão procurando." 6 | } 7 | -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/lib/client/templates/tagline_banner.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-tags/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": "Categories", 3 | "add_and_remove_categories": "Add and remove categories.", 4 | "all_categories": "All", 5 | "invalid_category": "Sorry, this is not a valid category" 6 | } -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "subscribed_posts": "Postagens inscritas", 3 | "subscribe_to_thread": "Inscreva-se aos comentários", 4 | "unsubscribe_from_thread": "Desinscreva-se dos comentários" 5 | } 6 | -------------------------------------------------------------------------------- /client/views/users/user_edit.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('user_edit')].helpers({ 2 | userProfileEdit: function () { 3 | return userProfileEdit; 4 | }, 5 | getTemplate: function () { 6 | return getTemplate(this.template); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailPostApproved.handlebars: -------------------------------------------------------------------------------- 1 | 2 | Congratulations, your post has been approved: 3 | 4 |

5 | {{postTitle}}} 6 |

-------------------------------------------------------------------------------- /packages/telescope-invites/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('invites', function (userId) { 2 | var invites = Invites.find({invitingUserId: userId}) 3 | return (this.userId === userId || isAdminById(this.userId)) ? invites : [] 4 | }); 5 | -------------------------------------------------------------------------------- /packages/telescope-settings/lib/client/helpers.js: -------------------------------------------------------------------------------- 1 | /* global Settings: false */ 2 | 3 | Template.registerHelper('getSetting', function(setting, defaultArgument){ 4 | setting = Settings.get(setting, defaultArgument); 5 | return setting; 6 | }); 7 | -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "每天前5名的帖子", 3 | "previous_day": "前一天", 4 | "next_day": "后一天", 5 | "sorry_no_posts_for_today": "抱歉今天没有新的帖子", 6 | "today": "今天", 7 | "yesterday": "昨天" 8 | } -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/post_categories.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/global/_links.scss: -------------------------------------------------------------------------------- 1 | a{ 2 | text-decoration: none; 3 | &, &:link, &:visited, &:active{ 4 | color: $text; 5 | font-weight: bold; 6 | } 7 | &:hover{ 8 | color: $red; 9 | } 10 | } -------------------------------------------------------------------------------- /client/views/users/dashboard/users-dashboard.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /client/views/users/user_profile.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('user_profile')].helpers({ 2 | userProfileDisplay: function () { 3 | return userProfileDisplay; 4 | }, 5 | getTemplate: function () { 6 | return getTemplate(this.template); 7 | } 8 | }); -------------------------------------------------------------------------------- /packages/telescope-kadira/lib/server/kadira.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function() { 2 | if(!!Settings.get('kadiraAppId') && !!Settings.get('kadiraAppSecret')){ 3 | Kadira.connect(Settings.get('kadiraAppId'), Settings.get('kadiraAppSecret')); 4 | } 5 | }); 6 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/page.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/client/templates/custom_template.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | Template[getTemplate('customTemplate')].helpers({ 4 | name: function () { 5 | return "Bruce Willis"; 6 | } 7 | }); 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/History.md: -------------------------------------------------------------------------------- 1 | ## v0.1.6 2 | 3 | - Return error message or campaign subject for cron job. 4 | - Change Newsletter Frequency option to a `select` input. 5 | 6 | ## v0.1.5 7 | 8 | - Added option to show/hide newsletter sign-up banner -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!" 6 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!" 6 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!" 6 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!" 6 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notifications_mark_as_read.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/post_views_nav.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-singleday/lib/client/templates/single_day.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/lib/client/templates/tagline_banner.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('taglineBanner')].helpers({ 2 | showTaglineBanner: function () { 3 | return !!Settings.get('tagline') && !!Settings.get('showTaglineBanner'); 4 | } 5 | }); 6 | 7 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/pages_menu.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate("pagesMenu")].helpers({ 2 | hasPages: function () { 3 | return Pages.collection.find().count() 4 | }, 5 | pages: function () { 6 | return Pages.collection.find(); 7 | } 8 | }) -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('userSubscribedPosts', function(terms) { 2 | var parameters = getPostsParameters(terms); 3 | var posts = Posts.find(parameters.find, parameters.options); 4 | return posts; 5 | }); 6 | -------------------------------------------------------------------------------- /client/views/posts/post_list_top.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postListTop')].helpers({ 2 | postListTopModules: function () { 3 | return _.sortBy(postListTopModules, 'order'); 4 | }, 5 | getTemplate: function () { 6 | return getTemplate(this.template); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /packages/telescope-messages/lib/client/templates/message_item.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_title.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postTitle')].helpers({ 2 | postLink: function(){ 3 | return !!this.url ? getOutgoingUrl(this.url) : "/posts/"+this._id; 4 | }, 5 | postTarget: function() { 6 | return !!this.url ? '_blank' : ''; 7 | } 8 | }); -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/modules/_dialogs.scss: -------------------------------------------------------------------------------- 1 | .dialog{ 2 | h2{ 3 | text-align:center; 4 | padding-bottom:$grid-padding; 5 | margin-bottom:$grid-margin; 6 | } 7 | margin-bottom:$grid-margin; 8 | } 9 | .footer-notice{ 10 | text-align:center; 11 | } -------------------------------------------------------------------------------- /client/views/posts/modules/post_info.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postInfo')].helpers({ 2 | pointsUnitDisplayText: function(){ 3 | return this.upvotes == 1 ? i18n.t('point') : i18n.t('points'); 4 | }, 5 | getTemplate: function() { 6 | return getTemplate("postAuthor"); 7 | } 8 | }); -------------------------------------------------------------------------------- /packages/telescope-messages/lib/client/templates/message_item.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('message_item')].onCreated(function(){ 2 | var messageId=this.data._id; 3 | 4 | Meteor.setTimeout(function(){ 5 | Messages.collection.update(messageId, {$set: {seen:true}}); 6 | }, 100); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.15.1.md: -------------------------------------------------------------------------------- 1 | ### v0.15.1 “FixesScope” 2 | 3 | * Settings now have their own `telescope-settings` package (thanks @delgermurun!). 4 | * Swedish translation (thanks @Alekzanther!) 5 | * Various fixes (thanks @azizur, @ndarilek, @kai101, @saimeunt, @Kikobeats!). -------------------------------------------------------------------------------- /packages/telescope-messages/lib/client/templates/messages.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('messages')].helpers({ 2 | message_item: function () { 3 | return getTemplate('message_item'); 4 | }, 5 | messages: function(){ 6 | return Messages.collection.find({show: true}); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /packages/telescope-search/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('searches', function(limit) { 2 | var limit = typeof limit === undefined ? 20 : limit; 3 | if(isAdminById(this.userId)){ 4 | return Searches.find({}, {limit: limit, sort: {timestamp: -1}}); 5 | } 6 | return []; 7 | }); -------------------------------------------------------------------------------- /server/start.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | logEvent({ 3 | name: "firstRun", 4 | unique: true, // will only get logged a single time 5 | important: true 6 | }) 7 | }); 8 | 9 | if (Settings.get('mailUrl')) 10 | process.env.MAIL_URL = Settings.get('mailUrl'); 11 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notification_post_approved.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/crunchhunt/lib/client/templates/custom_post_shares.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/npm-container/versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | [ 4 | "meteor", 5 | "1.1.3" 6 | ], 7 | [ 8 | "underscore", 9 | "1.0.1" 10 | ] 11 | ], 12 | "pluginDependencies": [], 13 | "toolVersion": "meteor-tool@1.0.36", 14 | "format": "1.0" 15 | } -------------------------------------------------------------------------------- /packages/telescope-embedly/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "thumbnail": "Aperçu", 3 | "thumbnailUrl": "Aperçu", 4 | "regenerate_thumbnail": "Regenerer l'aperçu", 5 | "clear_thumbnail": "Effacer l'aperçu", 6 | "please_fill_in_embedly_key": "Veuillez fournir une clé API Embedly pour activer les aperçus." 7 | } -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/pages_menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/admin/admin_wrapper.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/errors/no_invite.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-embedly/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "thumbnail": "Miniatura", 3 | "thumbnailUrl": "Miniatura", 4 | "regenerate_thumbnail": "Przeładuj miniaturę", 5 | "clear_thumbnail": "Usuń miniaturę", 6 | "please_fill_in_embedly_key": "Podaj swój klucz API z Embedly aby włączyć miniatury obrazków." 7 | } -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "feed_already_exists": "Kanał z tym samym URL już istnieje.", 3 | "you_need_to_login_and_be_an_admin_to_add_a_new_feed": "Musisz się zalogować jako admin aby dodawać nowe kanały.", 4 | "import_new_posts_from_feeds": "Zaimportuj nowe posty z kanałów." 5 | } -------------------------------------------------------------------------------- /packages/telescope-search/lib/server/log_search.js: -------------------------------------------------------------------------------- 1 | var logSearch = function (keyword) { 2 | Searches.insert({ 3 | timestamp: new Date(), 4 | keyword: keyword 5 | }); 6 | }; 7 | 8 | Meteor.methods({ 9 | logSearch: function (keyword) { 10 | logSearch.call(this, keyword); 11 | } 12 | }); -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "Los 5 mejores posts de cada día", 3 | "previous_day": "Dia anterior", 4 | "next_day": "Dia siguiente", 5 | "sorry_no_posts_for_today": "Lo sentimos, no hay post para hoy", 6 | "today": "Hoy", 7 | "yesterday": "Ayer" 8 | } -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | -------------------------------------------------------------------------------- /client/views/posts/post_submit.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-embedly/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "thumbnail": "Thumbnail", 3 | "thumbnailUrl": "Thumbnail", 4 | "regenerate_thumbnail": "Regenerar Thumbnail", 5 | "clear_thumbnail": "Limpar Thumbnail", 6 | "please_fill_in_embedly_key": "Por fabor, coloque sua API Embedly para permitir thumbnails." 7 | } 8 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "feed_already_exists": "A feed with the same URL already exists.", 3 | "you_need_to_login_and_be_an_admin_to_add_a_new_feed": "You need to log in and be an admin to add a new feed.", 4 | "import_new_posts_from_feeds": "Import new posts from feeds." 5 | } 6 | -------------------------------------------------------------------------------- /client/views/common/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notifications_menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notification_new_comment.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notification_new_reply.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "feed_already_exists": "Um feed com a mesma URL já existe.", 3 | "you_need_to_login_and_be_an_admin_to_add_a_new_feed": "Você precisa se logar e ser um admin para adicionar um novo feed.", 4 | "import_new_posts_from_feeds": "Importar novas postagens dos feeds." 5 | } 6 | -------------------------------------------------------------------------------- /packages/telescope-search/lib/client/templates/search.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_discuss.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-api/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({summary: "Telescope API package"}); 2 | 3 | Package.onUse(function (api) { 4 | 5 | api.use(['telescope-base', 'telescope-lib'], ['server']); 6 | 7 | api.add_files(['lib/server/api.js', 'lib/server/routes.js'], ['server']); 8 | 9 | api.export(['serveAPI']); 10 | 11 | }); -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/templates/feeds.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('feeds')].helpers({ 3 | feeds: function(){ 4 | return Feeds.find({}, {sort: {url: 1}}); 5 | }, 6 | feedItem: function () { 7 | return getTemplate('feedItem'); 8 | } 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_comments_link.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/stylesheets/pages.scss: -------------------------------------------------------------------------------- 1 | @function white($opacity){ 2 | @return rgba(255,255,255,$opacity); 3 | } 4 | 5 | .mobile-nav{ 6 | .pages-menu{ 7 | a{ 8 | border-bottom:1px white(0.2) solid; 9 | margin: 0; 10 | &:last-child{ 11 | border: none; 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/pages.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('pages')].helpers({ 3 | pages: function(){ 4 | return Pages.collection.find({}, {sort: {order: 1}}); 5 | }, 6 | pageItem: function () { 7 | return getTemplate('pageItem'); 8 | } 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/telescope-rss/.npm/package/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "rss": { 4 | "version": "0.3.2", 5 | "dependencies": { 6 | "xml": { 7 | "version": "0.0.12" 8 | }, 9 | "mime": { 10 | "version": "1.2.11" 11 | } 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/telescope-embedly/lib/client/post_video.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postVideo')].events({ 2 | 'click .post-video-lightbox-hide, click .post-video-lightbox': function (e) { 3 | e.preventDefault(); 4 | $(e.target).parents('.post').find('.post-video-lightbox').fadeOut('fast'); 5 | $('body').removeClass('showing-lightbox'); 6 | } 7 | }) -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 4ibiemui4bqn1j744h7 8 | -------------------------------------------------------------------------------- /packages/telescope-embedly/lib/client/post_video.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/templates/feed_item.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /client/views/nav/logo.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-api/lib/server/routes.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | Router.route('api', { 4 | where: 'server', 5 | path: '/api/:limit?', 6 | action: function() { 7 | var limit = parseInt(this.params.limit); 8 | this.response.write(serveAPI(limit)); 9 | this.response.end(); 10 | } 11 | }); 12 | 13 | }); -------------------------------------------------------------------------------- /packages/telescope-i18n/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({summary: "Telescope i18n package"}); 2 | 3 | Package.onUse(function (api) { 4 | api.use(["tap:i18n"], ["client", "server"]); 5 | api.use(["session"], "client"); 6 | api.add_files(['i18n.js'], ['client', 'server']); 7 | api.export([ 8 | 'i18n', 9 | 'setLanguage' 10 | ]); 11 | }); 12 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/category_item.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /client/views/comments/comment_list.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/telescope-lib/versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | [ 4 | "jquery", 5 | "1.0.1" 6 | ], 7 | [ 8 | "meteor", 9 | "1.1.3" 10 | ], 11 | [ 12 | "underscore", 13 | "1.0.1" 14 | ] 15 | ], 16 | "pluginDependencies": [], 17 | "toolVersion": "meteor-tool@1.0.36", 18 | "format": "1.0" 19 | } -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "Die Top-5-Links eines jeden Tages.", 3 | "previous_day": "Einen Tag zurück", 4 | "next_day": "Einen Tag vor", 5 | "sorry_no_posts_for_today": "Heute gibt es keine Links.", 6 | "sorry_no_posts_for": "Keine Links für", 7 | "today": "Heute", 8 | "yesterday": "Gestern" 9 | } -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "5 meilleurs post par jours", 3 | "previous_day": "Jour précédent", 4 | "next_day": "Jour suivant", 5 | "sorry_no_posts_for_today": "Désolé, aucun post aujourd'hui", 6 | "sorry_no_posts_for": "Désolé, aucun post pour", 7 | "today": "Aujourd'hui", 8 | "yesterday": "Hier" 9 | } -------------------------------------------------------------------------------- /client/views/posts/post_item.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/page_item.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/categories.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('categories')].helpers({ 3 | categories: function(){ 4 | return Categories.find({}, {sort: {order: 1, name: 1}}); 5 | }, 6 | categoryItem: function () { 7 | return getTemplate('categoryItem'); 8 | } 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /client/views/admin/admin_wrapper.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('adminWrapper')].helpers({ 2 | adminMenu: function () { 3 | return getTemplate("adminMenu"); 4 | }, 5 | contents: function () { 6 | return Router.current().route.getName(); 7 | }, 8 | contentsClass: function () { 9 | return Router.current().route.getName()+"-contents"; 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /client/views/errors/no_account.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('no_account')].helpers({ 2 | landingPageText: function(){ 3 | return Settings.get("landingPageText"); 4 | } 5 | }); 6 | Template[getTemplate('no_account')].events({ 7 | 'click .twitter-button': function(){ 8 | Meteor.loginWithTwitter(function(){ 9 | Router.go('/'); 10 | }); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notification_item.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/tr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "Her günün en üst 5 paylaşımı", 3 | "previous_day": "Önceki gün", 4 | "next_day": "Sonraki gün", 5 | "Sorry, no posts for today": "Özür dileriz, bugün bir paylaşım yok", 6 | "sorry_no_posts_for_today": "Özür dileriz, paylaşım yok", 7 | "today": "Bugün", 8 | "yesterday": "Dün" 9 | } -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/global/_icons.scss: -------------------------------------------------------------------------------- 1 | .icon-circle{ 2 | border-radius: 100%; 3 | border: 1px solid currentColor; 4 | padding: 6px; 5 | line-height: 0; 6 | &:before{ 7 | height: 12px; 8 | width: 12px; 9 | text-align: center; 10 | line-height: 12px; 11 | font-size: 10px; 12 | display: inline-block; 13 | } 14 | } -------------------------------------------------------------------------------- /packages/telescope-settings/lib/client/language_changer.js: -------------------------------------------------------------------------------- 1 | var query = Settings.collection.find(); 2 | 3 | query.observeChanges({ 4 | added: function (id, fields) { 5 | if (fields.language) 6 | setLanguage(fields.language); 7 | }, 8 | changed: function (id, fields) { 9 | if (fields.language) 10 | setLanguage(fields.language); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | CrunchHunt is a fork of [Telescope](https://github.com/TelescopeJS/Telescope). Like Telescope, it's open-source and MIT licensed. 2 | 3 | This repo accepts pull requests, but only for contributions affecting the `packages/crunchhunt` package. For any other contribution, please use the main Telescope repo. 4 | 5 | [Learn more about the project here](http://www.crunchhunt.com/about). -------------------------------------------------------------------------------- /client/views/errors/no_account.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_avatars.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postAvatars')].helpers({ 2 | commenters: function () { 3 | // remove post author ID from commenters to avoid showing author's avatar again 4 | // limit to 4 commenters in case there's more 5 | // TODO: show a "..." sign or something 6 | return _.first(_.without(this.commenters, this.userId), 4); 7 | } 8 | }); -------------------------------------------------------------------------------- /packages/crunchhunt/lib/client/templates/custom_post_info.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailInvite.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{invitedBy}} 3 | invited you to join {{communityName}} 4 |

5 | 6 | {{#if newUser}} 7 | Join {{communityName}} 8 | {{else}} 9 | Sign in to {{communityName}} 10 | {{/if}} 11 |

12 | -------------------------------------------------------------------------------- /packages/telescope-releases/lib/releases.js: -------------------------------------------------------------------------------- 1 | Releases = new Meteor.Collection('releases'); 2 | 3 | heroModules.push({ 4 | template: 'currentRelease' 5 | }); 6 | 7 | preloadSubscriptions.push('currentRelease'); 8 | 9 | Meteor.startup(function () { 10 | Releases.allow({ 11 | insert: isAdminById, 12 | update: isAdminById, 13 | remove: isAdminById 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "I 5 migliori post di ogni giorno.", 3 | "previous_day": "Giorno Precedente", 4 | "next_day": "Giorno Successivo", 5 | "sorry_no_posts_for_today": "Ci spiace, non ci sono post per oggi", 6 | "sorry_no_posts_for": "Ci spiace, non ci sono post per", 7 | "today": "Oggi", 8 | "yesterday": "Ieri" 9 | } -------------------------------------------------------------------------------- /packages/telescope-seo/lib/seo.js: -------------------------------------------------------------------------------- 1 | // Add SEO settings. 2 | Settings.addToSchema({ 3 | propertyName: "siteImage", 4 | propertySchema: { 5 | type: String, 6 | optional: true, 7 | regEx: SimpleSchema.RegEx.Url, 8 | autoform: { 9 | group: "general", 10 | instructions: "URL to an image for the open graph image tag for all pages" 11 | } 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /client/views/nav/mobile_nav.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/post_page.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | before_install: 5 | - curl https://install.meteor.com | /bin/sh 6 | 7 | before_script: 8 | - export DISPLAY=:99.0 9 | - sh -e /etc/init.d/xvfb start 10 | # Add testing package since it's not currently enabled in Telescope 11 | - printf "sanjo:jasmine@0.11.0" >> .meteor/packages 12 | 13 | script: 14 | - JASMINE_BROWSER=Firefox meteor --test -------------------------------------------------------------------------------- /server/publications/users_dashboard.js: -------------------------------------------------------------------------------- 1 | // Publish all users to reactive-table (if admin) 2 | // Limit, filter, and sort handled by reactive-table. 3 | // https://github.com/aslagle/reactive-table#server-side-pagination-and-filtering-beta 4 | 5 | ReactiveTable.publish("all-users", function() { 6 | if(isAdminById(this.userId)){ 7 | return Meteor.users; 8 | } else { 9 | return []; 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*.{js,html}] 6 | 7 | charset = utf-8 8 | end_of_line = lf 9 | indent_brace_style = 1TBS 10 | indent_size = 2 11 | indent_style = space 12 | insert_final_newline = true 13 | max_line_length = 80 14 | quote_type = auto 15 | spaces_around_operators = true 16 | trim_trailing_whitespace = true 17 | 18 | [*.md] 19 | 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailNewComment.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{comment.author}} 3 | left a new comment on 4 | {{post.title}}: 5 | 6 |

7 | 8 |
9 | {{{body}}} 10 |
11 |
12 | 13 | Discuss

-------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailNewReply.handlebars: -------------------------------------------------------------------------------- 1 | {{comment.author}} 2 | has replied to your comment on 3 | {{post.title}}: 4 | 5 |

6 | 7 |
8 | {{{body}}} 9 |
10 |
11 | 12 | Discuss

-------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/templates/feeds.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/scss/categories.scss: -------------------------------------------------------------------------------- 1 | $red: #DD3416; 2 | 3 | .post-category{ 4 | display:inline-block; 5 | font-size:12px; 6 | background:#eee; 7 | padding:3px 5px 1px 5px; 8 | text-transform:uppercase; 9 | font-weight:normal; 10 | vertical-align:middle; 11 | &:hover{ 12 | background:$red; 13 | color:white; 14 | } 15 | } 16 | 17 | .post-categories{ 18 | text-align: right; 19 | } -------------------------------------------------------------------------------- /packages/crunchhunt/lib/client/templates/custom_post_avatars.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-rss/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({summary: "Telescope RSS package"}); 2 | 3 | Npm.depends({rss: "0.3.2"}); 4 | 5 | Package.onUse(function (api) { 6 | 7 | api.use([ 8 | 'telescope-base', 9 | 'telescope-lib', 10 | 'telescope-settings' 11 | ], ['server']); 12 | 13 | api.add_files(['lib/server/rss.js', 'lib/server/routes.js'], ['server']); 14 | 15 | api.export(['serveRSS']); 16 | }); 17 | -------------------------------------------------------------------------------- /client/views/common/footer.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('footer')].helpers({ 2 | footerCode: function(){ 3 | return Settings.get('footerCode'); 4 | }, 5 | footerClass: function(){ 6 | return Session.get('isPostsList') ? 'absolute' : 'static'; 7 | }, 8 | footerModules: function () { 9 | return footerModules; 10 | }, 11 | getTemplate: function () { 12 | return getTemplate(this.template); 13 | } 14 | }); 15 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/pages.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/global/_tables.scss: -------------------------------------------------------------------------------- 1 | table{ 2 | width: 100%; 3 | tr{ 4 | border-bottom: 1px solid #eee; 5 | td, th{ 6 | padding:4px; 7 | vertical-align: middle; 8 | } 9 | } 10 | thead{ 11 | tr{ 12 | td, th{ 13 | font-weight:bold; 14 | } 15 | } 16 | } 17 | tbody{ 18 | tr{ 19 | td{ 20 | 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notifications_mark_as_read.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('notificationsMarkAsRead')].events({ 2 | 'click .mark-as-read': function(e, t){ 3 | e.preventDefault(); 4 | t.$('li').parents('.dropdown').removeClass('dropdown-open'); 5 | Meteor.call('heraldMarkAllAsRead', 6 | function(error, result){ 7 | error && console.log(error); 8 | } 9 | ); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /client/views/posts/post_edit.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/categories.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/telescope-update-prompt/lib/client/templates/update_banner.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('updateBanner')].helpers({ 2 | showBanner: function () { 3 | return Session.get('updateVersion'); 4 | }, 5 | version: function () { 6 | return Session.get('updateVersion'); 7 | }, 8 | currentVersion: function () { 9 | return telescopeVersion; 10 | }, 11 | message: function () { 12 | return Session.get('updateMessage'); 13 | } 14 | }); -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "Najlepsze 5 postów z każdego dnia.", 3 | "previous_day": "Poprzedni dzień", 4 | "next_day": "Następny dzień", 5 | "sorry_no_posts_for_today": "Brak postów na dzisiaj", 6 | "sorry_no_posts_for": "Brak postów na ", 7 | "today": "Dzisiaj", 8 | "yesterday": "Wczoraj", 9 | "single_day": "Jeden dzień", 10 | "posts_of_a_single_day": "Posty z jednego dnia." 11 | } -------------------------------------------------------------------------------- /client/views/nav/user_menu.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/telescope-embedly/README.md: -------------------------------------------------------------------------------- 1 | The Telescope [Embedly](http://embed.ly) module. 2 | 3 | More details in [this blog post](http://telesc.pe/blog/extending-telescope-with-embedly-thumbnails/). 4 | 5 | ### Install 6 | 7 | 1. `mrt add telescope-module-embedly`. 8 | 2. Go to the Telescope settings page and add your Embedly API key. 9 | 10 | ### Extra Features 11 | 12 | When linking to videos, the thumbnail becomes clickable and opens the video in a lightbox. -------------------------------------------------------------------------------- /lib/router/admin.js: -------------------------------------------------------------------------------- 1 | AdminController = RouteController.extend({ 2 | 3 | template: "adminWrapper" 4 | 5 | }); 6 | 7 | Meteor.startup(function (){ 8 | 9 | // Loading (for testing purposes) 10 | 11 | Router.route('/loading', { 12 | name: 'loading', 13 | template: getTemplate('loading') 14 | }); 15 | 16 | // Toolbox 17 | 18 | Router.route('/toolbox', { 19 | name: 'toolbox', 20 | template: getTemplate('toolbox') 21 | }); 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | *.scssc 3 | .sass-cache/* 4 | .DS_Store 5 | *-ck.js 6 | providers_secret.js 7 | *.sublime-project 8 | 9 | *.sublime-workspace 10 | codekit-config.json 11 | 12 | config.rb 13 | 14 | deploy.sh 15 | 16 | .demeteorized 17 | 18 | dump/ 19 | dump/* 20 | 21 | settings.json 22 | settings.json.not-used 23 | .idea 24 | 25 | scratch 26 | 27 | .deploy 28 | .deploy/* 29 | ### Meteor template 30 | .meteor/local 31 | .meteor/meteorite 32 | mup.json 33 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.11.1.md: -------------------------------------------------------------------------------- 1 | ### v0.11.1 “FeedScope” 2 | 3 | * Post submit and edit forms now submit to their respective methods directly. 4 | * Removed `postSubmitRenderedCallbacks` and `postEditRenderedCallbacks`. 5 | * `telescope-post-by-feed` package now lets you import posts from RSS feeds. 6 | * Adding limit of 200 posts to post list request. 7 | * Refactoring post and comment submit to fix latency compensation issues. 8 | * Tags package now using Autoform. -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/post_categories.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('postCategories')].helpers({ 3 | categoriesArray: function(){ 4 | return _.map(this.categories, function (categoryId) { // note: this.categories maybe be undefined 5 | return Categories.findOne(categoryId); 6 | }); 7 | }, 8 | categoryLink: function(){ 9 | return getCategoryUrl(this.slug); 10 | } 11 | }); 12 | }); -------------------------------------------------------------------------------- /packages/telescope-blank/lib/settings.js: -------------------------------------------------------------------------------- 1 | // Custom Setting 2 | 3 | var customSetting = { 4 | propertyName: 'customSetting', 5 | propertySchema: { 6 | type: String, 7 | optional: true, 8 | autoform: { 9 | group: 'customGroup', // assign custom group (fieldset) in Settings form 10 | private: true // mark as private (not published to client) 11 | } 12 | } 13 | } 14 | Settings.addToSchema(customSetting); 15 | -------------------------------------------------------------------------------- /packages/telescope-releases/lib/client/templates/current_release.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "As principais 5 postagens de cada dia.", 3 | "previous_day": "Dia Anterior", 4 | "next_day": "Próximo Dia", 5 | "sorry_no_posts_for_today": "Desculpe, sem postagens por hoje", 6 | "sorry_no_posts_for": "Desculpe sem postagem para", 7 | "today": "Hoje", 8 | "yesterday": "Ontem", 9 | "single_day": "Único Dia", 10 | "posts_of_a_single_day": "As postagens de um único dia." 11 | } 12 | -------------------------------------------------------------------------------- /packages/telescope-singleday/lib/client/templates/single_day_nav.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/global/_typography.scss: -------------------------------------------------------------------------------- 1 | html, body, input, button{ 2 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 3 | } 4 | h1,h2,h3,h4,h5, ul, ol, li, p, pre, div{ 5 | line-height: 1.5; 6 | } 7 | h1{ 8 | font-size: 40px; 9 | } 10 | h2{ 11 | font-size: 30px; 12 | } 13 | h3{ 14 | font-size: 20px; 15 | } 16 | h4{ 17 | font-size: 16px; 18 | } 19 | li{ 20 | margin: 0 0 10px 0; 21 | } 22 | .important{ 23 | color: $red; 24 | } -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "The top 5 posts of each day.", 3 | "previous_day": "Previous Day", 4 | "next_day": "Next Day", 5 | "sorry_no_posts_for_today": "Sorry, no posts for today", 6 | "sorry_no_posts_for": "Sorry, no posts for", 7 | "today": "Today", 8 | "yesterday": "Yesterday", 9 | "single_day": "Single Day", 10 | "singleday": "Single Day", 11 | "posts_of_a_single_day": "The posts of a single day." 12 | } -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/lib/tagline.js: -------------------------------------------------------------------------------- 1 | postListTopModules.push({ 2 | template: 'taglineBanner', 3 | order: 1 4 | }); 5 | 6 | var showTaglineBanner = { 7 | propertyName: 'showTaglineBanner', 8 | propertySchema: { 9 | type: Boolean, 10 | optional: true, 11 | label: 'Tagline banner', 12 | autoform: { 13 | group: 'general', 14 | instructions: 'Show tagline on homepage.' 15 | } 16 | } 17 | }; 18 | Settings.addToSchema(showTaglineBanner); 19 | -------------------------------------------------------------------------------- /client/views/nav/user_menu.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('userMenu')].helpers({ 2 | menuLabel: function () { 3 | return getDisplayName(Meteor.user()); 4 | }, 5 | menuItems: function () { 6 | return userMenu; 7 | }, 8 | menuMode: function () { 9 | if (!!this.mobile) { 10 | return 'list'; 11 | } else if (Settings.get('navLayout', 'top-nav') === 'top-nav') { 12 | return 'dropdown'; 13 | } else { 14 | return 'accordion'; 15 | } 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_info.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailNewPost.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{postAuthorName}} 3 | has created a new post: 4 | {{#if url}} 5 | {{postTitle}}} 6 | {{else}} 7 | {{postTitle}}} 8 | {{/if}} 9 |

10 | 11 | {{#if htmlBody}} 12 |
13 | {{{htmlBody}}} 14 |
15 |
16 | {{/if}} 17 | 18 | Discuss

19 | -------------------------------------------------------------------------------- /packages/telescope-rss/.npm/package/README: -------------------------------------------------------------------------------- 1 | This directory and the files immediately inside it are automatically generated 2 | when you change this package's NPM dependencies. Commit the files in this 3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control 4 | so that others run the same versions of sub-dependencies. 5 | 6 | You should NOT check in the node_modules directory that Meteor automatically 7 | creates; if you are using git, the .gitignore file tells git to ignore it. 8 | -------------------------------------------------------------------------------- /packages/telescope-singleday/i18n/bg.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "the_top_5_posts_of_each_day": "Топ 5 публикации от всеки ден", 3 | "previous_day": "Предишен ден", 4 | "next_day": "Следващ ден", 5 | "sorry_no_posts_for_today": "Няма публикации за днес", 6 | "sorry_no_posts_for": "Няма публикации за", 7 | "today": "Днес", 8 | "yesterday": "Вчера", 9 | "single_day": "определен ден.", 10 | "posts_of_a_single_day": "Публикации за определен ден.", 11 | "singleday": "Определен ден" 12 | } 13 | -------------------------------------------------------------------------------- /packages/telescope-tagline-banner/lib/client/stylesheets/tagline_banner.scss: -------------------------------------------------------------------------------- 1 | $small-break: 30em; 2 | $medium-break: 50em; 3 | 4 | @mixin small(){ 5 | @media screen and (max-width: $small-break) { 6 | @content; 7 | } 8 | } 9 | @mixin medium-large(){ 10 | @media screen and (min-width: 50em) { 11 | @content; 12 | } 13 | } 14 | 15 | .tagline{ 16 | text-align: center; 17 | margin: 30px 0 20px 0; 18 | text-align: center; 19 | font-size: 22px; 20 | font-weight: normal; 21 | } -------------------------------------------------------------------------------- /packages/telescope-update-prompt/lib/client/templates/update_banner.css: -------------------------------------------------------------------------------- 1 | .update-banner{ 2 | overflow: hidden; 3 | } 4 | .update-content{ 5 | float: left; 6 | } 7 | .update-version{ 8 | float: left; 9 | background: #DD3416; 10 | color: white; 11 | text-align: center; 12 | padding: 5px 10px; 13 | margin: 0px 15px 0px 0px; 14 | } 15 | .update-prompt{ 16 | font-weight: bold; 17 | line-height: 1; 18 | margin-bottom: 5px; 19 | } 20 | .update-message{ 21 | font-size: 14px; 22 | } -------------------------------------------------------------------------------- /packages/telescope-email/.npm/package/README: -------------------------------------------------------------------------------- 1 | This directory and the files immediately inside it are automatically generated 2 | when you change this package's NPM dependencies. Commit the files in this 3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control 4 | so that others run the same versions of sub-dependencies. 5 | 6 | You should NOT check in the node_modules directory that Meteor automatically 7 | creates; if you are using git, the .gitignore file tells git to ignore it. 8 | -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/de.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "left a new comment on", 3 | "has_replied_to_your_comment_on": "has replied to your comment on", 4 | "mark_as_read": "Mark as read", 5 | "no_notifications": "No notifications", 6 | "you_have_been_unsubscribed_from_all_notifications": "You have been unsubscribed from all notifications.", 7 | "user_not_found": "User not found", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications" 10 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/es.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "left a new comment on", 3 | "has_replied_to_your_comment_on": "has replied to your comment on", 4 | "mark_as_read": "Mark as read", 5 | "no_notifications": "No notifications", 6 | "you_have_been_unsubscribed_from_all_notifications": "You have been unsubscribed from all notifications.", 7 | "user_not_found": "User not found", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications" 10 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/it.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "left a new comment on", 3 | "has_replied_to_your_comment_on": "has replied to your comment on", 4 | "mark_as_read": "Mark as read", 5 | "no_notifications": "No notifications", 6 | "you_have_been_unsubscribed_from_all_notifications": "You have been unsubscribed from all notifications.", 7 | "user_not_found": "User not found", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications" 10 | } -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/screen.scss: -------------------------------------------------------------------------------- 1 | 2 | @import "partials/grid"; 3 | @import "partials/colors"; 4 | @import "partials/mixins"; 5 | @import "partials/typography"; 6 | @import "partials/tooltips"; 7 | 8 | @import "modules/layout"; 9 | @import "modules/accounts"; 10 | @import "modules/banners"; 11 | @import "modules/nav"; 12 | @import "modules/posts"; 13 | @import "modules/comments"; 14 | @import "modules/dialogs"; 15 | @import "modules/user-profile"; 16 | @import "modules/errors"; -------------------------------------------------------------------------------- /client/views/comments/comment_reply.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('comment_reply')].helpers({ 2 | post_item: function () { 3 | return getTemplate('post_item'); 4 | }, 5 | comment_item: function () { 6 | return getTemplate('comment_item'); 7 | }, 8 | comment_form: function () { 9 | return getTemplate('comment_form'); 10 | }, 11 | post: function () { 12 | if(this.comment){ // XXX 13 | var post = Posts.findOne(this.comment.postId); 14 | return post; 15 | } 16 | } 17 | }); -------------------------------------------------------------------------------- /packages/telescope-daily/lib/client/stylesheets/daily.scss: -------------------------------------------------------------------------------- 1 | .posts-day-heading{ 2 | font-size: 16px; 3 | color: rgba(0,0,0,0.5); 4 | margin: 0 0 10px 0; 5 | } 6 | .empty-day-notice{ 7 | padding: 15px; 8 | } 9 | .posts-day .post:last-child{ 10 | border-radius: 0 0 3px 3px; 11 | } 12 | .load-more-days-button{ 13 | display: block; 14 | background: none; 15 | width:100%; 16 | text-align:center; 17 | font-size:18px; 18 | padding: 0px; 19 | text-align: center; 20 | margin: 20px 0; 21 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/.npm/package/README: -------------------------------------------------------------------------------- 1 | This directory and the files immediately inside it are automatically generated 2 | when you change this package's NPM dependencies. Commit the files in this 3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control 4 | so that others run the same versions of sub-dependencies. 5 | 6 | You should NOT check in the node_modules directory that Meteor automatically 7 | creates; if you are using git, the .gitignore file tells git to ignore it. 8 | -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/zh-CN.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "left a new comment on", 3 | "has_replied_to_your_comment_on": "has replied to your comment on", 4 | "mark_as_read": "Mark as read", 5 | "no_notifications": "No notifications", 6 | "you_have_been_unsubscribed_from_all_notifications": "You have been unsubscribed from all notifications.", 7 | "user_not_found": "User not found", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications" 10 | } -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/templates/page_item.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('pageItem')].helpers({ 3 | formId: function () { 4 | return 'updatePage-'+ this._id 5 | } 6 | }); 7 | 8 | Template[getTemplate('pageItem')].events({ 9 | 'click .delete-link': function(e, instance){ 10 | e.preventDefault(); 11 | if (confirm("Delete page?")) { 12 | Pages.collection.remove(instance.data._id); 13 | } 14 | } 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/.npm/package/README: -------------------------------------------------------------------------------- 1 | This directory and the files immediately inside it are automatically generated 2 | when you change this package's NPM dependencies. Commit the files in this 3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control 4 | so that others run the same versions of sub-dependencies. 5 | 6 | You should NOT check in the node_modules directory that Meteor automatically 7 | creates; if you are using git, the .gitignore file tells git to ignore it. 8 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/templates/feed_item.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('feedItem')].helpers({ 3 | formId: function () { 4 | return 'updateFeed-'+ this._id 5 | } 6 | }); 7 | 8 | Template[getTemplate('feedItem')].events({ 9 | 'click .delete-link': function(e, instance){ 10 | e.preventDefault(); 11 | if (confirm("Delete feed?")) { 12 | Feeds.remove(instance.data._id); 13 | } 14 | } 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/telescope-email/lib/server/templates/emailNewPendingPost.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{postAuthorName}} 3 | has a new post pending approval: 4 | {{#if url}} 5 | {{postTitle}}} 6 | {{else}} 7 | {{postTitle}}} 8 | {{/if}} 9 |

10 | 11 | {{#if htmlBody}} 12 |
13 | {{{htmlBody}}} 14 |
15 |
16 | {{/if}} 17 | 18 | Go to post

19 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.14.2.md: -------------------------------------------------------------------------------- 1 | ### v0.14.2 “FaviconScope” 2 | 3 | * Added settings for auth methods. 4 | * Added setting for external fonts. 5 | * Use site tagline as homepage title. 6 | * Make favicon customizable. 7 | * Making webfont customizable. To get previous font back, use: `https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic`. 8 | * Fix juice issue. 9 | * Non-admins should not be able to access rejected posts. 10 | * Bulgarian translation (thanks @durrrr91!) -------------------------------------------------------------------------------- /packages/telescope-sitemap/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: "telescope-sitemap", 3 | summary: "Sitemap package for Telescope", 4 | version: "0.0.5" 5 | }); 6 | 7 | Package.onUse(function(api) { 8 | api.use([ 9 | "templating", 10 | "underscore", 11 | "iron:router", 12 | "telescope-lib", 13 | "telescope-base", 14 | "gadicohen:sitemaps@0.0.20" 15 | ]); 16 | 17 | // server 18 | api.addFiles([ 19 | "lib/server/sitemaps.js" 20 | ], ["server"]); 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_upvote.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-settings/lib/client/templates/settings_form.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/category_item.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('categoryItem')].helpers({ 3 | formId: function () { 4 | return 'updateCategory-'+ this._id 5 | } 6 | }); 7 | 8 | Template[getTemplate('categoryItem')].events({ 9 | 'click .delete-link': function(e, instance){ 10 | e.preventDefault(); 11 | if (confirm("Delete category?")) { 12 | Categories.remove(instance.data._id); 13 | } 14 | } 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/server/routes.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | // Notification email 4 | 5 | Router.route('/email/notification/:id?', { 6 | name: 'notification', 7 | where: 'server', 8 | action: function() { 9 | var notification = Herald.collection.findOne(this.params.id); 10 | var notificationContents = buildEmailNotification(notification); 11 | this.response.write(notificationContents.html); 12 | this.response.end(); 13 | } 14 | }); 15 | 16 | }); -------------------------------------------------------------------------------- /packages/telescope-settings/lib/router.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | // Settings 3 | 4 | Router.route('/settings', { 5 | controller: AdminController, 6 | name: 'settings', 7 | // layoutTemplate: getTemplate('adminLayout'), 8 | data: function () { 9 | // we only have one set of settings for now 10 | 11 | var settings = Settings.collection.findOne(); 12 | return { 13 | hasSettings: !!settings, 14 | settings: settings 15 | }; 16 | } 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /client/views/posts/post_page.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('post_page')].helpers({ 2 | post_item: function () { 3 | return getTemplate('post_item'); 4 | }, 5 | post_body: function () { 6 | return getTemplate('post_body'); 7 | }, 8 | comment_form: function () { 9 | return getTemplate('comment_form'); 10 | }, 11 | comment_list: function () { 12 | return getTemplate('comment_list'); 13 | } 14 | }); 15 | 16 | Template[getTemplate('post_page')].rendered = function(){ 17 | $('body').scrollTop(0); 18 | }; 19 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.14.3.md: -------------------------------------------------------------------------------- 1 | ### v0.14.3 “TableScope” 2 | 3 | * Implemented Reactive Table for the Users dashboard (thanks @jshimko!). 4 | * Upgraded Herald package (thanks @kestanous!). 5 | * Upgraded Avatar package (thanks @bengott!). 6 | * Upgraded Autoform package. 7 | * Added Greek translation (thanks @portokallidis!). 8 | * Improved Spanish translation (thanks @brayancruces!). 9 | * Added new callbacks for upvoting and downvoting (thanks @Baxter900 !). 10 | * OP comments now get the `author-comment` CSS class. -------------------------------------------------------------------------------- /packages/telescope-messages/lib/client/messages.js: -------------------------------------------------------------------------------- 1 | Messages = { 2 | // Local (client-only) collection 3 | collection: new Meteor.Collection(null), 4 | 5 | flash: function(message, type) { 6 | type = (typeof type === 'undefined') ? 'error': type; 7 | // Store errors in the local collection 8 | this.collection.insert({message:message, type:type, seen: false, show:true}); 9 | }, 10 | 11 | clearSeen: function() { 12 | this.collection.update({seen:true}, {$set: {show:false}}, {multi:true}); 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!", 6 | "newsletter": "newsletter", 7 | "showBanner": "Afficher la Bannière", 8 | "mailChimpAPIKey": "Clé API MailChimp", 9 | "mailChimpListId": "ID Liste MailChimp", 10 | "postsPerNewsletter": "Posts par Newsletter", 11 | "newsletterFrequency": "Fréquence de la Newsletter" 12 | } -------------------------------------------------------------------------------- /README.nitrous.md: -------------------------------------------------------------------------------- 1 | # Setup for Nitrous.IO 2 | 3 | Before you can run this project, you will need to install Meteor with Autoparts (open-source package manager built specifically for Nitrous.IO boxes). 4 | 5 | Run the following commands in the Terminal below: 6 | 7 | 1. `cd ~/workspace/Telescope/` 8 | 2. `parts install meteor` 9 | 3. `meteor -p 0.0.0.0:3000` 10 | 11 | Usually you would just run `meteor`, but for nitrous environment host `0.0.0.0` is required. 12 | 13 | To preview the app, go to the "Preview Menu" and click "Port 3000" 14 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_avatars.scss: -------------------------------------------------------------------------------- 1 | .avatar-xsmall { 2 | .avatar-initials{ 3 | font-size: 12px; 4 | line-height: 20px; 5 | } 6 | } 7 | .avatar-small { 8 | height: 24px; 9 | width: 24px; 10 | .avatar-initials{ 11 | font-size: 13px; 12 | line-height: 24px; 13 | } 14 | } 15 | .avatar-medium { 16 | height: 30px; 17 | width: 30px; 18 | .avatar-initials{ 19 | font-size: 14px; 20 | line-height: 30px; 21 | } 22 | } 23 | 24 | .avatar-initials{ 25 | font-weight: normal; 26 | } -------------------------------------------------------------------------------- /client/views/posts/modules/post_admin.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/lib/client/templates/post_subscribe.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_actions.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postActions')].helpers({ 2 | 3 | }); 4 | 5 | Template[getTemplate('postActions')].events({ 6 | 'click .toggle-actions-link': function(e, instance){ 7 | e.preventDefault(); 8 | var $post = $(e.target).parents('.post'); 9 | var h = $post.height(); 10 | if ($post.hasClass('show-actions')) { 11 | $post.height('auto'); 12 | $post.removeClass('show-actions'); 13 | } else { 14 | $post.height(h+'px'); 15 | $post.addClass('show-actions'); 16 | } 17 | } 18 | }); -------------------------------------------------------------------------------- /packages/telescope-getting-started/content/removing_getting_started_posts.md: -------------------------------------------------------------------------------- 1 | ### Removing Getting Started Posts 2 | 3 | If you're ready to insert your own content and want to delete these getting started posts, comments, and users, you can do so with a single command. 4 | 5 | Just make sure you're logged in, then open your [browser console](http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers) and type: 6 | 7 | ```js 8 | Meteor.call('removeGettingStartedContent'); 9 | ``` 10 | 11 | See you on the other side! -------------------------------------------------------------------------------- /packages/telescope-embedly/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "thumbnail": "Thumbnail", 3 | "thumbnailUrl": "Thumbnail", 4 | "regenerate_thumbnail": "Regenerate Thumbnail", 5 | "clear_thumbnail": "Clear Thumbnail", 6 | "please_fill_in_embedly_key": "Please fill in your Embedly API key to enable thumbnails.", 7 | "please_ask_your_admin_to_fill_in_embedly_key": "Please ask your site admin to fill in an Embedly API key to enable thumbnails.", 8 | "embedlyKey": "Embedly API Key", 9 | "thumbnailWidth": "Thumbnail Width", 10 | "thumbnailHeight": "Thumbnail Height" 11 | } -------------------------------------------------------------------------------- /client/views/posts/modules/post_content.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-daily/lib/client/templates/posts_daily.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/telescope-messages/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({summary: "Telescope messages package"}); 2 | 3 | Package.onUse(function(api) { 4 | api.use([ 5 | 'minimongo', 6 | 'templating', 7 | 'telescope-base' 8 | ], 'client'); 9 | 10 | api.addFiles([ 11 | 'lib/client/messages.js', 12 | 13 | 'lib/client/templates/messages.html', 14 | 'lib/client/templates/messages.js', 15 | 'lib/client/templates/message_item.html', 16 | 'lib/client/templates/message_item.js' 17 | ], 'client'); 18 | 19 | api.export('Messages', 'client'); 20 | }); 21 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/server/cron.js: -------------------------------------------------------------------------------- 1 | SyncedCron.options = { 2 | log: false, 3 | collectionName: 'cronHistory', 4 | utc: false, 5 | collectionTTL: 172800 6 | } 7 | 8 | var addJob = function () { 9 | SyncedCron.add({ 10 | name: 'Post by RSS feed', 11 | schedule: function(parser) { 12 | return parser.text('every 30 minutes'); 13 | }, 14 | job: function() { 15 | if (Feeds.find().count()) { 16 | fetchFeeds(); 17 | } 18 | } 19 | }); 20 | } 21 | 22 | Meteor.startup(function () { 23 | addJob(); 24 | }) 25 | -------------------------------------------------------------------------------- /packages/telescope-settings/lib/server/publications.js: -------------------------------------------------------------------------------- 1 | Meteor.publish('settings', function() { 2 | var options = {}; 3 | var privateFields = {}; 4 | 5 | // look at Settings.schema to see which fields should be kept private 6 | _.each(Settings.schema._schema, function( val, key ) { 7 | if (val.autoform && !!val.autoform.private) 8 | privateFields[key] = false; 9 | }); 10 | 11 | if(!isAdminById(this.userId)){ 12 | options = _.extend(options, { 13 | fields: privateFields 14 | }); 15 | } 16 | 17 | return Settings.collection.find({}, options); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/telescope-embedly/lib/client/post_thumbnail.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_avatars.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-lib/lib/autolink.js: -------------------------------------------------------------------------------- 1 | //https://github.com/bryanwoods/autolink-js 2 | (function(){var a,b=[].slice;a=function(){var j,i,d,f,e,c,g,h;c=1<=arguments.length?b.call(arguments,0):[];g=/(^|\s)(\b(https?):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]\b)/ig;if(c.length>0){e=c[0];i=e.callback;if((i!=null)&&typeof i==="function"){j=i;delete e.callback;}f="";for(d in e){h=e[d];f+=" "+d+"='"+h+"'";}return this.replace(g,function(l,o,k){var n,m;m=j&&j(k);n=m||(""+k+"");return""+o+n;});}else{return this.replace(g,"$1$2");}};String.prototype.autoLink=a;}).call(this); 3 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/includes/_colors.scss: -------------------------------------------------------------------------------- 1 | $red: #DD3416; 2 | $green:#a3d06d; 3 | 4 | $blue:#7ac0e4; 5 | $dark-blue:#4e555d; 6 | $blue-grey:#b3c1c6; 7 | $blue-grey2:#a4a9ab; 8 | $light-blue:#d8e9f5; 9 | $light-blue2:#92b5c3; 10 | 11 | $yellow:#f8e121; 12 | $light-yellow:#fffcea; 13 | 14 | $grey:#b5b0b0; 15 | $lighter-grey:#dfdbdb; 16 | $lightest-grey:#e7eff2; 17 | $dark-grey:#444444; 18 | 19 | $header-bg:$dark-grey; 20 | $text:$dark-grey; 21 | $medium-text:$blue-grey2; 22 | $light-text:$blue-grey; 23 | $lighter-text:$lighter-grey; 24 | $border-color:$grey; 25 | $highlight-color:$dark-blue; -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_admin.scss: -------------------------------------------------------------------------------- 1 | .admin-wrapper{ 2 | padding: 0; 3 | margin-bottom: 10px; 4 | @include medium-large{ 5 | display: flex; 6 | } 7 | } 8 | .admin-menu{ 9 | background: white(0.8); 10 | @include medium-large{ 11 | width: 200px; 12 | } 13 | padding: 20px; 14 | .menu-top-level{ 15 | display: none; 16 | } 17 | .menu-item{ 18 | margin-bottom: 10px; 19 | } 20 | } 21 | .admin-contents{ 22 | background: white; 23 | @include medium-large{ 24 | border-left: 1px solid #ccc; 25 | width: 100%; 26 | } 27 | padding: 20px; 28 | } -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/partials/_colors.scss: -------------------------------------------------------------------------------- 1 | $red: #DD3416; 2 | $green:#a3d06d; 3 | 4 | $blue:#7ac0e4; 5 | $dark-blue:#4e555d; 6 | $blue-grey:#b3c1c6; 7 | $blue-grey2:#a4a9ab; 8 | $light-blue:#d8e9f5; 9 | $light-blue2:#92b5c3; 10 | 11 | $yellow:#f8e121; 12 | $light-yellow:#fffce0; 13 | 14 | $grey:#b5b0b0; 15 | $lighter-grey:#dfdbdb; 16 | $lightest-grey:#e7eff2; 17 | $dark-grey:#4a4444; 18 | 19 | $header-bg:$dark-grey; 20 | $text:$dark-grey; 21 | $medium-text:$blue-grey2; 22 | $light-text:$blue-grey; 23 | $lighter-text:$lighter-grey; 24 | $border-color:$grey; 25 | $highlight-color:$dark-blue; -------------------------------------------------------------------------------- /client/views/forms/urlCustomType.js: -------------------------------------------------------------------------------- 1 | AutoForm.addInputType("bootstrap-url", { 2 | template: "afBootstrapUrl", 3 | valueOut: function () { 4 | var url = this.val(); 5 | if(!!url) 6 | return (url.substring(0, 7) == "http://" || url.substring(0, 8) == "https://") ? url : "http://"+url; 7 | } 8 | }); 9 | 10 | Template.afBootstrapUrl_bootstrap3.helpers({ 11 | atts: function addFormControlAtts() { 12 | console.log(this) 13 | var atts = _.clone(this.atts); 14 | // Add bootstrap class 15 | atts = AutoForm.Utility.addClass(atts, "form-control"); 16 | return atts; 17 | } 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/custom_fields.js: -------------------------------------------------------------------------------- 1 | addToPostSchema.push( 2 | { 3 | propertyName: 'categories', 4 | propertySchema: { 5 | type: [String], 6 | optional: true, 7 | editable: true, 8 | autoform: { 9 | editable: true, 10 | noselect: true, 11 | options: function () { 12 | var categories = Categories.find().map(function (category) { 13 | return { 14 | value: category._id, 15 | label: category.name 16 | } 17 | }); 18 | return categories; 19 | } 20 | } 21 | } 22 | } 23 | ); -------------------------------------------------------------------------------- /client/views/comments/comment_form.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /lib/events.js: -------------------------------------------------------------------------------- 1 | trackEvent = function(event, properties){ 2 | // console.log('trackevent: ', event, properties); 3 | var properties= (typeof properties === 'undefined') ? {} : properties; 4 | //TODO 5 | // add event to an Events collection for logging and buffering purposes 6 | if(Meteor.isClient){ 7 | if(typeof mixpanel !== 'undefined' && typeof mixpanel.track !== 'undefined'){ 8 | mixpanel.track(event, properties); 9 | } 10 | if(typeof GoSquared !== 'undefined' && typeof GoSquared.DefaultTracker !== 'undefined'){ 11 | GoSquared.DefaultTracker.TrackEvent(event, JSON.stringify(properties)); 12 | } 13 | } 14 | }; -------------------------------------------------------------------------------- /packages/crunchhunt/lib/server/cron.js: -------------------------------------------------------------------------------- 1 | SyncedCron.options = { 2 | log: false, 3 | collectionName: 'cronHistory', 4 | utc: false, 5 | collectionTTL: 172800 6 | } 7 | 8 | var addJob = function () { 9 | SyncedCron.add({ 10 | name: 'Get article shares', 11 | schedule: function(parser) { 12 | return parser.text('every 10 minutes'); 13 | }, 14 | job: function() { 15 | getLast3DaysPostsShares(); 16 | } 17 | }); 18 | } 19 | 20 | Meteor.startup(function () { 21 | // do not run job locally to avoid going over API quota 22 | if (Meteor.absoluteUrl().indexOf('localhost') == -1) 23 | addJob(); 24 | }); 25 | -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/fr.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "a laissé un nouveau commentaire sur", 3 | "has_replied_to_your_comment_on": "a répondu à", 4 | "mark_as_read": "Marquer comme lu", 5 | "no_notifications": "Aucune notification", 6 | "you_have_been_unsubscribed_from_all_notifications": "Vous avez été désabonné de toutes les notifications.", 7 | "user_not_found": "Utilisateur non trouvé", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications", 10 | "emailNotifications": "Notifications par Email", 11 | "your_post": "Votre post", 12 | "has_been_approved": "a été approuvé" 13 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receive the best of", 3 | "right_in_your_inbox": "right in your inbox.", 4 | "get_newsletter": "Get Newsletter", 5 | "thanks_for_subscribing": "Thanks for subscribing!", 6 | "newsletter": "newsletter", 7 | "showBanner": "Show Banner", 8 | "mailChimpAPIKey": "MailChimp API Key", 9 | "mailChimpListId": "MailChimp List ID", 10 | "postsPerNewsletter": "Posts per Newsletter", 11 | "newsletterFrequency": "Newsletter Frequency", 12 | "newsletterTime": "Newsletter Time", 13 | "enableNewsletter": "Enable Newsletter", 14 | "autoSubscribe": "Auto Subscribe" 15 | } -------------------------------------------------------------------------------- /packages/telescope-singleday/lib/singleday.js: -------------------------------------------------------------------------------- 1 | viewsMenu.push({ 2 | route: 'postsSingleDayDefault', 3 | label: 'singleday', 4 | description: 'posts_of_a_single_day' 5 | }); 6 | 7 | viewParameters.singleday = function (terms) { 8 | return { 9 | find: { 10 | postedAt: { 11 | $gte: terms.after, 12 | $lt: terms.before 13 | } 14 | }, 15 | options: { 16 | sort: {sticky: -1, score: -1} 17 | } 18 | }; 19 | }; 20 | 21 | getDateURL = function(moment){ 22 | return Router.path('postsSingleDay', { 23 | year: moment.year(), 24 | month: moment.month() + 1, 25 | day: moment.date() 26 | }); 27 | }; -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.14.1.md: -------------------------------------------------------------------------------- 1 | ### v0.14.1 “TaglineScope” 2 | 3 | * Fix double notification bug. 4 | * Fix singleday view bug. 5 | * Fix post approval date bug. 6 | * Don't let non-admins access pending posts. 7 | * Give search field a border on white backgrounds. 8 | * Spanish, Brazilian, Turkish, Vietnamese, Polish translations (thanks everybody!). 9 | * Do not put comment reply page behind log-in wall. 10 | * Various CSS tweaks. 11 | * Added tagline banner package. 12 | * You can now assign a category to posts generated from feeds (thanks @Accentax!). 13 | * Use tagline as title on homepage. 14 | * Refactor default view route controller code. -------------------------------------------------------------------------------- /packages/telescope-tags/lib/hooks.js: -------------------------------------------------------------------------------- 1 | adminMenu.push({ 2 | route: 'categories', 3 | label: 'Categories', 4 | description: 'add_and_remove_categories' 5 | }); 6 | 7 | // push "categories" modules to postHeading 8 | postHeading.push({ 9 | template: 'postCategories', 10 | order: 30 11 | }); 12 | 13 | // push "categoriesMenu" template to primaryNav 14 | primaryNav.push({ 15 | template: 'categoriesMenu', 16 | order: 50 17 | }); 18 | 19 | mobileNav.push({ 20 | template: 'categoriesMenu', 21 | order: 10 22 | }); 23 | 24 | // we want to wait until categories are all loaded to load the rest of the app 25 | preloadSubscriptions.push('categories'); 26 | -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_actions.html: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /packages/telescope-kadira/lib/kadira-settings.js: -------------------------------------------------------------------------------- 1 | var kadiraAppIdProperty = { 2 | propertyName: 'kadiraAppId', 3 | propertyGroup: 'kadira', 4 | propertySchema: { 5 | type: String, 6 | optional: true, 7 | autoform: { 8 | group: 'kadira' 9 | } 10 | } 11 | }; 12 | Settings.addToSchema(kadiraAppIdProperty); 13 | 14 | var kadiraAppSecretProperty = { 15 | propertyName: 'kadiraAppSecret', 16 | propertyGroup: 'kadira', 17 | propertySchema: { 18 | type: String, 19 | optional: true, 20 | autoform: { 21 | group: 'kadira', 22 | private: true 23 | } 24 | } 25 | }; 26 | Settings.addToSchema(kadiraAppSecretProperty); 27 | -------------------------------------------------------------------------------- /packages/telescope-getting-started/content/getting_help.md: -------------------------------------------------------------------------------- 1 | ### Stack Overflow 2 | 3 | The best place to ask for help with specific Telescope questions is [Stack Overflow](http://stackoverflow.com/questions/tagged/telescope). Just make sure you use the `telescope` tag! 4 | 5 | ### Telescope Meta 6 | 7 | If you don't have a question, but instead want to discuss a specific aspect of Telescope (or show the world your new Telescope site!), feel free to open a topic on [Telescope Meta](http://meta.telesc.pe). 8 | 9 | ### GitHub Issues 10 | 11 | Finally, if you've found a bug in Telescope, then you should [leave an issue on GitHub](https://github.com/TelescopeJS/Telescope/issues). -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/en.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "left a new comment on", 3 | "has_replied_to_your_comment_on": "has replied to your comment on", 4 | "mark_as_read": "Mark as read", 5 | "no_notifications": "No notifications", 6 | "you_have_been_unsubscribed_from_all_notifications": "You have been unsubscribed from all notifications.", 7 | "user_not_found": "User not found", 8 | "1_notification": "1 notification", 9 | "notifications": "notifications", 10 | "notifications_fieldset": "Notifications", 11 | "emailNotifications": "Email Notifications", 12 | "your_post": "Your post", 13 | "has_been_approved": "has been approved" 14 | } 15 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Receba o melhor de", 3 | "right_in_your_inbox": "direto em sua caixa de emails.", 4 | "get_newsletter": "Inscrever na Newsletter", 5 | "thanks_for_subscribing": "Obrigado por assinar!", 6 | "newsletter": "newsletter", 7 | "showBanner": "Exibir Banner", 8 | "mailChimpAPIKey": "MailChimp API Key", 9 | "mailChimpListId": "MailChimp List ID", 10 | "postsPerNewsletter": "Postagens por Newsletter", 11 | "newsletterFrequency": "Frequência Newsletter", 12 | "newsletterTime": "Hora da Newsletter", 13 | "enableNewsletter": "Habilitar Newsletter", 14 | "autoSubscribe": "Auto Inscrição" 15 | } 16 | -------------------------------------------------------------------------------- /packages/telescope-post-by-feed/lib/client/routes.js: -------------------------------------------------------------------------------- 1 | adminMenu.push({ 2 | route: 'feeds', 3 | label: 'Feeds', 4 | description: 'import_new_posts_from_feeds' 5 | }); 6 | 7 | Meteor.startup(function () { 8 | 9 | Router.onBeforeAction(Router._filters.isAdmin, {only: ['feeds']}); 10 | 11 | // RSS Urls Admin 12 | 13 | Router.route('/feeds', { 14 | name: 'feeds', 15 | controller: AdminController, 16 | waitOn: function() { 17 | return [ 18 | Meteor.subscribe('feeds'), 19 | Meteor.subscribe('allUsersAdmin'), 20 | Meteor.subscribe('categories') 21 | ]; 22 | }, 23 | // template: getTemplate('feeds') 24 | }); 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /server/publications/users.js: -------------------------------------------------------------------------------- 1 | // Publish the current user 2 | 3 | Meteor.publish('currentUser', function() { 4 | var user = Meteor.users.find({_id: this.userId}, {fields: ownUserOptions}); 5 | return user; 6 | }); 7 | 8 | // publish all users for admins to make autocomplete work 9 | // TODO: find a better way 10 | 11 | Meteor.publish('allUsersAdmin', function() { 12 | var selector = Settings.get('requirePostInvite') ? {isInvited: true} : {}; // only users that can post 13 | if (isAdminById(this.userId)) { 14 | return Meteor.users.find(selector, {fields: { 15 | _id: true, 16 | profile: true, 17 | slug: true 18 | }}); 19 | } 20 | return []; 21 | }); 22 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_upvote.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postUpvote')].helpers({ 2 | upvoted: function(){ 3 | var user = Meteor.user(); 4 | if(!user) return false; 5 | return _.include(this.upvoters, user._id); 6 | } 7 | }); 8 | 9 | Template[getTemplate('postUpvote')].events({ 10 | 'click .upvote-link': function(e, instance){ 11 | var post = this; 12 | e.preventDefault(); 13 | if(!Meteor.user()){ 14 | Router.go('atSignIn'); 15 | Messages.flash(i18n.t("please_log_in_first"), "info"); 16 | } 17 | Meteor.call('upvotePost', post, function(error, result){ 18 | trackEvent("post upvoted", {'_id': post._id}); 19 | }); 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /packages/telescope-embedly/lib/client/post_thumbnail.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postThumbnail')].helpers({ 2 | postLink: function () { 3 | return !!this.url ? getOutgoingUrl(this.url) : "/posts/"+this._id; 4 | }, 5 | playVideoClass: function () { 6 | return !!this.media ? 'post-thumbnail-has-video': ''; 7 | }, 8 | videoTemplate: function () { 9 | return getTemplate('postVideo'); 10 | } 11 | }); 12 | 13 | Template[getTemplate('postThumbnail')].events({ 14 | 'click .post-thumbnail-has-video': function (e) { 15 | e.preventDefault(); 16 | $('body').addClass('showing-lightbox'); 17 | $(e.target).parents('.post').find('.post-video-lightbox').fadeIn('fast'); 18 | } 19 | }) -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/pt-BR.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "deixou um novo comentário em", 3 | "has_replied_to_your_comment_on": "respondeu ao seu comentário em", 4 | "mark_as_read": "Marcar como lido", 5 | "no_notifications": "Sem notificações", 6 | "you_have_been_unsubscribed_from_all_notifications": "Você se desinscreveu de todas as notificações.", 7 | "user_not_found": "Usuário não encontrado", 8 | "1_notification": "1 notificação", 9 | "notifications": "notificações", 10 | "notifications_fieldset": "Notificações", 11 | "emailNotifications": "Notificações por Email", 12 | "your_post": "Sua postagem", 13 | "has_been_approved": "foi aprovada" 14 | } 15 | -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/partials/_typography.scss: -------------------------------------------------------------------------------- 1 | body, textarea, input, button, input[type="submit"], input[type="button"]{ 2 | font-family:"Source Sans Pro", "Helvetica Neue", Helvetica, sans-serif; 3 | } 4 | body, textarea, input{ 5 | color:$text; 6 | line-height:1.6; 7 | } 8 | .post-title, .header, .post-rank, .button{ 9 | // font-family:"kulturista-web", Rokkitt, Georgia, serif; 10 | } 11 | h2{ 12 | font-size: 36px; 13 | margin-bottom: 10px; 14 | } 15 | h3{ 16 | font-weight:bold; 17 | margin-bottom:10px; 18 | } 19 | .small{ 20 | font-size: 80%; 21 | color:$light-text; 22 | } 23 | strong{ 24 | font-weight: bold; 25 | } 26 | em{ 27 | font-style: italic; 28 | } 29 | -------------------------------------------------------------------------------- /packages/telescope-notifications/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "left_a_new_comment_on": "dodał nowy komentarz w", 3 | "has_replied_to_your_comment_on": "odpowiedział na twój komentarz w", 4 | "mark_as_read": "Oznacz jako przeczytane", 5 | "no_notifications": "Brak powiadomień", 6 | "you_have_been_unsubscribed_from_all_notifications": "Zostałeś wypisany ze wszystkich powiadomień.", 7 | "user_not_found": "Użytkownik nie został odnaleziony", 8 | "1_notification": "1 powiadomienie", 9 | "notifications": "powiadomień", 10 | "notifications_fieldset": "Powiadomienia", 11 | "emailNotifications": "Powiadomienia Email", 12 | "your_post": "Twój post", 13 | "has_been_approved": "został zaakceptowany" 14 | } -------------------------------------------------------------------------------- /packages/telescope-newsletter/i18n/pl.i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "receive_the_best_of": "Otrzymuj najlepsze z", 3 | "right_in_your_inbox": "prosto do twojej skrzynki.", 4 | "get_newsletter": "Zapisz się do Newslettera", 5 | "thanks_for_subscribing": "Dziękujemy!", 6 | "newsletter": "newsletter", 7 | "showBanner": "Pokaż Baner", 8 | "mailChimpAPIKey": "MailChimp API Key", 9 | "mailChimpListId": "MailChimp List ID", 10 | "postsPerNewsletter": "Liczba postów przypadająca na jeden Newsletter", 11 | "newsletterFrequency": "Częstotliwość Newslettera", 12 | "newsletterTime": "Godzina, w której ma być wysłany Newsletter", 13 | "enableNewsletter": "Włącz Newsletter", 14 | "autoSubscribe": "Auto Subskrybcja" 15 | } -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/notification_item.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('notificationItem')].helpers({ 2 | properties: function(){ 3 | return this.data; 4 | }, 5 | notificationHTML: function(){ 6 | return this.message(); 7 | } 8 | }); 9 | 10 | Template[getTemplate('notificationItem')].events({ 11 | 'click .action-link': function(event, instance){ 12 | var notificationId=instance.data._id; 13 | Herald.collection.update( 14 | {_id: notificationId}, 15 | { 16 | $set:{ 17 | read: true 18 | } 19 | }, 20 | function(error, result){ 21 | if(error){ 22 | console.log(error); 23 | } 24 | } 25 | ); 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /packages/telescope-releases/lib/client/templates/current_release.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | Template[getTemplate('currentRelease')].created = function () { 4 | this.release = function () { 5 | return Releases.find({read: false}).fetch()[0]; 6 | } 7 | }; 8 | 9 | Template[getTemplate('currentRelease')].helpers({ 10 | currentRelease: function () { 11 | return Template.instance().release(); 12 | } 13 | }); 14 | 15 | Template[getTemplate('currentRelease')].events({ 16 | 'click .release-dismiss': function (event, instance) { 17 | event.preventDefault(); 18 | Releases.update(instance.release()._id, {$set: {read: true}}); 19 | } 20 | }) 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /client/views/comments/comment_reply.html: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /client/views/comments/comment_edit.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/modules/post_admin.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postAdmin')].helpers({ 2 | showApprove: function () { 3 | return this.status == STATUS_PENDING; 4 | }, 5 | showUnapprove: function(){ 6 | return !!Settings.get('requirePostsApproval') && this.status == STATUS_APPROVED; 7 | }, 8 | shortScore: function(){ 9 | return Math.floor(this.score*1000)/1000; 10 | } 11 | }); 12 | 13 | Template[getTemplate('postAdmin')].events({ 14 | 'click .approve-link': function(e, instance){ 15 | Meteor.call('approvePost', this); 16 | e.preventDefault(); 17 | }, 18 | 'click .unapprove-link': function(e, instance){ 19 | Meteor.call('unapprovePost', this); 20 | e.preventDefault(); 21 | } 22 | }); 23 | -------------------------------------------------------------------------------- /packages/telescope-kadira/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | summary: "Telescope Kadira package", 3 | version: '0.1.0', 4 | name: "telescope-kadira" 5 | }); 6 | 7 | Package.onUse(function (api) { 8 | 9 | api.use([ 10 | 'templating', 11 | 'telescope-lib', 12 | 'telescope-base', 13 | 'telescope-settings', 14 | 'tap:i18n', 15 | 'meteorhacks:kadira@2.20.1' 16 | ], ['client', 'server']); 17 | 18 | api.add_files([ 19 | 'package-tap.i18n', 20 | 'lib/kadira-settings.js' 21 | ], ['client', 'server']); 22 | 23 | api.add_files([ 24 | 'lib/server/kadira.js' 25 | ], ['server']); 26 | 27 | api.add_files([ 28 | "i18n/en.i18n.json" 29 | ], ["client", "server"]); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /packages/telescope-module-share/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | version: '0.1.0', 3 | name: "telescope-module-share", 4 | summary: "Telescope share module package" 5 | }); 6 | 7 | Package.onUse(function (api) { 8 | 9 | api.use([ 10 | 'jquery', 11 | 'underscore', 12 | 'templating', 13 | 'fourseven:scss' 14 | ], 'client'); 15 | 16 | api.use([ 17 | 'telescope-lib', 18 | 'telescope-base', 19 | ]); 20 | 21 | api.add_files([ 22 | 'lib/share.js' 23 | ], ['client', 'server']); 24 | 25 | api.add_files([ 26 | 'lib/client/post_share.html', 27 | 'lib/client/post_share.js', 28 | 'lib/client/post_share.scss' 29 | ], ['client']); 30 | 31 | // api.export(); 32 | }); 33 | -------------------------------------------------------------------------------- /packages/telescope-blank/lib/custom_fields.js: -------------------------------------------------------------------------------- 1 | // Custom Post Property 2 | 3 | var customProperty = { 4 | propertyName: 'customProperty', 5 | propertySchema: { 6 | type: String, // property type 7 | label: 'customLabel', // key string used for internationalization 8 | optional: true, // make this property optional 9 | autoform: { 10 | editable: true, // make this property editable by users 11 | type: "bootstrap-datetimepicker", // assign a custom input type 12 | omit: false // set to true to omit field from form entirely 13 | } 14 | } 15 | } 16 | addToPostSchema.push(customProperty); -------------------------------------------------------------------------------- /packages/telescope-email/.npm/package/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "html-to-text": { 4 | "version": "0.1.0", 5 | "dependencies": { 6 | "htmlparser": { 7 | "version": "1.7.7" 8 | }, 9 | "underscore": { 10 | "version": "1.7.0" 11 | }, 12 | "underscore.string": { 13 | "version": "2.3.3" 14 | }, 15 | "optimist": { 16 | "version": "0.6.1", 17 | "dependencies": { 18 | "wordwrap": { 19 | "version": "0.0.2" 20 | }, 21 | "minimist": { 22 | "version": "0.0.10" 23 | } 24 | } 25 | } 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/.npm/package/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "html-to-text": { 4 | "version": "0.1.0", 5 | "dependencies": { 6 | "htmlparser": { 7 | "version": "1.7.7" 8 | }, 9 | "underscore": { 10 | "version": "1.7.0" 11 | }, 12 | "underscore.string": { 13 | "version": "2.3.3" 14 | }, 15 | "optimist": { 16 | "version": "0.6.1", 17 | "dependencies": { 18 | "wordwrap": { 19 | "version": "0.0.2" 20 | }, 21 | "minimist": { 22 | "version": "0.0.10" 23 | } 24 | } 25 | } 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/specific/_layout.scss: -------------------------------------------------------------------------------- 1 | *, *:before, *:after { 2 | box-sizing: border-box; 3 | line-height: 1.5; 4 | } 5 | 6 | html, body, .outer-wrapper{ 7 | height:100%; 8 | } 9 | 10 | body{ 11 | background:#eee; 12 | font-size: 14px; 13 | @include small{ 14 | overflow-x: hidden; 15 | } 16 | } 17 | 18 | .outer-wrapper{ 19 | position:relative; 20 | } 21 | 22 | .content-wrapper{ 23 | padding:0 10px; 24 | max-width: 1200px; 25 | } 26 | 27 | .content-wrapper{ 28 | margin: 0 auto; 29 | @include small{ 30 | overflow-x: hidden; 31 | overflow-y: hidden; 32 | } 33 | } 34 | .grid-module, .at-form{ 35 | background: white; 36 | padding: $grid-padding; 37 | margin-bottom: $grid-margin; 38 | } -------------------------------------------------------------------------------- /client/views/comments/comment_list.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('comment_list')].helpers({ 2 | comment_item: function () { 3 | return getTemplate('comment_item'); 4 | }, 5 | child_comments: function(){ 6 | var post = this; 7 | var comments = Comments.find({postId: post._id, parentCommentId: null}, {sort: {score: -1, postedAt: -1}}); 8 | return comments; 9 | }, 10 | threadModules: function () { 11 | return threadModules; 12 | }, 13 | getTemplate: function () { 14 | return getTemplate(this.template); 15 | } 16 | }); 17 | 18 | Template[getTemplate('comment_list')].rendered = function(){ 19 | // once all comments have been rendered, activate comment queuing for future real-time comments 20 | window.queueComments = true; 21 | }; -------------------------------------------------------------------------------- /packages/telescope-getting-started/lib/getting_started.js: -------------------------------------------------------------------------------- 1 | addToPostSchema.push( 2 | { 3 | propertyName: 'dummySlug', 4 | propertySchema: { 5 | type: String, 6 | optional: true, 7 | autoform: { 8 | omit: true 9 | } 10 | } 11 | } 12 | ); 13 | 14 | addToPostSchema.push( 15 | { 16 | propertyName: 'isDummy', 17 | propertySchema: { 18 | type: Boolean, 19 | optional: true, 20 | autoform: { 21 | omit: true 22 | } 23 | } 24 | } 25 | ); 26 | 27 | addToCommentsSchema.push( 28 | { 29 | propertyName: 'isDummy', 30 | propertySchema: { 31 | type: Boolean, 32 | optional: true, 33 | autoform: { 34 | omit: true 35 | } 36 | } 37 | } 38 | ); -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.13.0.md: -------------------------------------------------------------------------------- 1 | ### v0.13.0 “ComponentScope” 2 | 3 | * Tweaked comments layout in Hubbble theme. 4 | * Added Bulgarian translation (thanks @toome123!). 5 | * Cleaned up permission functions (thanks @anthonymayer!). 6 | * Various fixes (thanks @comerc and @Kikobeats!). 7 | * Stopped synced-cron message logging. 8 | * Limit all posts lists to 200 posts. 9 | * Refactored posts lists to use the template-level subscription pattern when appropriate. 10 | * Refactored `single day` and `daily` packages. 11 | * Footer field now accepts Markdown instead of HTML. 12 | * Feeds can now be assigned to a user. 13 | * Various CSS tweaks. 14 | * Fixing newsletter issue. 15 | * Post rank now has its own module. 16 | * Changed how field label i18n works. -------------------------------------------------------------------------------- /client/views/common/layout.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/posts/post_view_nav.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('postViewsNav')].helpers({ 2 | showNav: function () { 3 | var navElements = Settings.get('postViews', _.pluck(viewsMenu, 'route')); 4 | var navCount = (typeof navElements === "array") ? navElements.length : _.keys(navElements).length; 5 | return navCount > 1; 6 | }, 7 | menuItems: function () { 8 | var defaultViews = _.pluck(viewsMenu, 'route'); 9 | var menuItems = _.filter(viewsMenu, function (item) { 10 | if (!_.contains(Settings.get('postViews', defaultViews), item.route) || (item.adminOnly && !isAdmin(Meteor.user()))) { 11 | // don't show the item 12 | return false; 13 | } 14 | return true; 15 | }); 16 | return menuItems; 17 | } 18 | }); 19 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.14.0.md: -------------------------------------------------------------------------------- 1 | ### v0.14.0 “GridScope” 2 | 3 | * Adeed Grid Layout option. 4 | * Cleaned up vote click handling functions and added tests (thanks @anthonymayer!). 5 | * Added `threadModules` zone. 6 | * Added `upvoteCallbacks` and `downvoteCallbacks` callback arrays. 7 | * Fix “post awaiting moderation” message bug. 8 | * You can now subscribe to comment threads (thanks @delgermurun!). 9 | * Added `postApproveCallbacks` callback array. 10 | * Added notifications for pending and approved posts, for admins and end users. 11 | * Renaming "digest" view to "singleday". 12 | * Make sure only valid properties can be added to posts and comments. 13 | * Added newsletter time setting (thanks @anthonymayer!). 14 | * Change "sign up" to "register" (thanks @Kikobeats!). -------------------------------------------------------------------------------- /packages/telescope-embedly/lib/client/autoform-postthumbnail.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.12.0.md: -------------------------------------------------------------------------------- 1 | ### v0.12.0 “DummyScope” 2 | 3 |

Important: existing newsletters and feeds need to be manually re-enabled in the Settings panel.

4 | 5 | * Added "Enable Newsletter" setting. Note: existing newsletters must be re-enabled. 6 | * Added "Enable Feeds" settings. Note: existing feeds must be re-enabled. 7 | * Now showing release notes for latest version right inside the app. 8 | * Added dummy posts, users, and comments. 9 | * Added new Events collection for keeping track of important events. 10 | * Log first run event. 11 | * `MAIL_URL` environment variable can now be set from Settings. 12 | * Renamed `viewNav` to `viewsMenu`. 13 | * Renamed `adminNav` to `adminMenu`. 14 | * **New and improved [documentation](http://telesc.pe/docs).** -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/screen.scss: -------------------------------------------------------------------------------- 1 | // Includes 2 | 3 | @import "includes/breakpoints"; 4 | @import "includes/colors"; 5 | @import "includes/mixins"; 6 | 7 | // Global Styles (forms, typography, etc.) 8 | 9 | @import "global/forms"; 10 | @import "global/links"; 11 | @import "global/icons"; 12 | @import "global/main"; 13 | @import "global/markdown"; 14 | @import "global/tables"; 15 | @import "global/typography"; 16 | 17 | // Specific Styles (header, posts, etc.) 18 | 19 | @import "specific/admin"; 20 | @import "specific/avatars"; 21 | @import "specific/errors"; 22 | @import "specific/nav"; 23 | @import "specific/layout"; 24 | @import "specific/loading"; 25 | @import "specific/mobile_nav"; 26 | @import "specific/notifications"; 27 | @import "specific/posts"; 28 | @import "specific/users"; 29 | -------------------------------------------------------------------------------- /client/views/users/profile/user_upvoted_posts.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-update-prompt/lib/client/templates/update_banner.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/views/nav/nav.html: -------------------------------------------------------------------------------- 1 | 28 | -------------------------------------------------------------------------------- /client/views/users/profile/user_downvoted_posts.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-pages/lib/client/routes.js: -------------------------------------------------------------------------------- 1 | adminMenu.push({ 2 | route: 'pages', 3 | label: 'Pages', 4 | description: 'manage_static_pages' 5 | }); 6 | 7 | preloadSubscriptions.push('pages'); 8 | 9 | PageController = RouteController.extend({ 10 | getTitle: function () { 11 | return Pages.collection.findOne({slug: this.params.slug}).title; 12 | }, 13 | data: function () { 14 | return Pages.collection.findOne({slug: this.params.slug}); 15 | } 16 | }); 17 | 18 | Meteor.startup(function () { 19 | 20 | Router.onBeforeAction(Router._filters.isAdmin, {only: ['pages']}); 21 | 22 | Router.route('/page/:slug', { 23 | name: 'page', 24 | controller: PageController 25 | }); 26 | 27 | Router.route('/pages', { 28 | name: 'pages', 29 | controller: AdminController 30 | }); 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /packages/telescope-update-prompt/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | summary: "Telescope update prompt package.", 3 | version: '0.1.0', 4 | name: "telescope-update-prompt" 5 | }); 6 | 7 | Package.onUse(function (api) { 8 | 9 | api.use(['telescope-lib', 'telescope-base', 'http'], ['client', 'server']); 10 | 11 | api.use([ 12 | 'jquery', 13 | 'underscore', 14 | 'iron:router', 15 | 'templating' 16 | ], 'client'); 17 | 18 | 19 | api.add_files([ 20 | 'lib/client/update.js', 21 | 'lib/client/templates/update_banner.html', 22 | 'lib/client/templates/update_banner.js', 23 | 'lib/client/templates/update_banner.css' 24 | ], ['client']); 25 | 26 | api.add_files([ 27 | 'lib/server/phone_home.js' 28 | ], ['server']); 29 | 30 | api.export([ 31 | 'compareVersions' 32 | ]); 33 | }); -------------------------------------------------------------------------------- /packages/telescope-notifications/lib/client/templates/unsubscribe.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('unsubscribe')].created = function(){ 2 | var hash = this.data.hash; 3 | Meteor.call('unsubscribeUser', hash, function(error, result){ 4 | if(result){ 5 | Session.set('unsubscribedMessage', __('you_have_been_unsubscribed_from_all_notifications')); 6 | }else{ 7 | Session.set('unsubscribedMessage', __('user_not_found')); 8 | } 9 | }); 10 | trackEvent('notificationsUnsubcribe', {hash: hash}); 11 | }; 12 | 13 | Template[getTemplate('unsubscribe')].helpers({ 14 | unsubscribed : function(){ 15 | // we have to use a session variable because the string we want to display 16 | // depends on the return value of an asynchronous callback (unsubscribeUser) 17 | return Session.get('unsubscribedMessage'); 18 | } 19 | }); -------------------------------------------------------------------------------- /packages/telescope-newsletter/lib/client/templates/newsletter_banner.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-update-prompt/lib/server/phone_home.js: -------------------------------------------------------------------------------- 1 | Meteor.methods({ 2 | phoneHome: function () { 3 | 4 | var url = 'http://version.telescopeapp.org/'; 5 | 6 | var params = { 7 | currentVersion: telescopeVersion, 8 | siteTitle: Settings.get('title'), 9 | siteUrl: getSiteUrl(), 10 | users: Meteor.users.find().count(), 11 | posts: Posts.find().count(), 12 | comments: Comments.find().count() 13 | } 14 | 15 | if(Meteor.user() && isAdmin(Meteor.user())){ 16 | 17 | this.unblock(); 18 | try { 19 | var result = HTTP.get(url, { 20 | params: params 21 | }) 22 | return result; 23 | } catch (e) { 24 | // Got a network error, time-out or HTTP error in the 400 or 500 range. 25 | return false; 26 | } 27 | } 28 | } 29 | }) 30 | -------------------------------------------------------------------------------- /packages/telescope-subscribe-to-posts/lib/client/templates/user_subscribed_posts.html: -------------------------------------------------------------------------------- 1 | 27 | -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/partials/_tooltips.scss: -------------------------------------------------------------------------------- 1 | .has-tooltip{ 2 | position:relative; 3 | .tooltip{ 4 | pointer-events: none; 5 | position:absolute; 6 | z-index:9999; 7 | left:50%; 8 | top:-40px; 9 | opacity:0; 10 | transition: ease-out, opacity, 300ms, 0ms; 11 | span{ 12 | display:block; 13 | white-space:nowrap; 14 | position:relative; 15 | background:black(0.6); 16 | border-radius: 3px; 17 | padding:0px 8px; 18 | left:-50%; 19 | font-size:14px; 20 | color:#fff; 21 | &:after { 22 | top: 100%; 23 | border: solid transparent; 24 | content: " "; 25 | height: 0; 26 | width: 0; 27 | position: absolute; 28 | border-top-color: black(0.6); 29 | border-width: 6px; 30 | left: 50%; 31 | margin-left: -6px; 32 | } 33 | } 34 | } 35 | &:hover .tooltip{ 36 | opacity:1; 37 | } 38 | } -------------------------------------------------------------------------------- /packages/telescope-lib/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | summary: "Telescope library package", 3 | version: '0.2.9', 4 | name: "telescope-lib" 5 | }); 6 | 7 | Package.onUse(function (api) { 8 | 9 | api.use([ 10 | 'underscore' 11 | ], ['client', 'server']); 12 | 13 | api.use([ 14 | 'jquery' 15 | ], 'client'); 16 | 17 | api.add_files([ 18 | 'lib/lib.js', 19 | 'lib/deep.js', 20 | 'lib/deep_extend.js', 21 | 'lib/autolink.js', 22 | 'lib/permissions.js' 23 | ], ['client', 'server']); 24 | 25 | api.add_files(['lib/client/jquery.exists.js'], ['client']); 26 | 27 | api.export([ 28 | 'deepExtend', 29 | 'camelToDash', 30 | 'dashToCamel', 31 | 'camelCaseify', 32 | 'removeSetting', 33 | 'getThemeSetting', 34 | 'getSiteUrl', 35 | 'trimWords', 36 | 'can', 37 | '_', 38 | 'capitalise' 39 | ]); 40 | }); 41 | -------------------------------------------------------------------------------- /packages/telescope-settings/lib/client/templates/settings_form.js: -------------------------------------------------------------------------------- 1 | AutoForm.addHooks(['updateSettingsForm', 'insertSettingsForm'], { 2 | onSuccess: function(operation, result) { 3 | this.template.$('button[type=submit]').removeClass('loading'); 4 | }, 5 | 6 | onError: function(operation, result, template) { 7 | this.template.$('button[type=submit]').removeClass('loading'); 8 | } 9 | }); 10 | 11 | AutoForm.hooks({ 12 | updateSettingsForm: { 13 | before: { 14 | update: function(modifier) { 15 | this.template.$('button[type=submit]').addClass('loading'); 16 | return modifier; 17 | } 18 | } 19 | 20 | }, 21 | insertSettingsForm: { 22 | before: { 23 | insert: function(doc) { 24 | this.template.$('button[type=submit]').addClass('loading'); 25 | return doc; 26 | } 27 | } 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /client/views/users/profile/user_comments.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/npm-container/index.js: -------------------------------------------------------------------------------- 1 | Meteor.npmRequire = function(moduleName) { // 74 2 | var module = Npm.require(moduleName); // 75 3 | return module; // 76 4 | }; // 77 5 | // 78 6 | Meteor.require = function(moduleName) { // 79 7 | console.warn('Meteor.require is deprecated. Please use Meteor.npmRequire instead!'); // 80 8 | return Meteor.npmRequire(moduleName); // 81 9 | }; // 82 -------------------------------------------------------------------------------- /client/views/common/css.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-settings/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({summary: "Telescope settings package"}); 2 | 3 | Package.onUse(function(api) { 4 | var both = ['server', 'client']; 5 | 6 | api.use([ 7 | 'mongo', 8 | 'underscore', 9 | 10 | 'aldeed:simple-schema', 11 | 12 | 'telescope-base', 13 | 'telescope-lib' 14 | ], both); 15 | 16 | api.use([ 17 | 'templating', 18 | 'aldeed:autoform' 19 | ], 'client'); 20 | 21 | api.addFiles([ 22 | 'lib/settings.js', 23 | 'lib/router.js' 24 | ], both); 25 | 26 | api.addFiles([ 27 | 'lib/server/publications.js', 28 | ], 'server'); 29 | 30 | api.addFiles([ 31 | 'lib/client/language_changer.js', 32 | 'lib/client/helpers.js', 33 | 'lib/client/templates/settings_form.html', 34 | 'lib/client/templates/settings_form.js' 35 | ], 'client'); 36 | 37 | api.export('Settings', both); 38 | }); 39 | -------------------------------------------------------------------------------- /packages/telescope-seo/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: "telescope-seo", 3 | summary: "SEO extensions for Telescope", 4 | version: "0.0.5" 5 | }); 6 | 7 | Package.onUse(function(api) { 8 | api.use([ 9 | "templating", 10 | "underscore", 11 | "aldeed:simple-schema", 12 | "tap:i18n", 13 | "iron:router", 14 | "telescope-lib", 15 | "telescope-base", 16 | "telescope-settings", 17 | "telescope-i18n", 18 | "manuelschoebel:ms-seo@0.4.1", 19 | "gadicohen:sitemaps@0.0.20" 20 | ]); 21 | 22 | // both 23 | api.addFiles([ 24 | "lib/routes.js", 25 | "lib/seo.js", 26 | "package-tap.i18n" 27 | ], ['client', 'server']); 28 | 29 | // server 30 | api.addFiles([ 31 | "lib/server/sitemaps.js" 32 | ], ["server"]); 33 | 34 | // i18n 35 | api.add_files([ 36 | "i18n/en.i18n.json" 37 | ], ["client", "server"]); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /packages/telescope-tags/lib/server/hooks.js: -------------------------------------------------------------------------------- 1 | // make sure all categories in the post.categories array exist in the db 2 | var checkCategories = function (post) { 3 | 4 | // if there are not categories, stop here 5 | if (!post.categories || post.categories.length === 0) { 6 | return; 7 | } 8 | 9 | // check how many of the categories given also exist in the db 10 | var categoryCount = Categories.find({_id: {$in: post.categories}}).count(); 11 | 12 | if (post.categories.length !== categoryCount) { 13 | throw new Meteor.Error('invalid_category', i18n.t('invalid_category')); 14 | } 15 | }; 16 | 17 | postSubmitMethodCallbacks.push(function (post) { 18 | checkCategories(post); 19 | 20 | return post; 21 | }); 22 | 23 | postEditMethodCallbacks.push(function (updateObject) { 24 | var post = updateObject.$set; 25 | checkCategories(post); 26 | 27 | return updateObject; 28 | }); 29 | -------------------------------------------------------------------------------- /client/views/users/user_email.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-module-share/lib/client/post_share.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('postShare')].helpers({ 3 | sourceLink: function(){ 4 | return !!this.url ? this.url : getSiteUrl() + "posts/"+this._id; 5 | }, 6 | viaTwitter: function () { 7 | return !!Settings.get('twitterAccount') ? 'via='+Settings.get('twitterAccount') : ''; 8 | } 9 | }); 10 | 11 | Template[getTemplate('postShare')].events({ 12 | 'click .share-link': function(e){ 13 | var $this = $(e.target).parents('.post-share').find('.share-link'); 14 | var $share = $this.parents('.post-share').find('.share-options'); 15 | e.preventDefault(); 16 | $('.share-link').not($this).removeClass("active"); 17 | $(".share-options").not($share).addClass("hidden"); 18 | $this.toggleClass("active"); 19 | $share.toggleClass("hidden"); 20 | } 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /packages/telescope-search/lib/client/templates/search_logs.html: -------------------------------------------------------------------------------- 1 | 31 | -------------------------------------------------------------------------------- /packages/telescope-releases/releases/0.11.0.md: -------------------------------------------------------------------------------- 1 | ### v0.11.0 “AvatarScope” 2 | 3 | * Added new `userCreatedCallbacks` callback hook. 4 | * Added new setting to subscribe new user to mailing list automatically. 5 | * Added new `debug` setting. 6 | * `siteUrl` setting now affects `Meteor.absoluteUrl()`. 7 | * Added new `clog` function that only logs if `debug` setting is true. 8 | * Simplified post module system, modules are not split in three zones anymore. 9 | * Added new `postThumbnail` hook to show Embedly thumbnail. 10 | * Simplified Hubble theme CSS for both desktop and mobile. 11 | * Many CSS tweaks for Hubble mobile. 12 | * Show author and commenters avatars on post item. 13 | * Adding description to post list pages and showing them in menus. 14 | * Improved Russian translation (thanks @Viktorminator!). 15 | * Now using `editorconfig` (thanks @erasaur!). 16 | * Upgraded to `useraccounts:unstyled@1.4.0` (thanks @splendido!). -------------------------------------------------------------------------------- /packages/telescope-datetimepicker/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: 'telescope-datetimepicker', 3 | summary: 'Custom bootstrap-datetimepicker input type for AutoForm', 4 | version: '1.0.3', 5 | }); 6 | 7 | Package.onUse(function(api) { 8 | api.use('templating@1.0.0'); 9 | api.use('blaze@2.0.0'); 10 | api.use('aldeed:autoform'); 11 | api.use('fourseven:scss'); 12 | // api.use('jquery'); 13 | // api.use('tsega:bootstrap3-datetimepicker'); 14 | // api.use('chriswessels:glyphicons-halflings'); 15 | 16 | api.addFiles([ 17 | 'datetimepicker.scss', 18 | 'autoform-bs-datetimepicker.html', 19 | 'autoform-bs-datetimepicker.js', 20 | 'bootstrap-collapse-transitions.js', 21 | 'fonts/glyphicons-halflings-regular.eot', 22 | 'fonts/glyphicons-halflings-regular.svg', 23 | 'fonts/glyphicons-halflings-regular.ttf', 24 | 'fonts/glyphicons-halflings-regular.woff' 25 | ], 'client'); 26 | }); 27 | -------------------------------------------------------------------------------- /packages/telescope-module-share/lib/client/post_share.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-seo/lib/routes.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function() { 2 | // Inject SEO tags. 3 | Router.onAfterAction(function() { 4 | var props = {meta: {}, og: {}}; 5 | var title = this.getTitle && this.getTitle(); 6 | var description = this.getDescription && this.getDescription(); 7 | var image = Settings.get("siteImage"); 8 | if (title) { 9 | props.og.title = title; 10 | } 11 | if (description) { 12 | props.meta.description = description; 13 | props.og.description = description; 14 | } 15 | if (image) { 16 | props.og.image = image; 17 | } 18 | SEO.set(props); 19 | }); 20 | 21 | // Add canonical URL to post pages 22 | Router.onAfterAction(function() { 23 | var post = Posts.findOne(this.params._id); 24 | if (post) { 25 | SEO.set({link: {canonical: getPostPageUrl(post)}}); 26 | } 27 | }, {only: ["post_page", "post_page_with_slug"]}); 28 | 29 | }); 30 | -------------------------------------------------------------------------------- /packages/telescope-theme-base/lib/client/scss/includes/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | $grid-unit:70px; 2 | $grid-margin:10px; 3 | $grid-padding:15px; 4 | $break-small:500px; 5 | 6 | $xsmall-break: 300px; 7 | $small-break: 600px; 8 | $medium-break: 800px; 9 | 10 | @mixin xsmall(){ 11 | @media screen and (max-width: $xsmall-break) { 12 | @content; 13 | } 14 | } 15 | 16 | @mixin small(){ 17 | @media screen and (max-width: $small-break) { 18 | @content; 19 | } 20 | } 21 | @mixin small-medium(){ 22 | @media screen and (max-width: $medium-break) { 23 | @content; 24 | } 25 | } 26 | @mixin medium(){ 27 | @media screen and (min-width: $small-break) and (max-width: $medium-break) { 28 | @content; 29 | } 30 | } 31 | @mixin medium-large(){ 32 | @media screen and (min-width: $small-break) { 33 | @content; 34 | } 35 | } 36 | @mixin large(){ 37 | @media screen and (min-width: $medium-break) { 38 | @content; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /client/views/nav/mobile_nav.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('mobile_nav')].helpers({ 2 | mobileNav: function () { 3 | return _.sortBy(mobileNav, 'order'); 4 | }, 5 | logoTemplate: function () { 6 | return getTemplate('logo'); 7 | }, 8 | getTemplate: function () { 9 | return getTemplate(this.template); 10 | }, 11 | mobileContext: function () { 12 | return {mobile: true}; 13 | } 14 | }); 15 | 16 | Template[getTemplate('mobile_nav')].events({ 17 | 'click .menu-sub-level': function () { 18 | $('body').toggleClass('mobile-nav-open'); 19 | } 20 | }); 21 | 22 | Template[getTemplate('mobile_nav')].events({ 23 | 'click .menu-top-level': function (e) { 24 | e.preventDefault(); 25 | $(e.currentTarget).next().slideToggle('fast'); 26 | }, 27 | 'click .mobile-nav a': function (e) { 28 | if (e.target.className.indexOf('menu-top-level') == -1){ 29 | $('body').removeClass('mobile-nav-open'); 30 | } 31 | } 32 | }); -------------------------------------------------------------------------------- /packages/telescope-theme-hubble/lib/client/scss/modules/_banners.scss: -------------------------------------------------------------------------------- 1 | .banner.banner{ 2 | background: rgba(255,255,255,0.7); 3 | margin-bottom: 10px; 4 | padding: 20px; 5 | position: relative; 6 | overflow: hidden; 7 | } 8 | 9 | .banner-heading{ 10 | border-bottom: 1px solid $grey; 11 | font-weight: bold; 12 | color: $medium-text; 13 | padding-bottom: 10px; 14 | margin-bottom: 10px; 15 | } 16 | 17 | .banner-dismiss, .banner-dismiss:link, .banner-dismiss:visited{ 18 | display: block; 19 | position: absolute; 20 | height: 30px; 21 | width: 30px; 22 | border-radius: 100%; 23 | background: rgba(0,0,0,0.15); 24 | color: white; 25 | top: 50%; 26 | margin-top: -15px; 27 | right: 20px; 28 | font-size: 24px; 29 | text-align: center; 30 | vertical-align: middle; 31 | line-height: 32px; 32 | @include small{ 33 | top: 10px; 34 | right: 10px; 35 | margin-top: 0px; 36 | } 37 | } 38 | .banner-dismiss:hover{ 39 | color: inherit; 40 | } -------------------------------------------------------------------------------- /collections/events.js: -------------------------------------------------------------------------------- 1 | var eventSchema = new SimpleSchema({ 2 | createdAt: { 3 | type: Date 4 | }, 5 | name: { 6 | type: String 7 | }, 8 | description: { 9 | type: String, 10 | optional: true 11 | }, 12 | unique: { 13 | type: Boolean, 14 | optional: true 15 | }, 16 | important: { // marking an event as important means it should never be erased 17 | type: Boolean, 18 | optional: true 19 | }, 20 | properties: { 21 | type: Object, 22 | optional: true, 23 | blackbox: true 24 | } 25 | }); 26 | 27 | 28 | Events = new Meteor.Collection('events'); 29 | Events.attachSchema(eventSchema); 30 | 31 | if (Meteor.isServer) { 32 | logEvent = function (event) { 33 | 34 | // if event is supposed to be unique, check if it has already been logged 35 | if (!!event.unique && !!Events.findOne({name: event.name})) { 36 | return 37 | } 38 | 39 | event.createdAt = new Date(); 40 | 41 | Events.insert(event); 42 | 43 | } 44 | } -------------------------------------------------------------------------------- /packages/telescope-tags/lib/client/templates/categories_menu.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('categoriesMenu')].helpers({ 3 | menuItems: function () { 4 | var defaultItem = [{ 5 | route: 'posts_default', 6 | label: 'all_categories', 7 | itemClass: 'item-never-active' 8 | }]; 9 | var menuItems = _.map(Categories.find({}, {sort: {order: 1, name: 1}}).fetch(), function (category) { 10 | return { 11 | route: function () { 12 | return getCategoryUrl(category.slug); 13 | }, 14 | label: category.name 15 | } 16 | }); 17 | return defaultItem.concat(menuItems); 18 | }, 19 | menuMode: function () { 20 | if (!!this.mobile) { 21 | return 'list'; 22 | } else if (Settings.get('navLayout', 'top-nav') === 'top-nav') { 23 | return 'dropdown'; 24 | } else { 25 | return 'accordion'; 26 | } 27 | } 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /client/views/comments/comment_edit.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('comment_edit')].events({ 2 | 'click input[type=submit]': function(e, instance){ 3 | var comment = this; 4 | var content = instance.$('#body').val(); 5 | 6 | e.preventDefault(); 7 | 8 | if(!Meteor.user()) 9 | throw i18n.t('you_must_be_logged_in'); 10 | 11 | Comments.update(comment._id, { 12 | $set: { 13 | body: content 14 | } 15 | }); 16 | 17 | trackEvent("edit comment", {'postId': comment.postId, 'commentId': comment._id}); 18 | Router.go('post_page_comment', {_id: comment.postId, commentId: comment._id}); 19 | }, 20 | 'click .delete-link': function(e){ 21 | var comment = this; 22 | 23 | e.preventDefault(); 24 | 25 | if(confirm(i18n.t("are_you_sure"))){ 26 | Meteor.call('removeComment', comment._id); 27 | Router.go('post_page', {_id: comment.postId}); 28 | Messages.flash("Your comment has been deleted.", "success"); 29 | } 30 | } 31 | }); 32 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/lib/server/templates/emailPostItem.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | {{#if thumbnailUrl}} 6 |   7 | {{/if}} 8 | 9 | {{title}} 10 | 11 | 12 |
13 | {{#if domain}} 14 | {{domain}} 15 | | 16 | {{/if}} 17 | 18 | 19 | | 20 | {{commentCount}} Comments 21 |
22 | 23 | 24 | {{#if body}} 25 |
26 | {{{htmlBody}}} 27 | Read more 28 |
29 | {{/if}} 30 | 31 | 32 |
33 |
34 | 35 | -------------------------------------------------------------------------------- /packages/telescope-newsletter/lib/server/templates/emailDigest.handlebars: -------------------------------------------------------------------------------- 1 | 40 | 41 | Recently on {{siteName}} 42 | – {{date}} 43 |

44 | 45 |
46 | {{{content}}} 47 |
48 |
-------------------------------------------------------------------------------- /client/views/posts/post_item.js: -------------------------------------------------------------------------------- 1 | var post = {}; 2 | 3 | Template[getTemplate('post_item')].created = function () { 4 | post = this.data; 5 | }; 6 | 7 | Template[getTemplate('post_item')].helpers({ 8 | postModules: function () { 9 | return postModules; 10 | }, 11 | getTemplate: function () { 12 | return getTemplate(this.template); 13 | }, 14 | moduleContext: function () { // not used for now 15 | var module = this; 16 | module.templateClass = camelToDash(this.template) + ' ' + this.position + ' cell'; 17 | module.post = post; 18 | return module; 19 | }, 20 | moduleClass: function () { 21 | return camelToDash(this.template) + ' post-module'; 22 | }, 23 | postClass: function () { 24 | var post = this; 25 | var postAuthorClass = "author-"+post.author; 26 | 27 | var postClass = postClassCallbacks.reduce(function(result, currentFunction) { 28 | return currentFunction(post, result); 29 | }, postAuthorClass); 30 | 31 | return postClass; 32 | } 33 | }); 34 | -------------------------------------------------------------------------------- /client/views/users/profile/user_posts.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/telescope-base/lib/icons.js: -------------------------------------------------------------------------------- 1 | // ------------------------------ Dynamic Icons ------------------------------ // 2 | 3 | // take an icon name (such as "open") and return the HTML code to display the icon 4 | getIcon = function (iconName, iconClass) { 5 | var iconCode = !!icons[iconName] ? icons[iconName] : iconName; 6 | var iconClass = (typeof iconClass === 'string') ? ' '+iconClass : ''; 7 | return ''; 8 | } 9 | 10 | icons = { 11 | open: "plus", 12 | close: "minus", 13 | upvote: "chevron-up", 14 | voted: "check", 15 | downvote: "chevron-down", 16 | facebook: "facebook-square", 17 | twitter: "twitter", 18 | googleplus: "google-plus", 19 | linkedin: "linkedin-square", 20 | comment: "comment-o", 21 | share: "share-square-o", 22 | more: "ellipsis-h", 23 | menu: "bars", 24 | subscribe: "envelope-o", 25 | delete: "trash-o", 26 | edit: "pencil", 27 | popularity: "fire", 28 | time: "clock-o", 29 | best: "star", 30 | search: "search" 31 | } -------------------------------------------------------------------------------- /client/views/users/dashboard/users_list_actions.js: -------------------------------------------------------------------------------- 1 | Template[getTemplate('users_list_actions')].helpers({ 2 | isInvited: function() { 3 | return this.isInvited; 4 | }, 5 | userIsAdmin: function(){ 6 | return isAdmin(this); 7 | }, 8 | }); 9 | 10 | Template[getTemplate('users_list_actions')].events({ 11 | 'click .invite-link': function(e){ 12 | e.preventDefault(); 13 | Meteor.call('inviteUser', { userId : this._id }); 14 | }, 15 | 'click .uninvite-link': function(e){ 16 | e.preventDefault(); 17 | Meteor.users.update(this._id,{ 18 | $set:{ 19 | isInvited: false 20 | } 21 | }); 22 | }, 23 | 'click .admin-link': function(e){ 24 | e.preventDefault(); 25 | updateAdmin(this._id, true); 26 | }, 27 | 'click .unadmin-link': function(e){ 28 | e.preventDefault(); 29 | updateAdmin(this._id, false); 30 | }, 31 | 'click .delete-link': function(e){ 32 | e.preventDefault(); 33 | if(confirm(i18n.t("are_you_sure_you_want_to_delete")+getDisplayName(this)+"?")) 34 | Meteor.users.remove(this._id); 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /packages/telescope-daily/lib/client/templates/posts_daily.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | 3 | Template[getTemplate('postsDaily')].helpers({ 4 | days: function () { 5 | var daysArray = []; 6 | // var days = this.days; 7 | var days = Session.get('postsDays'); 8 | for (i = 0; i < days; i++) { 9 | daysArray.push({ 10 | date: moment().subtract(i, 'days').startOf('day').toDate(), 11 | index: i 12 | }); 13 | } 14 | return daysArray; 15 | }, 16 | before_day: function () { 17 | return getTemplate('beforeDay'); 18 | }, 19 | singleDay: function () { 20 | return getTemplate('singleDay'); 21 | }, 22 | context: function () { 23 | var context = this; 24 | context.showDateNav = false; 25 | return context; 26 | }, 27 | after_day: function () { 28 | return getTemplate('afterDay'); 29 | }, 30 | loadMoreDaysUrl: function () { 31 | var count = parseInt(Session.get('postsDays')) + daysPerPage; 32 | return '/daily/' + count; 33 | } 34 | }); 35 | 36 | }); 37 | -------------------------------------------------------------------------------- /packages/telescope-search/lib/client/templates/search_logs.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | Template[getTemplate('searchLogs')].helpers({ 3 | getTime: function () { 4 | return moment(this.timestamp).format("HH:mm:ss"); 5 | }, 6 | getDate: function () { 7 | currentDate = moment(this.timestamp).format("MMMM DD"); 8 | return currentDate; 9 | }, 10 | searchCount: function () { 11 | // TODO: doesn't work properly with "load more" 12 | var after = moment(this.timestamp).startOf('day').valueOf(), 13 | before = moment(this.timestamp).endOf('day').valueOf(); 14 | 15 | return Searches.find({ 16 | timestamp: { 17 | $gte: after, 18 | $lt: before 19 | } 20 | }).count(); 21 | }, 22 | isNewDate: function () { 23 | return (typeof currentDate === 'undefined') ? true : (currentDate !== moment(this.timestamp).format("MMMM DD")); 24 | }, 25 | loadMoreUrl: function() { 26 | var count = parseInt(Session.get('logsLimit')) + 100; 27 | return '/logs/' + count; 28 | }, 29 | }); 30 | }); -------------------------------------------------------------------------------- /packages/telescope-getting-started/content/deploying_telescope.md: -------------------------------------------------------------------------------- 1 | ### Quick Deploy 2 | 3 | Once you've played around with Telescope, you might want to deploy your app for the whole world to see. 4 | 5 | You can do so easily using Meteor's own free hosting service. Just open a terminal window, go to your Telescope app's directory, and type: 6 | 7 | ``` 8 | meteor deploy my-app 9 | ``` 10 | 11 | Where `my-app` is a unique name you'll pick for your Telescope app. It will then be deployed to `http://my-app.meteor.com`. 12 | 13 | You might need to create a Meteor account first. Just follow the instructions! 14 | 15 | Note that deploying does *not* copy over your database, which contains your posts and settings. So you'll need to configure them separately on your remote Telescope instance. 16 | 17 | ### Deploying For Production 18 | 19 | Hosting on `*.meteor.com` is fine for small apps and prototypes, but if you want to deploy your app in production you'll need something better. 20 | 21 | Check out [the Telescope documentation](http://www.telesc.pe/docs/getting-started/deploying/) to learn more about this topic. --------------------------------------------------------------------------------