Render yearly view
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
class HomeController < ApplicationController
|
||||
|
||||
def index
|
||||
@year = 2022
|
||||
Time.zone = 'Pacific Time (US & Canada)'
|
||||
@year = params['year'].nil? ? Date.today.year : params['year'].to_i
|
||||
@events = [Event.new]
|
||||
end
|
||||
end
|
||||
|
||||
10
app/helpers/home_helper.rb
Normal file
10
app/helpers/home_helper.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
module HomeHelper
|
||||
def days_events(events, day)
|
||||
events.select do |event|
|
||||
event.during? day
|
||||
end
|
||||
.sort_by do |e|
|
||||
[-e.begin_at.to_time.to_i, e.end_at.to_time.to_i]
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,2 +0,0 @@
|
||||
module IndexHelper
|
||||
end
|
||||
12
app/models/event.rb
Normal file
12
app/models/event.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
class Event
|
||||
attr_reader :begin_at, :end_at
|
||||
|
||||
def initialize
|
||||
@begin_at = DateTime.now.beginning_of_day
|
||||
@end_at = DateTime.now + 1.day
|
||||
end
|
||||
|
||||
def during?(d)
|
||||
self.begin_at <= d && d <= self.end_at
|
||||
end
|
||||
end
|
||||
@@ -1,18 +1,19 @@
|
||||
<div class="bootstrap">
|
||||
|
||||
|
||||
<div class="text-center">
|
||||
<%= first_day.strftime("%b") %>
|
||||
</div>
|
||||
<div class="flex flex-col w-full">
|
||||
<% (first_day..first_day.end_of_month).each do |day| %>
|
||||
<% todays_events = days_events(events, day) %>
|
||||
<div class="relative border-t w-full flex h-6 <%= 'bg-gray-200' if day.on_weekend? %>">
|
||||
<div class="text-xs font-bold <%= 'border-red-600 border-b-4' if day.today? %>"
|
||||
<%= raw('data-toggle="tooltip" title="Today"') if day.today? %> <%= raw("data-toggle='tooltip' title='#{day.strftime('%a, %m/%d/%y')}'") unless day.today? %> data-placement="right" >
|
||||
<%= day.strftime('%d') %>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex-grow flex justify-end">
|
||||
<% todays_events.each do |event| %>
|
||||
<div class="w-2 bg-red-700 cursor-pointer" title="test" data-toggle="tooltip" data-placement="right"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,11 @@ first_days = (1..12).map do |index|
|
||||
end
|
||||
%>
|
||||
|
||||
<div class="w-1/3 mx-auto flex justify-between pb-4">
|
||||
<%= link_to (@year-1), root_path(year: @year-1) %>
|
||||
<%= @year %>
|
||||
<%= link_to (@year+1), root_path(year: @year+1) %>
|
||||
</div>
|
||||
<div class="container mx-auto flex justify-between">
|
||||
<% first_days.each do |first_day| %>
|
||||
<div class="border-l w-full">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main class="container mx-auto mt-28 px-5 flex">
|
||||
<main class=" mx-auto mt-28 px-5 ">
|
||||
<%= yield %>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user