DEV: Apply prettier to hbs files

This commit is contained in:
David Taylor
2022-12-28 12:28:11 +00:00
parent 104a16610a
commit c8e2e37fa7
847 changed files with 18124 additions and 4627 deletions
@@ -106,8 +106,11 @@
{{/if}}
<div id="direct-message-channels" class={{this.directMessageChannelClasses}}>
{{#each this.chatChannelsManager.truncatedDirectMessageChannels as |channel|}}
{{#each
this.chatChannelsManager.truncatedDirectMessageChannels
as |channel|
}}
<ChatChannelRow @channel={{channel}} @options={{hash leaveButton=true}} />
{{/each}}
</div>
</div>
</div>
@@ -1,6 +1,9 @@
{{#if this.chatProgressBarContainer}}
{{#in-element this.chatProgressBarContainer}}
<DProgressBar @key="browse-list" @isLoading={{this.channelsCollection.loading}} />
<DProgressBar
@key="browse-list"
@isLoading={{this.channelsCollection.loading}}
/>
{{/in-element}}
{{/if}}
@@ -56,7 +59,11 @@
/>
</div>
{{#if (and (not this.channelsCollection.length) (not this.channelsCollection.loading))}}
{{#if
(and
(not this.channelsCollection.length) (not this.channelsCollection.loading)
)
}}
<div class="empty-state">
<span class="empty-state-title">{{i18n "chat.empty_state.title"}}</span>
<div class="empty-state-body">
@@ -82,4 +89,4 @@
</div>
</div>
{{/if}}
</div>
</div>
@@ -5,7 +5,11 @@
{{i18n "chat.about_view.associated_category"}}
</label>
<div class="chat-form__control">
{{category-badge this.channel.chatable link=true allowUncategorized=true}}
{{category-badge
this.channel.chatable
link=true
allowUncategorized=true
}}
</div>
</div>
</div>
@@ -17,7 +21,14 @@
<span>{{i18n "chat.about_view.title"}}</span>
{{#if (chat-guardian "can-edit-chat-channel")}}
<div class="chat-form__label-actions">
<DButton @class="edit-title-btn btn-flat" @label="chat.channel_settings.edit" @action={{if this.onEditChatChannelTitle this.onEditChatChannelTitle}} />
<DButton
@class="edit-title-btn btn-flat"
@label="chat.channel_settings.edit"
@action={{if
this.onEditChatChannelTitle
this.onEditChatChannelTitle
}}
/>
</div>
{{/if}}
</label>
@@ -29,14 +40,27 @@
</div>
</div>
{{#if (or (chat-guardian "can-edit-chat-channel") this.channel.description.length)}}
{{#if
(or (chat-guardian "can-edit-chat-channel") this.channel.description.length)
}}
<div class="chat-form__section">
<div class="chat-form__field">
<label class="chat-form__label">
<span>{{i18n "chat.about_view.description"}}</span>
{{#if (chat-guardian "can-edit-chat-channel")}}
<div class="chat-form__label-actions">
<DButton @class="edit-description-btn btn-flat" @label={{if this.channel.description.length "chat.channel_settings.edit" "chat.channel_settings.add"}} @action={{if this.onEditChatChannelDescription this.onEditChatChannelDescription}} />
<DButton
@class="edit-description-btn btn-flat"
@label={{if
this.channel.description.length
"chat.channel_settings.edit"
"chat.channel_settings.add"
}}
@action={{if
this.onEditChatChannelDescription
this.onEditChatChannelDescription
}}
/>
</div>
{{/if}}
</label>
@@ -59,6 +83,11 @@
<div class="chat-form__section">
<ToggleChannelMembershipButton
@channel={{this.channel}}
@options={{hash joinClass="btn-primary" leaveClass="btn-flat" joinIcon="sign-in-alt" leaveIcon="sign-out-alt"}}
@options={{hash
joinClass="btn-primary"
leaveClass="btn-flat"
joinIcon="sign-in-alt"
leaveIcon="sign-out-alt"
}}
/>
</div>
</div>
@@ -3,12 +3,28 @@
id="chat-channel-archive-modal-inner"
class="chat-channel-archive-modal-inner"
>
<p class="chat-channel-archive-modal-instructions">{{this.instructionsText}}</p>
<p
class="chat-channel-archive-modal-instructions"
>{{this.instructionsText}}</p>
<ChatToTopicSelector @selection={{this.selection}} @topicTitle={{this.topicTitle}} @categoryId={{this.categoryId}} @tags={{this.tags}} @selectedTopicId={{this.selectedTopicId}} @instructionLabels={{this.instructionLabels}} @allowNewMessage={{false}} />
<ChatToTopicSelector
@selection={{this.selection}}
@topicTitle={{this.topicTitle}}
@categoryId={{this.categoryId}}
@tags={{this.tags}}
@selectedTopicId={{this.selectedTopicId}}
@instructionLabels={{this.instructionLabels}}
@allowNewMessage={{false}}
/>
</div>
</DModalBody>
<div class="modal-footer">
<DButton @class="btn-primary" @disabled={{this.buttonDisabled}} @action={{action "archiveChannel"}} @label="chat.channel_archive.title" @id="chat-confirm-archive-channel" />
</div>
<DButton
@class="btn-primary"
@disabled={{this.buttonDisabled}}
@action={{action "archiveChannel"}}
@label="chat.channel_archive.title"
@id="chat-confirm-archive-channel"
/>
</div>
@@ -5,11 +5,14 @@
</div>
<div class="chat-channel-archive-failed-retry">
<DButton @action={{action "retryArchive"}} @label="chat.channel_archive.retry" />
<DButton
@action={{action "retryArchive"}}
@label="chat.channel_archive.retry"
/>
</div>
</div>
{{else if (and this.channel.archive_completed this.currentUser.admin)}}
<div class="chat-channel-archive-status">
{{this.channelArchiveCompletedMessage}}
</div>
{{/if}}
{{/if}}
@@ -26,10 +26,7 @@
{{#if @channel.currentUserMembership.muted}}
<LinkTo
@route="chat.channel.info.settings"
@models={{array
@channel.id
(slugify-channel @channel)
}}
@models={{array @channel.id (slugify-channel @channel)}}
class="chat-channel-card__tag -muted"
tabindex="-1"
>
@@ -94,4 +91,4 @@
{{/if}}
</div>
</div>
{{/if}}
{{/if}}
@@ -6,4 +6,4 @@
{{/if}}
{{d-icon this.caretIcon class="caret-icon"}}
</div>
</div>
@@ -1 +1 @@
<ChatChannelTitle @channel={{this.item}} />
<ChatChannelTitle @channel={{this.item}} />
@@ -3,18 +3,28 @@
id="chat-channel-delete-modal-inner"
class="chat-channel-delete-modal-inner"
>
<p
class="chat-channel-delete-modal-instructions"
>
<p class="chat-channel-delete-modal-instructions">
{{this.instructionsText}}
</p>
</div>
<TextField @value={{this.channelNameConfirmation}} @id="channel-delete-confirm-name" @placeholderKey="chat.channel_delete.confirm_channel_name" @autocorrect="off" @autocapitalize="off" />
<TextField
@value={{this.channelNameConfirmation}}
@id="channel-delete-confirm-name"
@placeholderKey="chat.channel_delete.confirm_channel_name"
@autocorrect="off"
@autocapitalize="off"
/>
</DModalBody>
<div class="modal-footer">
<DButton @disabled={{this.buttonDisabled}} @class="btn-danger" @action={{action "deleteChannel"}} @label="chat.channel_delete.confirm" @id="chat-confirm-delete-channel" />
<DButton
@disabled={{this.buttonDisabled}}
@class="btn-danger"
@action={{action "deleteChannel"}}
@label="chat.channel_delete.confirm"
@id="chat-confirm-delete-channel"
/>
<DButton @label="cancel" @class="btn-flat" @action={{this.closeModal}} />
</div>
</div>
@@ -1,3 +1,8 @@
{{#unless this.site.mobileView}}
<DButton @icon="times" @action={{this.onLeaveChannel}} @class="btn-flat chat-channel-leave-btn" @title={{this.leaveChatTitleKey}} />
{{/unless}}
<DButton
@icon="times"
@action={{this.onLeaveChannel}}
@class="btn-flat chat-channel-leave-btn"
@title={{this.leaveChatTitleKey}}
/>
{{/unless}}
@@ -12,7 +12,13 @@
(if this.isSearchFocused " is-focused")
}}
>
<Input class={{this.inputSelector}} placeholder={{i18n "chat.members_view.filter_placeholder"}} {{on "input" (action "onFilterMembers" value="target.value")}} {{on "focusin" (action (mut this.isSearchFocused) true)}} {{on "focusout" (action (mut this.isSearchFocused) false)}} />
<Input
class={{this.inputSelector}}
placeholder={{i18n "chat.members_view.filter_placeholder"}}
{{on "input" (action "onFilterMembers" value="target.value")}}
{{on "focusin" (action (mut this.isSearchFocused) true)}}
{{on "focusout" (action (mut this.isSearchFocused) false)}}
/>
{{d-icon "search"}}
</div>
@@ -44,4 +50,4 @@
<div class="channel-members-view-wrapper">
{{i18n "chat.channel.no_memberships"}}
</div>
{{/if}}
{{/if}}
@@ -6,4 +6,4 @@
{{#if @unreadIndicator}}
<ChatChannelUnreadIndicator @channel={{@channel}} />
{{/if}}
</div>
</div>
@@ -19,4 +19,4 @@
<LinkTo @route="chat.browse" class="chat-channel-preview-card__browse-all">
{{i18n "chat.browse_all_channels"}}
</LinkTo>
</div>
</div>
@@ -32,4 +32,4 @@
}}
/>
{{/if}}
</LinkTo>
</LinkTo>
@@ -13,4 +13,4 @@
{{else}}
<ChatChannelTitle @channel={{this.model}} />
{{/if}}
</div>
</div>
@@ -5,13 +5,22 @@
{{d-icon "search"}}
</span>
<Input id="chat-channel-selector-input" @type="text" @value={{this.filter}} autocomplete="off" {{on "input" (action "search" value="target.value")}} />
<Input
id="chat-channel-selector-input"
@type="text"
@value={{this.filter}}
autocomplete="off"
{{on "input" (action "search" value="target.value")}}
/>
</div>
<div class="channels">
<ConditionalLoadingSpinner @condition={{this.loading}}>
{{#each this.channels as |channel|}}
<ChatChannelSelectionRow @model={{channel}} @onClick={{this.switchChannel}} />
<ChatChannelSelectionRow
@model={{channel}}
@onClick={{this.switchChannel}}
/>
{{else}}
<div class="no-channels-notice">
{{i18n "chat.channel_selector.no_channels"}}
@@ -20,4 +29,4 @@
</ConditionalLoadingSpinner>
</div>
</div>
</DModalBody>
</DModalBody>
@@ -4,7 +4,11 @@
>
<div class="chat-channel-info">
<div class="channel-title-container">
<LinkTo @route="chat.channel" @models={{array this.channel.id this.channel.title}} class="channel-title">
<LinkTo
@route="chat.channel"
@models={{array this.channel.id this.channel.title}}
class="channel-title"
>
<ChatChannelTitle @channel={{this.channel}} />
</LinkTo>
</div>
@@ -29,11 +33,20 @@
<div class="btn-container">
{{#unless this.channel.isFollowing}}
<DButton @class="chat-channel-preview" @action={{action "previewChannel"}} @disabled={{this.loading}} @label="chat.settings.preview" />
<DButton
@class="chat-channel-preview"
@action={{action "previewChannel"}}
@disabled={{this.loading}}
@label="chat.settings.preview"
/>
{{/unless}}
<ToggleChannelMembershipButton
@channel={{this.channel}}
@options={{hash joinClass="btn-primary" leaveClass="btn-danger" labelType="short"}}
@options={{hash
joinClass="btn-primary"
leaveClass="btn-danger"
labelType="short"
}}
/>
</div>
</div>
</div>
@@ -1,11 +1,14 @@
<span
{{did-update this.activate @property}}
{{will-destroy this.teardown}}
class={{concat-class "chat-channel-settings-saved-indicator" (if this.isActive "is-active")}}
class={{concat-class
"chat-channel-settings-saved-indicator"
(if this.isActive "is-active")
}}
role="status"
>
{{#if this.isActive}}
{{d-icon "check"}}
<span>{{i18n "saved"}}</span>
{{/if}}
</span>
</span>
@@ -116,7 +116,10 @@
@onChange={{this.onToggleChannelWideMentions}}
/>
<p class="chat-form__description -channel-wide-mentions">
{{i18n "chat.settings.channel_wide_mentions_description" channel=this.channel.title}}
{{i18n
"chat.settings.channel_wide_mentions_description"
channel=this.channel.title
}}
</p>
</div>
</div>
@@ -167,4 +170,4 @@
</div>
{{/if}}
</div>
{{/unless}}
{{/unless}}
@@ -3,4 +3,4 @@
{{d-icon this.channelStatusIcon}}
<span>{{this.channelStatusMessage}}</span>
</div>
{{/if}}
{{/if}}
@@ -27,9 +27,17 @@
{{#let this.channel.chatable.users.firstObject as |user|}}
<span class="chat-channel-title__name">{{user.username}}</span>
{{#if this.showUserStatus}}
<UserStatusMessage @status={{this.channel.chatable.users.firstObject.status}} @showDescription={{if this.site.mobileView "true"}} />
<UserStatusMessage
@status={{this.channel.chatable.users.firstObject.status}}
@showDescription={{if this.site.mobileView "true"}}
/>
{{/if}}
<PluginOutlet @name="after-chat-channel-username" @args={{hash user=user}} @tagName="" @connectorTagName="" />
<PluginOutlet
@name="after-chat-channel-username"
@args={{hash user=user}}
@tagName=""
@connectorTagName=""
/>
{{/let}}
{{/if}}
</div>
@@ -59,4 +67,4 @@
{{/if}}
</div>
{{/if}}
{{/if}}
{{/if}}
@@ -5,5 +5,10 @@
</DModalBody>
<div class="modal-footer">
<DButton @class="btn-primary" @action={{action "changeChannelStatus"}} @label={{this.buttonLabel}} @id="chat-channel-toggle-btn" />
</div>
<DButton
@class="btn-primary"
@action={{action "changeChannelStatus"}}
@label={{this.buttonLabel}}
@id="chat-channel-toggle-btn"
/>
</div>
@@ -13,4 +13,4 @@
>
<div class="number">{{@channel.currentUserMembership.unread_count}}</div>
</div>
{{/if}}
{{/if}}
@@ -1,12 +1,26 @@
{{#if this.buttons.length}}
<DPopover @class="chat-composer-dropdown" @options={{hash arrow=null}} as |state|>
<FlatButton @disabled={{this.isDisabled}} @class="chat-composer-dropdown__trigger-btn d-popover-trigger" @title="chat.composer.toggle_toolbar" @icon={{if state.isExpanded "times" "plus"}} />
<DPopover
@class="chat-composer-dropdown"
@options={{hash arrow=null}}
as |state|
>
<FlatButton
@disabled={{this.isDisabled}}
@class="chat-composer-dropdown__trigger-btn d-popover-trigger"
@title="chat.composer.toggle_toolbar"
@icon={{if state.isExpanded "times" "plus"}}
/>
<ul class="chat-composer-dropdown__list">
{{#each this.buttons as |button|}}
<li class="chat-composer-dropdown__item {{button.id}}">
<DButton @class={{concat "chat-composer-dropdown__action-btn " button.id}} @icon={{button.icon}} @action={{button.action}} @label={{button.label}} />
<DButton
@class={{concat "chat-composer-dropdown__action-btn " button.id}}
@icon={{button.icon}}
@action={{button.action}}
@label={{button.label}}
/>
</li>
{{/each}}
</ul>
</DPopover>
{{/if}}
{{/if}}
@@ -1,3 +1,7 @@
{{#each this.buttons as |button|}}
<DButton @icon={{button.icon}} @class={{concat "chat-composer-inline-button " button.id}} @action={{action button.action}} />
{{/each}}
<DButton
@icon={{button.icon}}
@class={{concat "chat-composer-inline-button " button.id}}
@action={{action button.action}}
/>
{{/each}}
@@ -3,8 +3,15 @@
{{d-icon this.icon}}
<ChatUserAvatar @user={{this.message.user}} />
<span class="chat-reply__username">{{this.message.user.username}}</span>
<span class="chat-reply__excerpt">{{replace-emoji this.message.excerpt}}</span>
<span class="chat-reply__excerpt">{{replace-emoji
this.message.excerpt
}}</span>
</div>
<FlatButton @action={{this.action}} @class="cancel-message-action" @icon="times-circle" @title="cancel" />
</div>
<FlatButton
@action={{this.action}}
@class="cancel-message-action"
@icon="times-circle"
@title="cancel"
/>
</div>
@@ -2,7 +2,7 @@
<span class="preview">
{{#if (eq this.type this.IMAGE_TYPE)}}
{{#if this.isDone}}
<img class="preview-img" src={{this.upload.short_path}}>
<img class="preview-img" src={{this.upload.short_path}} />
{{else}}
{{d-icon "far-image"}}
{{/if}}
@@ -14,7 +14,12 @@
<span class="data">
<div class="top-data">
<span class="file-name">{{this.fileName}}</span>
<DButton @class="btn-flat remove-upload" @action={{this.onCancel}} @icon="times" @title="chat.remove_upload" />
<DButton
@class="btn-flat remove-upload"
@action={{this.onCancel}}
@icon="times"
@title="chat.remove_upload"
/>
</div>
<div class="bottom-data">
@@ -36,4 +41,4 @@
{{/if}}
</div>
</span>
</span>
</span>
@@ -1,16 +1,27 @@
{{#if this.showUploadsContainer}}
<div class="chat-composer-uploads-container">
{{#each this.uploads as |upload|}}
<ChatComposerUpload @upload={{upload}} @isDone={{true}} @onCancel={{action "removeUpload" upload}} />
<ChatComposerUpload
@upload={{upload}}
@isDone={{true}}
@onCancel={{action "removeUpload" upload}}
/>
{{/each}}
{{#each this.inProgressUploads as |upload|}}
<ChatComposerUpload @upload={{upload}} @onCancel={{action "cancelUploading" upload}} />
<ChatComposerUpload
@upload={{upload}}
@onCancel={{action "cancelUploading" upload}}
/>
{{/each}}
</div>
{{/if}}
<PickFilesButton @allowMultiple={{true}} @fileInputId={{this.fileUploadElementId}} @fileInputClass="hidden-upload-field" />
<PickFilesButton
@allowMultiple={{true}}
@fileInputId={{this.fileUploadElementId}}
@fileInputClass="hidden-upload-field"
/>
<div class="drop-a-file">
<div class="drop-a-file-content">
@@ -25,4 +36,4 @@
Drop a file to upload it.
</p>
</div>
</div>
</div>
@@ -1,9 +1,17 @@
{{#if this.replyToMsg}}
<ChatComposerMessageDetails @message={{this.replyToMsg}} @icon="reply" @action={{action "cancelReplyTo"}} />
<ChatComposerMessageDetails
@message={{this.replyToMsg}}
@icon="reply"
@action={{action "cancelReplyTo"}}
/>
{{/if}}
{{#if this.editingMessage}}
<ChatComposerMessageDetails @message={{this.editingMessage}} @icon="pencil-alt" @action={{action "cancelEditing"}} />
<ChatComposerMessageDetails
@message={{this.editingMessage}}
@icon="pencil-alt"
@action={{action "cancelEditing"}}
/>
{{/if}}
<div class="chat-composer-emoji-picker-anchor"></div>
@@ -11,7 +19,7 @@
<div
role="region"
aria-label={{i18n "chat.aria_roles.composer"}}
class="chat-composer {{if this.disableComposer "is-disabled"}}"
class="chat-composer {{if this.disableComposer 'is-disabled'}}"
>
{{#if
(and
@@ -19,14 +27,32 @@
(eq this.chatEmojiPickerManager.context "chat-composer")
)
}}
<DButton @icon="times" @action={{this.chatEmojiPickerManager.close}} @class="chat-composer__close-emoji-picker-btn btn-flat" />
<DButton
@icon="times"
@action={{this.chatEmojiPickerManager.close}}
@class="chat-composer__close-emoji-picker-btn btn-flat"
/>
{{else}}
{{#unless this.disableComposer}}
<ChatComposerDropdown @buttons={{this.dropdownButtons}} @isDisabled={{this.disableComposer}} />
<ChatComposerDropdown
@buttons={{this.dropdownButtons}}
@isDisabled={{this.disableComposer}}
/>
{{/unless}}
{{/if}}
<DTextarea @value={{readonly this.value}} @input={{action "onTextareaInput" value="target.value"}} @type="text" @class="chat-composer-input" @disabled={{this.disableComposer}} @autocorrect="on" @autocapitalize="sentences" @placeholder={{this.placeholder}} @focus-in={{action "onTextareaFocusIn" value="target"}} @rows={{1}} />
<DTextarea
@value={{readonly this.value}}
@input={{action "onTextareaInput" value="target.value"}}
@type="text"
@class="chat-composer-input"
@disabled={{this.disableComposer}}
@autocorrect="on"
@autocapitalize="sentences"
@placeholder={{this.placeholder}}
@focus-in={{action "onTextareaFocusIn" value="target"}}
@rows={{1}}
/>
{{#if this.isNetworkUnreliable}}
<span
@@ -37,7 +63,13 @@
</span>
{{/if}}
<FlatButton @action={{action "sendClicked"}} @icon="paper-plane" @class="icon-only send-btn chat-composer-inline-button" @title={{this.sendTitle}} @disabled={{this.sendDisabled}} />
<FlatButton
@action={{action "sendClicked"}}
@icon="paper-plane"
@class="icon-only send-btn chat-composer-inline-button"
@title={{this.sendTitle}}
@disabled={{this.sendDisabled}}
/>
{{#unless this.disableComposer}}
<ChatComposerInlineButtons @buttons={{this.inlineButtons}} />
@@ -45,11 +77,14 @@
</div>
{{#if this.canAttachUploads}}
<ChatComposerUploads @fileUploadElementId={{this.fileUploadElementId}} @onUploadChanged={{action "uploadsChanged"}} />
<ChatComposerUploads
@fileUploadElementId={{this.fileUploadElementId}}
@onUploadChanged={{action "uploadsChanged"}}
/>
{{/if}}
{{#unless this.chatChannel.isDraft}}
<div class="chat-replying-indicator-container">
<ChatReplyingIndicator @chatChannel={{this.chatChannel}} />
</div>
{{/unless}}
{{/unless}}
@@ -25,4 +25,4 @@
@onSwitchChannel={{action "onSwitchFromDraftChannel"}}
/>
{{/if}}
</div>
</div>
@@ -1,15 +1,27 @@
{{#if this.chatStateManager.isDrawerActive}}
<div data-chat-channel-id={{this.chat.activeChannel.id}} class={{concat-class "chat-drawer" (if this.chatStateManager.isDrawerExpanded "is-expanded")}}>
<div
data-chat-channel-id={{this.chat.activeChannel.id}}
class={{concat-class
"chat-drawer"
(if this.chatStateManager.isDrawerExpanded "is-expanded")
}}
>
<div class="chat-drawer-container">
<div
role="region"
aria-label={{i18n "chat.aria_roles.header"}}
class="chat-drawer-header"
>
{{#if (and this.draftChannelView this.chatStateManager.isDrawerExpanded)}}
{{#if
(and this.draftChannelView this.chatStateManager.isDrawerExpanded)
}}
<div class="chat-drawer-header__left-actions">
<div class="chat-drawer-header__top-line">
<LinkTo title={{i18n "chat.return_to_list"}} class="chat-drawer-header__return-to-channels-btn" @route="chat">
<LinkTo
title={{i18n "chat.return_to_list"}}
class="chat-drawer-header__return-to-channels-btn"
@route="chat"
>
{{d-icon "chevron-left"}}
</LinkTo>
</div>
@@ -22,24 +34,41 @@
</span>
{{else if this.chatView}}
{{#if this.chatStateManager.isDrawerExpanded}}
<LinkTo title={{i18n "chat.return_to_list"}} class="chat-drawer-header__return-to-channels-btn" @route="chat">
<LinkTo
title={{i18n "chat.return_to_list"}}
class="chat-drawer-header__return-to-channels-btn"
@route="chat"
>
{{d-icon "chevron-left"}}
</LinkTo>
{{/if}}
{{#if this.chat.activeChannel}}
{{#if this.chatStateManager.isDrawerExpanded}}
<LinkTo @route={{this.infoTabRoute}} @models={{array this.chat.activeChannel.id (slugify-channel this.chat.activeChannel)}} class="chat-drawer-header__title">
<LinkTo
@route={{this.infoTabRoute}}
@models={{array
this.chat.activeChannel.id
(slugify-channel this.chat.activeChannel)
}}
class="chat-drawer-header__title"
>
<div class="chat-drawer-header__top-line">
<ChatChannelTitle @channel={{this.chat.activeChannel}} />
</div>
</LinkTo>
{{else}}
<div role="button" {{on "click" (action "toggleExpand")}} class="chat-drawer-header__title">
<div
role="button"
{{on "click" (action "toggleExpand")}}
class="chat-drawer-header__title"
>
<div class="chat-drawer-header__top-line">
<ChatChannelTitle @channel={{this.chat.activeChannel}}>
{{#if this.unreadCount}}
<span class="chat-unread-count">{{this.unreadCount}}</span>
<span
class="chat-unread-count"
>{{this.unreadCount}}</span>
{{/if}}
</ChatChannelTitle>
</div>
@@ -57,13 +86,28 @@
<div class="chat-drawer-header__right-actions">
<div class="chat-drawer-header__top-line {{this.topLineClass}}">
{{#if this.chatStateManager.isDrawerExpanded}}
<DButton @icon="discourse-expand" class="btn-flat btn-link chat-drawer-header__full-screen-btn" @title={{"chat.open_full_page"}} @action={{this.openInFullPage}} />
<DButton
@icon="discourse-expand"
class="btn-flat btn-link chat-drawer-header__full-screen-btn"
@title={{"chat.open_full_page"}}
@action={{this.openInFullPage}}
/>
{{/if}}
<FlatButton @icon={{this.expandIcon}} @class="chat-drawer-header__expand-btn" @action={{action "toggleExpand"}} @title="chat.collapse" />
<FlatButton
@icon={{this.expandIcon}}
@class="chat-drawer-header__expand-btn"
@action={{action "toggleExpand"}}
@title="chat.collapse"
/>
{{#if this.showClose}}
<FlatButton @icon="times" @action={{action "close"}} @title="chat.close" @class="chat-drawer-header__close-btn" />
<FlatButton
@icon="times"
@action={{action "close"}}
@title="chat.close"
@class="chat-drawer-header__close-btn"
/>
{{/if}}
</div>
</div>
@@ -72,14 +116,22 @@
{{#if this.chatStateManager.isDrawerExpanded}}
<div class="chat-drawer-content">
{{#if (and this.chatView this.chat.activeChannel)}}
<ChatLivePane @chatChannel={{this.chat.activeChannel}} @onSwitchChannel={{action "switchChannel"}} />
<ChatLivePane
@chatChannel={{this.chat.activeChannel}}
@onSwitchChannel={{action "switchChannel"}}
/>
{{else if this.draftChannelView}}
<ChatDraftChannelScreen @onSwitchChannel={{action "switchChannel"}} />
<ChatDraftChannelScreen
@onSwitchChannel={{action "switchChannel"}}
/>
{{else}}
<ChannelsList @onOpenView={{action "openURL"}} @onSelect={{action "switchChannel"}} />
<ChannelsList
@onOpenView={{action "openURL"}}
@onSelect={{action "switchChannel"}}
/>
{{/if}}
</div>
{{/if}}
</div>
</div>
{{/if}}
{{/if}}
@@ -2,4 +2,4 @@
<div class="chat-emoji-avatar-container">
{{replace-emoji @emoji}}
</div>
</div>
</div>
@@ -1,6 +1,6 @@
{{!-- template-lint-disable no-invalid-interactive --}}
{{!-- template-lint-disable no-nested-interactive --}}
{{!-- template-lint-disable no-down-event-binding --}}
{{! template-lint-disable no-invalid-interactive }}
{{! template-lint-disable no-nested-interactive }}
{{! template-lint-disable no-down-event-binding }}
<div
class={{concat-class
"chat-emoji-picker"
@@ -80,7 +80,10 @@
class={{concat-class
"btn-flat"
"chat-emoji-picker__section-btn"
(if (eq this.chatEmojiPickerManager.lastVisibleSection section) "active")
(if
(eq this.chatEmojiPickerManager.lastVisibleSection section)
"active"
)
}}
tabindex="-1"
style={{this.navBtnStyle}}
@@ -95,7 +98,7 @@
height="18"
class="emoji"
src={{emojis.firstObject.url}}
>
/>
{{/if}}
</DButton>
{{/each-in}}
@@ -131,7 +134,7 @@
this.chatEmojiReactionStore.diversity
}}
loading="lazy"
>
/>
{{else}}
<p class="chat-emoji-picker__no-reults">
{{i18n "chat.emoji_picker.no_results"}}
@@ -180,7 +183,7 @@
}}
loading="lazy"
{{on "focus" this.didFocusFirstEmoji}}
>
/>
{{/let}}
{{#if
@@ -206,7 +209,7 @@
this.chatEmojiReactionStore.diversity
}}
loading="lazy"
>
/>
{{/if}}
{{/each}}
{{/if}}
@@ -228,4 +231,4 @@
)
}}
<div class="chat-emoji-picker__backdrop"></div>
{{/if}}
{{/if}}
@@ -6,4 +6,4 @@
</div>
{{else if (gt this.chatChannelsManager.unreadCount 0)}}
<div class="chat-channel-unread-indicator"></div>
{{/if}}
{{/if}}
@@ -18,4 +18,4 @@
<ChatHeaderIconUnreadIndicator />
{{/unless}}
</a>
{{/if}}
{{/if}}
@@ -1,22 +1,35 @@
{{#if (and this.chatStateManager.isFullPageActive this.includeHeader)}}
<div
class="chat-full-page-header
{{unless this.chatChannel.isFollowing "-not-following"}}"
{{unless this.chatChannel.isFollowing '-not-following'}}"
>
<div class="chat-channel-header-details">
{{#if this.site.mobileView}}
<div class="chat-full-page-header__left-actions">
<DButton @class="chat-full-page-header__back-btn no-text btn-flat" @icon="chevron-left" @action={{this.onBackClick}} />
<DButton
@class="chat-full-page-header__back-btn no-text btn-flat"
@icon="chevron-left"
@action={{this.onBackClick}}
/>
</div>
{{/if}}
<LinkTo @route={{this.infoTabRoute}} @models={{array this.chatChannel.id (slugify-channel this.chatChannel)}} class="chat-channel-title-wrapper">
<LinkTo
@route={{this.infoTabRoute}}
@models={{array this.chatChannel.id (slugify-channel this.chatChannel)}}
class="chat-channel-title-wrapper"
>
<ChatChannelTitle @channel={{this.chatChannel}} />
</LinkTo>
{{#if this.showCloseFullScreenBtn}}
<div class="chat-full-page-header__right-actions">
<DButton @icon="discourse-compress" @title="chat.close_full_page" class="open-drawer-btn btn-flat no-text" @action={{action this.onCloseFullScreen}} />
<DButton
@icon="discourse-compress"
@title="chat.close_full_page"
class="open-drawer-btn btn-flat no-text"
@action={{action this.onCloseFullScreen}}
/>
</div>
{{/if}}
</div>
@@ -58,7 +71,25 @@
{{/if}}
{{#each this.messages as |message|}}
<ChatMessage @message={{message}} @canInteractWithChat={{this.canInteractWithChat}} @details={{this.details}} @chatChannel={{this.chatChannel}} @setReplyTo={{action "setReplyTo"}} @replyMessageClicked={{action "replyMessageClicked"}} @editButtonClicked={{action "editButtonClicked"}} @selectingMessages={{this.selectingMessages}} @onStartSelectingMessages={{this.onStartSelectingMessages}} @onSelectMessage={{this.onSelectMessage}} @bulkSelectMessages={{this.bulkSelectMessages}} @fullPage={{this.fullPage}} @afterReactionAdded={{action "reStickScrollIfNeeded"}} @isHovered={{eq message.id this.hoveredMessageId}} @onHoverMessage={{action "onHoverMessage"}} @onSwitchChannel={{this.onSwitchChannel}} @resendStagedMessage={{this.resendStagedMessage}} />
<ChatMessage
@message={{message}}
@canInteractWithChat={{this.canInteractWithChat}}
@details={{this.details}}
@chatChannel={{this.chatChannel}}
@setReplyTo={{action "setReplyTo"}}
@replyMessageClicked={{action "replyMessageClicked"}}
@editButtonClicked={{action "editButtonClicked"}}
@selectingMessages={{this.selectingMessages}}
@onStartSelectingMessages={{this.onStartSelectingMessages}}
@onSelectMessage={{this.onSelectMessage}}
@bulkSelectMessages={{this.bulkSelectMessages}}
@fullPage={{this.fullPage}}
@afterReactionAdded={{action "reStickScrollIfNeeded"}}
@isHovered={{eq message.id this.hoveredMessageId}}
@onHoverMessage={{action "onHoverMessage"}}
@onSwitchChannel={{this.onSwitchChannel}}
@resendStagedMessage={{this.resendStagedMessage}}
/>
{{/each}}
{{#if this.loadingMoreFuture}}
@@ -95,7 +126,12 @@
{{/if}}
{{#if this.selectingMessages}}
<ChatSelectionManager @selectedMessageIds={{this.selectedMessageIds}} @chatChannel={{this.chatChannel}} @canModerate={{this.details.can_moderate}} @cancelSelecting={{action "cancelSelecting"}} />
<ChatSelectionManager
@selectedMessageIds={{this.selectedMessageIds}}
@chatChannel={{this.chatChannel}}
@canModerate={{this.details.can_moderate}}
@cancelSelecting={{action "cancelSelecting"}}
/>
{{else}}
{{#if (or this.chatChannel.isDraft this.chatChannel.isFollowing)}}
<ChatComposer
@@ -117,4 +153,4 @@
{{else}}
<ChatChannelPreviewCard @channel={{this.chatChannel}} />
{{/if}}
{{/if}}
{{/if}}
@@ -21,4 +21,4 @@
</ul>
</div>
</div>
{{/if}}
{{/if}}
@@ -2,26 +2,48 @@
<div class="chat-message-actions">
{{#if this.chatStateManager.isFullPageActive}}
{{#each this.emojiReactions as |reaction|}}
<ChatMessageReaction @reaction={{reaction}} @react={{this.messageActions.react}} @class="show" />
<ChatMessageReaction
@reaction={{reaction}}
@react={{this.messageActions.react}}
@class="show"
/>
{{/each}}
{{/if}}
{{#if this.messageCapabilities.canReact}}
<DButton @class="btn-flat react-btn" @action={{this.messageActions.startReactionForMessageActions}} @icon="discourse-emojis" @title="chat.react" />
<DButton
@class="btn-flat react-btn"
@action={{this.messageActions.startReactionForMessageActions}}
@icon="discourse-emojis"
@title="chat.react"
/>
{{/if}}
{{#if this.messageCapabilities.canBookmark}}
<DButton @class="btn-flat bookmark-btn" @action={{this.messageActions.toggleBookmark}}>
<DButton
@class="btn-flat bookmark-btn"
@action={{this.messageActions.toggleBookmark}}
>
<BookmarkIcon @bookmark={{this.message.bookmark}} />
</DButton>
{{/if}}
{{#if this.messageCapabilities.canReply}}
<DButton @class="btn-flat reply-btn" @action={{this.messageActions.reply}} @icon="reply" @title="chat.reply" />
<DButton
@class="btn-flat reply-btn"
@action={{this.messageActions.reply}}
@icon="reply"
@title="chat.reply"
/>
{{/if}}
{{#if this.secondaryButtons.length}}
<DropdownSelectBox @class="more-buttons" @options={{hash icon="ellipsis-v" placement="left"}} @content={{this.secondaryButtons}} @onChange={{action "handleSecondaryButtons"}} />
<DropdownSelectBox
@class="more-buttons"
@options={{hash icon="ellipsis-v" placement="left"}}
@content={{this.secondaryButtons}}
@onChange={{action "handleSecondaryButtons"}}
/>
{{/if}}
</div>
</div>
</div>
@@ -84,4 +84,4 @@
</div>
{{/if}}
</div>
</div>
</div>
@@ -4,4 +4,4 @@
{{else}}
<ChatUserAvatar @user={{@message.user}} @avatarSize="medium" />
{{/if}}
</div>
</div>
@@ -20,4 +20,4 @@
{{/if}}
{{/each}}
{{/if}}
</div>
</div>
@@ -45,4 +45,4 @@
{{/if}}
</span>
{{/if}}
</div>
</div>
@@ -1,6 +1,10 @@
<div class="chat-message-left-gutter">
{{#if @message.reviewable_id}}
<LinkTo @route="review.show" @model={{@message.reviewable_id}} class="chat-message-left-gutter__flag">
<LinkTo
@route="review.show"
@model={{@message.reviewable_id}}
class="chat-message-left-gutter__flag"
>
{{d-icon "flag" title="chat.flagged"}}
</LinkTo>
{{else if (eq @message.user_flag_status 0)}}
@@ -17,4 +21,4 @@
<BookmarkIcon @bookmark={{@message.bookmark}} />
</span>
{{/if}}
</div>
</div>
@@ -25,4 +25,4 @@
/>
<DButton @label="cancel" @class="btn-flat" @action={{this.closeModal}} />
</div>
</div>
@@ -20,10 +20,10 @@
height="20"
alt={{this.emojiString}}
src={{this.emojiUrl}}
>
/>
{{#if this.reaction.count}}
<span class="count">{{this.reaction.count}}</span>
{{/if}}
</button>
{{/if}}
{{/if}}
@@ -12,4 +12,4 @@
{{this.message.firstMessageOfTheDayAt}}
</span>
</div>
{{/if}}
{{/if}}
@@ -10,4 +10,4 @@
{{/if}}
{{yield}}
</div>
</div>
@@ -2,15 +2,36 @@
<ChatMessageSeparator @message={{this.message}} />
{{#if (and this.showActions this.site.mobileView this.chatMessageActionsMobileAnchor)}}
{{#if
(and
this.showActions this.site.mobileView this.chatMessageActionsMobileAnchor
)
}}
{{#in-element this.chatMessageActionsMobileAnchor}}
<ChatMessageActionsMobile @message={{this.message}} @emojiReactions={{this.emojiReactions}} @secondaryButtons={{this.secondaryButtons}} @messageActions={{this.messageActions}} @messageCapabilities={{this.messageCapabilities}} @onHoverMessage={{this.onHoverMessage}} />
<ChatMessageActionsMobile
@message={{this.message}}
@emojiReactions={{this.emojiReactions}}
@secondaryButtons={{this.secondaryButtons}}
@messageActions={{this.messageActions}}
@messageCapabilities={{this.messageCapabilities}}
@onHoverMessage={{this.onHoverMessage}}
/>
{{/in-element}}
{{/if}}
{{#if (and this.showActions this.site.desktopView this.chatMessageActionsDesktopAnchor)}}
{{#if
(and
this.showActions this.site.desktopView this.chatMessageActionsDesktopAnchor
)
}}
{{#in-element this.chatMessageActionsDesktopAnchor}}
<ChatMessageActionsDesktop @message={{this.message}} @emojiReactions={{this.emojiReactions}} @secondaryButtons={{this.secondaryButtons}} @messageActions={{this.messageActions}} @messageCapabilities={{this.messageCapabilities}} />
<ChatMessageActionsDesktop
@message={{this.message}}
@emojiReactions={{this.emojiReactions}}
@secondaryButtons={{this.secondaryButtons}}
@messageActions={{this.messageActions}}
@messageCapabilities={{this.messageCapabilities}}
/>
{{/in-element}}
{{/if}}
@@ -18,7 +39,10 @@
{{on "touchmove" this.handleTouchMove passive=true}}
{{on "touchstart" this.handleTouchStart passive=true}}
{{on "touchend" this.handleTouchEnd passive=true}}
{{on "mouseenter" (fn this.onHoverMessage this.message (hash desktopOnly=true))}}
{{on
"mouseenter"
(fn this.onHoverMessage this.message (hash desktopOnly=true))
}}
{{on "mouseleave" (fn this.onHoverMessage null (hash desktopOnly=true))}}
{{chat/track-message-visibility}}
class={{concat-class
@@ -31,16 +55,29 @@
>
{{#if this.show}}
{{#if this.selectingMessages}}
<Input @type="checkbox" class="chat-message-selector" @checked={{this.message.selected}} {{on "click" (action "toggleChecked")}} />
<Input
@type="checkbox"
class="chat-message-selector"
@checked={{this.message.selected}}
{{on "click" (action "toggleChecked")}}
/>
{{/if}}
{{#if this.deletedAndCollapsed}}
<div class="chat-message-deleted">
<DButton @class="btn-flat chat-message-expand" @action={{action "expand"}} @label="chat.deleted" />
<DButton
@class="btn-flat chat-message-expand"
@action={{action "expand"}}
@label="chat.deleted"
/>
</div>
{{else if this.hiddenAndCollapsed}}
<div class="chat-message-hidden">
<DButton @class="btn-flat chat-message-expand" @action={{action "expand"}} @label="chat.hidden" />
<DButton
@class="btn-flat chat-message-expand"
@action={{action "expand"}}
@label="chat.hidden"
/>
</div>
{{else}}
<div class={{this.chatMessageClasses}}>
@@ -53,7 +90,9 @@
{{d-icon "share" title="chat.in_reply_to"}}
{{#if this.message.in_reply_to.chat_webhook_event.emoji}}
<ChatEmojiAvatar @emoji={{this.message.in_reply_to.chat_webhook_event.emoji}} />
<ChatEmojiAvatar
@emoji={{this.message.in_reply_to.chat_webhook_event.emoji}}
/>
{{else}}
<ChatUserAvatar @user={{this.message.in_reply_to.user}} />
{{/if}}
@@ -75,7 +114,11 @@
<ChatMessageInfo @message={{@message}} @details={{@details}} />
{{/unless}}
<ChatMessageText @cooked={{this.message.cooked}} @uploads={{this.message.uploads}} @edited={{this.message.edited}}>
<ChatMessageText
@cooked={{this.message.cooked}}
@uploads={{this.message.uploads}}
@edited={{this.message.edited}}
>
{{#if this.hasReactions}}
<div class="chat-message-reaction-list">
{{#if this.reactionLabel}}
@@ -85,17 +128,26 @@
{{/if}}
{{#each-in this.message.reactions as |emoji reactionAttrs|}}
<ChatMessageReaction @reaction={{hash
<ChatMessageReaction
@reaction={{hash
emoji=emoji
users=reactionAttrs.users
count=reactionAttrs.count
reacted=reactionAttrs.reacted
}} @react={{action "react"}} @showUsersList={{true}} />
}}
@react={{action "react"}}
@showUsersList={{true}}
/>
{{/each-in}}
{{#if this.canInteractWithChat}}
{{#unless this.site.mobileView}}
<DButton @class="chat-message-react-btn" @action={{action "startReactionForReactionList"}} @icon="discourse-emojis" @title="chat.react" />
<DButton
@class="chat-message-react-btn"
@action={{action "startReactionForReactionList"}}
@icon="discourse-emojis"
@title="chat.react"
/>
{{/unless}}
{{/if}}
</div>
@@ -134,10 +186,17 @@
}}
</span>
{{else}}
<FlatButton @class="dismiss-mention-warning" @title="chat.mention_warning.dismiss" @action={{action "dismissMentionWarning"}} @icon="times" />
<FlatButton
@class="dismiss-mention-warning"
@title="chat.mention_warning.dismiss"
@action={{action "dismissMentionWarning"}}
@icon="times"
/>
{{#if this.mentionWarning.cannot_see}}
<p class="warning-item cannot-see">{{this.mentionedCannotSeeText}}</p>
<p
class="warning-item cannot-see"
>{{this.mentionedCannotSeeText}}</p>
{{/if}}
{{#if this.mentionWarning.without_membership}}
@@ -153,7 +212,9 @@
</p>
{{/if}}
{{#if this.mentionWarning.group_mentions_disabled}}
<p class="warning-item">{{this.groupsWithDisabledMentions}}</p>
<p
class="warning-item"
>{{this.groupsWithDisabledMentions}}</p>
{{/if}}
{{#if this.mentionWarning.groups_with_too_many_members}}
@@ -166,4 +227,4 @@
</div>
{{/if}}
{{/if}}
</div>
</div>
@@ -7,4 +7,4 @@
<span class="chat-replying-indicator__dot">.</span>
</span>
{{/if}}
</div>
</div>
@@ -1,6 +1,10 @@
{{#if this.show}}
<div class="chat-retention-reminder">
<span class="chat-retention-reminder-text">{{this.text}}</span>
<DButton @class="btn-flat dismiss-btn" @action={{action "dismiss"}} @icon="times" />
<DButton
@class="btn-flat dismiss-btn"
@action={{action "dismiss"}}
@icon="times"
/>
</div>
{{/if}}
{{/if}}
@@ -1,16 +1,47 @@
<div class="chat-selection-management">
<div class="chat-selection-management-buttons">
<DButton @id="chat-quote-btn" @class="btn-secondary" @icon="quote-left" @label="chat.selection.quote_selection" @title="chat.selection.quote_selection" @disabled={{not this.anyMessagesSelected}} @action={{action "quoteMessages"}} />
<DButton
@id="chat-quote-btn"
@class="btn-secondary"
@icon="quote-left"
@label="chat.selection.quote_selection"
@title="chat.selection.quote_selection"
@disabled={{not this.anyMessagesSelected}}
@action={{action "quoteMessages"}}
/>
{{#if this.site.desktopView}}
<DButton @id="chat-copy-btn" @class="btn-secondary" @icon="copy" @label="chat.selection.copy" @title="chat.selection.copy" @disabled={{not this.anyMessagesSelected}} @action={{action "copyMessages"}} />
<DButton
@id="chat-copy-btn"
@class="btn-secondary"
@icon="copy"
@label="chat.selection.copy"
@title="chat.selection.copy"
@disabled={{not this.anyMessagesSelected}}
@action={{action "copyMessages"}}
/>
{{/if}}
{{#if this.showMoveMessageButton}}
<DButton @id="chat-move-to-channel-btn" @class="btn-secondary" @icon="sign-out-alt" @label="chat.selection.move_selection_to_channel" @title="chat.selection.move_selection_to_channel" @disabled={{not this.anyMessagesSelected}} @action={{action "openMoveMessageModal"}} />
<DButton
@id="chat-move-to-channel-btn"
@class="btn-secondary"
@icon="sign-out-alt"
@label="chat.selection.move_selection_to_channel"
@title="chat.selection.move_selection_to_channel"
@disabled={{not this.anyMessagesSelected}}
@action={{action "openMoveMessageModal"}}
/>
{{/if}}
<DButton @id="chat-cancel-selection-btn" @icon="times" @class="btn-secondary cancel-btn" @label="chat.selection.cancel" @title="chat.selection.cancel" @action={{this.cancelSelecting}} />
<DButton
@id="chat-cancel-selection-btn"
@icon="times"
@class="btn-secondary cancel-btn"
@label="chat.selection.cancel"
@title="chat.selection.cancel"
@action={{this.cancelSelecting}}
/>
</div>
{{#if this.showChatQuoteSuccess}}
@@ -18,4 +49,4 @@
{{i18n "chat.quote.copy_success"}}
</div>
{{/if}}
</div>
</div>
@@ -116,4 +116,4 @@
</div>
</div>
</div>
</div>
</div>
@@ -1,18 +1,33 @@
<div class="chat-to-topic-selector">
<div class="radios">
<label class="radio-label" for="move-to-new-topic">
<RadioButton @id="move-to-new-topic" @name="move-to-entity" @value={{this.newTopicSelection}} @selection={{this.selection}} />
<RadioButton
@id="move-to-new-topic"
@name="move-to-entity"
@value={{this.newTopicSelection}}
@selection={{this.selection}}
/>
<b>{{i18n "topic.split_topic.radio_label"}}</b>
</label>
<label class="radio-label" for="move-to-existing-topic">
<RadioButton @id="move-to-existing-topic" @name="move-to-entity" @value={{this.existingTopicSelection}} @selection={{this.selection}} />
<RadioButton
@id="move-to-existing-topic"
@name="move-to-entity"
@value={{this.existingTopicSelection}}
@selection={{this.selection}}
/>
<b>{{i18n "topic.merge_topic.radio_label"}}</b>
</label>
{{#if this.allowNewMessage}}
<label class="radio-label" for="move-to-new-message">
<RadioButton @id="move-to-new-message" @name="move-to-entity" @value={{this.newMessageSelection}} @selection={{this.selection}} />
<RadioButton
@id="move-to-new-message"
@name="move-to-entity"
@value={{this.newMessageSelection}}
@selection={{this.selection}}
/>
<b>{{i18n "topic.move_to_new_message.radio_label"}}</b>
</label>
{{/if}}
@@ -26,15 +41,28 @@
{{i18n "topic.split_topic.topic_name"}}
</label>
<TextField @value={{this.topicTitle}} @placeholderKey="composer.title_placeholder" @id="split-topic-name" />
<TextField
@value={{this.topicTitle}}
@placeholderKey="composer.title_placeholder"
@id="split-topic-name"
/>
<label>{{i18n "categories.category"}}</label>
<CategoryChooser @id="new-topic-category-selector" @value={{this.categoryId}} @class="small" @onChange={{action (mut this.categoryId)}} />
<CategoryChooser
@id="new-topic-category-selector"
@value={{this.categoryId}}
@class="small"
@onChange={{action (mut this.categoryId)}}
/>
{{#if this.canAddTags}}
<label>{{i18n "tagging.tags"}}</label>
<TagChooser @tags={{this.tags}} @filterable={{true}} @categoryId={{this.categoryId}} />
<TagChooser
@tags={{this.tags}}
@filterable={{true}}
@categoryId={{this.categoryId}}
/>
{{/if}}
</form>
{{/if}}
@@ -54,7 +82,11 @@
{{i18n "topic.move_to_new_message.message_title"}}
</label>
<TextField @value={{this.topicTitle}} @placeholderKey="composer.title_placeholder" @id="split-message-title" />
<TextField
@value={{this.topicTitle}}
@placeholderKey="composer.title_placeholder"
@id="split-message-title"
/>
{{#if this.canTagMessages}}
<label>{{i18n "tagging.tags"}}</label>
@@ -62,4 +94,4 @@
{{/if}}
</form>
{{/if}}
</div>
</div>
@@ -8,10 +8,10 @@
style={{this.imageStyle}}
loading="lazy"
{{on "load" this.imageLoaded}}
>
/>
{{else if (eq this.type this.VIDEO_TYPE)}}
<video class="chat-video-upload" preload="metadata" controls>
<source src={{@upload.url}}>
<source src={{@upload.url}} />
</video>
{{else}}
<a
@@ -21,4 +21,4 @@
>
{{@upload.original_filename}}
</a>
{{/if}}
{{/if}}
@@ -1,4 +1,4 @@
<div class="chat-user-avatar {{if this.isOnline "is-online"}}">
<div class="chat-user-avatar {{if this.isOnline 'is-online'}}">
<div
role="button"
class="chat-user-avatar-container clickable"
@@ -6,4 +6,4 @@
>
{{avatar this.user imageSize=this.avatarSize}}
</div>
</div>
</div>
@@ -12,4 +12,4 @@
<span class="separator">—</span>
<span class="chat-user-display-name__name">{{this.user.name}}</span>
{{/if}}
</span>
</span>
@@ -2,12 +2,20 @@
{{this.header}}
{{#if this.collapsed}}
<DButton @action={{action "open"}} @icon="caret-right" @class="chat-message-collapser-button chat-message-collapser-closed" />
<DButton
@action={{action "open"}}
@icon="caret-right"
@class="chat-message-collapser-button chat-message-collapser-closed"
/>
{{else}}
<DButton @action={{action "close"}} @icon="caret-down" @class="chat-message-collapser-button chat-message-collapser-opened" />
<DButton
@action={{action "close"}}
@icon="caret-down"
@class="chat-message-collapser-button chat-message-collapser-opened"
/>
{{/if}}
</div>
<div class={{if this.collapsed "hidden" ""}}>
{{yield}}
</div>
</div>
@@ -1,3 +1,3 @@
<div id={{this.key}} class="d-progress-bar-container">
<div class="d-progress-bar"></div>
</div>
</div>
@@ -22,4 +22,4 @@
{{#if @icons.right}}
{{d-icon @icons.right class="-right"}}
{{/if}}
</div>
</div>
@@ -7,7 +7,7 @@
{{#if (and this.channel.isDraft (not this.isLoading))}}
<div class="direct-message-creator">
<div
class="filter-area {{if this.isFilterFocused "is-focused"}}"
class="filter-area {{if this.isFilterFocused 'is-focused'}}"
role="button"
{{on "click" this.focusFilter}}
>
@@ -18,17 +18,34 @@
<div class="recipients">
{{#each this.selectedUsers as |selectedUser|}}
<DButton @class={{concat "selected-user" (if (eq this.highlightedSelectedUser selectedUser) " is-highlighted")}} @action={{action "deselectUser" selectedUser}} @translatedTitle={{i18n
<DButton
@class={{concat
"selected-user"
(if
(eq this.highlightedSelectedUser selectedUser) " is-highlighted"
)
}}
@action={{action "deselectUser" selectedUser}}
@translatedTitle={{i18n
"chat.direct_message_creator.selected_user_title"
username=selectedUser.username
}}>
}}
>
<ChatUserAvatar @user={{selectedUser}} />
<span class="username">{{selectedUser.username}}</span>
{{d-icon "times"}}
</DButton>
{{/each}}
<Input class="filter-usernames" @value={{this.term}} autofocus="autofocus" {{on "input" (action "onFilterInput" value="target.value")}} {{on "focusin" (action (mut this.isFilterFocused) true)}} {{on "focusout" (action "onFilterInputFocusOut")}} {{on "keyup" (action "handleFilterKeyUp")}} />
<Input
class="filter-usernames"
@value={{this.term}}
autofocus="autofocus"
{{on "input" (action "onFilterInput" value="target.value")}}
{{on "focusin" (action (mut this.isFilterFocused) true)}}
{{on "focusout" (action "onFilterInputFocusOut")}}
{{on "keyup" (action "handleFilterKeyUp")}}
/>
</div>
</div>
@@ -38,7 +55,7 @@
<ul class="results">
{{#each this.users as |user|}}
<li
class="user {{if (eq this.focusedUser user) "is-focused"}}"
class="user {{if (eq this.focusedUser user) 'is-focused'}}"
data-username={{user.username}}
role="button"
tabindex="-1"
@@ -53,7 +70,8 @@
@includeLink={{false}}
@includeAvatar={{false}}
@showStatus={{true}}
@showStatusDescription={{true}} />
@showStatusDescription={{true}}
/>
</li>
{{/each}}
</ul>
@@ -69,4 +87,4 @@
{{/if}}
{{/if}}
</div>
{{/if}}
{{/if}}
@@ -1,3 +1,7 @@
{{#if this.chat.activeChannel}}
<ChatLivePane @chatChannel={{this.chat.activeChannel}} @onBackClick={{action "navigateToIndex"}} @onSwitchChannel={{action "switchChannel"}} />
{{/if}}
<ChatLivePane
@chatChannel={{this.chat.activeChannel}}
@onBackClick={{action "navigateToIndex"}}
@onSwitchChannel={{action "switchChannel"}}
/>
{{/if}}
@@ -1 +1 @@
<div id={{this.onVisibilityActionId}}></div>
<div id={{this.onVisibilityActionId}}></div>
@@ -1,5 +1,9 @@
<div class="flagged-post-header">
<LinkTo @route="chat.channel" @models={{array this.chatChannel.id this.chatChannel.title}} @query={{hash messageId=@reviewable.target_id}}>
<LinkTo
@route="chat.channel"
@models={{array this.chatChannel.id this.chatChannel.title}}
@query={{hash messageId=@reviewable.target_id}}
>
<ChatChannelTitle @channel={{this.chatChannel}} />
</LinkTo>
</div>
@@ -7,7 +11,11 @@
<div class="post-contents-wrapper">
<ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName="" />
<div class="post-contents">
<ReviewablePostHeader @reviewable={{@reviewable}} @createdBy={{@reviewable.target_created_by}} @tagName="" />
<ReviewablePostHeader
@reviewable={{@reviewable}}
@createdBy={{@reviewable.target_created_by}}
@tagName=""
/>
<div class="post-body">
{{html-safe (or @reviewable.payload.message_cooked @reviewable.cooked)}}
@@ -15,7 +23,11 @@
{{#if @reviewable.payload.transcript_topic_id}}
<div class="transcript">
<LinkTo @route="topic" @models={{array "-" @reviewable.payload.transcript_topic_id}} class="btn btn-small">
<LinkTo
@route="topic"
@models={{array "-" @reviewable.payload.transcript_topic_id}}
class="btn btn-small"
>
{{i18n "review.transcript.view"}}
</LinkTo>
</div>
@@ -23,4 +35,4 @@
{{yield}}
</div>
</div>
</div>
@@ -1,3 +1,7 @@
{{#if this.isDisplayed}}
<ChannelsList @onSelect={{action "switchChannel"}} @toggleSection={{this.toggleSection}} @inSidebar={{true}} />
{{/if}}
<ChannelsList
@onSelect={{action "switchChannel"}}
@toggleSection={{this.toggleSection}}
@inSidebar={{true}}
/>
{{/if}}
@@ -22,4 +22,4 @@
@icon={{this.options.joinIcon}}
@disabled={{this.isLoading}}
/>
{{/if}}
{{/if}}
@@ -5,4 +5,4 @@
@label="chat.title_capitalized"
@icon="comment"
/>
{{/if}}
{{/if}}
@@ -4,10 +4,12 @@
</span>
<div class="empty-state-body">
<p>
{{html-safe (i18n
"user_menu.no_chat_notifications_body"
preferencesUrl=(get-url "/my/preferences/notifications")
)}}
{{html-safe
(i18n
"user_menu.no_chat_notifications_body"
preferencesUrl=(get-url "/my/preferences/notifications")
)
}}
</p>
</div>
</div>
</div>
@@ -1,4 +1,3 @@
<div class="chat-drawer-outlet-container">
<ChatDrawer />
</div>
</div>
@@ -1 +1 @@
<SidebarChannels @toggleSection={{this.toggleSection}} />
<SidebarChannels @toggleSection={{this.toggleSection}} />
@@ -1,3 +1,3 @@
{{#if this.user.can_chat_user}}
<UserCardChatButton @user={{this.user}} />
{{/if}}
{{/if}}
@@ -2,4 +2,4 @@
<LinkTo @route="preferences.chat">
{{i18n "chat.title_capitalized"}}
</LinkTo>
{{/if}}
{{/if}}
@@ -1,12 +1,22 @@
{{#if this.selectedWebhook}}
<DButton @class="incoming-chat-webhooks-back" @icon="chevron-left" @label="chat.incoming_webhooks.back" @title="chat.incoming_webhooks.back" @action={{action (mut this.selectedWebhookId) null}} />
<DButton
@class="incoming-chat-webhooks-back"
@icon="chevron-left"
@label="chat.incoming_webhooks.back"
@title="chat.incoming_webhooks.back"
@action={{action (mut this.selectedWebhookId) null}}
/>
<form class="form-vertical">
<div class="control-group">
<label class="control-label">
{{i18n "chat.incoming_webhooks.name"}}
</label>
<Input @type="text" @value={{this.selectedWebhook.name}} placeholder={{i18n "chat.incoming_webhooks.name"}} />
<Input
@type="text"
@value={{this.selectedWebhook.name}}
placeholder={{i18n "chat.incoming_webhooks.name"}}
/>
</div>
<div class="control-group">
@@ -20,7 +30,11 @@
<label class="control-label">
{{i18n "chat.incoming_webhooks.username"}}
</label>
<Input @type="text" @value={{this.selectedWebhook.username}} placeholder={{i18n "chat.incoming_webhooks.system"}} />
<Input
@type="text"
@value={{this.selectedWebhook.username}}
placeholder={{i18n "chat.incoming_webhooks.system"}}
/>
<div class="control-instructions">
{{i18n "chat.incoming_webhooks.username_instructions"}}
</div>
@@ -30,7 +44,11 @@
<label class="control-label">
{{i18n "chat.incoming_webhooks.post_to"}}
</label>
<ChatChannelChooser @content={{this.model.chat_channels}} @value={{this.selectedWebhook.chat_channel.id}} @onChange={{action "changeChatChannel"}} />
<ChatChannelChooser
@content={{this.model.chat_channels}}
@value={{this.selectedWebhook.chat_channel.id}}
@onChange={{action "changeChatChannel"}}
/>
</div>
<div class="control-group">
@@ -46,11 +64,24 @@
{{/if}}
</label>
<EmojiPicker @isActive={{this.emojiPickerIsActive}} @isEditorFocused={{true}} @emojiSelected={{action "emojiSelected"}} @onEmojiPickerClose={{action (mut this.emojiPickerIsActive) false}} />
<EmojiPicker
@isActive={{this.emojiPickerIsActive}}
@isEditorFocused={{true}}
@emojiSelected={{action "emojiSelected"}}
@onEmojiPickerClose={{action (mut this.emojiPickerIsActive) false}}
/>
{{#unless this.emojiPickerIsActive}}
<DButton @class="btn-primary" @label="chat.incoming_webhooks.select_emoji" @action={{action (mut this.emojiPickerIsActive) true}} />
<DButton @label="chat.incoming_webhooks.reset_emoji" @action={{action (mut this.selectedWebhook.emoji) null}} @disabled={{not this.selectedWebhook.emoji}} />
<DButton
@class="btn-primary"
@label="chat.incoming_webhooks.select_emoji"
@action={{action (mut this.emojiPickerIsActive) true}}
/>
<DButton
@label="chat.incoming_webhooks.reset_emoji"
@action={{action (mut this.selectedWebhook.emoji) null}}
@disabled={{not this.selectedWebhook.emoji}}
/>
{{/unless}}
<div class="control-instructions">
@@ -66,7 +97,13 @@
</div>
</div>
<DButton @class="btn-primary" @label="chat.incoming_webhooks.save" @title="chat.incoming_webhooks.save" @action={{action "saveEdit"}} @disabled={{this.saveEditDisabled}} />
<DButton
@class="btn-primary"
@label="chat.incoming_webhooks.save"
@title="chat.incoming_webhooks.save"
@action={{action "saveEdit"}}
@disabled={{this.saveEditDisabled}}
/>
</form>
{{else}}
{{! Index view }}
@@ -74,13 +111,36 @@
{{#if this.creatingNew}}
<div class="new-incoming-webhook-container">
<Input @type="text" @value={{this.newWebhookName}} placeholder={{i18n "chat.incoming_webhooks.name_placeholder"}} />
<ChatChannelChooser @content={{this.model.chat_channels}} @value={{this.newWebhookChannelId}} @onChange={{action (mut this.newWebhookChannelId)}} />
<DButton @label="chat.create" @title="chat.create" @class="btn-primary create-new-incoming-webhook-btn" @disabled={{not this.nameAndChannelValid}} @action={{action "createNewWebhook"}} />
<DButton @label="chat.cancel" @title="chat.cancel" @action={{action "resetNewWebhook"}} />
<Input
@type="text"
@value={{this.newWebhookName}}
placeholder={{i18n "chat.incoming_webhooks.name_placeholder"}}
/>
<ChatChannelChooser
@content={{this.model.chat_channels}}
@value={{this.newWebhookChannelId}}
@onChange={{action (mut this.newWebhookChannelId)}}
/>
<DButton
@label="chat.create"
@title="chat.create"
@class="btn-primary create-new-incoming-webhook-btn"
@disabled={{not this.nameAndChannelValid}}
@action={{action "createNewWebhook"}}
/>
<DButton
@label="chat.cancel"
@title="chat.cancel"
@action={{action "resetNewWebhook"}}
/>
</div>
{{else}}
<DButton @label="chat.incoming_webhooks.new" @title="chat.incoming_webhooks.new" @class="btn-primary" @action={{action (mut this.creatingNew) true}} />
<DButton
@label="chat.incoming_webhooks.new"
@title="chat.incoming_webhooks.new"
@class="btn-primary"
@action={{action (mut this.creatingNew) true}}
/>
{{/if}}
<p>{{html-safe (i18n "chat.incoming_webhooks.instructions")}}</p>
@@ -112,8 +172,18 @@
<div class="incoming-chat-webhooks--row--controls">
<div>
<DButton @class="btn" @icon="pencil-alt" @label="chat.incoming_webhooks.edit" @action={{action (mut this.selectedWebhookId) webhook.id}} />
<DButton @class="btn btn-danger" @icon="trash-alt" @title="chat.incoming_webhooks.delete" @action={{action "destroyWebhook" webhook}} />
<DButton
@class="btn"
@icon="pencil-alt"
@label="chat.incoming_webhooks.edit"
@action={{action (mut this.selectedWebhookId) webhook.id}}
/>
<DButton
@class="btn btn-danger"
@icon="trash-alt"
@title="chat.incoming_webhooks.delete"
@action={{action "destroyWebhook" webhook}}
/>
</div>
</div>
</div>
@@ -122,4 +192,4 @@
{{i18n "chat.incoming_webhooks.none"}}
{{/if}}
</div>
{{/if}}
{{/if}}
@@ -1 +1 @@
<ChatBrowseView @status="all" />
<ChatBrowseView @status="all" />
@@ -1 +1 @@
<ChatBrowseView @status="archived" />
<ChatBrowseView @status="archived" />
@@ -1 +1 @@
<ChatBrowseView @status="closed" />
<ChatBrowseView @status="closed" />
@@ -1 +1 @@
<ChatBrowseView @status="open" />
<ChatBrowseView @status="open" />
@@ -1 +1 @@
{{outlet}}
{{outlet}}
@@ -1 +1 @@
<FullPageChat />
<FullPageChat />
@@ -2,4 +2,4 @@
@channel={{this.model}}
@onEditChatChannelTitle={{action "onEditChatChannelTitle"}}
@onEditChatChannelDescription={{action "onEditChatChannelDescription"}}
/>
/>
@@ -1 +1 @@
<ChatChannelMembersView @channel={{this.model}} />
<ChatChannelMembersView @channel={{this.model}} />
@@ -1 +1 @@
<ChatChannelSettingsView @channel={{this.model}} />
<ChatChannelSettingsView @channel={{this.model}} />
@@ -60,4 +60,4 @@
{{outlet}}
</div>
</div>
</div>
</div>
@@ -1 +1 @@
{{outlet}}
{{outlet}}
@@ -1 +1 @@
<ChatDraftChannelScreen @onSwitchChannel={{action "onSwitchChannel"}} />
<ChatDraftChannelScreen @onSwitchChannel={{action "onSwitchChannel"}} />
@@ -1 +1 @@
<ChannelsList @onSelect={{action "selectChannel"}} />
<ChannelsList @onSelect={{action "selectChannel"}} />
@@ -10,10 +10,7 @@
<div
class={{concat-class
"full-page-chat"
(if
this.shouldUseCoreSidebar
"full-page-chat-sidebar-enabled"
)
(if this.shouldUseCoreSidebar "full-page-chat-sidebar-enabled")
}}
>
{{#if this.shouldUseChatSidebar}}
@@ -24,4 +21,4 @@
{{outlet}}
</div>
</div>
{{/if}}
{{/if}}
@@ -4,4 +4,4 @@
{{#in-element this.chatEmojiPickerManager.element}}
<ChatEmojiPicker />
{{/in-element}}
{{/if}}
{{/if}}
@@ -1 +1,4 @@
<ChatChannelArchiveModalInner @chatChannel={{this.chatChannel}} @closeModal={{route-action "closeModal"}} />
<ChatChannelArchiveModalInner
@chatChannel={{this.chatChannel}}
@closeModal={{route-action "closeModal"}}
/>
@@ -1 +1,4 @@
<ChatChannelDeleteModalInner @chatChannel={{this.chatChannel}} @closeModal={{action "closeModal"}} />
<ChatChannelDeleteModalInner
@chatChannel={{this.chatChannel}}
@closeModal={{action "closeModal"}}
/>
@@ -13,6 +13,11 @@
</DModalBody>
<div class="modal-footer">
<DButton @class="btn-primary create" @action={{action "onSaveChatChannelDescription"}} @label="save" @disabled={{this.isSaveDisabled}} />
<DButton
@class="btn-primary create"
@action={{action "onSaveChatChannelDescription"}}
@label="save"
@disabled={{this.isSaveDisabled}}
/>
<DModalCancel @close={{route-action "closeModal"}} />
</div>
</div>
@@ -10,6 +10,11 @@
</DModalBody>
<div class="modal-footer">
<DButton @class="btn-primary create" @action={{action "onSaveChatChannelTitle"}} @label="save" @disabled={{this.isSaveDisabled}} />
<DButton
@class="btn-primary create"
@action={{action "onSaveChatChannelTitle"}}
@label="save"
@disabled={{this.isSaveDisabled}}
/>
<DModalCancel @close={{route-action "closeModal"}} />
</div>
</div>
@@ -1 +1 @@
<ChatChannelSelectorModalInner @close={{this.closeSelf}} />
<ChatChannelSelectorModalInner @close={{this.closeSelf}} />
@@ -1 +1,5 @@
<ChatChannelToggleView @channel={{this.chatChannel}} @closeModal={{action "closeModal"}} @onStatusChange={{action "channelStatusChanged"}} />
<ChatChannelToggleView
@channel={{this.chatChannel}}
@closeModal={{action "closeModal"}}
@onStatusChange={{action "channelStatusChanged"}}
/>
@@ -1 +1,5 @@
<ChatMessageMoveToChannelModalInner @sourceChannel={{this.sourceChannel}} @selectedMessageIds={{this.selectedMessageIds}} @closeModal={{action "closeModal"}} />
<ChatMessageMoveToChannelModalInner
@sourceChannel={{this.sourceChannel}}
@selectedMessageIds={{this.selectedMessageIds}}
@closeModal={{action "closeModal"}}
/>
@@ -2,7 +2,11 @@
<label class="create-channel-label">
{{i18n "chat.create_channel.choose_category.label"}}
</label>
<CategoryChooser @value={{this.categoryId}} @onChange={{action "onCategoryChange"}} @options={{hash none="chat.create_channel.choose_category.none"}} />
<CategoryChooser
@value={{this.categoryId}}
@onChange={{action "onCategoryChange"}}
@options={{hash none="chat.create_channel.choose_category.none"}}
/>
{{#if this.categoryPermissionsHint}}
<div class="create-channel-hint">
@@ -20,14 +24,29 @@
<label for="channel-name" class="create-channel-label">
{{i18n "chat.create_channel.name"}}
</label>
<Input name="channel-name" class="create-channel-name-input" @type="text" @value={{this.name}} />
<Input
name="channel-name"
class="create-channel-name-input"
@type="text"
@value={{this.name}}
/>
<label for="channel-description" class="create-channel-label">
{{i18n "chat.create_channel.description"}}
</label>
<Input name="channel-description" class="create-channel-description-input" @type="textarea" @value={{this.description}} />
<Input
name="channel-description"
class="create-channel-description-input"
@type="textarea"
@value={{this.description}}
/>
</DModalBody>
<div class="modal-footer">
<DButton @class="btn-primary create" @action={{action "create"}} @label="chat.create_channel.create" @disabled={{this.createDisabled}} />
</div>
<DButton
@class="btn-primary create"
@action={{action "create"}}
@label="chat.create_channel.create"
@disabled={{this.createDisabled}}
/>
</div>
@@ -2,14 +2,22 @@
<div class="control-group chat-setting">
<label class="controls">
<Input id="user_chat_enabled" @type="checkbox" @checked={{this.model.user_option.chat_enabled}} />
<Input
id="user_chat_enabled"
@type="checkbox"
@checked={{this.model.user_option.chat_enabled}}
/>
{{i18n "chat.enable"}}
</label>
</div>
<div class="control-group chat-setting">
<label class="controls">
<Input id="user_chat_only_push_notifications" @type="checkbox" @checked={{this.model.user_option.only_chat_push_notifications}} />
<Input
id="user_chat_only_push_notifications"
@type="checkbox"
@checked={{this.model.user_option.only_chat_push_notifications}}
/>
{{i18n "chat.only_chat_push_notifications.title"}}
</label>
<span class="control-instructions">
@@ -19,7 +27,11 @@
<div class="control-group chat-setting">
<label class="controls">
<Input id="user_chat_ignore_channel_wide_mention" @type="checkbox" @checked={{this.model.user_option.ignore_channel_wide_mention}} />
<Input
id="user_chat_ignore_channel_wide_mention"
@type="checkbox"
@checked={{this.model.user_option.ignore_channel_wide_mention}}
/>
{{i18n "chat.ignore_channel_wide_mention.title"}}
</label>
<span class="control-instructions">
@@ -29,14 +41,27 @@
<div class="control-group chat-setting controls-dropdown">
<label for="user_chat_sounds">{{i18n "chat.sound.title"}}</label>
<ComboBox @options={{hash none="chat.sounds.none"}} @valueProperty="value" @content={{this.chatSounds}} @value={{this.model.user_option.chat_sound}} @id="user_chat_sounds" @onChange={{action "onChangeChatSound"}} />
<ComboBox
@options={{hash none="chat.sounds.none"}}
@valueProperty="value"
@content={{this.chatSounds}}
@value={{this.model.user_option.chat_sound}}
@id="user_chat_sounds"
@onChange={{action "onChangeChatSound"}}
/>
</div>
<div class="control-group chat-setting controls-dropdown">
<label for="user_chat_email_frequency">
{{i18n "chat.email_frequency.title"}}
</label>
<ComboBox @valueProperty="value" @content={{this.emailFrequencyOptions}} @value={{this.model.user_option.chat_email_frequency}} @id="user_chat_email_frequency" @onChange={{action (mut this.model.user_option.chat_email_frequency)}} />
<ComboBox
@valueProperty="value"
@content={{this.emailFrequencyOptions}}
@value={{this.model.user_option.chat_email_frequency}}
@id="user_chat_email_frequency"
@onChange={{action (mut this.model.user_option.chat_email_frequency)}}
/>
{{#if (eq this.model.user_option.chat_email_frequency "when_away")}}
<div class="control-instructions">
{{i18n "chat.email_frequency.description"}}
@@ -44,4 +69,9 @@
{{/if}}
</div>
<SaveControls @id="user_chat_preference_save" @model={{this.model}} @action={{action "save"}} @saved={{this.saved}} />
<SaveControls
@id="user_chat_preference_save"
@model={{this.model}}
@action={{action "save"}}
@saved={{this.saved}}
/>