| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | <title>AutoFS - Submit Data/Method</title> |
| | <style> |
| | :root { |
| | --primary-color: #3498db; |
| | --secondary-color: #2c3e50; |
| | --background-color: #f8f9fa; |
| | --text-color: #333; |
| | --border-color: #dee2e6; |
| | --hover-color: #f1f1f1; |
| | --accent-color: #e67e22; |
| | --sidebar-width: 280px; |
| | } |
| | |
| | body { |
| | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; |
| | margin: 0; |
| | padding: 0; |
| | background-color: var(--background-color); |
| | color: var(--text-color); |
| | display: flex; |
| | min-height: 100vh; |
| | } |
| | |
| | |
| | .sidebar { |
| | width: var(--sidebar-width); |
| | background-color: var(--secondary-color); |
| | color: white; |
| | position: fixed; |
| | height: 100vh; |
| | overflow-y: auto; |
| | padding: 20px; |
| | box-sizing: border-box; |
| | left: 0; |
| | top: 0; |
| | z-index: 100; |
| | display: flex; |
| | flex-direction: column; |
| | gap: 20px; |
| | } |
| | |
| | .sidebar h2 { |
| | font-size: 1.2em; |
| | margin-bottom: 10px; |
| | color: #ecf0f1; |
| | border-bottom: 1px solid #34495e; |
| | padding-bottom: 5px; |
| | } |
| | |
| | .nav-links { |
| | list-style: none; |
| | padding: 0; |
| | margin: 0; |
| | } |
| | |
| | .nav-links li a { |
| | display: block; |
| | padding: 10px; |
| | color: #bdc3c7; |
| | text-decoration: none; |
| | border-radius: 4px; |
| | transition: background 0.2s; |
| | } |
| | |
| | .nav-links li a:hover, .nav-links li a.active { |
| | background: rgba(255,255,255,0.1); |
| | color: white; |
| | } |
| | |
| | |
| | .main-content { |
| | margin-left: var(--sidebar-width); |
| | flex: 1; |
| | padding: 40px; |
| | max-width: calc(100% - var(--sidebar-width)); |
| | box-sizing: border-box; |
| | min-width: 0; |
| | } |
| | |
| | header { |
| | margin-bottom: 30px; |
| | border-bottom: 2px solid var(--primary-color); |
| | padding-bottom: 10px; |
| | } |
| | |
| | .subtitle { |
| | font-size: 0.9em; |
| | color: #7f8c8d; |
| | margin-top: 5px; |
| | } |
| | |
| | |
| | .submission-container { |
| | background: white; |
| | border-radius: 8px; |
| | box-shadow: 0 2px 4px rgba(0,0,0,0.1); |
| | overflow: hidden; |
| | max-width: 800px; |
| | margin: 0 auto; |
| | } |
| | |
| | .tabs { |
| | display: flex; |
| | background: #f1f1f1; |
| | border-bottom: 1px solid var(--border-color); |
| | } |
| | |
| | .tab-btn { |
| | flex: 1; |
| | padding: 15px; |
| | border: none; |
| | background: none; |
| | cursor: pointer; |
| | font-size: 1.1em; |
| | font-weight: 600; |
| | color: #7f8c8d; |
| | transition: all 0.3s; |
| | } |
| | |
| | .tab-btn:hover { |
| | background: #e9ecef; |
| | color: var(--secondary-color); |
| | } |
| | |
| | .tab-btn.active { |
| | background: white; |
| | color: var(--primary-color); |
| | border-bottom: 3px solid var(--primary-color); |
| | } |
| | |
| | .form-content { |
| | padding: 30px; |
| | display: none; |
| | } |
| | |
| | .form-content.active { |
| | display: block; |
| | animation: fadeIn 0.5s; |
| | } |
| | |
| | @keyframes fadeIn { |
| | from { opacity: 0; } |
| | to { opacity: 1; } |
| | } |
| | |
| | .form-group { |
| | margin-bottom: 20px; |
| | } |
| | |
| | .form-group label { |
| | display: block; |
| | margin-bottom: 8px; |
| | font-weight: 600; |
| | color: var(--secondary-color); |
| | } |
| | |
| | .form-group input[type="text"], |
| | .form-group input[type="email"], |
| | .form-group input[type="url"], |
| | .form-group textarea, |
| | .form-group select { |
| | width: 100%; |
| | padding: 10px; |
| | border: 1px solid var(--border-color); |
| | border-radius: 4px; |
| | font-size: 1em; |
| | box-sizing: border-box; |
| | transition: border-color 0.2s; |
| | } |
| | |
| | .form-group input:focus, |
| | .form-group textarea:focus, |
| | .form-group select:focus { |
| | outline: none; |
| | border-color: var(--primary-color); |
| | } |
| | |
| | .form-group textarea { |
| | resize: vertical; |
| | min-height: 100px; |
| | } |
| | |
| | .file-upload { |
| | border: 2px dashed var(--border-color); |
| | padding: 20px; |
| | text-align: center; |
| | border-radius: 4px; |
| | cursor: pointer; |
| | transition: border-color 0.2s; |
| | position: relative; |
| | } |
| | |
| | .file-upload:hover { |
| | border-color: var(--primary-color); |
| | background: #f8f9fa; |
| | } |
| | |
| | .file-upload input[type="file"] { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | opacity: 0; |
| | cursor: pointer; |
| | } |
| | |
| | .submit-btn { |
| | background-color: var(--primary-color); |
| | color: white; |
| | border: none; |
| | padding: 12px 24px; |
| | font-size: 1.1em; |
| | border-radius: 4px; |
| | cursor: pointer; |
| | transition: background 0.3s; |
| | display: block; |
| | width: 100%; |
| | margin-top: 30px; |
| | } |
| | |
| | .submit-btn:hover { |
| | background-color: #2980b9; |
| | } |
| | |
| | .helper-text { |
| | font-size: 0.85em; |
| | color: #7f8c8d; |
| | margin-top: 5px; |
| | } |
| | |
| | .success-message { |
| | display: none; |
| | background: #d4edda; |
| | color: #155724; |
| | padding: 15px; |
| | border-radius: 4px; |
| | margin-top: 20px; |
| | text-align: center; |
| | border: 1px solid #c3e6cb; |
| | } |
| | </style> |
| | </head> |
| | <body> |
| |
|
| | <aside class="sidebar"> |
| | <div style="text-align: center; margin-bottom: 20px;"> |
| | <h1 style="font-size: 1.5em; margin: 0; color: white;">AutoFS</h1> |
| | <div style="font-size: 0.8em; color: #bdc3c7;">Feature Selection Leaderboard</div> |
| | </div> |
| |
|
| | <div> |
| | <h2>Navigation</h2> |
| | <ul class="nav-links"> |
| | <li><a href="/">📊 Overview</a></li> |
| | <li><a href="/#main-table">🏆 Leaderboard</a></li> |
| | <li><a href="/#charts">📈 Charts</a></li> |
| | <li><a href="/#details">ℹ️ Details</a></li> |
| | <li><a href="/global">🌍 Global Rankings</a></li> |
| | <li><a href="/submit" class="active">📤 Submit Data/Method</a></li> |
| | </ul> |
| | </div> |
| | |
| | <div style="margin-top: auto; padding-top: 20px; border-top: 1px solid #34495e;"> |
| | <p style="font-size: 0.8em; color: #bdc3c7; text-align: center;"> |
| | Need help?<br> |
| | <a href="mailto:support@autofs.com" style="color: var(--primary-color);">Contact Support</a> |
| | </p> |
| | </div> |
| | </aside> |
| |
|
| | <main class="main-content"> |
| | <header> |
| | <h1 style="color: var(--secondary-color); margin: 0;">📤 Submission Center</h1> |
| | <div class="subtitle">Contribute to the leaderboard by submitting new datasets or feature selection methods.</div> |
| | </header> |
| |
|
| | <div class="submission-container"> |
| | <div class="tabs"> |
| | <button class="tab-btn active" onclick="switchTab('dataset')">Dataset Submission</button> |
| | <button class="tab-btn" onclick="switchTab('method')">Method Submission</button> |
| | </div> |
| |
|
| | |
| | <div id="dataset-form" class="form-content active"> |
| | <form onsubmit="handleSubmit(event, 'Dataset')"> |
| | <div class="form-group"> |
| | <label>Dataset Name *</label> |
| | <input type="text" placeholder="e.g., GeneExpression_v2" required> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Domain/Category</label> |
| | <select> |
| | <option>Biology/Medical</option> |
| | <option>Image Processing</option> |
| | <option>Text/NLP</option> |
| | <option>Finance</option> |
| | <option>Other</option> |
| | </select> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Description</label> |
| | <textarea placeholder="Briefly describe the dataset, its origin, and the target variable..." required></textarea> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Dataset File (.mat, .csv) *</label> |
| | <div class="file-upload"> |
| | <input type="file" accept=".mat,.csv,.zip" required onchange="updateFileName(this)"> |
| | <span id="file-name-dataset">Drag & drop or click to upload file</span> |
| | </div> |
| | <div class="helper-text">Max file size: 50MB. For larger files, please provide a link below.</div> |
| | </div> |
| | |
| | <div class="form-group"> |
| | <label>External Download Link (Optional)</label> |
| | <input type="url" placeholder="https://..."> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Contact Email *</label> |
| | <input type="email" placeholder="researcher@university.edu" required> |
| | </div> |
| |
|
| | <button type="submit" class="submit-btn">Submit Dataset</button> |
| | </form> |
| | </div> |
| |
|
| | |
| | <div id="method-form" class="form-content"> |
| | <form onsubmit="handleSubmit(event, 'Method')"> |
| | <div class="form-group"> |
| | <label>Algorithm Name *</label> |
| | <input type="text" placeholder="e.g., FastCorr-FS" required> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Complexity Class (Big O)</label> |
| | <input type="text" placeholder="e.g., O(n*d^2)"> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Description & Key Innovation</label> |
| | <textarea placeholder="Describe the core idea, advantages, and theoretical basis..." required></textarea> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Code Implementation (.py, .zip) *</label> |
| | <div class="file-upload"> |
| | <input type="file" accept=".py,.zip,.rar" required onchange="updateFileName(this)"> |
| | <span id="file-name-method">Drag & drop or click to upload code</span> |
| | </div> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Paper/Preprint Link (Optional)</label> |
| | <input type="url" placeholder="https://arxiv.org/abs/..."> |
| | </div> |
| |
|
| | <div class="form-group"> |
| | <label>Contact Email *</label> |
| | <input type="email" placeholder="developer@lab.com" required> |
| | </div> |
| |
|
| | <button type="submit" class="submit-btn">Submit Method</button> |
| | </form> |
| | </div> |
| | |
| | <div id="success-msg" class="success-message"> |
| | <h3>✅ Submission Received!</h3> |
| | <p>Thank you for your contribution. Our team will review your submission and update the leaderboard shortly.</p> |
| | <button onclick="resetForm()" style="background:none; border:none; color:#155724; text-decoration:underline; cursor:pointer;">Submit another</button> |
| | </div> |
| | </div> |
| | </main> |
| |
|
| | <script> |
| | function switchTab(tab) { |
| | |
| | document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active')); |
| | event.target.classList.add('active'); |
| | |
| | |
| | document.querySelectorAll('.form-content').forEach(content => content.classList.remove('active')); |
| | document.getElementById(tab + '-form').classList.add('active'); |
| | |
| | |
| | document.getElementById('success-msg').style.display = 'none'; |
| | } |
| | |
| | function updateFileName(input) { |
| | const spanId = input.parentElement.querySelector('span').id; |
| | if (input.files && input.files.length > 0) { |
| | document.getElementById(spanId).textContent = input.files[0].name; |
| | document.getElementById(spanId).style.color = 'var(--primary-color)'; |
| | document.getElementById(spanId).style.fontWeight = 'bold'; |
| | } |
| | } |
| | |
| | function handleSubmit(e, type) { |
| | e.preventDefault(); |
| | |
| | |
| | |
| | const btn = e.target.querySelector('.submit-btn'); |
| | const originalText = btn.innerText; |
| | |
| | btn.innerText = 'Submitting...'; |
| | btn.disabled = true; |
| | |
| | setTimeout(() => { |
| | document.querySelectorAll('.form-content').forEach(c => c.style.display = 'none'); |
| | document.getElementById('success-msg').style.display = 'block'; |
| | |
| | |
| | btn.innerText = originalText; |
| | btn.disabled = false; |
| | e.target.reset(); |
| | const spans = document.querySelectorAll('.file-upload span'); |
| | spans[0].textContent = "Drag & drop or click to upload file"; |
| | spans[1].textContent = "Drag & drop or click to upload code"; |
| | spans.forEach(s => { s.style.color = ''; s.style.fontWeight = ''; }); |
| | |
| | }, 1500); |
| | } |
| | |
| | function resetForm() { |
| | document.getElementById('success-msg').style.display = 'none'; |
| | document.querySelector('.tab-btn.active').click(); |
| | } |
| | </script> |
| |
|
| | </body> |
| | </html> |