diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/forums_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/forumthreads_controller.rb | 3 | ||||
-rw-r--r-- | app/views/forums/edit.html.erb | 4 | ||||
-rw-r--r-- | app/views/forums/new.html.erb | 4 | ||||
-rw-r--r-- | app/views/forumthreads/edit.html.erb | 6 |
5 files changed, 16 insertions, 3 deletions
diff --git a/app/controllers/forums_controller.rb b/app/controllers/forums_controller.rb index 206f01f..16ea5b2 100644 --- a/app/controllers/forums_controller.rb +++ b/app/controllers/forums_controller.rb @@ -89,7 +89,7 @@ class ForumsController < ApplicationController end def forum_params(add = []) - a = [:name, :position, :role_read_id, :role_write_id, :necro_length] + add + a = [:name, :position, :role_read_id, :role_write_id, :necro_length, :disable_deletion] + add params.require(:forum).permit(a) end end diff --git a/app/controllers/forumthreads_controller.rb b/app/controllers/forumthreads_controller.rb index d40ce58..4a3a5c1 100644 --- a/app/controllers/forumthreads_controller.rb +++ b/app/controllers/forumthreads_controller.rb @@ -10,6 +10,7 @@ class ForumthreadsController < ApplicationController @threads = Forumthread.filter(current_user, params[:title].try(:slice, 0..255), params[:content].try(:slice, 0..255), params[:reply].try(:slice, 0..255), params[:label], User.find_by(ign: params[:author].to_s.strip) || params[:author], params[:query].try(:slice, 0..255), Forum.find_by(id: params[:forum])) .page(params[:page]).per(30) end + def show if params[:reverse] == "true" @replies = @thread.replies.order(id: :desc).page(params[:page]) @@ -72,7 +73,7 @@ class ForumthreadsController < ApplicationController end def destroy - if mod? || @thread.author.is?(current_user) + if mod? || (@thread.author.is?(current_user) && !@thread.forum.disable_deletion) if @thread.destroy flash[:notice] = "Thread deleted!" else diff --git a/app/views/forums/edit.html.erb b/app/views/forums/edit.html.erb index b1a5a2e..bb4a853 100644 --- a/app/views/forums/edit.html.erb +++ b/app/views/forums/edit.html.erb @@ -25,6 +25,10 @@ <td><%= f.label :necro_length, "Necropost warning delay (in days)" %></td> <td><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)" %></td> </tr> + <tr> + <td><%= f.label :disable_deletion, "Disable deletion of threads for non-staff" %></td> + <td><%= f.check_box :disable_deletion %></td> + </tr> </table> <p><%= f.submit "Update Forum", class: "btn blue left" %></p> <% end %> diff --git a/app/views/forums/new.html.erb b/app/views/forums/new.html.erb index 3640fd7..02eacaf 100644 --- a/app/views/forums/new.html.erb +++ b/app/views/forums/new.html.erb @@ -25,6 +25,10 @@ <td><%= f.label :necro_length, "Necropost warning delay (in days)" %></td> <td><%= f.number_field :necro_length, placeholder: "Warning Delay (leave blank for no warning)" %></td> </tr> + <tr> + <td><%= f.label :disable_deletion %></td> + <td><%= f.check_box :disable_deletion %></td> + </tr> </table> <%= f.hidden_field :forumgroup_id %> <p><%= f.submit "Create Forum", class: "btn blue left" %></p> diff --git a/app/views/forumthreads/edit.html.erb b/app/views/forumthreads/edit.html.erb index 5667cf2..30c9b08 100644 --- a/app/views/forumthreads/edit.html.erb +++ b/app/views/forumthreads/edit.html.erb @@ -11,6 +11,8 @@ end %> +<% forum = Forum.find(@thread.forum_id) %> + <h1>Edit Thread</h1> <%= link_to @thread.forum.group, forumgroup_path(@thread.forum.group) %> → <%= link_to @thread.forum, @thread.forum %> → <%= link_to @thread, @thread %> → Edit thread <%= form_for @thread do |f|%> @@ -37,5 +39,7 @@ <%= render partial: "md_editor", locals: {name: "forumthread[content]", content: @thread.content} %> <p><%= f.submit "Update Thread", class: "btn blue left" %></p> <% end %> -<%= button_to "Delete Thread", @thread, :method => "delete", data: {confirm: "Delete thread & comments forever?"}, class: "btn red right" %> +<% if mod? || !forum.disable_deletion %> + <%= button_to "Delete Thread", @thread, :method => "delete", data: {confirm: "Delete thread & comments forever?"}, class: "btn red right" %> +<% end %> <div class="clear"></div> |