@@ -6662,6 +6662,77 @@ $(function() {
66626662
66636663
66646664
6665+ // TrustFL-SIS 2026
6666+
6667+ var rawDeadlines = [ "2026-08-20 23:59" ] || [ ] ;
6668+ if ( rawDeadlines . constructor !== Array ) {
6669+ rawDeadlines = [ rawDeadlines ] ;
6670+ }
6671+ var parsedDeadlines = [ ] ;
6672+ while ( rawDeadlines . length > 0 ) {
6673+ var rawDeadline = rawDeadlines . pop ( ) ;
6674+ // deal with year template in deadline
6675+ year = 2026 ;
6676+ rawDeadline = rawDeadline . replace ( '%y' , year ) . replace ( '%Y' , year - 1 ) ;
6677+ // adjust date according to deadline timezone
6678+
6679+ var deadline = moment . tz ( rawDeadline , "Etc/GMT+12" ) ; // Anywhere on Earth
6680+
6681+
6682+ // post-process date
6683+ if ( deadline . minutes ( ) === 0 ) {
6684+ deadline . subtract ( 1 , 'seconds' ) ;
6685+ }
6686+ if ( deadline . minutes ( ) === 59 ) {
6687+ deadline . seconds ( 59 ) ;
6688+ }
6689+ parsedDeadlines . push ( deadline ) ;
6690+ }
6691+ // due to pop before; we need to reverse such that the i index later matches
6692+ // the right parsed deadline
6693+ parsedDeadlines . reverse ( ) ;
6694+
6695+
6696+
6697+ //
6698+
6699+
6700+ var deadlineId = 0 ;
6701+ if ( deadlineId < parsedDeadlines . length ) {
6702+ var confDeadline = parsedDeadlines [ deadlineId ] ;
6703+
6704+ // render countdown timer
6705+ if ( confDeadline ) {
6706+ function make_update_countdown_fn ( confDeadline ) {
6707+ return function ( event ) {
6708+ diff = moment ( ) - confDeadline ;
6709+ if ( diff <= 0 ) {
6710+ $ ( this ) . html ( event . strftime ( '%D days %Hh %Mm %Ss' ) ) ;
6711+ var daysLeft = - diff / 86400000 ;
6712+ var urgency = daysLeft < 7 ? 'urgent' : daysLeft < 30 ? 'warning' : 'ok' ;
6713+ $ ( this ) . removeClass ( 'urgent warning ok' ) . addClass ( urgency ) ;
6714+ $ ( this ) . closest ( '.conf' )
6715+ . removeClass ( 'urgency-urgent urgency-warning urgency-ok' )
6716+ . addClass ( 'urgency-' + urgency ) ;
6717+ } else {
6718+ $ ( this ) . html ( confDeadline . fromNow ( ) ) ;
6719+ }
6720+ }
6721+ }
6722+ $ ( '#trustfl-sis2026-pract-applied-wk-0 .timer' ) . countdown ( confDeadline . toDate ( ) , make_update_countdown_fn ( confDeadline ) ) ;
6723+ // check if date has passed, add 'past' class to it
6724+ if ( moment ( ) - confDeadline > 0 ) {
6725+ $ ( '#trustfl-sis2026-pract-applied-wk-0' ) . addClass ( 'past' ) ;
6726+ }
6727+ $ ( '#trustfl-sis2026-pract-applied-wk-0 .deadline-time' ) . html ( confDeadline . local ( ) . format ( 'D MMM YYYY, h:mm:ss a' ) ) ;
6728+ deadlineByConf [ "trustfl-sis2026-pract-applied-wk-0" ] = confDeadline ;
6729+ }
6730+ } else {
6731+ // TODO: hide the conf_id ?
6732+ }
6733+
6734+
6735+
66656736 // WAHC 2026
66666737
66676738 var rawDeadlines = [ "2026-06-27 23:59" ] || [ ] ;
0 commit comments