-
Notifications
You must be signed in to change notification settings - Fork 1
/
playlist_helper.rb
102 lines (87 loc) · 2.84 KB
/
playlist_helper.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
module PlaylistHelper
def myown_playlist
@playlist && current_user &&
(@playlist.user == current_user ||
@playlist.members.include?(current_user) ||
(params[:access_token] && @playlist.accessible_via(params[:access_token])))
end
def user_invited?
current_user && PlaylistInvite.user_invited_to(current_user.id, @playlist.id).count > 0
end
def copy_playlists_list(ytid, is_dynamic_video = false)
pls = current_user.playlists
pls.reject!{|x| x.videos.any?{|v| v.ytid == ytid}}
pls.reject!{|x| x.id == @playlist.id} if !is_dynamic_video
content_tag :ul do
pls.collect{|p|
c = content_tag :li, :class => 'menu_action' do
link_to p.title, playlist_videos_path(p.id, :video => {:yt_url => ytid, :is_ytid => '1'}, :current_playlist => @playlist.id), :remote => true, :method => :post
end
concat c
}
end
end
def move_playlists_list(video_id, ytid, is_dynamic_video = false)
pls = current_user.playlists
pls.reject!{|x| x.videos.any?{|v| v.ytid == ytid}}
pls.reject!{|x| x.id == @playlist.id} if myown_playlist && !is_dynamic_video
content_tag :ul do
pls.collect{|p|
c = content_tag :li, :class => 'menu_action' do
link_to p.title, move_playlist_video_path(@playlist.id, video_id, {:to_playlist => p.id, :current_playlist => @playlist.id}), :remote => true, :method => :post
end
concat c
}
end
end
def pl_path(p)
link_to p.title, user_playlist_path(p.user.username, p), :class => 'title'
end
def shared_playlits
return unless current_user
shared_with = Playlist.shared_with(current_user.id)
shared_by_me = Playlist.shared_by(current_user.id)
invites = PlaylistInvite.for_user(current_user.id)
content_tag :ul do
unless shared_with.empty?
c = content_tag :li, :class => 'menu_head' do
"Shared with me"
end
concat c
shared_with.collect{|p|
c = content_tag :li, :class => 'menu_action' do
pl_path(p)
end
concat c
}
end
unless shared_by_me.empty?
c = content_tag :li, :class => 'menu_head' do
"Shared by me"
end
concat c
shared_by_me.collect{|p|
c = content_tag :li, :class => 'menu_action' do
pl_path(p)
end
concat c
}
end
unless invites.empty?
c = content_tag :li, :class => 'menu_head' do
"Invited to"
end
concat c
invites.collect{|i|
c = content_tag :li, :class => 'menu_action' do
d = ''
d << pl_path(i.playlist)
d << link_to("accept", accept_invites_url(:token => i.invite_token), class: 'blue minibutton')
d.html_safe
end
concat c
}
end
end
end
end