update
This commit is contained in:
@@ -116,8 +116,7 @@ class TrainingService {
|
||||
FROM uebungen u
|
||||
LEFT JOIN uebung_teilnahmen t ON t.uebung_id = u.id
|
||||
${userId ? `LEFT JOIN uebung_teilnahmen own_t ON own_t.uebung_id = u.id AND own_t.user_id = $3` : ''}
|
||||
WHERE u.datum_von >= $1
|
||||
AND u.datum_von <= $2
|
||||
WHERE (u.datum_von BETWEEN $1 AND $2 OR u.datum_bis BETWEEN $1 AND $2 OR (u.datum_von <= $1 AND u.datum_bis >= $2))
|
||||
GROUP BY u.id ${userId ? `, own_t.status` : ''}
|
||||
ORDER BY u.datum_von ASC
|
||||
`;
|
||||
@@ -510,16 +509,24 @@ function formatIcsDate(date: Date): string {
|
||||
* Continuation lines start with a single space.
|
||||
*/
|
||||
function foldLine(line: string): string {
|
||||
const MAX = 75;
|
||||
if (line.length <= MAX) return line;
|
||||
if (Buffer.byteLength(line, 'utf-8') <= 75) return line;
|
||||
let folded = '';
|
||||
let currentLine = '';
|
||||
let currentBytes = 0;
|
||||
|
||||
let result = '';
|
||||
while (line.length > MAX) {
|
||||
result += line.substring(0, MAX) + '\r\n ';
|
||||
line = line.substring(MAX);
|
||||
for (const char of line) {
|
||||
const charBytes = Buffer.byteLength(char, 'utf-8');
|
||||
if (currentBytes + charBytes > 75) {
|
||||
folded += currentLine + '\r\n ';
|
||||
currentLine = char;
|
||||
currentBytes = 1 + charBytes;
|
||||
} else {
|
||||
currentLine += char;
|
||||
currentBytes += charBytes;
|
||||
}
|
||||
}
|
||||
result += line;
|
||||
return result;
|
||||
folded += currentLine;
|
||||
return folded;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -592,7 +599,7 @@ export function generateICS(
|
||||
lines.push(foldLine(`SUMMARY:${escapeIcsText(summary)}`));
|
||||
|
||||
if (descParts.length > 0) {
|
||||
lines.push(foldLine(`DESCRIPTION:${escapeIcsText(descParts.join('\\n'))}`));
|
||||
lines.push(foldLine(`DESCRIPTION:${escapeIcsText(descParts.join('\n'))}`));
|
||||
}
|
||||
if (event.ort) {
|
||||
lines.push(foldLine(`LOCATION:${escapeIcsText(event.ort)}`));
|
||||
|
||||
Reference in New Issue
Block a user