-
Notifications
You must be signed in to change notification settings - Fork 165
/
collections_controller.rb
66 lines (55 loc) · 1.72 KB
/
collections_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class CollectionsController < ApplicationController
respond_to :html
before_filter :hide_filters!, only: [:show]
before_filter :set_parents
def set_parents
if params[:user_id].present?
@user = User.find_by_id_or_username(params[:user_id])
if @user.nil?
old_name = OldUsername.find_by(username: params[:user_id])
if old_name.present?
redirect_to user_collections_path(old_name.user.username) and return
end
end
end
if params[:category_id].present?
@category = Category.find(params[:category_id])
end
end
def index
if @user.present?
@collections = @user.collections.visible
set_title(@user.name)
elsif @category.present?
@collections = @category.collections.visible
set_title(@category.name)
else
@collections = Collection.visible
end
@collections = @collections.view_for(current_user).uniq.includes(:user).order("last_photo_added_at DESC").page(params[:page])
respond_with @collections
end
def explore
@collections = Collection.view_for(current_user).uniq.includes(:user).order("last_photo_added_at DESC").page(params[:page])
set_title t("titles.explore")
respond_with @collections do |f|
f.html { render :index }
end
end
def show
@collection = Collection.find(params[:id])
authorize! :read, @collection
track_view_for_collection(@collection)
@photographs = @collection.photographs.view_for(current_user).page(params[:page])
respond_with @collection
end
def authenticate
#TODO
end
private
def track_view_for_collection(collection)
unless user_signed_in? && current_user == collection.user
collection.views.increment
end
end
end