new-project.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // JS pour la view projects/new
  2. (function(){
  3. var templates = {
  4. desert: { title: 'Paysage désertique', description: 'Terrain sablonneux avec dunes et oasis occasionnelles', emoji: '🏜️' },
  5. coastal: { title: 'Paysage littoral', description: 'Côtes avec plages, falaises et éléments marins', emoji: '🏖️' },
  6. mountain: { title: 'Paysage de montagne', description: 'Reliefs escarpés avec sommets enneigés et vallées', emoji: '🏔️' },
  7. rural: { title: 'Paysage rural', description: 'Champs, forêts et éléments agricoles traditionnels', emoji: '🌾' },
  8. urban: { title: 'Paysage urbain', description: 'Villes avec bâtiments, routes et infrastructures modernes', emoji: '🏙️' }
  9. };
  10. var mapTemplateEl = document.getElementById('mapTemplate');
  11. if (mapTemplateEl) {
  12. mapTemplateEl.addEventListener('change', function() {
  13. var selectedTemplate = this.value;
  14. var previewDiv = document.getElementById('templatePreview');
  15. var templateImage = document.getElementById('templateImage');
  16. var templateTitle = document.getElementById('templateTitle');
  17. var templateDescription = document.getElementById('templateDescription');
  18. if (selectedTemplate && templates[selectedTemplate]) {
  19. var t = templates[selectedTemplate];
  20. templateImage.innerHTML = '<span style="font-size: 3rem;">' + t.emoji + '</span>';
  21. templateTitle.textContent = t.title;
  22. templateDescription.textContent = t.description;
  23. previewDiv.style.display = 'block';
  24. } else {
  25. previewDiv.style.display = 'none';
  26. }
  27. });
  28. }
  29. var form = document.getElementById('newProjectForm');
  30. if (form) {
  31. form.addEventListener('submit', function(e) {
  32. var name = (document.getElementById('mapName').value || '').trim();
  33. var width = parseInt(document.getElementById('mapWidth').value, 10) || 0;
  34. var height = parseInt(document.getElementById('mapHeight').value, 10) || 0;
  35. if (!name) {
  36. alert('Veuillez saisir un nom pour votre carte.');
  37. e.preventDefault();
  38. return;
  39. }
  40. if (width < 100 || width > 2000 || height < 100 || height > 2000) {
  41. alert('Les dimensions doivent être comprises entre 100x100 et 2000x2000 pixels.');
  42. e.preventDefault();
  43. return;
  44. }
  45. console.log('Création du projet:', { name: name, width: width, height: height, template: document.getElementById('mapTemplate').value });
  46. });
  47. }
  48. })();