Changeset 3356304
- Timestamp:
- 09/04/2025 07:27:55 PM (7 months ago)
- Location:
- syncbooking
- Files:
-
- 182 added
- 6 edited
-
tags/1.27.0 (added)
-
tags/1.27.0/admin (added)
-
tags/1.27.0/admin/css (added)
-
tags/1.27.0/admin/css/syncbooking-admin.css (added)
-
tags/1.27.0/admin/js (added)
-
tags/1.27.0/admin/js/syncbooking-admin.js (added)
-
tags/1.27.0/admin/js/webflow-uncompressed.js (added)
-
tags/1.27.0/admin/js/webflow.js (added)
-
tags/1.27.0/admin/sync-booking-retrivedata.php (added)
-
tags/1.27.0/admin/tabs (added)
-
tags/1.27.0/admin/tabs/connect.php (added)
-
tags/1.27.0/assets (added)
-
tags/1.27.0/assets/icons (added)
-
tags/1.27.0/assets/icons/plyr.svg (added)
-
tags/1.27.0/assets/img (added)
-
tags/1.27.0/assets/img/webflow-badge-icon-d2.89e12c322e.svg (added)
-
tags/1.27.0/assets/img/webflow-badge-text-d2.c82cec3b78.svg (added)
-
tags/1.27.0/assets/media (added)
-
tags/1.27.0/assets/media/blank.mp4 (added)
-
tags/1.27.0/php (added)
-
tags/1.27.0/php/bar-sync (added)
-
tags/1.27.0/php/bar-sync/css (added)
-
tags/1.27.0/php/bar-sync/css/menu-bar-4aecde.webflow.css (added)
-
tags/1.27.0/php/bar-sync/css/normalize.css (added)
-
tags/1.27.0/php/bar-sync/css/webflow.css (added)
-
tags/1.27.0/php/bar-sync/form.php (added)
-
tags/1.27.0/php/bar-sync/js (added)
-
tags/1.27.0/php/bar-sync/js/form.js (added)
-
tags/1.27.0/php/bar-sync/js/webflow-uncompressed.js (added)
-
tags/1.27.0/php/bar-sync/js/webflow.js (added)
-
tags/1.27.0/php/syncbooking-template-manage.php (added)
-
tags/1.27.0/php/syncbooking-template.php (added)
-
tags/1.27.0/php/theme-sync (added)
-
tags/1.27.0/php/theme-sync/css (added)
-
tags/1.27.0/php/theme-sync/css/booking-8aa063.webflow.css (added)
-
tags/1.27.0/php/theme-sync/css/normalize.css (added)
-
tags/1.27.0/php/theme-sync/css/webflow.css (added)
-
tags/1.27.0/php/theme-sync/images (added)
-
tags/1.27.0/php/theme-sync/images/2024-10-30_13_31_48-Unbenanntes_Dokument.webp (added)
-
tags/1.27.0/php/theme-sync/images/264744413-1-p-1080.jpg (added)
-
tags/1.27.0/php/theme-sync/images/264744413-1-p-1600.jpg (added)
-
tags/1.27.0/php/theme-sync/images/264744413-1-p-500.jpg (added)
-
tags/1.27.0/php/theme-sync/images/264744413-1-p-800.jpg (added)
-
tags/1.27.0/php/theme-sync/images/264744413-1.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Baby_I.webp (added)
-
tags/1.27.0/php/theme-sync/images/Facebook-Dark.svg (added)
-
tags/1.27.0/php/theme-sync/images/Facebook.svg (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-baby-equipment.webp (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-coffee-capsule-machine.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-cooking-utensils.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-final-cleaning.webp (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-hygiene-essentials.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-safe.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-sponge-detergent-and-dish-towel.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-tv.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-weekly-change-of-towels-and-linen.webp (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenities-wifi.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag-amenitries-hairdryer.png (added)
-
tags/1.27.0/php/theme-sync/images/Hapimag_Rene_Olsacher.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-1080.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-1600.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-2000.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-2600.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-500.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1-p-800.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-1.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-1080.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-1600.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-2000.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-2600.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-500.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image-p-800.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Image.jpg (added)
-
tags/1.27.0/php/theme-sync/images/Instagram-Dark.svg (added)
-
tags/1.27.0/php/theme-sync/images/Instagram.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-1_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-2.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-2_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-3.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-3_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-4.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-4_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-5.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-5_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-6.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-6_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-7.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-7_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-8.svg (added)
-
tags/1.27.0/php/theme-sync/images/NameLogo-8_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/Play-Dark.svg (added)
-
tags/1.27.0/php/theme-sync/images/Play.svg (added)
-
tags/1.27.0/php/theme-sync/images/Ripple.svg (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-Bar.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-Children_s-playground.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-Wellness-Terrace-2.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-Wellness-indoor-swimming-pool-p-500.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-Wellness-indoor-swimming-pool.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-holiday-flats-5-p-500.webp (added)
-
tags/1.27.0/php/theme-sync/images/Salzburg-Province-Zell_am_See-holiday-flats-5.webp (added)
-
tags/1.27.0/php/theme-sync/images/Website-GettyImages-165525238.webp (added)
-
tags/1.27.0/php/theme-sync/images/X-Dark.svg (added)
-
tags/1.27.0/php/theme-sync/images/X.svg (added)
-
tags/1.27.0/php/theme-sync/images/account_balance_24dp_5F6368_FILL0_wght300_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/add_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/air_conditioning_not_available_icon_selected.webp (added)
-
tags/1.27.0/php/theme-sync/images/arrow-forward-svgrepo-com-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/arrow-forward-svgrepo-com.svg (added)
-
tags/1.27.0/php/theme-sync/images/check_circle_24dp_5F6368_FILL1_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/chevron-down-solid-1-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/chevron-down-solid-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/close_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-2.svg (added)
-
tags/1.27.0/php/theme-sync/images/do_not_disturb_on_24dp_5F6368_FILL1_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/favicon.png (added)
-
tags/1.27.0/php/theme-sync/images/finance_mode_24dp_5F6368_FILL0_wght300_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/generic_map_hotel-p-130x130q80.jpg (added)
-
tags/1.27.0/php/theme-sync/images/generic_map_hotel.jpg (added)
-
tags/1.27.0/php/theme-sync/images/loading-p-130x130q80.jpeg (added)
-
tags/1.27.0/php/theme-sync/images/loading.gif (added)
-
tags/1.27.0/php/theme-sync/images/logo-white.png (added)
-
tags/1.27.0/php/theme-sync/images/menu_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/menu_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-2-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/menu_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-2.svg (added)
-
tags/1.27.0/php/theme-sync/images/monitoring_24dp_5F6368_FILL0_wght300_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/north_east_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/north_east_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-1_1.svg (added)
-
tags/1.27.0/php/theme-sync/images/paid_24dp_5F6368_FILL0_wght300_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/remove_24dp_5F6368_FILL0_wght400_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/reservation.webp (added)
-
tags/1.27.0/php/theme-sync/images/share_icon.svg (added)
-
tags/1.27.0/php/theme-sync/images/staticmap.png (added)
-
tags/1.27.0/php/theme-sync/images/sync_24dp_5F6368_FILL0_wght300_GRAD0_opsz24-1.svg (added)
-
tags/1.27.0/php/theme-sync/images/webclip.png (added)
-
tags/1.27.0/php/theme-sync/images/xmark.svg (added)
-
tags/1.27.0/php/theme-sync/js (added)
-
tags/1.27.0/php/theme-sync/js/webflow-touch-uncompressed.js (added)
-
tags/1.27.0/php/theme-sync/js/webflow-touch.js (added)
-
tags/1.27.0/php/theme-sync/js/webflow-uncompressed.js (added)
-
tags/1.27.0/php/theme-sync/js/webflow.js (added)
-
tags/1.27.0/php/theme-sync/js/webfont.js (added)
-
tags/1.27.0/php/theme-sync/page (added)
-
tags/1.27.0/php/theme-sync/page/booking.php (added)
-
tags/1.27.0/php/theme-sync/page/common_functions.php (added)
-
tags/1.27.0/php/theme-sync/page/manage-booking.php (added)
-
tags/1.27.0/php/theme-sync/page/plugin (added)
-
tags/1.27.0/php/theme-sync/page/plugin/webfont.js (added)
-
tags/1.27.0/php/theme-sync/page/plugin/webfontloader.js (added)
-
tags/1.27.0/php/theme-sync/page/website (added)
-
tags/1.27.0/php/theme-sync/page/website/footer.php (added)
-
tags/1.27.0/php/theme-sync/page/website/header.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include (added)
-
tags/1.27.0/php/theme-sync/page/website/include/gallery.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js/js_calendar.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js/js_sendemail.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js/next.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/flatpickr (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/flatpickr/flatpickr.min.css (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/flatpickr/flatpickr.min.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/glightbox (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/glightbox/glightbox.min.css (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/glightbox/glightbox.min.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/glightbox/plyr.css (added)
-
tags/1.27.0/php/theme-sync/page/website/include/js_calendar/glightbox/plyr.js (added)
-
tags/1.27.0/php/theme-sync/page/website/include/parts (added)
-
tags/1.27.0/php/theme-sync/page/website/include/parts/fixed-wrapper.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/parts/footer.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/parts/header_functions.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/parts/navbar-wrapper.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/pop-up.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/pop-up1.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/pop-up2.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/pop-up3.php (added)
-
tags/1.27.0/php/theme-sync/page/website/include/pop-up4.php (added)
-
tags/1.27.0/php/theme-sync/page/website/manage-booking.php (added)
-
tags/1.27.0/php/theme-sync/page/website/search.php (added)
-
tags/1.27.0/readme.txt (added)
-
tags/1.27.0/sync-bar.php (added)
-
tags/1.27.0/sync-booking-page.php (added)
-
tags/1.27.0/sync-booking.php (added)
-
trunk/php/bar-sync/form.php (modified) (2 diffs)
-
trunk/php/theme-sync/page/common_functions.php (modified) (2 diffs)
-
trunk/php/theme-sync/page/website/include/js/js_calendar.js (modified) (1 diff)
-
trunk/php/theme-sync/page/website/search.php (modified) (1 diff)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/sync-booking.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
syncbooking/trunk/php/bar-sync/form.php
r3355672 r3356304 42 42 $structure_data = get_option('syncbooking_website_data'); 43 43 $total_rooms = $structure_data['total_rooms'] ?? ""; 44 $accommodation_type = $structure_data['accommodation_type'] ?? ""; 45 46 // Mappa singolare/plurale 47 $map = [ 48 'houses' => ['sing' => 'house', 'plur' => 'houses'], 49 'rooms' => ['sing' => 'room', 'plur' => 'rooms'], 50 'masserie' => ['sing' => 'masseria','plur' => 'masserie'], 51 'suites' => ['sing' => 'suite', 'plur' => 'suites'], 52 ]; 53 54 // Default di fallback 55 $need_str = $accommodation_type; 56 57 // Applica logica solo se l'accommodation_type è noto 58 if (isset($map[$accommodation_type])) { 59 if ((int)$total_rooms > 1) { 60 $need_str = $map[$accommodation_type]['plur']; 61 } else { 62 $need_str = $map[$accommodation_type]['sing']; 63 } 64 } 65 66 // Prima lettera maiuscola 67 $need_str = ucfirst($need_str); 44 68 45 69 ?> … … 70 94 </select> 71 95 </div> 72 <div class="syncbooking_fields_standard_1" <?php if (intval($total_rooms) == 1) echo 'style="display:none"'; ?>>73 <div class="syncbooking_fieldtitle"> Rooms</div><select id="syncbooking_houses" name="syncbooking_houses" data-name="syncbooking_houses" required="" class="syncbooking_select w-node-fb710099-db7c-2639-34c4-66414496ad51-32c5e373 w-select">96 <div class="syncbooking_fields_standard_1" <?php //if (intval($total_rooms) == 1) echo 'style="display:none"'; ?>> 97 <div class="syncbooking_fieldtitle"><?php echo esc_html("$need_str"); ?></div><select id="syncbooking_houses" name="syncbooking_houses" data-name="syncbooking_houses" required="" class="syncbooking_select w-node-fb710099-db7c-2639-34c4-66414496ad51-32c5e373 w-select"> 74 98 <option value="1">1</option> 75 99 <option value="2">2</option> -
syncbooking/trunk/php/theme-sync/page/common_functions.php
r3355658 r3356304 21 21 $general_gallery = $structure_data['general_gallery'] ?? ""; 22 22 23 // Rooms Numner 24 $total_rooms = $structure_data['total_rooms'] ?? ''; 25 $accommodation_type = $structure_data['accommodation_type'] ?? ""; 26 27 // Mappa singolare/plurale 28 $map = [ 29 'houses' => ['sing' => 'house', 'plur' => 'houses'], 30 'rooms' => ['sing' => 'room', 'plur' => 'rooms'], 31 'masserie' => ['sing' => 'masseria','plur' => 'masserie'], 32 'suites' => ['sing' => 'suite', 'plur' => 'suites'], 33 ]; 34 35 // Default di fallback 36 $need_str = $accommodation_type; 37 38 // Applica logica solo se l'accommodation_type è noto 39 if (isset($map[$accommodation_type])) { 40 if ((int)$total_rooms > 1) { 41 $need_str = $map[$accommodation_type]['plur']; 42 } else { 43 $need_str = $map[$accommodation_type]['sing']; 44 } 45 } 46 47 // Prima lettera maiuscola 48 $need_str = ucfirst($need_str); 49 23 50 //Gallery 24 51 $decoded_gallery = json_decode($general_gallery, true); … … 28 55 $image_4 = $decoded_gallery['4'] ?? ''; 29 56 $image_5 = $decoded_gallery['5'] ?? ''; 30 31 // Rooms Numner32 $total_rooms = $decoded_gallery['total_rooms'] ?? '';33 57 34 58 -
syncbooking/trunk/php/theme-sync/page/website/include/js/js_calendar.js
r3335386 r3356304 451 451 } 452 452 453 function mostra(ID) { 454 console.log("Funzione mostra chiamata con ID:", ID); 455 453 function mostra(ids) { 454 console.log("Funzione mostra chiamata con:", ids); 455 456 if (!ids) return; 457 458 // Normalizza e splitta in array 459 const idArray = String(ids) 460 .split(",") 461 .map(s => s.trim()) 462 .filter(Boolean); 463 464 if (idArray.length === 0) { 465 alert("Errore: nessun ID valido fornito!"); 466 return; 467 } 468 469 const elements = []; 470 const seen = new Set(); 471 472 idArray.forEach(ID => { 456 473 const galleryContainer = document.querySelector("#galleriaJS" + ID); 457 474 if (!galleryContainer) { 458 console.error("Errore: Galleria non trovata per ID:", ID); 459 alert("Errore: Galleria non trovata!"); 475 console.warn("Galleria non trovata per ID:", ID); 460 476 return; 461 477 } 462 478 463 479 const links = galleryContainer.querySelectorAll("a.glightbox"); 464 console.log("Numero di immagini trovate:", links.length); 465 466 if (links.length === 0) { 467 console.error("Errore: Nessuna immagine trovata per ID:", ID); 468 alert("Errore: Nessuna immagine trovata!"); 469 return; 470 } 471 472 const lightbox = GLightbox({ selector: ".glightbox" }); 473 474 console.log("Glightbox inizializzato con successo per ID:", ID); 475 476 setTimeout(() => { 477 links[0].click(); 478 }, 500); 479 } 480 481 // ✅ Rende la funzione accessibile globalmente 482 window.mostra = mostra; 480 console.log(`ID ${ID}: trovate ${links.length} immagini`); 481 482 links.forEach(a => { 483 const href = a.getAttribute("href"); 484 if (href && !seen.has(href)) { 485 seen.add(href); 486 elements.push({ 487 href: href, 488 type: "image", 489 title: a.getAttribute("data-title") || "" 490 }); 491 } 492 }); 493 }); 494 495 if (elements.length === 0) { 496 alert("Errore: nessuna immagine trovata!"); 497 return; 498 } 499 500 const lightbox = GLightbox({ elements }); 501 lightbox.open(); 502 console.log("Glightbox aperto con", elements.length, "immagini combinate."); 503 } 504 505 // ✅ Rende la funzione accessibile globalmente 506 window.mostra = mostra; 483 507 }); -
syncbooking/trunk/php/theme-sync/page/website/search.php
r3355672 r3356304 36 36 </div> 37 37 <div class="structure_selectdate" <?php if (intval($total_rooms) == 1) echo 'style="display:none"'; ?>> 38 <div id="house_data" class="structure_date"><label class="search_field">Number of rooms</label>38 <div id="house_data" class="structure_date"><label class="search_field">Number of <?php echo esc_html("$need_str"); ?></label> 39 39 <div><select id="house_number" name="house_number" data-name="house_number" required="" class="text_field_1 w-select"> 40 40 <option value="1">1</option> -
syncbooking/trunk/readme.txt
r3355672 r3356304 3 3 Requires at least: 5.0 4 4 Tested up to: 6.8 5 Stable tag: 1.2 6.05 Stable tag: 1.27.0 6 6 Requires PHP: 7.2 7 7 Contributors: automaticbnb -
syncbooking/trunk/sync-booking.php
r3355672 r3356304 4 4 Plugin URI: http://syncbooking.com/plugin 5 5 Description: Sync All Booking of your Hotel or BnB, and get new bookings!. 6 Version: 1.2 6.06 Version: 1.27.0 7 7 Author: SyncBooking.com 8 8 Author URI: http://syncbooking.com/ … … 17 17 define( 'syncbooking_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 18 18 define( 'syncbooking_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); 19 define( 'syncbooking_PLUGIN_VERSION', "1.2 6.0" );19 define( 'syncbooking_PLUGIN_VERSION', "1.27.0" ); 20 20 21 21 global $syncbooking_structure_data;
Note: See TracChangeset
for help on using the changeset viewer.