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

{{#unless model.is_warning}} {{#if siteSettings.enable_personal_messages}} {{d-icon "envelope"}} {{else}} {{d-icon "envelope"}} {{/if}} {{/unless}} {{#if model.details.loaded}} {{topic-status topic=model}} {{{model.fancyTitle}}} {{/if}} {{#if model.details.can_edit}} {{d-icon "pencil-alt"}} {{/if}}

{{topic-category topic=model class="topic-category"}} {{/if}} {{/topic-title}} {{/if}}
{{partial "selected-posts"}}
{{#topic-navigation topic=model jumpToDate=(action "jumpToDate") jumpToIndex=(action "jumpToIndex") as |info|}} {{#if info.renderTimeline}} {{#if info.renderAdminMenuButton}} {{topic-admin-menu-button topic=model fixed="true" toggleMultiSelect=(action "toggleMultiSelect") hideMultiSelect=(action "hideMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(route-action "showTopicStatusUpdate") showFeatureTopic=(route-action "showFeatureTopic") showChangeTimestamp=(route-action "showChangeTimestamp") resetBumpDate=(action "resetBumpDate") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage")}} {{/if}} {{topic-timeline topic=model notificationLevel=model.details.notification_level 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") hideMultiSelect=(action "hideMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(route-action "showTopicStatusUpdate") showFeatureTopic=(route-action "showFeatureTopic") showChangeTimestamp=(route-action "showChangeTimestamp") resetBumpDate=(action "resetBumpDate") 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") hideMultiSelect=(action "hideMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(route-action "showTopicStatusUpdate") showFeatureTopic=(route-action "showFeatureTopic") showChangeTimestamp=(route-action "showChangeTimestamp") resetBumpDate=(action "resetBumpDate") 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=(route-action "showHistory") showLogin=(route-action "showLogin") showRawEmail=(route-action "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") grantBadge=(action "grantBadge") addNotice=(action "addNotice") removeNotice=(action "removeNotice") lockPost=(action "lockPost") unlockPost=(action "unlockPost") unhidePost=(action "unhidePost") replyToPost=(action "replyToPost") toggleWiki=(action "toggleWiki") toggleSummary=(action "toggleSummary") removeAllowedUser=(action "removeAllowedUser") removeAllowedGroup=(action "removeAllowedGroup") topVisibleChanged=(action "topVisibleChanged") currentPostChanged=(action "currentPostChanged") currentPostScrolled=(action "currentPostScrolled") bottomVisibleChanged=(action "bottomVisibleChanged") togglePostSelection=(action "togglePostSelection") selectReplies=(action "selectReplies") selectBelow=(action "selectBelow") fillGapBefore=(action "fillGapBefore") fillGapAfter=(action "fillGapAfter") showInvite=(route-action "showInvite")}} {{/unless}} {{conditional-loading-spinner condition=model.postStream.loadingBelow}}
{{#conditional-loading-spinner condition=model.postStream.loadingFilter}} {{#if loadedAllPosts}} {{#if model.pending_posts}}
{{#each model.pending_posts as |pending|}}
{{reviewable-created-by user=currentUser tagName=''}}
{{reviewable-created-by-name user=currentUser tagName=''}}
{{cook-text pending.raw}}
{{d-button class="btn-danger" label="review.delete" icon="trash-alt" action=(action "deletePending" pending) }}
{{/each}}
{{/if}} {{#if model.queued_posts_count}}
{{{i18n "review.topic_has_pending" count=model.queued_posts_count}}}
{{#link-to 'review' (query-params topic_id=model.id type="ReviewableQueuedPost" status="pending")}} {{i18n "review.view_pending"}} {{/link-to}}
{{/if}} {{#if model.private_topic_timer.execute_at}} {{topic-timer-info topicClosed=model.closed statusType=model.private_topic_timer.status_type executeAt=model.private_topic_timer.execute_at duration=model.private_topic_timer.duration}} {{/if}} {{topic-timer-info topicClosed=model.closed 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}} {{plugin-outlet name="topic-above-footer-buttons" args=(hash model=model)}} {{topic-footer-buttons topic=model toggleMultiSelect=(action "toggleMultiSelect") hideMultiSelect=(action "hideMultiSelect") deleteTopic=(action "deleteTopic") recoverTopic=(action "recoverTopic") toggleClosed=(action "toggleClosed") toggleArchived=(action "toggleArchived") toggleVisibility=(action "toggleVisibility") showTopicStatusUpdate=(route-action "showTopicStatusUpdate") showFeatureTopic=(route-action "showFeatureTopic") showChangeTimestamp=(route-action "showChangeTimestamp") resetBumpDate=(action "resetBumpDate") convertToPublicTopic=(action "convertToPublicTopic") convertToPrivateMessage=(action "convertToPrivateMessage") toggleBookmark=(action "toggleBookmark") showFlagTopic=(route-action "showFlagTopic") toggleArchiveMessage=(action "toggleArchiveMessage") editFirstPost=(action "editFirstPost") deferTopic=(action "deferTopic") replyToPost=(action "replyToPost")}} {{else}} {{/if}} {{/if}} {{#if showSelectedPostsAtBottom}}
{{partial "selected-posts"}}
{{/if}} {{plugin-outlet name="topic-above-suggested" args=(hash model=model)}}
{{#if model.relatedMessages.length}} {{related-messages topic=model}} {{/if}} {{#if model.suggestedTopics.length}} {{suggested-topics topic=model}} {{/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=(route-action "showLogin") class="btn-primary topic-retry" icon="user" label="log_in"}} {{/unless}} {{else}} {{d-button action=(action "retryLoading") class="btn-primary topic-retry" icon="sync" label="errors.buttons.again"}} {{/if}}
{{conditional-loading-spinner condition=retrying}} {{/if}} {{/conditional-loading-spinner}}
{{/if}} {{share-popup topic=model replyAsNewTopic=(action "replyAsNewTopic")}} {{#if embedQuoteButton}} {{quote-button quoteState=quoteState selectText=(action "selectText")}} {{/if}} {{/discourse-topic}}