Added channel and video edit pages; added link back to channel from video view page

This commit is contained in:
2023-03-04 08:47:07 -05:00
parent ef1813f16e
commit 5ed1771b18
5 changed files with 147 additions and 1 deletions

View File

@ -38,4 +38,36 @@ namespace '/channel' do
}
end
get '/:channel_id/edit' do
channel = Channel.where(id: params[:channel_id]).first()
erb :'channel/edit', :locals => {
:title => "Editing: #{channel.name}",
:channel => channel
}
end
post '/:channel_id/edit' do
# get channel model and save old directory path
channel = Channel.where(id: params[:channel_id]).first()
old_path = channel.directory_path
# edit channel model
channel.update(
name: params[:channel_name],
directory_path: params[:channel_dir],
description: params[:channel_description]
)
# edit associate videos' directory paths
channel.videos.each do |v|
video_path = v.directory_path.sub(old_path, channel.directory_path)
v.update(directory_path: video_path)
end
# rename channel directory
File.rename(old_path, channel.directory_path)
# redirect user
redirect "/channel/#{channel.id}"
end
end

View File

@ -48,4 +48,41 @@ namespace '/video' do
}
end
get '/:video_id/edit' do
video = Video.where(id: params[:video_id]).first()
channels = Channel.all()
erb :'video/edit', :locals => {
:title => "Editing: #{video.name}",
:video => video,
:channels => channels
}
end
post '/:video_id/edit' do
channel = Channel.where(id: params[:video_channel]).first()
video_serial = params[:video_serial].to_s.rjust(4, '0')
video_path = File.join(
channel.directory_path,
"##{video_serial} - #{params[:video_name]}"
)
# find video and temporarily save the old video path
video = Video.where(id: params[:video_id]).first()
old_path = video.directory_path
# edit video attributes
video.update(
name: params[:video_name],
serial: params[:video_serial],
channel_id: params[:video_channel],
directory_path: video_path,
description: params[:video_description]
)
# rename the video project directory
File.rename(old_path, video_path)
# redirect the user
redirect "/video/#{video.id}"
end
end