$(document).ready(function() { function render_item_link(data) { // render funtion to create link to Item view page if (data === null) { return data; } var url = $SCRIPT_ROOT + "/inventory/items/view/" + data; return '<a href="' + url + '">' + data + "</a>"; } // scroll up to avoid having the form input // hidden under the navbar if (location.hash == "#body") { scrollBy(0, -100); } // Showdown extension to render links to JIRA TAG project var jira_tag = { type: "lang", regex: /(TAG-\d+)/g, replace: "[$1](https://jira.esss.lu.se/browse/$1)" }; // Register the extension showdown.extension("jira_tag", jira_tag); var converter = new showdown.Converter({ extensions: ["jira_tag"], simplifiedAutoLink: true }); if ($("#commentLivePreview").length) { // Render comment when editing one $("#commentLivePreview").html(converter.makeHtml($("#body").val())); // Live rendering of markdown comment to HTML $("#body").keyup(function(event) { var comment = $(this).val(); $("#commentLivePreview").html(converter.makeHtml(comment)); }); } // render existing comments to HTML $(".item-comment").each(function() { var raw = $(this).html(); $(this).html(converter.makeHtml(raw)); }); // export all items to excel file function download_excel() { var $modal = $("#downloadExcelModal"); $.ajax({ url: $SCRIPT_ROOT + "/inventory/items/_generate_excel_file", method: "GET", success: function(data, status, request) { $modal.modal({ backdrop: "static", keyboard: false }); status_url = request.getResponseHeader("Location"); check_job_status(status_url, $modal); }, error: function(jqXHR, textStatus, errorThrown) { $modal.modal("hide"); flash_alert(JSON.parse(jqXHR.responseText).message, "danger", false); } }); } var items_table = $("#items_table").DataTable({ dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-3 text-right'><'col-sm-12 col-md-3'f>>" + "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", ajax: { url: $SCRIPT_ROOT + "/inventory/_retrieve_items", type: "POST" }, processing: true, serverSide: true, searchDelay: 500, stateSave: true, orderMulti: false, aaSorting: [], pagingType: "full_numbers", pageLength: 20, lengthMenu: [ [20, 50, 100], [20, 50, 100] ], columns: [ { data: "ics_id", render: function(data, type, row) { return render_item_link(data); } }, { data: "created_at" }, { data: "updated_at" }, { data: "serial_number" }, { data: "quantity" }, { data: "manufacturer" }, { data: "model" }, { data: "location" }, { data: "status" }, { data: "parent", render: function(data, type, row) { return render_item_link(data); } } ] }); if ($("#items_table").length) { new $.fn.dataTable.Buttons(items_table, { buttons: [ { text: '<span class="oi oi-data-transfer-download" title="Export to excel file" aria-hidden="true"></span> Excel', className: "btn-outline-secondary", action: function(e, dt, node, conf) { download_excel(); } }, { text: "Reset", className: "btn-outline-secondary", action: function(e, dt, node, conf) { dt.state.clear(); dt.search("") .order([]) .draw(); } } ] }); items_table .buttons() .container() .appendTo("#items_table_wrapper .col-md-3:eq(0)"); } });