From e6872aedec768404336a678311be791c762e52ee Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Tue, 14 Jan 2025 22:26:47 +0100 Subject: [PATCH 1/6] schedule/events: use DataTables to have search With 1000+ events taking place at FOSDEM table got so long that finding anything takes time. DataTables framework allows us to search, sort etc. Enlarge table to take 100% of width, merge 'Day' and 'Start' columns into one and sort by it. Separators with track names are gone now. --- content/schedule/events.html | 9 ++------- layouts/main.html | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/content/schedule/events.html b/content/schedule/events.html index 77a6f500..75d4ac12 100644 --- a/content/schedule/events.html +++ b/content/schedule/events.html @@ -16,13 +16,12 @@ size = h.values.map(&:size).inject(:+) %>

<%= size %> Events

- +
- @@ -31,16 +30,12 @@

<%= size %> Events

<% h.each do |track, list| %> - - - <% list.each do |e| %> - - + + - + @@ -34,6 +35,7 @@

<%= size %> Events

+ From 0f120730fabc7ad1a5f30d5d846d75f9af161608 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 12 Feb 2025 20:51:05 +0100 Subject: [PATCH 3/6] schedule/events: keep table header always visible FixedHeader extension makes table header always visible - it stays on top of page while user scrolls page. --- layouts/main.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layouts/main.html b/layouts/main.html index 09f26735..001b6de8 100644 --- a/layouts/main.html +++ b/layouts/main.html @@ -41,9 +41,12 @@ <% if @item.identifier == '/schedule/events/' %> + + + <% end %> > @@ -192,6 +195,7 @@

<%= column.keys.first.to_s %>

[3, 'asc'], [4, 'asc'] ], + fixedHeader: true, paging: false, }); From ad7f7eef5ca8a1abd25c90172df556b0ccf81f13 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 12 Feb 2025 20:52:26 +0100 Subject: [PATCH 4/6] schedule/events: highlight searched phrase Mark plug-in highlights searched phrase. --- layouts/main.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layouts/main.html b/layouts/main.html index 001b6de8..1e0ceb6f 100644 --- a/layouts/main.html +++ b/layouts/main.html @@ -47,6 +47,9 @@ + + + <% end %> > @@ -196,6 +199,7 @@

<%= column.keys.first.to_s %>

[4, 'asc'] ], fixedHeader: true, + mark: true, paging: false, }); From 407468a896d0c8b30781c5abb1feb061e12d9db5 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 12 Feb 2025 20:53:19 +0100 Subject: [PATCH 5/6] schedule/events: keep 'Search' label on a side of input field Small styling change to keep search elements side by side. --- content/assets/style/parts/020_datatables.css | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 content/assets/style/parts/020_datatables.css diff --git a/content/assets/style/parts/020_datatables.css b/content/assets/style/parts/020_datatables.css new file mode 100644 index 00000000..1402426d --- /dev/null +++ b/content/assets/style/parts/020_datatables.css @@ -0,0 +1,3 @@ +.dt-search >label { + display: inline; +} From 2e784ccdde596a4cd172fd253a7a9bea2185ec3e Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 12 Feb 2025 21:18:15 +0100 Subject: [PATCH 6/6] schedule/events: restore original sorting order --- layouts/main.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/layouts/main.html b/layouts/main.html index 1e0ceb6f..62c82404 100644 --- a/layouts/main.html +++ b/layouts/main.html @@ -194,10 +194,7 @@

<%= column.keys.first.to_s %>

<% if @item.identifier == '/schedule/events/' %>
Event Speakers RoomDay Start End Attachments

<%= track[:title] %> (<%= list.size %>)

<%= l(e) %> <%= l e[:speakers].map(&$to_speaker) %> <%= l room e[:room] %><%= l day e[:day] %><%= e[:start_time] %><%= l day e[:day] %> <%= e[:start_time] %> <%= e[:end_time] %> <% e[:attachments].each_with_index do |a, index| %> diff --git a/layouts/main.html b/layouts/main.html index 7e51e34a..09f26735 100644 --- a/layouts/main.html +++ b/layouts/main.html @@ -39,6 +39,12 @@ +<% if @item.identifier == '/schedule/events/' %> + + + + +<% end %> > +<% if @item.identifier == '/schedule/events/' %> + +<% end %> From 361f50a9381a276dc35ad0503f16d2d34dd9b692 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 12 Feb 2025 20:49:47 +0100 Subject: [PATCH 2/6] schedule/events: add Track column We no longer have rows with Track name so let add column with this information. Had to rename 'Attachments' into 'Files' to make table fit in page. --- content/schedule/events.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/schedule/events.html b/content/schedule/events.html index 75d4ac12..a2379d74 100644 --- a/content/schedule/events.html +++ b/content/schedule/events.html @@ -21,10 +21,11 @@

<%= size %> Events

Event SpeakersTrack Room Start EndAttachmentsFiles Videos
<%= l(e) %> <%= l e[:speakers].map(&$to_speaker) %><%= l track e[:track] %> <%= l room e[:room] %> <%= l day e[:day] %> <%= e[:start_time] %> <%= e[:end_time] %>