Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 289d433054 |
Generated
+6
-6
@@ -589,16 +589,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "12.5.35",
|
"version": "12.5.34",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab"
|
"reference": "6cbff63d670de92cb1cb3d2ff9f40327e9da9c7f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/345ac22e42cb14cdc7aa8428655d8bb8c82a4aab",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6cbff63d670de92cb1cb3d2ff9f40327e9da9c7f",
|
||||||
"reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab",
|
"reference": "6cbff63d670de92cb1cb3d2ff9f40327e9da9c7f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -667,7 +667,7 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.35"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.34"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -675,7 +675,7 @@
|
|||||||
"type": "other"
|
"type": "other"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2026-09-09T04:48:50+00:00"
|
"time": "2026-08-27T08:38:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
|
|||||||
+12
-7
@@ -4,14 +4,13 @@ namespace KTXM\Mail;
|
|||||||
|
|
||||||
use KTXF\Event\DeliveryMode;
|
use KTXF\Event\DeliveryMode;
|
||||||
use KTXF\Event\EventListenerRegistrarInterface;
|
use KTXF\Event\EventListenerRegistrarInterface;
|
||||||
use KTXF\Module\Configuration\BrowserModuleContextInterface;
|
use KTXF\Module\ModuleBrowserInterface;
|
||||||
use KTXF\Module\Configuration\ModuleContextInterface;
|
|
||||||
use KTXF\Module\ModuleInstanceAbstract;
|
use KTXF\Module\ModuleInstanceAbstract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mail Module - Email Client
|
* Mail Module - Email Client
|
||||||
*/
|
*/
|
||||||
class Module extends ModuleInstanceAbstract
|
class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
@@ -80,10 +79,16 @@ class Module extends ModuleInstanceAbstract
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configure(ModuleContextInterface $context): void
|
public function registerBI(): array
|
||||||
{
|
{
|
||||||
if ($context instanceof BrowserModuleContextInterface) {
|
return [
|
||||||
$context->registerModule($this, 'Mail', 'static/module.mjs');
|
'handle' => $this->handle(),
|
||||||
}
|
'namespace' => 'Mail',
|
||||||
|
'version' => $this->version(),
|
||||||
|
'label' => $this->label(),
|
||||||
|
'author' => $this->author(),
|
||||||
|
'description' => $this->description(),
|
||||||
|
'boot' => 'static/module.mjs',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, ref, watch } from 'vue'
|
import { computed, ref, watch } from 'vue'
|
||||||
import { usePreviewStore, useUser } from '@KTXC'
|
import { useUser } from '@KTXC'
|
||||||
import { useMailUiStore } from '@/stores/mailUiStore'
|
import { useMailUiStore } from '@/stores/mailUiStore'
|
||||||
import type { EntityObject, MessageObject } from '@MailManager/models'
|
import type { EntityObject, MessageObject } from '@MailManager/models'
|
||||||
import { SecurityLevel } from '@/utile/emailSanitizer'
|
import { SecurityLevel } from '@/utile/emailSanitizer'
|
||||||
@@ -29,7 +29,6 @@ const emit = defineEmits<{
|
|||||||
|
|
||||||
// User settings
|
// User settings
|
||||||
const { getSetting } = useUser()
|
const { getSetting } = useUser()
|
||||||
const previewStore = usePreviewStore()
|
|
||||||
const mailUiStore = useMailUiStore()
|
const mailUiStore = useMailUiStore()
|
||||||
|
|
||||||
// Security overrides
|
// Security overrides
|
||||||
@@ -66,7 +65,6 @@ const effectiveSecurityLevel = computed(() => {
|
|||||||
// Preview state
|
// Preview state
|
||||||
const previewDialog = computed(() => mediaViewerComponent('dialog'))
|
const previewDialog = computed(() => mediaViewerComponent('dialog'))
|
||||||
const previewItems = computed<MediaViewerItem[]>(() => {
|
const previewItems = computed<MediaViewerItem[]>(() => {
|
||||||
if (!previewStore.availability.storage) return []
|
|
||||||
const attachments = message.value?.attachments ?? []
|
const attachments = message.value?.attachments ?? []
|
||||||
const items: MediaViewerItem[] = []
|
const items: MediaViewerItem[] = []
|
||||||
attachments.forEach((attachment, index) => {
|
attachments.forEach((attachment, index) => {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { usePreviewStore } from '@KTXC'
|
|
||||||
import RecipientDetails from '@/components/common/RecipientDetails.vue'
|
import RecipientDetails from '@/components/common/RecipientDetails.vue'
|
||||||
import { formatFileSize } from '@/utile/format'
|
import { formatFileSize } from '@/utile/format'
|
||||||
import { mediaViewerCanDisplay, mediaViewerComponent } from '@/services/mediaViewer'
|
import { mediaViewerCanDisplay, mediaViewerComponent } from '@/services/mediaViewer'
|
||||||
@@ -28,9 +27,7 @@ const emit = defineEmits<{
|
|||||||
}>()
|
}>()
|
||||||
|
|
||||||
const mailUiStore = useMailUiStore()
|
const mailUiStore = useMailUiStore()
|
||||||
const previewStore = usePreviewStore()
|
const previewPopover = computed(() => mediaViewerComponent('popover'))
|
||||||
const previewsAvailable = computed(() => previewStore.availability.storage)
|
|
||||||
const previewPopover = computed(() => previewsAvailable.value ? mediaViewerComponent('popover') : null)
|
|
||||||
|
|
||||||
const message = computed(() => {
|
const message = computed(() => {
|
||||||
return props.entity?.properties ?? null
|
return props.entity?.properties ?? null
|
||||||
@@ -51,7 +48,7 @@ const attachmentItems = computed<AttachmentItem[]>(() =>
|
|||||||
)
|
)
|
||||||
|
|
||||||
const isPreviewable = (attachment: MessagePartInterface): boolean => {
|
const isPreviewable = (attachment: MessagePartInterface): boolean => {
|
||||||
return previewsAvailable.value && mediaViewerCanDisplay(attachment.type)
|
return mediaViewerCanDisplay(attachment.type)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAttachmentClick = (attachment: MessagePartInterface, index: number): void => {
|
const handleAttachmentClick = (attachment: MessagePartInterface, index: number): void => {
|
||||||
|
|||||||
Reference in New Issue
Block a user