Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions app/controllers/albums_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
class AlbumsController < ApplicationController
def index
@album = Album.all
if params['title'].present?
@album = @album.where("title LIKE ?", "%#{params['title']}%")
end
end

def show
@album = Album.find(params[:id])
end

def new
@album = Album.new
end

def create
@album = Album.new(album_params)
if @album.save
redirect_to @album
else
render :new
end
end

private

def album_params
params.require(:album).permit(:title)
end

end
29 changes: 28 additions & 1 deletion app/controllers/artists_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
class ArtistsController < ApplicationController
def index
@consulta = Artist.all
@artist = Artist.all
if params['name'].present?
@artist = @artist.where("name LIKE ?", "%#{params['name']}%")
end
end

def show
@artist = Artist.find(params[:id]).albums
end

def new
@artist = Artist.new
end

def create
@artist = Artist.new(artist_params)
if @artist.save
redirect_to @artist
else
render :new
end
end

private

def artist_params
params.require(:artist).permit(:name)
end

end
63 changes: 63 additions & 0 deletions app/controllers/genres_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
class GenresController < ApplicationController
def index
@genre = Genre.all
if params['name'].present?
@genre = @genre.where("name LIKE ?", "%#{params['name']}%")
end
end

def show
@genre = Genre.find(params[:id])
end

def new
@genre = Genre.new
end

def create
@genre = Genre.new(genre_params)
if @genre.save
redirect_to @genre
else
render :new
end
end

private

def genre_params
params.require(:genre).permit(:name)
end

endclass GenresController < ApplicationController
def index
@genre = Genre.all
if params['name'].present?
@genre = @genre.where("name LIKE ?", "%#{params['name']}%")
end
end

def show
@genre = Genre.find(params[:id])
end

def new
@genre = Genre.new
end

def create
@genre = Genre.new(genre_params)
if @genre.save
redirect_to @genre
else
render :new
end
end

private

def genre_params
params.require(:genre).permit(:name)
end

end
13 changes: 13 additions & 0 deletions app/controllers/tracks_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class TracksController < ApplicationController
def index
@tracks = Track.all
if params['name'].present?
@tracks = @tracks.where("name LIKE ?", "%#{params['name']}%")
end
end

def show
@tracks = Track.find(params[:id])
end

end
3 changes: 3 additions & 0 deletions app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
module ApplicationHelper
def format(date)
date.strftime("%d/%m/%y %H:%M")
end
end
2 changes: 1 addition & 1 deletion app/models/genre.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class Genre < ApplicationRecord
has_many :tracks

scope :filtrar, ->(name) { where("name LIKE ?", "%#{name}%") if name.present? }
validates_presence_of :name
end
36 changes: 36 additions & 0 deletions app/views/albums/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@

<div class="container">
<div class="row"><br>
</div>
<div class="row">
<h3> Albums List <span class="badge badge-light"> <%= @albums.count %> </span></h3>
</div>
<%= form_tag("/albums", method: "get") do %>
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text">Search for:</label>
</div>
<%= text_field_tag(:title, params['title'], class: "form-control") %>
<div class="input-group-prepend">
<%= submit_tag("Search", class: 'btn btn-outline-primary') %>
</div>
</div>
<% end %>

<div class="row">
<ul class="list-group">
<li class="list-group-item">Album </li>
<% @albums.each do |album| %>
<li class="list-group-item"><%= link_to album.title, album %> </li>

<% end %>
</ul>
<ul class="list-group">
<li class="list-group-item">Artist </li>
<% @albums.each do |album| %>
<li class="list-group-item"> <%= link_to album.artist_id, album %> </li>

<% end %>
</ul>
</div>
</div>
28 changes: 25 additions & 3 deletions app/views/artists/index.html.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
<h3> Desenvolvimento Web 2 </h3>
<div class="container">
<div class="row"><br>
</div>
<div class="row">
<h3> Artist List <span class="badge badge-light"> <%= @artists.count %> </span></h3>
</div>

<p> O Conteúdo da Variável Consulta Será Exibido Abaixo: </p>
<%= form_tag("/artists", method: "get") do %>
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text">Search for:</label>
</div>
<%= text_field_tag(:name, params['name'], class: "form-control") %>
<div class="input-group-prepend">
<%= submit_tag("Search", class: 'btn btn-outline-primary') %>
</div>
</div>
<% end %>

<%= @consulta.try(:inspect) %>
<div class="row">
<ul class="list-group">
<% @artists.each do |artist| %>
<li class="list-group-item"> <%= link_to artist.name, artist %> </li>
<% end %>
</ul>
</div>
</div>
28 changes: 28 additions & 0 deletions app/views/genres/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<div class="container">
<div class="row"><br></div>

<div class="row">
<h3> Genres List <span class="badge badge-light"> <%= @genres.count %> </span></h3>
</div>


<%= form_tag("/genres", method: "get") do %>
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text">Search for:</label>
</div>
<%= text_field_tag(:name, params['name'], class: "form-control") %>
<div class="input-group-prepend">
<%= submit_tag("Search", class: 'btn btn-outline-primary') %>
</div>
</div>
<% end %>

<div class="row">
<ul class="list-group">
<% @genres.each do |genre| %>
<li class="list-group-item"> <%= link_to genre.name, genre %> </li>
<% end %>
</ul>
</div>
</div>
6 changes: 6 additions & 0 deletions app/views/genres/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<h3> New Genre </h3>
<%= @genre.errors.first %>
<%= form_for @genre do |f| %>
<b> Nome: </b> <%= f.text_field :name %>
<%= f.submit 'Save' %>
<% end %>
8 changes: 8 additions & 0 deletions app/views/genres/show.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<h3> Showing Genre </h3>

<fieldset>
<b> ID: </b> <%= @genre.id %> <br>
<b> Name: </b> <%= @genre.name %> <br>
<b> Created at: </b> <%= format(@genre.created_at) %> <br>
<b> Updated at: </b> <%= format(@genre.updated_at) %> <br>
</fieldset>
52 changes: 51 additions & 1 deletion app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,62 @@
<head>
<title>RailsWindows</title>
<%= csrf_meta_tags %>

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>

<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="">APS 03</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Artists
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="/artists">Search Artist</a>
<a class="dropdown-item" href="/artists/new">Create Artist</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Albums
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="/albums">Search Albums</a>
<a class="dropdown-item" href="/albums/new">Create Album</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Tracks
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="/tracks">Search Tracks</a>
<a class="dropdown-item" href="#">Create Track</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Genres
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="/genres">Search Genres</a>
<a class="dropdown-item" href="/genres/new">Create Genre</a>
</div>
</li>
</ul>
</div>
</nav>

<%= yield %>
</body>
</html>
29 changes: 29 additions & 0 deletions app/views/tracks/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@


<div class="container">
<div class="row"><br>
</div>
<div class="row">
<h3> Track List <span class="badge badge-light"> <%= @tracks.count %> </span></h3>
</div>

<%= form_tag("/tracks", method: "get") do %>
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text">Search for:</label>
</div>
<%= text_field_tag(:name, params['name'], class: "form-control") %>
<div class="input-group-prepend">
<%= submit_tag("Search", class: 'btn btn-outline-primary') %>
</div>
</div>
<% end %>

<div class="row">
<ul class="list-group">
<% @tracks.each do |track| %>
<li class="list-group-item"> <%= link_to track.name, track %> </li>
<% end %>
</ul>
</div>
</div>
1 change: 1 addition & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Rails.application.routes.draw do
resources :artists
resources :genres, except: :destroy
root 'artists#index'
end