2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 20:45:44 +00:00

[UI] Barcode actions (#9538)

* Provide callback function for barcode scan dialog

* Adds hook for barcode scan dialog

* Fix callback processing

* Add function to extract API URL for a model instance

* Tweak page titles

* Extract instance data when scanning a barcode

* Scan item into location

* Scan in stock location

* Remove notYetImplemented func

* Revert "Remove notYetImplemented func"

This reverts commit a35408380e.

* Add stock item action

* Add playwright tests
This commit is contained in:
Oliver
2025-04-21 08:42:54 +10:00
committed by GitHub
parent 7d87b8b896
commit 79dad13328
7 changed files with 344 additions and 58 deletions

View File

@ -1,13 +1,15 @@
import type { NavigateFunction } from 'react-router-dom';
import { ModelInformationDict } from '../enums/ModelInformation';
import type { ModelType } from '../enums/ModelType';
import { apiUrl } from './Api';
import { cancelEvent } from './Events';
export const getBaseUrl = (): string =>
(window as any).INVENTREE_SETTINGS?.base_url || 'web';
/**
* Returns the detail view URL for a given model type
* Returns the detail view URL for a given model type.
* This is the UI URL, not the API URL.
*/
export function getDetailUrl(
model: ModelType,
@ -35,6 +37,27 @@ export function getDetailUrl(
return '';
}
/**
* Returns the API detail URL for a given model type.
*/
export function getApiUrl(
model: ModelType,
pk: number | string
): string | undefined {
const modelInfo = ModelInformationDict[model];
if (pk === undefined || pk === null) {
return '';
}
if (!!pk && modelInfo && modelInfo.api_endpoint) {
return apiUrl(modelInfo.api_endpoint, pk);
}
console.error(`No API detail URL found for model ${model} <${pk}>`);
return undefined;
}
/*
* Navigate to a provided link.
* - If the link is to be opened externally, open it in a new tab.