main #11

Merged
mstoeck3 merged 66 commits from main into forensic-ai 2025-08-11 12:02:56 +00:00
Showing only changes of commit 9e42b2a98d - Show all commits

View File

@ -726,38 +726,28 @@ class ContributionForm {
updateFieldVisibility() {
const type = this.elements.typeSelect.value;
this.elements.softwareFields.style.display = 'none';
this.elements.relationsFields.style.display = 'none';
// Only hide/show software-specific fields (platforms, license)
// Relations should always be visible since all tool types can have relationships
this.elements.softwareFields.style.display = type === 'software' ? 'block' : 'none';
if (this.elements.platformsRequired) this.elements.platformsRequired.style.display = 'none';
if (this.elements.licenseRequired) this.elements.licenseRequired.style.display = 'none';
// Always show relations - all tool types can have relationships
this.elements.relationsFields.style.display = 'block';
if (type === 'software') {
this.elements.softwareFields.style.display = 'block';
this.elements.relationsFields.style.display = 'block';
if (this.elements.platformsRequired) this.elements.platformsRequired.style.display = 'inline';
if (this.elements.licenseRequired) this.elements.licenseRequired.style.display = 'inline';
} else if (type === 'method') {
this.elements.relationsFields.style.display = 'block';
} else if (type === 'concept') {
// Concepts can only relate to software/methods, not other concepts
this.elements.relationsFields.style.display = 'block';
// Hide concepts section for concept types
const conceptsSection = document.getElementById('related-concepts-section');
const softwareSection = document.getElementById('related-software-section');
if (conceptsSection) conceptsSection.style.display = 'none';
if (softwareSection) softwareSection.style.display = 'block';
// Only mark platform/license as required for software
if (this.elements.platformsRequired) {
this.elements.platformsRequired.style.display = type === 'software' ? 'inline' : 'none';
}
if (this.elements.licenseRequired) {
this.elements.licenseRequired.style.display = type === 'software' ? 'inline' : 'none';
}
// Show appropriate relation sections
if (type !== 'concept') {
// Always show both relation sections - let users decide what's relevant
const conceptsSection = document.getElementById('related-concepts-section');
const softwareSection = document.getElementById('related-software-section');
if (conceptsSection) conceptsSection.style.display = 'block';
if (softwareSection) softwareSection.style.display = 'block';
}
console.log('[FORM] Field visibility updated for type:', type);
console.log('[FORM] Updated visibility for type:', type || '(no type selected)');
}
setupCharacterCounters() {