fix deselect condition on filtered datasets; added new phrases for confirm & edit dialog; fixed emailSplitter phrasen & confirm; fixed modal fullscreen button alignment & color;

This commit is contained in:
Johann Hoffmann
2026-05-06 16:49:35 +02:00
parent 9e061de9bd
commit a5d343268f
4 changed files with 63 additions and 19 deletions
+31 -2
View File
@@ -4,7 +4,9 @@ export default {
name: 'BootstrapModal',
data: () => ({
modal: null,
fullscreen: false
fullscreen: false,
expandBtnHovered: false,
expandBtnFocused: false,
}),
props: {
backdrop: {
@@ -70,6 +72,29 @@ export default {
this.$emit('toggleFullscreen')
}
},
computed: {
getExpandButtonStyles() {
const hovered = this.expandBtnHovered;
const focused = this.expandBtnFocused;
return `display: flex;
align-items: center;
justify-content: center;
width: 1em;
height: 1em;
padding: 0;
border: 0;
background: transparent;
font-size: 1em;
opacity: 0.5;
color: inherit;
cursor: pointer;
line-height: 1;
transition: opacity 0.15s ease;
opacity: ${focused ? '1' : hovered ? '0.75' : '0.5'};
outline: ${focused ? '1px solid currentColor' : 'none'};
outline-offset: 2px;`
}
},
mounted() {
if (this.$refs.modal)
this.modal = new bootstrap.Modal(this.$refs.modal, {
@@ -140,9 +165,13 @@ export default {
<div class="d-flex align-items-center ms-auto gap-2">
<button
type="button"
class="btn mb-1"
:style="getExpandButtonStyles"
v-if="allowFullscreenExpand"
@click="toggleFullscreen"
@mouseenter="expandBtnHovered = true"
@mouseleave="expandBtnHovered = false"
@focusin="expandBtnFocused = true"
@focusout="expandBtnFocused = false"
:aria-label="fullscreen ? 'Exit Fullscreen' : 'Enter Fullscreen'"
>
<i v-if="!fullscreen" class="fa-solid fa-expand"></i>
@@ -308,7 +308,6 @@ export const AbgabetoolAssistenz = {
{
event: 'dataFiltered',
handler: (filters, rows) => {
console.log('dataFiltered', rows)
this.filteredRows = rows
this.filteredcount = rows.length
}
+11 -15
View File
@@ -1,24 +1,20 @@
export async function splitMailsHelper(mails, event, subject, body, alertPluginRef, phrasenPluginRef) {
await phrasenPluginRef.loadCategory('ui')
let splititem = ",";
let maillist = mails.join(splititem);
let mailto = "";
const encodedBody = body && typeof body === 'string' ? encodeURIComponent(body) : null;
let encodedBody = body && typeof body === 'string' ? encodeURIComponent(body) : null;
const subjectlength = subject && typeof subject === 'string' ? subject.length + 9 : 0;
const bodylength = encodedBody ? encodedBody.length + 6 : 0;
const overhead = subjectlength + bodylength;
let bodylength = encodedBody ? encodedBody.length + 6 : 0;
let overhead = subjectlength + bodylength;
debugger
if (overhead > 2024)
{
await alertPluginRef.alertWarning({message: phrasenPluginRef.t('ui', 'bodyZuLang')});
return;
}
if (maillist.length > 2024)
{
if (await alertPluginRef.confirm({message: phrasenPluginRef.t('ui', 'zuvieleEMails') }) === false)
return;
await alertPluginRef.alertWarning(phrasenPluginRef.t('ui', 'bodyZuLang'));
encodedBody = null;
bodylength = 0;
overhead = subjectlength;
}
let firstrun = true;
@@ -27,7 +23,7 @@ export async function splitMailsHelper(mails, event, subject, body, alertPluginR
{
if (maillist.length + overhead > 2024)
{
let splitposition = maillist.lastIndexOf(splititem, 1900 - overhead);
let splitposition = maillist.lastIndexOf(splititem, 2024 - overhead);
mailto = maillist.substring(0, splitposition);
maillist = maillist.substring(splitposition + 1);
}
@@ -47,7 +43,7 @@ export async function splitMailsHelper(mails, event, subject, body, alertPluginR
}
else
{
if (await alertPluginRef.confirm({message: phrasenPluginRef.t('stv', 'weitereEMail')}) === true)
if (await alertPluginRef.confirm({message: phrasenPluginRef.t('ui', 'weitereEMail')}) === true)
{
window.location.href = mailLink;
}
+21 -1
View File
@@ -47221,6 +47221,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'bodyZuLang',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Der Emailtext ist zu lange um kopiert zu werden.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'The Emailbody is too long to be copied',
'description' => '',
'insertvon' => 'system'
)
)
),
// ABGABETOOL PHRASEN END
array(
'app' => 'core',
@@ -47890,7 +47910,7 @@ array(
),
array(
'app' => 'core',
'category' => 'stv',
'category' => 'ui',
'phrase' => 'weitereEMail',
'insertvon' => 'system',
'phrases' => array(