Author SHA1 Message Date
haylanandClaude Bot ea252ecf6c fix(admin): move dump modals into sw-page #content slot so delete works on 6.7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:54:26 +01:00
2 changed files with 46 additions and 44 deletions

No files matched your search

+1
View File
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- The admin build failed on a combined `import type` statement, so the Settings card never appeared. - The admin build failed on a combined `import type` statement, so the Settings card never appeared.
- Delete did nothing and the create progress modal never showed: both modals sat outside `sw-page`'s named slots, which Vue 3 drops. They now live in `#content`.
- Creating a dump failed on MariaDB when only MySQL 8's `mysqldump` was installed (`Unknown table 'COLUMN_STATISTICS'`); it now passes `--column-statistics=0` in that case. - Creating a dump failed on MariaDB when only MySQL 8's `mysqldump` was installed (`Unknown table 'COLUMN_STATISTICS'`); it now passes `--column-statistics=0` in that case.
### Removed ### Removed
@@ -75,50 +75,51 @@
</template> </template>
</sw-data-grid> </sw-data-grid>
</div> </div>
<!-- sw-page has no default slot (Vue 3 drops unslotted content): modals must live in #content. -->
{% block aeon_dump_manager_list_progress_modal %}
<sw-modal
v-if="pendingJob !== null"
:title="$tc('aeon-dump-manager.list.progressTitle')"
variant="small"
class="aeon-dump-manager-list__progress-modal"
@modal-close="onCloseProgressModal"
>
<div class="aeon-dump-manager-list__progress-wrapper">
<template v-if="pendingJob.status === 'done'">
<mt-banner variant="positive">
{{ $tc('aeon-dump-manager.list.createSuccess') }}
</mt-banner>
</template>
<template v-else-if="pendingJob.status === 'failed'">
<mt-banner variant="critical">
{{ $tc('aeon-dump-manager.list.createFailed', 0, { error: pendingJob.errorMessage || '' }) }}
</mt-banner>
</template>
<template v-else>
<mt-progress-bar
:model-value="pendingJob.percent || 0"
:max-value="100"
/>
<span class="aeon-dump-manager-list__progress-text">
{{ $tc('aeon-dump-manager.list.progressText') }}
</span>
</template>
</div>
</sw-modal>
{% endblock %}
<sw-confirm-modal
v-if="deleteFilenames !== null"
:title="$tc('aeon-dump-manager.list.confirmDeleteTitle')"
:text="deleteFilenames.length > 1
? $tc('aeon-dump-manager.list.confirmDeleteTextMultiple', 0, { count: deleteFilenames.length })
: $tc('aeon-dump-manager.list.confirmDeleteText', 0, { filename: deleteFilenames[0] })"
type="delete"
@confirm="onConfirmDelete"
@cancel="onCancelDelete"
@close="onCancelDelete"
/>
</template> </template>
{% block aeon_dump_manager_list_progress_modal %}
<sw-modal
v-if="pendingJob !== null"
:title="$tc('aeon-dump-manager.list.progressTitle')"
variant="small"
class="aeon-dump-manager-list__progress-modal"
@modal-close="onCloseProgressModal"
>
<div class="aeon-dump-manager-list__progress-wrapper">
<template v-if="pendingJob.status === 'done'">
<mt-banner variant="positive">
{{ $tc('aeon-dump-manager.list.createSuccess') }}
</mt-banner>
</template>
<template v-else-if="pendingJob.status === 'failed'">
<mt-banner variant="critical">
{{ $tc('aeon-dump-manager.list.createFailed', 0, { error: pendingJob.errorMessage || '' }) }}
</mt-banner>
</template>
<template v-else>
<mt-progress-bar
:model-value="pendingJob.percent || 0"
:max-value="100"
/>
<span class="aeon-dump-manager-list__progress-text">
{{ $tc('aeon-dump-manager.list.progressText') }}
</span>
</template>
</div>
</sw-modal>
{% endblock %}
<sw-confirm-modal
v-if="deleteFilenames !== null"
:title="$tc('aeon-dump-manager.list.confirmDeleteTitle')"
:text="deleteFilenames.length > 1
? $tc('aeon-dump-manager.list.confirmDeleteTextMultiple', 0, { count: deleteFilenames.length })
: $tc('aeon-dump-manager.list.confirmDeleteText', 0, { filename: deleteFilenames[0] })"
type="delete"
@confirm="onConfirmDelete"
@cancel="onCancelDelete"
@close="onCancelDelete"
/>
</sw-page> </sw-page>
{% endblock %} {% endblock %}