From e4bbb329b505cbbffdd62e564931fdeafc76bed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=B6hm?= Date: Fri, 22 May 2026 04:35:04 +0200 Subject: [PATCH] Added item list with mobile view --- app/views/categories/show.html.erb | 87 ++++---------- app/views/items/_list.html.erb | 132 +++++++++++++++++++++ app/views/items/_list2.html.erb | 168 +++++++++++++++++++++++++++ app/views/items/_search_bar.html.erb | 31 +++++ app/views/items/index.html.erb | 130 +++------------------ 5 files changed, 369 insertions(+), 179 deletions(-) create mode 100644 app/views/items/_list.html.erb create mode 100644 app/views/items/_list2.html.erb create mode 100644 app/views/items/_search_bar.html.erb diff --git a/app/views/categories/show.html.erb b/app/views/categories/show.html.erb index c0d8985..f5a9917 100644 --- a/app/views/categories/show.html.erb +++ b/app/views/categories/show.html.erb @@ -1,82 +1,35 @@ <% content_for :title, "Kategorie: #{@category.name}" %> -
- - <% content_for :top_bar_actions do %> - <%= link_to categories_path, class: "py-2 px-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 flex items-center gap-1.5 shadow-sm transition" do %> - - - Alle Kategorien - <% end %> +<% content_for :top_bar_actions do %> + <%= link_to categories_path, class: "py-2 px-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 flex items-center gap-1.5 shadow-sm transition" do %> + + Alle Kategorien <% end %> +<% end %> +

Beschreibung

-

<%= @category.description.presence || "Keine Beschreibung hinterlegt für diese Kategorie." %>

+

<%= @category.description.presence || "Keine Beschreibung hinterlegt." %>

- -
-
-

Registrierte Unikate in dieser Kategorie

-
- +
+ + <%= render "items/search_bar", show_csv: false %> + + <% if @items.any? %> -
- - - - - - - - - - - - <% @items.each do |item| %> - - - - - - - - <% end %> - -
Artikel / ModellSeriennummer (SN)Aktueller Standort / InhaberQR-IDWert
-
<%= item.name %>
-
SKU: <%= item.sku %>
-
- <%= item.serial_number %> - - - <% if item.user.present? %> - - 👤 <%= item.user.name %> - - <% elsif item.room.present? %> - - 📍 <%= item.room.name_with_building %> - - <% else %> - - 📦 Im Hauptlager - - <% end %> - - #<%= item.sticker_id %> - - <%= number_to_currency(item.price, unit: "€", separator: ",", delimiter: ".", format: "%n %u") %> -
-
+ <%= render "items/list", items: @items %> <% else %> - -
- -

Bisher sind keine Artikel in dieser Kategorie registriert.

+
+ + + +

Bisher sind keine Inventargegenstände erfasst.

+

Klicke oben rechts auf "Artikel hinzufügen", um das erste Gerät einzubuchen.

<% end %>
+ diff --git a/app/views/items/_list.html.erb b/app/views/items/_list.html.erb new file mode 100644 index 0000000..fbbf919 --- /dev/null +++ b/app/views/items/_list.html.erb @@ -0,0 +1,132 @@ +
+ + + + +
+ <% items.each do |item| %> +
+ + +
+
+

<%= item.name %>

+

<%= item.category.name %>

+
+ + +
+ + #<%= item.sticker_id %> + + + <%= number_to_currency(item.price, unit: "€", separator: ",", delimiter: ".", format: "%n %u") %> + +
+
+ + +
+
+ SKU + <%= item.sku %> +
+
+ Seriennummer + <%= item.serial_number %> +
+
+ + +
+ +
+ <% if item.user.present? %> + + 👤 <%= item.user.name %> + + <% elsif item.room.present? %> + + 📍 <%= item.room.name %> + + <% else %> + + 📦 Hauptlager + + <% end %> +
+ + +
+ <%= link_to item_path(item), class: "p-2 text-gray-500 hover:text-blue-600 hover:bg-blue-50 rounded-lg border border-gray-200 bg-white shadow-sm" do %> + + <% end %> + <%= link_to edit_item_path(item), class: "p-2 text-gray-500 hover:text-amber-600 hover:bg-amber-50 rounded-lg border border-gray-200 bg-white shadow-sm" do %> + + <% end %> +
+
+ +
+ <% end %> +
+ + + + + +
diff --git a/app/views/items/_list2.html.erb b/app/views/items/_list2.html.erb new file mode 100644 index 0000000..ed48450 --- /dev/null +++ b/app/views/items/_list2.html.erb @@ -0,0 +1,168 @@ +<% content_for :title, "Gesamtbestand" %> + + +<% content_for :top_bar_actions do %> + <%= link_to new_item_path, class: "py-2 px-4 text-sm font-semibold rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1.5 shadow-sm transition" do %> + + Artikel hinzufügen + <% end %> +<% end %> + +
+ + +
+
+
+ +
+ +
+
+
+ <%= link_to items_path(format: :csv), class: "py-2 px-3 border border-gray-300 rounded-lg text-sm font-medium bg-white text-gray-700 hover:bg-gray-50 flex items-center gap-1.5 transition shadow-sm", title: "Liste als Excel/CSV exportieren" do %> + + Daten exportieren + <% end %> +
+
+ + <% if @items.any? %> + + + + +
+ <% @items.each do |item| %> +
+ + +
+
+

