From 69362ab960f26ae97e083d3b832f8ff6388da61d Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 20 Jan 2021 18:04:08 +1100 Subject: [PATCH] Display link column in part table --- .../static/script/inventree/tables.js | 26 +++++++++++++++++-- InvenTree/templates/js/part.js | 14 ++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/InvenTree/InvenTree/static/script/inventree/tables.js b/InvenTree/InvenTree/static/script/inventree/tables.js index a40eb37285..21f9160758 100644 --- a/InvenTree/InvenTree/static/script/inventree/tables.js +++ b/InvenTree/InvenTree/static/script/inventree/tables.js @@ -8,11 +8,33 @@ function deleteButton(url, text='Delete') { } -function renderLink(text, url) { - if (text === '' || url === '') { +function renderLink(text, url, options={}) { + if (url == null || url === '') { return text; } + var max_length = options.max_length || -1; + + var remove_http = options.remove_http || false; + + if (remove_http) { + if (text.startsWith('http://')) { + text = text.slice(7); + } else if (text.startsWith('https://')) { + text = text.slice(8); + } + } + + // Shorten the displayed length if required + if ((max_length > 0) && (text.length > max_length)) { + var slice_length = (max_length - 3) / 2; + + var text_start = text.slice(0, slice_length); + var text_end = text.slice(-slice_length); + + text = `${text_start}...${text_end}`; + } + return '' + text + ''; } diff --git a/InvenTree/templates/js/part.js b/InvenTree/templates/js/part.js index e0f6a491f6..c9f59ab4eb 100644 --- a/InvenTree/templates/js/part.js +++ b/InvenTree/templates/js/part.js @@ -446,6 +446,20 @@ function loadPartTable(table, url, options={}) { } }); + columns.push({ + field: 'link', + title: '{% trans "Link" %}', + formatter: function(value, row, index, field) { + return renderLink( + value, value, + { + max_length: 32, + remove_http: true, + } + ); + } + }); + $(table).inventreeTable({ url: url, sortName: 'name',