HubSpot Ideas

AJLaPorte_diagr

<title> builder for blog, author, and topic listing pages

There has been a lot of chatter regarding using reporting services like SEMRush and Moz which will give you site audits. Usually, these reports give back information such as errors and issues One of the major errors I've seen reported on a lot of HubSpot sites are the Duplication errors for things such as:

 

  • Duplicate content: This is usually caused by the /page/1 not being properly redirected from the start. You have to create three directs total to fix that. Another cause for duplicate content is that listing pages do not have the ability to have a self-referencing canonical (which is fixed with some quick HubL in the blog template header).
  • Duplicate Titles: Caused by all the paginated pages showing the same title.
  • Duplicate Meta Descriptions: Same cause as above

The first bullet, as mentioned, can be fixed with using URL mapping tool and HubL, the last two, however, we have zero control over. I know we can use JS to change the titles and meta's for the listing and Google's searching should be ok with checking those differences on the page. This can be tedious to do and a much better way would be to allow us to have a "Page Title Builder" in the SEO & Crawlers Tab. This can let us fi page titles and have them render server side rather than relying on JS to fix things and hoping they will be picked up during the next Google crawl.   

 

I have created a mockup below for this (based on Yoast's SEO WP Plugin) to better explain a possible solution:

 

topic-builder-sample.jpg

 

Also, I think it would be awesome to have Description fields added to the blog topic's so we can create custom Meta Descriptions based on those topics and not have to rely on just the default blog meta description or one that Google pulls automatically (which is usually the post excerpt of the most recent post for that page). 

HubSpot Updates
Being Reviewed
April 28, 2020 06:26 AM

This issue remains one that we plan to fix, but since we don't currently have a clear timeline on the development I'm going to mark it as 'being reviewed'. I will post another update when we have more to share.

 

- Snaedis

February 14, 2019 11:31 AM

Hey everyone,

 

I've been chatting with AJ and a few other folks about this, and wanted to update this idea. 

 

The quick answer is that we know that the inability to edit listing pages is a pain point and we're looking to solve for it long term. We plan on making any page editable in the CMS, but getting there is unfortunately non-trivial. 

 

From my research I've only seen this picked up by 3rd party tools like Moz and Screamingfrog. @ravenousblue I'll shoot you an email to see what you're seeing in Google Search Console because my impression has been that this is annoying (clients see errors in other tools) but not actually strongly impacting SEO (Google understands these are listing pages from the rel canonicals). 

 

I believe SEMrush now also correctly ignores listing pages for their duplicate content checks.

 

Thanks for your patience as we fix this the right way!

 

 

 

Re: builder for blog, author, and topic listing pages - changed to: In Planning</span> </div> </div> <div class="card"> <div class="UserAvatar"> <a class="login lia-user-name-link" href="/t5/user/viewprofilepage/user-id/3248"> <img class="lia-user-avatar-message" src="https://community.hubspot.com/t5/image/serverpage/image-id/127446iFA817BD8DCF5A18B/image-dimensions/38x38?v=v2" style="width: 40px"> </a> </div> <div class="author-info"> <div class="login-rank"> <div class="login"><span><a class="login lia-user-name-link" href="/t5/user/viewprofilepage/user-id/3248">tilly</a> <img class="lia-user-rank-icon lia-user-rank-icon-right" src="https://cdn2.hubspot.net/hubfs/98485/community.hubspot.com/Product%20Icon-1.png"></span></div> <div class="rank lia-message-author-rank lia-component-author-rank-name">HubSpot Product Team</div> </div> <div class="options-date"> <div class="options"> </div> <div class="date"> <span class="DateTime lia-message-posted-on lia-component-common-widget-date">January 08, 2019 04:04 PM</span> </div> </div> </div> <div class="body"> <div class="lia-message-body-content"> <p></p> </div> </div> </div> </div> </div> <a name="comments"></a> <div class="lia-text lia-idea-page-comment-count lia-discussion-page-sub-section-header"> 26 Replies </div> <div class="CommentList lia-component-comment-list"> <div data-lia-message-uid="15783" id="messageview" class="lia-panel-message message-uid-15783"> <div data-lia-message-uid="15783" class="lia-message-view-wrapper lia-js-data-messageUid-15783 lia-component-forums-widget-message-view-two" id="messageView2_1"> <span id="U15783"> </span> <span id="M27493"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_0"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="raptmedia" alt="raptmedia" id="imagedisplay_0" src="/t5/image/serverpage/avatar-name/camera/avatar-theme/candy/avatar-collection/tech/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of raptmedia' itemprop='url' id='link_5' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/9254'><span class=''>raptmedia</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎May 18, 2017</span> <span class="local-time">5:28 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_1"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_1" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_1" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_0">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_0">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_0">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_0" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/15783/highlight/true#M27493">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_0" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27493">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_1" href="/t5/notifications/notifymoderatorpage/message-uid/15783">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_0" class="lia-message-body"> <div class="lia-message-body-content"> <P>Currently, all the listing pages, both numbered and archived, have no variation in the <title> tag. This is causing negative SEO impact, and I think it should by default include the listing page number or date for archibes in this <title>. Or is there currently a way to do this?</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos"> <div data-lia-kudos-id="15783" id="kudosButtonV2_0" class="KudosButton lia-button-image-kudos-wrapper lia-component-kudos-widget-button-version-3 lia-component-kudos-widget-button-horizontal lia-component-kudos-widget-button lia-component-kudos-action lia-component-message-view-widget-kudos-action"> <div class="lia-button-image-kudos lia-button-image-kudos-horizontal lia-button-image-kudos-enabled lia-button-image-kudos-not-kudoed lia-button-image-kudos-has-kudoes lia-button-image-kudos-has-kudos lia-button"> <div class="lia-button-image-kudos-count"> <a class="lia-link-navigation kudos-count-link" title="Click here to see who gave upvotes to this post." id="link_6" href="/t5/kudos/messagepage/board-id/HubSpot_Ideas/message-id/27493/tab/all-users"> <span itemprop="upvoteCount" id="messageKudosCount_16e8cb9d954b97" class="MessageKudosCount lia-component-kudos-widget-message-kudos-count"> 24 </span><span class="lia-button-image-kudos-label lia-component-kudos-widget-kudos-count-label"> Upvotes </span> </a> </div> <div class="lia-button-image-kudos-give"> <a onclick="return LITHIUM.EarlyEventCapture(this, 'click', true)" class="lia-link-navigation kudos-link lia-link-ticket-post-action" role="button" data-lia-kudos-entity-uid="15783" aria-label="Click here to upvote this post." title="Click here to upvote this post." data-lia-action-token="Kyt-t1fOksN4z358WDv8aNZHU5nh50QPW8A3wpfopZA." rel="nofollow" id="kudoEntity_0" href="https://community.hubspot.com/t5/ideas/v3/ideapage.kudosbuttonv2.kudoentity:kudoentity/kudosable-gid/15783?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=kudos/contributions/tapletcontributionspage"> </a> </div> </div> </div> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="16875" id="messageview_0" class="lia-panel-message message-uid-16875"> <div data-lia-message-uid="16875" class="lia-message-view-wrapper lia-js-data-messageUid-16875 lia-component-forums-widget-message-view-two" id="messageView2_1_0"> <span id="U16875"> </span> <span id="M27494"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_1"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="ArchiMedia" alt="ArchiMedia" id="imagedisplay_1" src="/t5/image/serverpage/avatar-name/palace/avatar-theme/candy/avatar-collection/architecture/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member---Platinum-Partner lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of ArchiMedia' itemprop='url' id='link_7' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/9905'><span class=''>ArchiMedia</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='Member | Platinum Partner' alt='Member | Platinum Partner' id='display_0' src='https://cdn2.hubspot.net/hubfs/53/Partners%20Redesign%202019/Agencies/tag-icons/platinum-color.svg'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member | Platinum Partner </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎May 30, 2017</span> <span class="local-time">9:13 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_2"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_2" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_2" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_1">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_1">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_1">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_1" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/16875/highlight/true#M27494">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_1" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27494">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_2" href="/t5/notifications/notifymoderatorpage/message-uid/16875">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_1" class="lia-message-body"> <div class="lia-message-body-content"> <P>I have the same problem and big problem with a SEO index with some of my customer.</P><P>Please fix this!</P><P> </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_0"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="33551" id="messageview_1" class="lia-panel-message message-uid-33551"> <div data-lia-message-uid="33551" class="lia-message-view-wrapper lia-js-data-messageUid-33551 lia-component-forums-widget-message-view-two" id="messageView2_1_1"> <span id="U33551"> </span> <span id="M27499"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_2"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="MatthewShepherd" alt="MatthewShepherd" id="imagedisplay_2" src="/t5/image/serverpage/image-id/92571i9CBE64CF18899ED4/image-dimensions/38x38/image-coordinates/0%2C0%2C512%2C512/constrain-image/false?v=v2"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Key-Advisor lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of MatthewShepherd' itemprop='url' id='link_8' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/1377'><span class=''>MatthewShepherd</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Key Advisor </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Oct 12, 2017</span> <span class="local-time">5:50 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_3"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_3" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_3" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_2">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_2">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_2">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_2" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/33551/highlight/true#M27499">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_2" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27499">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_3" href="/t5/notifications/notifymoderatorpage/message-uid/33551">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_2" class="lia-message-body"> <div class="lia-message-body-content"> <P>This is an idea I had posted over on the old Uservoice forum but didn't make it across to the new forum. I still feel this would be useful for SEO as discussed in Hubspot's own approach to topic pages: <A href="https://blog.hubspot.com/marketing/technical-seo" target="_blank" rel="noopener noreferrer">https://blog.hubspot.com/marketing/technical-seo</A> (Custom H1 & Intro on Topic Pages)<BR /><BR /></P><P>It would very useful from an SEO standpoint to be able to customize the following areas of topic pages without roundabout template customizations:</P><P> </P><UL><LI>Title</LI><LI>Meta description</LI><LI>H1 </LI></UL><P>As not every topic page is worth indexing in search engines but still may be a useful navigation or filtering tool it would be useful to be able to control a topic page's<BR /><BR /></P><UL><LI>Canonical URL (I realize this is unlikely as it is a powerful feature, but  if not then a noindex feature)</LI><LI>Meta Robots Index / Noindex (blocking via robots.txt doesn't always do the trick on its own)</LI></UL><P>We often see CMS users go crazy with topics (and categories and tags on other CMSs). This can produce a lot of duplicate and not so useful topic pages.  The answer is often to work through merging and deleting those pages, but that can be a time-consuming process. The client also doesn't always want to be selective with how many topics they create and use.  The above features would make it easier to optimize topic pages to drive more traffic.</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos"> <div data-lia-kudos-id="33551" id="kudosButtonV2_2" class="KudosButton lia-button-image-kudos-wrapper lia-component-kudos-widget-button-version-3 lia-component-kudos-widget-button-horizontal lia-component-kudos-widget-button lia-component-kudos-action lia-component-message-view-widget-kudos-action"> <div class="lia-button-image-kudos lia-button-image-kudos-horizontal lia-button-image-kudos-enabled lia-button-image-kudos-not-kudoed lia-button-image-kudos-has-kudoes lia-button-image-kudos-has-kudos lia-button"> <div class="lia-button-image-kudos-count"> <a class="lia-link-navigation kudos-count-link" title="Click here to see who gave upvotes to this post." id="link_9" href="/t5/kudos/messagepage/board-id/HubSpot_Ideas/message-id/27499/tab/all-users"> <span itemprop="upvoteCount" id="messageKudosCount_16e8cba0b62d9d" class="MessageKudosCount lia-component-kudos-widget-message-kudos-count"> 8 </span><span class="lia-button-image-kudos-label lia-component-kudos-widget-kudos-count-label"> Upvotes </span> </a> </div> <div class="lia-button-image-kudos-give"> <a onclick="return LITHIUM.EarlyEventCapture(this, 'click', true)" class="lia-link-navigation kudos-link lia-link-ticket-post-action" role="button" data-lia-kudos-entity-uid="33551" aria-label="Click here to upvote this post." title="Click here to upvote this post." data-lia-action-token="kr4cA25T3kNJWBu7COXxuIb95ts5j6sHcPwfk3I9prI." rel="nofollow" id="kudoEntity_1" href="https://community.hubspot.com/t5/ideas/v3/ideapage.kudosbuttonv2.kudoentity:kudoentity/kudosable-gid/33551?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=kudos/contributions/tapletcontributionspage"> </a> </div> </div> </div> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_1"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="63569" id="messageview_2" class="lia-panel-message message-uid-63569"> <div data-lia-message-uid="63569" class="lia-message-view-wrapper lia-js-data-messageUid-63569 lia-component-forums-widget-message-view-two" id="messageView2_1_2"> <span id="U63569"> </span> <span id="M27501"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_3"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="Benedikt" alt="Benedikt" id="imagedisplay_3" src="/t5/image/serverpage/avatar-name/robofactory/avatar-theme/candy/avatar-collection/robots/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of Benedikt' itemprop='url' id='link_10' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/25896'><span class=''>Benedikt</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Dec 7, 2017</span> <span class="local-time">11:08 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_4"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_4" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_4" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_3">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_3">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_3">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_3" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/63569/highlight/true#M27501">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_3" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27501">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_4" href="/t5/notifications/notifymoderatorpage/message-uid/63569">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_3" class="lia-message-body"> <div class="lia-message-body-content"> <P>Hi everybody,</P> <P> </P> <P>I am surprised to find out that there is no possibility on HubSpot to add a specific SEO title (page title) to a blog post or news article. </P> <P> </P> <P>Often, in addition to the main title of a post it can be useful to have a second title that is more suitable for SERPs. All the editroial systems and CMSs I worked with so far were able to do so.</P> <P> </P> <P>It would be great if you can integrate this function in future. Thank you!<BR /><BR />Benedikt</P> <P> </P> <P> </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos"> <div data-lia-kudos-id="63569" id="kudosButtonV2_3" class="KudosButton lia-button-image-kudos-wrapper lia-component-kudos-widget-button-version-3 lia-component-kudos-widget-button-horizontal lia-component-kudos-widget-button lia-component-kudos-action lia-component-message-view-widget-kudos-action"> <div class="lia-button-image-kudos lia-button-image-kudos-horizontal lia-button-image-kudos-enabled lia-button-image-kudos-not-kudoed lia-button-image-kudos-has-kudoes lia-button-image-kudos-has-kudos lia-button"> <div class="lia-button-image-kudos-count"> <a class="lia-link-navigation kudos-count-link" title="Click here to see who gave upvotes to this post." id="link_11" href="/t5/kudos/messagepage/board-id/HubSpot_Ideas/message-id/27501/tab/all-users"> <span itemprop="upvoteCount" id="messageKudosCount_16e8cba26e4e88" class="MessageKudosCount lia-component-kudos-widget-message-kudos-count"> 1 </span><span class="lia-button-image-kudos-label lia-component-kudos-widget-kudos-count-label"> Upvote </span> </a> </div> <div class="lia-button-image-kudos-give"> <a onclick="return LITHIUM.EarlyEventCapture(this, 'click', true)" class="lia-link-navigation kudos-link lia-link-ticket-post-action" role="button" data-lia-kudos-entity-uid="63569" aria-label="Click here to upvote this post." title="Click here to upvote this post." data-lia-action-token="ToIEXbWSdsnMKPmt6uk_t2sTqNqSHqBnZUS09CPBdbw." rel="nofollow" id="kudoEntity_2" href="https://community.hubspot.com/t5/ideas/v3/ideapage.kudosbuttonv2.kudoentity:kudoentity/kudosable-gid/63569?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=kudos/contributions/tapletcontributionspage"> </a> </div> </div> </div> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_2"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="94392" id="messageview_3" class="lia-panel-message message-uid-94392"> <div data-lia-message-uid="94392" class="lia-message-view-wrapper lia-js-data-messageUid-94392 lia-component-forums-widget-message-view-two" id="messageView2_1_3"> <span id="U94392"> </span> <span id="M27500"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_4"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="SaraLynnn1" alt="SaraLynnn1" id="imagedisplay_4" src="/t5/image/serverpage/avatar-name/roboinvader/avatar-theme/candy/avatar-collection/robots/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Contributor lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of SaraLynnn1' itemprop='url' id='link_12' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/9141'><span class=''>SaraLynnn1</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Contributor </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Dec 21, 2017</span> <span class="local-time">3:15 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_5"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_5" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_5" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_4">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_4">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_4">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_4" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/94392/highlight/true#M27500">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_4" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27500">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_5" href="/t5/notifications/notifymoderatorpage/message-uid/94392">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_4" class="lia-message-body"> <div class="lia-message-body-content"> <P>I could not agree more!! This has been bothering me for years!</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_3"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="186695" id="messageview_4" class="lia-panel-message message-uid-186695"> <div data-lia-message-uid="186695" class="lia-message-view-wrapper lia-js-data-messageUid-186695 lia-component-forums-widget-message-view-two" id="messageView2_1_4"> <span id="U186695"> </span> <span id="M27495"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_5"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="DavidPower" alt="DavidPower" id="imagedisplay_5" src="/t5/image/serverpage/avatar-name/palace/avatar-theme/candy/avatar-collection/architecture/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant---Partner lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of DavidPower' itemprop='url' id='link_13' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/58971'><span class=''>DavidPower</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='Participant | Partner' alt='Participant | Partner' id='display_0_0' src='https://cdn2.hubspot.net/hubfs/53/Partners%20Redesign%202019/Agencies/tag-icons/partner-color.svg'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant | Partner </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Apr 20, 2018</span> <span class="local-time">12:16 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_6"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_6" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_6" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_5">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_5">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_5">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_5" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/186695/highlight/true#M27495">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_5" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27495">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_6" href="/t5/notifications/notifymoderatorpage/message-uid/186695">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_5" class="lia-message-body"> <div class="lia-message-body-content"> <P><SPAN>Definitely having the same issue and as a new partner, was really surprised this was not something sorted / handled in the system already. Keen to find out how agencies get around the lack of meta title control for COS Blog. It seems by default COS optimisation recommendations and page title does not allow for unique Meta title control and page title control in the Blog. Sure we can do custom hubl but it seems to conflict with the COS HubSpot approach and the lack of documentation is a concern. Moz goes into great depth but Hubspot does not allow for this level of control by default. For an inbound focused company like HubSpot and Partners this is a concern.  I haven't fully tested general website pages yet but it seems to be set up better and clearly says page titles is for search engines and browser titles. </SPAN></P><P> </P><P>We have done the below for now but to explain this to a client and then explain them that the optimisation tool in HubSpot will not consider this in its recommendations is not realistic / managable. I know with the content strategy tool and topic cluster approach, keywords are not the sole focus but it's still essential to optimise pages correclty. </P><P> </P><P>Here's the work around shared by a developer, which support has confirmed is the best work around currently. </P><P><A href="https://integrate.hubspot.com/t/edit-blog-post-meta-title-tag/6181/5" target="_blank" rel="noopener noreferrer">https://integrate.hubspot.com/t/edit-blog-post-meta-title-tag/6181/5</A></P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_4"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="187241" id="messageview_5" class="lia-panel-message message-uid-187241"> <div data-lia-message-uid="187241" class="lia-message-view-wrapper lia-js-data-messageUid-187241 lia-component-forums-widget-message-view-two" id="messageView2_1_5"> <span id="U187241"> </span> <span id="M27496"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_6"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="HanaMBO" alt="HanaMBO" id="imagedisplay_6" src="/t5/image/serverpage/image-id/4173i60E12D52934F6FAE/image-dimensions/38x38/image-coordinates/0%2C0%2C480%2C480/constrain-image/false?v=v2"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of HanaMBO' itemprop='url' id='link_14' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/12704'><span class=''>HanaMBO</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Apr 25, 2018</span> <span class="local-time">7:14 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_7"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_7" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_7" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_6">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_6">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_6">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_6" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/187241/highlight/true#M27496">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_6" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27496">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_7" href="/t5/notifications/notifymoderatorpage/message-uid/187241">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_6" class="lia-message-body"> <div class="lia-message-body-content"> <P>Having the same issues with blog listing pages, Semrush report not happy with this, issues are reported as: </P><P> </P><P><SPAN>issues</SPAN><SPAN> with duplicate title tags</SPAN></P><P><SPAN>pages have duplicate meta descriptions</SPAN></P><P><SPAN>pages have duplicate content issues</SPAN></P><P> </P><P><SPAN>Please share if you have any thoughts on workaround <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span> </SPAN></P><P> </P><P><SPAN>Let's hope this will be fixed quickly! </SPAN></P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_5"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="190708" id="messageview_6" class="lia-panel-message message-uid-190708"> <div data-lia-message-uid="190708" class="lia-message-view-wrapper lia-js-data-messageUid-190708 lia-component-forums-widget-message-view-two" id="messageView2_1_6"> <span id="U190708"> </span> <span id="M27497"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_7"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="FilamentWI" alt="FilamentWI" id="imagedisplay_7" src="/t5/image/serverpage/avatar-name/giraffe/avatar-theme/candy/avatar-collection/animals/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of FilamentWI' itemprop='url' id='link_15' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/57619'><span class=''>FilamentWI</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎May 18, 2018</span> <span class="local-time">5:13 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_8"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_8" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_8" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_7">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_7">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_7">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_7" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/190708/highlight/true#M27497">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_7" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27497">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_8" href="/t5/notifications/notifymoderatorpage/message-uid/190708">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_7" class="lia-message-body"> <div class="lia-message-body-content"> <P> Yup, lots of duplicate titles for blog list pages. One year from this post and this isn't solved? How can HS claim SEO out of the box when this very basic issue is not solved?</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_6"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="216216" id="messageview_7" class="lia-panel-message message-uid-216216"> <div data-lia-message-uid="216216" class="lia-message-view-wrapper lia-js-data-messageUid-216216 lia-component-forums-widget-message-view-two" id="messageView2_1_7"> <span id="U216216"> </span> <span id="M27498"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_8"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="ravenousblue" alt="ravenousblue" id="imagedisplay_8" src="/t5/image/serverpage/avatar-name/dessert/avatar-theme/candy/avatar-collection/food/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of ravenousblue' itemprop='url' id='link_16' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/63951'><span class=''>ravenousblue</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Nov 12, 2018</span> <span class="local-time">3:29 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_9"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_9" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_9" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_8">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_8">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_8">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_8" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/216216/highlight/true#M27498">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_8" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27498">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_9" href="/t5/notifications/notifymoderatorpage/message-uid/216216">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_8" class="lia-message-body"> <div class="lia-message-body-content"> <P>I am seeing this issue now in SEMRush and Console. I contacted support and still no true resolution. This is not good when I need to explain how I am addressing SEO issues and have my hands basically tied. </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_7"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="218816" id="messageview_8" class="lia-panel-message message-uid-218816"> <div data-lia-message-uid="218816" class="lia-message-view-wrapper lia-js-data-messageUid-218816 lia-component-forums-widget-message-view-two" id="messageView2_1_8"> <span id="U218816"> </span> <span id="M25718"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_9"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="ravenousblue" alt="ravenousblue" id="imagedisplay_9" src="/t5/image/serverpage/avatar-name/dessert/avatar-theme/candy/avatar-collection/food/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of ravenousblue' itemprop='url' id='link_17' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/63951'><span class=''>ravenousblue</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Nov 28, 2018</span> <span class="local-time">4:06 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_10"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_10" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_10" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_9">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_9">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_9">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_9" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/218816/highlight/true#M25718">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_9" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/25718">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_10" href="/t5/notifications/notifymoderatorpage/message-uid/218816">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_9" class="lia-message-body"> <div class="lia-message-body-content"> <P>I concur!</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_8"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="242769" id="messageview_9" class="lia-panel-message message-uid-242769"> <div data-lia-message-uid="242769" class="lia-message-view-wrapper lia-js-data-messageUid-242769 lia-component-forums-widget-message-view-two" id="messageView2_1_9"> <span id="U242769"> </span> <span id="M26771"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_10"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="wcwalker" alt="wcwalker" id="imagedisplay_10" src="/t5/image/serverpage/avatar-name/bear/avatar-theme/candy/avatar-collection/animals/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of wcwalker' itemprop='url' id='link_18' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/51706'><span class=''>wcwalker</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Dec 18, 2018</span> <span class="local-time">1:25 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_11"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_11" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_11" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_10">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_10">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_10">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_10" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/242769/highlight/true#M26771">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_10" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/26771">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_11" href="/t5/notifications/notifymoderatorpage/message-uid/242769">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_10" class="lia-message-body"> <div class="lia-message-body-content"> <P>This would be a <EM>huge</EM> addition to the web page settings. For anyone who uses SEO graders of any kind, this would immensely improve reporting and make a lot of clients ecstatic to see their SEO scores reflect the good work they've put in. </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_9"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="243564" id="messageview_10" class="lia-panel-message message-uid-243564"> <div data-lia-message-uid="243564" class="lia-message-view-wrapper lia-js-data-messageUid-243564 lia-component-forums-widget-message-view-two" id="messageView2_1_10"> <span id="U243564"> </span> <span id="M27009"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_11"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="DaisyDKroon" alt="DaisyDKroon" id="imagedisplay_11" src="/t5/image/serverpage/avatar-name/hominid/avatar-theme/candy/avatar-collection/monsters/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Contributor---Gold-Partner lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of DaisyDKroon' itemprop='url' id='link_19' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/82306'><span class=''>DaisyDKroon</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='Contributor | Gold Partner' alt='Contributor | Gold Partner' id='display_0_1' src='https://cdn2.hubspot.net/hubfs/53/Partners%20Redesign%202019/Agencies/tag-icons/gold-color.svg'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Contributor | Gold Partner </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Dec 27, 2018</span> <span class="local-time">11:56 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_12"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_12" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_12" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_11">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_11">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_11">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_11" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/243564/highlight/true#M27009">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_11" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27009">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_12" href="/t5/notifications/notifymoderatorpage/message-uid/243564">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_11" class="lia-message-body"> <div class="lia-message-body-content"> <P>This would be great indeed!</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_10"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="244442" id="messageview_11" class="lia-panel-message message-uid-244442"> <div data-lia-message-uid="244442" class="lia-message-view-wrapper lia-js-data-messageUid-244442 lia-component-forums-widget-message-view-two" id="messageView2_1_11"> <span id="U244442"> </span> <span id="M27502"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_12"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply lia-message-with-no-content"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container"> <span class="MessageStatus lia-status lia-status-idea-investigating lia-status-not-completed lia-component-message-status-change lia-component-message-view-widget-message-status-change"> <a class="lia-link-navigation message-status-link" id="link_20" href="/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas/status-key/investigating">In Planning</a> </span> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="tilly" alt="tilly" id="imagedisplay_12" src="/t5/image/serverpage/image-id/127446iFA817BD8DCF5A18B/image-dimensions/38x38/constrain-image/false?v=v2"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-HubSpot-Product-Team lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='color:#30465c' target='_self' aria-label='View Profile of tilly' itemprop='url' id='link_21' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/3248'><span class='login-bold'>tilly</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='HubSpot Product Team' alt='HubSpot Product Team' id='display_0_2' src='https://cdn2.hubspot.net/hubfs/98485/community.hubspot.com/Product%20Icon-1.png'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> HubSpot Product Team </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Jan 7, 2019</span> <span class="local-time">11:20 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_13"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_13" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_13" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_12">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_12">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_12">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_12" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/244442/highlight/true#M27502">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_12" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27502">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_13" href="/t5/notifications/notifymoderatorpage/message-uid/244442">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-message-empty lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_12" class="lia-message-body"> <div class="lia-message-body-content">   </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_11"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="244842" id="messageview_12" class="lia-panel-message message-uid-244842"> <div data-lia-message-uid="244842" class="lia-message-view-wrapper lia-js-data-messageUid-244842 lia-component-forums-widget-message-view-two" id="messageView2_1_12"> <span id="U244842"> </span> <span id="M27503"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_13"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply lia-message-with-no-content"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container"> <span class="MessageStatus lia-status lia-status-idea-investigating lia-status-not-completed lia-component-message-status-change lia-component-message-view-widget-message-status-change"> <a class="lia-link-navigation message-status-link" id="link_22" href="/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas/status-key/investigating">In Planning</a> </span> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="tilly" alt="tilly" id="imagedisplay_13" src="/t5/image/serverpage/image-id/127446iFA817BD8DCF5A18B/image-dimensions/38x38/constrain-image/false?v=v2"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-HubSpot-Product-Team lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='color:#30465c' target='_self' aria-label='View Profile of tilly' itemprop='url' id='link_23' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/3248'><span class='login-bold'>tilly</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='HubSpot Product Team' alt='HubSpot Product Team' id='display_0_3' src='https://cdn2.hubspot.net/hubfs/98485/community.hubspot.com/Product%20Icon-1.png'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> HubSpot Product Team </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Jan 8, 2019</span> <span class="local-time">7:04 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_14"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_14" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_14" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_13">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_13">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_13">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_13" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/244842/highlight/true#M27503">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_13" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/27503">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_14" href="/t5/notifications/notifymoderatorpage/message-uid/244842">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-message-empty lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_13" class="lia-message-body"> <div class="lia-message-body-content">   </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_12"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="253192" id="messageview_13" class="lia-panel-message message-uid-253192"> <div data-lia-message-uid="253192" class="lia-message-view-wrapper lia-js-data-messageUid-253192 lia-component-forums-widget-message-view-two" id="messageView2_1_13"> <span id="U253192"> </span> <span id="M29636"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_14"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="Lars" alt="Lars" id="imagedisplay_14" src="/t5/image/serverpage/image-id/1448i8D0469F2DF36377C/image-dimensions/38x38/image-coordinates/141%2C0%2C1077%2C936/constrain-image/false?v=v2"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-HubSpot-Product-Team lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='color:#30465c' target='_self' aria-label='View Profile of Lars' itemprop='url' id='link_24' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/3409'><span class='login-bold'>Lars</span></a> <img class='lia-user-rank-icon lia-user-rank-icon-right' title='HubSpot Product Team' alt='HubSpot Product Team' id='display_0_4' src='https://cdn2.hubspot.net/hubfs/98485/community.hubspot.com/Product%20Icon-1.png'/> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> HubSpot Product Team </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Feb 14, 2019</span> <span class="local-time">2:31 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_15"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_15" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_15" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_14">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_14">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_14">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_14" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/253192/highlight/true#M29636">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_14" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/29636">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_15" href="/t5/notifications/notifymoderatorpage/message-uid/253192">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_14" class="lia-message-body"> <div class="lia-message-body-content"> <P>Hey everyone,</P> <P> </P> <P>I've been chatting with AJ and a few other folks about this, and wanted to update this idea. </P> <P> </P> <P>The quick answer is that we know that the inability to edit listing pages is a pain point and we're looking to solve for it long term. We plan on making any page editable in the CMS, but getting there is unfortunately non-trivial. </P> <P> </P> <P>From my research I've only seen this picked up by 3rd party tools like Moz and Screamingfrog. <a href="/t5/user/viewprofilepage/user-id/63951">@ravenousblue</a> I'll shoot you an email to see what you're seeing in Google Search Console because my impression has been that this is annoying (clients see errors in other tools) but not actually strongly impacting SEO (Google understands these are listing pages from the rel canonicals). </P> <P> </P> <P>I believe SEMrush now also correctly ignores listing pages for their duplicate content checks.</P> <P> </P> <P>Thanks for your patience as we fix this the right way!</P> <P> </P> <P> </P> <P> </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_13"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="253666" id="messageview_14" class="lia-panel-message message-uid-253666"> <div data-lia-message-uid="253666" class="lia-message-view-wrapper lia-js-data-messageUid-253666 lia-component-forums-widget-message-view-two" id="messageView2_1_14"> <span id="U253666"> </span> <span id="M29787"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_15"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="eal" alt="eal" id="imagedisplay_15" src="/t5/image/serverpage/avatar-name/werewolf/avatar-theme/candy/avatar-collection/monsters/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of eal' itemprop='url' id='link_25' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/62463'><span class=''>eal</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Feb 17, 2019</span> <span class="local-time">6:44 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_16"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_16" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_16" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_15">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_15">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_15">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_15" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/253666/highlight/true#M29787">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_15" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/29787">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_16" href="/t5/notifications/notifymoderatorpage/message-uid/253666">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_15" class="lia-message-body"> <div class="lia-message-body-content"> <P>I'm having the same duplicate problem with AHrefs. If you have info you are sharing to Moz and screaming frog, that we could also share to AHrefs so they can ignore the duplicates for tagged topics, and author listings please let me know. If there is somewhere else I should upvote this, please let me know ASAP.</P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_14"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="266053" id="messageview_15" class="lia-panel-message message-uid-266053"> <div data-lia-message-uid="266053" class="lia-message-view-wrapper lia-js-data-messageUid-266053 lia-component-forums-widget-message-view-two" id="messageView2_1_15"> <span id="U266053"> </span> <span id="M33440"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_16"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="bodenvy" alt="bodenvy" id="imagedisplay_16" src="/t5/image/serverpage/avatar-name/teddy/avatar-theme/candy/avatar-collection/toys/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of bodenvy' itemprop='url' id='link_26' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/88593'><span class=''>bodenvy</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Apr 20, 2019</span> <span class="local-time">9:12 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_17"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_17" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_17" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_16">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_16">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_16">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_16" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/266053/highlight/true#M33440">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_16" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/33440">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_17" href="/t5/notifications/notifymoderatorpage/message-uid/266053">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_16" class="lia-message-body"> <div class="lia-message-body-content"> <P>Still an isssue.  This appears to be a problem that has not been resolved after years.  </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_15"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="267481" id="messageview_16" class="lia-panel-message message-uid-267481"> <div data-lia-message-uid="267481" class="lia-message-view-wrapper lia-js-data-messageUid-267481 lia-component-forums-widget-message-view-two" id="messageView2_1_16"> <span id="U267481"> </span> <span id="M33862"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_17"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="JohnS63" alt="JohnS63" id="imagedisplay_17" src="/t5/image/serverpage/avatar-name/greens/avatar-theme/candy/avatar-collection/food/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Contributor lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of JohnS63' itemprop='url' id='link_27' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/16323'><span class=''>JohnS63</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Contributor </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎Apr 29, 2019</span> <span class="local-time">6:57 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_18"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_18" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_18" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_17">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_17">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_17">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_17" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/267481/highlight/true#M33862">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_17" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/33862">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_18" href="/t5/notifications/notifymoderatorpage/message-uid/267481">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_17" class="lia-message-body"> <div class="lia-message-body-content"> <P>SEMRush does not ignore listing pages according to our reports unfortunately. Fixes on this would be really welcome. </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_16"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="268231" id="messageview_17" class="lia-panel-message message-uid-268231"> <div data-lia-message-uid="268231" class="lia-message-view-wrapper lia-js-data-messageUid-268231 lia-component-forums-widget-message-view-two" id="messageView2_1_17"> <span id="U268231"> </span> <span id="M34048"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_18"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="KimAdStage" alt="KimAdStage" id="imagedisplay_18" src="/t5/image/serverpage/avatar-name/sandwich/avatar-theme/candy/avatar-collection/food/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Member lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of KimAdStage' itemprop='url' id='link_28' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/93540'><span class=''>KimAdStage</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Member </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎May 2, 2019</span> <span class="local-time">5:25 PM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_19"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_19" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_19" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_18">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_18">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_18">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_18" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/268231/highlight/true#M34048">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_18" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/34048">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_19" href="/t5/notifications/notifymoderatorpage/message-uid/268231">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_18" class="lia-message-body"> <div class="lia-message-body-content"> <P>Any updates here HubSpot? Really killing our SEO. </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_17"> <div class="lia-progress-indeterminate"></div> </div> </div> <div data-lia-message-uid="269679" id="messageview_18" class="lia-panel-message message-uid-269679"> <div data-lia-message-uid="269679" class="lia-message-view-wrapper lia-js-data-messageUid-269679 lia-component-forums-widget-message-view-two" id="messageView2_1_18"> <span id="U269679"> </span> <span id="M34612"> </span> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxfeedback_19"></div> </div> <div class="MessageView lia-message-view-idea-reply-message lia-message-view-display lia-row-standard-unread lia-thread-reply"> <span class="lia-message-state-indicator"></span> <div class="lia-quilt lia-quilt-idea-reply-message lia-quilt-layout-one-column-message"> <div class="lia-quilt-row lia-quilt-row-top-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-top-header-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="status-container lia-mark-empty"> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-01 lia-quilt-column-left lia-quilt-column-header-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar"><div class="UserAvatar lia-user-avatar lia-component-common-widget-user-avatar"> <img class="lia-user-avatar-message" title="rrradux" alt="rrradux" id="imagedisplay_19" src="/t5/image/serverpage/avatar-name/modern/avatar-theme/candy/avatar-collection/architecture/avatar-display-size/message/version/2?xdesc=1.0"/> </div></div> </div> </div><div class="lia-quilt-column lia-quilt-column-23 lia-quilt-column-right lia-quilt-column-header-middle"> <div class="lia-quilt-column-alley lia-quilt-column-alley-right"> <div class="lia-message-author-with-avatar lia-message-author-username lia-component-user-name"> <span class='UserName lia-user-name lia-user-rank-Participant lia-component-message-view-widget-author-username'> <a class='lia-link-navigation lia-page-link lia-user-name-link' style='' target='_self' aria-label='View Profile of rrradux' itemprop='url' id='link_29' href='https://community.hubspot.com/t5/user/viewprofilepage/user-id/70531'><span class=''>rrradux</span></a> </span> </div> <div class="lia-message-author-rank lia-component-author-rank lia-component-message-view-widget-author-rank"> Participant </div> <div class="reply-top-right"> <div title="Posted on" class="lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date"> <span class="DateTime"> <span class="local-date">‎May 11, 2019</span> <span class="local-time">9:57 AM</span> </span> </div> <div class="lia-menu-navigation-wrapper lia-js-hidden lia-menu-action lia-component-message-view-widget-action-menu" id="actionMenuDropDown_20"> <div class="lia-menu-navigation"> <div class="dropdown-default-item"><a title="Show option menu" class="lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation" aria-expanded="false" role="button" aria-label="Show comment option menu" id="dropDownLink_20" href="#"></a> <div class="dropdown-positioning"> <div class="dropdown-positioning-static"> <ul aria-label="Dropdown menu items" role="list" id="dropdownmenuitems_20" class="lia-menu-dropdown-items"> <li role="listitem"><span class="lia-link-navigation mark-message-read lia-link-disabled lia-component-forums-action-mark-message-read" aria-disabled="true" id="markMessageRead_19">Mark as Read</span></li> <li role="listitem"><span class="lia-link-navigation mark-message-unread lia-link-disabled lia-component-forums-action-mark-message-unread" aria-disabled="true" id="markMessageUnread_19">Mark as New</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><span class="lia-link-navigation addMessageUserBookmark lia-link-disabled lia-component-subscriptions-action-add-message-user-bookmark" aria-disabled="true" id="addMessageUserBookmark_19">Bookmark</span></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation highlight-message lia-component-forums-action-highlight-message" id="highlightMessage_19" href="/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idc-p/269679/highlight/true#M34612">Permalink</a></li> <li role="listitem"><a class="lia-link-navigation print-comment lia-component-forums-action-print-message" rel="nofollow" id="printMessage_19" href="/t5/ideas/ideaprintpage/blog-id/HubSpot_Ideas/article-id/24960/comment-id/34612">Print</a></li> <li aria-hidden="true"><span class="lia-separator lia-component-common-widget-link-separator"> <span class="lia-separator-post"></span> <span class="lia-separator-pre"></span> </span></li> <li role="listitem"><a class="lia-link-navigation report-abuse-link lia-component-forums-action-report-abuse" rel="nofollow" id="reportAbuse_20" href="/t5/notifications/notifymoderatorpage/message-uid/269679">Report Inappropriate Content</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="lia-message-body-wrapper lia-component-message-view-widget-body"> <div itemprop="text" id="bodyDisplay_19" class="lia-message-body"> <div class="lia-message-body-content"> <P>No solution to this yet? </P> </div> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-left lia-quilt-column-footer-left"> <div class="lia-quilt-column-alley lia-quilt-column-alley-left"> <div class="lia-message-kudos lia-component-kudos lia-mark-empty"> </div> </div> </div><div class="lia-quilt-column lia-quilt-column-12 lia-quilt-column-right lia-quilt-column-footer-right lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-mod-controls"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-mod-controls-main"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single lia-mark-empty"> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-sub-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-sub-footer lia-mark-empty"> </div> </div> </div> </div> </div> <div class="lia-progress lia-js-hidden" id="progressBar_18"> <div class="lia-progress-indeterminate"></div> </div> </div> </div> <div class="lia-menu-bar lia-component-comment-pager"> <div class="lia-decoration-border-menu-bar"> <div class="lia-decoration-border-menu-bar-top"> <div> </div> </div> <div class="lia-decoration-border-menu-bar-content"> <div> <div class="lia-menu-bar-buttons"> </div> <div aria-label="Use the previous and next links to move between pages. Use the page number links to go directly to a page." role="navigation" class="lia-paging-full-wrapper lia-paging-pager lia-paging-full-center-position" id="pager"> <div class="lia-inline-ajax-feedback"> <div class="AjaxFeedback" id="ajaxFeedback"></div> </div> <ul class="lia-paging-full lia-paging-full-center"> <li class="lia-paging-page-previous lia-component-previous"> <span class="lia-link-navigation lia-js-data-pageNum-1 lia-link-disabled" aria-disabled="true" id="link_30"> <span> <span aria-hidden="true" class="lia-paging-page-arrow">«</span> <span class="lia-paging-page-link">Previous</span> </span> </span> </li> <li class="lia-component-pagesnumbered"> <ul class="lia-paging-full-pages"> <li class="lia-paging-page-first lia-js-data-pageNum-1"> <span class="lia-js-data-pageNum-1 lia-link-navigation lia-link-disabled" aria-disabled="true" aria-current="page" id="link_31">1</span> </li><li class="lia-paging-page-last lia-js-data-pageNum-2"> <a class="lia-js-data-pageNum-2 lia-link-navigation lia-custom-event" aria-label="Page 2" id="link_32" href="https://community.hubspot.com/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idi-p/216251/page/2#comments">2</a> </li> </ul> </li> <li class="lia-paging-page-next lia-component-next"> <a class="lia-link-navigation lia-js-data-pageNum-2 lia-custom-event" aria-label="Next Page" rel="next" id="link_33" href="https://community.hubspot.com/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idi-p/216251/page/2#comments"> <span class="lia-paging-page-link">Next</span> <span aria-hidden="true" class="lia-paging-page-arrow">»</span> </a> </li> </ul> </div> </div> </div> <div class="lia-decoration-border-menu-bar-bottom"> <div> </div> </div> </div> </div> <a name="comment-on-this"> </a> <span id="feedback-successinformationbox_42"> </span> <div class="InfoMessage lia-panel-feedback-banner-note lia-component-comment-editor" id="informationbox_42"> <div role="alert" class="lia-text"> <p ng-non-bindable="" tabindex="0"> You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in. </p> <ul role="list" id="list_0" class="lia-list-standard"> <li><a class="lia-link-navigation blog-link lia-message-comment-post" rel="nofollow" id="link_34" href="https://app.hubspot.com/khoros/integration/jwt/authenticate?redirectreason=notregistered&referer=https%3A%2F%2Fcommunity.hubspot.com%2Ft5%2FHubSpot-Ideas%2Flt-title-gt-builder-for-blog-author-and-topic-listing-pages%2Fidi-p%2F216251%23comment-on-this">Reply to Idea</a></li> </ul> </div> </div> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-common-footer"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <div class="lia-quilt lia-quilt-footer lia-quilt-layout-one-column lia-component-quilt-footer"> <div class="lia-quilt-row lia-quilt-row-header"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-common-header lia-mark-empty"> </div> </div><div class="lia-quilt-row lia-quilt-row-main"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main-content"> <div class="lia-quilt-column-alley lia-quilt-column-alley-single"> <!-- FOOTER START --> <footer class="community-footer"> <div class="community-footer-wrapper template-centered"> <div class="footer-responsive"> <div class="contain-top"> <div class="col"> <h5>HubSpot</h5> <ul> <li><a href="https://www.hubspot.com/">Home</a></li> <li><a href="https://help.hubspot.com/">Help</a></li> <li><a href="https://academy.hubspot.com/">Academy</a></li> <li><a href="https://knowledge.hubspot.com/">Knowledge Base</a></li> <li><a href="https://ecosystem.hubspot.com/marketplace/solutions">Solutions Directory</a></li> <li><a href="https://blog.hubspot.com/">Blog</a></li> </ul> </div> <div class="col"> <h5>Get involved</h5> <ul> <li><a href= "https://offers.hubspot.com/community-champions" class="">Community Champions</a> </li> <li><a href= "https://www.hubspot.com/hubspot-user-groups" class="">HubSpot User Groups</a></li> <li><a href= "https://www.hubspot.com/partners/solutions" class="">Solutions Partner Program</a></li> <li><a href= "https://www.hubspot.com/community-newsletter" class="">Community Newsletter</a></li> </ul> </div> <div class="col"> <h5>Community</h5> <ul> <li><a href= "https://community.hubspot.com/t5/CRM-Sales-Hub/ct-p/sales">CRM & Sales</a></li> <li><a href= "https://community.hubspot.com/t5/Marketing-Hub/ct-p/marketing">Marketing</a></li> <li><a href= "https://community.hubspot.com/t5/Service-Hub/ct-p/service_hub">Service</a></li> <li><a href= "https://community.hubspot.com/t5/RevOps-Operations/ct-p/Operations">RevOps & Operations</a></li> <li><a href= "https://community.hubspot.com/t5/HubSpot-Developers/ct-p/developers" class="">Developers</a></li> <li><a href= "https://community.hubspot.com/t5/Getting-Started-on-the-Community/How-to-join-the-Solutions-Partner-Program/ba-p/400205" class="">Partners</a></li> </ul> </div> <div class="col"> <ul> <li><a href= "https://community.hubspot.com/t5/Academy/ct-p/academy">Academy</a></li> <li><a href= "https://community.hubspot.com/t5/Groups/ct-p/groups">Groups</a></li> <li><a href= "/t5/Advocacy/ct-p/advocacy" class="">Advocacy</a></li> <li><a href= "/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas" class="">Ideas</a></li> </ul> </div> </div> <div class="contain-top-two"> <hr class="seperator"> </div> </div> <div class="footer-main-two"> <div class="footer-copywrite-container"> <a href="/" id="footer-logo" class="footer-wordmark"> <img src="https://community.hubspot.com/html/@2E330A36A9928CB84028F5A82F7ECFDF/assets/HS_Logo_Wordmark-White.svg" alt="hubspot"> </a> <span id="copywrite">Copyright © 2024 HubSpot, Inc.</span> </div> <div class="footer-links-container"> <ul class="footer-link"> <li> <a href="https://legal.hubspot.com/privacy-policy" class="footer-terms">Privacy Policy</a> </li> <li> <a href="https://legal.hubspot.com/community-tou" class="footer-privacy">Community Terms of Use</a> </li> <li> <a href="https://community.hubspot.com/t5/Getting-Started-on-the-Community/HubSpot-Community-Guidelines/ba-p/384050" class="footer-guidelines">Community Guidelines</a> </li> <li> <a href="https://status.hubspot.com/" class="footer-status">Status</a> </li> <li> <a href="https://legal.hubspot.com/digital-services-act" class="footer-dsa">DSA Statement</a> </li> <li class="hs-footer-cookie-settings footer-cookie-settings" hidden> <a href=""></a> </li> </ul> </div> </div> </div> </footer> </div> </div> </div><div class="lia-quilt-row lia-quilt-row-footer"> <div class="lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-common-footer lia-mark-empty"> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { const userIcons = new Set([ ...document.querySelectorAll('.UserName[class*="Provider"]'), ...document.querySelectorAll('.UserName[class*="Partner"]') ]) userIcons.forEach(user => { let userMeta = user.childNodes; let imgWrapper = document.createElement('span'); imgWrapper.classList.add('img-wrapper'); let rank; user.appendChild(imgWrapper); for (i=userMeta.length;i>=0;i--) { try { if (userMeta[i].classList.contains('lia-user-rank') || userMeta[i].classList.contains('user-role')) { rank = userMeta[i]; rank.parentNode.removeChild(rank); } } catch(error) { } try { if (userMeta[i].classList.contains('lia-user-rank-icon')) { imgWrapper.appendChild(userMeta[i]); user.appendChild(rank); } } catch(error) { } } }); }); </script> </div> </div> </div> </div> </div> </div> </div> </div> <script> document.cookie = "Crowdvocate_user_ck=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; //console.log('deleting cookie for logged out case'); //console.log('is cookie set? '+ getCookie('Crowdvocate_user_ck')); </script> <!-- Start HubSpot SDK Script --> <script>window.acsdk = {cid: 'WSUMXJFRDOXTWNTJ8YKRUEQ6GHNP1UAUP9EA', params: {popupDelay: 10, position: [0, 20, 50, 0, 0]}};</script> <script>(function(){var w=window;var ac=w.Crowdvocate;if(typeof ac==="function"){ac('init',w.acsdk);}else{var a=function(){a.c(arguments)};a.q=[];a.c=function(args){a.q.push(args)};w.Crowdvocate=a;} var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src='https://d29zub39v1xeg4.cloudfront.net/api/v1/sdk.js';var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);})();</script> <!-- End of HubSpot SDK Script --> </center> </div> <script type="text/javascript"> new Image().src = ["/","b","e","a","c","o","n","/","1","2","0","2","2","2","5","9","4","1","7","0","_","1","7","2","8","8","9","4","2","6","9","3","4","7",".","g","i","f"].join(""); </script> <script type="text/javascript" src="/t5/scripts/D1ADE0576DD5396F7FE224FF664AC505/lia-scripts-angularjs-min.js"></script><script language="javascript" type="text/javascript"> <!-- LITHIUM.AngularSupport.setOptions({ "useCsp" : true, "useNg2" : false, "coreModuleDeps" : [ "li.directives.messages.message-image", "li.directives.common.non-bindable" ], "debugEnabled" : false }); LITHIUM.AngularSupport.initGlobal(angular);// --> </script><script type="text/javascript" src="/t5/scripts/94C410D0A4F58104EA0D51B57F816EDB/lia-scripts-angularjsModules-min.js"></script><script language="javascript" type="text/javascript"> <!-- LITHIUM.AngularSupport.init();LITHIUM.Globals.restoreGlobals(['define', '$', 'jQuery', 'angular']);// --> </script><script type="text/javascript" src="/t5/scripts/C1D0FDEB5D557CE5FA1EFA105E95A13F/lia-scripts-common-min.js"></script><script type="text/javascript" src="/t5/scripts/19BBCC8222CA75D15A2892D5A5372B94/lia-scripts-body-min.js"></script><script language="javascript" type="text/javascript"> <!-- LITHIUM.Sandbox.restore(); LITHIUM.jQuery.fn.cssData.defaults = {"dataPrefix":"lia-js-data","pairDelimeter":"-","prefixDelimeter":"-"}; (function($){ jQuery(document).on('click', '#hs-eu-confirmation-button', function() { location.reload(); }); })(LITHIUM.jQuery); LITHIUM.CommunityJsonObject.User.policies['forums.action.message-view.batch-messages.allow'] = false; // <script> // $ prefix because 'core' is kinda prone to conflict with other stuff that might define a variable 'core' // If there are issues with markup_output (on communities that have auto-escaping enabled!) you can add // ?no_esc behind the expression, but can't have that conditionally there because FreeMarker will just throw // an exception just because the built in is in the code if auto-escaping is disabled... var $core = { config: {"initialized" : true,"debug" : false,"devmode" : false,"env" : "prod","context" : "component","versions" : {"lithium" : 24.8,"freemarker" : "2.3.26-incubating","core.component" : 23.8,"core.users" : 23.5,"core" : 23.4},"file" : "core.cmp.noscript","output" : "undefined","locale" : {"charset" : "UTF-8","timezone" : "US/Eastern","format" : {"date" : "MMM d, yyyy","time" : "h:mm a","full" : "MMM d, yyyy h:mm a","relative" : true,"cutoff" : 31}},"lang" : "en","langs" : ["en","de","es","fr","ja","pt-br"],"node" : {"id" : "HubSpot_Ideas","uid" : 27,"lang" : "en","type" : "board","style" : "idea","url" : "https://community.hubspot.com/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas","quilt" : "IdeaPage","skin" : "hubspot","path" : "\/boards/id/HubSpot_Ideas","top" : "\/categories/id/HubSpot_Ideas","settings_key" : "config_node"},"user" : {"admin" : false,"mod" : false,"auth" : false,"device" : "desktop","lang" : "en","registered" : false,"roles" : [],"show_text_keys" : false,"settings_key" : "config_user","settings" : {}},"cache" : {"cached" : false,"type" : "","map" : {},"config" : {"usercache" : {"inactiveTime" : 1200000,"maximumTime" : 7200000,"maxSize" : 10000},"appcache" : {"inactiveTime" : 1200000,"maximumTime" : 7200000,"maxSize" : 10000}}},"modules" : {"api" : false,"community" : false,"component" : true,"nodes" : false,"templates" : false,"users" : true},"ids" : {"lang" : {"en" : "hubspot_community_en","de" : "hubspot_community_de","es" : "hubspot_community_es","fr" : "hubspot_community_fr","ja" : "hubspot_community_jp","pt" : "hubspot_community_pt"}},"request" : {"get" : "","uri" : "https://community.hubspot.com/t5/HubSpot-Ideas/lt-title-gt-builder-for-blog-author-and-topic-listing-pages/idi-p/216251","type" : "GET","https" : true,"options" : {},"context" : "","endpoint" : "https://community.hubspot.com/mjmao93648/plugins/custom/hubspot/hubspot/controller"},"rest_default_version" : 1,"rest_base_url_v1" : "https://community.hubspot.com/restapi/v1","rest_base_url_v2" : "https://community.hubspot.com/api/2.0/search?q=","stats" : {"requests" : 0,"total" : 0,"calls" : []},"logs" : []}, properties: {}, // Add a reference to the global (native) JS object for the community, can be useful lithium: LITHIUM?.CommunityJsonObject, version: LITHIUM?.CommunityJsonObject?.Config?.['app.revision'] || null }; // </script> // <script> just for inline syntax-highlighting... ;(function($){ var tools = { admin: { /** /* By default admin/studio pages all have the same page title "Community Settings" which is extermely unhelpful /* when having 10 admin/studio tabs open and then having to cycle through them just to find the right one. /* This fix makes admin/studio tabs more distinguishable. /*/ fixStudioTitle: function() { var title = [ $('.lia-bizapps-tab-studio-tab-group .lia-tabs-active').text(), $('.lia-bizapps-tab-community-tab-group .lia-tabs-active').text(), $('.lia-bizapps-page-title-community').text(), ]; $('title').text(title.join(' - ')); }, /** /* In multi-language communities it can be difficult to distinguish nodes if they all have the same title but another language. /* Usually we add a language suffix to the node ID but that is not easily visible in the community structure. Thea idea of this /* enhancement is to extract that language suffix from the node id and add it to the node title within the community structure. /*/ structureAddLanguageFromID: function(validLanguages = ['de', 'fr', 'it', 'jp', 'en', 'es', 'pt']) { $('.lia-component-admin-widget-node-editor-tree .lia-list-tree-toggle-node').each(function() { var $listitem = $(this); var $title = $listitem.find('span.lia-node-display-node-title:first'); var id = $listitem.find('.manage-node-link').first().prop('href').split('_').pop().trim().toLowerCase(); // console.log(id); if ( validLanguages.includes(id) ) { $title.text($title.text() + ' (' + id.toUpperCase() + ')'); } }); }, }, dom: function() { /** /* Just a little clutter saver for components. We should specify both aria-label and title /* attributes, but doing so can lead to very messy markup. As aria-label is more important /* devs have the option of simply adding an empty title attribute as well to elements which /* have aria-label already. This little tool will look for those and simply copy the aria-label /* text over to the title attribute so mouse-users can also get the hints as tooltips. /*/ $('[aria-label][title=""]').each(function() { $(this).attr('title', $(this).attr('aria-label')); }); /** /* A 'big-target' implementation I came up with using a `data-target` attribute on the actual link. /*/ (function(attr = 'data-target') { document.querySelectorAll(`a[${attr}]`).forEach(link => { //console.log('handling big target', link); let trigger = link.parentNode; const selector = link?.getAttribute(attr); while (trigger && trigger !== document) { if ( (!selector || trigger.matches(selector)) && !trigger.matches('[data-edit], [data-bind]') ) { trigger.style.cursor = 'pointer'; trigger.querySelectorAll('a').forEach(link => link.addEventListener('click', (e) => e.stopPropagation())); trigger.addEventListener('click', (e) => (!window.getSelection().toString() && link.click())); break; } trigger = trigger.parentNode; } }); })(); }, installKV: function() { /** /* Creates a Deno KV-like key-value store based on the localStorage with optional /* (custom) versioning and migration support. /* This has passed basic testing, although not how well it aligns with what native Deno KV does itself! /* The API is the same minus atomic operations and some options like consistency level, Kv64 etc. /* that don't really make sense or are insanely complex or impossible to do with a synchronous /* API like localStorage is. The KV's methods are all fake async (because Deno KV's api is async) /* so code written and used in the browser with this implementation should (hopefully) work /* with Deno KV on the server side as well (muuuch more testing needed to confirm that)! /* Aside from `open()` and `close()` this implementation should cover the entire Deno KV API. /* /* There are of course differences in behavior you should be aware of if you build any logic around it: /* - The most important limitation with this mock is that if you use non-serializable values in /* in your keys (your values too!), it will not behave like you expect! Stick to types that can be /* serialized to JSON... localStorage can only handle strings, that's the reason. /* - With Deno KV you can pass an `expireIn` option, but the values you receive from `get()` /* will never return that expiration date. This implementation returns that information /* when querying a key, e.g. besides value and versionstamp you get back `expires` /* if a TTL was provided when setting the value, it's going to be an ISO timestamp otherwise `null`. /* - `list()` is an AsyncIterator like it is with Deno KV, but it does NOT support cursor, consistency /* or batchSize options, you can pass them to the method, but nothing will happen. /* Deno KV `list()` requires a selector, this implementation does not, it will simply list all /* KV entries if you don't provide a selector. /* Furthermore this `list()` implementation supports an optional 3rd argument which is a function /* passed to `Array.filter()` that allows filtering the returned entries further after selector(s) /* and options have been applied. /* - This implementation does support some features Deno KV does not have: /* 1. You can optionally provide a `version` function that will replace how the versionstamp is created /* and thus provide your own versioning implementation. /* 2. You can also provide a `migrate` function that will be applied if an outdated versionstamp /* is encountered, you can for example extend the old value with some new ones keeping what was stored. /* 3. There is a `toJSON()` method you can use to serialize either the entire KV store or a portion of it. /* It supports the same arguments as `list()` (because it internally calls it) and has options to /* serialize prettified JSON or streamable (individual store entries separated by newlines) JSON. /* /* @param {Function} [version] - Optional function to generate a versionstamp for stored values. /* @param {Function} [migrate] - Optional function to migrate outdated values. It is called with the key and outdated value and should return the migrated value. /* @param {String} [prefix='kv:'] - Prefix to be used for keys in localStorage, helping in namespacing and avoiding key conflicts. /* /* @returns {Object} - An object providing the mocked Deno KV API methods to interact with the store. /*/ Object.defineProperties(window, { $kv: { value: function(version, migrate, prefix = 'kv:') { const $hash = typeof version === 'function' ? version : ( $hash || ((v) => 1) ); const _queueListeners = new Set(); const _key = { inrange: (key, start, end) => { const orderedKey = _key.order(key); const orderedStart = start ? _key.order(start) : null; const orderedEnd = end ? _key.order(end) : null; if (orderedStart && orderedKey < orderedStart) { return false; } if (orderedEnd && orderedKey >= orderedEnd) { return false; } return true; }, order: (key) => key.slice().sort((a, b) => { const order = ['Uint8Array', 'string', 'number', 'bigint', 'boolean']; const typeA = typeof a, typeB = typeof b; return typeA === typeB ? (typeA === 'number' ? a - b : String(a).localeCompare(String(b))) : order.indexOf(typeA) - order.indexOf(typeB); }), // Check how Deno KV actually does it here: // https://github.com/denoland/deno/blob/main/ext/kv/codec.rs serialize: (key) => prefix + JSON.stringify(key), deserialize: (serializedKey) => JSON.parse(serializedKey.substring(prefix.length)) }; return { /** /* Retrieves a value from the store by its key(s). /* /* @param {Array} key - The keys array to look up the value. /* /* @returns {Promise<Object>} - An object containing the key, its associated value, versionstamp and expiry. /*/ get: async (key) => { const serializedKey = _key.serialize(key); const data = JSON.parse(localStorage.getItem(serializedKey)); if ( !data || (data.expires && new Date(data.expires) < new Date()) ) { data && data.expires && localStorage.removeItem(serializedKey); return { key, value: null, versionstamp: null }; } if ( data.versionstamp !== $hash(data.value) ) { if (typeof migrate === 'function') { data.value = await migrate(key, data.value); data.versionstamp = $hash(data.value); localStorage.setItem(serializedKey, JSON.stringify(data)); } else { console.warn('Outdated value found but no migration function defined!', key, data); } } return { key, ...data }; }, /** /* Retrieves multiple values from the store based on the provided keys. /* /* @param {Array<Array>} keys - An array of key arrays to look up the values. /* /* @returns {Promise<Array<Object>>} - An array of objects. /*/ getMany: async function(keys) { return Promise.all(keys.map(key => this.get(key))) }, /** /* Stores a value in the store with the given key. /* /* @param {Array} key - The key array to associate with the value. /* @param {*} value - The value to be stored. /* @param {Object} [options] - Optional parameters for storing the value. `expireIn` sets the expiration time in milliseconds. /* /* @returns {Promise<Object>} - An object indicating the success and the versionstamp of the stored value. /*/ set: async (key, value, options = {}) => { const data = { value, versionstamp: $hash(value), expires: options.expireIn ? new Date(Date.now() + options.expireIn).toISOString() : null }; localStorage.setItem(_key.serialize(key), JSON.stringify(data)); return { ok: true, versionstamp: data.versionstamp }; }, /** /* Removes a value from the store by its key. /* /* @param {Array} key - The key array of the value to be removed. /*/ delete: async (key) => localStorage.removeItem(_key.serialize(key)), /** /* Iterates over values in the store based on the provided selector prefix, range, or limited by options. /* This method provides an AsyncIterator to be used with `for await...of` loops. /* This `list()` implementation supports an additional third argument which is NOT STANDARD for Deno KV. /* It's a function that allows for further filtering the results before yielding them within the iterator. /* /* The selector can either be a prefix selector or a range selector: /* - A prefix selector selects all keys that start with the given prefix (optionally starting at a given key). /* - A range selector selects all keys that are lexicographically between the given start and end keys. /* /* @param {Object} [selector] - The selection criteria. NOT STANDARD: Can be undefined here, not with Deno KV! /* @property {Array} [selector.prefix] - Defines the prefix for filtering the results. /* @property {Array} [selector.start] - The starting key for range selection. /* @property {Array} [selector.end] - The ending key for range selection. /* @param {Object} [options] - Optional parameters for the listing. /* @property {number} [options.limit] - Limits the number of results. /* @property {boolean} [options.reverse] - If true, reverses the order of results. /* @param {Function} [fn] - NON STANDARD: Optional filter function to filter entries before yielding. /* /* @returns {AsyncIterator} - An AsyncIterator yielding store entries. /*/ list: async function*(selector, options = {}, fn) { const keys = options?.reverse ? Object.keys(localStorage).reverse() : Object.keys(localStorage); for (const serializedKey of keys) { // Limit results based on `options.limit` if ( options?.limit !== undefined && options.limit <= 0 ) { break; } if ( !serializedKey.startsWith(prefix) ) { continue; }; const deserializedKey = _key.deserialize(serializedKey); if ( selector?.prefix && !deserializedKey.slice(0, selector.prefix.length).every((part, index) => part === selector.prefix[index]) ) { continue; } if ( selector?.start && !_key.inrange(deserializedKey, selector?.start, selector?.end) ) { continue; } const entry = await this.get(deserializedKey); if ( entry.value !== null ) { if ( !fn || (typeof fn === 'function' && fn(entry)) ) { if ( options?.limit !== undefined ) { options.limit--; } yield entry; } } } }, /** /* Adds a value into a mock database queue to be delivered to queue listeners. /* This method simulates the behavior of the Deno KV's enqueue(). /* `keysIfUndelivered` option is not supported, you can pass it, but won't have an effect. /* /* @param {*} value - The value to be enqueued. /* @param {Object} [options] - Optional settings for the enqueue operation. /* @param {number} [options.delay] - Delays the delivery of the value by the specified number of milliseconds. /* @returns {Promise<Object>} - An object indicating the success of the enqueue operation. /*/ enqueue: async (value, options) => { for (const fn of _queueListeners) { options?.delay && await (new Promise(res => setTimeout(res, options.delay))); await fn(value); }; }, /** /* Listens for queue values to be delivered from the mock database queue. /* This method simulates the behavior of the Deno KV's listenQueue(). /* /* @param {Function} handler - A callback function that gets when a new value is dequeued. /* /* @returns {Promise<void>} /*/ listenQueue: async (handler) => { if ( !_queueListeners.has(handler) ) { _queueListeners.add(handler) } }, /** /* Provides a mock for Deno Kv's AtomicOperation API with the same chainable methods, but /* they do nothing...you can provide a function to each of the mock methods that receives /* `this`, just return it again, otherwise you break the chaining! Something like this: /* /* @example /* ``` /* (await $core.kv().atomic()).check((t) => (console.log('check'), t)).min((t) => (console.log('min'), t)).commit(); /* // you can pass an arbitrary number of additional args to those mock functions, like /* (await $core.kv().atomic()).check((t, arg1, arg2) => (console.log('check', arg1, arg2), t), 'foo', 'var') /* ``` /* /* @returns {Promise<*>} - A mocked API of Deno KV's atomic(). /*/ atomic: async () => { console.warn('Atomic ops are not supported!'); return [ 'check', 'commit', 'delete', 'enqueue', 'max', 'min', 'mutate', 'set', 'sum' ].reduce((r, m) => (r[m] = function(fn, ...args) { return typeof fn === 'function' ? fn(this, ...args) : this }, r), Object.create(null)); }, /** /* NON STANDARD: Serializes the store to a JSON string. /* The methods first 3 arguments match the ones from list() (see there for details). /* /* @param {Object} selector - The selection criteria for list(). /* @param {Object} [options] - Optional parameters for list(). /* @param {Function} [fn] - Optional filter function list(). /* @param {Number|String} [pretty] - JSON.stringify() space param to prettify output. Defatuls to tab indent. /* @param {Boolean} [streamable] - If the output should be stringified entries separated by newlilnes. /* /* @returns {String} - A JSON string representation of the KV store. /*/ toJSON: async function(selector, options, fn, pretty = '\t', streamable = false) { let data = []; for await (const entry of this.list(selector, options, fn)) { data.push(entry); } data = data.reduce((r, entry) => { if ( streamable ) { r.push(JSON.stringify({ key: entry.key, value: entry.value })); return r; } return r[JSON.stringify(entry.key)] = entry.value, r; }, streamable ? [] : {}); return streamable ? data.join('\n') : JSON.stringify(data, null, pretty); }, }; }, configurable: false, // Cannot be deleted enumerable: false, // Will not show up in loops writable: false, // Cannot be overwritten } }); }, logMeIn: function() { /** /* Enable 'magic' redirect to login page when "logmein" is typed into the void =) /* just for convenience and speed, only useful on stage if SSO is activated for the community /*/ var keycodes = { logmein: [76, 79, 71, 77, 69, 73, 78], listudio: [], liadmin: [] }; var neededkeys = [76, 79, 71, 77, 69, 73, 78]; var watching = false; var count = 0; $(document).keydown(function(e) { var key = e.keyCode; // console.log(key); // Set start to true only if the first key in the sequence is pressed if ( !watching ) { if ( key == neededkeys[0] ) { watching = true; } } // If watching, pay attention to key presses, looking for right sequence. if ( watching ) { // console.log('watching: ' + key); if ( neededkeys[count] == key ) { // We're good so far. count++; } else { // Oops, not the right sequence, lets restart from the top. watching = false; count = 0; return; } if ( count == neededkeys.length ) { // We made it! Execute whatever should happen when entering the right sequence window.location.replace('/t5/user/userloginpage'); // Reset the conditions so that someone can do it all again. watching = false; count = 0; return; } } else { // Oops. watching = false; count = 0; return; } }); }, scssCompile: function() { /** /* Handle on-the-fly SCSS compilation if any text/scss inline style tags are found /* This primarily useful for development, no style/scss tags should remain when on /* production as they would still be compiled. /*/ if ( $('style[type$="scss"]').length ) { $('style[type$="scss"]').each(function() { var $el = $(this); var scss = $el.text(); $core?.config?.user?.admin && console.log('Found inline SCSS style tag, compiling to CSS...', $el); $.ajax({ type: 'POST', url: 'https://www.sassmeister.com/app/lib/compile', data: { input: scss, compiler: 'lib', syntax: 'scss', original_syntax: 'scss', output_style: 'nested' }, contentType: 'multipart/form-data', dataType: 'json' }) .done(function(response) { $core?.config?.user?.admin && console.log('core.cmp.tools: SCSS successfully compiled, injecting usable CSS...'); // inject compiled CSS into irignal source tag $el.text(response.css).attr('type', 'text/css'); }) .fail(function(err) { console.log('fail', err); }); }); } }, redirect: function() { /** /* Handles redirects specified in `cmp.global.scripts` (or elsewhere) and added to /* the `$core.redirects` object. /*/ if ( $core?.redirects ) { Object.entries($core.redirects).some(function([source, target]) { if ( window.location.pathname === source ) { $core?.config?.user?.admin && console.log('core.cmp.tools: redirect match found, redirecting...'); window.location.href = target; // Stop the .some() iteration by returning true return true; } }); } }, fixAmp: function() { /** /* Handle & ampersand bug in SEO field of ArticleEditorPage (TKB, more?) /* & gets replace with & but each time the article is saved again, the & of the & /* gets encoded again, resulting in repeated and invalid encoding, e.g. &amp;amp;amp;amp; /*/ $('.lia-form-message-seo-description-input, .lia-form-message-seo-title-input').each(function() { $(this).val($(this).val().replaceAll(/amp;/gm, '')); }); }, fixTOC: function() { /** /* Adds 'is--toc' class to `ul`-tag of BlogArticle TOC (table of contents, an Angular component by Khoros) /* as it natively does not have any identifier, making it tricky to target with CSS /* WebKit browsers remove list semantics when list-style-type is none, we fix that with `role=list` /*/ $('.BlogArticlePage a[href*="#toc-hId"]').first().parents('ul').addClass('is--toc').attr('role', 'list'); }, inview: function() { // Make sure nothing explodes in older browsers that do not support IntersectionObserver if ( 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype ) { // Minimal polyfill for Edge 15's lack of `isIntersecting` // See: https://github.com/w3c/IntersectionObserver/issues/211 if ( !('isIntersecting' in window.IntersectionObserverEntry.prototype) ) { Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', { get: function () { return this.intersectionRatio > 0; } }); } // Set up the intersection observer const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { // If the element is fully in view, trigger custom event with jQuery if (entry.isIntersecting && entry.intersectionRatio === 1) { entry.target.dataset.inview = 'true'; $(document).trigger('inview', [entry.target]); } else if ( entry.target.dataset.inview !== 'false' ) { entry.target.dataset.inview = 'false'; } }); }, { threshold: 1 }); // Observe each element with attribute `data-inview` $('[data-inview]').each(function() { observer.observe(this); }); } }, XHRmiddleware: function() { // Middleware storage const middlewares = []; // Override the XMLHttpRequest constructor (breaks Khoros for some reason...) /* const xhrRequest = XMLHttpRequest; XMLHttpRequest = function() { const xhr = new xhrRequest(); return new Proxy(xhr, { get: function(target, prop) { // You can intercept specific properties here and provide custom values if ( prop === 'responseText' ) { let value = target[prop]; middlewares.forEach((fn) => { if ( !fn.on || fn.on.includes('response') { // make sure in case the dev forgets to return from the fn() // we still return a value, it's gonna be the unmodified one // but better than nothing... value = fn(target, 'response', value) || value; } }); return value; } // For all other properties, return the original value return target[prop]; }, set: function(target, prop, value) { target[prop] = value; return true; } }); }; XMLHttpRequest.prototype = xhrRequest.prototype; */ // Save original XHR methods const xhrSend = XMLHttpRequest.prototype.send; const xhrOpen = XMLHttpRequest.prototype.open; // Define the .$use() method using Object.defineProperty Object.defineProperty(XMLHttpRequest, '$use', { value: function(fn) { if ( typeof fn === 'function' ) { middlewares.push(fn); } }, writable: false, // Cannot be overwritten enumerable: false, // Will not show up in loops configurable: false, // Cannot be deleted }); // Override the .open() method XMLHttpRequest.prototype.open = function(method, url, async, user, password) { middlewares.forEach((fn) => { !fn.on || fn.on.includes('open') ? fn(this, 'open', method, url, async, user, password) : null; }); xhrOpen.apply(this, arguments); }; // Override the .send() method XMLHttpRequest.prototype.send = function(body) { const xhr = this; middlewares.forEach((fn) => { !fn.on || fn.on.includes('send') ? fn(xhr, 'send', body) : null; }); // Attach an event listener for the 'readystatechange' event xhr.addEventListener('readystatechange', function() { if ( xhr.readyState === XMLHttpRequest.DONE ) { middlewares.forEach((fn) => { !fn.on || fn.on.includes('done') ? fn(xhr, 'done') : null; }); } }); xhrSend.apply(this, arguments); }; // Example middleware /* XMLHttpRequest.$use((xhr, event, ...args) => { if ( event === 'open' ) { // args is going to be [method, url, async, user, password] if defined console.log('Request created:', xhr, ...args); } else if ( event === 'send' ) { // args is going to be [body] the optional payload/body of the request console.log('Request payload is about to be sent:', args[0]); } else if ( event === 'response' ) { // args is going to be [responseText]! console.log('Can modify response text!, xhr); // IMPORTANT: Return something from here, // otherwise response is gonna be returned umodified to the caller! return xhr; } else if ( event === 'done' ) { console.log('Response received:', xhr.responseText); } }); */ }, }; // Install tools before extending core in case we need access to globally defined tools! Object.entries(tools).map(function([name, fn]) { if ( typeof fn === 'function' ) { $core?.config?.user?.admin && console.info(`core.cmp.tools: Running tools.${name}()`); fn(); } }); // Extend $core base variable with additional capabilities if ( $core ) { /** /* Helper method to automatically proxy requests to external URL's through the proxy endpoint /* when they can't be requested directly via JS due to CORS restrictions. /*/ $core.compile = async function(mount) { console.time("compiling"); // start benchmark // Handles inline tag definitions and script-linked tags with `[type="riot/tag"]`. // Why not go with the native riot.compile()? a) we want to check first if we actually // need to fetch the tag file or not (if it wasn't modified) and b) we want to compile // tags that are defined inline as well and cache the compiled result of both for faster // loading during prototyping. const usedb = true; const db = localStorage; const sources = Array.prototype.slice.call(document.querySelectorAll('script[type*="riot"]')).concat(Array.prototype.slice.call(document.querySelectorAll('template[type*="riot"]'))); const tags = await Promise.all( sources.map(async (el, i, arr) => { //console.log('compiling from:', el.hasAttribute('data-src') ? 'File' : 'Inline Template'); let cached; let hash; let tag; let response; if (el.hasAttribute('data-src')) { try { if ( usedb ) { // first we want to check the last modified header! // if the dev server is not running this will fail and enter catch block response = await fetch(el.getAttribute('data-src'), { // credentials: 'include', method: 'HEAD', }); // typecast to string for localStorage (keys are strings!) hash = `riot:${await $hash(el.getAttribute('data-src') + new Date(response.headers.get('last-modified')).getTime())}`; cached = db.getItem(hash); } if ( !cached ) { console.log('compile(): No cached version found, fetching source!'); response = await fetch(el.getAttribute('data-src'), { // credentials: 'include', method: 'GET', }); data = await response.json(); response = { headers: [...response.headers].reduce((acc, header) => { return { ...acc, [header[0]]: header[1] }; }, {}), status: response.status, data: data, }; //console.log('response', response); // add attribute data-scoped="false" to the include script tag to turn off CSS scoping //tag = riot.compileFromString(response.data, { scopedCss: !['false', '0', 0].includes(el.getAttribute('data-scoped')) }).code; // TODO: Dev server should return compiled code exactly as riot.deno.dev does tag = response.data?.code; //console.log('tag', tag); if ( tag && usedb ) { db.setItem(hash, tag); } console.log(`compile(): No cached tag found, file-tag compiled ${usedb ? `and cached with hash ${hash}`: ''}`); } else { tag = cached; console.log(`compile(): Found cached version of file-tag!`); } } catch (ex) { // We do not get details for net errors (e.g. if the server is down), so we try to // isolate those because they don't have a message (well, which ones do? custom ones?) if ( !ex.data?.message ) { console.warn(`compile(): fetching ${el.getAttribute('data-src')} failed: Dev server is not reachable...`); } else { console.error(ex); } } } // if `tag` is still undefined, we can assume the dev server wasn't running, // so we compile the content locally if ( !tag ) { // `.innerHTML` returns the 'fixed' (browser interpreted) HTML, but it will encode // `&` to `&`, also within riot expressions, which of course messes up the compiler // so once we have the tag html, we need to get those encoded ampersands back to normal tag = el.innerHTML.replace(/&/g, '&').trim(); if ( !tag ) { console.warn(`compile(): Tried to get content from inline tag, but was empty, did you forget to paste the component code in?`, el); return; } hash = `riot:${await $hash(tag)}`; cached = db.getItem(hash); if ( !cached ) { // add attribute data-scoped="false" to the template tag to turn off CSS scoping //tag = riot.compileFromString(tag, { scopedCss: !['false', '0', 0].includes(el.getAttribute('data-scoped')) }).code; try { response = await (await fetch('https://riot.deno.dev', { method: 'POST', body: JSON.stringify({ markup: encodeURIComponent(tag), versionstamp: await $hash(tag), key: await $hash(window.location.origin), }), headers: { 'content-type': 'application/json', }, })).json(); if ( response.code ) { tag = response.code; } else { console.error('compile(): Faulty response', response); if ( response.payload ) { console.warn('compile(): Creating downloadable file from failed component markup!'); const file = new File([response.payload.markup], 'failed.tag.html', { type: 'text/plain', }); const fr = new FileReader(); fr.onload = function(e) { const link = `<span class="compile-error">Download uncompilable markup: <a href="${URL.createObjectURL(file)}" download="${file.name}">${file.name}</a></span>`; $('body').append(link); } fr.readAsText(file); } throw new Error('compile(): response.code could not be found!', { cause: 'fetch()', message: response }); } } catch(ex) { console.error(ex); tag = null; } if ( tag && usedb ) { db.setItem(hash, tag); } console.log(`compile(): No cached tag found, inline-tag compiled ${usedb ? `and cached with hash ${hash}` : ''}`); } else { tag = cached; console.log(`compile(): Found cached version of inline-tag!`); } } try { const { groups: { name = null } } = tag.match(/^riot\.register\(['"](?<name>[^\s'"]+)/) || { groups: {} }; console.log('compile(): tag name = ', name); //riot.inject(tag, name, `./${name}.html`); // yeahyeah, eval is evil, but we are the author of the code, so nothing to worry... } catch (ex) { console.error('compile(): Something went wrong with tag name extraction', ex); } try { eval(tag); } catch(ex) { console.error(`compile(): Something went wrong with tag evaluation for '${name}'`, ex); } return { name: name, hash: hash, cached: cached !== null, code: tag }; }) ); console.log('compile(): result', tags); console.timeEnd('compiling'); // end benchmark // optionally mount tag(s) via the compile() method if ( typeof mount === 'string' ) { console.time('mounting'); riot.mount(mount); console.timeEnd('mounting'); } else if ( typeof mount === 'boolean' ) { // auto-mount all top level components, but not the nested ones, they will be handled by the parent riot.mount('[is]:not([is] [is])'); } }; /** /* Helper method to automatically proxy requests to external URL's through the proxy endpoint /* when they can't be requested directly via JS due to CORS restrictions. /* /* @usage `$core.fetch('<url>', {<fetch.options>});` /* /* @param {string} url - The URL to fetch via proxy. /* @param {object} options - An optional fetch options object. /* /* @returns {any} - The proxied response data. /*/ $core.fetch = function(url = '', options = {}, cache) { return fetch(`${$core.config.request.endpoint}?get=proxy&url=${encodeURIComponent(url)}${cache ? '&cache=' + cache : ''}`, options); }; $core.fmt = { /** /* Adapted from https://github.com/lukeed/tinydate/blob/master/src/index.js /* /* @usage `$core.fmt.date('Current time: [{HH}:{mm}:{ss}]')(new Date())` /* /* @param str - Output string with placeholders /* @param custom - Custom formatter functions for placeholders (optional) /* /* @return - Returns a rendering function that will optionally accept a date value as its only argument. /*/ date: function(str, custom) { const RGX = /([^{]*?)\w(?=\})/g; const MAP = { YYYY: 'getFullYear', YY: 'getYear', MM: function (d) { return d.getMonth() + 1; }, DD: 'getDate', HH: 'getHours', mm: 'getMinutes', ss: 'getSeconds', fff: 'getMilliseconds' }; let parts=[], offset=0; str.replace(RGX, function(key, _, idx) { // save preceding string parts.push(str.substring(offset, idx - 1)); offset = idx += key.length + 1; // save function parts.push(custom && custom[key] || function(d) { return ('00' + (typeof MAP[key] === 'string' ? d[MAP[key]]() : MAP[key](d))).slice(-key.length); }); }); if ( offset !== str.length ) { parts.push(str.substring(offset)); } return function(arg) { var out='', i=0, d=arg||new Date(); for (; i<parts.length; i++) { out += (typeof parts[i]==='string') ? parts[i] : parts[i](d); } return out; }; }, }; /** /* Map (now) global $hash function to $core namespace for backwards compatibility. /*/ $core.hash = $hash; /** /* Dynamically imports and appends scripts to the DOM. /* Offers extended functionality such as manual deferral, error handling, and initialization tasks. /* /* @usage /* ``` /* $import('path/to/script.js').then(() => { /* console.log('All scripts loaded!'); /* }).catch(error => { /* console.error('Error loading script:', error); /* }); /* ``` /* /* @param {String|Array|HTMLElement|NodeList} input - Path(s) to the script(s) to be imported, or DOM nodes. /* @param {Object} [options] - Optional configuration object. /* @param {Function} [options.on] - Function to manually handle the script injection. /* @param {Function} [options.init] - Function to run initial tasks, e.g. for setup purposes. /* @param {HTMLElement} [options.target=document.body] - DOM element to which the script will be appended. /* @param {Object} [options.attributes={}] - Additional attributes to set on the script element. /* /* @returns {Promise} - Resolves when all scripts are loaded; rejects on any error. /*/ $core.import = function(scripts, { on, init, target = document.body, attributes = {} } = {}) { // Ensure scripts is always an array and not an already loaded script scripts = [].concat(scripts).filter(s => !(s?.src || document.querySelector(`script[src="${s}"]`))); typeof init === 'function' && init(scripts); return Promise.all(scripts.map(script => new Promise((resolve, reject) => { let el = script instanceof HTMLElement ? script : document.createElement('script'); if ( el.tagName === 'SCRIPT' ) { if ( el.querySelector(':is(script[data-src])') ) { el.src = el.getAttribute('data-src'); } else { Object.entries({ ...attributes, src: script }).forEach(([attr, val]) => el.setAttribute(attr, val)); } } else { return reject({ message: `Invalid input!`, data: script }); } el.addEventListener('load', resolve(el, script)); el.addEventListener('error', (e) => reject({ message: `Failed to load script: ${e.target.src}`, event: e })); // If an `on` function is provided, pass the script element to it for manual deferring typeof on === 'function' ? on(el, script) : target.appendChild(el); }))); }; /** /* Map global KV localStorage wrapper to $core for convenience. /*/ $core.kv = $kv; /** /* Proximity sensor helper method. Triggers a callback function when the mouse is within /* a certain distance of the given element. With the optional `check` flag set to `true` the method /* will check if the target element is reachable by the user, e.g. not hidden or obstructed by /* other elements. These checks are off by default, as they will be triggered with every tracked /* mousemove event which can potentially cause performance issues. If the target element is initially /* hidden, consider binding `$near()` AFTER the element has become visible! /* /* @usage /* ``` /* $near('.my-button', 50, (el, threshold) => { /* console.log(`Mouse is within ${threshold}px of ${el}`); /* }); /* ``` /* /* @param {Element|String} el - The target DOM element or a selector string to identify the element. /* @param {Number} threshold - The proximity threshold (in pixels) at which the callback will be invoked. /* @param {Function} fn - The callback function to be invoked when the mouse is within the defined distance of the target. /* @param {Boolean} [once=false] - If true, the callback will be triggered only once. /* @param {Boolean} [check=false] - If true, performs enhanced checks on the element that it's visible and not obstructed. /* /* @returns {void} /*/ $core.near = function(el, threshold, fn, { once = false, check = false } = {}) { el = typeof el === 'string' ? document.querySelector(el) : el; if ( !el || typeof fn !== 'function' || typeof threshold !== 'number' ) { return; } // make sure element exists let run = false; let within = false; // flag to track if the mouse is inside the proximity zone const proximity = function(target, x, y) { const { left, right, top, bottom } = target.getBoundingClientRect(); if ( check ) { const style = window.getComputedStyle(target); if ( Object.entries({ display: 'none', visibility: 'hidden', opacity: '0' }).some(([p, v]) => style[p] === v) ) { return false; } } return x > left - threshold && x < right + threshold && y > top - threshold && y < bottom + threshold; }; const handler = (e) => { if (run) { return; } run = true; window.requestAnimationFrame(() => { const near = proximity(el, e.clientX, e.clientY); if ( near && !within ) { within = true; fn(el, threshold); once && window.removeEventListener('mousemove', handler); } else if ( !near && within ) { within = false; } run = false; }); }; window.addEventListener('mousemove', handler); // return a function that removes the event listener when called return () => window.removeEventListener('mousemove', handler); }; /** /* This is the velocity parser implemented in core ported over to javascript, but it's only /* half useful, as it can't interpolate native strings, so this is only used to interpret /* non-interpolated velocity expressions. /*/ $core.parseVelocity = function(key = '', value = '', args = []) { // Cast all placeholder values to strings, otherwise the parser can't deal with the args args = args.map(String); const scopes_map = { component: $core.config.file, device: $core.config.user.device, page: $core.config.node.quilt, place: $core.config.node.type, lang: $core.config.user.lang, }; const scopes_matches = [...key.matchAll(/@([^@\r\n\t\f\v ]+)/gm)] || []; const scopes = scopes_matches.reduce((obj, match) => { const scope = match[1].split(':')[0]; const value = match[1].split(':')[1]; if ( scopes_map[scope] ) { obj[scope] = (scopes_map[scope] == value); } return obj; }, {}); const choice = (expr = '', args = []) => { const value = args[parseInt(expr.split(',').shift())]; const choices = expr.split('choice,').pop().trim(); return choices.match(`(${value})#(.*?)\\|`)?.[2] || choices.split('|').pop().replace(/\d+</, '') }; const rx = /\$\{(?<i>.+?)\}|\{(?<p>[0-5])\}|\{(?<e>[^\$]+?)\}/gm; let result = value; let cnt = 1; // Enter recursion to resolve nested velocity variables/placeholders/expressions // Have a safety max recursion depth to avoid unintentional memory leaks / endless loops while ( result.match(rx) ) { result = $core.parseVelocity(key, value.replace(rx, (match, i, p, e) => (i ? $core.str(i, null, ...args) : ( p ? args[parseInt(p)] || '' : choice(e, args) ))), args).value; if ( cnt >= 10 ) { console.warn('$core.parseVelocity(): Recursion depth of 10 exceeded!', result, result.match(rx), !!result.match(rx)); break; } cnt++; } return { key: key, value: result, scopes: scopes }; }; $core.serializeForm = function(form, json = false, filter, reducer) { // The shortest way of getting an object from FormData is // `Object.fromEntries((new FormData(form)).entries())` // but it will not handle select multiple inputs as the entries will have the same key // and therefore only the last selected option is returned as a value, to aggregate such array-like fields // properly, we have to manually loop over the fields after destructuring them into tuples (array of arrays) // this can also handle any type of field as an array of values by specifying the name with `[]` at the end // and furthermore it is also possible to directly aggregate form inputs into objects by specifying the name // attribute like so `name='object\{key}'`. NOTE: I'm not sure if the backslash escape is needed outside of // frameworks that interpolate expressions with `{`. Check the admin component for a practial example. const data = [...(new FormData(form)).entries()].reduce(reducer ? reducer : (obj, [name, value]) => { value = name.startsWith('(bool)') ? ({ '0': false, 'false': false, '1': true, 'true': true})[value.trim()] : value; const key = name.replace(/{(.+)}/gm, '').replace('(bool)', ''); value = obj[key] && key.endsWith('[]') ? [...obj[key], value] : ( key.endsWith('[]') ? [value] : ( /{(.+)}/gm.test(name) ? { ...obj[key], [[...name.matchAll(/{(?<k>.+)}/gm)][0]?.groups?.k]: value } : value ) ); if ( typeof filter === 'function' && filter(key, value) ) { obj[key] = value; } else { obj[key] = value; } return obj; }, {}); // Return a JSON string if requested return json ? JSON.stringify(data) : data; }; $core.obj = { /** /* Filters properties defined in props from the input object (non-destructive). /* /* @param {object} obj - The input object to operate on. /* @param {array} props - The properties to skip from the input object if present. /* /* @returns {object} - A new object without the properties defined in props. /*/ skip: function(obj = {}, props = []) { return Object.entries(obj).reduce((acc, [prop, value]) => { return props.includes(prop) ? acc : ((acc[prop] = value), acc); }, {}); }, /** /* Include only properties defined in props from the input object (non-destructive). /* Basically the opposite of _.skip(). /* /* @param {object} obj - The input object to operate on. /* @param {array} props - The properties to include from the input object if present. /* /* @returns {object} - A new object with only the properties defined in props. /*/ only: function(obj = {}, props = []) { return Object.entries(obj).reduce((acc, [prop, value]) => { return !props.includes(prop) ? acc : ((acc[prop] = value), acc); }, {}); }, }; $core.str = function(_key = null, _default = null, ...placeholders) { if ( !_key ) { return _default; } if ( _key && !_default ) { _default = _key; } // Try a direct lookup first, should work in most cases, except when there are @scopes // that weren't specified in the key let key = _key; let value = $core.properties[`${key}@component:${$core.config.file}`]; if ( !value ) { // Try to find a matching key by checking all properties //console.log(`$core.str(): could not find matching string for key ${key}: ${key}@component:${$core.config.file}, trying all properties:`, Object.entries($core.properties).find(([k, v]) => (k.includes(`@component:${$core.config.file}`) && k.split('@component').pop().includes(key)))); [ key, value ] = Object.entries($core.properties).find(([k, v]) => (k.includes(`@component:${$core.config.file}`) && k.split('@component').pop().includes(key))) || []; // console.log(`$core.str(): Could not find string by direct key (${_key}) lookup, find result:`, key, value); } /*else { console.log(`$core.str(): found matching string for key ${key}: ${key}@component:${$core.config.file}`); }*/ if ( value ) { return $core.parseVelocity(`${key}@component:${$core.config.file}`, value, placeholders).value; } else { return $core.parseVelocity(`${_key}@component:${$core.config.file}`, _default, placeholders).value; } }; /** /* Helper method facilitating watching for a DOM element for mutations and run a callback on them. /* /* @usage /* ``` /* $core.watch('<selector>', (mutation) => { /* console.log('I am here!', mutation); /* }, <optional:options>, <optional.immediate>); /* ``` /* /* @param {string} selector - The CSS selector to watch for mutations. /* @param {function} fn - The callback function to call when the element is mutated. /* @param {object} options - An optional options object for `.observe(<target>, <option>)` /* @param {boolean} immediate - If the callback function should be executed immediately once if the element is present. /*/ $core.watch = (selector, fn, options = {}, immediate = false) => { // Make sure nothing explodes in older browsers that do not support MutationObserver if ( window.MutationObserver ) { // Look for watched selector matching elements already present in the DOM, // and execute the callback on them immediately. if ( immediate && document.querySelector(selector) ) { [document.querySelector(selector)].forEach(fn); } options = { attributes: true, // can't have it set by default, otherwise not all attributes are monitored //attributeFilter: ['style', 'class'], attributeOldValue: false, characterData: false, characterDataOldValue: false, childList: false, subtree: false, ...(options || {}) } // One might have to do `const target = el.target as HTMLElement;` // within the callback to get an actual HTMLElement with its expected methods return (new MutationObserver(mutations => mutations.forEach(fn))) .observe(document.querySelector(selector), options); } }; /** /* Helper method facilitating waiting for a DOM element to appear and execute a callback. /* /* @usage `$core.when('<selector>', (el) => { console.log('I am here!', el); }, <optional:targetNode>);` /* /* @param {string} selector - The CSS selector to wait for. /* @param {function} fn - The callback function to call when the element appears. /* @param {HTMLElement} watch - The node to watch for mutations within. /*/ $core.when = (selector, fn, watch = document.body, existing = false) => { // Check if we even have a valid node to watch, otherwise MutationObserver will throw! watch = typeof watch === 'string' ? document.querySelector(watch) : watch; if ( !(watch instanceof Node) ) { console.warn(`$core.when(): 'watch' param wasn't a Node, aborting!`, watch); return; } // Make sure nothing explodes in older browsers that do not support MutationObserver if ( window.MutationObserver ) { // Look for watched selector matching elements already present in the DOM, // and execute the callback on them immediately. if ( document.querySelectorAll(selector).length ) { document.querySelectorAll(selector).forEach(fn); } return (new MutationObserver(mutations => [...mutations] .flatMap((mutation) => [...mutation.addedNodes]) .filter((node) => node.matches && node.matches(selector)) .forEach(fn))) .observe(watch, { childList: true, subtree: true }); } }; } // Initialize Tools // Make sure jQuery is available in some form which is not always the case in admin/studio and // several tools rely on it. if ( $ ) { // Tools only useful in admin/studio if ( $('body').is('.BizAppsPage') ) { Object.entries(tools.admin).map(function([name, fn]) { if ( typeof fn === 'function' ) { $core?.config?.user?.admin && console.info(`core.cmp.tools: Running tools.admin.${name}()`); fn(); } else { $core?.config?.user?.admin && console.warn(`core.cmp.tools: fn was not a function!`, fn); } }); } } // Bootstrap riot with global stuff if present // TODO: Maybe this should be its own component, separated from general purpose tools code! if ( window.riot ) { /** /* Stateless minimal router. /* Being stateless is a feature! The real "state" (i.e., the current route, history, etc.) /* is managed by the browser itself through the History API and the current URL. /* The router's job is to react to changes in that state and inform the rest of the app /* (via events or other mechanisms) about those changes. /*/ riot.$router = function(base = '/', options = {}) { const routes = []; base = '/' + base.replace(/^\/|\/$/g, ''); function parseRoute(route) { const { k, r } = route.split('/').reduce(({ k, r }, segment, i) => { switch (segment[0]) { case '*': return { k: k.concat('*'), r: r + '/(?<wild>.*)' }; case ':': const { key, con, ext, opt } = segment.match(/^:(?<key>[^\s(.?]+)(?:\((?<con>[\S]+?)\)(?![\)]))?(?<opt>\?)?\.?\(?(?<ext>[a-z0-9|]+)?\)?$/i)?.groups || {}; const p = `(?<${key}>${(con || '[^/]+?')}${ext ? `\\.(?<ext>${ext})` : ''})`; return key ? { k: k.concat(key), r: r + (opt ? `(?:/${p})?` : `/${p}`), } : { k, r }; default: console.log('parse index', i, Boolean(i)); return segment ? { k, r: r + `/(?<type${i > 1 ? i : ''}>${segment})` } : { k, r }; } }, { k: [], r: '' }); return { keys: k, pattern: new RegExp('^' + r + '/?$','i'), }; } function on(route, handler) { const { keys, pattern } = parseRoute(route); routes.push({ keys, pattern, handler }); } function navigate(path, replace) { const url = new URL(path, location.origin); const { keys, pattern } = parse(url.pathname); const match = routes.find(r => pattern.test(r.path)); if (match) { const match = match.pattern.exec(path); history[replace ? 'replaceState' : 'pushState'](null, null, path); $trigger('route', { url, match, keys, pattern }); } else if (options['404']) { options['404'](path); } } document.addEventListener('click', e => { const href = e.target.closest('a') && e.target.getAttribute('href'); const skip = [ !href, href.startsWith('#'), href.startsWith('javascript:'), !href.startsWith(base), e.defaultPrevented, e.button !== 0, e.metaKey, e.ctrlKey, e.shiftKey, e.altKey, ...(options.skipConditions || []) ]; if ( skip.some((con) => (typeof con === 'function' ? con(e) : Boolean(con))) ) { return; } e.preventDefault(); navigate(href); }); return { on, navigate }; }; riot.install((cmp) => { /** /* Override native riot `tag.$` (we don't touch `tag.$$`) with a much more powerful /* jQuery like API (it's not complete of course, but very mighty for 3.6KB code)! /* Of course we could also just map an already present jQuery instance to `tag.$`! /* This doesn't work, riot component internals are frozen! /*/ /*delete cmp.$; cmp['$'] = (selector) => { console.log('overwritten tag.$', selector); return cmp.$(selector); }; */ /** /* Install global event bus proxy methods. We do not want these methods scoped to every /* component individually but for them to be the same for all components so they can talk /* to each other on a global scope. /* /* - `on` will automatically bind `this` within the event listener function to the component. /*/ // This auto binding magic creates trouble, bind the component to the handler yourself if needed! //cmp['on'] = (e, fn, once) => $on(e, fn.bind(cmp), once); cmp['on'] = $on; cmp['off'] = $off; cmp['trigger'] = $trigger; /** /* Look for 'magic' listener methods defined within the component and automatically /* create a listener for them. These methods need to be named in a particular way: /* `$on<event.name.capitalized>` (note the $ prefix!), e.g. for an event type 'results' /* the component method needs to be defined as `$onResults: (e, results) => {}`, /* This approach is eliminating the need to define an explicit event listener somewhere /* within a regular lifecycle method with `tag.on('results', (e, results) => {})`... /* Using this automatic approach eliminates the need to remove any explicitely defined /* event listeners when a component is unmounted, as this is done automatically through /* the proxied lifecycle methods below. /* /* @note Be aware that if you need `this` bound to the component within your listeners /* (regardless if automatic or explicitely defined) you need to use the `function` way /* e.g. `$onResults: funciton(e, results) {}`! /* /* As this will create a listener for all events for every component, it's not enabled /* by default, only when the component has a property `events: true`. This way 'dumb' /* components do not get useless listeners registered which have to be processed! /*/ // We can either override riot.$trigger or 'properly' use the event bus, I'm not sure what // is actually better, both approaches seem to work just fine, when overriding obviously // there are no listeners stored and thus don't need to be removed when unmounting, resulting // in slightly less bootstrap code, but other than that it somehow feels wrong to me... /* if ( cmp.events ) { const $trigger = riot.$trigger; riot.$trigger = async (e, ...args) => { const $ = `$on${e.replace(/\b\w/, (c) => c.toUpperCase())}`; if ( cmp[$] ) { console.log(`automatically triggering ${$} listener for ${cmp.name}`); await cmp[$](e, ...args); } await $trigger(e, ...args); }; } */ let off = null; if ( cmp.events ) { // `on` will return a function to remove that listener, we store it for auto-cleanup off = cmp.on('*', async function(e, ...args) { const $ = `$on${e.replace(/\b\w/, (c) => c.toUpperCase())}`; if ( cmp[$] ) { await cmp[$](e, ...args); } }); } /** /* Proxy component lifecycle methods to give some debug info in debug mode /* allows us to define debugging stuff once here instead of having to repeat /* the same lengthy logging code in every single component increasing bundle /* size for nothing... we can reference component.name safely as it is part of the /* default component implementation along with .css and .template even though those /* properties are not enumerable (e.g. shown when console.log(component)) /* to proxy lifecycle methods simply set the .proxy property within the component to true /* if undefined or false nothing will be done here (e.g. the proxy is opt-in) /*/ ['onBeforeMount', 'onMounted', 'onBeforeUnmount'].forEach((method) => { // make a reference to the original lifecycle method and bind the component to it const org = cmp[method].bind(cmp); // add proxy method calling the original after it has done global stuff cmp[method] = (props, state) => { org(cmp.props, cmp.state); // automatically removes auto-event listeners when the component is unmounted if ( method === 'onBeforeUnmount' && off ) { off(); } cmp.debug && console.log(`${cmp.name}.${method}()`, cmp.props, cmp.state, method === 'onBeforeMount' ? cmp : null); }; }); //console.log('riot.install() done!', cmp); }); } if ( $core?.config?.env?.includes('stage') && $core?.config?.user?.roles?.includes('GlowingBlue') && document.querySelectorAll('[type*="riot"]').length && window.riot ) { // Live compiling riot components in dev mode console.log('core.cmp.tools: Compiling and registering riot components'); (async () => { await $core.compile(); // Useful for profiling component performance if ( window.performance ) { window.start = performance.now(); } if ( $trigger ) { await $trigger('compiled'); } })(); } else { // directly trigger on prod as components are pre-compiled! (async () => { if ( $trigger ) { // Wait for next event loop, if not it can cause strange non-mounting issues // due to no work having to be done (e.g. compile event basically happening immediately) // and the order in which @liaAddScript adds the JS from various places within the codebase await $wait(0); await $trigger('compiled'); } })(); } //document.addEventListener('DOMContentLoaded', function() {}); })(LITHIUM?.jQuery || jQuery); // Pull in global jQuery reference // </script> // <script> just for inline syntax-highlighting... ;(function($){ // This is very much work in progress, but a synk object should generally look something like: /* { type: <event-type-synk-understands>, event: { data: {}, source: { node: {}, page: {}, user: {}, }, verified: <bool>, } } */ // Store objectified request payloads for later use let payload = {}; // Define which particular routes we want to forward to synk. Those can be from forms, // links etc. // The key is the form action or link (partial) to check for when a request comes in // the value is an object with an `only`array for filtering the payload and a `type` // function to dynamically determine the type of event that is witnessed. // TODO: Look into those `t:cp=solutions/contributions/acceptedsolutionsactions` // identifiers that most actions seem to have, maybe they are an easier to detect way // of what to track on different pages, then the changing URL's which force us to use // URL partials... => unfortunately not, the identifier stays the same, the action is // still burried in the URL, like `markmessageasacceptedsolutionsecondarybutton` (WTF?): // t5/forums/v5/forumtopicpage.markmessageasacceptedsolutionsecondarybutton/message-uid/1844 const synk = { // AJAX: inline reply form submit 'inlinemessagereplyeditor.form.form.form.form': { only: [ 'attachment-key', 'liaFormContentKey', 'mediaSnippetUrl', 'multipleUpload', 'parentMessageRef', 't:ac', 'tags_', 'tinyMceEditor', ], type: (xhr) => 'post-reply', }, // AJAX: Kudos button 'kudosbuttonv2.kudoentity': { only: ['triggerEvent', 'parameterOverrides'], type: (xhr) => (xhr.responseURL.includes('revoke-kudos/true') ? 'dislike' : 'like'), }, // not AJAX: Report content to moderator 'notifymoderatorform.form.form.form': { type: (xhr) => 'mod-check', }, // subscribe: /t5/forums/v5/forumtopicpage.__addmessageuseremailsubscription__/message-uid/1841?t:cp=subscriptions/contributions/messageactions // post-mute: /t5/forums/v5/forumtopicpage.__addmessageusermute__/message-uid/1924?t:cp=subscriptions/contributions/messageactions // bookmark: /t5/forums/v5/forumtopicpage.__addmessageuserbookmark__/message-uid/1924?t:cp=subscriptions/contributions/messageactions // post-edit: /t5/forums/v5/forumtopicpage.__editmessageinline:editmessage__/message-uid/1924?t:cp=boards/contributions/messageactions // post-delete: /t5/forums/v5/forumtopicpage.__deletemessage:deletemessage__/message-uid/1924?t:cp=boards/contributions/messageactions // post-move: /t5/forums/v5/forumtopicpage.__movemessage:movemessage__/message-uid/1924?t:cp=boards/contributions/messageactions // post-solved: /t5/forums/v5/forumtopicpage.__markmessageasacceptedsolutionsecondarybutton__/message-uid/1844?t:cp=solutions/contributions/acceptedsolutionsactions // post-unsolved: /t5/forums/v5/forumtopicpage.__unmarkmessageasacceptedsolution__/message-uid/1844?t:cp=solutions/contributions/acceptedsolutionsactions }; $on('xhr', (e, state, xhr, ...args) => { //console.log('$onXHR', e, xhr, args); if ( state === 'open' ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Request created', args, xhr); } else if ( state === 'send' ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Request payload is about to be sent', Object.fromEntries([...(new URLSearchParams(args[0]))])); payload = args[0] ? Object.fromEntries([...(new URLSearchParams(args[0]))]) : {}; } else if ( state === 'response' ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Can modify response text!', args, xhr); // important to return modified response from here return args[0]; } else if ( state === 'done' ) { if ( !Object.entries(synk).some(([urlpartial, obj]) => xhr.responseURL.includes(urlpartial)) ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: skipping response processing for', xhr.responseURL); return; } $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Response received', xhr.responseText); try { // Do some basic sanity checks before attempting to parse JSON... // Usually Khoros XHR responses are a huge object that is then processed and // injected into the current page via some very convoluted logic, most of the data // is irrelevant for us and is contained within a response's `components` property let data = xhr.responseText.trim().startsWith('{') ? $core.obj.skip(JSON.parse(xhr.responseText)?.response, ['components']) : xhr.responseText; if ( typeof data !== 'string' ) { const { only, type } = (Object.entries(synk).find(([urlpartial, obj]) => xhr.responseURL.includes(urlpartial))[1] || {}); data = { type: type(xhr) || 'undefined', event: { url: xhr.responseURL, timestamp: (new Date()).toISOString(), // the result of the event data: data, // the initiator of the event source: { payload: $core.obj.only(payload, (only || [])), user: $core.obj.skip(LITHIUM.CommunityJsonObject.User, ['settings', 'policies', 'emailRef']), node: LITHIUM.CommunityJsonObject.CoreNode, page: { ...($core.obj.only(LITHIUM.CommunityJsonObject.Page, ['object'])?.object || {}), }, } } }; $trigger('synk', data); //console.log('Forwarded data:', data); } else { $core.config.devmode === 'xhr' && console.warn('XHRmiddlaware: Respsone was a string, skipping sync!'); } } catch(ex) { console.error(ex); } } }); // The above handles (old school) AJAX requests, but we also need to deal with actions/events // that occur the even old-schooler way through regular link clicks that reload the page. // To do that we attach a global link listener. I believe to catch Khoros related events we // can safely filter links by `data-lia-action-token` as all the relevant action links seem // to have such an attribute! // TODO: Make sure we do not somehow also track links that are handled by AJAX requests and // thus would be double-synk'ed... document.querySelectorAll('a[data-lia-action-token]').forEach((el) => { el.addEventListener('click', (e) => { if ( e.target.getAttribute('href') ) { const url = new URL(e.target.getAttribute('href')); const params = Object.fromEntries([...url.searchParams]); $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Action link params', url, params, e.target.getAttribute('href')); } else { $core.config.devmode === 'xhr' && console.warn('XHRmiddlaware: Action link did not have a href attribute?', e.target, e); } if ( $core.config.user.roles.includes('GlowingBlue') ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Preventing action from glowingblue user'); //e.preventDefault(); } // We would then build a synk object and trigger a 'synk' event through the global // event bus... // TODO: We also need to think about what happens if an action fails, maybe storing // potential sync objects in localStorage with an attribute of `verified: false` // would be a good idea, for AJAX requests we can more or less reliably track // if an action was successful, as the returned objects contain a property `state` // (NOT `status`, that one is always 'success'!) that will indicate any errors... }); }); // There are also forms that are not handled via AJAX! It seems this listener does not // conflict with the AJAX ones, as those are implemented by Khoros earlier on, so this // listener is never called for AJAX handled forms, which is good because then we don't // have to deal with duplicate synk events... document.querySelectorAll('input[name="lia-action-token"]').forEach((el) => { $(el).parents('form')[0].addEventListener('submit', (e) => { if ( $core.config.user.roles.includes('GlowingBlue') ) { $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Preventing form submission from glowingblue user'); //e.preventDefault(); $core.config.devmode === 'xhr' && console.log('XHRmiddlaware: Serialized form', $core.serializeForm(e.target)); } else { //return true; } }); }); $on('synk', (e, data) => { console.log('$onSynk', e, data); // TODO: make sure there is no issue with aborted requests due to page reloading // if it is, we might have to store the synk objects in local storage before sending // out the request and then when we get a successful response, delete them and on page // load check if we have any leftover items to synk and process those again... // TODO: Push requests through proxy (not sure if it already handles POST requests!) // So we do not leak any user IP information to a third party which Deno deploy is... fetch('https://synk.deno.dev', {method:'POST', body: JSON.stringify(data)}); }); // Simply trigger a custom xhr event and handle whatever logic in the event listener! XMLHttpRequest.$use((xhr, state, ...args) => { $trigger('xhr', state, xhr, ...args); }); })(LITHIUM.jQuery); // Pull in global jQuery reference // </script> // <script> just for inline syntax-highlighting... ;(function($){ /** /* Deals with any redirects that need to be handled in JavaScript for some reason, like 404 Pages /* as we don't get the request in page.init and therefore can't do a redirect form there. /* /* You only need to specify the project specific redirects by adding them to the global `$core` /* object. The actual redirect logic will be dealt with from `core.cmp.tools` via `tools.redirect()`, /* just make sure you don't change the property name as the tool method looks for `$core.redirects`. /* /* @usage: Just define key/value paris where key = url.pathname and value the url to redirect to /*/ $core.redirects = { //'/some/path/to/redirect': 'https://www.community.tld/some/url/to/target/redirect/to', }; /** /* @issue KBCOM-2655 /* /* Immediately makes the inline 'Reply' button disabled on click instead of waiting for TinyMCE /* to be initialized as OOB does. /*/ $('.lia-component-messages-widget-reply-inline-button .lia-button.lia-action-reply').each(function() { $(this).on('click', function(e) { $(this).attr('disabled', true) }); }); })(LITHIUM.jQuery); // Pull in global jQuery reference // </script> // <script> ;(function() { if ( $core ) { $core.config.file = 'cmp.global.search-external'; $core.properties = { ...($core.properties || {}), ...{"general.in@component:cmp.global.search-external" : "in","general.of@component:cmp.global.search-external" : "de","general.from-community@component:cmp.global.search-external" : "Da comunidade","title@component:cmp.global.search-external" : "Additional Resources","filter.title.resources@component:cmp.global.search-external" : "Included Recursos","filter.title.languages@component:cmp.global.search-external" : "Linguas","filter.knowledge@component:cmp.global.search-external" : "Knowledge Base","filter.academy@component:cmp.global.search-external" : "Academy","filter.cms@component:cmp.global.search-external" : "CMS Documentation","filter.api@component:cmp.global.search-external" : "API Documentation","filter.customer@component:cmp.global.search-external" : "Customer Blog","filter.language.en@component:cmp.global.search-external" : "en","filter.language.de@component:cmp.global.search-external" : "de","filter.language.es@component:cmp.global.search-external" : "es","filter.language.fr@component:cmp.global.search-external" : "fr","filter.language.pt@component:cmp.global.search-external" : "pt","filter.language.ja@component:cmp.global.search-external" : "ja","result@component:cmp.global.search-external" : "result","results@component:cmp.global.search-external" : "resultados","results.in@component:cmp.global.search-external" : "{0} {0,choice,0#${results}|1#${result}|1<${results}} ${general.in} {1}","results.none.title@component:cmp.global.search-external" : "No results for \"{0}\"","results.none.text@component:cmp.global.search-external" : "Try a different search term or use the filter on the left to search other resources.","paging.prev@component:cmp.global.search-external" : "Voltar","paging.next@component:cmp.global.search-external" : "Próximo"}, }; } })(); // </script> // <script> just for inline syntax-highlighting... ;(function($){ const params = (new URL(window.location.href)).searchParams; // Allows testing production behavior on stage by switching env temporarily via URL param if ( $core.config.env.includes('stage') && params.get('test') ) { $core.config.env = 'prod'; console.warn('Production test mode enabled', $core.config); } // The most primitive in-memory cache you can imagine // it will hold HubSpot search API results as long as the page is not reloaded, this // speeds things up drastically when using typeahead (e.g. reacting to every key stroke) $core.cache = new Map(); const title = $core.str('title', 'Additional Resources'); /** /* Searchbar autosuggest integration. /* We can't really use riot here as we are hacking into the existing Khoros auto-suggest dropdown /* Furthermore the SearchForm is added twice to every page due to how the mobile header was done. /* It's entirely separate from the desktop header and therefore needs to be targetet properly when /* it's visible from 1024px down. /*/ const search_form = window.innerWidth <= 1024 ? '.mobile-header form.SearchForm' : '.community-header-nav .SearchForm'; $core.when(`${search_form} [name="messageSearchField"] + .lia-autocomplete-container .lia-autocomplete-content`, function(el) { $(`${search_form} [name="messageSearchField"]`).each(function() { var $input = $(this); var $results = $input.find('+ .lia-autocomplete-container .lia-autocomplete-content'); /** /* The autosuggest-dropdown closes on a click anywhere besides it's own results, /* not too crazy of an issue, but it annoys me and I can't fix it, don't know what /* triggers which event, tried to find out but without success... /*/ /*if ( window.innerWidth <= 1024 ) { $results .prepend(`<i class="collapse-results lia-autocomplete-no-event-item lia-fa fa-chevron-up p:x15 p:y11 pos:a pos:r0 pos:t0"></i>`) .find('.collapse-results') .on('click', function(e) { e.stopPropagation(); console.log($(this).siblings('ul:first'), $(this)); $(this).toggleClass('fa-chevron-up fa-chevron-down'); }); }*/ if ( !$results.find('ul.custom-external-results').length ) { $results.append(`<ul class="custom-external-results d:f(row/0/1/100%) h:max300 d:scroll(y) t:/12//400 d:b:before p:y8:before p:l15:before pos:r t:ucase:before" aria-label="${title}" data-before="${title}"></ul>`); } var $container = $results.find('ul.custom-external-results'); $input.on('input', async function(e) { // TODO: find out what is the URL param to limit `limit=` does not work... // => well, it seems the autocomplete endpoint of the HubSpot search API does not // support any kind of configuration at all. If it's needed, we might have to switch // to the slower 'full' API endpoint var url = `https://wtcfns.hubspot.com/wt-api/search/autocomplete?queryString=${$input.val()}&language=${$core.config.user.lang}&limit=5`; //console.log($input.val()); if ( !$core.cache.has(url) ) { $core.cache.set(url, (await (await $core.fetch(url)).json())); } //console.log($core.cache.get(url)); // HubSpot search API will return `{'message': 'Missing search key'}` when the `queryString` is empty // in that case, markup will be `undefined`, which we have to catch, otherwise it's going to be // an empty array if there are really no results for a search term. var markup = $core.cache.get(url).data?.searchResults?.results?.reduce((r, v) => { // As limit doesn't work on the autocomplete endpoint we have to limit the auto-suggest results like this //if ( r.length < 3) { r.push(` <li class="lia-autocomplete-node-item lia-autocomplete-custom-item"> <a class="lia-link-navigation board-icon" tabindex="-1" href="#"> <span class="custom-img-icon-help lia-fa-icon lia-fa-question lia-fa bg:--color-lorax t:--color-olaf" title="${v.resource}" aria-label="${v.resource}" role="img"></span> </a> <a class="lia-link-navigation lia-js-autocomplete-list-item-link lia-autocomplete-message-list-item-link" tabindex="-1" href="${v.url}" target="_blank"> ${v.title.replace('hs-search-highlight hs-highlight-title', 'lia-search-match-lithium')} </a> <div class="lia-autocomplete-suggestion-additional-details lia-component-nodes-widget-auto-complete-node-list-item"> <span class="lia-autocomplete-suggestion-board-title t:caps">${v.resource}</span> </div> </li> `); //} return r; }, []); if ( markup === []._ ) { return; } if ( markup.length ) { $container.html(markup.join('\n')); } else { $container.html(`<div class="pos:center t:center t:/14">${$core.str('results.none.title', null, $input.val())}</div>`); } }); }); }, document.querySelector(`${search_form}`)); /** /* Global SearchPage integration of external search. /* Adds a new tab to the search sections area and additionally a filter-like fake dropdown /* That additional filter was removed again via KBCOM-2830! /* that triggers a click on the new tab, it's just for more visual exposure as we worry the /* new tab might be too unassuming and might be overlooked. /*/ if ( $core.config.node.quilt.includes('SearchPage') ) { let results = null; const getResults = async function(query, resources = ['knowledge', 'academy', /*'customer', 'api', 'cms'*/], language = ($core?.config?.user?.lang || 'en'), page = 1, limit = 10, offset = 0, padding = 2) { offset = (page-1) * limit; // HubSpot search API resources are targeted with `contentKey: api, cms, knowledge, academy, customer` const url = `https://wtcfns.hubspot.com/wt-api/search?queryString=${query}&limit=${limit}&offset=${offset}&page=${page}&language=${language}&contentKey=${resources.join(',')}`; //console.log(url); if ( !$core.cache.has(url) ) { $core.cache.set(url, (await (await $core.fetch(url, null, 'appcache')).json())); } // once received, the HubSpot search API results are agumented with custom stuff // that helps rendering things like pagination etc. let results = Object.entries(($core.cache.get(url)?.data?.searchResults || {})).reduce((r, [k, v]) => ({ ...r, [k]: v }), { active: resources, lang: language, query: query, url: url }); // calculate the total amount of pages first and set it to minimum 1 const pages = Array.from({length: Math.max(Math.ceil(results.total/limit), 1)}, (el, i) => i+1); // calculate collection object const collection = { limit: limit, offset: offset, total: results.total, paging: { page: page, pages: pages.length, // TODO: there are still some issues with this, it does work for page // 1, but for the last page, only 3 (instead of 5) pages are returned display: pages.length ? (() => { const num = (padding * 2) + 1; const i = pages.indexOf(page); const from = Math.max(i - Math.floor(num / 2), 0); const to = Math.min(from + num - 1, pages.length - 1); return pages.slice(from, to + 1); })() : [], // number of page-links left and right of current page padding: padding, // rendering helpers is_first: page === 1, is_last: page == pages.length } }; results = { ...results, collection: collection }; //console.log('response', res); //console.log('results', results); // Trigger a custom jQuery event globally that we can hook into from any other code $(document).trigger('results', results); // We can trigger the custom global riot event-bus from outside of components as it // is attached to the global riot object! if ( $trigger ) { $trigger('results', results); } return results; }; const injectSearchExternal = function() { // Inject our custom tab const $tab = $('.lia-search-tab-bar .lia-component-search-tabs .lia-tabs-standard').append(` <li role="presentation" class="search-external-tab lia-tabs lia-tabs-inactive is--custom"> <span><a class="search-external-link lia-link-navigation tab-link" role="tab" aria-selected="false" tabindex="0" href="${window.location.href}">${title}</a></span> </li> `).find('.search-external-tab'); // Removed via KBCOM-2830 /* const $filter = $(` <div class="lia-form-fieldset-wrapper lia-component-search-widget-external is--custom"> <a href="${window.location.href}" class="lia-common-dropdown-toggle" role="button">${title}</a> </div> `).insertBefore('.lia-component-quilt-search-page-thread-filters .lia-component-search-widget-location-filter'); */ // Handle clicks on our new tab: // The idea is to basically wipe the existing content from the page and mount the // custom search component instead. Any click on the regular tabs will behave like always and // trigger a page reload which will show the original content again $tab.find('.search-external-link').on('click', function(e) { e.preventDefault(); // Handle active state of tabs $(this).parents('.search-external-tab').addClass('lia-tabs-active').siblings('.lia-tabs-active').removeClass('lia-tabs-active'); // Then we clean out some of the content of the current page and make it look like a tab switch $('.lia-search-tab-bar .lia-component-search-widget-advanced-search-toggle, .lia-search-tab-bar .lia-component-search-actions, .lia-search-results .search-result-sorting').remove(); $('.lia-search-results .search-result-count').remove(); // Once cleaned up we inject the base tag and mount our custom component $('.lia-quilt-column-main-content .lia-quilt-row-main').empty().append('<div is="search-external" class="p:x15" data-cmp="cmp.global.search-external"></div>'); riot.mount('[is]:not([is] [is])', { title: title, results: results, params: params, getResults: getResults }); }); // The fake injected filter simply triggers the tab, it's meant to provide greater exposure (visually) // $filter.on('click', function(e) { // e.preventDefault(); // $tab.find('.search-external-link').trigger('click'); // }); }; // Pre-fetch results, why wait as we already know the query here, this also allows to inject a variety of // dynamic information into the native search results content and agument it with external results data // this also deals with the fact that the search page is an Angular component that reloads dynamically // when doing certain things... (not tab switching though) $core.when('.lia-message-search-container', async (el) => { if ( !document.querySelector('.lia-tabs.external-tab') ) { //console.log('Injecting external search!'); injectSearchExternal(); results = await getResults(params.get('q')); } }); // Attach custom event listener here to deal with non-component DOM updates as I don't want to handle those // within the custom component but also be updated if something changes there... $(document).on('results', function(e, results) { //console.log('onResults', e, results); if ( $('.lia-search-results .search-result-count').text().trim().length ) { $('.lia-search-results .search-result-count').attr('data-after', $core.str('general.from-community')); } // Update the tab tag $('.search-external-link').attr('data-after', (results?.total || 0)); }); } // Re-set production test mode if ( $core.config.env.match('stage') && params.get('test') ) { $core.config.env = 'stage'; } })(LITHIUM.jQuery); // Pull in global jQuery reference // </script> (function($) { //START END-USER CONFIGURATION //------------------------------ //selectors for hover card triggers var allHoverCardTriggers = '.author-name-link,.friend-list .friend a,.username a,.avatar,.user-avatar,.author-img, .authors a, .messageauthorusername a, a.lia-user-name-link, .js-latest-post-by-from a, .user-online-list li a, a.UserAvatar, .customUsersOnline a, #authors a,.dashboard-followers a.user-name, .dashboard-following a.user-name,.author-login-wrapper a, .hb-leaderboard a, .author-img-floated'; // Forward calling page's URL params to endpoint URL as well, helps with testing! var params = (new URL(location.href)).searchParams; var userApiUrl = '/plugins/custom/hubspot/hubspot/hovercardendpoint?' + ((params.set('user_id', '') == []._) && params.toString()); if($('.hover-card-container').length<1){ $('body').append('<div class="hover-card-container"></div>'); } var cardWrapper = $('.hover-card-container'); var error = false; var thisUserID = ''; var thisUserLogin = ''; var userLink =''; var cardTimer; var leaveTimer; function mouseenter(Elem) { var thisEl = Elem; cardTimer = setTimeout(function(){ var docWidth = $(document).width(); var rightSide = false; var userLink = thisEl.attr('href'); if($('.ViewProfilePage').length && $('img.lia-user-avatar-profile',thisEl).length){thisUserID = '';} else if(thisEl.attr('href')=='#' || thisEl.attr('href')=='' || !userLink.match('viewprofilepage')){ return false;} else{ var thisLen = (userLink).split('/'); thisUserID = (thisLen)[thisLen.length-1]; } var thisCard = $('.profileCard[data-user='+thisUserID+']',cardWrapper); var cardId = 'userProfileCard-'+ thisUserID; var addAttr = thisEl.attr('aria-describedby',cardId); var thisElTopOffset = Math.round(thisEl.offset().top+(thisEl.height()/2)+30); var thisElbottomoffset = "auto"; var className = ""; var winHeight = $(window).height(); var elOffset = thisEl.offset(); var scrollTop = $(window).scrollTop(); var elementOffset = thisEl.offset().top; var distanceTop = (elementOffset - scrollTop); var distanceBottom = (winHeight + scrollTop) - (elOffset.top + thisEl.outerHeight(true)); var distanceLeft = Math.round(thisEl.offset().left); var bodyHight = $('body').height(); var topParam = ''; var bottomparam = ''; var position = ''; var className = 'topArrow'; cardId if(distanceBottom < 300 ){ if(distanceLeft < 59){ thisCard.removeClass('bottomArrow'); var className = 'leftArrow'; var distanceLeft = (distanceLeft)+(39); var thisElTopOffset = (thisElTopOffset)-(150); }else{ var thisElTopOffset = (thisElTopOffset)-(301); var className = 'bottomArrow'; thisCard.removeClass('topArrow'); thisCard.removeClass('leftArrow'); var distanceLeft = (distanceLeft)-(45); } } else{ if(distanceLeft < 59){ thisCard.removeClass('topArrow'); var className = 'leftArrow'; var distanceLeft = (distanceLeft)+(39); var thisElTopOffset = (thisElTopOffset)-(150); }else{ thisCard.removeClass('leftArrow'); thisCard.removeClass('bottomArrow').addClass('topArrow'); var distanceLeft = (distanceLeft)-(45); } } if(thisCard.length && $('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).length<1){ $('.profileCard',cardWrapper).hide(); thisCard.addClass(className); rightSide?thisCard.addClass('rightArrow'):thisCard.removeClass('rightArrow'); thisCard.delay(0).css({'top':(thisElTopOffset),'left':distanceLeft,'bottom':thisElbottomoffset}).fadeIn(); } else { var ajaxReturn = ''; //just in case thisCard.remove(); //hover card wrapper markup var rightArrowClass = rightSide?'rightArrow':''; if(thisElTopOffset != "auto"){ topParam = 'px'; } if(thisElbottomoffset != "auto"){ bottomparam = 'px'; } var profileCardHtml = '<div id="'+cardId+'" role="tooltip" class="AllCard profileCard '+rightArrowClass+' '+className+'"style="display:block;top:'+thisElTopOffset+topParam+';left:'+distanceLeft+'px;bottom:'+thisElbottomoffset+bottomparam+';" data-user="'+thisUserID+'"></div>'; $.when( //get the background $.ajax({ type: 'GET', url: userApiUrl+thisUserID, dataType: 'html', success: function(data) { $('.profileCard',cardWrapper).hide(); ajaxReturn = data; } }) ) .done(function(){ cardWrapper.append(profileCardHtml); $('.profileCard[data-user='+thisUserID+']',cardWrapper).eq(0).empty().html(ajaxReturn); if($('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).length){ $('.profileCard[data-user='+thisUserID+'] .preloader',cardWrapper).parents('div.profileCard').remove(); } }) .fail(function(){ //uh oh - bail out! $('.profileCard',cardWrapper).hide(); }); } }, 360); } function mouseleave(e) { clearTimeout(cardTimer); // glowingblue: When the user leaves the hovercard trigger, wait because the leaving could be // to interact with the hovercard, if we don't wait it will just disappear...because // we left the trigger, right...so we'll have another handler that check if the mouse is // over the hovercard and if so clears this timer, so the card doesn't close here leaveTimer = setTimeout(function() { if ($('.profileCard[data-user="'+thisUserID+'"]',cardWrapper).length) { $('.profileCard[data-user="'+thisUserID+'"]',cardWrapper).fadeOut('fast'); } else { $(".profileCard").fadeOut('fast'); } }, 2400); } $(document).on("mouseenter focusin", allHoverCardTriggers, function(event) { if(!($(this).parents().hasClass('custom-header'))&& !($(this).parents().hasClass('green-wrap'))){ (leaveTimer !== []._) && clearTimeout(leaveTimer); mouseenter($(this)); event.stopPropagation(); } }); $(document).on("mouseleave focusout", allHoverCardTriggers, function(event) { (leaveTimer !== []._) && clearTimeout(leaveTimer); mouseleave(event); event.stopPropagation(); }); // glowingblue: Add handlers for when the users interacts with the hovercard, no closing! $('.hover-card-container').on('mouseenter', function(e) { (leaveTimer !== []._) && clearTimeout(leaveTimer); }); $('.hover-card-container').on('mouseleave', function(e) { (leaveTimer !== []._) && clearTimeout(leaveTimer); if ( $(e.target).is('.profileCard[style*="block"]') ) { leaveTimer = setTimeout(function() { $(e.target).fadeOut('fast'); }, 2400); } }); // glowingblue: add one global root level click handler to also close any visible hovercards // if the user taps/clicks outside the hovercard $(document).on('mousedown', function(e) { if ( !$(e.target).parents('.hover-card-container').length ) { (leaveTimer != []._) && clearTimeout(leaveTimer); $('.hover-card-container .profileCard[style*="block"]').each(function() { $(this).fadeOut('fast'); }); } }); })(LITHIUM.jQuery); (function($) { <!-- Expire all cookies --> document.cookie = "advocacyToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "Crowdvocate_jwt_token=; domain=.hubspot.com; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "Crowdvocate_user_ck=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; })(LITHIUM.jQuery); (function($) { document.addEventListener('gdpr.allow', function() { if (document.querySelector('.lia-cookie-banner-alert-accept a')) { document.querySelector('.lia-cookie-banner-alert-accept a').click(); } }); })(LITHIUM.jQuery); ;(function($){ var langMap = { 'en':'hubspot_community_en', 'es':'hubspot_community_es', 'fr':'hubspot_community_fr', 'ja':'hubspot_community_jp', 'pt-br':'hubspot_community_pt', 'de':'hubspot_community_de' } var nodeType = "board"; var langScope = langMap['en']; var isSearchPage = jQuery('body').hasClass('SearchPage'); var isIdeasLandingPage = jQuery('body').hasClass('ideaslandingpage'); if (nodeType === "community" && !isSearchPage && !isIdeasLandingPage) { var inputFormFilter = '<input name="filter" value="location" type="hidden">'; var inputFormLocation = '<input name="location" value="category:' + langScope + '" type="hidden">'; $('form.SearchForm').append(inputFormFilter).append(inputFormLocation); } else if (nodeType === "community" && isIdeasLandingPage) { var searchUrl = "/t5/forums/searchpage/tab/message?filter=location&location=idea-board:HubSpot_Ideas&collapse_discussion=true"; var query = jQuery('.SearchForm .lia-search-input-message').val(); jQuery(document).on('submit', 'form.SearchForm', function(e) { e.preventDefault(); var newQ = "&q=" + document.querySelector('.SearchForm .lia-search-input-wrapper input.search-input').value; window.location = window.location.origin + searchUrl + newQ; }) } })(LITHIUM.jQuery) LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7ed4a395","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7ed4a395_0","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7ed4a395_1","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7ed4a395_2","feedbackSelector":".InfoMessage"}); LITHIUM.AjaxFeedback(".lia-inline-ajax-feedback", "LITHIUM:hideAjaxFeedback", ".lia-inline-ajax-feedback-persist"); LITHIUM.Placeholder(); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.defaultAjaxFeedbackHtml = \"<div class=\\\"lia-inline-ajax-feedback lia-component-common-widget-ajax-feedback\\\">\\n\\t\\t\\t<div class=\\\"AjaxFeedback\\\" id=\\\"ajaxFeedback_16e8cb7f0020f9\\\"><\\/div>\\n\\t\\t\\t\\n\\t\\n\\n\\t\\n\\n\\t\\t<\\/div>\";LITHIUM.AjaxSupport.defaultAjaxErrorHtml = \"<span id=\\\"feedback-errorfeedback_16e8cb7f094497\\\"> <\\/span>\\n\\n\\t\\n\\t\\t<div class=\\\"InfoMessage lia-panel-feedback-inline-alert lia-component-common-widget-feedback\\\" id=\\\"feedback_16e8cb7f094497\\\">\\n\\t\\t\\t<div role=\\\"alert\\\" class=\\\"lia-text\\\">\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t<p ng-non-bindable=\\\"\\\" tabindex=\\\"0\\\">\\n\\t\\t\\t\\t\\t\\tSorry, unable to complete the action you requested.\\n\\t\\t\\t\\t\\t<\\/p>\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t<\\/div>\\n\\n\\t\\t\\t\\n\\t\\t<\\/div>\";LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7ef84b34', 'disableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, 'l1raAS5VLupBuwTov_p-cUL2W_tJNKyPC8WCZYEK9VA.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"wbhU5ALKA1ess2pr-NuYT0tP5UIUK0VWwsnzVf6xsck.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7ef84b34\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb7ed4a395_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.messagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7f214891', 'disableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, '7PqZ6FbdBhmvXs4kQ5pty_d_aG2VeXemc5-KygSPpWo.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"4ekL4YbZmlNAIV2y-DktpYf61cVN03O-XtO1QsygKK4.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7f214891\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb7ed4a395_1","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.tkbmessagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching for users...","emptyText":"No Matches","successText":"Users found:","defaultText":"Enter a user name or rank","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7f311ecd', 'disableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, 'Nwkm64cZf8wvwpdrObgqmPb-XwbTZ_q0CyxXfFHq-nY.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"KMpJdQAnA2KyJRvhMi6iSbqCEROG188Ztt7aY7-V5js.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7f311ecd\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#userSearchField_16e8cb7ed4a395","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield.usersearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AjaxSupport({"ajaxOptionsParam":{"event":"LITHIUM:userExistsQuery","parameters":{"javascript.ignore_combine_and_minify":"true"}},"tokenId":"ajax","elementSelector":"#userSearchField_16e8cb7ed4a395","action":"userExistsQuery","feedbackSelector":"#ajaxfeedback_16e8cb7ed4a395_0","url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield:userexistsquery?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","ajaxErrorEventName":"LITHIUM:ajaxError","token":"ezCA1kFbffVg6o9iJH_M6ezEIvObo0KnU_wSmfQ4YCA."}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7f41702b', 'disableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, 'U0Ik-lbrizPUR7oRhFemtfX0_qgpPhAKrHyInWqR2lw.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"MRSozj_RP-l8PbRsaQhm65LkKoKN4BLLtf5bgzMx8yQ.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7f41702b\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#noteSearchField_16e8cb7ed4a395_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.notesearchfield.notesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7f8d19bc', 'disableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, 'UYB2k-2siwFPOs-bJJEQVkjMwY7Y5GY1y_VZ5nCxhVA.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"9kcEgUMAHFLwH79TIh1e_eZ6hRCRmaPePbhKSIzqetc.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7f8d19bc\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#productSearchField_16e8cb7ed4a395","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.productsearchfield.productsearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.Link({"linkSelector":"a.lia-link-ticket-post-action"}); LITHIUM.AjaxSupport.fromLink('#enableAutoComplete_16e8cb7ed4a395', 'enableAutoComplete', '#ajaxfeedback_16e8cb7ed4a395_0', 'LITHIUM:ajaxError', {}, '79IvUckL0VjWuhQ_eKBsWfKpL8gPLxwbOMvUIV638gs.', 'ajax'); LITHIUM.Tooltip({"bodySelector":"body#lia-body","delay":30,"enableOnClickForTrigger":false,"predelay":10,"triggerSelector":"#link_16e8cb7ed4a395","tooltipContentSelector":"#link_16e8cb7ed4a395_0-tooltip-element .content","position":["bottom","left"],"tooltipElementSelector":"#link_16e8cb7ed4a395_0-tooltip-element","events":{"def":"focus mouseover keydown,blur mouseout keydown"},"hideOnLeave":true}); LITHIUM.HelpIcon({"selectors":{"helpIconSelector":".help-icon .lia-img-icon-help"}}); LITHIUM.SearchAutoCompleteToggle({"containerSelector":"#searchautocompletetoggle_16e8cb7ed4a395","enableAutoCompleteSelector":".search-autocomplete-toggle-link","enableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:enableAutoComplete","disableAutoCompleteSelector":".lia-autocomplete-toggle-off","disableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:disableAutoComplete","autoCompleteSelector":".lia-autocomplete-input"}); LITHIUM.SearchForm({"asSearchActionIdSelector":".lia-as-search-action-id","useAutoComplete":true,"selectSelector":".lia-search-form-granularity","useClearSearchButton":false,"buttonSelector":".lia-button-searchForm-action","asSearchActionIdParamName":"as-search-action-id","formSelector":"#lia-searchformV32_16e8cb7ed4a395","asSearchActionIdHeaderKey":"X-LI-AS-Search-Action-Id","inputSelector":"#messageSearchField_16e8cb7ed4a395_0:not(.lia-js-hidden)","clearSearchButtonSelector":null}); LITHIUM.Form.resetFieldForFocusFound(); (function($) { document.querySelector('a.login-link').classList.add('homepage-nav-login'); })(LITHIUM.jQuery); ;(function($){ $(document).ready(function() { $(".custom-user-menu-v2 .nav-link").click(function(e) { e.preventDefault(); $(".nav-popover.profile").toggleClass('show'); }); $(".search-toggle-action-icon-plus").on("click",function(e){ e.preventDefault(); $(this).parent().find(".plus-bar-main-content").toggle(); }); //User Avatar $('.header-tab-nav li span').click(function() { $('.header-tab-nav li span').removeClass("active"); if(this.id == 'profile'){ $('span#profile').addClass("active"); $('.header-tab-nav-content > div#profile-list-wrapper').show(); $('.header-tab-nav-content > div#admin-list-wrapper').hide(); $('.header-tab-nav-content > div#profile-list-wrapper').removeClass('profile-menu-dropdown'); } if(this.id == 'admin'){ $('span#admin').addClass("active"); $('.header-tab-nav-content > div#profile-list-wrapper').hide(); $('.header-tab-nav-content > div#admin-list-wrapper').show(); $('.header-tab-nav-content > div#profile-list-wrapper').addClass('profile-menu-dropdown'); } var indexer = $(this).index(); //gets the current index of (this) which is #header-tab-nav li $('.header-tab-nav-content > div:eq(' + indexer + ')').fadeIn(); //uses whatever index the link has to open the corresponding box }); $(this).mouseup(function (e){ var customButton = $('.nav-popover.profile'); if(!$('.custom-menu-caret').is(e.target) && $('.custom-menu-caret').has(e.target).length === 0){ if(!customButton.is(e.target) && customButton.has(e.target).length === 0){ if (!$('.custom-user-menu-v2 > .nav-link').is(e.target) && $('.custom-user-menu-v2 > .nav-link').has(e.target).length === 0) { customButton.removeClass('show'); } } } var menuWrapper = $('.menu-wrapper'); if(!menuWrapper.is(e.target) && menuWrapper.has(e.target).length === 0){ if (!$('.menu').is(e.target) && $('.menu').has(e.target).length === 0) { menuWrapper.removeClass('offcanvas'); } } var container = $(".plus-bar-main-content"); var customButton = $(".search-toggle-action-icon-plus"); if (!customButton.is(e.target) && customButton.has(e.target).length === 0) { container.hide(); } if(!$('.lang-picker-wrapper').is(e.target) && $('.lang-picker-wrapper').has(e.target).length === 0){ if (!$('.lang-picker').is(e.target) && $('.lang-picker').has(e.target).length === 0) { $('.lang-picker').removeClass('show'); } } }); //SCROLL JS $(window).scroll(function(e) { e.preventDefault(); if($('.nav-popover.profile').hasClass("show")){ if ($(this).scrollTop() > 0) { $('.nav-popover.profile').removeClass("show"); } else { $('.nav-popover.profile').addClass("show"); } } if($('.nav-popover.get-hubspot').hasClass("show")){ if ($(this).scrollTop() > 0) { $('.nav-popover.get-hubspot').removeClass("show"); } else { $('.nav-popover.get-hubspot').addClass("show"); } } if ($(this).scrollTop() > 0) { $('.search-input.lia-search-input-message').blur(); $('.plus-bar-main-content').hide(); } }); }); jQuery('.lang-picker-wrapper').click(function(){ jQuery(".lang-picker").toggleClass('show'); }); jQuery('.lia-cat-sub-editor-modal .lia-ui-modal-footer .lia-button-Submit-action').live('click',function(){ setTimeout( function() { location.reload(true); },1000); }); })(LITHIUM.jQuery); ;(function($){ var langMap = { 'en':'hubspot_community_en', 'es':'hubspot_community_es', 'fr':'hubspot_community_fr', 'ja':'hubspot_community_jp', 'pt-br':'hubspot_community_pt', 'de':'hubspot_community_de' } var nodeType = "board"; var langScope = langMap['en']; var isSearchPage = jQuery('body').hasClass('SearchPage'); var isIdeasLandingPage = jQuery('body').hasClass('ideaslandingpage'); if (nodeType === "community" && !isSearchPage && !isIdeasLandingPage) { var inputFormFilter = '<input name="filter" value="location" type="hidden">'; var inputFormLocation = '<input name="location" value="category:' + langScope + '" type="hidden">'; $('form.SearchForm').append(inputFormFilter).append(inputFormLocation); } else if (nodeType === "community" && isIdeasLandingPage) { var searchUrl = "/t5/forums/searchpage/tab/message?filter=location&location=idea-board:HubSpot_Ideas&collapse_discussion=true"; var query = jQuery('.SearchForm .lia-search-input-message').val(); jQuery(document).on('submit', 'form.SearchForm', function(e) { e.preventDefault(); var newQ = "&q=" + document.querySelector('.SearchForm .lia-search-input-wrapper input.search-input').value; window.location = window.location.origin + searchUrl + newQ; }) } })(LITHIUM.jQuery) LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7fdfa9e1","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7fdfa9e1_0","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7fdfa9e1_1","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb7fdfa9e1_2","feedbackSelector":".InfoMessage"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb7ffe5864', 'disableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, 'SfcZFdzP-TxncDtHbkE30K2RTOF_LhM5yoG8VaBMfW0.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"XU5aN5jwbP6dWn_WiKXS487QqFAvJ_DrLtJTSGgYNDY.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb7ffe5864\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb7fdfa9e1_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.messagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb8010c6ff', 'disableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, '2rpUpu24VPXX5TYpicsDTsngpXw8BBq-umtchtWUTKY.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"uA3kSeHMhgaQv0BXjmCzOkmqD9uC-XWylgHf2bVaLZo.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb8010c6ff\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb7fdfa9e1_1","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.tkbmessagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching for users...","emptyText":"No Matches","successText":"Users found:","defaultText":"Enter a user name or rank","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb801f10ec', 'disableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, 'pllCRADzce-Qd6j4-8bc3PP6oJddbB1jolQQTvR_v3U.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"AO_xLo-wcP9KFtirJQSdhN52sl4aEvMtN6Q9vt9Udwc.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb801f10ec\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#userSearchField_16e8cb7fdfa9e1","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield.usersearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AjaxSupport({"ajaxOptionsParam":{"event":"LITHIUM:userExistsQuery","parameters":{"javascript.ignore_combine_and_minify":"true"}},"tokenId":"ajax","elementSelector":"#userSearchField_16e8cb7fdfa9e1","action":"userExistsQuery","feedbackSelector":"#ajaxfeedback_16e8cb7fdfa9e1_0","url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield:userexistsquery?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","ajaxErrorEventName":"LITHIUM:ajaxError","token":"p3QWI39Eqt3auKdC9nLcVNVs0HYoeessCi_1nvpqv3s."}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb80302c2c', 'disableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, 'yPgr3i0Vut1h1bRLo_OFSgaAqZIGZPiVkq8g6ZTZK84.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"OZ_9MJCILMpBDbU3Dy9ByF_UPgcLtJriDAvgCVu7Zwc.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb80302c2c\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#noteSearchField_16e8cb7fdfa9e1_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.notesearchfield.notesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb803e38d8', 'disableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, 'zHXPJQPJaLE8LVvUfq4A9xz1OHCN03gECBVPQZ61-EQ.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"38L8B7u7mEID8q9nvYZNzoPxYozrLRb3SaVdOfAOXac.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb803e38d8\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#productSearchField_16e8cb7fdfa9e1","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.productsearchfield.productsearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AjaxSupport.fromLink('#enableAutoComplete_16e8cb7fdfa9e1', 'enableAutoComplete', '#ajaxfeedback_16e8cb7fdfa9e1_0', 'LITHIUM:ajaxError', {}, 'jz0kvqSZ-ofLM6wXAbVdNgW-UVOR-8VdlhgB6EWDYyQ.', 'ajax'); LITHIUM.Tooltip({"bodySelector":"body#lia-body","delay":30,"enableOnClickForTrigger":false,"predelay":10,"triggerSelector":"#link_16e8cb7fdfa9e1","tooltipContentSelector":"#link_16e8cb7fdfa9e1_0-tooltip-element .content","position":["bottom","left"],"tooltipElementSelector":"#link_16e8cb7fdfa9e1_0-tooltip-element","events":{"def":"focus mouseover keydown,blur mouseout keydown"},"hideOnLeave":true}); LITHIUM.HelpIcon({"selectors":{"helpIconSelector":".help-icon .lia-img-icon-help"}}); LITHIUM.SearchAutoCompleteToggle({"containerSelector":"#searchautocompletetoggle_16e8cb7fdfa9e1","enableAutoCompleteSelector":".search-autocomplete-toggle-link","enableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:enableAutoComplete","disableAutoCompleteSelector":".lia-autocomplete-toggle-off","disableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:disableAutoComplete","autoCompleteSelector":".lia-autocomplete-input"}); LITHIUM.SearchForm({"asSearchActionIdSelector":".lia-as-search-action-id","useAutoComplete":true,"selectSelector":".lia-search-form-granularity","useClearSearchButton":false,"buttonSelector":".lia-button-searchForm-action","asSearchActionIdParamName":"as-search-action-id","formSelector":"#lia-searchformV32_16e8cb7fdfa9e1","nodesModel":{"HubSpot_Ideas|idea-board":{"title":"Search Idea Exchange: HubSpot Ideas","inputSelector":".lia-search-input-message"},"top|category":{"title":"Search Category: HubSpot Ideas","inputSelector":".lia-search-input-message"},"user|user":{"title":"Users","inputSelector":".lia-search-input-user"},"mjmao93648|community":{"title":"Search Community: HubSpot Ideas","inputSelector":".lia-search-input-message"}},"asSearchActionIdHeaderKey":"X-LI-AS-Search-Action-Id","inputSelector":"#messageSearchField_16e8cb7fdfa9e1_0:not(.lia-js-hidden)","clearSearchButtonSelector":null}); (function($) { document.querySelector('a.login-link').classList.add('homepage-nav-login'); })(LITHIUM.jQuery); (function($) { if ( $('.lia-notification-feed-page-link').length ) { $('.lia-notification-feed-page-link').addClass('nav-notifs'); } if ( $('.private-notes-link').length ) { $('.private-notes-link').addClass('nav-mail'); } })(LITHIUM.jQuery); ;(function($){ $('.custom-search-focus').on('click', function() { $('.lia-search-input-message').focus(); }); })(LITHIUM.jQuery); // Pull in global jQuery reference if (document.querySelectorAll('.lia-component-admin-widget-moderation-manager')[0]) { document.querySelectorAll('.lia-component-admin-widget-moderation-manager')[0].href = "/t5/bizapps/page/tab/community%3Amoderation?filter=includeForums&sort_by=-topicPostDate&include_forums=true&collapse_discussion=true" } ;(function($) { $("#get-hubspot-free").click(function(){ $("#get-hubspot").toggleClass("show"); }); // Closes dropdown boxes when clicking outside of the box // click listener applied inline, function in script tag window.onclick = function(e) { if (e.target?.matches && !e.target?.matches('#get-hubspot-free')) { if (document.getElementById("get-hubspot")) { if (document.getElementById("get-hubspot").classList.contains('show')) { document.getElementById("get-hubspot").classList.remove('show'); } } } if (e.target?.matches && !e.target?.matches('#current-language')) { if (document.getElementById("lang-picker-global")) { if (document.getElementById("lang-picker-global").classList.contains('show')) { document.getElementById("lang-picker-global").classList.remove('show'); } } } }; $(window).scroll(function(){ if ($(this).scrollTop() > 65) { $('.forum-nav-bar').addClass('ch-sticky'); $('.community-header-nav').addClass('ch-space'); } else { $('.forum-nav-bar').removeClass('ch-sticky'); $('.community-header-nav').removeClass('ch-space');; } }); $('span.custom-menu-caret').on('click',function(){ $(this).siblings('.nav-popover.profile').toggleClass('show'); }); })(LITHIUM.jQuery); (function($) { $(document).ready(function(){ try{ var PostURl = '' if('board'==='board'){ var PostURl = '/t5/forums/postpage/board-id/HubSpot_Ideas' }else if('board'==='category') { var PostURl = '/t5/forums/postpage/category-id/HubSpot_Ideas'} var searchSelector = $('.custom-search-wrapper .lia-autocomplete-container .lia-autocomplete-footer'); var data = "<div class='search-post-buttons'><span>Can't find what you're looking for?</span> <a href='"+PostURl+"' class='btn btn-sm button-primary'><span>Create Idea</span></a> </div>"; $(data).insertAfter(searchSelector[0]); }catch(err){ console.log(err); } }); })(LITHIUM.jQuery); (function($) { $(document).ready(function(){ $('.lia-quilt-idea-exchange-page-filtered-v2 .custom-v2-banner .search-input, .lia-quilt-idea-page-filtered .custom-v2-banner .search-input').attr('placeholder', 'Search for Ideas'); }); })(LITHIUM.jQuery); ;(function($){ var langMap = { 'en':'hubspot_community_en', 'es':'hubspot_community_es', 'fr':'hubspot_community_fr', 'ja':'hubspot_community_jp', 'pt-br':'hubspot_community_pt', 'de':'hubspot_community_de' } var nodeType = "board"; var langScope = langMap['en']; var isSearchPage = jQuery('body').hasClass('SearchPage'); var isIdeasLandingPage = jQuery('body').hasClass('ideaslandingpage'); if (nodeType === "community" && !isSearchPage && !isIdeasLandingPage) { var inputFormFilter = '<input name="filter" value="location" type="hidden">'; var inputFormLocation = '<input name="location" value="category:' + langScope + '" type="hidden">'; $('form.SearchForm').append(inputFormFilter).append(inputFormLocation); } else if (nodeType === "community" && isIdeasLandingPage) { var searchUrl = "/t5/forums/searchpage/tab/message?filter=location&location=idea-board:HubSpot_Ideas&collapse_discussion=true"; var query = jQuery('.SearchForm .lia-search-input-message').val(); jQuery(document).on('submit', 'form.SearchForm', function(e) { e.preventDefault(); var newQ = "&q=" + document.querySelector('.SearchForm .lia-search-input-wrapper input.search-input').value; window.location = window.location.origin + searchUrl + newQ; }) } })(LITHIUM.jQuery) LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb821564f9","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb821564f9_0","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb821564f9_1","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16e8cb821564f9_2","feedbackSelector":".InfoMessage"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb823809c2', 'disableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, '2Q7vmYDCcX8jXZOd39VXryBhhaFoah7MkE-v-FbM_E4.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"QlsrGf_Kh2h4rRzVGmJQwBb5SFC3sItI69S3CIQh_m0.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb823809c2\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb821564f9_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.messagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb824d9052', 'disableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, 'g2DlysK8gaZDINFDsnpShZvw3GvUThioP26BUF_IqO4.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"dRmMQJEgdeQE32HUmfiDCc1btxNm_IExBoKFt7pnL7k.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb824d9052\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":3},"inputSelector":"#messageSearchField_16e8cb821564f9_1","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.tkbmessagesearchfield.messagesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching for users...","emptyText":"No Matches","successText":"Users found:","defaultText":"Enter a user name or rank","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb82600735', 'disableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, 'zepo8vIUEdL_W5YjKzwYerUsqOq3ZjjMYxGNVZpGaG4.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"JzUbsXyDOWefHITWNCiD8zwPuUea9YSPcycSiEOPDGM.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb82600735\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#userSearchField_16e8cb821564f9","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield.usersearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AjaxSupport({"ajaxOptionsParam":{"event":"LITHIUM:userExistsQuery","parameters":{"javascript.ignore_combine_and_minify":"true"}},"tokenId":"ajax","elementSelector":"#userSearchField_16e8cb821564f9","action":"userExistsQuery","feedbackSelector":"#ajaxfeedback_16e8cb821564f9_0","url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.usersearchfield:userexistsquery?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","ajaxErrorEventName":"LITHIUM:ajaxError","token":"yzQCVYm_ridHHf1Gw_9AWuiMdqOz63vhoWJJsVmIzYA."}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb82751c99', 'disableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, 'GFOAw1AATwI8iAOeYYyA3rsOZAzOn1EFPr1bEMh07_s.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"WNSy5G-Ahc8zY4n1GOCbDVJgKxl-RPJgRdlkjsc8PXo.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb82751c99\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#noteSearchField_16e8cb821564f9_0","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.notesearchfield.notesearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AutoComplete({"options":{"triggerTextLength":0,"updateInputOnSelect":true,"loadingText":"Searching...","emptyText":"No Matches","successText":"Results:","defaultText":"Enter a search word","disabled":false,"footerContent":[{"scripts":"\n\n;(function($){LITHIUM.Link=function(params){var $doc=$(document);function handler(event){var $link=$(this);var token=$link.data('lia-action-token');if($link.data('lia-ajax')!==true&&token!==undefined){if(event.isPropagationStopped()===false&&event.isImmediatePropagationStopped()===false&&event.isDefaultPrevented()===false){event.stop();var $form=$('<form>',{method:'POST',action:$link.attr('href'),enctype:'multipart/form-data'});var $ticket=$('<input>',{type:'hidden',name:'lia-action-token',value:token});$form.append($ticket);$(document.body).append($form);$form.submit();$doc.trigger('click');}}}\nif($doc.data('lia-link-action-handler')===undefined){$doc.data('lia-link-action-handler',true);$doc.on('click.link-action',params.linkSelector,handler);$.fn.on=$.wrap($.fn.on,function(proceed){var ret=proceed.apply(this,$.makeArray(arguments).slice(1));if(this.is(document)){$doc.off('click.link-action',params.linkSelector,handler);proceed.call(this,'click.link-action',params.linkSelector,handler);}\nreturn ret;});}}})(LITHIUM.jQuery);\r\n\nLITHIUM.Link({\n \"linkSelector\" : \"a.lia-link-ticket-post-action\"\n});LITHIUM.AjaxSupport.fromLink('#disableAutoComplete_16e8cb82881ea2', 'disableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, 'eonKmqEs9BdMQp8TBxWPJFq_dH2PiOi6OkEpElJTRZg.', 'ajax');","content":"<a class=\"lia-link-navigation lia-autocomplete-toggle-off lia-link-ticket-post-action lia-component-search-action-disable-auto-complete\" data-lia-action-token=\"HN4Y-5Nm0Rd81bBCIWX4RAip6TKCTJshNtg9JKdo57o.\" rel=\"nofollow\" id=\"disableAutoComplete_16e8cb82881ea2\" href=\"https://community.hubspot.com/t5/ideas/v3/ideapage.disableautocomplete:disableautocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=action/contributions/searchactions\">Turn off suggestions<\/a>"}],"prefixTriggerTextLength":0},"inputSelector":"#productSearchField_16e8cb821564f9","redirectToItemLink":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.searchformv32.productsearchfield.productsearchfield:autocomplete?t:ac=blog-id/HubSpot_Ideas/article-id/24960&t:cp=search/contributions/page","resizeImageEvent":"LITHIUM:renderImages"}); LITHIUM.AjaxSupport.fromLink('#enableAutoComplete_16e8cb821564f9', 'enableAutoComplete', '#ajaxfeedback_16e8cb821564f9_0', 'LITHIUM:ajaxError', {}, '6-ddGRDPQaaos0wFKT0A16Q6Vw96n89rtIE3yohcHL0.', 'ajax'); LITHIUM.Tooltip({"bodySelector":"body#lia-body","delay":30,"enableOnClickForTrigger":false,"predelay":10,"triggerSelector":"#link_16e8cb821564f9","tooltipContentSelector":"#link_16e8cb821564f9_0-tooltip-element .content","position":["bottom","left"],"tooltipElementSelector":"#link_16e8cb821564f9_0-tooltip-element","events":{"def":"focus mouseover keydown,blur mouseout keydown"},"hideOnLeave":true}); LITHIUM.HelpIcon({"selectors":{"helpIconSelector":".help-icon .lia-img-icon-help"}}); LITHIUM.SearchAutoCompleteToggle({"containerSelector":"#searchautocompletetoggle_16e8cb821564f9","enableAutoCompleteSelector":".search-autocomplete-toggle-link","enableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:enableAutoComplete","disableAutoCompleteSelector":".lia-autocomplete-toggle-off","disableAutocompleteSuccessEvent":"LITHIUM:ajaxSuccess:disableAutoComplete","autoCompleteSelector":".lia-autocomplete-input"}); LITHIUM.SearchForm({"asSearchActionIdSelector":".lia-as-search-action-id","useAutoComplete":true,"selectSelector":".lia-search-form-granularity","useClearSearchButton":false,"buttonSelector":".lia-button-searchForm-action","asSearchActionIdParamName":"as-search-action-id","formSelector":"#lia-searchformV32_16e8cb821564f9","nodesModel":{"HubSpot_Ideas|idea-board":{"title":"Search Idea Exchange: HubSpot Ideas","inputSelector":".lia-search-input-message"},"top|category":{"title":"Search Category: HubSpot Ideas","inputSelector":".lia-search-input-message"},"user|user":{"title":"Users","inputSelector":".lia-search-input-user"},"mjmao93648|community":{"title":"Search Community: HubSpot Ideas","inputSelector":".lia-search-input-message"}},"asSearchActionIdHeaderKey":"X-LI-AS-Search-Action-Id","inputSelector":"#messageSearchField_16e8cb821564f9_0:not(.lia-js-hidden)","clearSearchButtonSelector":null}); LITHIUM.DropDownMenu({"userMessagesFeedOptionsClass":"div.user-messages-feed-options-menu a.lia-js-menu-opener","menuOffsetContainer":".lia-menu-offset-container","hoverLeaveEvent":"LITHIUM:hoverLeave","mouseoverElementSelector":".lia-js-mouseover-menu","userMessagesFeedOptionsAriaLabel":"Show contributions of the user, selected option is Options. You may choose another option from the dropdown menu.","disabledLink":"lia-link-disabled","menuOpenCssClass":"dropdownHover","menuElementSelector":".lia-menu-navigation-wrapper","dialogSelector":".lia-panel-dialog-trigger","messageOptions":"lia-component-message-view-widget-action-menu","menuBarComponent":"lia-component-menu-bar","closeMenuEvent":"LITHIUM:closeMenu","menuOpenedEvent":"LITHIUM:menuOpened","pageOptions":"lia-component-community-widget-page-options","clickElementSelector":".lia-js-click-menu","menuItemsSelector":".lia-menu-dropdown-items","menuClosedEvent":"LITHIUM:menuClosed"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown","menuItemsSelector":".lia-menu-dropdown-items"}}); jQuery(document).ready(function() { function moveFollowButton() { let followText = "Follow"; let unfollowText = "Following"; let followToolTip = "Recieve email updates on this thread"; let unfollowToolTip = "Stop receiving email updates on this thread"; let signInToolTip = "Sign in to follow this topic"; let messages = jQuery('.ForumTopicPage .MessageView'); let ideaOptionsMenu = jQuery('.IdeaPage ul#dropdownmenuitems'); let blogOptionsMenu = jQuery('.BlogPage .lia-page-options ul.lia-menu-dropdown-items'); function ReturnFollowButton(elem, contentType, buttonClass) { let followSelector; let unfollowSelector; switch (contentType) { case 'forum': followSelector = 'addMessageUserEmailSubscription'; unfollowSelector = 'removeMessageUserEmailSubscription'; break; case 'idea': followSelector = 'addThreadUserEmailSubscription'; unfollowSelector = 'removeThreadUserEmailSubscription'; break; case 'blog': followSelector = 'addBoardUserEmailSubscription'; unfollowSelector = 'removeBoardUserEmailSubscription'; break; default: break; } let subscribeLink = elem.find('a.' + followSelector); let followWrapper; if (!subscribeLink.length) { subscribeLink = elem.find('a.'+ unfollowSelector); followWrapper = jQuery('<span>').addClass(buttonClass).addClass('unfollow'); subscribeLink.text(unfollowText); subscribeLink.attr('title', unfollowToolTip); if (!subscribeLink.length) { subscribeLink = elem.find('span.' + followSelector); if (subscribeLink.length) { followWrapper = jQuery('<span>').addClass(buttonClass).addClass('follow').addClass('disabled'); subscribeLink.text(followText); subscribeLink.attr('title', signInToolTip); } } } else { followWrapper = jQuery('<span>').addClass(buttonClass).addClass('follow'); subscribeLink.text(followText); subscribeLink.attr('title', followToolTip); } return [followWrapper, subscribeLink]; } if (messages.length) { messages.each(function(i) { let followItems = ReturnFollowButton(jQuery(this), 'forum', 'follow-wrapper'); let followWrapper = followItems[0]; let subscribeLink = followItems[1]; if (window.innerWidth > 768) { followWrapper.append(subscribeLink); let followContainer = jQuery(this).find('div.lia-message-author-username.lia-component-user-name'); followContainer.append(followWrapper); } }) } else if (ideaOptionsMenu.length) { let followItems = ReturnFollowButton(ideaOptionsMenu, 'idea', 'follow-wrapper'); let followWrapper = followItems[0]; let subscribeLink = followItems[1]; if (window.innerWidth > 768) { followWrapper.append(subscribeLink); let followContainer = jQuery('.lia-component-idea-topic .DateTime'); followContainer.append(followWrapper); } } else if (blogOptionsMenu.length) { let followItems = ReturnFollowButton(blogOptionsMenu, 'blog', 'follow-wrapper btn btn-sm button-primary'); let followWrapper = followItems[0]; let subscribeLink = followItems[1]; console.log(followItems); if (window.innerWidth > 768) { followWrapper.append(subscribeLink); let followContainer = jQuery('.blog-listing-page-options .follow-container'); followContainer.append(followWrapper); } } } moveFollowButton(); jQuery('.lia-js-menu-opener').removeAttr("href"); }) LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_0","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenu({"userMessagesFeedOptionsClass":"div.user-messages-feed-options-menu a.lia-js-menu-opener","menuOffsetContainer":".lia-menu-offset-container","hoverLeaveEvent":"LITHIUM:hoverLeave","mouseoverElementSelector":".lia-js-mouseover-menu","userMessagesFeedOptionsAriaLabel":"Show contributions of the user, selected option is Show <title> builder for blog, author, and topic listing pages post option menu. You may choose another option from the dropdown menu.","disabledLink":"lia-link-disabled","menuOpenCssClass":"dropdownHover","menuElementSelector":".lia-menu-navigation-wrapper","dialogSelector":".lia-panel-dialog-trigger","messageOptions":"lia-component-message-view-widget-action-menu","menuBarComponent":"lia-component-menu-bar","closeMenuEvent":"LITHIUM:closeMenu","menuOpenedEvent":"LITHIUM:menuOpened","pageOptions":"lia-component-community-widget-page-options","clickElementSelector":".lia-js-click-menu","menuItemsSelector":".lia-menu-dropdown-items","menuClosedEvent":"LITHIUM:menuClosed"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_0","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.CustomEvent('.lia-custom-event', 'click'); LITHIUM.AjaxSupport.fromLink('#kudoEntity', 'kudoEntity', '#ajaxfeedback', 'LITHIUM:ajaxError', {}, 'gLx2mxC-lIvTXXMbWGIge9pp-yvdAgkXs7ivZTT5CUg.', 'ajax'); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "kudoEntity", "actions" : [ { "context" : "envParam:entity", "action" : "rerender" } ] } ], "componentId" : "kudos.widget.button", "initiatorBinding" : true, "selector" : "#kudosButtonV2", "parameters" : { "displayStyle" : "horizontal", "disallowZeroCount" : "false", "revokeMode" : "true", "kudosable" : "true", "showCountOnly" : "false", "disableKudosForAnonUser" : "false", "useCountToKudo" : "false", "entity" : "216251", "linkDisabled" : "false" }, "initiatorDataMatcher" : "data-lia-kudos-id" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_1","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_2","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenu({"userMessagesFeedOptionsClass":"div.user-messages-feed-options-menu a.lia-js-menu-opener","menuOffsetContainer":".lia-menu-offset-container","hoverLeaveEvent":"LITHIUM:hoverLeave","mouseoverElementSelector":".lia-js-mouseover-menu","userMessagesFeedOptionsAriaLabel":"Show contributions of the user, selected option is Show comment option menu. You may choose another option from the dropdown menu.","disabledLink":"lia-link-disabled","menuOpenCssClass":"dropdownHover","menuElementSelector":".lia-menu-navigation-wrapper","dialogSelector":".lia-panel-dialog-trigger","messageOptions":"lia-component-message-view-widget-action-menu","menuBarComponent":"lia-component-menu-bar","closeMenuEvent":"LITHIUM:closeMenu","menuOpenedEvent":"LITHIUM:menuOpened","pageOptions":"lia-component-community-widget-page-options","clickElementSelector":".lia-js-click-menu","menuItemsSelector":".lia-menu-dropdown-items","menuClosedEvent":"LITHIUM:menuClosed"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_1","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_0', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.fromLink('#kudoEntity_0', 'kudoEntity', '#ajaxfeedback_0', 'LITHIUM:ajaxError', {}, '9I4cR-QDPVQrvFdpAH-34ytz-fAvqNnAsUHVfvbocTs.', 'ajax'); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "kudoEntity", "actions" : [ { "context" : "envParam:entity", "action" : "rerender" } ] } ], "componentId" : "kudos.widget.button", "initiatorBinding" : true, "selector" : "#kudosButtonV2_0", "parameters" : { "displayStyle" : "horizontal", "disallowZeroCount" : "false", "revokeMode" : "true", "kudosable" : "true", "showCountOnly" : "false", "disableKudosForAnonUser" : "false", "useCountToKudo" : "false", "entity" : "15783", "linkDisabled" : "false" }, "initiatorDataMatcher" : "data-lia-kudos-id" }); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "15783", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_3","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_4","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_2","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_1', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_0", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "16875", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_5","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_6","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_3","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_2', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.fromLink('#kudoEntity_1', 'kudoEntity', '#ajaxfeedback_2', 'LITHIUM:ajaxError', {}, 'zA_sjvPr8McG91Bp2KyV6Ypkes1KqjCgmKmgNVsqtfY.', 'ajax'); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "kudoEntity", "actions" : [ { "context" : "envParam:entity", "action" : "rerender" } ] } ], "componentId" : "kudos.widget.button", "initiatorBinding" : true, "selector" : "#kudosButtonV2_2", "parameters" : { "displayStyle" : "horizontal", "disallowZeroCount" : "false", "revokeMode" : "true", "kudosable" : "true", "showCountOnly" : "false", "disableKudosForAnonUser" : "false", "useCountToKudo" : "false", "entity" : "33551", "linkDisabled" : "false" }, "initiatorDataMatcher" : "data-lia-kudos-id" }); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_1", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "33551", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_7","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_8","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_4","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_3', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.fromLink('#kudoEntity_2', 'kudoEntity', '#ajaxfeedback_3', 'LITHIUM:ajaxError', {}, 'Cv47ACUoQUjy1_vEILW0Nc7u9I5iMqjxa--1qq6SCRc.', 'ajax'); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "kudoEntity", "actions" : [ { "context" : "envParam:entity", "action" : "rerender" } ] } ], "componentId" : "kudos.widget.button", "initiatorBinding" : true, "selector" : "#kudosButtonV2_3", "parameters" : { "displayStyle" : "horizontal", "disallowZeroCount" : "false", "revokeMode" : "true", "kudosable" : "true", "showCountOnly" : "false", "disableKudosForAnonUser" : "false", "useCountToKudo" : "false", "entity" : "63569", "linkDisabled" : "false" }, "initiatorDataMatcher" : "data-lia-kudos-id" }); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_2", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "63569", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_9","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_10","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_5","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_4', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_3", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "94392", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_11","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_12","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_6","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_5', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_4", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "186695", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_13","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_14","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_7","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_6', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_5", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "187241", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_15","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_16","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_8","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_7', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_6", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "190708", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_17","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_18","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_9","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_8', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_7", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "216216", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_19","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_20","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_10","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_9', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_8", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "218816", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_21","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_22","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_11","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_10', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_9", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "242769", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_23","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_24","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_12","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_11', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_10", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "243564", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_25","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_26","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_13","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_12', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_11", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "244442", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_27","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_28","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_14","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_13', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_12", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "244842", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_29","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_30","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_15","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_14', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_13", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "253192", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_31","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_32","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_16","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_15', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_14", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "253666", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_33","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_34","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_17","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_16', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_15", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "266053", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_35","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_36","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_18","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_17', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_16", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "267481", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_37","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_38","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_19","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_18', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_17", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "268231", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_39","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_40","feedbackSelector":".InfoMessage"}); LITHIUM.DropDownMenuVisibilityHandler({"selectors":{"menuSelector":"#actionMenuDropDown_20","menuItemsSelector":".lia-menu-dropdown-items"}}); LITHIUM.MessageBodyDisplay('#bodyDisplay_19', '.lia-truncated-body-container', '#viewMoreLink', '.lia-full-body-container' ); LITHIUM.AjaxSupport.ComponentEvents.set({ "eventActions" : [ { "event" : "approveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "unapproveMessage", "actions" : [ { "context" : "", "action" : "rerender" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "deleteMessage", "actions" : [ { "context" : "lia-deleted-state", "action" : "addClassName" }, { "context" : "", "action" : "pulsate" } ] }, { "event" : "QuickReply", "actions" : [ { "context" : "envParam:feedbackData", "action" : "rerender" } ] }, { "event" : "expandMessage", "actions" : [ { "context" : "envParam:quiltName,expandedQuiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswer", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "ProductAnswerComment", "actions" : [ { "context" : "envParam:selectedMessage", "action" : "rerender" } ] }, { "event" : "editProductMessage", "actions" : [ { "context" : "envParam:quiltName,message", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAction", "actions" : [ { "context" : "envParam:quiltName,message,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "ProductMessageEdit", "actions" : [ { "context" : "envParam:quiltName", "action" : "rerender" } ] }, { "event" : "MessagesWidgetMessageEdit", "actions" : [ { "context" : "envParam:quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "AcceptSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "RevokeSolutionAction", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeThreadUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "addMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "removeMessageUserEmailSubscription", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "markAsSpamWithoutRedirect", "actions" : [ { "context" : "", "action" : "rerender" } ] }, { "event" : "MessagesWidgetAnswerForm", "actions" : [ { "context" : "envParam:messageUid,page,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditAnswerForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] }, { "event" : "MessagesWidgetEditCommentForm", "actions" : [ { "context" : "envParam:messageUid,quiltName,product,contextId,contextUrl", "action" : "rerender" } ] } ], "componentId" : "forums.widget.message-view", "initiatorBinding" : true, "selector" : "#messageview_18", "parameters" : { "disableLabelLinks" : "false", "truncateBodyRetainsHtml" : "false", "forceSearchRequestParameterForBlurbBuilder" : "false", "kudosLinksDisabled" : "false", "useSubjectIcons" : "true", "quiltName" : "IdeaReplyMessage", "truncateBody" : "true", "message" : "269679", "includeRepliesModerationState" : "true", "useSimpleView" : "false", "useTruncatedSubject" : "true", "disableLinks" : "false", "messageViewOptions" : "1111110111111111111111101110100101111101", "displaySubject" : "true" }, "initiatorDataMatcher" : "data-lia-message-uid" }); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_41","feedbackSelector":".InfoMessage"}); LITHIUM.InformationBox({"updateFeedbackEvent":"LITHIUM:updateAjaxFeedback","componentSelector":"#informationbox_42","feedbackSelector":".InfoMessage"}); setInterval(function(){ if (jQuery('#tinyMceEditor_ifr').contents().find('#tinymce').css('background') == 'transparent') { return; } jQuery('#tinyMceEditor_ifr').contents().find('#tinymce').css('background','transparent'); }, 100); //extract the current status and place it in the header of the MessageStatus box jQuery('.lia-component-body .MessageStatus').each(function(i, v) { var currentStatus = '#status-container-' + i; var dat = '<div class="status-container" id="status-container-' + i + '"></div>'; var thing = this.children; var thang = thing[0].closest('.lia-quilt-layout-one-column-message'); var thung = thang.closest('.lia-decoration-border').children[0]; // top of the box jQuery(dat).appendTo(thung); jQuery(this).appendTo(currentStatus); }) jQuery('.lia-message-post-edit-date-wrapper .lia-message-edited-on').each(function(){ let postDate = jQuery(this).parents(".lia-message-post-edit-date-wrapper").children(".lia-message-posted-on"); jQuery(this).parents(".lia-message-post-edit-date-wrapper").empty().append(postDate); }); (function($) { $(document).ready(function(){ $('.lia-component-idea-topic .UserAvatar img').css("width","40px"); var img = $('.lia-component-idea-topic .UserAvatar').html(); var Herf = $('.lia-byline-wrapper .UserName a').attr('href'); $('.lia-component-idea-topic .UserAvatar').html('<a class=" lia-user-name-link" href="'+Herf+'" aria-describedby="userProfileCard-102">'+img+'</a>'); }); $(window).on('load', function() { $('.lia-quilt-idea-reply-message > .lia-quilt-row-header').each(function(){ $(this).find('.UserAvatar img').css("width","40px"); $(this).find('.UserAvatar img').css("border-radius","15px 0 15px 15px"); var href = $(this).find('.lia-link-navigation').attr('href'); var img = $(this).find('.UserAvatar').html(); $(this).find('.UserAvatar').html('<a class=" lia-user-name-link" href="'+href+'" aria-describedby="userProfileCard-102">'+img+'</a>'); }); }); })(LITHIUM.jQuery); ;(function ($) { if ($(window).width() <= 991) { $(".community-footer .col:nth-child(3)").on('click',function(){ if ($(this).hasClass('active')) { $(this).removeClass('active'); $(this).children("ul").hide(); $(this).children("h5").removeClass("addedClass"); } else { $(".community-footer .col").removeClass('active'); $('.community-footer .col ul').hide(); $(this).addClass('active'); $(this).children("ul").show(); $('.community-footer .col').children("h5").removeClass("addedClass"); $(this).children("h5").addClass("addedClass"); } if ( $(".community-footer .col:nth-child(4) ul").hasClass('custom-footer-res')) { $(".community-footer .col:nth-child(4) ul").removeClass('custom-footer-res'); } else { $(".community-footer .col:nth-child(4) ul").addClass('custom-footer-res'); } }) $('.community-footer .col:nth-child(1)').on("click", function () { if ($(this).hasClass('active')) { $(this).removeClass('active'); $(this).children("ul").hide(); $(this).children("h5").removeClass("addedClass"); } else { $(".community-footer .col").removeClass('active'); $('.community-footer .col ul').hide(); $(this).addClass('active'); $(this).children("ul").show(); $('.community-footer .col').children("h5").removeClass("addedClass"); $(this).children("h5").addClass("addedClass"); } if ( $(".community-footer .col:nth-child(4) ul").hasClass('custom-footer-res')) { $(".community-footer .col:nth-child(4) ul").removeClass('custom-footer-res'); } }) $('.community-footer .col:nth-child(2)').on("click", function () { if ($(this).hasClass('active')) { $(this).removeClass('active'); $(this).children("ul").hide(); $(this).children("h5").removeClass("addedClass"); } else { $(".community-footer .col").removeClass('active'); $('.community-footer .col ul').hide(); $(this).addClass('active'); $(this).children("ul").show(); $('.community-footer .col').children("h5").removeClass("addedClass"); $(this).children("h5").addClass("addedClass"); } if ( $(".community-footer .col:nth-child(4) ul").hasClass('custom-footer-res')) { $(".community-footer .col:nth-child(4) ul").removeClass('custom-footer-res'); } }) } })(LITHIUM.jQuery); LITHIUM.PartialRenderProxy({"limuirsComponentRenderedEvent":"LITHIUM:limuirsComponentRendered","relayEvent":"LITHIUM:partialRenderProxyRelay","listenerEvent":"LITHIUM:partialRenderProxy"}); LITHIUM.AjaxSupport({"ajaxOptionsParam":{"event":"LITHIUM:partialRenderProxyRelay","parameters":{"javascript.ignore_combine_and_minify":"true"}},"tokenId":"ajax","elementSelector":document,"action":"partialRenderProxyRelay","feedbackSelector":false,"url":"https://community.hubspot.com/t5/ideas/v3/ideapage.liabase.basebody.partialrenderproxy:partialrenderproxyrelay?t:ac=blog-id/HubSpot_Ideas/article-id/24960","ajaxErrorEventName":"LITHIUM:ajaxError","token":"XN4Z-NtRRz69JwLYh-f_4046UOJlAvqAvykmrnBIIlY."}); LITHIUM.Auth.API_URL = "/t5/util/authcheckpage"; LITHIUM.Auth.LOGIN_URL_TMPL = "https://app.hubspot.com/khoros/integration/jwt/authenticate?referer=https%3A%2F%2FREPLACE_TEXT"; LITHIUM.Auth.KEEP_ALIVE_URL = "/t5/status/blankpage?keepalive"; LITHIUM.Auth.KEEP_ALIVE_TIME = 300000; LITHIUM.Auth.CHECK_SESSION_TOKEN = 'VB430BmVRxIYTDWM5xyCnLHbmlbKaLom9p6gX_Cj_HQ.'; LITHIUM.AjaxSupport.useTickets = false; LITHIUM.Cache.CustomEvent.set([{"elementId":"link_1","stopTriggerEvent":false,"fireEvent":"LITHIUM:labelSelected","triggerEvent":"click","eventContext":{"uid":17,"selectedLabel":"blog","title":"Blog"}},{"elementId":"link_2","stopTriggerEvent":false,"fireEvent":"LITHIUM:labelSelected","triggerEvent":"click","eventContext":{"uid":269,"selectedLabel":"seo","title":"SEO"}},{"elementId":"link_3","stopTriggerEvent":false,"fireEvent":"LITHIUM:labelSelected","triggerEvent":"click","eventContext":{"uid":187,"selectedLabel":"website & landing page editor","title":"Website & Landing Page Editor"}},{"elementId":"link_32","stopTriggerEvent":false,"fireEvent":"LITHIUM:changePage","triggerEvent":"click","eventContext":{"parameters":{"page":2}}},{"elementId":"link_33","stopTriggerEvent":false,"fireEvent":"LITHIUM:changePage","triggerEvent":"click","eventContext":{"parameters":{"pageNavigationDirection":"next","page":2}}}]); LITHIUM.Loader.runJsAttached(); // --> </script></body> </html>