@@ -3,10 +3,11 @@ class ForumController < ApplicationController
before_filter :can_view?, :except => :index
def index
- @forums = Forum.find :all, :include => :category, :order => 'categories.disp_position, forums.disp_position'
+ @forums = current_user.is_admin? ? Forum.get_all_forums : Forum.get_forums(current_user.group)
end
def view
+ redirect_to @forum.redirect_url and return unless @forum.redirect_url.blank?
per_page = current_user.disp_topics ? current_user.disp_topics : Settings.disp_topics_default
@topic_pages, @topics = paginate_association(@forum, :topics, { :order => 'last_post DESC'}, per_page)
end
@@ -57,4 +57,12 @@ class Forum < ActiveRecord::Base
forums[f].save!
end
end
+
+ def self.get_all_forums
+ Forum.find :all, :include => :category, :order => 'categories.disp_position, forums.disp_position'
+ end
+
+ def self.get_forums(group)
+ Forum.find :all, :include => :category, :joins => "LEFT JOIN forum_perms ON forum_perms.forum_id=forums.id AND forum_perms.group_id = #{group.id} AND (forum_perms.read_forum IS NULL OR forum_perms.read_forum='1')", :order => 'categories.disp_position, forums.disp_position'
+ end
end
content_for :foot_links do
-%>
<div class="conl">
+<%= render :partial => 'topic/quickjump', :locals => {:id => @forum.id } if Settings.quickjump == true -%>
<p id="modcontrols"><%= link_to "Moderate forum", :action => 'moderate', :id => @forum.id %></p>
</div>
<%
--- /dev/null
+<% forums = Forum.get_forums(current_user.group) -%>
+ <form name="qjump" id="qjump" method="get" action="<%= url_for :controller => 'forum', :action => 'view', :id => nil %>">
+ <div><label>Jump to
+ <br /><select name="id" onchange="document.qjump.submit()">
+<% old_cat = nil -%>
+<% for f in forums -%>
+<% if old_cat != f.category -%>
+<% if old_cat != nil -%>
+ </optgroup>
+<% end -%>
+ <optgroup label="<%=h f.category.cat_name %>">
+<% old_cat = f.category -%>
+<% end -%>
+ <option value="<%= f.id %>"<%= ' selected="selected"' if id == f.id %>><%=h f.redirect_url.blank? ? f.forum_name : f.forum_name + ' >>>' %></option>
+<% end -%>
+ </optgroup>
+ </select>
+ <input type="submit" value="Go" accesskey="g" />
+ </label></div>
+ </form>
content_for :foot_links do
-%>
<div class="conl">
+<%= render :partial => 'quickjump', :locals => {:id => @topic.forum.id } if Settings.quickjump == true -%>
<dl id="modcontrols">
<dt><strong>Mod controls</strong></dt>
<dd><%= link_to "Delete posts", :controller => "moderate", :action => "delete_post", :tid => @topic.id %></dd>