diff --git a/db/migrations/0005_add_ip_table.rb b/db/migrations/0005_add_ip_table.rb new file mode 100644 index 0000000..0026285 --- /dev/null +++ b/db/migrations/0005_add_ip_table.rb @@ -0,0 +1,18 @@ +Sequel.migration do + + up do + create_table(:ip_addresses) do + primary_key :id + String :address, null: false + String :dns_name + String :comment + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + end + + down do + drop_table(:ip_addresses) + end + +end diff --git a/lib/models/ip_address.rb b/lib/models/ip_address.rb new file mode 100644 index 0000000..8e16058 --- /dev/null +++ b/lib/models/ip_address.rb @@ -0,0 +1,5 @@ +class IpAddress < Sequel::Model + + + +end diff --git a/lib/routes.rb b/lib/routes.rb index 55e4212..20a3c12 100644 --- a/lib/routes.rb +++ b/lib/routes.rb @@ -5,3 +5,5 @@ require_relative 'routes/item.rb' require_relative 'routes/license.rb' require_relative 'routes/search.rb' + +require_relative 'routes/ip_tracker.rb' diff --git a/lib/routes/ip_tracker.rb b/lib/routes/ip_tracker.rb new file mode 100644 index 0000000..eb1fddc --- /dev/null +++ b/lib/routes/ip_tracker.rb @@ -0,0 +1,31 @@ +require 'ipaddr' + +namespace '/ip-tracker' do + + 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 + +end diff --git a/raven.rb b/raven.rb index da968a5..f0abbd3 100644 --- a/raven.rb +++ b/raven.rb @@ -26,6 +26,7 @@ require_relative 'lib/models/item.rb' require_relative 'lib/models/item_comment.rb' require_relative 'lib/models/license.rb' require_relative 'lib/models/license_comment.rb' +require_relative 'lib/models/ip_address.rb' # Load helper functions require_relative 'lib/helpers.rb' diff --git a/views/ip/add.erb b/views/ip/add.erb new file mode 100644 index 0000000..41b7b98 --- /dev/null +++ b/views/ip/add.erb @@ -0,0 +1,32 @@ +
+
+

Add new IP address

+
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
diff --git a/views/ip/ip-tracker.erb b/views/ip/ip-tracker.erb new file mode 100644 index 0000000..c206d3d --- /dev/null +++ b/views/ip/ip-tracker.erb @@ -0,0 +1,27 @@ +
+
+ <% if ip_addresses.length > 0 %> +

Add new address

+ + + + + + + + + + <% ip_addresses.each do |ip| %> + + + + + + <% end %> + +
AddressDNS NameComments
<%= ip.address %><%= ip.dns_name %><%= ip.comment %>
+ <% else %> +

There are no IP addresses to show at this time. Trying adding some.

+ <% end %> +
+
diff --git a/views/layout/navbar.erb b/views/layout/navbar.erb index 868067d..750b980 100644 --- a/views/layout/navbar.erb +++ b/views/layout/navbar.erb @@ -4,5 +4,6 @@
  • Dashboard
  • Items
  • Licenses
  • +
  • IP Tracker