diff --git a/html/en/fragments.html b/html/en/fragments.html index 9bca668..7d89ba6 100644 --- a/html/en/fragments.html +++ b/html/en/fragments.html @@ -153,216 +153,225 @@ </div> ¤¤ product_details ¤¤ -<div id="product-details"> - <h2>Product details</h2> - <form id="product-data" - onSubmit="JavaScript:saveProduct(event)" - class="data"> - <input type="hidden" - name="id" - value="¤id¤" /> - <datalist id="field_suggest"></datalist> - <datalist id="tag_suggest"></datalist> - <table> - <tfoot> - <tr> - <td> - </td> - <td> - <button id="save" - class="right"> - Save - </button> - <button id="reset" - class="right"> - Reset - </button> - </td> - </tr> - </tfoot> - <tbody> - <tr> - <td> - Name: - </td> - <td> - <input type="text" - name="name" - value="¤name¤" - onFocus="JavaScript:suggestContent(this)" - list="name_suggest" - autocomplete="off" /> - <datalist id="name_suggest"></datalist> - </td> - </tr> - <tr> - <td> - Manufacturer: - </td> - <td> - <input type="text" - name="brand" - value="¤brand¤" - onFocus="JavaScript:suggestContent(this)" - list="brand_suggest" - autocomplete="off" /> - <datalist id="brand_suggest"></datalist> - </td> - </tr> - <tr> - <td> - Invoice number: - </td> - <td> - <input type="text" - name="invoice" - value="¤invoice¤" /> - </td> - </tr> - <tr id="before_info"> - <td> - Serial number: - </td> - <td> - <input type="text" - name="serial" - value="¤serial¤" /> - </td> - </tr> - ¤info¤ - <tr> - <td> - <input onKeyPress="JavaScript:addField(event)" - onFocus="JavaScript:suggest(this, 'field')" - list="field_suggest" - autocomplete="off" - class="newfield" - type="text" - name="new_key" - placeholder="New field" /> - <button class="minibutton" - onClick="addField(event)"> - + - </button> - </td> - <td> - </td> - </tr> - <tr> - <td> - Tags: - </td> - <td id="tags"> - ¤tags¤ - <input onKeyPress="JavaScript:addTag(event)" - onFocus="JavaScript:suggest(this, 'tag')" - list="tag_suggest" - autocomplete="off" - class="newtag" - type="text" - name="new_tag" - placeholder="New tag" /> - <button class="minibutton" - onClick="JavaScript:addTag(event)"> - + - </button> - </td> - </tr> - </tbody> - </table> - </form> - <form id="product-actions" - class="¤hidden¤"> - <input type="hidden" - name="id" - value="¤id¤" /> - <button onClick="JavaScript:discardProduct(event)"> - Discard product - </button> - <button onClick="JavaScript:toggleService(event)"> - ¤service¤ - </button> - </form> -</div> -<div id="product-attachments" - class="¤hidden¤"> - <h2>Attachments</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="showFile(event)"/> - <input id="filename" - name="filename" - type="text" - placeholder="Choose a file..." - onclick="selectFile(event)" - readonly /> - <button>Upload</button> - </form> +<div class="column"> + <div id="product-details"> + <h2>Product details</h2> + <form id="product-data" + onSubmit="JavaScript:saveProduct(event)" + class="data"> + <input type="hidden" + name="id" + value="¤id¤" /> + <datalist id="field_suggest"></datalist> + <datalist id="tag_suggest"></datalist> + <table> + <tfoot> + <tr> + <td> + </td> + <td> + <button id="save" + class="right"> + Save + </button> + <button id="reset" + class="right"> + Reset + </button> + </td> + </tr> + </tfoot> + <tbody> + <tr> + <td> + Name: + </td> + <td> + <input type="text" + name="name" + value="¤name¤" + onFocus="JavaScript:suggestContent(this)" + list="name_suggest" + autocomplete="off" /> + <datalist id="name_suggest"></datalist> + </td> + </tr> + <tr> + <td> + Manufacturer: + </td> + <td> + <input type="text" + name="brand" + value="¤brand¤" + onFocus="JavaScript:suggestContent(this)" + list="brand_suggest" + autocomplete="off" /> + <datalist id="brand_suggest"></datalist> + </td> + </tr> + <tr> + <td> + Invoice number: + </td> + <td> + <input type="text" + name="invoice" + value="¤invoice¤" /> + </td> + </tr> + <tr id="before_info"> + <td> + Serial number: + </td> + <td> + <input type="text" + name="serial" + value="¤serial¤" /> + </td> + </tr> + ¤info¤ + <tr> + <td> + <input onKeyPress="JavaScript:addField(event)" + onFocus="JavaScript:suggest(this, 'field')" + list="field_suggest" + autocomplete="off" + class="newfield" + type="text" + name="new_key" + placeholder="New field" /> + <button class="minibutton" + onClick="addField(event)"> + + + </button> + </td> + <td> + </td> + </tr> + <tr> + <td> + Tags: + </td> + <td id="tags"> + ¤tags¤ + <input onKeyPress="JavaScript:addTag(event)" + onFocus="JavaScript:suggest(this, 'tag')" + list="tag_suggest" + autocomplete="off" + class="newtag" + type="text" + name="new_tag" + placeholder="New tag" /> + <button class="minibutton" + onClick="JavaScript:addTag(event)"> + + + </button> + </td> + </tr> + </tbody> + </table> + </form> + <form id="product-actions" + class="¤hidden¤"> + <input type="hidden" + name="id" + value="¤id¤" /> + <button onClick="JavaScript:discardProduct(event)"> + Discard product + </button> + <button onClick="JavaScript:toggleService(event)"> + ¤service¤ + </button> + </form> + </div> + <div id="product-attachments" + class="¤hidden¤"> + <h2>Attachments</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="showFile(event)"/> + <input id="filename" + name="filename" + type="text" + placeholder="Choose a file..." + onclick="selectFile(event)" + readonly /> + <button>Upload</button> + </form> + </div> + <div id="product-label" + class="¤label_hidden¤"> + <h2>Label</h2> + ¤label¤ + </div> </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 class="column"> + <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> -</div> -<div id="product-attachments" - class="¤hidden¤"> - <h2>Attachments</h2> - ¤attachments¤ </div> ¤¤ product_details_public ¤¤ @@ -411,53 +420,50 @@ </div> ¤¤ product_meta ¤¤ -<div id="product-history"> - <h2>Product history</h2> - ¤history¤ -</div> -<div id="product-label" - class="¤label_hidden¤"> - <h2>Label</h2> - ¤label¤ -</div> -<div id="product-direct-checkout" class="¤checkout_hidden¤"> - <h2>Check out</h2> - <form class="light" - onSubmit="JavaScript:checkoutProduct(event)"> - <datalist id="user_suggest"></datalist> - <input type="hidden" - name="page" - value="checkout" /> - <input type="hidden" - id="product" - name="product" - value="¤serial¤" /> - <label>Loan length:</label> - ¤loan_presets¤ - <br/> - <label for="end">End date:</label> - <input type="text" - id="end" - onClick="JavaScript:calendar(event)" - name="end" - value="¤end¤" /> - <br/> - <label for="note">Notes:</label> - <textarea id="notes" - name="notes"></textarea> - <br/> - <label for="user">Username:</label> - <input onFocus="JavaScript:suggest(this, 'user')" - type="text" - name="user" - list="user_suggest" - autocomplete="off" - placeholder="Username" - required /> - <button> - Check out - </button> - </form> +<div class="column"> + <div id="product-direct-checkout" class="¤checkout_hidden¤"> + <h2>Check out</h2> + <form class="light" + onSubmit="JavaScript:checkoutProduct(event)"> + <datalist id="user_suggest"></datalist> + <input type="hidden" + name="page" + value="checkout" /> + <input type="hidden" + id="product" + name="product" + value="¤serial¤" /> + <label>Loan length:</label> + ¤loan_presets¤ + <br/> + <label for="end">End date:</label> + <input type="text" + id="end" + onClick="JavaScript:calendar(event)" + name="end" + value="¤end¤" /> + <br/> + <label for="note">Notes:</label> + <textarea id="notes" + name="notes"></textarea> + <br/> + <label for="user">Username:</label> + <input onFocus="JavaScript:suggest(this, 'user')" + type="text" + name="user" + list="user_suggest" + autocomplete="off" + placeholder="Username" + required /> + <button type="submit"> + Check out + </button> + </form> + </div> + <div id="product-history"> + <h2>Product history</h2> + ¤history¤ + </div> </div> ¤¤ attachment_list ¤¤ @@ -555,182 +561,138 @@ </p> ¤¤ user_details ¤¤ -<div id="user-details"> - <form onSubmit="JavaScript:updateUser(event)"> - <input type="hidden" - name="id" - value="¤id¤" /> - <table> - <tfoot> - <tr> - <td> - </td> - <td> - <button class="right" - id="save"> - Save - </button> - <button class="right" - id="reset"> - Reset - </button> - </td> - </tr> - </tfoot> - <tbody> - <tr> - <td> - Name: - </td> - <td> - <input type="text" - value="¤displayname¤" - disabled /> - </td> - </tr> - <tr> - <td> - Username: - </td> - <td> - <input type="text" - name="name" - value="¤name¤" /> - </td> - </tr> - <tr> - <td> - Notes: - </td> - <td> - <textarea name="notes">¤notes¤</textarea> - </td> - </tr> - </tbody> - </table> - </form> - <form method="GET"> - <input type="hidden" - name="action" - value="checkout" /> - <button name="user" - value="¤name¤"> - New loan - </button> - </form> +<div class="column"> + <div id="user-details"> + <form onSubmit="JavaScript:updateUser(event)"> + <input type="hidden" + name="id" + value="¤id¤" /> + <table> + <tfoot> + <tr> + <td> + </td> + <td> + <button class="right" + id="save"> + Save + </button> + <button class="right" + id="reset"> + Reset + </button> + </td> + </tr> + </tfoot> + <tbody> + <tr> + <td> + Name: + </td> + <td> + <input type="text" + value="¤displayname¤" + disabled /> + </td> + </tr> + <tr> + <td> + Username: + </td> + <td> + <input type="text" + name="name" + value="¤name¤" /> + </td> + </tr> + <tr> + <td> + Notes: + </td> + <td> + <textarea name="notes">¤notes¤</textarea> + </td> + </tr> + </tbody> + </table> + </form> + <form method="GET"> + <input type="hidden" + name="action" + value="checkout" /> + <button name="user" + value="¤name¤"> + New loan + </button> + </form> + </div> </div> -<div id="active-loans"> - <h2>Current loans</h2> - ¤active_loans¤ -</div> -<div id="inactive-loans"> - <h2>Old loans</h2> - ¤inactive_loans¤ +<div class="column"> + <div id="active-loans"> + <h2>Current loans</h2> + ¤active_loans¤ + </div> + <div id="inactive-loans"> + <h2>Old loans</h2> + ¤inactive_loans¤ + </div> </div> -¤¤ user_loan_table ¤¤ -<table class="history"> - <thead> +¤¤ user_loan_card ¤¤ +<div class="loan"> + <div class="status ¤status¤"></div> + <table class="data"> <tr> - <th class="status"> - </th> - <th> - Product - </th> - <th> - Serial number - </th> - <th> - Start date - </th> - <th> - End date - </th> - <th> - Started by - </th> - <th> - Misc - </th> + <th>Product:</th> + <td>¤name¤</td> </tr> - </thead> - <tbody class="single"> - ¤rows¤ - </tbody> -</table> - -¤¤ user_loan_table_row ¤¤ -<tr> - <td class="status ¤status¤"> - </td> - <td> - ¤name¤ - </td> - <td> - ¤serial¤ - </td> - <td> - ¤start_date¤ - </td> - <td> - ¤end_date¤ - </td> - <td> - ¤initiator¤ - </td> - <td> - ¤note¤ - </td> -</tr> - -¤¤ product_loan_table ¤¤ -<table class="history"> - <thead> <tr> - <th class="status"> - </th> - <th> - Borrower - </th> - <th> - Start date - </th> - <th> - End date - </th> - <th> - Started by - </th> - <th> - Misc - </th> + <th>Serial:</th> + <td>¤serial¤</td> </tr> - </thead> - <tbody class="single"> - ¤rows¤ - </tbody> -</table> - -¤¤ product_loan_table_row ¤¤ -<tr> - <td class="status ¤status¤"> - </td> - <td> - ¤name¤ - </td> - <td> - ¤start_date¤ - </td> - <td> - ¤end_date¤ - </td> - <td> - ¤initiator¤ - </td> - <td> + <tr> + <th>Loan created by:</th> + <td>¤initiator¤</td> + </tr> + <tr> + <th>Validity:</th> + <td>¤start_date¤ - ¤end_date¤</td> + </tr> + <tr class="¤hidden¤"> + <th>Notes:</th> + <td class="notes">¤notes¤</td> + </tr> + </table> + <div class="misc"> ¤misc¤ - </td> -</tr> + </div> +</div> + +¤¤ product_loan_card ¤¤ +<div class="loan"> + <div class="status ¤status¤"></div> + <table class="data"> + <tr> + <th>Loaned to:</th> + <td>¤name¤</td> + </tr> + <tr> + <th>Loan created by:</th> + <td>¤initiator¤</td> + </tr> + <tr> + <th>Validity:</th> + <td>¤start_date¤ - ¤end_date¤</td> + </tr> + <tr class="¤hidden¤"> + <th>Notes:</th> + <td class="notes">¤notes¤</td> + </tr> + </table> + <div class="misc"> + ¤misc¤ + </div> +</div> ¤¤ public_user_details ¤¤ <div id="public-message" class="¤hidden¤"> @@ -809,105 +771,110 @@ </form> ¤¤ checkout_page ¤¤ -<div id="user-select"> - <h2>Choose borrower</h2> - <form class="dark" - action="./" - method="GET"> - <datalist id="user_suggest"></datalist> - <input type="hidden" - name="page" - value="checkout" /> - <div> - <label for="user"> - Username: - </label> - <input onFocus="JavaScript:suggest(this, 'user')" - type="text" +<div class="column"> + <div id="user-select"> + <h2>Choose borrower</h2> + <form class="dark" + action="./" + method="GET"> + <datalist id="user_suggest"></datalist> + <input type="hidden" + name="page" + value="checkout" /> + <div> + <label for="user"> + Username: + </label> + <input onFocus="JavaScript:suggest(this, 'user')" + type="text" + name="user" + id="user" + list="user_suggest" + autocomplete="off" + placeholder="Username" + value="¤user¤" /> + <button type="submit" > + Find + </button> + </div> + <div> + <label for="email"> + E-mail: + </label> + <input type="text" + name="email" + id="email" + autocomplete="off" + placeholder="E-mail" + value="¤email¤" /> + </div> + <div> + <label for="displayname"> + Name: + </label> + <input type="text" + name="displayname" + id="displayname" + value="¤displayname¤" + disabled /> + </div> + <div> + <label for="user-notes"> + Notes: + </label> + <textarea name="notes" + id="user-notes" + disabled>¤notes¤</textarea> + </div> + </form> + </div> + <div id="product-checkout"> + <h2>Check out product</h2> + <form class="light" + onSubmit="JavaScript:checkoutProduct(event)"> + <input type="hidden" + name="page" + value="checkout" /> + <input type="hidden" name="user" - id="user" - list="user_suggest" - autocomplete="off" - placeholder="Username" - value="¤user¤" /> - <button type="submit" > - Find + value="¤user¤"> + <label>Loan length:</label> + ¤loan_presets¤ + <br/> + <label for="end">End date:</label> + <input type="text" + id="end" + onClick="JavaScript:calendar(event)" + name="end" + value="¤end¤" + ¤disabled¤ /> + <br/> + <label for="loan-notes">Notes:</label> + <textarea id="loan-notes" + name="notes" + ¤disabled¤></textarea> + <br/> + <label for="product">Product:</label> + <input type="text" + id="product" + name="product" + placeholder="Serial number" + required + ¤disabled¤ /> + <button> + Check out </button> - </div> - <div> - <label for="email"> - E-mail: - </label> - <input type="text" - name="email" - id="email" - autocomplete="off" - placeholder="E-mail" - value="¤email¤" /> - </div> - <div> - <label for="displayname"> - Name: - </label> - <input type="text" - name="displayname" - id="displayname" - value="¤displayname¤" - disabled /> - </div> - <div> - <label for="user-notes"> - Notes: - </label> - <textarea name="notes" - id="user-notes" - disabled>¤notes¤</textarea> - </div> - </form> + </form> + </div> </div> -<div id="product-checkout"> - <h2>Check out product</h2> - <form class="light" - onSubmit="JavaScript:checkoutProduct(event)"> - <input type="hidden" - name="page" - value="checkout" /> - <input type="hidden" - name="user" - value="¤user¤"> - <label>Loan length:</label> - ¤loan_presets¤ - <br/> - <label for="end">End date:</label> - <input type="text" - id="end" - onClick="JavaScript:calendar(event)" - name="end" - value="¤end¤" - ¤disabled¤ /> - <br/> - <label for="loan-notes">Notes:</label> - <textarea id="loan-notes" - name="notes" - ¤disabled¤></textarea> - <br/> - <label for="product">Product:</label> - <input type="text" - id="product" - name="product" - placeholder="Serial number" - required - ¤disabled¤ /> - <button> - Check out - </button> - </form> +<div class="column"> ¤subtitle¤ ¤loan_table¤ </div> ¤¤ loan_preset_button ¤¤ -<button onClick="JavaScript:loanLength(event, ¤count¤, '¤type¤')"> +<button onClick="JavaScript:loanLength(event, ¤count¤, '¤type¤')" + type="button"> ¤description¤ </button> diff --git a/html/sv/fragments.html b/html/sv/fragments.html index 37012f3..a12442a 100644 --- a/html/sv/fragments.html +++ b/html/sv/fragments.html @@ -153,216 +153,225 @@ </div> ¤¤ product_details ¤¤ -<div id="product-details"> - <h2>Artikeldata</h2> - <form id="product-data" - onSubmit="JavaScript:saveProduct(event)" - class="data"> - <input type="hidden" - name="id" - value="¤id¤" /> - <datalist id="field_suggest"></datalist> - <datalist id="tag_suggest"></datalist> - <table> - <tfoot> - <tr> - <td> - </td> - <td> - <button id="save" - class="right"> - Spara - </button> - <button id="reset" - class="right"> - Återställ - </button> - </td> - </tr> - </tfoot> - <tbody> - <tr> - <td> - Namn: - </td> - <td> - <input type="text" - name="name" - value="¤name¤" - onFocus="JavaScript:suggestContent(this)" - list="name_suggest" - autocomplete="off" /> - <datalist id="name_suggest"></datalist> - </td> - </tr> - <tr> - <td> - Tillverkare: - </td> - <td> - <input type="text" - name="brand" - value="¤brand¤" - onFocus="JavaScript:suggestContent(this)" - list="brand_suggest" - autocomplete="off" /> - <datalist id="brand_suggest"></datalist> - </td> - </tr> - <tr> - <td> - Fakturanummer: - </td> - <td> - <input type="text" - name="invoice" - value="¤invoice¤" /> - </td> - </tr> - <tr id="before_info"> - <td> - Serienummer: - </td> - <td> - <input type="text" - name="serial" - value="¤serial¤" /> - </td> - </tr> - ¤info¤ - <tr> - <td> - <input onKeyPress="JavaScript:addField(event)" - onFocus="JavaScript:suggest(this, 'field')" - list="field_suggest" - autocomplete="off" - class="newfield" - type="text" - name="new_key" - placeholder="Nytt fält" /> - <button class="minibutton" - onClick="addField(event)"> - + - </button> - </td> - <td> - </td> - </tr> - <tr> - <td> - Taggar: - </td> - <td id="tags"> - ¤tags¤ - <input onKeyPress="JavaScript:addTag(event)" - onFocus="JavaScript:suggest(this, 'tag')" - list="tag_suggest" - autocomplete="off" - class="newtag" - type="text" - name="new_tag" - placeholder="Ny tagg" /> - <button class="minibutton" - onClick="JavaScript:addTag(event)"> - + - </button> - </td> - </tr> - </tbody> - </table> - </form> - <form id="product-actions" - class="¤hidden¤"> - <input type="hidden" - name="id" - value="¤id¤" /> - <button onClick="JavaScript:discardProduct(event)"> - Skrota artikel - </button> - <button onClick="JavaScript:toggleService(event)"> - ¤service¤ - </button> - </form> -</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="showFile(event)"/> - <input id="filename" - name="filename" - type="text" - placeholder="Välj en fil..." - onclick="selectFile(event)" - readonly /> - <button>Ladda upp</button> - </form> +<div class="column"> + <div id="product-details"> + <h2>Artikeldata</h2> + <form id="product-data" + onSubmit="JavaScript:saveProduct(event)" + class="data"> + <input type="hidden" + name="id" + value="¤id¤" /> + <datalist id="field_suggest"></datalist> + <datalist id="tag_suggest"></datalist> + <table> + <tfoot> + <tr> + <td> + </td> + <td> + <button id="save" + class="right"> + Spara + </button> + <button id="reset" + class="right"> + Återställ + </button> + </td> + </tr> + </tfoot> + <tbody> + <tr> + <td> + Namn: + </td> + <td> + <input type="text" + name="name" + value="¤name¤" + onFocus="JavaScript:suggestContent(this)" + list="name_suggest" + autocomplete="off" /> + <datalist id="name_suggest"></datalist> + </td> + </tr> + <tr> + <td> + Tillverkare: + </td> + <td> + <input type="text" + name="brand" + value="¤brand¤" + onFocus="JavaScript:suggestContent(this)" + list="brand_suggest" + autocomplete="off" /> + <datalist id="brand_suggest"></datalist> + </td> + </tr> + <tr> + <td> + Fakturanummer: + </td> + <td> + <input type="text" + name="invoice" + value="¤invoice¤" /> + </td> + </tr> + <tr id="before_info"> + <td> + Serienummer: + </td> + <td> + <input type="text" + name="serial" + value="¤serial¤" /> + </td> + </tr> + ¤info¤ + <tr> + <td> + <input onKeyPress="JavaScript:addField(event)" + onFocus="JavaScript:suggest(this, 'field')" + list="field_suggest" + autocomplete="off" + class="newfield" + type="text" + name="new_key" + placeholder="Nytt fält" /> + <button class="minibutton" + onClick="addField(event)"> + + + </button> + </td> + <td> + </td> + </tr> + <tr> + <td> + Taggar: + </td> + <td id="tags"> + ¤tags¤ + <input onKeyPress="JavaScript:addTag(event)" + onFocus="JavaScript:suggest(this, 'tag')" + list="tag_suggest" + autocomplete="off" + class="newtag" + type="text" + name="new_tag" + placeholder="Ny tagg" /> + <button class="minibutton" + onClick="JavaScript:addTag(event)"> + + + </button> + </td> + </tr> + </tbody> + </table> + </form> + <form id="product-actions" + class="¤hidden¤"> + <input type="hidden" + name="id" + value="¤id¤" /> + <button onClick="JavaScript:discardProduct(event)"> + Skrota artikel + </button> + <button onClick="JavaScript:toggleService(event)"> + ¤service¤ + </button> + </form> + </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="showFile(event)"/> + <input id="filename" + name="filename" + type="text" + placeholder="Välj en fil..." + onclick="selectFile(event)" + readonly /> + <button>Ladda upp</button> + </form> + </div> + <div id="product-label" + class="¤label_hidden¤"> + <h2>Etikett</h2> + ¤label¤ + </div> </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 class="column"> + <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> -</div> -<div id="product-attachments" - class="¤hidden¤"> - <h2>Bilagor</h2> - ¤attachments¤ </div> ¤¤ product_details_public ¤¤ @@ -411,53 +420,50 @@ </div> ¤¤ product_meta ¤¤ -<div id="product-history"> - <h2>Artikelhistorik</h2> - ¤history¤ -</div> -<div id="product-label" - class="¤label_hidden¤"> - <h2>Etikett</h2> - ¤label¤ -</div> -<div id="product-direct-checkout" class="¤checkout_hidden¤"> - <h2>Låna ut</h2> - <form class="light" - onSubmit="JavaScript:checkoutProduct(event)"> - <datalist id="user_suggest"></datalist> - <input type="hidden" - name="page" - value="checkout" /> - <input type="hidden" - id="product" - name="product" - value="¤serial¤" /> - <label>Löptid:</label> - ¤loan_presets¤ - <br/> - <label for="end">Slutdatum:</label> - <input type="text" - id="end" - onClick="JavaScript:calendar(event)" - name="end" - value="¤end¤" /> - <br/> - <label for="note">Anteckningar:</label> - <textarea id="notes" - name="notes"></textarea> - <br/> - <label for="user">Användarnamn:</label> - <input onFocus="JavaScript:suggest(this, 'user')" - type="text" - name="user" - list="user_suggest" - autocomplete="off" - placeholder="Användarnamn" - required /> - <button> - Låna ut - </button> - </form> +<div class="column"> + <div id="product-direct-checkout" class="¤checkout_hidden¤"> + <h2>Låna ut</h2> + <form class="light" + onSubmit="JavaScript:checkoutProduct(event)"> + <datalist id="user_suggest"></datalist> + <input type="hidden" + name="page" + value="checkout" /> + <input type="hidden" + id="product" + name="product" + value="¤serial¤" /> + <label>Löptid:</label> + ¤loan_presets¤ + <br/> + <label for="end">Slutdatum:</label> + <input type="text" + id="end" + onClick="JavaScript:calendar(event)" + name="end" + value="¤end¤" /> + <br/> + <label for="note">Anteckningar:</label> + <textarea id="notes" + name="notes"></textarea> + <br/> + <label for="user">Användarnamn:</label> + <input onFocus="JavaScript:suggest(this, 'user')" + type="text" + name="user" + list="user_suggest" + autocomplete="off" + placeholder="Användarnamn" + required /> + <button type="submit"> + Låna ut + </button> + </form> + </div> + <div id="product-history"> + <h2>Artikelhistorik</h2> + ¤history¤ + </div> </div> ¤¤ attachment_list ¤¤ @@ -555,182 +561,138 @@ </p> ¤¤ user_details ¤¤ -<div id="user-details"> - <form onSubmit="JavaScript:updateUser(event)"> - <input type="hidden" - name="id" - value="¤id¤" /> - <table> - <tfoot> - <tr> - <td> - </td> - <td> - <button class="right" - id="save"> - Spara - </button> - <button class="right" - id="reset"> - Återställ - </button> - </td> - </tr> - </tfoot> - <tbody> - <tr> - <td> - Namn: - </td> - <td> - <input type="text" - value="¤displayname¤" - disabled /> - </td> - </tr> - <tr> - <td> - Användarnamn: - </td> - <td> - <input type="text" - name="name" - value="¤name¤" /> - </td> - </tr> - <tr> - <td> - Anteckningar: - </td> - <td> - <textarea name="notes">¤notes¤</textarea> - </td> - </tr> - </tbody> - </table> - </form> - <form method="GET"> - <input type="hidden" - name="action" - value="checkout" /> - <button name="user" - value="¤name¤"> - Nytt lån - </button> - </form> +<div class="column"> + <div id="user-details"> + <form onSubmit="JavaScript:updateUser(event)"> + <input type="hidden" + name="id" + value="¤id¤" /> + <table> + <tfoot> + <tr> + <td> + </td> + <td> + <button class="right" + id="save"> + Spara + </button> + <button class="right" + id="reset"> + Återställ + </button> + </td> + </tr> + </tfoot> + <tbody> + <tr> + <td> + Namn: + </td> + <td> + <input type="text" + value="¤displayname¤" + disabled /> + </td> + </tr> + <tr> + <td> + Användarnamn: + </td> + <td> + <input type="text" + name="name" + value="¤name¤" /> + </td> + </tr> + <tr> + <td> + Anteckningar: + </td> + <td> + <textarea name="notes">¤notes¤</textarea> + </td> + </tr> + </tbody> + </table> + </form> + <form method="GET"> + <input type="hidden" + name="action" + value="checkout" /> + <button name="user" + value="¤name¤"> + Nytt lån + </button> + </form> + </div> </div> -<div id="active-loans"> - <h2>Aktuella lån</h2> - ¤active_loans¤ -</div> -<div id="inactive-loans"> - <h2>Gamla lån</h2> - ¤inactive_loans¤ +<div class="column"> + <div id="active-loans"> + <h2>Aktuella lån</h2> + ¤active_loans¤ + </div> + <div id="inactive-loans"> + <h2>Gamla lån</h2> + ¤inactive_loans¤ + </div> </div> -¤¤ user_loan_table ¤¤ -<table class="history"> - <thead> +¤¤ user_loan_card ¤¤ +<div class="loan"> + <div class="status ¤status¤"></div> + <table class="data"> <tr> - <th class="status"> - </th> - <th> - Artikel - </th> - <th> - Serienummer - </th> - <th> - Startdatum - </th> - <th> - Slutdatum - </th> - <th> - Startat av - </th> - <th> - Övrigt - </th> + <th>Artikel:</th> + <td>¤name¤</td> </tr> - </thead> - <tbody class="single"> - ¤rows¤ - </tbody> -</table> - -¤¤ user_loan_table_row ¤¤ -<tr> - <td class="status ¤status¤"> - </td> - <td> - ¤name¤ - </td> - <td> - ¤serial¤ - </td> - <td> - ¤start_date¤ - </td> - <td> - ¤end_date¤ - </td> - <td> - ¤initiator¤ - </td> - <td> - ¤note¤ - </td> -</tr> - -¤¤ product_loan_table ¤¤ -<table class="history"> - <thead> <tr> - <th class="status"> - </th> - <th> - Låntagare - </th> - <th> - Startdatum - </th> - <th> - Slutdatum - </th> - <th> - Startat av - </th> - <th> - Övrigt - </th> + <th>Serienummer:</th> + <td>¤serial¤</td> </tr> - </thead> - <tbody class="single"> - ¤rows¤ - </tbody> -</table> - -¤¤ product_loan_table_row ¤¤ -<tr> - <td class="status ¤status¤"> - </td> - <td> - ¤name¤ - </td> - <td> - ¤start_date¤ - </td> - <td> - ¤end_date¤ - </td> - <td> - ¤initiator¤ - </td> - <td> + <tr> + <th>Lån skapat av:</th> + <td>¤initiator¤</td> + </tr> + <tr> + <th>Löptid:</th> + <td>¤start_date¤ - ¤end_date¤</td> + </tr> + <tr class="¤hidden¤"> + <th>Anteckningar:</th> + <td class="notes">¤notes¤</td> + </tr> + </table> + <div class="misc"> ¤misc¤ - </td> -</tr> + </div> +</div> + +¤¤ product_loan_card ¤¤ +<div class="loan"> + <div class="status ¤status¤"></div> + <table class="data"> + <tr> + <th>Utlånad till:</th> + <td>¤name¤</td> + </tr> + <tr> + <th>Lån skapat av:</th> + <td>¤initiator¤</td> + </tr> + <tr> + <th>Löptid:</th> + <td>¤start_date¤ - ¤end_date¤</td> + </tr> + <tr class="¤hidden¤"> + <th>Anteckningar:</th> + <td class="notes">¤notes¤</td> + </tr> + </table> + <div class="misc"> + ¤misc¤ + </div> +</div> ¤¤ public_user_details ¤¤ <div id="public-message" class="¤hidden¤"> @@ -808,107 +770,111 @@ </button> </form> - ¤¤ checkout_page ¤¤ -<div id="user-select"> - <h2>Välj låntagare</h2> - <form class="dark" - action="./" - method="GET"> - <datalist id="user_suggest"></datalist> - <input type="hidden" - name="page" - value="checkout" /> - <div> - <label for="user"> - Användarnamn: - </label> - <input onFocus="JavaScript:suggest(this, 'user')" - type="text" +<div class="column"> + <div id="user-select"> + <h2>Välj låntagare</h2> + <form class="dark" + action="./" + method="GET"> + <datalist id="user_suggest"></datalist> + <input type="hidden" + name="page" + value="checkout" /> + <div> + <label for="user"> + Användarnamn: + </label> + <input onFocus="JavaScript:suggest(this, 'user')" + type="text" + name="user" + id="user" + list="user_suggest" + autocomplete="off" + placeholder="Användarnamn" + value="¤user¤" /> + <button type="submit" > + Välj + </button> + </div> + <div> + <label for="email"> + E-post: + </label> + <input type="text" + name="email" + id="email" + autocomplete="off" + placeholder="E-post" + value="¤email¤" /> + </div> + <div> + <label for="displayname"> + Namn: + </label> + <input type="text" + name="displayname" + id="displayname" + value="¤displayname¤" + disabled /> + </div> + <div> + <label for="user-notes"> + Anteckningar: + </label> + <textarea name="notes" + id="user-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" - id="user" - list="user_suggest" - autocomplete="off" - placeholder="Användarnamn" - value="¤user¤" /> - <button type="submit" > - Välj + value="¤user¤"> + <label>Löptid:</label> + ¤loan_presets¤ + <br/> + <label for="end">Slutdatum:</label> + <input type="text" + id="end" + onClick="JavaScript:calendar(event)" + name="end" + value="¤end¤" + ¤disabled¤ /> + <br/> + <label for="loan-notes">Anteckningar:</label> + <textarea id="loan-notes" + name="notes" + ¤disabled¤></textarea> + <br/> + <label for="product">Artikel:</label> + <input type="text" + id="product" + name="product" + placeholder="Serienummer" + required + ¤disabled¤ /> + <button> + Låna ut </button> - </div> - <div> - <label for="email"> - E-post: - </label> - <input type="text" - name="email" - id="email" - autocomplete="off" - placeholder="E-post" - value="¤email¤" /> - </div> - <div> - <label for="displayname"> - Namn: - </label> - <input type="text" - name="displayname" - id="displayname" - value="¤displayname¤" - disabled /> - </div> - <div> - <label for="user-notes"> - Anteckningar: - </label> - <textarea name="notes" - id="user-notes" - disabled>¤notes¤</textarea> - </div> - </form> + </form> + </div> </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" - value="¤user¤"> - <label>Löptid:</label> - ¤loan_presets¤ - <br/> - <label for="end">Slutdatum:</label> - <input type="text" - id="end" - onClick="JavaScript:calendar(event)" - name="end" - value="¤end¤" - ¤disabled¤ /> - <br/> - <label for="loan-notes">Anteckningar:</label> - <textarea id="loan-notes" - name="notes" - ¤disabled¤></textarea> - <br/> - <label for="product">Artikel:</label> - <input type="text" - id="product" - name="product" - placeholder="Serienummer" - required - ¤disabled¤ /> - <button> - Låna ut - </button> - </form> - ¤subtitle¤ - ¤loan_table¤ +<div class="column"> + ¤subtitle¤ + ¤loan_table¤ </div> ¤¤ loan_preset_button ¤¤ -<button onClick="JavaScript:loanLength(event, ¤count¤, '¤type¤')"> +<button onClick="JavaScript:loanLength(event, ¤count¤, '¤type¤')" + type="button"> ¤description¤ </button> diff --git a/include/NewPage.php b/include/NewPage.php index b84db33..b52fc2e 100644 --- a/include/NewPage.php +++ b/include/NewPage.php @@ -38,18 +38,19 @@ class NewPage extends Page { $this->fragments['tag']); } } - $out = replace(array('template' => $template), - $this->fragments['template_management']); - $out .= replace(array('id' => '', - 'name' => '', - 'brand' => '', - 'serial' => '', - 'invoice' => '', - 'tags' => $tags, - 'info' => $fields, - 'label' => '', - 'hidden' => 'hidden'), - $this->fragments['product_details']); + $out = replace(array('id' => '', + 'name' => '', + 'brand' => '', + 'serial' => '', + 'invoice' => '', + 'tags' => $tags, + 'info' => $fields, + 'label' => '', + 'label_hidden' => 'hidden', + 'hidden' => 'hidden'), + $this->fragments['product_details']); + $out .= replace(array('template' => $template), + $this->fragments['template_management']); return $out; } } diff --git a/include/Page.php b/include/Page.php index d3aa795..7f0b5cf 100644 --- a/include/Page.php +++ b/include/Page.php @@ -233,10 +233,15 @@ abstract class Page extends Responder { 'page' => 'users'), $this->fragments['item_link']); } - $note = ''; + $notes = $loan->get_notes(); + $hidden = 'hidden'; + if($notes) { + $hidden = ''; + } + $misc = ''; if($status !== 'inactive_loan') { $extend = format_date($loan->get_endtime()); - $note = replace(array('id' => $product->get_id(), + $misc = replace(array('id' => $product->get_id(), 'end_new' => $extend), $this->fragments['loan_extend_form']); } @@ -251,11 +256,12 @@ abstract class Page extends Responder { 'start_date' => format_date($start), 'end_date' => format_date($end), 'initiator' => $initiator_name, - 'note' => $note), - $this->fragments['user_loan_table_row']); + 'hidden' => $hidden, + 'notes' => $notes, + 'misc' => $misc), + $this->fragments['user_loan_card']); } - return replace(array('rows' => $rows), - $this->fragments['user_loan_table']); + return $rows; } final protected function build_seen_table($products, $inventory) { diff --git a/include/ProductPage.php b/include/ProductPage.php index 3275680..d563acb 100644 --- a/include/ProductPage.php +++ b/include/ProductPage.php @@ -112,14 +112,18 @@ class ProductPage extends Page { $rows = ''; foreach($history as $event) { $status = $event->get_status(); - $itemlink = 'Service'; + $userlink = 'Service'; $start = $event->get_starttime(); $end = $event->get_returntime(); $notes = $event->get_notes(); + $hidden = 'hidden'; + if($notes) { + $hidden = ''; + } $initiator = $event->get_initiator(); - $initiator_name = i18n('Unknown'); + $initiator_link = i18n('Unknown'); if($initiator) { - $initiator_name = replace( + $initiator_link = replace( array('id' => $initiator->get_id(), 'name' => $initiator->get_name(), 'page' => 'users'), @@ -129,7 +133,7 @@ class ProductPage extends Page { if($event instanceof Loan) { $user = $event->get_user(); $product = $event->get_product(); - $itemlink = replace(array('id' => $user->get_id(), + $userlink = replace(array('id' => $user->get_id(), 'name' => $user->get_name(), 'page' => 'users'), $this->fragments['item_link']); @@ -142,16 +146,16 @@ class ProductPage extends Page { } } $rows .= replace(array('status' => $status, - 'name' => $itemlink, + 'name' => $userlink, 'start_date' => format_date($start), 'end_date' => format_date($end), - 'initiator' => $initiator_name, + 'initiator' => $initiator_link, + 'hidden' => $hidden, 'notes' => $notes, 'misc' => $misc), - $this->fragments['product_loan_table_row']); + $this->fragments['product_loan_card']); } - return replace(array('rows' => $rows), - $this->fragments['product_loan_table']); + return $rows; } diff --git a/style.css b/style.css index fb253cd..5e5ca13 100644 --- a/style.css +++ b/style.css @@ -10,6 +10,18 @@ ul { padding-left: 15px; } +#contents { + display: grid; + 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"; + gap: 1rem; + justify-items: start; + align-items: start; +} + #message { position: absolute; top: 5px; @@ -54,7 +66,7 @@ ul { } input[type="text"].narrow { - width: 6em; + width: 6rem; } .hidden { @@ -65,6 +77,40 @@ form { margin-bottom: 5px; } +.column { + display: flex; + flex-direction: column; + align-items: stretch; + gap: 1rem; +} + +.loan { + display: grid; + grid-template-columns: 5px 1fr; + grid-template-rows: auto auto; + grid-auto-rows: auto; + background-color: #d7e0eb; + margin-bottom: 1rem; + margin-top: 1rem; +} + +.loan .status { + grid-row: 1 / -1; + grid-column: 1 / 2; +} + +.loan .data { + grid-row: 1; + grid-column: 2; +} + +.loan .misc { + grid-row: 2; + grid-column: 2; + justify-self: end; + padding: 2px 5px; +} + table { border-collapse: collapse; } @@ -76,31 +122,35 @@ td, th { padding: 2px 5px; } -td.available { - background-color: #a3a86b; +td.notes { + white-space: pre-wrap; } -td.status, th.status { +.status { width: 5px; } -td.on_loan, td.active_loan { +.status.available { + background-color: #a3a86b; +} + +.status.on_loan, .status.active_loan { background-color: #acdee6; } -td.inactive_loan { +.status.inactive_loan { background-color: #cdebf0; } -td.overdue, td.overdue_loan { +.status.overdue, .status.overdue_loan { background-color: #d95e00; } -td.discarded { +.status.discarded { background-color: #a0a0a0; } -td.service, td.active_service, td.inactive_service { +.status.service, .status.active_service, .status.inactive_service { background-color: #e7e08d; } @@ -142,15 +192,15 @@ input:disabled, textarea:disabled { input[type="text"].newtag, input[type="text"].newfield { - width: 11.5em; + width: 10.5rem; } tbody.fixedwidth > tr > td { - min-width: 11.5em; + min-width: 10.5rem; } input[type="text"].newtemplate { - width: 8em; + width: 8rem; } .minibutton { @@ -188,43 +238,14 @@ 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; -} - #public-message { grid-area: first / first / second / second; } -#product-checkout { - grid-area: third; -} - -#product-create { - grid-area: first; -} - #product-table { grid-area: first; } diff --git a/template.css b/template.css index 2afbaf7..57a6ff3 100644 --- a/template.css +++ b/template.css @@ -351,16 +351,3 @@ button:disabled, input[type="submit"]:disabled { width: calc(100% - 8px); } } - -#contents { - display: grid; - 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; - justify-items: start; - align-items: start; -}