Skip to content

Instantly share code, notes, and snippets.

@roman-manchenko
Created January 27, 2016 18:06
Show Gist options
  • Save roman-manchenko/062d5a0034abab0f540c to your computer and use it in GitHub Desktop.
Save roman-manchenko/062d5a0034abab0f540c to your computer and use it in GitHub Desktop.
define(function (require) {
/* Detail of where was triggered the river event*/
var _ = require('underscore'),
SIDEBAR_RIVER_TYPE_OF_POST = {
'sidebar_river_post_publish': 'sidebar_river_post_publish',
'sidebar_river_post_community_comment': 'sidebar_river_post_community_comment',
'sidebar_river_user_follows': 'sidebar_river_user_follows',
'sidebar_river_user_followed': 'sidebar_river_user_followed',
'sidebar_river_post_featured': 'sidebar_river_post_featured',
'sidebar_river_post_edit': 'sidebar_river_post_edit',
'sidebar_river_post_liked': 'sidebar_river_post_liked',
'sidebar_river_fb_friend_joined': 'sidebar_river_fb_friend_joined',
'sidebar_river_tw_friend_joined': 'sidebar_river_tw_friend_joined',
'sidebar_river_post_private_comment': 'sidebar_river_post_private_comment',
'sidebar_river_section_followed': 'sidebar_river_section_followed',
'sidebar_river_workflow_stage_updated': 'sidebar_river_workflow_stage_updated'
},
RIVER_TYPE_OF_POST = {
'river_post_publish': 'river_post_publish',
'river_post_community_comment': 'river_post_community_comment',
'river_your_post_community_comment': 'river_your_post_community_comment',
'river_post_trending': 'river_post_trending',
'river_user_follows': 'river_user_follows',
'river_user_followed': 'river_user_followed',
'river_post_featured': 'river_post_featured',
'river_post_edit': 'river_post_edit',
'river_post_liked': 'river_post_liked',
'river_fb_friend_joined': 'river_fb_friend_joined',
'river_tw_friend_joined': 'river_tw_friend_joined',
'river_post_private_comment': 'river_post_private_comment',
'river_section_followed': 'river_section_followed',
'river_workflow_stage_updated': 'river_workflow_stage_updated',
'river_user_mentioned': 'river_user_mentioned'
},
RUNNER = {
'runner_social_networks': ['Facebook', 'Twitter', 'Instagram', 'Pinterest']
};
return {
/* Tracking actions are used for tracking events to Google Analytics and
* other providers.
*
* They are organized by category and then by action. For example, the
* tracking action: TRACKING_ACTIONS.share_buttons.click maps to an event
* with category "Share Buttons", action "Click".
* This category and action are then tracked to Google Analytics and other
* providers.
*
* Define actions here so that we have a central place where we know the
* events we track. See libs/backbone/plugins/stats_tracking.js for
* how to trigger tracking of an action.
*/
TRACKING_ACTIONS: {
'visit': {
'welcome': 'Welcome',
'congratulations': 'Congratulations'
},
'links': {
'click_out': 'Click Out',
'click_in': 'Click In',
'click_join_on_embed': 'Join RM on Embeds', // from bottom of page promo
'click_share_on_embed': 'Share RM on Embeds', // from bottom Share menu
'click_share_on_powered_embed': 'Share RM on Powered Embeds', // from bottom Powered Share menu
/* From top login bar: */
'log_in_facebook': 'Log In Facebook',
'log_in_twitter': 'Log In Twitter',
'log_in_google': 'Log In Google',
'download_android_app': 'Download Android App',
'download_ios_app': 'Download iOs App',
'click_frontpage': 'Click Frontpage'
},
'share_buttons': { // social share buttons of the site
'click_top_header': 'Click Top Header',
'click_left_menu': 'Click Left Menu',
'facebook_desktop': 'Click Facebook share on desktop',
'facebook_mobile': 'Click Facebook share on mobile',
'email_desktop': 'Click Email share on desktop',
'email_mobile': 'Click Email share on mobile',
'pinterest_desktop': 'Click Pinterest share on desktop',
'pinterest_mobile': 'Click Pinterest share on mobile',
'twitter_desktop': 'Click Twitter share on desktop',
'twitter_mobile': 'Click Twitter share on mobile'
},
'topbar_buttons': {
'click_topbar': 'Click'
},
'signup': {
'completed': 'Completed'
},
'signup_buttons': {
'click': 'Click'
},
'signup_sticky_buttons': {
'click': 'Click'
},
'free_embeds_promo': {
'click_follow_site': 'Click Follow Site',
'click_social_provider': 'Click Social Providers'
},
'signin_buttons': {
'click': 'Click'
},
'share': { // shares for post
'click_congratulation': 'Shared in Congratulation',
'click_post': 'Shared from Permalink',
'click_post_frontpage': 'Shared on Frontpage',
'click_post_petition': 'Shared on Petition',
'click_post_hover_image': 'Shared on hover',
'click_post_draft': 'Shared on Draft'
},
'share_site': {
'click_top_mobile_share': 'Clicked on Share button in header',
'click_bottom_mobile_share': 'Clicked on Share button in fixed footer'
},
'power_site': {
'screen1': 'Open Lightbox',
'done': 'Completed Powering Site',
'confirmation': 'Reached Confirmation'
},
'post': {
'click_add': 'Saved on Add post',
'click_edit': 'Saved on Edit post',
'click_restick': 'Saved on Repost',
'click_save_draft': 'Saved on Draft',
'click_bookmarklet': 'Saved on Bookmarklet'
},
'app_banner': {
'click_android': 'Clicked on view on Google Play',
'click_ios': 'Clicked on view on Apple Store'
},
'wix': {
'component_deleted': 'Component deleted'
},
'slideshow': {
'next': 'Next slide in slideshow',
'prev': 'Previous slide in slideshow',
'goto': 'Skip to specific slide in slideshow'
},
'hamburger_menu': {
'open': 'Hamburger menu opened',
'close': 'Hamburger menu closed'
},
'selection_sharer': {
'twitter': 'Twitter clicked in selection sharer',
'email': 'Email clicked in selection sharer'
},
'follow_social_network': {
'click_facebook_top_article': 'Clicked FB like button above article',
'click_facebook_bottom_article': 'Clicked FB like button below article',
'click_facebook_like_navigation': 'Clicked FB like button in navigation',
'click_facebook_like_corner': 'Clicked FB like button in bottom right popup',
'click_facebook_like_follow_box': 'Clicked FB like button in sidebar follow box',
'click_twitter_follow_box': 'Clicked Twitter follow in sidebar follow box',
'click_pinterest_follow_box': 'Clicked Pinterest follow in sidebar follow box',
'click_facebook_home_page_desktop': 'Clicked home page facebook like on desktop',
'click_facebook_home_page_mobile': 'Clicked home page facebook like on mobile',
'click_facebook_top_desktop': 'Clicked top facebook like',
'click_facebook_top_mobile': 'Clicked top facebook like on mobile',
'click_facebook_bottom_desktop': 'Clicked bottom facebook like',
'click_facebook_bottom_mobile': 'Clicked bottom facebook like on mobile'
},
'article_module': {
'click_video_module': 'Clicked video in article module',
'click_most_read_right_rail': 'Clicked most read right rail in article module',
'click_most_read_footer': 'Clicked most read right footer in article module',
'click_post_contest_upper': 'Clicked the post-contest slot on the upper portion of the right rail',
'click_post_contest_lower': 'Clicked the post-contest slot on the footer Most Read module'
},
'signup_module': {
'click_fb': 'Clicked Facebook button in Get More module',
'click_tw': 'Clicked Twitter button in Get More module',
'click_mail': 'Clicked E-mail button in Get More module',
'click': 'Clicked text in Get More module'
},
'newsletter_signup': {
'signup_follow_box': 'Submitted signup form in Follow us box',
'signup_footer': 'Submitted signup form in footer',
'signup_mobile_footer': 'Submitted signup form in footer from mobile',
'signup_mobile_top': 'Submitted signup form on mobile, above and below article',
'top_article_signup': 'Submitted signup form above article',
'bottom_article_signup': 'Submitted signup form below article'
},
'signup_subscribe': {
'signup_popup': 'Track newsletter signup module in popup',
'signup_topright': 'Track newsletter signup module in navbar top right',
'signup_topleft': 'Track signup clicks in navbar top left beside sandwich',
'signup_sideright': 'Track newsletter signup module in right sidebar',
'signup_footer': 'Track newsletter signup module in footer'
},
'click_tag_post': {
'click_tag': 'Tag clicked on post page'
},
// river event
'like': _.extend({'permalink_post': 'permalink_post', 'frontpage': 'frontpage'}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'click_post': _.extend({
'click_postcomments_mobile': 'Click "comments" button below article on mobile',
'click_relatedtopics_mobile': 'Click "related topics" button below article on mobile'
}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'click_site': _.extend(RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'add_comment': _.extend({'permalink_post': 'permalink_post'}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'follow': _.extend({'site': 'site', 'permalink_post': 'permalink_post'}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'unfollow': _.extend({'site': 'site', 'permalink_post': 'permalink_post'}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'section_follow': _.extend(RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'section_unfollow': _.extend(RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'follow_back': _.extend(RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST),
'unlike': _.extend({'permalink_post': 'permalink_post', 'frontpage': 'frontpage'}, RIVER_TYPE_OF_POST, SIDEBAR_RIVER_TYPE_OF_POST)
},
SHARE_POST_IN_EMBED_DIRECTLY_GET_ARG: '__rmid',
REGISTERED_FROM: {'REBELMOUSE': 0, 'WIX': 1},
TIMEOUTS: {
'NOTIFICATION_FEED': 30000
},
SITE_SUBSCRIBE: {
'button': 'Get Alerts',
'placeholder': 'Enter Email',
'message': 'Success! Look out for an email from RebelAlerts@rebelmouse.com to confirm your subscription.',
enterprise_message: 'Success! Look out for an email to confirm your subscription.'
},
SHARE_PANEL_MESSAGES: {
TWITTER: [
'Calling all Rebels! {{#users}}My @RebelMouse features {{users}}!{{/users}}{{^users}}Check out my @RebelMouse featuring the stuff I love!{{/users}} Join me at {{link}}',
'{{#one_user}}My Rebel of the Day is {{users}}{{/one_user}}{{^one_user}}My top {{users_count}} Rebels: {{users}}{{/one_user}}! Check out my @RebelMouse site and create yours. {{link}}',
'Catch some of my favorites from the web from {{users}} and share yours! {{link}}',
'Great stuff from some of my favorite people {{users}}. Take a look and join us! {{link}}',
'{{users}} are rocking my @RebelMouse! Join the party at {{link}}',
'My @RebelMouse features the awesome {{users}}. Join the fun! {{link}}',
'#RebelSpotlight: {{users}} are featured on my site. Check them out! {{link}}',
'Great new posts by {{users}} on my @RebelMouse site. Check it and join in {{link}}',
'Updates from {{users}} caught my eye. Have a look and share your favs too! {{link}}'
],
TWITTERTAGS: [
[
'Interested in {{hashtags.0}}? Check out my @RebelMouse! {{link}}',
'Interested in {{hashtags.0}}? Check out my site! {{link}}',
'I\'m sharing great {{hashtags.0}} posts on my site. Come take a look: {{link}}',
'I\'m sharing great {{hashtags.0}} content on my site. Come take a look: {{link}}',
'Posting great {{hashtags.0}} content on my site, join in! {{link}}',
'Posting great {{hashtags.0}} content on my @RebelMouse, join in! {{link}}',
'Posting great {{hashtags.0}} content on my site, come take a look! {{link}}',
'Posting great {{hashtags.0}} content on my @RebelMouse, come take a look! {{link}}'
],
[
'My @RebelMouse is full of all things {{hashtags.0}} and {{hashtags.1}}, check it out! {{link}}'
],
[
'{{hashtags_str}}; that\'s what my site is all about. {{link}}',
'Interested in {{hashtags_str}}? I feature those on this site! {{link}}',
'Need ideas on {{hashtags_str}}? Come take inspiration from my site! {{link}} ',
'Interested in {{hashtags_str}}? They\'re featured here! {{link}}',
'Like all things {{hashtags_str}}? Have a look at this site! {{link}}',
'Enjoy all things {{hashtags_str}}? You\'ll love this site! {{link}}'
]
]
},
// Show shared panel again after HIDE_PANEL_EXPIRED_TIME time passed from moment when it was closed.
HIDE_PANEL_EXPIRED_TIME: 1*24*60*60*1000, // in milliseconds (a day)
REDACTOREJS_SETTING: {
html: {
air: true
, buttonSource: true
, addMedia: false
, placeHolder: 'Start writing...'
// , pastePlainText: true
, linkSize: 2000
, airButtons: ['source', 'html', 'formatting', 'bold', 'italic', 'underline', 'deleted', 'link', 'excerpt', '|', 'unorderedlist', 'orderedlist', 'blockquote']
, allowedTags: [
'a', 'abbr', 'acronym', 'address', 'area', 'b', 'bdo', 'big', 'blockquote',
'br', 'button', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del',
'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'form', 'h1', 'h2', 'h3',
'h4', 'h5', 'h6', 'hr', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'map',
'menu', 'ol', 'optgroup', 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span',
'strike', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead',
'tr', 'tt', 'u', 'ul', 'var', 'wbr'
]
, cleanup: false
, convertDivs: false
, convertLinks: false
, convertVideoLinks: false
, observeImages: true
, plugins: ['helpers']
, formattingTags: ['p', 'h1', 'h2', 'h3', 'h4']
, buttons: ['source', 'html', 'bold', 'italic', 'underline', 'deleted', 'unorderedlist', 'orderedlist', 'link', 'excerpt', 'blockquote', 'removeformat', 'image', '|', 'source']
, syncBeforeCallback: function(html) {
return html.replace(/data-redactor-tag="[^"]*"/gi,'');
}
},
body: {
air: true
, addMedia: true
, plugins: ['helpers', 'listicle', 'captionsPlugin', 'tweaksPlugin', 'expandLinkPlugin', 'image-library', 'image-pin-description']
, formattingAdd: [
{
'tag': 'h3',
'title': 'Listicle Title',
'class': 'ol-list'
},
{
'tag': 'pre',
'title': 'Code'
},
{
'tag': 'h1',
'title': 'Header 1'
},
{
'tag': 'h2',
'title': 'Header 2'
},
{
'tag': 'h3',
'title': 'Header 3'
},
{
'tag': 'h4',
'title': 'Header 4'
},
{
'tag': 'h5',
'title': 'Header 5'
},
{
'tag': 'p',
'title': 'Caption',
'class': 'caption'
}
]
, placeHolder: 'Start writing...'
// , pastePlainText: true
, linkSize: 2000
, airButtons: ['formatting', 'bold', 'italic', 'underline', 'deleted', 'link', 'excerpt', '|', 'unorderedlist', 'orderedlist', 'blockquote']
},
subheadline: {
air: true
, addMedia: false
, plugins: ['helpers', 'tweaksPlugin']
, placeHolder: 'Add subheadline...'
, buttons: ['formatting', 'bold', 'italic', 'underline', 'deleted', 'link']
},
photo_credit: {
air: true
, addMedia: false
, plugins: ['helpers']
, placeHolder: 'Add a Photo Credit'
, buttons: ['link']
},
image_caption: {
air: true
, plugins: ['helpers']
// , placeHolder: 'Add an Image Caption'
, addMedia: false
, placeHolder: ''
, airButtons: ['bold', 'italic', 'underline', 'deleted', 'link', '|', 'unorderedlist', 'orderedlist', 'blockquote']
},
image_description: {
air: true
// , placeHolder: 'Add an Image Description'
, plugins: ['helpers']
, addMedia: false
, placeHolder: ''
, airButtons: ['bold', 'italic', 'underline', 'deleted', 'link', '|', 'unorderedlist', 'orderedlist', 'blockquote']
},
conclusion: {
air: true
// , placeHolder: 'Add a Conclusion Text'
, placeHolder: ''
, addMedia: false
, plugins: ['helpers']
// , pastePlainText: true
, linkSize: 2000
, airButtons: ['bold', 'italic', 'underline', 'deleted', 'link', '|', 'unorderedlist', 'orderedlist', 'blockquote']
}
},
SITE_MENU: {
sites: {
'id': 'sites',
'url': '/',
'title': '',
'class_name': 'site-name-item',
'order': 0,
'visibility': true,
'default': true,
'active': false,
'dropdown': true,
'history': true,
'login_required': true,
'type': 0,
'submenu': []
},
add_post: {
'id': 'addPost',
'url': '#',
'title': 'Add Post',
'order': 1,
'visibility': true,
'login_required': true,
'type': 0,
'submenu': []
},
dashboard: {
'id': 'dashboard',
'url': '/core/dashboard/',
'title': 'Dashboard',
'order': 6,
'section': true,
'show_divider': false,
'visibility': true,
'default': false,
'active': false,
'history': true,
'login_required': true,
'type': 3,
'submenu': []
},
logout: {'id': 'logout', 'url': '/core/users/logout', 'title': 'Log Out', 'order': 151, 'visibility': true, 'login_required': true, 'type': 0},
about: {'id': 'about', 'url': '/welcome/about.html', 'title': 'About', 'order': 153, 'visibility': true, 'login_required': false, 'type': 5},
customers: {'id': 'customers', 'url': 'https://www.rebelmouse.com/inspiration/', 'title': 'Customers', 'order': 154, 'visibility': true, 'login_required': false, 'type': 0},
blog: {'id': 'blog', 'url': 'http://blog.rebelmouse.com', 'title': 'Blog', 'order': 155, 'visibility': true, 'login_required': false, 'type': 0},
press: {'id': 'press', 'url': 'https://about.rebelmouse.com/press/', 'title': 'Press', 'order': 156, 'visibility': false, 'login_required': false, 'type': 0},
help: {'id': 'help', 'url': 'http://help.rebelmouse.com/', 'title': 'Help', 'order': 157, 'visibility': false, 'login_required': false, 'type': 0},
about_rebelmouse: {'id': 'about-rebelmouse', 'url': ' /welcome/about-rebelmouse.html', 'title': 'About RebelMouse', 'order': 161, 'visibility': true, 'login_required': true, 'type': 0},
contact_us: {'id': 'contact-us', 'url': '/welcome/about.html#contacts-text', 'title': 'Contact Us', 'order': 160, 'visibility': false, 'login_required': false, 'type': 5},
request_demo: {'id': 'request-demo', 'url': 'https://www.rebelcms.com/welcome/requestdemo.html#title', 'title': 'Request a Demo', 'order': 161, 'visibility': true, 'login_required': false, 'type': 5},
login: {'id': 'login', 'url': '/core/in', 'title': 'Log In', 'order': 162, 'visibility': true, 'login_required': false, 'type': 5},
product: {
'id': 'product',
'url': '#',
'title': 'Products',
'order': 150,
'section': true,
'show_divider': false,
'visibility': true,
'default': false,
'active': false,
'history': false,
'login_required': false,
'type': 3,
'submenu': [
{
'id': 'rebel_x',
'url': '/welcome/rebel-x.html',
'title': 'Rebel X',
'order': 0,
'visibility': false,
'login_required': false,
'history': false,
'type': 0
}, {
'id': 'rebel_platform',
'url': '/welcome/the-platform.html',
'title': 'The Platform',
'order': 1,
'visibility': false,
'login_required': false,
'history': false,
'type': 0
}, {
'id': 'rebel_explore',
'url': '/welcome/individuals.html',
'title': 'The Personal',
'order': 2,
'visibility': false,
'login_required': false,
'history': false,
'type': 0
},{
'id': 'rebel_runner',
'url': 'https://www.roarsummit.com/rebel-runnertm-launch-distributed-properties-quickly-1448112086.html',
'title': 'Rebel Runner',
'order': 3,
'visibility': true,
'login_required': false,
'history': false,
'type': 0
},{
'id': 'rebel_roar',
'url': 'https://www.roarsummit.com/rebel-roartm-partner-with-rebelmouse-to-build-totally-customized-fully-1448120692.html',
'title': 'Rebel Roar',
'order': 4,
'visibility': true,
'login_required': false,
'history': false,
'type': 0
}]
}
},
//settings for requests interval to getting new posts
newPosts : {
timeoutInSeconds: 30
, maxTimeoutInSeconds: 120
, changeTimeoutStepInSeconds: 30
},
POST_HISTORY: {
IMMUTABLE: 0,
MUTABLE: 3,
monitorFields: [
'body',
'headline',
'photo_credit',
'image_size',
'manual_image_crops',
'video',
'image',
'image[0-9]+.*',
'image980x',
'image_thumb',
'type',
'acted_user_name',
'created_ts',
'shortcodes',
'shortcodes_by_adapter',
'shortcodes_ids',
'is_real_draft'
],
ctas: {
1: 'quiz',
2: 'poll'
}
},
CTA: {
types: {
'petition': 0
, 'quiz': 1
, 'poll': 2
}
},
RUNNER: RUNNER
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment