From 7a81e2c57e1d084959c5acc3bc151769586dc0fb Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Fri, 9 Dec 2022 13:44:43 -0500 Subject: [PATCH] Added ability to edit and delete items and licenses --- lib/helpers.rb | 5 ++++ lib/models/item.rb | 8 +++++ lib/routes.rb | 62 +++++++++++++++++++++++++++++++++++++- views/item/edit.erb | 64 ++++++++++++++++++++++++++++++++++++++++ views/item/list.erb | 2 +- views/item/view.erb | 4 +++ views/layout.erb | 1 + views/license/create.erb | 2 +- views/license/edit.erb | 56 +++++++++++++++++++++++++++++++++++ views/license/list.erb | 2 +- views/license/view.erb | 4 +++ 11 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 views/item/edit.erb create mode 100644 views/license/edit.erb diff --git a/lib/helpers.rb b/lib/helpers.rb index f88e02b..d4ec2c8 100644 --- a/lib/helpers.rb +++ b/lib/helpers.rb @@ -13,4 +13,9 @@ helpers do return dt.strftime('%B %d, %Y @ %I:%M:%S %p %Z') end + def date_format_input(date) + dt = date.to_datetime + return dt.strftime('%Y-%m-%dT%H:%M:%S') + end + end diff --git a/lib/models/item.rb b/lib/models/item.rb index 0b7b427..36f4450 100644 --- a/lib/models/item.rb +++ b/lib/models/item.rb @@ -2,4 +2,12 @@ class Item < Sequel::Model one_to_many :item_comments + def type_selected?(option) + if self.type == option + return 'selected' + else + return '' + end + end + end diff --git a/lib/routes.rb b/lib/routes.rb index e402b1c..55d8362 100644 --- a/lib/routes.rb +++ b/lib/routes.rb @@ -37,7 +37,7 @@ post '/item/create' do end get '/item/:item_id' do - item = Item.where(id: params[:item_id]).first + item = Item.where(id: params[:item_id]).first() puts "#{item.name}" erb :'item/view', :locals => { :title => item.name, @@ -45,6 +45,36 @@ get '/item/:item_id' do } end +get '/item/:item_id/edit' do + item = Item.where(id: params[:item_id]).first() + puts "#{item.name}" + erb :'item/edit', :locals => { + :title => "Editing: #{item.name}", + :item => item + } +end +post '/item/:item_id/edit' do + item = Item.where(id: params[:item_id]).first() + + item.name = params[:item_name] + item.serial_number = params[:item_serial] + item.sku_number = params[:item_sku] + item.purchased_from = params[:item_purchase_from] + item.purchased_at = params[:item_purchase_date] + item.manufacturer = params[:item_manufacturer] + item.type = params[:item_type] + item.save() + + redirect "/item/#{item.id}" +end + +get '/item/:item_id/delete' do + item = Item.where(id: params[:item_id]).first() + item.delete() + + redirect '/item/list' +end + post '/item/:item_id/comment' do item = Item.first(id: params[:item_id]) @@ -93,6 +123,36 @@ get '/license/:license_id' do } end +get '/license/:license_id/edit' do + license = License.where(id: params[:license_id]).first() + puts "#{license.name}" + erb :'license/edit', :locals => { + :title => "Editing: #{license.name}", + :license => license + } +end +post '/license/:license_id/edit' do + license = License.where(id: params[:license_id]).first() + + license.name = params[:license_name] + license.key = params[:license_key] + license.manufacturer = params[:license_manufacturer] + license.seats_used = params[:license_seats_used] + license.seats_total = params[:license_seats_total] + license.purchased_from = params[:license_purchase_from] + license.purchased_at = params[:license_purchase_date] + license.save() + + redirect "/license/#{license.id}" +end + +get '/license/:license_id/delete' do + license = License.where(id: params[:license_id]).first() + license.delete() + + redirect '/license/list' +end + post '/license/:license_id/comment' do license = License.first(id: params[:license_id]) diff --git a/views/item/edit.erb b/views/item/edit.erb new file mode 100644 index 0000000..f724788 --- /dev/null +++ b/views/item/edit.erb @@ -0,0 +1,64 @@ +
+
+

Editing item: <%= item.name %>

+
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+
diff --git a/views/item/list.erb b/views/item/list.erb index 7d4a7c0..831b8cf 100644 --- a/views/item/list.erb +++ b/views/item/list.erb @@ -1,6 +1,6 @@
-

Inventory List

+

Hardware Inventory List

diff --git a/views/item/view.erb b/views/item/view.erb index cb384c3..71c532c 100644 --- a/views/item/view.erb +++ b/views/item/view.erb @@ -10,6 +10,10 @@
+

+ + +

diff --git a/views/layout.erb b/views/layout.erb index 5a26150..792ab5f 100644 --- a/views/layout.erb +++ b/views/layout.erb @@ -5,6 +5,7 @@ <%= title %> | Raven + diff --git a/views/license/create.erb b/views/license/create.erb index f4bae39..aa6ecb3 100644 --- a/views/license/create.erb +++ b/views/license/create.erb @@ -17,7 +17,7 @@
- +
diff --git a/views/license/edit.erb b/views/license/edit.erb new file mode 100644 index 0000000..dad214d --- /dev/null +++ b/views/license/edit.erb @@ -0,0 +1,56 @@ +
+
+

Editing: <%= license.name %>

+
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ + + +
+
diff --git a/views/license/list.erb b/views/license/list.erb index cd677a2..bc246b1 100644 --- a/views/license/list.erb +++ b/views/license/list.erb @@ -1,6 +1,6 @@
-

Licenses List

+

Software Licenses List

diff --git a/views/license/view.erb b/views/license/view.erb index deab559..9f0dacf 100644 --- a/views/license/view.erb +++ b/views/license/view.erb @@ -10,6 +10,10 @@
+

+ + +