diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/conversation/conversation.vue | 11 | ||||
| -rw-r--r-- | src/components/settings/settings.js | 4 | ||||
| -rw-r--r-- | src/components/settings/settings.vue | 21 | ||||
| -rw-r--r-- | src/components/status/status.js | 6 | ||||
| -rw-r--r-- | src/components/status/status.vue | 26 | ||||
| -rw-r--r-- | src/components/status_or_conversation/status_or_conversation.vue | 2 | ||||
| -rw-r--r-- | src/main.js | 1 | ||||
| -rw-r--r-- | src/modules/config.js | 1 |
8 files changed, 59 insertions, 13 deletions
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue index 33a43e15..726cfb65 100644 --- a/src/components/conversation/conversation.vue +++ b/src/components/conversation/conversation.vue @@ -1,6 +1,6 @@ <template> <div class="timeline panel panel-default base00-background"> - <div class="panel-heading base01-background base04"> + <div class="panel-heading base01-background base04 base03-border conversation-heading"> Conversation <span v-if="collapsable" style="float:right;"> <small><a href="#" @click.prevent="$emit('toggleExpanded')">Collapse</a></small> @@ -8,10 +8,17 @@ </div> <div class="panel-body"> <div class="timeline"> - <status v-for="status in conversation" :key="status.id" v-bind:statusoid="status":expandable='false':focused="focused(status.id)"></status> + <status v-for="status in conversation" :key="status.id" :statusoid="status" :expandable='false' :focused="focused(status.id)" :inConversation='true'></status> </div> </div> </div> </template> <script src="./conversation.js"></script> + +<style lang="scss"> + .conversation-heading { + border-bottom-style: solid; + border-bottom-width: 1px; + } +</style> diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index c1b88f82..3d373283 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -4,6 +4,7 @@ const settings = { data () { return { hideAttachmentsLocal: this.$store.state.config.hideAttachments, + hideAttachmentsInConvLocal: this.$store.state.config.hideAttachmentsInConv, hideNsfwLocal: this.$store.state.config.hideNsfw } }, @@ -14,6 +15,9 @@ const settings = { hideAttachmentsLocal (value) { this.$store.dispatch('setOption', { name: 'hideAttachments', value }) }, + hideAttachmentsInConvLocal (value) { + this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value }) + }, hideNsfwLocal (value) { this.$store.dispatch('setOption', { name: 'hideNsfw', value }) } diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 89b89a39..478d761a 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -10,10 +10,20 @@ </div> <div class="setting-item"> <h2>Attachments</h2> - <input type="checkbox" id="hideAttachments" v-model="hideAttachmentsLocal"> - <label for="hideAttachments">Hide Attachments</label> - <input type="checkbox" id="hideNsfw" v-model="hideNsfwLocal"> - <label for="hideNsfw">Enable clickthrough NSFW attachment hiding</label> + <ul class="setting-list"> + <li> + <input type="checkbox" id="hideAttachments" v-model="hideAttachmentsLocal"> + <label for="hideAttachments">Hide attachments in timeline</label> + </li> + <li> + <input type="checkbox" id="hideAttachmentsInConv" v-model="hideAttachmentsInConvLocal"> + <label for="hideAttachmentsInConv">Hide attachments in conversations</label> + </li> + <li> + <input type="checkbox" id="hideNsfw" v-model="hideNsfwLocal"> + <label for="hideNsfw">Enable clickthrough NSFW attachment hiding</label> + </li> + </ul> </div> </div> </div> @@ -26,4 +36,7 @@ .setting-item { margin: 1em 1em 1.4em; } + .setting-list { + list-style-type: none; + } </style> diff --git a/src/components/status/status.js b/src/components/status/status.js index 6faebf61..87fff879 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -9,6 +9,7 @@ const Status = { props: [ 'statusoid', 'expandable', + 'inConversation', 'focused' ], data: () => ({ @@ -18,7 +19,10 @@ const Status = { userExpanded: false }), computed: { - hideAttachments () { return this.$store.state.config.hideAttachments }, + hideAttachments () { + return (this.$store.state.config.hideAttachments && !this.inConversation) || + (this.$store.state.config.hideAttachmentsInConv && this.inConversation) + }, retweet () { return !!this.statusoid.retweeted_status }, retweeter () { return this.statusoid.user.name }, status () { diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 9b0827a7..62a55505 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -1,5 +1,5 @@ <template> - <div class="status-el base00-background base03-border" v-if="!status.deleted" v-bind:class="[{ 'expanded-status': !expandable }, { 'base01-background': focused }]" > + <div class="status-el base00-background base03-border" v-if="!status.deleted" v-bind:class="[{ 'base01-background': focused }, { 'status-conversation': inConversation }]" > <template v-if="muted"> <div class="media status container muted"> <small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small> @@ -73,18 +73,20 @@ <div class='status-actions'> <div> <a href="#" v-on:click.prevent="toggleReplying"> - <i class='fa icon-reply'></i> + <i class="fa icon-reply" :class="{'icon-reply-active': replying}"></i> </a> </div> <retweet-button :status=status></retweet-button> <favorite-button :status=status></favorite-button> <delete-button :status=status></delete-button> </div> - - <post-status-form v-if="replying" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user" v-on:posted="toggleReplying"></post-status-form> </div> </div> </div> + <div class="status base00-background container" v-if="replying"> + <div class="reply-left"/> + <post-status-form class="reply-body" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user" v-on:posted="toggleReplying"/> + </div> </template> </div> </template> @@ -129,7 +131,7 @@ } } - .expanded-status { + .status-conversation { border-left-style: solid; } @@ -141,6 +143,10 @@ color: $blue; } + .icon-reply-active { + color: $blue; + } + .status .avatar { width: 48px; } @@ -172,4 +178,14 @@ margin-bottom: 1em; margin-top: 0.2em; } + + .reply-left { + flex: 0; + min-width: 48px; + } + + .reply-body { + flex: 1; + } + </style> diff --git a/src/components/status_or_conversation/status_or_conversation.vue b/src/components/status_or_conversation/status_or_conversation.vue index 4aaaf2ff..9647d5eb 100644 --- a/src/components/status_or_conversation/status_or_conversation.vue +++ b/src/components/status_or_conversation/status_or_conversation.vue @@ -1,7 +1,7 @@ <template> <div> <conversation v-if="expanded" @toggleExpanded="toggleExpanded" :collapsable="true" :statusoid="statusoid"></conversation> - <status v-if="!expanded" @toggleExpanded="toggleExpanded" :expandable="true" :statusoid="statusoid" :focused="false"></status> + <status v-if="!expanded" @toggleExpanded="toggleExpanded" :expandable="true" :inConversation="false" :focused="false" :statusoid="statusoid"></status> </div> </template> diff --git a/src/main.js b/src/main.js index 30929f0b..ab0fd6c0 100644 --- a/src/main.js +++ b/src/main.js @@ -31,6 +31,7 @@ Vue.use(VueTimeago, { const persistedStateOptions = { paths: [ 'config.hideAttachments', + 'config.hideAttachmentsInConv', 'config.hideNsfw', 'statuses.notifications', 'users.users' diff --git a/src/modules/config.js b/src/modules/config.js index 896a6978..05b4ab3b 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -5,6 +5,7 @@ const defaultState = { name: 'Pleroma FE', colors: {}, hideAttachments: false, + hideAttachmentsInConv: false, hideNsfw: true } |
