Changed the layout to use two columns
Preparing to implement attachments
This commit is contained in:
parent
e3d97e4966
commit
3cc2b91ed4
@ -21,7 +21,7 @@
|
|||||||
name="action"
|
name="action"
|
||||||
value="checkout" />
|
value="checkout" />
|
||||||
</form>
|
</form>
|
||||||
<table>
|
<table id="user-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
@ -62,6 +62,24 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
¤¤ product_page ¤¤
|
||||||
|
<div id="product-table">
|
||||||
|
<form id="product-create"
|
||||||
|
action="./"
|
||||||
|
method="get">
|
||||||
|
<input type="hidden"
|
||||||
|
name="page"
|
||||||
|
value="products" />
|
||||||
|
<input type="hidden"
|
||||||
|
name="action"
|
||||||
|
value="new" />
|
||||||
|
<button>
|
||||||
|
Ny artikel
|
||||||
|
</button>
|
||||||
|
¤product_table¤
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ product_table ¤¤
|
¤¤ product_table ¤¤
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
@ -99,183 +117,216 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
¤¤ create_product ¤¤
|
|
||||||
<form action="./"
|
|
||||||
method="get">
|
|
||||||
<input type="hidden"
|
|
||||||
name="page"
|
|
||||||
value="products" />
|
|
||||||
<input type="hidden"
|
|
||||||
name="action"
|
|
||||||
value="new" />
|
|
||||||
<button>
|
|
||||||
Ny artikel
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
¤¤ template_management ¤¤
|
¤¤ template_management ¤¤
|
||||||
<h2>Mallar</h2>
|
<div>
|
||||||
<form class="dark templates"
|
<h2>Mallar</h2>
|
||||||
onSubmit="JavaScript:loadTemplate(event)">
|
<form class="dark templates"
|
||||||
<datalist id="template_suggest"></datalist>
|
onSubmit="JavaScript:loadTemplate(event)">
|
||||||
<input type="hidden"
|
<datalist id="template_suggest"></datalist>
|
||||||
name="page"
|
<input type="hidden"
|
||||||
value="products" />
|
name="page"
|
||||||
<input type="hidden"
|
value="products" />
|
||||||
name="action"
|
<input type="hidden"
|
||||||
value="new" />
|
name="action"
|
||||||
<input onFocus="JavaScript:suggest(this, 'template')"
|
value="new" />
|
||||||
list="template_suggest"
|
<input onFocus="JavaScript:suggest(this, 'template')"
|
||||||
autocomplete="off"
|
list="template_suggest"
|
||||||
type="text"
|
autocomplete="off"
|
||||||
name="template"
|
type="text"
|
||||||
value="¤template¤"
|
name="template"
|
||||||
placeholder="Namn" />
|
value="¤template¤"
|
||||||
<button>
|
placeholder="Namn" />
|
||||||
Ladda
|
<button>
|
||||||
</button>
|
Ladda
|
||||||
<button onClick="JavaScript:saveTemplate(event)">
|
</button>
|
||||||
Spara
|
<button onClick="JavaScript:saveTemplate(event)">
|
||||||
</button>
|
Spara
|
||||||
<button onClick="JavaScript:deleteTemplate(event)">
|
</button>
|
||||||
Ta bort
|
<button onClick="JavaScript:deleteTemplate(event)">
|
||||||
</button>
|
Ta bort
|
||||||
</form>
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ product_details ¤¤
|
¤¤ product_details ¤¤
|
||||||
<h2>Artikeldata</h2>
|
<div id="product-details">
|
||||||
<form id="productdata"
|
<h2>Artikeldata</h2>
|
||||||
onSubmit="JavaScript:saveProduct(event)"
|
<form id="product-data"
|
||||||
class="left">
|
onSubmit="JavaScript:saveProduct(event)"
|
||||||
<input type="hidden"
|
class="data">
|
||||||
name="id"
|
<input type="hidden"
|
||||||
value="¤id¤" />
|
name="id"
|
||||||
<datalist id="field_suggest"></datalist>
|
value="¤id¤" />
|
||||||
<datalist id="tag_suggest"></datalist>
|
<datalist id="field_suggest"></datalist>
|
||||||
<table>
|
<datalist id="tag_suggest"></datalist>
|
||||||
<tfoot>
|
<table>
|
||||||
<tr>
|
<tfoot>
|
||||||
<td>
|
<tr>
|
||||||
</td>
|
<td>
|
||||||
<td>
|
</td>
|
||||||
<button id="save"
|
<td>
|
||||||
class="right">
|
<button id="save"
|
||||||
Spara
|
class="right">
|
||||||
</button>
|
Spara
|
||||||
<button id="reset"
|
</button>
|
||||||
class="right">
|
<button id="reset"
|
||||||
Återställ
|
class="right">
|
||||||
</button>
|
Återställ
|
||||||
</td>
|
</button>
|
||||||
</tr>
|
</td>
|
||||||
</tfoot>
|
</tr>
|
||||||
<tbody>
|
</tfoot>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>
|
<tr>
|
||||||
Namn:
|
<td>
|
||||||
</td>
|
Namn:
|
||||||
<td>
|
</td>
|
||||||
<input type="text"
|
<td>
|
||||||
name="name"
|
<input type="text"
|
||||||
value="¤name¤"
|
name="name"
|
||||||
onFocus="JavaScript:suggestContent(this)"
|
value="¤name¤"
|
||||||
list="name_suggest"
|
onFocus="JavaScript:suggestContent(this)"
|
||||||
autocomplete="off" />
|
list="name_suggest"
|
||||||
<datalist id="name_suggest"></datalist>
|
autocomplete="off" />
|
||||||
</td>
|
<datalist id="name_suggest"></datalist>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
Tillverkare:
|
<td>
|
||||||
</td>
|
Tillverkare:
|
||||||
<td>
|
</td>
|
||||||
<input type="text"
|
<td>
|
||||||
name="brand"
|
<input type="text"
|
||||||
value="¤brand¤"
|
name="brand"
|
||||||
onFocus="JavaScript:suggestContent(this)"
|
value="¤brand¤"
|
||||||
list="brand_suggest"
|
onFocus="JavaScript:suggestContent(this)"
|
||||||
autocomplete="off" />
|
list="brand_suggest"
|
||||||
<datalist id="brand_suggest"></datalist>
|
autocomplete="off" />
|
||||||
</td>
|
<datalist id="brand_suggest"></datalist>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
Fakturanummer:
|
<td>
|
||||||
</td>
|
Fakturanummer:
|
||||||
<td>
|
</td>
|
||||||
<input type="text"
|
<td>
|
||||||
name="invoice"
|
<input type="text"
|
||||||
value="¤invoice¤" />
|
name="invoice"
|
||||||
</td>
|
value="¤invoice¤" />
|
||||||
</tr>
|
</td>
|
||||||
<tr id="before_info">
|
</tr>
|
||||||
<td>
|
<tr id="before_info">
|
||||||
Serienummer:
|
<td>
|
||||||
</td>
|
Serienummer:
|
||||||
<td>
|
</td>
|
||||||
<input type="text"
|
<td>
|
||||||
name="serial"
|
<input type="text"
|
||||||
value="¤serial¤" />
|
name="serial"
|
||||||
</td>
|
value="¤serial¤" />
|
||||||
</tr>
|
</td>
|
||||||
¤info¤
|
</tr>
|
||||||
<tr>
|
¤info¤
|
||||||
<td>
|
<tr>
|
||||||
<input onKeyPress="JavaScript:addField(event)"
|
<td>
|
||||||
onFocus="JavaScript:suggest(this, 'field')"
|
<input onKeyPress="JavaScript:addField(event)"
|
||||||
list="field_suggest"
|
onFocus="JavaScript:suggest(this, 'field')"
|
||||||
autocomplete="off"
|
list="field_suggest"
|
||||||
class="newfield"
|
autocomplete="off"
|
||||||
type="text"
|
class="newfield"
|
||||||
name="new_key"
|
type="text"
|
||||||
placeholder="Nytt fält" />
|
name="new_key"
|
||||||
<button class="minibutton"
|
placeholder="Nytt fält" />
|
||||||
onClick="addField(event)">
|
<button class="minibutton"
|
||||||
+
|
onClick="addField(event)">
|
||||||
</button>
|
+
|
||||||
</td>
|
</button>
|
||||||
<td>
|
</td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
Taggar:
|
<td>
|
||||||
</td>
|
Taggar:
|
||||||
<td id="tags">
|
</td>
|
||||||
¤tags¤
|
<td id="tags">
|
||||||
<input onKeyPress="JavaScript:addTag(event)"
|
¤tags¤
|
||||||
onFocus="JavaScript:suggest(this, 'tag')"
|
<input onKeyPress="JavaScript:addTag(event)"
|
||||||
list="tag_suggest"
|
onFocus="JavaScript:suggest(this, 'tag')"
|
||||||
autocomplete="off"
|
list="tag_suggest"
|
||||||
class="newtag"
|
autocomplete="off"
|
||||||
type="text"
|
class="newtag"
|
||||||
name="new_tag"
|
type="text"
|
||||||
placeholder="Ny tagg" />
|
name="new_tag"
|
||||||
<button class="minibutton"
|
placeholder="Ny tagg" />
|
||||||
onClick="JavaScript:addTag(event)">
|
<button class="minibutton"
|
||||||
+
|
onClick="JavaScript:addTag(event)">
|
||||||
</button>
|
+
|
||||||
</td>
|
</button>
|
||||||
</tr>
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
¤label¤
|
</form>
|
||||||
<div class="clear"></div>
|
<form id="product-actions"
|
||||||
<form class="¤hidden¤">
|
class="¤hidden¤">
|
||||||
<input type="hidden"
|
<input type="hidden"
|
||||||
name="id"
|
name="id"
|
||||||
value="¤id¤" />
|
value="¤id¤" />
|
||||||
<button onClick="JavaScript:discardProduct(event)">
|
<button onClick="JavaScript:discardProduct(event)">
|
||||||
Skrota artikel
|
Skrota artikel
|
||||||
</button>
|
</button>
|
||||||
<button onClick="JavaScript:toggleService(event)">
|
<button onClick="JavaScript:toggleService(event)">
|
||||||
¤service¤
|
¤service¤
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="product-history"
|
||||||
|
class="¤hidden¤">
|
||||||
|
<h2>Artikelhistorik</h2>
|
||||||
|
¤history¤
|
||||||
|
</div>
|
||||||
|
<!--
|
||||||
|
<div id="product-attachments"
|
||||||
|
class="¤hidden¤">
|
||||||
|
<h2>Bilagor</h2>
|
||||||
|
¤attachments¤
|
||||||
|
<form id="attachment_upload"
|
||||||
|
onSubmit="JavaScript:uploadAttachment(event)">
|
||||||
|
<input type="hidden"
|
||||||
|
name="id"
|
||||||
|
value="¤id¤" />
|
||||||
|
<input id="uploadfile"
|
||||||
|
name="uploadfile"
|
||||||
|
type="file"
|
||||||
|
onchange="show_file(event)"/>
|
||||||
|
<input id="filename"
|
||||||
|
name="filename"
|
||||||
|
type="text"
|
||||||
|
placeholder="Välj en fil..."
|
||||||
|
onclick="select_file(event)"
|
||||||
|
readonly />
|
||||||
|
<button>Ladda upp</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
<div id="product-label"
|
||||||
|
class="¤hidden¤">
|
||||||
|
<h2>Etikett</h2>
|
||||||
|
¤label¤
|
||||||
|
</div>
|
||||||
|
|
||||||
|
¤¤ attachment_list ¤¤
|
||||||
|
<ul>
|
||||||
|
¤attachments¤
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
¤¤ attachment ¤¤
|
||||||
|
<li>
|
||||||
|
<strong>¤name¤</strong>: <a href="./?page=dl&id=¤id¤">Ladda ner</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
¤¤ product_label ¤¤
|
¤¤ product_label ¤¤
|
||||||
<div class="qr left">
|
<div class="qr">
|
||||||
<a href="./?page=print&id=¤id¤"
|
<a href="./?page=print&id=¤id¤"
|
||||||
title="Skriv ut">
|
title="Skriv ut">
|
||||||
<span>¤name¤</span>
|
<span>¤name¤</span>
|
||||||
@ -332,75 +383,81 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
¤¤ user_details ¤¤
|
¤¤ user_details ¤¤
|
||||||
<form onSubmit="JavaScript:updateUser(event)">
|
<div id="user-details">
|
||||||
<input type="hidden"
|
<form onSubmit="JavaScript:updateUser(event)">
|
||||||
name="id"
|
<input type="hidden"
|
||||||
value="¤id¤" />
|
name="id"
|
||||||
<table>
|
value="¤id¤" />
|
||||||
<tfoot>
|
<table>
|
||||||
<tr>
|
<tfoot>
|
||||||
<td>
|
<tr>
|
||||||
</td>
|
<td>
|
||||||
<td>
|
</td>
|
||||||
<button class="right"
|
<td>
|
||||||
id="save">
|
<button class="right"
|
||||||
Spara
|
id="save">
|
||||||
</button>
|
Spara
|
||||||
<button class="right"
|
</button>
|
||||||
id="reset">
|
<button class="right"
|
||||||
Återställ
|
id="reset">
|
||||||
</button>
|
Återställ
|
||||||
</td>
|
</button>
|
||||||
</tr>
|
</td>
|
||||||
</tfoot>
|
</tr>
|
||||||
<tbody>
|
</tfoot>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>
|
<tr>
|
||||||
Namn:
|
<td>
|
||||||
</td>
|
Namn:
|
||||||
<td>
|
</td>
|
||||||
|
<td>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
value="¤displayname¤"
|
value="¤displayname¤"
|
||||||
disabled />
|
disabled />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
Användarnamn:
|
Användarnamn:
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
name="name"
|
name="name"
|
||||||
value="¤name¤" />
|
value="¤name¤" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
Anteckningar:
|
Anteckningar:
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<textarea name="notes">¤notes¤</textarea>
|
<textarea name="notes">¤notes¤</textarea>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<form method="GET">
|
<form method="GET">
|
||||||
<input type="hidden"
|
<input type="hidden"
|
||||||
name="action"
|
name="action"
|
||||||
value="checkout" />
|
value="checkout" />
|
||||||
<button name="user"
|
<button name="user"
|
||||||
value="¤name¤">
|
value="¤name¤">
|
||||||
Nytt lån
|
Nytt lån
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
<h2>Aktuella lån</h2>
|
</div>
|
||||||
¤active_loans¤
|
<div id="active-loans">
|
||||||
<h2>Gamla lån</h2>
|
<h2>Aktuella lån</h2>
|
||||||
¤inactive_loans¤
|
¤active_loans¤
|
||||||
|
</div>
|
||||||
|
<div id="inactive-loans">
|
||||||
|
<h2>Gamla lån</h2>
|
||||||
|
¤inactive_loans¤
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ history_table ¤¤
|
¤¤ history_table ¤¤
|
||||||
<table>
|
<table class="history">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="status">
|
<th class="status">
|
||||||
@ -464,76 +521,84 @@
|
|||||||
|
|
||||||
|
|
||||||
¤¤ checkout_page ¤¤
|
¤¤ checkout_page ¤¤
|
||||||
<h2>Välj låntagare</h2>
|
<div id="user-select">
|
||||||
<form class="dark"
|
<h2>Välj låntagare</h2>
|
||||||
action="./"
|
<form class="dark"
|
||||||
method="GET">
|
action="./"
|
||||||
<datalist id="user_suggest"></datalist>
|
method="GET">
|
||||||
<input type="hidden"
|
<datalist id="user_suggest"></datalist>
|
||||||
name="page"
|
<input type="hidden"
|
||||||
value="checkout" />
|
name="page"
|
||||||
<div>
|
value="checkout" />
|
||||||
<span class="label">
|
<div>
|
||||||
Användarnamn:
|
<label for="user">
|
||||||
</span>
|
Användarnamn:
|
||||||
<input onFocus="JavaScript:suggest(this, 'user')"
|
</label>
|
||||||
type="text"
|
<input onFocus="JavaScript:suggest(this, 'user')"
|
||||||
|
type="text"
|
||||||
|
name="user"
|
||||||
|
id="user"
|
||||||
|
list="user_suggest"
|
||||||
|
autocomplete="off"
|
||||||
|
placeholder="Användarnamn"
|
||||||
|
value="¤user¤"
|
||||||
|
required />
|
||||||
|
<button type="submit" >
|
||||||
|
Välj
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="displayname">
|
||||||
|
Namn:
|
||||||
|
</label>
|
||||||
|
<input type="text"
|
||||||
|
name="displayname"
|
||||||
|
id="displayname"
|
||||||
|
value="¤displayname¤"
|
||||||
|
disabled />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="notes">
|
||||||
|
Anteckningar:
|
||||||
|
</label>
|
||||||
|
<textarea name="notes"
|
||||||
|
id="notes"
|
||||||
|
disabled>¤notes¤</textarea>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="product-checkout">
|
||||||
|
<h2>Låna ut artikel</h2>
|
||||||
|
<form class="light"
|
||||||
|
onSubmit="JavaScript:checkoutProduct(event)">
|
||||||
|
<input type="hidden"
|
||||||
|
name="page"
|
||||||
|
value="checkout" />
|
||||||
|
<input type="hidden"
|
||||||
name="user"
|
name="user"
|
||||||
list="user_suggest"
|
value="¤user¤">
|
||||||
autocomplete="off"
|
<label for="product">Artikel:</label>
|
||||||
placeholder="Användarnamn"
|
|
||||||
value="¤user¤"
|
|
||||||
required />
|
|
||||||
<button type="submit" >
|
|
||||||
Välj
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="label">
|
|
||||||
Namn:
|
|
||||||
</span>
|
|
||||||
<input type="text"
|
<input type="text"
|
||||||
name="displayname"
|
id="product"
|
||||||
value="¤displayname¤"
|
name="product"
|
||||||
disabled />
|
placeholder="Serienummer"
|
||||||
</div>
|
required
|
||||||
<div>
|
¤disabled¤ />
|
||||||
<span class="label">
|
<button>
|
||||||
Anteckningar:
|
|
||||||
</span>
|
|
||||||
<textarea name="notes"
|
|
||||||
disabled>¤notes¤</textarea>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<h2>Låna ut artikel</h2>
|
|
||||||
<form class="light"
|
|
||||||
onSubmit="JavaScript:checkoutProduct(event)">
|
|
||||||
<input type="hidden"
|
|
||||||
name="page"
|
|
||||||
value="checkout" />
|
|
||||||
<input type="hidden"
|
|
||||||
name="user"
|
|
||||||
value="¤user¤">
|
|
||||||
<span class="label">Artikel:</span>
|
|
||||||
<input type="text"
|
|
||||||
name="product"
|
|
||||||
placeholder="Serienummer"
|
|
||||||
required
|
|
||||||
¤disabled¤ />
|
|
||||||
<button>
|
|
||||||
Låna ut
|
Låna ut
|
||||||
</button>
|
</button>
|
||||||
<br/>
|
<br/>
|
||||||
<span class="label">Slutdatum:</span>
|
<label for="end">Slutdatum:</label>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
id="end"
|
id="end"
|
||||||
onClick="JavaScript:calendar(event)"
|
onClick="JavaScript:calendar(event)"
|
||||||
name="end"
|
name="end"
|
||||||
value="¤end¤"
|
value="¤end¤"
|
||||||
¤disabled¤ />
|
¤disabled¤ />
|
||||||
</form>
|
</form>
|
||||||
¤subtitle¤
|
¤subtitle¤
|
||||||
¤loan_table¤
|
¤loan_table¤
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ inventory_start ¤¤
|
¤¤ inventory_start ¤¤
|
||||||
<form class="dark"
|
<form class="dark"
|
||||||
@ -544,7 +609,9 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
¤¤ inventory_do ¤¤
|
¤¤ inventory_do ¤¤
|
||||||
<p class="dark">
|
|
||||||
|
<div id="inventory-overview"
|
||||||
|
class="dark">
|
||||||
<span class="label">
|
<span class="label">
|
||||||
Startdatum:
|
Startdatum:
|
||||||
</span>
|
</span>
|
||||||
@ -567,28 +634,39 @@
|
|||||||
Avsluta inventering
|
Avsluta inventering
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</p>
|
</div>
|
||||||
<form class="light ¤hide¤"
|
<form id="inventory-register"
|
||||||
|
class="light ¤hide¤"
|
||||||
onSubmit="JavaScript:inventoryProduct(event)">
|
onSubmit="JavaScript:inventoryProduct(event)">
|
||||||
<span class="label">
|
<label for="serial">
|
||||||
Artikel:
|
Artikel:
|
||||||
</span>
|
</label>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
name="serial"
|
name="serial"
|
||||||
|
id="serial"
|
||||||
placeholder="Serienummer" />
|
placeholder="Serienummer" />
|
||||||
<button>
|
<button>
|
||||||
Registrera
|
Registrera
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
<div id="unseen-products">
|
||||||
|
<h2>¤unseen_title¤</h2>
|
||||||
|
¤unseen¤
|
||||||
|
</div>
|
||||||
|
<div id="seen-products">
|
||||||
|
<h2>Inventerade artiklar</h2>
|
||||||
|
¤seen¤
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ return_page ¤¤
|
¤¤ return_page ¤¤
|
||||||
<form class="dark"
|
<form class="dark"
|
||||||
onSubmit="JavaScript:returnProduct(event)">
|
onSubmit="JavaScript:returnProduct(event)">
|
||||||
<span class="label">
|
<label for="serial">
|
||||||
Artikel:
|
Artikel:
|
||||||
</span>
|
</label>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
name="serial"
|
name="serial"
|
||||||
|
id="serial"
|
||||||
placeholder="Serienummer"
|
placeholder="Serienummer"
|
||||||
required />
|
required />
|
||||||
<button>
|
<button>
|
||||||
@ -597,7 +675,7 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
¤¤ inventory_table ¤¤
|
¤¤ inventory_table ¤¤
|
||||||
<table>
|
<table id="inventory-history">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
@ -646,17 +724,18 @@
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
¤¤ search_form ¤¤
|
¤¤ search_form ¤¤
|
||||||
|
|
||||||
<form onSubmit="JavaScript:doSearch(event)"
|
<form onSubmit="JavaScript:doSearch(event)"
|
||||||
id="search"
|
id="search"
|
||||||
class="dark">
|
class="dark">
|
||||||
<p>
|
<p>
|
||||||
|
<label for="q">Sökterm:</label>
|
||||||
<input type="hidden"
|
<input type="hidden"
|
||||||
name="page"
|
name="page"
|
||||||
value="search" />
|
value="search" />
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onKeyPress="JavaScript:searchInput(event)"
|
onKeyPress="JavaScript:searchInput(event)"
|
||||||
name="q"
|
name="q"
|
||||||
|
id="q"
|
||||||
placeholder="Vad letar du efter?"
|
placeholder="Vad letar du efter?"
|
||||||
value=""
|
value=""
|
||||||
autofocus />
|
autofocus />
|
||||||
@ -669,10 +748,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
</form>
|
</form>
|
||||||
<p>
|
<p id="hints">
|
||||||
Du kan göra mer avancerade sökningar genom att börja med ett nyckelord avslutat med kolon, ex: <strong>serienummer:123456</strong> eller <strong>tag:dator</strong>
|
Du kan göra mer avancerade sökningar genom att börja med ett nyckelord avslutat med kolon, ex: <strong>serienummer:123456</strong> eller <strong>tag:dator</strong>
|
||||||
</p>
|
</p>
|
||||||
|
<div id="found-products"
|
||||||
|
class="¤hide¤">
|
||||||
|
<h2>Artiklar</h2>
|
||||||
|
¤product_results¤
|
||||||
|
</div>
|
||||||
|
<div id="found-users"
|
||||||
|
class="¤hide¤">
|
||||||
|
<h2>Användare</h2>
|
||||||
|
¤user_results¤
|
||||||
|
</div>
|
||||||
|
|
||||||
¤¤ search_term ¤¤
|
¤¤ search_term ¤¤
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ class HistoryPage extends Page {
|
|||||||
$this->subtitle = 'Inventeringsdetaljer';
|
$this->subtitle = 'Inventeringsdetaljer';
|
||||||
break;
|
break;
|
||||||
case 'list':
|
case 'list':
|
||||||
$this->subtitle = 'Genomförda inventeringar';
|
$this->subtitle = 'Historik';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -30,9 +30,11 @@ class HistoryPage extends Page {
|
|||||||
protected function render_body() {
|
protected function render_body() {
|
||||||
switch($this->action) {
|
switch($this->action) {
|
||||||
case 'list':
|
case 'list':
|
||||||
|
print(replace(array('title' => 'Genomförda inventeringar'),
|
||||||
|
$this->fragments['subtitle']));
|
||||||
print($this->build_inventory_table());
|
print($this->build_inventory_table());
|
||||||
print(replace(array('title' => 'Skrotade artiklar'),
|
print(replace(array('title' => 'Skrotade artiklar'),
|
||||||
$this->fragments['title']));
|
$this->fragments['subtitle']));
|
||||||
$discards = get_items('product_discarded');
|
$discards = get_items('product_discarded');
|
||||||
if($discards) {
|
if($discards) {
|
||||||
print($this->build_product_table($discards));
|
print($this->build_product_table($discards));
|
||||||
|
@ -150,15 +150,17 @@ abstract class Page extends Responder {
|
|||||||
case 'overdue':
|
case 'overdue':
|
||||||
$loan = $product->get_active_loan();
|
$loan = $product->get_active_loan();
|
||||||
$user = $loan->get_user();
|
$user = $loan->get_user();
|
||||||
$userlink = replace(array('name' => $user->get_displayname(),
|
$replacements = array('name' => $user->get_displayname(),
|
||||||
'id' => $user->get_id(),
|
'id' => $user->get_id(),
|
||||||
'page' => 'users'),
|
'page' => 'users');
|
||||||
|
$userlink = replace($replacements,
|
||||||
$this->fragments['item_link']);
|
$this->fragments['item_link']);
|
||||||
$note = 'Utlånad till '.$userlink;
|
$note = 'Utlånad till '.$userlink;
|
||||||
if($loan->is_overdue()) {
|
if($loan->is_overdue()) {
|
||||||
$note .= ', försenad';
|
$note .= ', försenad';
|
||||||
} else {
|
} else {
|
||||||
$note .= ', slutdatum '.format_date($loan->get_endtime());
|
$note .= ', slutdatum '
|
||||||
|
.format_date($loan->get_endtime());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -205,42 +207,6 @@ abstract class Page extends Responder {
|
|||||||
$this->fragments['history_table']);
|
$this->fragments['history_table']);
|
||||||
}
|
}
|
||||||
|
|
||||||
final protected function build_product_history_table($history) {
|
|
||||||
$rows = '';
|
|
||||||
foreach($history as $event) {
|
|
||||||
$status = $event->get_status();
|
|
||||||
$itemlink = 'Service';
|
|
||||||
$start = $event->get_starttime();
|
|
||||||
$end = $event->get_returntime();
|
|
||||||
$note = '';
|
|
||||||
if($event instanceof Loan) {
|
|
||||||
$user = $event->get_user();
|
|
||||||
$product = $event->get_product();
|
|
||||||
$itemlink = replace(array('id' => $user->get_id(),
|
|
||||||
'name' => $user->get_name(),
|
|
||||||
'page' => 'users'),
|
|
||||||
$this->fragments['item_link']);
|
|
||||||
if(!$end) {
|
|
||||||
$end = $event->get_endtime();
|
|
||||||
$extend = format_date(default_loan_end(time()));
|
|
||||||
$note = replace(array('id' => $product->get_id(),
|
|
||||||
'end_new' => $extend),
|
|
||||||
$this->fragments['loan_extend_form']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$rows .= replace(array('status' => $status,
|
|
||||||
'item_link' => $itemlink,
|
|
||||||
'start_date' => format_date($start),
|
|
||||||
'end_date' => format_date($end),
|
|
||||||
'note' => $note),
|
|
||||||
$this->fragments['history_row']);
|
|
||||||
|
|
||||||
}
|
|
||||||
return replace(array('rows' => $rows,
|
|
||||||
'item' => 'Låntagare'),
|
|
||||||
$this->fragments['history_table']);
|
|
||||||
}
|
|
||||||
|
|
||||||
final protected function build_seen_table($products, $inventory) {
|
final protected function build_seen_table($products, $inventory) {
|
||||||
$rows = '';
|
$rows = '';
|
||||||
foreach($products as $product) {
|
foreach($products as $product) {
|
||||||
@ -315,26 +281,22 @@ abstract class Page extends Responder {
|
|||||||
$missing = 'Kvarvarande artiklar';
|
$missing = 'Kvarvarande artiklar';
|
||||||
$hidden = '';
|
$hidden = '';
|
||||||
}
|
}
|
||||||
$out = replace(array('start_date' => $startdate,
|
$unseen_table = 'Inga artiklar saknas.';
|
||||||
|
if($unseen) {
|
||||||
|
$unseen_table = $this->build_product_table($unseen);
|
||||||
|
}
|
||||||
|
$seen_table = 'Inga artiklar inventerade.';
|
||||||
|
if($seen) {
|
||||||
|
$seen_table = $this->build_seen_table($seen, $inventory);
|
||||||
|
}
|
||||||
|
return replace(array('start_date' => $startdate,
|
||||||
'total_count' => count($all_products),
|
'total_count' => count($all_products),
|
||||||
'seen_count' => count($seen),
|
'seen_count' => count($seen),
|
||||||
'hide' => $hidden),
|
'hide' => $hidden,
|
||||||
|
'unseen_title' => $missing,
|
||||||
|
'unseen' => $unseen_table,
|
||||||
|
'seen' => $seen_table),
|
||||||
$this->fragments['inventory_do']);
|
$this->fragments['inventory_do']);
|
||||||
$out .= replace(array('title' => $missing),
|
|
||||||
$this->fragments['subtitle']);
|
|
||||||
if($unseen) {
|
|
||||||
$out .= $this->build_product_table($unseen);
|
|
||||||
} else {
|
|
||||||
$out .= 'Inga artiklar saknas.';
|
|
||||||
}
|
|
||||||
$out .= replace(array('title' => 'Inventerade artiklar'),
|
|
||||||
$this->fragments['subtitle']);
|
|
||||||
if($seen) {
|
|
||||||
$out .= $this->build_seen_table($seen, $inventory);
|
|
||||||
} else {
|
|
||||||
$out .= 'Inga artiklar inventerade.';
|
|
||||||
}
|
|
||||||
return $out;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -401,5 +401,9 @@ class Product {
|
|||||||
}
|
}
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_attachments() {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -48,8 +48,9 @@ class ProductPage extends Page {
|
|||||||
protected function render_body() {
|
protected function render_body() {
|
||||||
switch($this->action) {
|
switch($this->action) {
|
||||||
case 'list':
|
case 'list':
|
||||||
print($this->fragments['create_product']);
|
$products = $this->build_product_table(get_items('product'));
|
||||||
print($this->build_product_table(get_items('product')));
|
print(replace(array('product_table' => $products),
|
||||||
|
$this->fragments['product_page']));
|
||||||
break;
|
break;
|
||||||
case 'show':
|
case 'show':
|
||||||
print($this->build_product_details());
|
print($this->build_product_details());
|
||||||
@ -73,16 +74,22 @@ class ProductPage extends Page {
|
|||||||
$tags .= replace(array('tag' => ucfirst($tag)),
|
$tags .= replace(array('tag' => ucfirst($tag)),
|
||||||
$this->fragments['tag']);
|
$this->fragments['tag']);
|
||||||
}
|
}
|
||||||
$fields = array('id' => $this->product->get_id(),
|
$history = $this->build_history_table($this->product->get_history());
|
||||||
'brand' => $this->product->get_brand(),
|
$attachments = $this->build_attachment_list(
|
||||||
'name' => $this->product->get_name(),
|
$this->product->get_attachments());
|
||||||
'serial' => $this->product->get_serial(),
|
$fields = array('id' => $this->product->get_id(),
|
||||||
'invoice' => $this->product->get_invoice(),
|
'brand' => $this->product->get_brand(),
|
||||||
'tags' => $tags,
|
'name' => $this->product->get_name(),
|
||||||
'info' => $info,
|
'serial' => $this->product->get_serial(),
|
||||||
'label' => '',
|
'invoice' => $this->product->get_invoice(),
|
||||||
'hidden' => 'hidden',
|
'tags' => $tags,
|
||||||
'service' => 'Starta service');
|
'info' => $info,
|
||||||
|
'label' => '',
|
||||||
|
'hidden' => 'hidden',
|
||||||
|
'service' => 'Starta service',
|
||||||
|
'history' => $history,
|
||||||
|
'attachments' => $attachments);
|
||||||
|
$attachments = $this->product->get_attachments();
|
||||||
if(class_exists('QRcode')) {
|
if(class_exists('QRcode')) {
|
||||||
$fields['label'] = replace($fields,
|
$fields['label'] = replace($fields,
|
||||||
$this->fragments['product_label']);
|
$this->fragments['product_label']);
|
||||||
@ -93,16 +100,60 @@ class ProductPage extends Page {
|
|||||||
$fields['service'] = 'Avsluta service';
|
$fields['service'] = 'Avsluta service';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$out = replace($fields, $this->fragments['product_details']);
|
return replace($fields, $this->fragments['product_details']);
|
||||||
$out .= replace(array('title' => 'Artikelhistorik'),
|
}
|
||||||
$this->fragments['subtitle']);
|
|
||||||
$history_table = 'Ingen historik att visa.';
|
private function build_history_table($history) {
|
||||||
$history = $this->product->get_history();
|
if(!$history) {
|
||||||
if($history) {
|
return 'Ingen historik att visa.';
|
||||||
$history_table = $this->build_product_history_table($history);
|
|
||||||
}
|
}
|
||||||
$out .= $history_table;
|
$rows = '';
|
||||||
return $out;
|
foreach($history as $event) {
|
||||||
|
$status = $event->get_status();
|
||||||
|
$itemlink = 'Service';
|
||||||
|
$start = $event->get_starttime();
|
||||||
|
$end = $event->get_returntime();
|
||||||
|
$note = '';
|
||||||
|
if($event instanceof Loan) {
|
||||||
|
$user = $event->get_user();
|
||||||
|
$product = $event->get_product();
|
||||||
|
$itemlink = replace(array('id' => $user->get_id(),
|
||||||
|
'name' => $user->get_name(),
|
||||||
|
'page' => 'users'),
|
||||||
|
$this->fragments['item_link']);
|
||||||
|
if(!$end) {
|
||||||
|
$end = $event->get_endtime();
|
||||||
|
$extend = format_date(default_loan_end(time()));
|
||||||
|
$note = replace(array('id' => $product->get_id(),
|
||||||
|
'end_new' => $extend),
|
||||||
|
$this->fragments['loan_extend_form']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$rows .= replace(array('status' => $status,
|
||||||
|
'item_link' => $itemlink,
|
||||||
|
'start_date' => format_date($start),
|
||||||
|
'end_date' => format_date($end),
|
||||||
|
'note' => $note),
|
||||||
|
$this->fragments['history_row']);
|
||||||
|
}
|
||||||
|
return replace(array('rows' => $rows,
|
||||||
|
'item' => 'Låntagare'),
|
||||||
|
$this->fragments['history_table']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function build_attachment_list($attachments) {
|
||||||
|
if(!$attachments) {
|
||||||
|
return 'Inga bilagor.';
|
||||||
|
}
|
||||||
|
$items = '';
|
||||||
|
foreach($attachments as $attachment) {
|
||||||
|
$items .= replace(array('name' => $attachment->get_name(),
|
||||||
|
'id' => $attachments->get_id()),
|
||||||
|
$this->fragments['attachment']);
|
||||||
|
}
|
||||||
|
return replace(array('attachments' => $items),
|
||||||
|
$this->fragments['attachment_list']);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function build_new_page() {
|
private function build_new_page() {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class SearchPage extends Page {
|
class SearchPage extends Page {
|
||||||
private $terms = array();
|
private $terms = array();
|
||||||
|
private $product_hits = array();
|
||||||
|
private $user_hits = array();
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -8,7 +10,17 @@ class SearchPage extends Page {
|
|||||||
if(isset($_GET['q']) && !$_GET['q']) {
|
if(isset($_GET['q']) && !$_GET['q']) {
|
||||||
unset($_GET['q']);
|
unset($_GET['q']);
|
||||||
}
|
}
|
||||||
$this->terms = $_GET;
|
$this->terms = $this->translate_terms($_GET);
|
||||||
|
if($this->terms) {
|
||||||
|
$this->subtitle = 'Sökresultat';
|
||||||
|
$hits = $this->do_search();
|
||||||
|
if(isset($hits['product'])) {
|
||||||
|
$this->product_hits = $hits['product'];
|
||||||
|
}
|
||||||
|
if(isset($hits['user'])) {
|
||||||
|
$this->user_hits = $hits['user'];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function do_search() {
|
private function do_search() {
|
||||||
@ -17,7 +29,7 @@ class SearchPage extends Page {
|
|||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
foreach(array('user', 'product') as $type) {
|
foreach(array('user', 'product') as $type) {
|
||||||
$result = $this->search($type, $this->translate_keys($this->terms));
|
$result = $this->search($type, $this->terms);
|
||||||
if($result) {
|
if($result) {
|
||||||
$out[$type] = $result;
|
$out[$type] = $result;
|
||||||
}
|
}
|
||||||
@ -25,7 +37,14 @@ class SearchPage extends Page {
|
|||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function translate_keys($terms) {
|
private function translate_terms($terms) {
|
||||||
|
$matches = array();
|
||||||
|
if(isset($terms['q']) && preg_match('/([^:]+):(.*)/',
|
||||||
|
$terms['q'],
|
||||||
|
$matches)) {
|
||||||
|
unset($terms['q']);
|
||||||
|
$terms[$matches[1]] = $matches[2];
|
||||||
|
}
|
||||||
$translated = array();
|
$translated = array();
|
||||||
foreach($terms as $key => $value) {
|
foreach($terms as $key => $value) {
|
||||||
$newkey = $key;
|
$newkey = $key;
|
||||||
@ -121,14 +140,14 @@ class SearchPage extends Page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function render_body() {
|
protected function render_body() {
|
||||||
|
$hidden = 'hidden';
|
||||||
$terms = '';
|
$terms = '';
|
||||||
foreach($this->terms as $key => $value) {
|
if($this->terms) {
|
||||||
if(!is_array($value)) {
|
$hidden = '';
|
||||||
$terms .= replace(array('term' => ucfirst($key).": $value",
|
foreach($this->terms as $key => $value) {
|
||||||
'key' => $key,
|
if(!is_array($value)) {
|
||||||
'value' => $value),
|
$value = array($value);
|
||||||
$this->fragments['search_term']);
|
}
|
||||||
} else {
|
|
||||||
foreach($value as $item) {
|
foreach($value as $item) {
|
||||||
$terms .= replace(array('term' => ucfirst($key).": $item",
|
$terms .= replace(array('term' => ucfirst($key).": $item",
|
||||||
'key' => $key,
|
'key' => $key,
|
||||||
@ -137,28 +156,19 @@ class SearchPage extends Page {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print(replace(array('terms' => $terms),
|
$products = 'Inga artiklar hittade.';
|
||||||
$this->fragments['search_form']));
|
if($this->product_hits) {
|
||||||
if($this->terms) {
|
$products = $this->build_product_table($this->product_hits);
|
||||||
$hits = $this->do_search();
|
|
||||||
print(replace(array('title' => 'Sökresultat'),
|
|
||||||
$this->fragments['title']));
|
|
||||||
$result = '';
|
|
||||||
if(isset($hits['user'])) {
|
|
||||||
$result = replace(array('title' => 'Låntagare'),
|
|
||||||
$this->fragments['subtitle']);
|
|
||||||
$result .= $this->build_user_table($hits['user']);
|
|
||||||
}
|
|
||||||
if(isset($hits['product'])) {
|
|
||||||
$result .= replace(array('title' => 'Artiklar'),
|
|
||||||
$this->fragments['subtitle']);
|
|
||||||
$result .= $this->build_product_table($hits['product']);
|
|
||||||
}
|
|
||||||
if(!$result) {
|
|
||||||
$result = 'Inga träffar.';
|
|
||||||
}
|
|
||||||
print($result);
|
|
||||||
}
|
}
|
||||||
|
$users = 'Inga användare hittade.';
|
||||||
|
if($this->user_hits) {
|
||||||
|
$users = $this->build_user_table($this->user_hits);
|
||||||
|
}
|
||||||
|
print(replace(array('terms' => $terms,
|
||||||
|
'hidden' => $hidden,
|
||||||
|
'product_results' => $products,
|
||||||
|
'user_results' => $users),
|
||||||
|
$this->fragments['search_form']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
12
script.js
12
script.js
@ -357,7 +357,7 @@ function loadTemplate(event) {
|
|||||||
|
|
||||||
function saveTemplate(event) {
|
function saveTemplate(event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
var datalist = productDataList(document.querySelector('#productdata'))
|
var datalist = productDataList(document.querySelector('#product-data'))
|
||||||
datalist.push(['template', event.currentTarget.form.template.value])
|
datalist.push(['template', event.currentTarget.form.template.value])
|
||||||
ajaxRequest('savetemplate', datalist, showResult)
|
ajaxRequest('savetemplate', datalist, showResult)
|
||||||
}
|
}
|
||||||
@ -511,3 +511,13 @@ function removeTerm(event) {
|
|||||||
var parent = term.parentNode
|
var parent = term.parentNode
|
||||||
parent.remove(term)
|
parent.remove(term)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function selectFile(event) {
|
||||||
|
var fileinput = document.getElementById("uploadfile")
|
||||||
|
fileinput.click()
|
||||||
|
}
|
||||||
|
|
||||||
|
function showFile(event) {
|
||||||
|
var filefield = document.getElementById("filename")
|
||||||
|
filefield.value = event.currentTarget.files[0].name
|
||||||
|
}
|
||||||
|
78
style.css
78
style.css
@ -28,7 +28,7 @@ textarea {
|
|||||||
padding-left: 2px;
|
padding-left: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
.label, label {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
@ -153,6 +153,82 @@ input[type="text"].newtemplate {
|
|||||||
padding-left: 2px;
|
padding-left: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#uploadfile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
grid-area: header;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product-details {
|
||||||
|
grid-column: col 1 / col 2;
|
||||||
|
grid-row: row 1 / row 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#user-select {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#user-table {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#user-details {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#active-loans {
|
||||||
|
grid-area: third;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inactive-loans {
|
||||||
|
grid-area: fourth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product-checkout {
|
||||||
|
grid-area: third;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product-create {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product-table {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#unseen-products {
|
||||||
|
grid-area: third;
|
||||||
|
}
|
||||||
|
|
||||||
|
#seen-products {
|
||||||
|
grid-area: fourth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inventory-register {
|
||||||
|
grid-area: second;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inventory-overview {
|
||||||
|
grid-area: first;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inventory-history {
|
||||||
|
grid-area: third;
|
||||||
|
}
|
||||||
|
|
||||||
|
#search {
|
||||||
|
grid-column: col 1 / col 3;
|
||||||
|
grid-row: row 1 / row 2;
|
||||||
|
justify-self: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
#hints {
|
||||||
|
grid-column: col 1 / col 3;
|
||||||
|
grid-row: row 2 / row 3;
|
||||||
|
}
|
||||||
|
|
||||||
.qr {
|
.qr {
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
@ -354,6 +354,13 @@ button:disabled, input[type="submit"]:disabled {
|
|||||||
|
|
||||||
#contents {
|
#contents {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(min-content, max-content);
|
grid-template-columns: [col] auto [col] auto [col];
|
||||||
|
grid-template-rows: auto [row] repeat(3, auto [row]);
|
||||||
|
grid-template-areas: "header header"
|
||||||
|
"first second"
|
||||||
|
"third fourth"
|
||||||
|
"fifth sixth";
|
||||||
grid-gap: 1rem;
|
grid-gap: 1rem;
|
||||||
|
justify-items: start;
|
||||||
|
align-items: start;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user