diff --git a/.eslintrc.yml b/.eslintrc.yml index 3040a512c2..58952de736 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -7,6 +7,7 @@ env: extends: 'eslint:recommended' parserOptions: ecmaVersion: 12 + sourceType: module rules: accessor-pairs: error array-bracket-newline: 'off' diff --git a/InvenTree/templates/js/dynamic/inventree.js b/InvenTree/templates/js/dynamic/inventree.js index acfd57762c..a93d6efc0f 100644 --- a/InvenTree/templates/js/dynamic/inventree.js +++ b/InvenTree/templates/js/dynamic/inventree.js @@ -1,6 +1,6 @@ {% load inventree_extras %} -function attachClipboard(selector, containerselector, textElement) { +export function attachClipboard(selector, containerselector, textElement) { // set container if (containerselector){ containerselector = document.getElementById(containerselector); @@ -28,7 +28,7 @@ function attachClipboard(selector, containerselector, textElement) { } -function inventreeDocReady() { +export function inventreeDocReady() { /* Run this function when the HTML document is loaded. * This will be called for every page that extends "base.html" */ @@ -132,7 +132,7 @@ function inventreeDocReady() { }); } -function isFileTransfer(transfer) { +export function isFileTransfer(transfer) { /* Determine if a transfer (e.g. drag-and-drop) is a file transfer */ @@ -140,27 +140,7 @@ function isFileTransfer(transfer) { } -function isOnlineTransfer(transfer) { - /* Determine if a drag-and-drop transfer is from another website. - * e.g. dragged from another browser window - */ - - return transfer.items.length > 0; -} - - -function getImageUrlFromTransfer(transfer) { - /* Extract external image URL from a drag-and-dropped image - */ - - var url = transfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]; - - console.log('Image URL: ' + url); - - return url; -} - -function makeIconBadge(icon, title) { +export function makeIconBadge(icon, title) { // Construct an 'icon badge' which floats to the right of an object var html = ``; @@ -168,7 +148,8 @@ function makeIconBadge(icon, title) { return html; } -function makeIconButton(icon, cls, pk, title, options={}) { + +export function makeIconButton(icon, cls, pk, title, options={}) { // Construct an 'icon button' using the fontawesome set var classes = `btn btn-default btn-glyph ${cls}`; @@ -190,7 +171,7 @@ function makeIconButton(icon, cls, pk, title, options={}) { return html; } -function makeProgressBar(value, maximum, opts={}) { +export function makeProgressBar(value, maximum, opts={}) { /* * Render a progessbar! * @@ -258,7 +239,7 @@ function makeProgressBar(value, maximum, opts={}) { } -function enableDragAndDrop(element, url, options) { +export function enableDragAndDrop(element, url, options) { /* Enable drag-and-drop file uploading for a given element. Params: @@ -315,7 +296,7 @@ function enableDragAndDrop(element, url, options) { }); } -function imageHoverIcon(url) { +export function imageHoverIcon(url) { /* Render a small thumbnail icon for an image. * On mouseover, display a full-size version of the image */ @@ -334,7 +315,7 @@ function imageHoverIcon(url) { return html; } -function inventreeSave(name, value) { +export function inventreeSave(name, value) { /* * Save a key:value pair to local storage */ @@ -343,7 +324,7 @@ function inventreeSave(name, value) { localStorage.setItem(key, value); } -function inventreeLoad(name, defaultValue) { +export function inventreeLoad(name, defaultValue) { /* * Retrieve a key:value pair from local storage */ @@ -358,27 +339,3 @@ function inventreeLoad(name, defaultValue) { return value; } } - -function inventreeLoadInt(name) { - /* - * Retrieve a value from local storage, and attempt to cast to integer - */ - - var data = inventreeLoad(name); - - return parseInt(data, 10); -} - -function inventreeLoadFloat(name) { - - var data = inventreeLoad(name); - - return parseFloat(data); -} - -function inventreeDel(name) { - - var key = 'inventree-' + name; - - localStorage.removeItem(key); -} \ No newline at end of file diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js index 60172ead64..21ae8b5330 100644 --- a/InvenTree/templates/js/dynamic/settings.js +++ b/InvenTree/templates/js/dynamic/settings.js @@ -3,7 +3,7 @@ {% user_settings request.user as USER_SETTINGS %} -var user_settings = { +export const user_settings = { {% for key, value in USER_SETTINGS.items %} {{ key }}: {% primitive_to_javascript value %}, {% endfor %} @@ -11,7 +11,7 @@ var user_settings = { {% global_settings as GLOBAL_SETTINGS %} -var global_settings = { +export const global_settings = { {% for key, value in GLOBAL_SETTINGS.items %} {{ key }}: {% primitive_to_javascript value %}, {% endfor %} diff --git a/InvenTree/templates/js/translated/tables.js b/InvenTree/templates/js/translated/tables.js index 88d9a5f99a..2b817f1bd9 100644 --- a/InvenTree/templates/js/translated/tables.js +++ b/InvenTree/templates/js/translated/tables.js @@ -1,30 +1,30 @@ {% load i18n %} +import { inventreeLoad, inventreeSave } from '{% url "inventree.js" %}'; -function reloadtable(table) { + +export function reloadtable(table) { $(table).bootstrapTable('refresh'); } -function editButton(url, text='Edit') { +export function editButton(url, text='{% trans "Edit" %}') { return ""; } -function deleteButton(url, text='Delete') { +export function deleteButton(url, text='{% trans "Delete" %}') { return ""; } -function renderLink(text, url, options={}) { +export function renderLink(text, url, options={}) { if (url === null || url === undefined || url === '') { return text; } var max_length = options.max_length || -1; - var remove_http = options.remove_http || false; - // Shorten the displayed length if required if ((max_length > 0) && (text.length > max_length)) { var slice_length = (max_length - 3) / 2; @@ -39,14 +39,14 @@ function renderLink(text, url, options={}) { } -function enableButtons(elements, enabled) { +export function enableButtons(elements, enabled) { for (let item of elements) { $(item).prop('disabled', !enabled); } } -function linkButtonsToSelection(table, buttons) { +export function linkButtonsToSelection(table, buttons) { /* Link a bootstrap-table object to one or more buttons. * The buttons will only be enabled if there is at least one row selected */ @@ -59,7 +59,7 @@ function linkButtonsToSelection(table, buttons) { enableButtons(buttons, table.bootstrapTable('getSelections').length > 0); // Add a callback - table.on('check.bs.table uncheck.bs.table check-some.bs.table uncheck-some.bs.table check-all.bs.table uncheck-all.bs.table', function(row) { + table.on('check.bs.table uncheck.bs.table check-some.bs.table uncheck-some.bs.table check-all.bs.table uncheck-all.bs.table', function() { enableButtons(buttons, table.bootstrapTable('getSelections').length > 0); }); } @@ -74,7 +74,7 @@ function isNumeric(n) { * Reload a table which has already been made into a bootstrap table. * New filters can be optionally provided, to change the query params. */ -function reloadTableFilters(table, filters) { +export function reloadTableFilters(table, filters) { // Simply perform a refresh if (filters == null) { @@ -88,8 +88,8 @@ function reloadTableFilters(table, filters) { // Construct a new list of filters to use for the query var params = {}; - for (var key in filters) { - params[key] = filters[key]; + for (var k in filters) { + params[k] = filters[k]; } // Original query params will override @@ -220,7 +220,7 @@ $.fn.inventreeTable = function(options) { }; // Callback when a column is changed - options.onColumnSwitch = function(field, checked) { + options.onColumnSwitch = function() { var columns = table.bootstrapTable('getVisibleColumns'); @@ -263,7 +263,7 @@ $.fn.inventreeTable = function(options) { } } -function customGroupSorter(sortName, sortOrder, sortData) { +export function customGroupSorter(sortName, sortOrder, sortData) { var order = sortOrder === 'desc' ? -1 : 1;