Added ability to archive videos
This commit is contained in:
parent
9b6e38a313
commit
414cabb9f8
11
db/migrations/0006_add_video_archive.rb
Normal file
11
db/migrations/0006_add_video_archive.rb
Normal file
@ -0,0 +1,11 @@
|
||||
Sequel.migration do
|
||||
|
||||
up do
|
||||
add_column(:videos, :archived, TrueClass, default: false)
|
||||
end
|
||||
|
||||
down do
|
||||
drop_column(:videos, :archived)
|
||||
end
|
||||
|
||||
end
|
@ -117,13 +117,47 @@ namespace '/video' do
|
||||
return "success"
|
||||
end
|
||||
|
||||
get '/:video_id/delete' do
|
||||
# find the video and delete it
|
||||
get '/:video_id/archive' do
|
||||
# find the video
|
||||
video = Video.where(id: params[:video_id]).first()
|
||||
FileUtils.rm_rf(video.directory_path)
|
||||
video.delete()
|
||||
video_base = File.basename(video.directory_path)
|
||||
|
||||
redirect '/video'
|
||||
# move project to channel's archive
|
||||
archive_dir = File.join(
|
||||
video.channel.directory_path,
|
||||
'Archive',
|
||||
video_base
|
||||
)
|
||||
FileUtils.mv(video.directory_path, archive_dir)
|
||||
|
||||
# mark the video as archived and update directory
|
||||
video.update(
|
||||
directory_path: archive_dir,
|
||||
archived: true
|
||||
)
|
||||
|
||||
redirect '/video/' + video.id.to_s()
|
||||
end
|
||||
get '/:video_id/unarchive' do
|
||||
# find the video
|
||||
video = Video.where(id: params[:video_id]).first()
|
||||
video_base = File.basename(video.directory_path)
|
||||
|
||||
# move project to channel's archive
|
||||
active_dir = File.join(
|
||||
video.channel.directory_path,
|
||||
'Main',
|
||||
video_base
|
||||
)
|
||||
FileUtils.mv(video.directory_path, active_dir)
|
||||
|
||||
# mark the video as archived and update directory
|
||||
video.update(
|
||||
directory_path: active_dir,
|
||||
archived: false
|
||||
)
|
||||
|
||||
redirect '/video/' + video.id.to_s()
|
||||
end
|
||||
|
||||
get '/:video_id/edit/script' do
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div id="video-header" class="row">
|
||||
<div class="eight columns">
|
||||
<h1 class="video-name"><%= video.name %></h1>
|
||||
<h1 class="video-name"><%= video.name %></h1><%= '<h4>(archived)</h4>' if video.archived %>
|
||||
<h4 class="video-created">Item added at: <%= date_format(video.created_at) %></h4>
|
||||
<% if video.updated_at %>
|
||||
<h4 class="video-updated">Last updated at: <%= date_format(video.updated_at) %></h4>
|
||||
@ -11,8 +11,8 @@
|
||||
|
||||
<div id="sidebar" class="four columns">
|
||||
<div class="actions-bar">
|
||||
<span><a href="/video/<%= video.id %>/edit">Edit <i class="fa-solid fa-pen-to-square"></i></a></span><span>
|
||||
<a href="/video/<%= video.id %>/delete">Delete <i class="fa-solid fa-trash"></i></a></span>
|
||||
<span><a href="/video/<%= video.id %>/edit">Edit <i class="fa-solid fa-pen-to-square"></i></a></span><% unless video.archived %><span><a href="/video/<%= video.id %>/archive">Archive <i class="fa-solid fa-box-archive"></i></a></span><% else %><span><a href="/video/<%= video.id %>/unarchive">Unarchive <i class="fa-solid fa-box-archive"></i></a></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="video-channel">
|
||||
<p>Channel: <a href="/channel/<%= video.channel.id %>"><span><%= video.channel.name %></span></a></p>
|
||||
|
Loading…
Reference in New Issue
Block a user