DEV: Apply prettier to hbs files
This commit is contained in:
@@ -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>
|
||||
+20
-4
@@ -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
-2
@@ -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}}
|
||||
+1
-1
@@ -6,4 +6,4 @@
|
||||
{{/if}}
|
||||
|
||||
{{d-icon this.caretIcon class="caret-icon"}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1 +1 @@
|
||||
<ChatChannelTitle @channel={{this.item}} />
|
||||
<ChatChannelTitle @channel={{this.item}} />
|
||||
+16
-6
@@ -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>
|
||||
+12
-3
@@ -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>
|
||||
+5
-2
@@ -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>
|
||||
+1
-1
@@ -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}}
|
||||
+6
-2
@@ -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}}
|
||||
+10
-3
@@ -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}}
|
||||
+1
-1
@@ -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}}
|
||||
+28
-6
@@ -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>
|
||||
+1
-1
@@ -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>
|
||||
+1
-1
@@ -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}}
|
||||
+1
-1
@@ -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}}
|
||||
+7
-5
@@ -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
-2
@@ -1,4 +1,3 @@
|
||||
|
||||
<div class="chat-drawer-outlet-container">
|
||||
<ChatDrawer />
|
||||
</div>
|
||||
</div>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<SidebarChannels @toggleSection={{this.toggleSection}} />
|
||||
<SidebarChannels @toggleSection={{this.toggleSection}} />
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
{{#if this.user.can_chat_user}}
|
||||
<UserCardChatButton @user={{this.user}} />
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
+1
-1
@@ -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}}
|
||||
+1
-1
@@ -4,4 +4,4 @@
|
||||
{{#in-element this.chatEmojiPickerManager.element}}
|
||||
<ChatEmojiPicker />
|
||||
{{/in-element}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
+4
-1
@@ -1 +1,4 @@
|
||||
<ChatChannelArchiveModalInner @chatChannel={{this.chatChannel}} @closeModal={{route-action "closeModal"}} />
|
||||
<ChatChannelArchiveModalInner
|
||||
@chatChannel={{this.chatChannel}}
|
||||
@closeModal={{route-action "closeModal"}}
|
||||
/>
|
||||
+4
-1
@@ -1 +1,4 @@
|
||||
<ChatChannelDeleteModalInner @chatChannel={{this.chatChannel}} @closeModal={{action "closeModal"}} />
|
||||
<ChatChannelDeleteModalInner
|
||||
@chatChannel={{this.chatChannel}}
|
||||
@closeModal={{action "closeModal"}}
|
||||
/>
|
||||
+7
-2
@@ -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>
|
||||
+7
-2
@@ -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
@@ -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"}}
|
||||
/>
|
||||
+5
-1
@@ -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}}
|
||||
/>
|
||||
Reference in New Issue
Block a user