Promote develop → main (2026-05-13 22:38 UTC) #25
@@ -341,7 +341,7 @@
|
|||||||
<div class="description-label-row">
|
<div class="description-label-row">
|
||||||
<label for="inc-description">Beschreibung / Kontext <span class="info-icon tooltip-below" id="description-info-icon" data-tooltip="Beschreibe den Vorfall möglichst genau: Was ist passiert? Wo? Wer ist beteiligt? Je präziser, desto bessere Ergebnisse."><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg></span></label>
|
<label for="inc-description">Beschreibung / Kontext <span class="info-icon tooltip-below" id="description-info-icon" data-tooltip="Beschreibe den Vorfall möglichst genau: Was ist passiert? Wo? Wer ist beteiligt? Je präziser, desto bessere Ergebnisse."><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg></span></label>
|
||||||
<button type="button" class="btn btn-secondary btn-small" id="btn-enhance-description" onclick="App.generateDescription()" disabled>
|
<button type="button" class="btn btn-secondary btn-small" id="btn-enhance-description" onclick="App.generateDescription()" disabled>
|
||||||
<span id="enhance-btn-text">Beschreibung generieren</span>
|
<span id="enhance-btn-text" data-i18n="modal.new_incident.enhance">Beschreibung generieren</span>
|
||||||
<span id="enhance-spinner" class="spinner-inline" style="display:none;"></span>
|
<span id="enhance-spinner" class="spinner-inline" style="display:none;"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -729,7 +729,7 @@
|
|||||||
<script src="/static/js/components.js?v=20260513a"></script>
|
<script src="/static/js/components.js?v=20260513a"></script>
|
||||||
<script src="/static/js/layout.js?v=20260316b"></script>
|
<script src="/static/js/layout.js?v=20260316b"></script>
|
||||||
<script src="/static/js/pipeline.js?v=20260501i"></script>
|
<script src="/static/js/pipeline.js?v=20260501i"></script>
|
||||||
<script src="/static/js/app.js?v=20260513b"></script>
|
<script src="/static/js/app.js?v=20260513c"></script>
|
||||||
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
||||||
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
||||||
<script src="/static/js/chat.js?v=20260422a"></script>
|
<script src="/static/js/chat.js?v=20260422a"></script>
|
||||||
|
|||||||
@@ -21,6 +21,11 @@
|
|||||||
"modal.new_incident.title_field": "Titel des Vorfalls",
|
"modal.new_incident.title_field": "Titel des Vorfalls",
|
||||||
"modal.new_incident.description": "Beschreibung / Kontext",
|
"modal.new_incident.description": "Beschreibung / Kontext",
|
||||||
"modal.new_incident.enhance": "Beschreibung generieren",
|
"modal.new_incident.enhance": "Beschreibung generieren",
|
||||||
|
"modal.new_incident.enhance_loading": "Wird generiert...",
|
||||||
|
"enhance.error_default": "Beschreibung konnte nicht generiert werden",
|
||||||
|
"enhance.error_unavailable": "KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.",
|
||||||
|
"enhance.error_busy": "KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.",
|
||||||
|
"enhance.error_timeout": "KI antwortet gerade nicht. Bitte erneut versuchen.",
|
||||||
"modal.new_incident.visibility": "Sichtbarkeit",
|
"modal.new_incident.visibility": "Sichtbarkeit",
|
||||||
"modal.new_incident.visibility_public": "Öffentlich",
|
"modal.new_incident.visibility_public": "Öffentlich",
|
||||||
"modal.new_incident.visibility_private": "Privat",
|
"modal.new_incident.visibility_private": "Privat",
|
||||||
|
|||||||
@@ -21,6 +21,11 @@
|
|||||||
"modal.new_incident.title_field": "Incident title",
|
"modal.new_incident.title_field": "Incident title",
|
||||||
"modal.new_incident.description": "Description / context",
|
"modal.new_incident.description": "Description / context",
|
||||||
"modal.new_incident.enhance": "Generate description",
|
"modal.new_incident.enhance": "Generate description",
|
||||||
|
"modal.new_incident.enhance_loading": "Generating...",
|
||||||
|
"enhance.error_default": "Description could not be generated",
|
||||||
|
"enhance.error_unavailable": "AI access currently unavailable. Please contact your administrator.",
|
||||||
|
"enhance.error_busy": "AI is currently busy. Please wait briefly and try again.",
|
||||||
|
"enhance.error_timeout": "AI is not responding. Please try again.",
|
||||||
"modal.new_incident.visibility": "Visibility",
|
"modal.new_incident.visibility": "Visibility",
|
||||||
"modal.new_incident.visibility_public": "Public",
|
"modal.new_incident.visibility_public": "Public",
|
||||||
"modal.new_incident.visibility_private": "Private",
|
"modal.new_incident.visibility_private": "Private",
|
||||||
|
|||||||
@@ -1906,7 +1906,7 @@ async generateDescription() {
|
|||||||
this._enhanceController = new AbortController();
|
this._enhanceController = new AbortController();
|
||||||
|
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
btnText.textContent = 'Wird generiert...';
|
btnText.textContent = (typeof T === 'function') ? T('modal.new_incident.enhance_loading', 'Wird generiert...') : 'Wird generiert...';
|
||||||
spinner.style.display = '';
|
spinner.style.display = '';
|
||||||
textarea.readOnly = true;
|
textarea.readOnly = true;
|
||||||
textarea.classList.add('textarea--loading');
|
textarea.classList.add('textarea--loading');
|
||||||
@@ -1919,15 +1919,15 @@ async generateDescription() {
|
|||||||
if (err.name === 'AbortError') {
|
if (err.name === 'AbortError') {
|
||||||
// still
|
// still
|
||||||
} else {
|
} else {
|
||||||
let msg = 'Beschreibung konnte nicht generiert werden';
|
let msg = (typeof T === 'function') ? T('enhance.error_default', 'Beschreibung konnte nicht generiert werden') : 'Beschreibung konnte nicht generiert werden';
|
||||||
if (err.status === 503) msg = 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.';
|
if (err.status === 503) msg = (typeof T === 'function') ? T('enhance.error_unavailable', 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.') : 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.';
|
||||||
else if (err.status === 429) msg = 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.';
|
else if (err.status === 429) msg = (typeof T === 'function') ? T('enhance.error_busy', 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.') : 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.';
|
||||||
else if (err.status === 504) msg = 'KI antwortet gerade nicht. Bitte erneut versuchen.';
|
else if (err.status === 504) msg = (typeof T === 'function') ? T('enhance.error_timeout', 'KI antwortet gerade nicht. Bitte erneut versuchen.') : 'KI antwortet gerade nicht. Bitte erneut versuchen.';
|
||||||
else if (err.status === 403) msg = err.detail || 'Zugriff verweigert.';
|
else if (err.status === 403) msg = err.detail || 'Zugriff verweigert.';
|
||||||
UI.showToast(msg, 'error');
|
UI.showToast(msg, 'error');
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
btnText.textContent = 'Beschreibung generieren';
|
btnText.textContent = (typeof T === 'function') ? T('modal.new_incident.enhance', 'Beschreibung generieren') : 'Beschreibung generieren';
|
||||||
spinner.style.display = 'none';
|
spinner.style.display = 'none';
|
||||||
btn.disabled = title.length < 3;
|
btn.disabled = title.length < 3;
|
||||||
textarea.readOnly = false;
|
textarea.readOnly = false;
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren