diff --git a/db/migrations/0001_add_channels_table.rb b/db/migrations/0001_add_channels_table.rb index d2e059c..c70186e 100644 --- a/db/migrations/0001_add_channels_table.rb +++ b/db/migrations/0001_add_channels_table.rb @@ -5,7 +5,6 @@ Sequel.migration do primary_key :id String :name, null: false String :description - DateTime :purchased_at DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end diff --git a/db/migrations/0002_add_videos_table.rb b/db/migrations/0002_add_videos_table.rb index 1c764c0..460f2bd 100644 --- a/db/migrations/0002_add_videos_table.rb +++ b/db/migrations/0002_add_videos_table.rb @@ -6,7 +6,6 @@ Sequel.migration do String :name, null: false String :description Integer :serial, null: false, unique: true - DateTime :purchased_at DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end diff --git a/lib/helpers.rb b/lib/helpers.rb index d4ec2c8..7029df9 100644 --- a/lib/helpers.rb +++ b/lib/helpers.rb @@ -18,4 +18,8 @@ helpers do return dt.strftime('%Y-%m-%dT%H:%M:%S') end + def serialize(num) + return num + end + end diff --git a/lib/models/channel.rb b/lib/models/channel.rb index 87bf1d8..a13061f 100644 --- a/lib/models/channel.rb +++ b/lib/models/channel.rb @@ -2,4 +2,8 @@ class Channel < Sequel::Model one_to_many :videos + def openProjects() + return 0 + end + end diff --git a/lib/models/video.rb b/lib/models/video.rb index d2522af..ee51556 100644 --- a/lib/models/video.rb +++ b/lib/models/video.rb @@ -1,5 +1,5 @@ class Video < Sequel::Model - many_to_one :channels + many_to_one :channel end diff --git a/lib/routes.rb b/lib/routes.rb index 2b1934a..bfe3a28 100644 --- a/lib/routes.rb +++ b/lib/routes.rb @@ -1 +1,5 @@ require_relative 'routes/index.rb' + +require_relative 'routes/channel.rb' + +require_relative 'routes/video.rb' diff --git a/lib/routes/channel.rb b/lib/routes/channel.rb new file mode 100644 index 0000000..db4d4fd --- /dev/null +++ b/lib/routes/channel.rb @@ -0,0 +1,37 @@ +namespace '/channel' do + + get '' do + redirect '/channel/list' + end + get '/list' do + channels = Channel.reverse(:updated_at).all() + erb :'channel/list', :locals => { + :title => 'List of channels', + :channels => channels + } + end + + get '/create' do + erb :'channel/create', :locals => { + :title => 'Create new channel' + } + end + post '/create' do + channel = Channel.create( + name: params[:channel_name], + description: params[:channel_description] + ) + + redirect "/channel/#{channel.id}" + end + + get '/:channel_id' do + channel = Channel.where(id: params[:channel_id]).first() + puts "#{channel.name}" + erb :'channel/view', :locals => { + :title => channel.name, + :channel => channel + } + end + +end diff --git a/lib/routes/video.rb b/lib/routes/video.rb new file mode 100644 index 0000000..3b0de6d --- /dev/null +++ b/lib/routes/video.rb @@ -0,0 +1,41 @@ +namespace '/video' do + + get '' do + redirect '/video/list' + end + get '/list' do + videos = Video.reverse(:updated_at).all() + erb :'video/list', :locals => { + :title => 'List of videos', + :videos => videos + } + end + + get '/create' do + channels = Channel.all() + erb :'video/create', :locals => { + :title => 'Create new video', + :channels => channels + } + end + post '/create' do + video = Video.create( + serial: params[:video_serial], + name: params[:video_name], + channel_id: params[:video_channel], + description: params[:video_description] + ) + + redirect "/video/#{video.id}" + end + + get '/:video_id' do + video = Video.where(id: params[:video_id]).first() + puts "#{video.name}" + erb :'video/view', :locals => { + :title => video.name, + :video => video + } + end + +end diff --git a/views/channel/create.erb b/views/channel/create.erb new file mode 100644 index 0000000..7289dd6 --- /dev/null +++ b/views/channel/create.erb @@ -0,0 +1,27 @@ +
+
+

Create new channel

+
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
diff --git a/views/channel/list.erb b/views/channel/list.erb new file mode 100644 index 0000000..b681e97 --- /dev/null +++ b/views/channel/list.erb @@ -0,0 +1,21 @@ +
+
+

Hardware Inventory List

+
+
+ +
+
+

Create new channel

+ + <% if channels.length > 0 %> + + <% else %> +

There are no channels recorded in the database yet.

+ <% end %> +
+
diff --git a/views/channel/view.erb b/views/channel/view.erb new file mode 100644 index 0000000..f68770e --- /dev/null +++ b/views/channel/view.erb @@ -0,0 +1,18 @@ +
+
+

<%= channel.name %>

+

Item added at: <%= date_format(channel.created_at) %>

+ <% if channel.updated_at %> +

Last updated at: <%= date_format(channel.updated_at) %>

+ <% end %> +
+
+ +
+
+

+ + +

+
+
diff --git a/views/index.erb b/views/index.erb index 1364b3d..904a456 100644 --- a/views/index.erb +++ b/views/index.erb @@ -14,16 +14,16 @@ Channel name Open projects Total projects - Last updated! + Last updated <% channels.each do |c| %> - <%= c.name %> + <%= c.name %> <%= nullable(c.openProjects) %> <%= nullable(c.videos.length) %> - <%= date_format(c.last_updated) %> + <%= date_format(c.updated_at) %> <% end %> diff --git a/views/layout/navbar.erb b/views/layout/navbar.erb index af25fab..90595f4 100644 --- a/views/layout/navbar.erb +++ b/views/layout/navbar.erb @@ -2,7 +2,7 @@

Stage Manager

diff --git a/views/video/create.erb b/views/video/create.erb new file mode 100644 index 0000000..1eadb19 --- /dev/null +++ b/views/video/create.erb @@ -0,0 +1,43 @@ +
+
+

Create new video

+
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
diff --git a/views/video/list.erb b/views/video/list.erb new file mode 100644 index 0000000..14f6515 --- /dev/null +++ b/views/video/list.erb @@ -0,0 +1,21 @@ +
+
+

Hardware Inventory List

+
+
+ +
+
+

Create new video

+ + <% if videos.length > 0 %> + + <% else %> +

There are no videos recorded in the database yet.

+ <% end %> +
+
diff --git a/views/video/view.erb b/views/video/view.erb new file mode 100644 index 0000000..6f08094 --- /dev/null +++ b/views/video/view.erb @@ -0,0 +1,19 @@ +
+
+

<%= video.name %>

+

<%= video.channel.name %> - <%= serialize(video.serial) %>

+

Item added at: <%= date_format(video.created_at) %>

+ <% if video.updated_at %> +

Last updated at: <%= date_format(video.updated_at) %>

+ <% end %> +
+
+ +
+
+

+ + +

+
+