From 212c34d77918cb1c8ce6f870e8a1d6444b9009aa Mon Sep 17 00:00:00 2001 From: Erik Thuning <boooink@gmail.com> Date: Mon, 26 Feb 2024 17:22:26 +0100 Subject: [PATCH] Discarded products are now displayed in a read-only format. Also added a fragment for a public view of a product --- html/en/fragments.html | 120 ++++++++++++++++++++++++++++++++++++++++ html/sv/fragments.html | 120 ++++++++++++++++++++++++++++++++++++++++ include/ProductPage.php | 16 +++++- style.css | 4 ++ 4 files changed, 257 insertions(+), 3 deletions(-) diff --git a/html/en/fragments.html b/html/en/fragments.html index 252b8db..d42e2e7 100644 --- a/html/en/fragments.html +++ b/html/en/fragments.html @@ -307,6 +307,109 @@ </form> </div> +¤¤ product_details_readonly ¤¤ +<div id="product-details"> + <h2>Product details</h2> + <div id="product-data" + class="data"> + <table> + <tbody class="single fixedwidth"> + <tr> + <td> + Name: + </td> + <td> + ¤name¤ + </td> + </tr> + <tr> + <td> + Manufacturer: + </td> + <td> + ¤brand¤ + </td> + </tr> + <tr> + <td> + Invoice number: + </td> + <td> + ¤invoice¤ + </td> + </tr> + <tr id="before_info"> + <td> + Serial number: + </td> + <td> + ¤serial¤ + </td> + </tr> + ¤info¤ + <tr> + <td> + Tags: + </td> + <td id="tags"> + ¤tags¤ + </td> + </tr> + </tbody> + </table> + </div> +</div> +<div id="product-attachments" + class="¤hidden¤"> + <h2>Attachments</h2> + ¤attachments¤ +</div> + +¤¤ product_details_public ¤¤ +<div id="product-details"> + <h2>Product details</h2> + <div id="product-data" + class="data"> + <table> + <tbody class="single fixedwidth"> + <tr> + <td> + Name: + </td> + <td> + ¤name¤ + </td> + </tr> + <tr> + <td> + Manufacturer: + </td> + <td> + ¤brand¤ + </td> + </tr> + <tr id="before_info"> + <td> + Serial number: + </td> + <td> + ¤serial¤ + </td> + </tr> + ¤info¤ + <tr> + <td> + Tags: + </td> + <td id="tags"> + ¤tags¤ + </td> + </tr> + </tbody> + </table> + </div> +</div> + ¤¤ product_meta ¤¤ <div id="product-history"> <h2>Product history</h2> @@ -418,6 +521,16 @@ </td> </tr> +¤¤ info_item_readonly ¤¤ +<tr> + <td> + ¤name¤: + </td> + <td> + ¤value¤ + </td> +</tr> + ¤¤ tag ¤¤ <p> <span class="tag"> @@ -432,6 +545,13 @@ </span> </p> +¤¤ tag_readonly ¤¤ +<p> + <span class="tag"> + ¤tag¤ + </span> +</p> + ¤¤ user_details ¤¤ <div id="user-details"> <form onSubmit="JavaScript:updateUser(event)"> diff --git a/html/sv/fragments.html b/html/sv/fragments.html index 6fe9d30..c65e879 100644 --- a/html/sv/fragments.html +++ b/html/sv/fragments.html @@ -307,6 +307,109 @@ </form> </div> +¤¤ product_details_readonly ¤¤ +<div id="product-details"> + <h2>Artikeldata</h2> + <div id="product-data" + class="data"> + <table> + <tbody class="single fixedwidth"> + <tr> + <td> + Namn: + </td> + <td> + ¤name¤ + </td> + </tr> + <tr> + <td> + Tillverkare: + </td> + <td> + ¤brand¤ + </td> + </tr> + <tr> + <td> + Fakturanummer: + </td> + <td> + ¤invoice¤ + </td> + </tr> + <tr id="before_info"> + <td> + Serienummer: + </td> + <td> + ¤serial¤ + </td> + </tr> + ¤info¤ + <tr> + <td> + Taggar: + </td> + <td id="tags"> + ¤tags¤ + </td> + </tr> + </tbody> + </table> + </div> +</div> +<div id="product-attachments" + class="¤hidden¤"> + <h2>Bilagor</h2> + ¤attachments¤ +</div> + +¤¤ product_details_public ¤¤ +<div id="product-details"> + <h2>Artikeldata</h2> + <div id="product-data" + class="data"> + <table> + <tbody class="single fixedwidth"> + <tr> + <td> + Namn: + </td> + <td> + ¤name¤ + </td> + </tr> + <tr> + <td> + Tillverkare: + </td> + <td> + ¤brand¤ + </td> + </tr> + <tr id="before_info"> + <td> + Serienummer: + </td> + <td> + ¤serial¤ + </td> + </tr> + ¤info¤ + <tr> + <td> + Taggar: + </td> + <td id="tags"> + ¤tags¤ + </td> + </tr> + </tbody> + </table> + </div> +</div> + ¤¤ product_meta ¤¤ <div id="product-history"> <h2>Artikelhistorik</h2> @@ -418,6 +521,16 @@ </td> </tr> +¤¤ info_item_readonly ¤¤ +<tr> + <td> + ¤name¤: + </td> + <td> + ¤value¤ + </td> +</tr> + ¤¤ tag ¤¤ <p> <span class="tag"> @@ -432,6 +545,13 @@ </span> </p> +¤¤ tag_readonly ¤¤ +<p> + <span class="tag"> + ¤tag¤ + </span> +</p> + ¤¤ user_details ¤¤ <div id="user-details"> <form onSubmit="JavaScript:updateUser(event)"> diff --git a/include/ProductPage.php b/include/ProductPage.php index c1904bf..9939ae7 100644 --- a/include/ProductPage.php +++ b/include/ProductPage.php @@ -44,17 +44,27 @@ class ProductPage extends Page { } private function build_product_form() { + $discarded = $this->product->get_discardtime(); + + $info_item_fragment = $this->fragments['info_item']; + $tag_fragment = $this->fragments['tag']; + $product_details_fragment = $this->fragments['product_details']; + if($discarded) { + $info_item_fragment = $this->fragments['info_item_readonly']; + $tag_fragment = $this->fragments['tag_readonly']; + $product_details_fragment = $this->fragments['product_details_readonly']; + } $info = ''; foreach($this->product->get_info() as $key => $value) { $info .= replace(array('name' => ucfirst($key), 'key' => $key, 'value' => $value), - $this->fragments['info_item']); + $info_item_fragment); } $tags = ''; foreach($this->escape_tags($this->product->get_tags()) as $tag) { $tags .= replace(array('tag' => ucfirst($tag)), - $this->fragments['tag']); + $tag_fragment); } $history = $this->build_history_table($this->product->get_history()); $attachments = $this->build_attachment_list( @@ -87,7 +97,7 @@ class ProductPage extends Page { $fields['checkout_hidden'] = ''; } } - $out = replace($fields, $this->fragments['product_details']); + $out = replace($fields, $product_details_fragment); $out .= replace($fields, $this->fragments['product_meta']); return $out; } diff --git a/style.css b/style.css index d3eeec8..bf7a753 100644 --- a/style.css +++ b/style.css @@ -145,6 +145,10 @@ input[type="text"].newfield { width: 11.5em; } +tbody.fixedwidth > tr > td { + min-width: 11.5em; +} + input[type="text"].newtemplate { width: 8em; }