{{#discourse-topic multiSelect=multiSelect enteredAt=enteredAt topic=model hasScrolled=hasScrolled}} {{#if model}} {{add-category-class category=model.category}}
{{discourse-banner user=currentUser banner=site.banner overlay=hasScrolled hide=model.errorLoading}}
{{/if}} {{plugin-outlet name="topic-above-post-stream" args=(hash model=model)}} {{#if model.postStream.loaded}} {{#if model.postStream.firstPostPresent}} {{#topic-title cancelled="cancelEditingTopic" save="finishedEditingTopic"}} {{#if editingTopic}} {{#if model.isPrivateMessage}} {{fa-icon "envelope"}} {{/if}} {{text-field id="edit-title" value=buffered.title maxlength=siteSettings.max_topic_title_length autofocus="true"}} {{#if showCategoryChooser}}
{{category-chooser valueAttribute="id" value=buffered.category_id}} {{/if}} {{#if canEditTags}}
{{tag-chooser tags=buffered.tags categoryId=buffered.category_id}} {{/if}} {{plugin-outlet name="edit-topic" args=(hash model=model buffered=buffered)}}
{{d-button action="finishedEditingTopic" class="btn-primary btn-small submit-edit" icon="check"}} {{d-button action="cancelEditingTopic" class="btn-small cancel-edit" icon="times"}} {{else}}

{{#unless model.is_warning}} {{fa-icon "envelope"}} {{/unless}} {{#if model.details.loaded}} {{topic-status topic=model}} {{{model.fancyTitle}}} {{/if}} {{#if model.details.can_edit}} {{fa-icon "pencil"}} {{/if}}

{{#unless model.isPrivateMessage}} {{topic-category topic=model class="topic-category"}} {{/unless}} {{/if}} {{/topic-title}} {{/if}}
{{partial "selected-posts"}}
{{#topic-navigation topic=model jumpToIndex=(action "jumpToIndex") as |info|}} {{#if info.renderTimeline}} {{#if info.renderAdminMenuButton}} {{topic-admin-menu-button topic=model fixed="true" toggleMultiSelect=(action "toggleMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(action "topicRouteAction" "showTopicStatusUpdate") showFeatureTopic=(action "topicRouteAction" "showFeatureTopic") showChangeTimestamp=(action "topicRouteAction" "showChangeTimestamp") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage")}} {{/if}} {{topic-timeline topic=model prevEvent=info.prevEvent fullscreen=info.topicProgressExpanded enteredIndex=enteredIndex loading=model.postStream.loading jumpToPost=(action "jumpToPost") jumpTop=(action "jumpTop") jumpBottom=(action "jumpBottom") jumpToPostPrompt=(action "jumpToPostPrompt") jumpToIndex=(action "jumpToIndex") replyToPost=(action "replyToPost") toggleMultiSelect=(action "toggleMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(action "topicRouteAction" "showTopicStatusUpdate") showFeatureTopic=(action "topicRouteAction" "showFeatureTopic") showChangeTimestamp=(action "topicRouteAction" "showChangeTimestamp") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage")}} {{else}} {{#topic-progress prevEvent=info.prevEvent topic=model expanded=info.topicProgressExpanded jumpToPost=(action "jumpToPost")}} {{#if info.renderAdminMenuButton}} {{topic-admin-menu-button topic=model openUpwards="true" rightSide="true" toggleMultiSelect=(action "toggleMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(action "topicRouteAction" "showTopicStatusUpdate") showFeatureTopic=(action "topicRouteAction" "showFeatureTopic") showChangeTimestamp=(action "topicRouteAction" "showChangeTimestamp") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage")}} {{/if}} {{/topic-progress}} {{/if}} {{/topic-navigation}}
{{conditional-loading-spinner condition=model.postStream.loadingAbove}} {{plugin-outlet name="topic-above-posts" args=(hash model=model)}} {{#unless model.postStream.loadingFilter}} {{scrolling-post-stream posts=postsToRender canCreatePost=model.details.can_create_post multiSelect=multiSelect selectedPostsCount=selectedPostsCount selectedQuery=selectedQuery gaps=model.postStream.gaps showFlags=(action "showPostFlags") editPost=(action "editPost") showHistory=(action "topicRouteAction" "showHistory") showLogin=(action "topicRouteAction" "showLogin") showRawEmail=(action "topicRouteAction" "showRawEmail") deletePost=(action "deletePost") recoverPost=(action "recoverPost") expandHidden=(action "expandHidden") newTopicAction=(action "replyAsNewTopic") toggleBookmark=(action "toggleBookmark") togglePostType=(action "togglePostType") rebakePost=(action "rebakePost") changePostOwner=(action "changePostOwner") unhidePost=(action "unhidePost") replyToPost=(action "replyToPost") toggleWiki=(action "toggleWiki") toggleSummary=(action "toggleSummary") removeAllowedUser=(action "removeAllowedUser") removeAllowedGroup=(action "removeAllowedGroup") showInvite=(action "topicRouteAction" "showInvite") topVisibleChanged=(action "topVisibleChanged") currentPostChanged=(action "currentPostChanged") currentPostScrolled=(action "currentPostScrolled") bottomVisibleChanged=(action "bottomVisibleChanged") selectPost=(action "toggledSelectedPost") selectReplies=(action "toggledSelectedPostReplies") fillGapBefore=(action "fillGapBefore") fillGapAfter=(action "fillGapAfter")}} {{/unless}} {{conditional-loading-spinner condition=model.postStream.loadingBelow}}
{{#conditional-loading-spinner condition=model.postStream.loadingFilter}} {{#if loadedAllPosts}} {{topic-timer-info statusType=model.topic_timer.status_type executeAt=model.topic_timer.execute_at basedOnLastPost=model.topic_timer.based_on_last_post duration=model.topic_timer.duration categoryId=model.topic_timer.category_id}} {{#if session.showSignupCta}} {{! replace "Log In to Reply" with the infobox }} {{signup-cta}} {{else}} {{#if currentUser}} {{topic-footer-buttons topic=model toggleMultiSelect=(action "toggleMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(action "topicRouteAction" "showTopicStatusUpdate") showFeatureTopic=(action "topicRouteAction" "showFeatureTopic") showChangeTimestamp=(action "topicRouteAction" "showChangeTimestamp") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage") toggleBookmark=(action "toggleBookmark") showFlagTopic=(action "topicRouteAction" "showFlagTopic") showInvite=(action "topicRouteAction" "showInvite") toggleArchiveMessage=(action "toggleArchiveMessage") replyToPost=(action "replyToPost") }} {{else}} {{/if}} {{/if}} {{#if model.pending_posts_count}}
{{{i18n "queue.has_pending_posts" count=model.pending_posts_count}}} {{#if currentUser.show_queued_posts}} {{#link-to "queued-posts"}} {{fa-icon "check"}} {{i18n "queue.view_pending"}} {{/link-to}} {{/if}}
{{/if}} {{#if showSelectedPostsAtBottom}}
{{partial "selected-posts"}}
{{/if}} {{plugin-outlet name="topic-above-suggested" args=(hash model=model)}} {{#if model.details.suggested_topics.length}}

{{{suggestedTitle}}}

{{#if model.isPrivateMessage}} {{basic-topic-list hideCategory="true" showPosters="true" topics=model.details.suggested_topics}} {{else}} {{basic-topic-list topics=model.details.suggested_topics}} {{/if}}

{{{browseMoreMessage}}}

{{/if}} {{/if}} {{/conditional-loading-spinner}}
{{else}}
{{#conditional-loading-spinner condition=noErrorYet}} {{#if model.notFoundHtml}}
{{{model.notFoundHtml}}}
{{else}}
{{model.message}}
{{#if model.noRetry}} {{#unless currentUser}} {{d-button action="showLogin" class="btn-primary topic-retry" icon="user" label="log_in"}} {{/unless}} {{else}} {{d-button action="retryLoading" class="btn-primary topic-retry" icon="refresh" label="errors.buttons.again"}} {{/if}}
{{conditional-loading-spinner condition=retrying}} {{/if}} {{/conditional-loading-spinner}}
{{/if}} {{share-popup topic=model replyAsNewTopic="replyAsNewTopic"}} {{#if currentUser.enable_quoting}} {{quote-button quoteState=quoteState selectText=(action "selectText")}} {{/if}} {{/discourse-topic}}