
// Add manual platform buttons document.querySelectorAll('.platform-btn').forEach(btn => btn.addEventListener('click', (e) => const osKey = btn.getAttribute('data-os'); downloadClient(osKey); ); );
<details class="release-notes"> <summary>📝 Release Notes v2.5.0</summary> <ul> <li>✨ New dark mode UI</li> <li>⚡ 30% faster sync</li> <li>🐛 Fixed connection timeout bug</li> </ul> </details> </div> // Download URLs mapping const downloadUrls = windows: 'https://cdn.jex.com/client/latest/Jex-Setup-2.5.0.exe', mac: 'https://cdn.jex.com/client/latest/Jex-2.5.0.dmg', 'mac-arm': 'https://cdn.jex.com/client/latest/Jex-2.5.0-arm64.dmg', linux: 'https://cdn.jex.com/client/latest/jex_2.5.0_amd64.deb', 'linux-rpm': 'https://cdn.jex.com/client/latest/jex-2.5.0-1.x86_64.rpm' ; // Detect OS function detectOS() const platform = navigator.platform.toLowerCase(); const userAgent = navigator.userAgent.toLowerCase();
// Initialize feature function initJexDownload() const detectedOS = detectOS(); const osLabel = document.getElementById('primary-os-label'); const detectedSpan = document.getElementById('detected-os-name'); const primaryBtn = document.getElementById('primary-download-btn');
// Create hidden link and trigger download const link = document.createElement('a'); link.href = url; link.download = ''; // optional: forces download document.body.appendChild(link); link.click(); document.body.removeChild(link);
// Trigger download function downloadClient(osKey) const url = downloadUrls[osKey]; if (!url) alert('Download not available for this OS yet.'); return;
Log in with your cycle.travel account:
| Password |
Or simply use your account on: