Add diary entry subscribe/unsubscribe GET pages
This commit is contained in:
parent
d22e851557
commit
3a873b1668
8 changed files with 110 additions and 30 deletions
|
@ -157,21 +157,25 @@ class DiaryEntriesController < ApplicationController
|
|||
end
|
||||
|
||||
def subscribe
|
||||
diary_entry = DiaryEntry.find(params[:id])
|
||||
@diary_entry = DiaryEntry.find(params[:id])
|
||||
|
||||
diary_entry.subscriptions.create(:user => current_user) unless diary_entry.subscribers.exists?(current_user.id)
|
||||
if request.post?
|
||||
@diary_entry.subscriptions.create(:user => current_user) unless @diary_entry.subscribers.exists?(current_user.id)
|
||||
|
||||
redirect_to diary_entry_path(diary_entry.user, diary_entry)
|
||||
redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render :action => "no_such_entry", :status => :not_found
|
||||
end
|
||||
|
||||
def unsubscribe
|
||||
diary_entry = DiaryEntry.find(params[:id])
|
||||
@diary_entry = DiaryEntry.find(params[:id])
|
||||
|
||||
diary_entry.subscriptions.where(:user => current_user).delete_all if diary_entry.subscribers.exists?(current_user.id)
|
||||
if request.post?
|
||||
@diary_entry.subscriptions.where(:user => current_user).delete_all if @diary_entry.subscribers.exists?(current_user.id)
|
||||
|
||||
redirect_to diary_entry_path(diary_entry.user, diary_entry)
|
||||
redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render :action => "no_such_entry", :status => :not_found
|
||||
end
|
||||
|
|
|
@ -1,26 +1,5 @@
|
|||
<article class='diary_post border-top border-grey py-3<%= " text-muted px-3 bg-danger bg-opacity-10" unless diary_entry.visible %> user_<%= diary_entry.user.id %>'>
|
||||
<div class='mb-3'>
|
||||
<% if @user %>
|
||||
<h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
|
||||
<% else %>
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<%= user_thumbnail diary_entry.user %>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<small class='text-muted'>
|
||||
<%= t(".posted_by_html", :link_user => (link_to diary_entry.user.display_name, user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to diary_entry.language.name, :controller => "diary_entries", :action => "index", :display_name => nil, :language => diary_entry.language_code)) %>
|
||||
<% if (l(diary_entry.updated_at, :format => :blog) != l(diary_entry.created_at, :format => :blog)) %>
|
||||
<%= t(".updated_at_html", :updated => l(diary_entry.updated_at, :format => :blog)) %>
|
||||
<% end %>
|
||||
</small>
|
||||
|
||||
</div>
|
||||
<%= render :partial => "diary_entry_heading", :object => diary_entry, :as => "diary_entry" %>
|
||||
|
||||
<div class="richtext text-break" xml:lang="<%= diary_entry.language_code %>" lang="<%= diary_entry.language_code %>">
|
||||
<%= diary_entry.body.to_html %>
|
||||
|
|
21
app/views/diary_entries/_diary_entry_heading.html.erb
Normal file
21
app/views/diary_entries/_diary_entry_heading.html.erb
Normal file
|
@ -0,0 +1,21 @@
|
|||
<div class='mb-3'>
|
||||
<% if @user %>
|
||||
<h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
|
||||
<% else %>
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<%= user_thumbnail diary_entry.user %>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<small class='text-muted'>
|
||||
<%= t("diary_entries.diary_entry.posted_by_html", :link_user => (link_to diary_entry.user.display_name, user_path(diary_entry.user)), :created => l(diary_entry.created_at, :format => :blog), :language_link => (link_to diary_entry.language.name, :controller => "diary_entries", :action => "index", :display_name => nil, :language => diary_entry.language_code)) %>
|
||||
<% if (l(diary_entry.updated_at, :format => :blog) != l(diary_entry.created_at, :format => :blog)) %>
|
||||
<%= t("diary_entries.diary_entry.updated_at_html", :updated => l(diary_entry.updated_at, :format => :blog)) %>
|
||||
<% end %>
|
||||
</small>
|
||||
</div>
|
12
app/views/diary_entries/subscribe.html.erb
Normal file
12
app/views/diary_entries/subscribe.html.erb
Normal file
|
@ -0,0 +1,12 @@
|
|||
<% content_for :heading do %>
|
||||
<h1><%= t ".heading", :user => @diary_entry.user.display_name %></h1>
|
||||
<% end %>
|
||||
|
||||
<%= render :partial => "diary_entry_heading", :object => @diary_entry, :as => "diary_entry" %>
|
||||
|
||||
<%= bootstrap_form_tag do |f| %>
|
||||
<% if params[:referer] -%>
|
||||
<%= f.hidden_field :referer, :value => params[:referer] %>
|
||||
<% end -%>
|
||||
<%= f.primary t(".button") %>
|
||||
<% end %>
|
12
app/views/diary_entries/unsubscribe.html.erb
Normal file
12
app/views/diary_entries/unsubscribe.html.erb
Normal file
|
@ -0,0 +1,12 @@
|
|||
<% content_for :heading do %>
|
||||
<h1><%= t ".heading", :user => @diary_entry.user.display_name %></h1>
|
||||
<% end %>
|
||||
|
||||
<%= render :partial => "diary_entry_heading", :object => @diary_entry, :as => "diary_entry" %>
|
||||
|
||||
<%= bootstrap_form_tag do |f| %>
|
||||
<% if params[:referer] -%>
|
||||
<%= f.hidden_field :referer, :value => params[:referer] %>
|
||||
<% end -%>
|
||||
<%= f.primary t(".button") %>
|
||||
<% end %>
|
Loading…
Add table
Add a link
Reference in a new issue