<%= item.name %>

+

<%= item.category.name %>

+
+ + + #<%= item.sticker_id %> + +
+ + +
+
+ SKU + <%= item.sku %> +
+
+ Seriennummer + <%= item.serial_number %> +
+
+ + +
+
+ +
+ <% if item.user.present? %> + + 👤 <%= item.user.name %> + + <% elsif item.room.present? %> + + 📍 <%= item.room.name %> + + <% else %> + + 📦 Hauptlager + + <% end %> +
+ + + + <%= number_to_currency(item.price, unit: "€", separator: ",", delimiter: ".", format: "%n %u") %> + +
+ + +
+ <%= link_to item_path(item), class: "p-2 text-gray-500 hover:text-blue-600 hover:bg-blue-50 rounded-lg border border-gray-200 bg-white shadow-sm" do %> + + <% end %> + <%= link_to edit_item_path(item), class: "p-2 text-gray-500 hover:text-amber-600 hover:bg-amber-50 rounded-lg border border-gray-200 bg-white shadow-sm" do %> + + <% end %> +
+
+ +
+ <% end %> +
+ + + + + + + <% else %> + +
+ + + +

Bisher sind keine Inventargegenstände erfasst.

+

Klicke oben rechts auf "Artikel hinzufügen", um das erste Gerät einzubuchen.

+
+ <% end %> + +
+
\ No newline at end of file diff --git a/app/views/items/_search_bar.html.erb b/app/views/items/_search_bar.html.erb new file mode 100644 index 0000000..21b8263 --- /dev/null +++ b/app/views/items/_search_bar.html.erb @@ -0,0 +1,31 @@ +
+ + +
+ +
+ + +
+
+ + +
+ + <% if local_assigns[:show_csv] %> + <%= link_to items_path(format: :csv), class: "py-2 px-3 border border-gray-300 rounded-lg text-sm font-medium bg-white text-gray-700 hover:bg-gray-50 flex items-center gap-1.5 transition shadow-sm", title: "Liste als Excel/CSV exportieren" do %> + + + Daten exportieren + <% end %> + <% end %> + + + +
+ +
diff --git a/app/views/items/index.html.erb b/app/views/items/index.html.erb index a900964..142099f 100644 --- a/app/views/items/index.html.erb +++ b/app/views/items/index.html.erb @@ -30,125 +30,31 @@ <% content_for :title, "Gesamtbestand" %> - <% content_for :top_bar_actions do %> <%= link_to new_item_path, class: "py-2 px-4 text-sm font-semibold rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1.5 shadow-sm transition" do %> - - - - + Artikel hinzufügen <% end %> <% end %> -
- - -
-
- - -
- -
- - -
-
- - -
- <%= link_to items_path(format: :csv), class: "py-2 px-3 border border-gray-300 rounded-lg text-sm font-medium bg-white text-gray-700 hover:bg-gray-50 flex items-center gap-1.5 transition shadow-sm", title: "Liste als Excel/CSV exportieren" do %> - - - Daten exportieren - <% end %> -
+
+ + <%= render "items/search_bar", show_csv: true %> + + <% if @items.any? %> + <%= render "items/list", items: @items %> + <% else %> +
+ + + +

Bisher sind keine Inventargegenstände erfasst.

+

Klicke oben rechts auf "Artikel hinzufügen", um das erste Gerät einzubuchen.

- - - -<% if @items.any? %> - -
- - - - - - - - - - - - - - - <% @items.each do |item| %> - - - - - - - - - - - - - - - - - - - - - - <% end %> - -
Artikel / DetailsSeriennummer (SN)Aktueller Standort / InhaberSticker-IDWertAktionen
-
<%= item.name %>
-
SKU: <%= item.sku %> • <%= item.category.name %>
-
- <%= item.serial_number %> - - <% if item.user.present? %> - - 👤 <%= item.user.name %> - - <% elsif item.room.present? %> - - 📍 <%= item.room.name_with_building %> - - <% else %> - - 📦 Im Hauptlager - - <% end %> - - #<%= item.sticker_id %> - - <%= number_to_currency(item.price, unit: "€", separator: ",", delimiter: ".", format: "%n %u") %> - - <%= link_to "Details", item_path(item), class: "text-blue-600 hover:text-blue-900 transition" %> - <%= link_to "Bearbeiten", edit_item_path(item), class: "text-gray-500 hover:text-gray-700 transition" %> -
-
- <% else %> - -
- - - -

Bisher sind keine Inventargegenstände erfasst.

-

Klicke oben rechts auf "Artikel hinzufügen", um das erste Gerät einzubuchen.

-
- <% end %> - -
+ <% end %>
+ + +