summaryrefslogtreecommitdiff
path: root/app/views/dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/dashboard')
-rw-r--r--app/views/dashboard/_raft_allocation.html.erb9
-rw-r--r--app/views/dashboard/_recent_measurements.html.erb22
-rw-r--r--app/views/dashboard/_target_table.html.erb40
-rw-r--r--app/views/dashboard/index.html.erb7
4 files changed, 78 insertions, 0 deletions
diff --git a/app/views/dashboard/_raft_allocation.html.erb b/app/views/dashboard/_raft_allocation.html.erb
new file mode 100644
index 0000000..ef95cdd
--- /dev/null
+++ b/app/views/dashboard/_raft_allocation.html.erb
@@ -0,0 +1,9 @@
+<div class="card shadow mb-4">
+ <div class="card-header d-flex justify-content-between align-items-center">
+ <h5 class="mb-0">Raft Allocation</h5>
+ <%= link_to "Edit raft allocation", editor_rafts_path, class: "btn btn-sm btn-primary" %>
+ </div>
+
+ <%= bar_chart @raft_data, stacked: true %>
+</div>
+
diff --git a/app/views/dashboard/_recent_measurements.html.erb b/app/views/dashboard/_recent_measurements.html.erb
new file mode 100644
index 0000000..bc63a60
--- /dev/null
+++ b/app/views/dashboard/_recent_measurements.html.erb
@@ -0,0 +1,22 @@
+<div class="card shadow mb-4">
+ <div class="card-header d-flex justify-content-between align-items-center">
+ <h5 class="mb-0">Nutrient Measurements</h5>
+ <div class="btn-group">
+ <%#= link_to "Add new measurement", editor_rafts_path, class: "btn btn-sm btn-primary" %>
+ <%#= link_to "View all", editor_rafts_path, class: "btn btn-sm btn-secondary" %>
+ </div>
+ </div>
+
+ <div class="card-body p-0">
+ <div class="container mb-3">
+ <%= line_chart @npk_measurement_data,
+ title: "NPK",
+ ytitle: "Concentration (mg/L)" %>
+ </div>
+ <div class="container mb-3">
+ <%= line_chart @ammonium_measurement_data,
+ title: "Ammonium",
+ ytitle: "Concentration (mg/L)" %>
+ </div>
+ </div>
+</div>
diff --git a/app/views/dashboard/_target_table.html.erb b/app/views/dashboard/_target_table.html.erb
new file mode 100644
index 0000000..b8f7e66
--- /dev/null
+++ b/app/views/dashboard/_target_table.html.erb
@@ -0,0 +1,40 @@
+<div class="card shadow mb-4">
+ <div class="card-header d-flex justify-content-between align-items-center">
+ <h5 class="mb-0">Target nutrient concentrations</h5>
+ <%= link_to "Get Ferti© recipe", ferti_recipe_path, class: "btn btn-sm btn-primary" %>
+ </div>
+
+ <div class="table-responsive">
+ <table class="table table-sm align-middle mb-0">
+ <thead class="table-light">
+ <tr>
+ <th scope="col" class="text-nowrap">Nutrient</th>
+ <th scope="col" class="text-end"> Latest (mg/L)
+ </th>
+ <th scope="col" class="text-end">Target (mg/L)</th>
+ <th scope="col" class="text-end">Δ %</th>
+ </tr>
+ </thead>
+ <tbody>
+ <% NutrientsHelper::NUTRIENTS.each do |n| %>
+ <% latest = @latest_measurement[n] || 0 %>
+ <% target = @target[n] || 0 %>
+ <% delta = target - latest %>
+ <tr>
+ <th scope="row" class="text-nowrap"><%= n.upcase %></th>
+ <td class="text-end"><%= fmt(latest) %></td>
+ <td class="text-end"><%= fmt(target) %></td>
+ <td class="text-end">
+ <span class="badge <%= delta_badge_class(delta) %>">
+ <%= fmt(delta) %>%
+ </span>
+ </td>
+ </tr>
+ <% end %>
+ </tbody>
+ </table>
+ </div>
+ <div class="card-footer">
+ Latest measurement: <%= @latest_measurement.measured_on || "none yet" %>
+ </div>
+</div>
diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb
new file mode 100644
index 0000000..2902ada
--- /dev/null
+++ b/app/views/dashboard/index.html.erb
@@ -0,0 +1,7 @@
+<h1 class="display-1">Ferti</h1>
+
+<%= render "raft_allocation" %>
+
+<%= render "target_table" %>
+
+<%= render "recent_measurements" %>
Copyright 2019--2025 Marius PETER