{% extends 'base.html.twig' %}{% block main_content %} <div> <div class="content-header"> <p>Download suchen</p> </div> <div class="content-area"> <form id="register-form" method="post" name="Register" action="/register_user"> <div class="content-form"> <input id="download-search" type="text" name="manual" size="50" placeholder="Geben Sie einen Modellnamen ein" required> </div> </form> </div> <!-- results grid --> <div class="content-results"> <div id="results-grid" class="results-grid"> <div class="row header"> <div>Kurzbeschreibung</div> <div>Hersteller</div> <div>Manualtyp</div> <div>Dok.Nr.</div> <div>Typ</div> </div> <!-- rows injected by JS --> </div> </div> <style> .content-results { margin-top: 20px; padding: 16px; /* cushion inside container */ background: #f9f9f9; border-radius: 8px; } .results-grid { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid #ddd; border-radius: 6px; overflow: hidden; } .results-grid .row { display: contents; /* lets children align to grid columns */ } .results-grid .row > div { padding: 10px; border-bottom: 1px solid #eee; } .results-grid .header > div { background: linear-gradient(to bottom, #888 0%, #fff 100%); font-weight: bold; border-bottom: 2px solid #ccc; } /* zebra striping */ .results-grid .row:nth-child(even) > div { background-color: #EAECED; } .results-grid .row:nth-child(odd):not(.header) > div { background-color: #fff; } </style> <script src="/scripts/autocomplete.js"></script> <script> jQuery(window).ready(function () { $('#download-search').searchAutocomplete({ url: '/search-download-fast', processData: function (data, $input, response) { var $grid = $('#results-grid'); $grid.find('.row:not(.header)').remove(); var items = (data || []).map(function (row) { var ext = ''; if (row.file_name) { var parts = row.file_name.split('.'); if (parts.length > 1) ext = parts.pop(); } // build row var $row = $('<div class="row">'); $row.append($('<div>').text(row.description || "")); $row.append($('<div>').text(row.hersteller || "")); $row.append($('<div>').text("")); // Manualtyp empty $row.append($('<div>').text(row.file_id || "")); $row.append($('<div>').text(ext)); $grid.append($row); return { label: row.description, value: row.description, category: row.hersteller }; }); items.sort(function (a, b) { var c = a.category.localeCompare(b.category); return c !== 0 ? c : a.label.localeCompare(b.label); }); response(items); } }); }); </script> </div>{% endblock %}