finalize AI
This commit is contained in:
@@ -368,6 +368,8 @@ Beispiele:
|
||||
<script define:vars={{ toolsData: tools }}>
|
||||
// Global tool data for quick lookup
|
||||
window.aiToolsData = toolsData;
|
||||
// Store AI session results
|
||||
window.aiSessionResults = null;
|
||||
|
||||
// Authentication check function
|
||||
async function checkAuthentication() {
|
||||
@@ -454,6 +456,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
queryInput.value = '';
|
||||
charCount.textContent = '0';
|
||||
hideAllStates();
|
||||
// Clear session results
|
||||
window.aiSessionResults = null;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -461,10 +465,22 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
if (newQueryBtn) {
|
||||
newQueryBtn.addEventListener('click', () => {
|
||||
hideAllStates();
|
||||
// Clear session results
|
||||
window.aiSessionResults = null;
|
||||
queryInput?.focus();
|
||||
});
|
||||
}
|
||||
|
||||
// Function to restore previous results when switching back to AI view
|
||||
function restoreSessionResults() {
|
||||
if (window.aiSessionResults) {
|
||||
showResults(window.aiSessionResults);
|
||||
}
|
||||
}
|
||||
|
||||
// Make restore function globally accessible
|
||||
window.restoreAIResults = restoreSessionResults;
|
||||
|
||||
// State management functions
|
||||
function showLoadingState() {
|
||||
hideAllStates();
|
||||
@@ -482,6 +498,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
function showResults(recommendation) {
|
||||
hideAllStates();
|
||||
populateResults(recommendation);
|
||||
// Save results to session
|
||||
window.aiSessionResults = recommendation;
|
||||
resultsEl.style.display = 'block';
|
||||
submitBtn.disabled = false;
|
||||
}
|
||||
@@ -518,10 +536,14 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const phaseTools = recommendedTools.filter(tool => tool.phase === phaseId);
|
||||
|
||||
if (phaseTools.length === 0) {
|
||||
container.innerHTML = '<p class="text-muted" style="font-size: 0.875rem; margin: 0; font-style: italic;">Keine spezifischen Tools für diese Phase empfohlen.</p>';
|
||||
container.innerHTML = '<p class="text-muted" style="font-size: 0.875rem; margin: 0; font-style: italic; grid-column: 1 / -1; text-align: center; padding: 2rem;">Keine spezifischen Tools für diese Phase empfohlen.</p>';
|
||||
return;
|
||||
}
|
||||
|
||||
// Sort by priority: high -> medium -> low
|
||||
const priorityOrder = { 'high': 1, 'medium': 2, 'low': 3 };
|
||||
phaseTools.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
|
||||
|
||||
container.innerHTML = phaseTools.map(recTool => {
|
||||
const toolData = window.aiToolsData.find(t => t.name === recTool.name);
|
||||
if (!toolData) return '';
|
||||
@@ -543,15 +565,29 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
"${recTool.justification}"
|
||||
</div>
|
||||
|
||||
<div class="tool-rec-metadata">
|
||||
<span>💻 ${(toolData.platforms || []).join(', ')}</span>
|
||||
<span>•</span>
|
||||
<span>📈 ${toolData.skillLevel}</span>
|
||||
<span>•</span>
|
||||
<span>📄 ${toolData.license}</span>
|
||||
${hasValidProjectUrl ? '<span class="badge badge-primary">Self-Hosted</span>' : ''}
|
||||
${isOSS ? '<span class="badge badge-success">Open Source</span>' : ''}
|
||||
${hasKnowledgebase ? '<span class="badge badge-error">Infos 📖</span>' : ''}
|
||||
<div style="margin-top: auto;">
|
||||
<div class="tool-rec-metadata">
|
||||
<div style="display: flex; align-items: center; gap: 0.25rem; margin-bottom: 0.5rem;">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
|
||||
<line x1="9" y1="9" x2="15" y2="9"></line>
|
||||
<line x1="9" y1="15" x2="15" y2="15"></line>
|
||||
</svg>
|
||||
<span>${(toolData.platforms || []).join(', ')}</span>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; gap: 0.25rem; margin-bottom: 0.5rem;">
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<circle cx="12" cy="12" r="10"></circle>
|
||||
<path d="M12 6v6l4 2"></path>
|
||||
</svg>
|
||||
<span>${toolData.skillLevel}</span>
|
||||
</div>
|
||||
<div style="display: flex; gap: 0.5rem; flex-wrap: wrap;">
|
||||
${hasValidProjectUrl ? '<span class="badge badge-primary">Self-Hosted</span>' : ''}
|
||||
${isOSS ? '<span class="badge badge-success">Open Source</span>' : ''}
|
||||
${hasKnowledgebase ? '<span class="badge badge-error">Infos 📖</span>' : ''}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
Reference in New Issue
Block a user