diff --git a/app.rb b/app.rb index 72dd448a..dc142b99 100644 --- a/app.rb +++ b/app.rb @@ -248,6 +248,8 @@ get '/?' do @page_count = events_dataset.page_count || 1 @events = events_dataset.all + current_site.events_dataset.update notification_seen: true + halt erb :'home', locals: {site: current_site} end @@ -362,7 +364,7 @@ post '/tags/add' do current_site.new_tags_string = params[:tags] if current_site.valid? - current_site.save_changes + current_site.save_tags else flash[:errors] = current_site.errors.first end diff --git a/models/site.rb b/models/site.rb index e791efca..dacbb89c 100644 --- a/models/site.rb +++ b/models/site.rb @@ -244,6 +244,14 @@ class Site < Sequel::Model super val.downcase end + def unseen_notifications_dataset + events_dataset.where notification_seen: false + end + + def unseen_notifications_count + @unseen_notifications_count ||= unseen_notifications_dataset.count + end + def valid_password?(plaintext) valid = BCrypt::Password.new(owner.values[:password]) == plaintext @@ -590,6 +598,11 @@ class Site < Sequel::Model end def after_save + save_tags + super + end + + def save_tags if @new_filtered_tags @new_filtered_tags.each do |new_tag_string| add_tag_name new_tag_string @@ -597,7 +610,6 @@ class Site < Sequel::Model @new_filtered_tags = [] @new_tags_string = nil end - super end def add_tag_name(name) diff --git a/views/_header.erb b/views/_header.erb index 8828cfab..99e8f423 100644 --- a/views/_header.erb +++ b/views/_header.erb @@ -34,10 +34,24 @@ <% else %>