Skip to content

Commit 32fed10

Browse files
committed
Front end
Signed-off-by: GretaD <[email protected]>
1 parent c79b14b commit 32fed10

3 files changed

Lines changed: 29 additions & 2 deletions

File tree

src/components/Message.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<div v-if="message.itineraries.length > 0" class="message-itinerary">
2525
<Itinerary :entries="message.itineraries" :message-id="message.messageId" />
2626
</div>
27-
<MessageHTMLBody v-if="message.hasHtmlBody" :url="htmlUrl" :full-height="fullHeight" />
27+
<MessageHTMLBody v-if="message.hasHtmlBody" :url="htmlUrl" :message="message" :full-height="fullHeight" />
2828
<MessageEncryptedBody v-else-if="isEncrypted" :body="message.body" :from="from" />
2929
<MessagePlainTextBody v-else :body="message.body" :signature="message.signature" />
3030
<Popover v-if="message.attachments[0]" class="attachment-popover">

src/components/MessageHTMLBody.vue

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<script>
2222
import { iframeResizer } from 'iframe-resizer'
2323
import PrintScout from 'printscout'
24+
import { trustSender } from '../service/TrustedSenderService'
2425
2526
import logger from '../logger'
2627
const scout = new PrintScout()
@@ -37,11 +38,16 @@ export default {
3738
required: false,
3839
default: false,
3940
},
41+
message: {
42+
required: true,
43+
type: Object,
44+
},
4045
},
4146
data() {
4247
return {
4348
loading: true,
4449
hasBlockedContent: false,
50+
isSenderTrusted: this.message.isSenderTrusted,
4551
}
4652
},
4753
beforeMount() {
@@ -81,14 +87,17 @@ export default {
8187
|| iframeDoc.querySelectorAll('[data-original-style]').length > 0
8288
8389
this.loading = false
90+
if (this.isSenderTrusted) {
91+
this.onShowBlockedContent()
92+
}
8493
},
8594
onAfterPrint() {
8695
this.$refs.iframe.style.setProperty('height', '')
8796
},
8897
onBeforePrint() {
8998
this.$refs.iframe.style.setProperty('height', `${this.getIframeDoc().body.scrollHeight}px`, 'important')
9099
},
91-
onShowBlockedContent() {
100+
async onShowBlockedContent() {
92101
const iframeDoc = this.getIframeDoc()
93102
logger.debug('showing external images')
94103
iframeDoc.querySelectorAll('[data-original-src]').forEach((node) => {
@@ -100,6 +109,8 @@ export default {
100109
.forEach((node) => node.setAttribute('style', node.getAttribute('data-original-style')))
101110
102111
this.hasBlockedContent = false
112+
trustSender(this.message.from[0].email, true)
113+
103114
},
104115
},
105116
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { generateUrl } from '@nextcloud/router'
2+
import axios from '@nextcloud/axios'
3+
4+
5+
export async function trustSender(email, trustFlag) {
6+
const url = generateUrl('/apps/mail/api/trustedsenders/{email}', {
7+
email,
8+
})
9+
10+
if ( trustFlag) {
11+
await axios.put(url)
12+
}
13+
else {
14+
await axios.delete(url)
15+
}
16+
}

0 commit comments

Comments
 (0)