diff --git a/aep-schedule-website/Cargo.lock b/aep-schedule-website/Cargo.lock index 3cc68927f0442ef21f6e4db46ba68515f9e470c8..1441b964bce3c40d2470c08a90dfd8da4a544973 100644 --- a/aep-schedule-website/Cargo.lock +++ b/aep-schedule-website/Cargo.lock @@ -1394,8 +1394,9 @@ dependencies = [ [[package]] name = "icalendar" -version = "0.16.3" -source = "git+https://github.com/marcantoinem/icalendar-rs?branch=fix/wrapping-behaviour#e640f6ca5f519eb536dbedd787b5843be463622a" +version = "0.16.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78aa665b8aa17f012f7e6f89e7124e48a83716b9c5600fe318fa22e2a3d7063d" dependencies = [ "chrono", "iso8601", diff --git a/aep-schedule-website/src/frontend/components/schedule.rs b/aep-schedule-website/src/frontend/components/schedule.rs index 3a5d56946c912492767711e64dbb0a15442f74dd..6d505e69c34e2ab84f024b00d5c61a77dece9d4a 100644 --- a/aep-schedule-website/src/frontend/components/schedule.rs +++ b/aep-schedule-website/src/frontend/components/schedule.rs @@ -137,12 +137,12 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In let courses = schedule.taken_courses.clone(); let courses2 = schedule.taken_courses.clone(); let schedule2 = schedule.clone(); - let (download, set_download) = signal("".to_string()); - let link = NodeRef::new(); + let ics = calendar.generate_ics(&schedule2); + let url = url_escape::encode_fragment(&ics); + let url = "data:text/plain;charset=utf-8,".to_string() + &url; view! { <div class="flex flex-col w-full items-center card p-2"> - <a class="hidden" download="cours.ics" href=move || download.get() node_ref=link></a> <table class="cours"> {courses .into_iter() @@ -158,18 +158,10 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In .map(|(i, c)| view! { <CoursePeriods i course=c /> }) .collect_view()} </Schedule> - <button - class="button-download flex" - on:pointerdown=move |_| { - let ics = calendar.generate_ics(&schedule2); - let url = url_escape::encode_fragment(&ics); - set_download("data:text/plain;charset=utf-8,".to_string() + &url); - link.get().unwrap().click(); - } - > + <a class="button-download flex" download="cours.ics" href={url}> <Download weight=IconWeight::Regular size="3vh" /> <span>"Télécharger le calendrier de cet horaire"</span> - </button> + </a> </div> } }