Spaces:
Running
Running
| document.addEventListener('DOMContentLoaded', function() { | |
| const urlInput = document.getElementById('url-input'); | |
| const extractBtn = document.getElementById('extract-btn'); | |
| const locationElement = document.getElementById('location'); | |
| const nameElement = document.getElementById('name'); | |
| const notesElement = document.getElementById('notes'); | |
| const notesInput = document.getElementById('notes-input'); | |
| const saveNotesBtn = document.getElementById('save-notes-btn'); | |
| // Extract data from URL | |
| extractBtn.addEventListener('click', function() { | |
| const url = urlInput.value.trim(); | |
| if (!url) { | |
| alert('Please enter a URL'); | |
| return; | |
| } | |
| try { | |
| const urlObj = new URL(url); | |
| const pathSegments = urlObj.pathname.split('/').filter(segment => segment); | |
| // Extract location and name from path | |
| if (pathSegments.length >= 2) { | |
| locationElement.textContent = decodeURIComponent(pathSegments[pathSegments.length - 2]); | |
| nameElement.textContent = decodeURIComponent(pathSegments[pathSegments.length - 1]); | |
| } else if (pathSegments.length === 1) { | |
| locationElement.textContent = '-'; | |
| nameElement.textContent = decodeURIComponent(pathSegments[0]); | |
| } else { | |
| locationElement.textContent = '-'; | |
| nameElement.textContent = '-'; | |
| } | |
| // Extract notes from query params | |
| const notes = urlObj.searchParams.get('notes'); | |
| if (notes) { | |
| notesElement.textContent = decodeURIComponent(notes); | |
| notesInput.value = decodeURIComponent(notes); | |
| } else { | |
| notesElement.textContent = '-'; | |
| notesInput.value = ''; | |
| } | |
| } catch (error) { | |
| alert('Invalid URL format'); | |
| console.error(error); | |
| } | |
| }); | |
| // Save notes to URL | |
| saveNotesBtn.addEventListener('click', function() { | |
| const url = urlInput.value.trim(); | |
| if (!url) { | |
| alert('Please enter a URL first'); | |
| return; | |
| } | |
| try { | |
| const urlObj = new URL(url); | |
| const notes = notesInput.value.trim(); | |
| if (notes) { | |
| urlObj.searchParams.set('notes', encodeURIComponent(notes)); | |
| notesElement.textContent = notes; | |
| } else { | |
| urlObj.searchParams.delete('notes'); | |
| notesElement.textContent = '-'; | |
| } | |
| urlInput.value = urlObj.toString(); | |
| } catch (error) { | |
| alert('Error updating URL'); | |
| console.error(error); | |
| } | |
| }); | |
| // Example URL on page load for demonstration | |
| urlInput.value = 'https://example.com/new-york/central-park?notes=beautiful-park'; | |
| }); |