Compare commits

...

2 Commits

Author SHA1 Message Date
421539f38c Added an inventory search page 2022-12-11 22:27:45 -05:00
4c9d46f875 Revamped the home page a bit 2022-12-11 21:29:18 -05:00
8 changed files with 143 additions and 17 deletions

View File

@ -8,6 +8,13 @@ body{
padding-left: $nav-width; padding-left: $nav-width;
} }
.card{
padding: 20px 30px;
background: white;
border-radius: 5px;
box-shadow: $box-shadow-2;
}
#main-nav{ #main-nav{
position: fixed; position: fixed;
top: 0; top: 0;
@ -53,13 +60,31 @@ body{
} }
} }
#main-actions{
width: 100%;
max-width: 100%;
margin-top: 0;
margin-bottom: 25px;
form,
input{
margin: 0;
}
}
#main-wrapper{ #main-wrapper{
max-width: 1200px; max-width: 1200px;
margin-top: 25px; margin-top: 25px;
padding: 20px 30px; }
background: white;
border-radius: 5px; #main-wrapper.container.fluid{
box-shadow: $box-shadow-2; width: 100%;
max-width: 100%;
margin: 0;
}
#site-header{
margin-bottom: 0;
} }
#item-header, #item-header,

View File

@ -3,3 +3,5 @@ require_relative 'routes/index.rb'
require_relative 'routes/item.rb' require_relative 'routes/item.rb'
require_relative 'routes/license.rb' require_relative 'routes/license.rb'
require_relative 'routes/search.rb'

View File

@ -2,9 +2,11 @@ namespace '/' do
get '' do get '' do
items = Item.reverse(:updated_at).limit(10).all() items = Item.reverse(:updated_at).limit(10).all()
licenses = License.reverse(:updated_at).limit(10).all()
erb :index, :locals => { erb :index, :locals => {
:title => 'Dashboard', :title => 'Dashboard',
:items => items :items => items,
:licenses => licenses
} }
end end

14
lib/routes/search.rb Normal file
View File

@ -0,0 +1,14 @@
namespace '/search' do
get '' do
search_parameter = params[:query]
items = Item.where(Sequel.ilike(:name, "%#{search_parameter}%")).all()
licenses = License.where(Sequel.ilike(:name, "%#{search_parameter}%")).all()
erb :'search/list', :locals => {
:title => 'Search Results',
:items => items,
:licenses => licenses,
:query => search_parameter
}
end
end

View File

@ -1,11 +1,57 @@
<p>This is a test.</p> <div class="row">
<div class="twelve columns">
<h1 id="site-header">Welcome to Raven</h1>
</div>
</div>
<hr>
<div class="row">
<div class="six columns">
<h3>Recent inventory updates</h3>
<% if items.length > 0 %> <% if items.length > 0 %>
<ul> <table class="u-full-width">
<thead>
<tr>
<th>Item name</th>
<th>Updated at</th>
</tr>
</thead>
<tbody>
<% items.each do |item| %> <% items.each do |item| %>
<li><%= item.name %></li> <tr>
<td><%= item.name %></td>
<td><%= date_format(item.updated_at) %></td>
</tr>
<% end %> <% end %>
</ul> </tbody>
</table>
<% else %> <% else %>
<p>There are no items to display.</p> <p>There are no items to display.</p>
<% end %> <% end %>
</div>
<div class="six columns">
<h3>Recent license updates</h3>
<% if licenses.length > 0 %>
<table class="u-full-width">
<thead>
<tr>
<th>License name</th>
<th>Updated at</th>
</tr>
</thead>
<tbody>
<% licenses.each do |license| %>
<tr>
<td><%= license.name %></td>
<td><%= date_format(license.updated_at) %></td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<p>There are no licenses to display.</p>
<% end %>
</div>
</div>

View File

@ -11,9 +11,12 @@
</head> </head>
<body> <body>
<!-- Main navigation --> <!-- Main navigation -->
<%= erb :'layout/navbar' %> <%= erb :'layout/navbar', :locals => locals %>
<div id="main-wrapper" class="container"> <!-- Inventory search/actions bar -->
<%= erb :'layout/actions', :locals => locals %>
<div id="main-wrapper" class="container fluid card">
<%= yield %> <%= yield %>
</div> </div>
</body> </body>

9
views/layout/actions.erb Normal file
View File

@ -0,0 +1,9 @@
<div id="main-actions" class="container fluid card">
<div class="row">
<div class="six columns">
<form action="/search" class="u-full-width">
<input id="search-field" class="u-full-width" type="text" placeholder="Search your inventory..." name="query" required <%= defined?(query) ? 'value="' + query + '"' : '' %>>
</form>
</div>
</div>
</div>

25
views/search/list.erb Normal file
View File

@ -0,0 +1,25 @@
<div class="row">
<div class="twelve columns">
<h4>Matching hardware:</h4>
<% if items.length > 0 %>
<ul class="u-full-width">
<% items.each do |r| %>
<li><a href="/item/<%= r.id %>"><%= r.name %></a></li>
<% end %>
</ul>
<% else %>
<p>Sorry, nothing in your hardware inventory matches that search term.</p>
<% end %>
<h4>Matching licenses:</h4>
<% if licenses.length > 0 %>
<ul class="u-full-width">
<% licenses.each do |r| %>
<li><a href="/item/<%= r.id %>"><%= r.name %></a></li>
<% end %>
</ul>
<% else %>
<p>Sorry, nothing in your license inventory matches that search term.</p>
<% end %>
</div>
</div>