Migrated app to modular Sinatra application; copied in a lot of improvements for a Sinatra app that I learned from Stage Manager
This commit is contained in:
16
app/routes/index.rb
Normal file
16
app/routes/index.rb
Normal file
@ -0,0 +1,16 @@
|
||||
class Raven
|
||||
class IndexController
|
||||
|
||||
get '/' do
|
||||
items = Item.reverse(:updated_at).limit(10).all()
|
||||
licenses = License.reverse(:updated_at).limit(10).all()
|
||||
erb :index, :locals => {
|
||||
:title => 'Dashboard',
|
||||
:items => items,
|
||||
:licenses => licenses
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
40
app/routes/ip_tracker.rb
Normal file
40
app/routes/ip_tracker.rb
Normal file
@ -0,0 +1,40 @@
|
||||
require 'ipaddr'
|
||||
|
||||
class Raven
|
||||
class IpTrackerController
|
||||
|
||||
get '/' do
|
||||
ip_addresses = IpAddress.all()
|
||||
ip_addresses.sort! { |a,b| IPAddr.new( a.address ) <=> IPAddr.new( b.address ) }
|
||||
|
||||
erb :'ip/ip-tracker', :locals => {
|
||||
:title => 'IP Tracker',
|
||||
:ip_addresses => ip_addresses
|
||||
}
|
||||
end
|
||||
|
||||
get '/add' do
|
||||
erb :'ip/add', :locals => {
|
||||
:title => 'Add IP Address'
|
||||
}
|
||||
end
|
||||
|
||||
post '/add' do
|
||||
ip = IpAddress.create(
|
||||
address: params[:ip_address],
|
||||
dns_name: params[:ip_dns],
|
||||
comment: params[:ip_comment]
|
||||
)
|
||||
|
||||
redirect '/ip-tracker'
|
||||
end
|
||||
|
||||
get '/delete/:ip_id' do
|
||||
ip = IpAddress.where(id: params[:ip_id]).first()
|
||||
ip.delete()
|
||||
|
||||
redirect '/ip-tracker'
|
||||
end
|
||||
|
||||
end
|
||||
end
|
83
app/routes/item.rb
Normal file
83
app/routes/item.rb
Normal file
@ -0,0 +1,83 @@
|
||||
class Raven
|
||||
class ItemController
|
||||
|
||||
get '/' do
|
||||
redirect '/item/list'
|
||||
end
|
||||
get '/list' do
|
||||
items = Item.reverse(:updated_at).all()
|
||||
erb :'item/list', :locals => {
|
||||
:title => 'List of Items',
|
||||
:items => items
|
||||
}
|
||||
end
|
||||
|
||||
get '/create' do
|
||||
erb :'item/create', :locals => {
|
||||
:title => 'Create New Item'
|
||||
}
|
||||
end
|
||||
post '/create' do
|
||||
item = Item.create(
|
||||
name: params[:item_name],
|
||||
serial_number: params[:item_serial],
|
||||
sku_number: params[:item_sku],
|
||||
purchased_from: params[:item_purchase_from],
|
||||
purchased_at: params[:item_purchase_date],
|
||||
manufacturer: params[:item_manufacturer],
|
||||
type: params[:item_type]
|
||||
)
|
||||
|
||||
redirect "/item/#{item.id}"
|
||||
end
|
||||
|
||||
get '/:item_id' do
|
||||
item = Item.where(id: params[:item_id]).first()
|
||||
puts "#{item.name}"
|
||||
erb :'item/view', :locals => {
|
||||
:title => item.name,
|
||||
:item => item
|
||||
}
|
||||
end
|
||||
|
||||
get '/: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_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_id/delete' do
|
||||
item = Item.where(id: params[:item_id]).first()
|
||||
item.delete()
|
||||
|
||||
redirect '/item/list'
|
||||
end
|
||||
|
||||
post '/:item_id/comment' do
|
||||
item = Item.first(id: params[:item_id])
|
||||
|
||||
comment = ItemComment.create(body: params[:comment_body])
|
||||
item.add_item_comment(comment)
|
||||
|
||||
redirect "/item/#{item.id}"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
83
app/routes/license.rb
Normal file
83
app/routes/license.rb
Normal file
@ -0,0 +1,83 @@
|
||||
class Raven
|
||||
class LicenseController
|
||||
|
||||
get '/' do
|
||||
redirect '/license/list'
|
||||
end
|
||||
get '/list' do
|
||||
licenses = License.reverse(:updated_at).all()
|
||||
erb :'license/list', :locals => {
|
||||
:title => 'List of Licenses',
|
||||
:licenses => licenses
|
||||
}
|
||||
end
|
||||
|
||||
get '/create' do
|
||||
erb :'license/create', :locals => {
|
||||
:title => 'Create New License'
|
||||
}
|
||||
end
|
||||
post '/create' do
|
||||
license = License.create(
|
||||
name: params[:license_name],
|
||||
key: params[:license_key],
|
||||
manufacturer: params[:license_manufacturer],
|
||||
seats_used: params[:license_seats_used],
|
||||
seats_total: params[:license_seats_total],
|
||||
purchased_from: params[:license_purchase_from],
|
||||
purchased_at: params[:license_purchase_date]
|
||||
)
|
||||
|
||||
redirect "/license/#{license.id}"
|
||||
end
|
||||
|
||||
get '/:license_id' do
|
||||
license = License.where(id: params[:license_id]).first()
|
||||
puts "#{license.name}"
|
||||
erb :'license/view', :locals => {
|
||||
:title => license.name,
|
||||
:license => license
|
||||
}
|
||||
end
|
||||
|
||||
get '/: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_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_id/delete' do
|
||||
license = License.where(id: params[:license_id]).first()
|
||||
license.delete()
|
||||
|
||||
redirect '/license/list'
|
||||
end
|
||||
|
||||
post '/:license_id/comment' do
|
||||
license = License.first(id: params[:license_id])
|
||||
|
||||
comment = LicenseComment.create(body: params[:comment_body])
|
||||
license.add_license_comment(comment)
|
||||
|
||||
redirect "/license/#{license.id}"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
19
app/routes/search.rb
Normal file
19
app/routes/search.rb
Normal file
@ -0,0 +1,19 @@
|
||||
class Raven
|
||||
class SearchController
|
||||
|
||||
get '/' do
|
||||
search_parameter = params[:query]
|
||||
items = Item.where(Sequel.ilike(:name, "%#{search_parameter}%")).all()
|
||||
licenses = License.where(Sequel.ilike(:name, "%#{search_parameter}%")).all()
|
||||
|
||||
results = items.concat(licenses)
|
||||
|
||||
erb :'search/list', :locals => {
|
||||
:title => 'Search Results',
|
||||
:results => results,
|
||||
:query => search_parameter
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user