Skip to content

Commit

Permalink
Server: update show + forms (edit, new, duplicate)
Browse files Browse the repository at this point in the history
  • Loading branch information
B-Rass committed Jun 5, 2024
1 parent 256adc0 commit e2d3652
Show file tree
Hide file tree
Showing 13 changed files with 406 additions and 352 deletions.
38 changes: 17 additions & 21 deletions app/assets/stylesheets/application.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -87,21 +87,7 @@ a.hide-filters, a.show-filters {
}

.frame .server {
color: #777;
page-break-inside: avoid;

&.colorized_background {
.server_name {
a {
color: var(--bs-black) !important;

&:hover {
opacity: .7;
text-decoration-color: var(--bs-black) !important;
}
}
}
}
}

.frame {
Expand Down Expand Up @@ -310,13 +296,6 @@ table.card_layout {
margin-bottom: 5px;
}

.detailed_server {
border: 1px solid #999999;
padding: 10px;
background-color: white;
margin-bottom: 10px;
}

.blank-card, .blank_card {
// border:1px solid #999999;
padding: 10px;
Expand Down Expand Up @@ -500,6 +479,10 @@ dt {
}
dd {
font-weight: 700;

&.col-6 {
margin-bottom: 0;
}
}

/* Page about */
Expand Down Expand Up @@ -544,6 +527,19 @@ body {
height: 100%;
overflow-y: auto;
}

.colorized_background {
.server_name {
a {
color: var(--bs-black) !important;

&:hover {
opacity: .7;
text-decoration-color: var(--bs-black) !important;
}
}
}
}
}

&-header {
Expand Down
73 changes: 44 additions & 29 deletions app/views/servers/_card_fields.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,51 @@
%>
<% if server.modele %>
<li class="nested-form-wrapper list-group-item" data-new-record="<%= f.object.new_record? %>">
<fieldset class="row">
<div class="col-sm-2">
<%= f.select :composant_id, options_for_select(composants.map { |c| [c.name || c.position, c.id] }, f.object.composant_id), { class: "form-select" } %>
</div>
<div class="col-sm-2">
<%= f.select :card_type_id, options_for_select(CardType.sorted.map { |card_type| [card_type.name, card_type.id] }, f.object.card_type_id), { class: "form-select" } %>
</div>
<div class="col-sm-2">
<%= f.text_field :name %>
</div>
<div class="col-sm-2">
<%= f.select :orientation, Card::ORIENTATIONS.map { |o| [Card.human_attribute_name("orientation.#{o}"), o] }, { class: "form-select" } %>
</div>
<div class="col-sm-2">
<li class="nested-form-wrapper list-group-item bg-body-tertiary border-top-0"
data-new-record="<%= f.object.new_record? %>">
<div class="row">
<span class="col-md-2 mb-2 mb-md-0">
<%= f.select :composant_id, options_for_select(composants.map { |c| [c.name || c.position, c.id] },
f.object.composant_id),
{},
{ class: "form-select" } %>
</span>
<span class="col-md-2 mb-2 mb-md-0">
<%= f.select :card_type_id,
options_for_select(CardType.sorted.map { |card_type| [card_type.name, card_type.id] },
f.object.card_type_id),
{},
{ class: "form-select" } %>
</span>
<span class="col-md-2 mb-2 mb-md-0">
<%= f.text_field :name, class: "form-control" %>
</span>
<span class="col-md-2 mb-2 mb-md-0">
<%= f.select :orientation,
Card::ORIENTATIONS.map { |o| [Card.human_attribute_name("orientation.#{o}"), o] },
{},
{ class: "form-select" } %>
</span>
<span class="col-md-1 mb-2 mb-md-0">
<%= f.select :first_position, 0..100, { include_blank: true }, { class: "form-select" } %>
</div>
<div class="col-sm-2">
</span>
<span class="col-md-2 mb-2 mb-md-0">
<%= f.select :twin_card_id,
options_for_select(Card.includes(:server, :composant, :card_type).joins(:composant).on_patch_panels.sort { |f1, f2| f1.to_s <=> f2.to_s }.map { |card| [card.to_s, card.id] }, f.object.twin_card_id),
{ include_blank: true }, { class: "form-select" }
%>
</div>
</fieldset>
<span>
<%= f.hidden_field :_destroy %>

<button type="button" data-action="nested-form#remove" class="btn btn-danger btn-sm ms-4">
<%= t("action.delete") %>
</button>
</span>
options_for_select(Card.includes(:server, :composant, :card_type)
.joins(:composant)
.on_patch_panels.sort { |f1, f2|
f1.to_s <=> f2.to_s
}.map { |card| [card.to_s, card.id] },
f.object.twin_card_id),
{ include_blank: true },
{ class: "form-select" } %>
</span>
<span class="col-md-1 align-self-center">
<%= f.hidden_field :_destroy %>
<button type="button" data-action="nested-form#remove" class="btn btn-danger btn-sm float-end">
<span class="bi bi-trash"></span>
</button>
</span>
</div>
</li>
<% end %>
2 changes: 1 addition & 1 deletion app/views/servers/_document_fields.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<span>
<%= f.hidden_field :_destroy %>
<button type="button" data-action="nested-form#remove" class="btn btn-danger btn-sm ms-4">
<%= t("action.delete") %>
<span class="bi bi-trash"></span>
</button>
</span>
</fieldset>
63 changes: 34 additions & 29 deletions app/views/servers/_draw_server_compact.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -69,35 +69,40 @@

<% end %>

<%= link_to h(server.name), server_path(server, :view => params[:view]), {class: 'float-start server_name ps-3', data: { controller: "tooltip", bs_placement: "top" }, title: server.numero } %>
<br>
<% unless request.format.pdf? %>
<span class='float-start ps-3'>
<%= link_to draw_connections_path(server_id: server.id),
class: 'draw_connections_link',
id: "draw_connections_link_#{server.id}",
title: "Dessiner les liaisons",
remote: true do %>
<button type="button" class="btn btn-outline-secondary btn-sm" aria-label="Draw connections">
<span class="bi bi-shuffle" aria-hidden="true"></span>
</button>
<div class="ps-3 d-flex flex-column">
<span class="mb-2">
<%= link_to h(server.name),
server_path(server, view: params[:view]),
{ class: "server_name", data: { controller: "tooltip", bs_placement: "top" }, title: server.numero } %>
</span>
<% unless request.format.pdf? %>
<span>
<%= link_to draw_connections_path(server_id: server.id),
class: "draw_connections_link",
id: "draw_connections_link_#{server.id}",
title: "Dessiner les liaisons",
remote: true do %>
<button type="button" class="btn btn-outline-secondary btn-sm mb-2" aria-label="Draw connections">
<span class="bi bi-shuffle" aria-hidden="true"></span>
</button>
<% end %>
</span>
<% end %>
</span>
<% end %>
<!--
<span class='float-start' style="padding-left: 8px;">
<% twin_cards_ids = server.cards.map(&:twin_card_id).uniq.reject {|c| c.blank?} if false %>
<% twin_cards_ids.map {|id| Card.find(id).frame}.uniq.each do |frame| %>
<%= link_to frame_path(frame), title: "#{frame.to_s}" do %>
<button type="button" class="btn btn-outline-secondary btn-sm" aria-label="Link to twin card">
<span class="bi bi-magnet-fill" aria-hidden="true"></span>
</button>
<% end %>
<% end if false %>
</span>
-->

<br>
<i class='float-start ps-3'><%= link_to server.modele.try(:name), edit_modele_path(server.modele_id), style: 'font-weight:normal;' %></i>
<!--
<span class='float-start' style="padding-left: 8px;">
<% twin_cards_ids = server.cards.map(&:twin_card_id).uniq.reject {|c| c.blank?} if false %>
<% twin_cards_ids.map {|id| Card.find(id).frame}.uniq.each do |frame| %>
<%= link_to frame_path(frame), title: "#{frame.to_s}" do %>
<button type="button" class="btn btn-outline-secondary btn-sm" aria-label="Link to twin card">
<span class="bi bi-magnet-fill" aria-hidden="true"></span>
</button>
<% end %>
<% end if false %>
</span>
-->
<span class="fst-italic">
<%= link_to server.modele.try(:name), edit_modele_path(server.modele_id) %>
</span>
</div>

<div class="clearfix"></div>
6 changes: 4 additions & 2 deletions app/views/servers/_draw_server_compact_front.html.erb
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<% case server.modele.try(:category_id) %>
<% when @modele_blank_panel_id %>
<span class="float-start server_name"><%= link_to h(server.name), server_path(server, :view => params[:view]) %></span>
<span class="float-start server_name">
<%= link_to h(server.name), server_path(server, view: params[:view]) %>
</span>
<% else %>
<% port_nb = server.ports_per_type %>
<span class="float-start server_name ps-3">
Expand All @@ -26,5 +28,5 @@
<%= port_nb["FC"] > 0 ? port_nb["FC"] : "" %>
</span>
<% end %>
<span class="float-end me-1"><em><%= server.modele.try(:name) %></em></span>
<span class="float-end me-1 text-secondary"><em><%= server.modele.try(:name) %></em></span>
<% end %>
81 changes: 46 additions & 35 deletions app/views/servers/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@

<fieldset class="col-md-6 col-12 mt-4">
<%= f.label :frame_id, class: "form-label" %>
<%= f.collection_select(:frame_id, Frame.all_sorted, :id, :name_with_room_and_islet,
{ prompt: true, include_blank: false },
{ class: "form-select", data: { controller: "select" } }) %>
<%= f.collection_select(:frame_id, Frame.all_sorted, :id,
:name_with_room_and_islet,
{ prompt: true, include_blank: false },
{ class: "form-select", data: { controller: "select" } }) %>
</fieldset>

<fieldset class="col-md-6 col-12 mt-4">
<%= f.label :cluster_id, class: "form-label" %>
<%= f.collection_select(:cluster_id, Cluster.sorted, :id, :name, { prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
<%= f.collection_select(:cluster_id, Cluster.sorted, :id,
:name,
{ prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
</fieldset>

<fieldset class="col-md-6 col-12 mt-4">
Expand All @@ -32,8 +35,10 @@

<fieldset class="col-md-6 col-12 mt-4">
<%= f.label :domaine_id, class: "form-label" %>
<%= f.collection_select(:domaine_id, Domaine.sorted, :id, :name, { prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
<%= f.collection_select(:domaine_id, Domaine.sorted, :id,
:name,
{ prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
</fieldset>

<fieldset class="col-md-6 col-12 mt-4">
Expand All @@ -44,15 +49,18 @@

<fieldset class="col-md-6 col-12 mt-4">
<%= f.label :gestion_id, class: "form-label" %>
<%= f.collection_select(:gestion_id, Gestion.sorted, :id, :name, { prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
<%= f.collection_select(:gestion_id, Gestion.sorted, :id,
:name,
{ prompt: true, include_blank: true },
{ class: "form-select", data: { controller: "select" } }) %>
</fieldset>

<fieldset class="col-md-6 col-12 mt-4">
<%= f.label :modele_id, class: "form-label" %>
<%= f.collection_select(:modele_id, Modele.all_sorted, :id, :name_with_brand,
{ prompt: true, include_blank: false },
{ class: "form-select", data: { controller: "select" } }) %>
<%= f.collection_select(:modele_id, Modele.all_sorted, :id,
:name_with_brand,
{ prompt: true, include_blank: false },
{ class: "form-select", data: { controller: "select" } }) %>
</fieldset>

<fieldset class="col-md-6 col-12 mt-4">
Expand All @@ -79,7 +87,8 @@
<!-- TODO: update -->
<% if @server.modele %>
<% @server.modele.enclosures.each do |enclosure| %>
<div class="col-12 mt-4" data-controller="nested-form" data-nested-form-wrapper-selector-value=".nested-form-wrapper">
<div class="col-12 mt-4" data-controller="nested-form"
data-nested-form-wrapper-selector-value=".nested-form-wrapper">
<template data-nested-form-target="template">
<%= f.fields_for :cards, f.object.cards.klass.new, child_index: 'NEW_RECORD' do |card_fields| %>
<%= render partial: "card_fields", locals: { f: card_fields, server: @server, enclosure: enclosure } %>
Expand All @@ -92,28 +101,29 @@
<div class="card-body">
<ul class="list-group">
<li class="list-group-item">
<fieldset class="row">
<div class="col-sm-2">
<div class="row">
<span class="col-md-2">
<%= Enclosure.human_attribute_name("component") %>
</div>
<div class="col-sm-2">
</span>
<span class="col-md-2">
<%= Enclosure.human_attribute_name("card_type") %>
</div>
<div class="col-sm-2">
</span>
<span class="col-md-2">
<%= Enclosure.human_attribute_name("label") %>
</div>
<div class="col-sm-2">
</span>
<span class="col-md-2">
<%= Enclosure.human_attribute_name("orientation") %>
</div>
<div class="col-sm-2">
<%= Enclosure.human_attribute_name("first_port_name") %>
</div>
<div class="col-sm-2">
</span>
<span class="col-md-1">
<%= Enclosure.human_attribute_name("first_port_name_shrt") %>
</span>
<span class="col-md-2">
<%= Enclosure.human_attribute_name("twin_card") %>
</div>
</fieldset>
</span>
</div>
</li>
<% cards = @server.cards.select { |c| c.composant.enclosure == enclosure }.sort_by! { |c| c.composant.position } %>
<% cards = @server.cards.select { |c| c.composant.enclosure == enclosure }
.sort_by! { |c| c.composant.position } %>
<%= f.fields_for :cards, cards do |card_fields| %>
<%= render partial: "card_fields", locals: { f: card_fields, server: @server, enclosure: enclosure } %>
<% end %>
Expand All @@ -136,7 +146,8 @@
<%= f.text_area :comment, class: "form-control" %>
</fieldset>

<fieldset class="col-12 mt-4" data-controller="nested-form" data-nested-form-wrapper-selector-value=".nested-form-wrapper">
<fieldset class="col-12 mt-4" data-controller="nested-form"
data-nested-form-wrapper-selector-value=".nested-form-wrapper">
<template data-nested-form-target="template">
<%= f.fields_for :documents, f.object.documents.klass.new, child_index: 'NEW_RECORD' do |document_fields| %>
<%= render partial: "document_fields", locals: { f: document_fields } %>
Expand All @@ -160,13 +171,13 @@
<fieldset class="col-12 mt-4">
<%= f.label :photo, class: "form-label" %>
<%= f.file_field :photo, class: "form-control" %>
<%# if @server.photo.attached? %>
<%#= image_tag @server.photo.variant(geometry: "x200"), class: "server_photo ms-0" %>
<% #end %>
<%- if @server.photo.attached? %>
<%= image_tag @server.photo.variant(geometry: "x200"), class: "server_photo ms-0 mt-2" %>
<% end %>
</fieldset>

<div class="col-12 mt-4">
<%= f.submit class: "w-100 btn btn-primary" %>
<div class="col-12 mt-4 text-center">
<%= f.submit class: "w-75 btn btn-primary" %>
</div>
</div>
<% end %>
Loading

0 comments on commit e2d3652

Please sign in to comment.