added virtuals

This commit is contained in:
2023-05-10 15:14:06 +01:00
parent 793e944b5f
commit 8f1fe8c7c2
27 changed files with 297 additions and 15 deletions

View File

@@ -0,0 +1,70 @@
class VirtualsController < ApplicationController
before_action :set_virtual, only: %i[ show edit update destroy ]
# GET /virtuals or /virtuals.json
def index
@virtuals = Virtual.all
end
# GET /virtuals/1 or /virtuals/1.json
def show
end
# GET /virtuals/new
def new
@virtual = Virtual.new
end
# GET /virtuals/1/edit
def edit
end
# POST /virtuals or /virtuals.json
def create
@virtual = Virtual.new(virtual_params)
respond_to do |format|
if @virtual.save
format.html { redirect_to virtual_url(@virtual), notice: "Virtual was successfully created." }
format.json { render :show, status: :created, location: @virtual }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @virtual.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /virtuals/1 or /virtuals/1.json
def update
respond_to do |format|
if @virtual.update(virtual_params)
format.html { redirect_to virtual_url(@virtual), notice: "Virtual was successfully updated." }
format.json { render :show, status: :ok, location: @virtual }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @virtual.errors, status: :unprocessable_entity }
end
end
end
# DELETE /virtuals/1 or /virtuals/1.json
def destroy
@virtual.destroy
respond_to do |format|
format.html { redirect_to virtuals_url, notice: "Virtual was successfully destroyed." }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_virtual
@virtual = Virtual.find(params[:id])
end
# Only allow a list of trusted parameters through.
def virtual_params
params.require(:virtual).permit(:email, :destination)
end
end

View File

@@ -0,0 +1,2 @@
module VirtualsHelper
end

View File

@@ -1,2 +1,4 @@
class Domain < ApplicationRecord
validates :domain, presence: true
validates :domain, uniqueness: true
end

2
app/models/virtual.rb Normal file
View File

@@ -0,0 +1,2 @@
class Virtual < ApplicationRecord
end

View File

@@ -0,0 +1,27 @@
<%= form_with(model: virtual) do |form| %>
<% if virtual.errors.any? %>
<div style="color: red">
<h2><%= pluralize(virtual.errors.count, "error") %> prohibited this virtual from being saved:</h2>
<ul>
<% virtual.errors.each do |error| %>
<li><%= error.full_message %></li>
<% end %>
</ul>
</div>
<% end %>
<div>
<%= form.label :email, style: "display: block" %>
<%= form.text_field :email %>
</div>
<div>
<%= form.label :destination, style: "display: block" %>
<%= form.text_field :destination %>
</div>
<div>
<%= form.submit %>
</div>
<% end %>

View File

@@ -0,0 +1,12 @@
<div id="<%= dom_id virtual %>">
<p>
<strong>Email:</strong>
<%= virtual.email %>
</p>
<p>
<strong>Destination:</strong>
<%= virtual.destination %>
</p>
</div>

View File

@@ -0,0 +1,2 @@
json.extract! virtual, :id, :email, :destination, :created_at, :updated_at
json.url virtual_url(virtual, format: :json)

View File

@@ -0,0 +1,10 @@
<h1>Editing virtual</h1>
<%= render "form", virtual: @virtual %>
<br>
<div>
<%= link_to "Show this virtual", @virtual %> |
<%= link_to "Back to virtuals", virtuals_path %>
</div>

View File

@@ -0,0 +1,14 @@
<p style="color: green"><%= notice %></p>
<h1>Virtuals</h1>
<div id="virtuals">
<% @virtuals.each do |virtual| %>
<%= render virtual %>
<p>
<%= link_to "Show this virtual", virtual %>
</p>
<% end %>
</div>
<%= link_to "New virtual", new_virtual_path %>

View File

@@ -0,0 +1 @@
json.array! @virtuals, partial: "virtuals/virtual", as: :virtual

View File

@@ -0,0 +1,9 @@
<h1>New virtual</h1>
<%= render "form", virtual: @virtual %>
<br>
<div>
<%= link_to "Back to virtuals", virtuals_path %>
</div>

View File

@@ -0,0 +1,10 @@
<p style="color: green"><%= notice %></p>
<%= render @virtual %>
<div>
<%= link_to "Edit this virtual", edit_virtual_path(@virtual) %> |
<%= link_to "Back to virtuals", virtuals_path %>
<%= button_to "Destroy this virtual", @virtual, method: :delete %>
</div>

View File

@@ -0,0 +1 @@
json.partial! "virtuals/virtual", virtual: @virtual