├── 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 |
2 |
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 |
2 |
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 |
2 |
3 |
--------------------------------------------------------------------------------
/client/views/posts/before_post_item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
2 | Custom Template
3 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{>spinner}}
4 |
5 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if canView}}
3 | {{> menuComponent viewsMenuData}}
4 | {{/if}}
5 |
--------------------------------------------------------------------------------
/client/views/users/dashboard/users_list_avatar.html:
--------------------------------------------------------------------------------
1 |
2 | {{> avatar user=this shape="circle"}}
3 |
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 |
2 | {{#if url}}{{domain}} {{/if}}
3 |
--------------------------------------------------------------------------------
/client/views/posts/post_body.html:
--------------------------------------------------------------------------------
1 |
2 | {{{htmlBody}}}
3 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
2 | {{profile.email}}
3 |
4 |
--------------------------------------------------------------------------------
/client/views/users/dashboard/users_list_username.html:
--------------------------------------------------------------------------------
1 |
2 | {{username}}
3 |
4 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_author.html:
--------------------------------------------------------------------------------
1 |
2 | {{displayName userId}}
3 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_rank.html:
--------------------------------------------------------------------------------
1 |
2 | {{oneBasedRank}}
3 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_title.html:
--------------------------------------------------------------------------------
1 |
2 | {{title}}
3 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
2 | {{title}}
3 |
4 |
--------------------------------------------------------------------------------
/client/views/users/sign_out.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{_ "you_ve_been_signed_out"}}
4 |
5 |
--------------------------------------------------------------------------------
/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 |
2 | {{#each messages}}
3 | {{> UI.dynamic template=message_item}}
4 | {{/each}}
5 |
--------------------------------------------------------------------------------
/client/views/posts/post_list_top.html:
--------------------------------------------------------------------------------
1 |
2 | {{#each postListTopModules}}
3 | {{> Template.dynamic template=getTemplate}}
4 | {{/each}}
5 |
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 |
2 | {{#if isAdmin}}
3 | {{> menuComponent menuName="admin" menuMode="list" menuItems=adminMenuItems}}
4 | {{/if}}
5 |
--------------------------------------------------------------------------------
/client/views/errors/already_logged_in.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{_ "you_are_already_logged_in"}}
4 |
5 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_actions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{{icon "more" "icon-circle"}}}
4 |
5 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{_ "sorry_you_dont_have_the_rights_to_view_this_page"}}
4 |
5 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if canPost}}
3 |
4 | {{/if}}
5 |
--------------------------------------------------------------------------------
/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 |
2 |
5 |
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 |
2 | {{#with user}}
3 | {{#each userProfileEdit}}
4 | {{> UI.dynamic template=getTemplate data=..}}
5 | {{/each}}
6 | {{/with}}
7 |
8 |
--------------------------------------------------------------------------------
/client/views/users/user_profile.html:
--------------------------------------------------------------------------------
1 |
2 | {{#with user}}
3 | {{#each userProfileDisplay}}
4 | {{> UI.dynamic template=getTemplate data=..}}
5 | {{/each}}
6 | {{/with}}
7 |
8 |
--------------------------------------------------------------------------------
/packages/telescope-blank/lib/client/templates/customPostTitle.html:
--------------------------------------------------------------------------------
1 |
2 | This is a custom postTitle template
3 |
--------------------------------------------------------------------------------
/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 |
2 | {{> menuComponent menuName="categories" menuItems=menuItems menuClass="header-submodule" menuMode=menuMode}}
3 |
--------------------------------------------------------------------------------
/client/main.html:
--------------------------------------------------------------------------------
1 |
2 | Loading...
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/client/views/users/dashboard/users_list_created_at.html:
--------------------------------------------------------------------------------
1 |
2 | {{formatDate createdAt 'LL'}}
3 | {{timeAgo createdAt}}
4 |
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 |
2 |
3 |
{{_ "not_found"}}
4 |
{{_ "were_sorry_whatever_you_were_looking_for_isnt_here"}}
5 |
6 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if showTaglineBanner}}
3 | {{getSetting "tagline"}}
4 | {{/if}}
5 |
--------------------------------------------------------------------------------
/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 |
2 | {{#each categoriesArray}}
3 | {{name}}
4 | {{/each}}
5 |
--------------------------------------------------------------------------------
/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 |
2 | All Users
3 |
4 | {{> reactiveTable settings=settings}}
5 |
6 |
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 |
2 | {{title}}
3 |
4 | {{#markdown}}{{content}}{{/markdown}}
5 |
6 |
--------------------------------------------------------------------------------
/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 |
2 | {{_ "mark_as_read"}}
3 |
--------------------------------------------------------------------------------
/client/views/posts/post_views_nav.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if showNav}}
3 |
4 | {{> menuComponent menuName="view" menuItems=menuItems mode="list"}}
5 |
6 | {{/if}}
7 |
--------------------------------------------------------------------------------
/packages/telescope-singleday/lib/client/templates/single_day.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if showDateNav}}
3 | {{> Template.dynamic template=singleDayNav}}
4 | {{/if}}
5 | {{> Template.dynamic template=posts_list data=context}}
6 |
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 |
2 | {{#if show}}
3 |
4 |
5 | {{message}}
6 |
7 |
8 | {{/if}}
9 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{_ "your_post"}}
4 | {{postTitle}}
5 | {{_ "has_been_approved"}}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/crunchhunt/lib/client/templates/custom_post_shares.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{#if shares}}{{shares}}{{else}}n/a{{/if}}
4 |
Shares
5 |
6 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if hasPages}}
3 |
8 | {{/if}}
9 |
--------------------------------------------------------------------------------
/client/views/admin/admin_wrapper.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{> Template.dynamic template=adminMenu}}
4 |
5 | {{> Template.dynamic template=contents data=this}}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/views/errors/no_invite.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{_ "thanks_for_signing_up"}}
4 | {{afterSignupText}}
5 |
{{_ "the_site_is_currently_invite_only_but_we_will_let_you_know_as_soon_as_a_spot_opens_up"}}
6 |
7 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
4 | {{> quickForm collection="Posts" id="submitPostForm" template="telescope" label-class="control-label" input-col-class="controls" type="method" meteormethod="submitPost"}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if footerCode}}
3 |
6 | {{/if}}
7 | {{#each footerModules}}
8 | {{> UI.dynamic template=getTemplate}}
9 | {{/each}}
10 |
--------------------------------------------------------------------------------
/packages/telescope-notifications/lib/client/templates/notifications_menu.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if isLoggedIn}}
3 | {{> menuComponent menuName="notifications" menuLabel=menuLabel menuItems=menuItems menuClass="header-submodule" menuMode=menuMode menuCollapsed=true}}
4 | {{/if}}
5 |
--------------------------------------------------------------------------------
/packages/telescope-notifications/lib/client/templates/notification_new_comment.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{author}}
4 | {{_ "left_a_new_comment_on"}}
5 | {{postTitle}}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/telescope-notifications/lib/client/templates/notification_new_reply.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{author}}
4 | {{_ "has_replied_to_your_comment_on"}}
5 | {{postTitle}}
6 |
7 |
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 |
2 | {{#if canSearch}}
3 |
6 | {{/if}}
7 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_discuss.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/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 |
2 | {{#with media}}
3 |
4 |
×
5 |
6 | {{{html}}}
7 |
8 |
9 | {{/with}}
10 |
--------------------------------------------------------------------------------
/packages/telescope-post-by-feed/lib/client/templates/feed_item.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/client/views/nav/logo.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if logo_url}}
3 |
8 | {{else}}
9 |
10 | {{/if}}
11 |
--------------------------------------------------------------------------------
/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 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/client/views/comments/comment_list.html:
--------------------------------------------------------------------------------
1 |
2 |
7 | {{#each threadModules}}
8 | {{> UI.dynamic template=getTemplate data=..}}
9 | {{/each}}
10 |
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 |
2 |
3 | {{#each postModules}}
4 |
5 | {{> UI.dynamic template=getTemplate data=..}}
6 |
7 | {{/each}}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/telescope-pages/lib/client/templates/page_item.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
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 |
2 |
3 | {{timeAgo timestamp}}
4 |
5 | {{{notificationHTML}}}
6 |
7 |
8 |
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 |
2 |
3 |
{{_ "sorry_this_is_a_private_site_please_sign_up_first"}}
4 | {{landingPageText}}
5 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{#if postedAt}}
{{timeAgo postedAt}} {{/if}}
4 | {{#if canEdit this}}
5 | |
{{_ "edit"}}
6 | {{/if}}
7 |
8 |
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 |
2 |
13 |
--------------------------------------------------------------------------------
/client/views/posts/post_page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> UI.dynamic template=post_item}}
5 |
6 | {{#if body}}
7 | {{> UI.dynamic template=post_body}}
8 | {{/if}}
9 | {{> UI.dynamic template=comment_form}}
10 | {{> UI.dynamic template=comment_list}}
11 |
12 |
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 |
2 |
3 |
Add new feed:
4 | {{> quickForm collection="Feeds" id="insertFeedForm" type="insert" label-class="control-label" input-col-class="controls" template="telescope"}}
5 |
6 | {{#each feeds}}
7 | {{> UI.dynamic template=feedItem}}
8 | {{/each}}
9 |
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 |
2 | {{#if firstFourCommenters}}
3 |
10 | {{/if}}
11 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
Add new page:
4 | {{> quickForm collection="Pages.collection" id="insertPageForm" type="insert" label-class="control-label" input-col-class="controls" template="bootstrap-horizontal"}}
5 |
6 | {{#each pages}}
7 | {{> UI.dynamic template=pageItem}}
8 | {{/each}}
9 |
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 |
2 |
3 |
4 | {{> quickForm collection="Posts" doc=post id="editPostForm" template="telescope" label-class="control-label" input-col-class="controls" type="method-update" meteormethod="editPost"}}
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/telescope-tags/lib/client/templates/categories.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Add new category:
4 | {{> quickForm collection="Categories" id="insertCategoryForm" type="insert" label-class="control-label" input-col-class="controls" template="telescope"}}
5 |
6 | {{#each categories}}
7 | {{> UI.dynamic template=categoryItem}}
8 | {{/each}}
9 |
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 |
2 | {{#if isLoggedIn}}
3 | {{> menuComponent menuName="user" menuLabel=menuLabel menuItems=menuItems menuClass="header-submodule" menuMode=menuMode menuCollapsed=true}}
4 | {{else}}
5 | {{_ "sign_up"}}
6 | {{_ "sign_in"}}
7 | {{/if}}
8 |
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 |
2 | {{#with currentRelease}}
3 |
4 |
{{_ "telescope_has_been_updated"}}
5 |
6 | {{#markdown}}{{notes}}{{/markdown}}
7 |
8 |
×
9 |
10 | {{/with}}
11 |
--------------------------------------------------------------------------------
/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 |
2 |
13 |
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 |
2 |
3 |
{{baseScore}}
4 |
{{pointsUnitDisplayText}}
5 | {{#if postedAt}}
{{timeAgo postedAt}} {{/if}}
6 | {{#if canEdit this}}
7 | |
{{_ "edit"}}
8 | {{/if}}
9 |
10 |
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 |
2 | {{#if upvoted}}
3 |
4 | {{{icon "voted" "icon-circle"}}}
5 | {{_ "upvoted"}}
6 |
7 | {{else}}
8 |
9 | {{{icon "upvote" "icon-circle"}}}
10 | {{_ "upvote_"}}
11 |
12 | {{/if}}
13 |
--------------------------------------------------------------------------------
/packages/telescope-settings/lib/client/templates/settings_form.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if this.hasSettings}}
3 | {{> quickForm collection="Settings.collection" id="updateSettingsForm" type="update" doc=this.settings label-class="control-label" input-col-class="controls" template="telescope"}}
4 | {{else}}
5 | {{> quickForm collection="Settings.collection" id="insertSettingsForm" type="insert" template="telescope" label-class="control-label" input-col-class="controls"}}
6 | {{/if}}
7 |
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 |
2 | {{#if isAdmin}}
3 |
4 | {{#if showApprove}}
5 | |
{{_ "approve"}}
6 | {{/if}}
7 | {{#if showUnapprove}}
8 | |
{{_ "unapprove"}}
9 | {{/if}}
10 | | {{_ "score"}}: {{shortScore}}, {{_ "clicks"}}: {{clickCount}}, {{_ "views"}}: {{viewCount}}
11 |
12 | {{/if}}
13 |
14 |
--------------------------------------------------------------------------------
/packages/telescope-subscribe-to-posts/lib/client/templates/post_subscribe.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if canSubscribe}}
3 |
14 | {{/if}}
15 |
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 |
2 | {{#each postThumbnail}}
3 | {{> UI.dynamic template=getTemplate data=..}}
4 | {{/each}}
5 |
6 |
7 | {{#each postHeading}}
8 | {{> UI.dynamic template=getTemplate data=..}}
9 | {{/each}}
10 |
11 |
12 | {{#each postMeta}}
13 | {{> UI.dynamic template=getTemplate data=..}}
14 | {{/each}}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/telescope-daily/lib/client/templates/posts_daily.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#each days}}
4 | {{> Template.dynamic template=before_day}}
5 |
{{formatDate date "dddd, MMMM Do YYYY"}}
6 |
7 | {{> Template.dynamic template=singleDay data=context}}
8 |
9 | {{> Template.dynamic template=after_day}}
10 | {{/each}}
11 |
{{_ "load_next_days"}}
12 |
13 |
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 |
2 | {{#if thumbnailUrl}}
3 |
4 |
5 |
6 |
7 |
8 | {{else}}
9 |
10 | {{/if}}
11 | {{#if media}}
12 | {{> UI.dynamic template=videoTemplate data=this}}
13 | {{/if}}
14 |
--------------------------------------------------------------------------------
/client/views/posts/modules/post_avatars.html:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if canComment}}
3 |
13 | {{else}}
14 | {{reason}}
15 | {{/if}}
16 |
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 |
2 |
21 |
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 |
2 |
25 |
26 |
--------------------------------------------------------------------------------
/client/views/comments/comment_edit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#with comment}}
4 |
14 | {{/with}}
15 |
16 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{> UI.dynamic template=css}}
4 |
5 | {{> UI.dynamic template=mobile_nav}}
6 |
7 | {{> UI.dynamic template=nav}}
8 |
9 | {{> UI.dynamic template=messages}}
10 | {{#each heroModules}}
11 | {{> UI.dynamic template=getTemplate}}
12 | {{/each}}
13 | {{> yield "adminMenu"}}
14 | {{> yield "postListTop"}}
15 | {{> yield}}
16 | {{> UI.dynamic template=footer}}
17 |
18 |
19 |
20 | {{{extraCode}}}
21 |
22 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if embedlyKeyExists}}
3 |
4 |
5 |
{{>spinner}}
6 |
7 |
8 | {{_ 'regenerate_thumbnail'}}
9 | {{_ 'clear_thumbnail'}}
10 | {{else}}
11 | {{#if isAdmin}}
12 | {{_ "please_fill_in_embedly_key"}}
13 | {{else}}
14 | {{_ "please_ask_your_admin_to_fill_in_embedly_key"}}
15 | {{/if}}
16 | {{/if}}
17 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
{{_ "upvoted_posts"}}
4 |
5 |
6 |
7 | Post
8 | Upvoted At
9 |
10 |
11 | {{#each posts}}
12 |
13 | {{title}}
14 | {{formatDate votedAt "MM/DD/YYYY, HH:mm"}}
15 |
16 | {{/each}}
17 | {{#if hasMorePosts}}
18 |
19 |
20 | {{_ "load_more"}}
21 |
22 |
23 | {{/if}}
24 |
25 |
26 |
--------------------------------------------------------------------------------
/packages/telescope-update-prompt/lib/client/templates/update_banner.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if showBanner}}
3 |
4 |
{{version}}
5 |
6 |
A new version of Telescope is available.
7 |
8 | You have: {{currentVersion}}. Note: this message is only displayed to admins.
9 | View changelog |
10 | View update instructions
11 |
12 |
13 |
14 | {{/if}}
15 |
--------------------------------------------------------------------------------
/client/views/nav/nav.html:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
--------------------------------------------------------------------------------
/client/views/users/profile/user_downvoted_posts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{_ "downvoted_posts"}}
4 |
5 |
6 |
7 | Post
8 | Downvoted At
9 |
10 |
11 | {{#each posts}}
12 |
13 | {{title}}
14 | {{formatDate votedAt "MM/DD/YYYY, HH:mm"}}
15 |
16 | {{/each}}
17 | {{#if hasMorePosts}}
18 |
19 |
20 | {{_ "load_more"}}
21 |
22 |
23 | {{/if}}
24 |
25 |
26 |
--------------------------------------------------------------------------------
/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 |
2 | {{#if showBanner}}
3 |
4 |
11 |
{{_ "thanks_for_subscribing"}}
12 |
×
13 |
14 | {{/if}}
15 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
{{_ "subscribed_posts"}}
4 |
5 |
6 |
7 | Post
8 | Subscribed At
9 |
10 |
11 | {{#each posts}}
12 |
13 | {{title}}
14 | {{formatDate subscribedAt "MM/DD/YYYY, HH:mm"}}
15 |
16 | {{/each}}
17 | {{#if hasMorePosts}}
18 |
19 |
20 | {{_ "load_more"}}
21 |
22 |
23 | {{/if}}
24 |
25 |
26 |
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 |
2 |
28 |
--------------------------------------------------------------------------------
/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 |
2 |
29 |
30 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | {{#with user}}
4 |
5 | {{_ "please_fill_in_your_email_below_to_finish_signing_up"}}
6 |
7 |
23 | {{/with}}
24 |
25 |
--------------------------------------------------------------------------------
/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 |
2 | Search Logs
3 |
4 |
5 |
6 | Keyword
7 | Timestamp
8 |
9 |
10 |
11 | {{#each this}}
12 | {{#if isNewDate}}
13 |
19 | {{/if}}
20 |
21 | {{keyword}}
22 | {{getTime}}
23 |
24 | {{/each}}
25 |
26 |
27 |
30 |
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 |
2 |
3 | {{{icon "share"}}}
4 |
5 |
11 |
--------------------------------------------------------------------------------
/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 |
Submitted by
18 |
on {{date}}
19 | |
20 |
21 |
22 |
23 |
24 | {{#if body}}
25 |
26 | {{{htmlBody}}}
27 |
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 |
2 |
3 |
{{_ "posts"}}
4 |
5 |
6 |
7 | Post
8 | Created At
9 |
10 |
11 | {{#each posts}}
12 |
13 | {{title}}
14 | {{formatDate createdAt "MM/DD/YYYY, HH:mm"}}
15 |
16 | {{/each}}
17 | {{#if isReady}}
18 | {{#if hasMorePosts}}
19 |
20 |
21 | {{_ "load_more"}}
22 |
23 |
24 | {{/if}}
25 | {{else}}
26 |
27 |
28 |
29 | {{>spinner}}
30 |
31 |
32 |
33 | {{/if}}
34 |
35 |
36 |
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------