2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-07-07 07:31:24 +00:00

Merge branch 'inventree:master' into matmair/issue6281

This commit is contained in:
Matthias Mair
2024-04-14 23:58:25 +02:00
committed by GitHub
109 changed files with 35711 additions and 32252 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ on:
types: [ "labeled", "closed" ]
permissions:
contents: read
contents: write
jobs:
backport:
+2
View File
@@ -526,6 +526,8 @@ jobs:
update: true
- name: Set up test data
run: invoke setup-test -i
- name: Rebuild thumbnails
run: invoke rebuild-thumbnails
- name: Install dependencies
run: inv frontend-compile
- name: Install Playwright Browsers
+1 -1
View File
@@ -20,7 +20,7 @@ flag_management:
carryforward: true
statuses:
- type: project
target: 50%
target: 40%
- name: pui
carryforward: true
statuses:
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -218,7 +218,7 @@ function renderStockItem(data, parameters={}) {
}
if (data.quantity == 0) {
stock_detail = `<span class='badge rounded-pill bg-danger'>{% trans "No Stock"% }</span>`;
stock_detail = `<span class='badge rounded-pill bg-danger'>{% trans "No Stock" %}</span>`;
} else {
if (data.serial && data.quantity == 1) {
stock_detail = `{% trans "Serial Number" %}: ${data.serial}`;
@@ -488,7 +488,7 @@ function receiveReturnOrderItems(order_id, line_items, options={}) {
if (line_items.length == 0) {
showAlertDialog(
'{% trans "Select Line Items"% }',
'{% trans "Select Line Items" %}',
'{% trans "At least one line item must be selected" %}'
);
return;
+1
View File
@@ -27,6 +27,7 @@
"@mantine/hooks": "<7",
"@mantine/modals": "<7",
"@mantine/notifications": "<7",
"@mantine/spotlight": "<7",
"@naisutech/react-tree": "^3.1.0",
"@sentry/react": "^7.109.0",
"@tabler/icons-react": "^3.1.0",
@@ -0,0 +1,15 @@
import { t } from '@lingui/macro';
import { ActionIcon } from '@mantine/core';
import { spotlight } from '@mantine/spotlight';
import { IconCommand } from '@tabler/icons-react';
/**
* A button which opens the quick command modal
*/
export function SpotlightButton() {
return (
<ActionIcon onClick={() => spotlight.open()} title={t`Open spotlight`}>
<IconCommand />
</ActionIcon>
);
}
@@ -0,0 +1,26 @@
import { Badge } from '@mantine/core';
export type DetailsBadgeProps = {
color: string;
label: string;
size?: string;
visible?: boolean;
key?: any;
};
export default function DetailsBadge(props: DetailsBadgeProps) {
if (props.visible == false) {
return null;
}
return (
<Badge
key={props.key}
color={props.color}
variant="filled"
size={props.size ?? 'lg'}
>
{props.label}
</Badge>
);
}
@@ -16,6 +16,10 @@ export interface MenuLinkItem {
docchildren?: React.ReactNode;
}
export type menuItemsCollection = {
[key: string]: MenuLinkItem;
};
function ConditionalDocTooltip({
item,
children
+21 -2
View File
@@ -2,7 +2,7 @@ import { ActionIcon, Container, Group, Indicator, Tabs } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { IconBell, IconSearch } from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query';
import { useState } from 'react';
import { useEffect, useState } from 'react';
import { useMatch, useNavigate, useParams } from 'react-router-dom';
import { api } from '../../App';
@@ -10,7 +10,9 @@ import { navTabs as mainNavTabs } from '../../defaults/links';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { InvenTreeStyle } from '../../globalStyle';
import { apiUrl } from '../../states/ApiState';
import { useLocalState } from '../../states/LocalState';
import { ScanButton } from '../buttons/ScanButton';
import { SpotlightButton } from '../buttons/SpotlightButton';
import { MainMenu } from './MainMenu';
import { NavHoverMenu } from './NavHoverMenu';
import { NavigationDrawer } from './NavigationDrawer';
@@ -19,8 +21,12 @@ import { SearchDrawer } from './SearchDrawer';
export function Header() {
const { classes } = InvenTreeStyle();
const [setNavigationOpen, navigationOpen] = useLocalState((state) => [
state.setNavigationOpen,
state.navigationOpen
]);
const [navDrawerOpened, { open: openNavDrawer, close: closeNavDrawer }] =
useDisclosure(false);
useDisclosure(navigationOpen);
const [
searchDrawerOpened,
{ open: openSearchDrawer, close: closeSearchDrawer }
@@ -59,6 +65,18 @@ export function Header() {
refetchOnWindowFocus: false
});
// Sync Navigation Drawer state with zustand
useEffect(() => {
if (navigationOpen === navDrawerOpened) return;
setNavigationOpen(navDrawerOpened);
}, [navDrawerOpened]);
useEffect(() => {
if (navigationOpen === navDrawerOpened) return;
if (navigationOpen) openNavDrawer();
else closeNavDrawer();
}, [navigationOpen]);
return (
<div className={classes.layoutHeader}>
<SearchDrawer opened={searchDrawerOpened} onClose={closeSearchDrawer} />
@@ -80,6 +98,7 @@ export function Header() {
<ActionIcon onClick={openSearchDrawer}>
<IconSearch />
</ActionIcon>
<SpotlightButton />
<ScanButton />
<ActionIcon onClick={openNotificationDrawer}>
<Indicator
+40 -9
View File
@@ -1,6 +1,11 @@
import { t } from '@lingui/macro';
import { Container, Flex, Space } from '@mantine/core';
import { Navigate, Outlet, useLocation } from 'react-router-dom';
import { SpotlightProvider } from '@mantine/spotlight';
import { IconSearch } from '@tabler/icons-react';
import { useEffect, useState } from 'react';
import { Navigate, Outlet, useLocation, useNavigate } from 'react-router-dom';
import { getActions } from '../../defaults/actions';
import { InvenTreeStyle } from '../../globalStyle';
import { useSessionState } from '../../states/SessionState';
import { Footer } from './Footer';
@@ -22,17 +27,43 @@ export const ProtectedRoute = ({ children }: { children: JSX.Element }) => {
export default function LayoutComponent() {
const { classes } = InvenTreeStyle();
const navigate = useNavigate();
const location = useLocation();
const defaultactions = getActions(navigate);
const [actions, setActions] = useState(defaultactions);
const [customActions, setCustomActions] = useState<boolean>(false);
function actionsAreChanging(change: []) {
if (change.length > defaultactions.length) setCustomActions(true);
setActions(change);
}
useEffect(() => {
if (customActions) {
setActions(defaultactions);
setCustomActions(false);
}
}, [location]);
return (
<ProtectedRoute>
<Flex direction="column" mih="100vh">
<Header />
<Container className={classes.layoutContent} size="100%">
<Outlet />
</Container>
<Space h="xl" />
<Footer />
</Flex>
<SpotlightProvider
actions={actions}
onActionsChange={actionsAreChanging}
searchIcon={<IconSearch size="1.2rem" />}
searchPlaceholder={t`Search...`}
shortcut={['mod + K', '/']}
nothingFoundMessage={t`Nothing found...`}
>
<Flex direction="column" mih="100vh">
<Header />
<Container className={classes.layoutContent} size="100%">
<Outlet />
</Container>
<Space h="xl" />
<Footer />
</Flex>
</SpotlightProvider>
</ProtectedRoute>
);
}
@@ -20,6 +20,8 @@ import { useLocalState } from '../../states/LocalState';
import { InvenTreeLogo } from '../items/InvenTreeLogo';
import { MenuLinks } from '../items/MenuLinks';
const onlyItems = Object.values(menuItems);
export function NavHoverMenu({
openDrawer: openDrawer
}: {
@@ -85,7 +87,7 @@ export function NavHoverMenu({
mx="-md"
color={theme.colorScheme === 'dark' ? 'dark.5' : 'gray.1'}
/>
<MenuLinks links={menuItems} highlighted={true} />
<MenuLinks links={onlyItems} highlighted={true} />
<div className={classes.headerDropdownFooter}>
<Group position="apart">
<div>
@@ -18,6 +18,7 @@ import { MenuLinkItem, MenuLinks } from '../items/MenuLinks';
// TODO @matmair #1: implement plugin loading and menu item generation see #5269
const plugins: MenuLinkItem[] = [];
const onlyItems = Object.values(menuItems);
export function NavigationDrawer({
opened,
@@ -60,7 +61,7 @@ function DrawerContent() {
<Container className={classes.layoutContent} p={0}>
<ScrollArea h={scrollHeight} type="always" offsetScrollbars>
<Title order={5}>{t`Pages`}</Title>
<MenuLinks links={menuItems} />
<MenuLinks links={onlyItems} />
<Space h="md" />
{plugins.length > 0 ? (
<>
@@ -1,6 +1,7 @@
import { Group, Paper, Space, Stack, Text } from '@mantine/core';
import { Fragment, ReactNode } from 'react';
import DetailsBadge, { DetailsBadgeProps } from '../details/DetailsBadge';
import { ApiImage } from '../images/ApiImage';
import { StylishText } from '../items/StylishText';
import { Breadcrumb, BreadcrumbList } from './BreadcrumbList';
@@ -15,6 +16,7 @@ export function PageDetail({
title,
subtitle,
detail,
badges,
imageUrl,
breadcrumbs,
breadcrumbAction,
@@ -24,6 +26,7 @@ export function PageDetail({
subtitle?: string;
imageUrl?: string;
detail?: ReactNode;
badges?: ReactNode[];
breadcrumbs?: Breadcrumb[];
breadcrumbAction?: () => void;
actions?: ReactNode[];
@@ -56,6 +59,9 @@ export function PageDetail({
</Group>
<Space />
{detail}
<Group position="right" spacing="xs" noWrap>
{badges}
</Group>
<Space />
{actions && (
<Group spacing={5} position="right">
@@ -101,6 +101,7 @@ export function LanguageContext({ children }: { children: JSX.Element }) {
// Clear out cached table column names
useLocalState.getState().clearTableColumnNames();
})
/* istanbul ignore next */
.catch((err) => {
console.error('Failed loading translations', err);
if (isMounted.current) setLoadedState('error');
@@ -115,6 +116,7 @@ export function LanguageContext({ children }: { children: JSX.Element }) {
return <LoadingOverlay visible={true} />;
}
/* istanbul ignore next */
if (loadedState === 'error') {
return (
<Text>
+59
View File
@@ -0,0 +1,59 @@
import { t } from '@lingui/macro';
import type { SpotlightAction } from '@mantine/spotlight';
import { IconHome, IconLink, IconPointer } from '@tabler/icons-react';
import { NavigateFunction } from 'react-router-dom';
import { useLocalState } from '../states/LocalState';
import { aboutInvenTree, docLinks, licenseInfo, serverInfo } from './links';
import { menuItems } from './menuItems';
export function getActions(navigate: NavigateFunction) {
const setNavigationOpen = useLocalState((state) => state.setNavigationOpen);
const actions: SpotlightAction[] = [
{
title: t`Home`,
description: `Go to the home page`,
onTrigger: () => navigate(menuItems.home.link),
icon: <IconHome size="1.2rem" />
},
{
title: t`Dashboard`,
description: t`Go to the InvenTree dashboard`,
onTrigger: () => navigate(menuItems.dashboard.link),
icon: <IconLink size="1.2rem" />
},
{
title: t`Documentation`,
description: t`Visit the documentation to learn more about InvenTree`,
onTrigger: () => (window.location.href = docLinks.faq),
icon: <IconLink size="1.2rem" />
},
{
title: t`About InvenTree`,
description: t`About the InvenTree org`,
onTrigger: () => aboutInvenTree(),
icon: <IconLink size="1.2rem" />
},
{
title: t`Server Information`,
description: t`About this Inventree instance`,
onTrigger: () => serverInfo(),
icon: <IconLink size="1.2rem" />
},
{
title: t`License Information`,
description: t`Licenses for dependencies of the service`,
onTrigger: () => licenseInfo(),
icon: <IconLink size="1.2rem" />
},
{
title: t`Open Navigation`,
description: t`Open the main navigation menu`,
onTrigger: () => setNavigationOpen(true),
icon: <IconPointer size="1.2rem" />
}
];
return actions;
}
+4 -3
View File
@@ -71,7 +71,7 @@ export const navDocLinks: DocumentationLinkItem[] = [
}
];
function serverInfo() {
export function serverInfo() {
return openContextModal({
modal: 'info',
title: (
@@ -84,7 +84,7 @@ function serverInfo() {
});
}
function aboutInvenTree() {
export function aboutInvenTree() {
return openContextModal({
modal: 'about',
title: (
@@ -96,7 +96,8 @@ function aboutInvenTree() {
innerProps: {}
});
}
function licenseInfo() {
export function licenseInfo() {
return openContextModal({
modal: 'license',
title: (
+16 -16
View File
@@ -1,75 +1,75 @@
import { Trans } from '@lingui/macro';
import { MenuLinkItem } from '../components/items/MenuLinks';
import { menuItemsCollection } from '../components/items/MenuLinks';
import { IS_DEV_OR_DEMO } from '../main';
export const menuItems: MenuLinkItem[] = [
{
export const menuItems: menuItemsCollection = {
home: {
id: 'home',
text: <Trans>Home</Trans>,
link: '/',
highlight: true
},
{
profile: {
id: 'profile',
text: <Trans>Account settings</Trans>,
link: '/settings/user',
doctext: <Trans>User attributes and design settings.</Trans>
},
{
scan: {
id: 'scan',
text: <Trans>Scanning</Trans>,
link: '/scan',
doctext: <Trans>View for interactive scanning and multiple actions.</Trans>,
highlight: true
},
{
dashboard: {
id: 'dashboard',
text: <Trans>Dashboard</Trans>,
link: '/dashboard'
},
{
parts: {
id: 'parts',
text: <Trans>Parts</Trans>,
link: '/part/'
},
{
stock: {
id: 'stock',
text: <Trans>Stock</Trans>,
link: '/stock'
},
{
build: {
id: 'build',
text: <Trans>Build</Trans>,
link: '/build/'
},
{
purchasing: {
id: 'purchasing',
text: <Trans>Purchasing</Trans>,
link: '/purchasing/'
},
{
sales: {
id: 'sales',
text: <Trans>Sales</Trans>,
link: '/sales/'
},
{
'settings-system': {
id: 'settings-system',
text: <Trans>System Settings</Trans>,
link: '/settings/system'
},
{
'settings-admin': {
id: 'settings-admin',
text: <Trans>Admin Center</Trans>,
link: '/settings/admin'
}
];
};
if (IS_DEV_OR_DEMO) {
menuItems.push({
menuItems['playground'] = {
id: 'playground',
text: <Trans>Playground</Trans>,
link: '/playground',
highlight: true
});
};
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+99 -70
View File
@@ -17,6 +17,32 @@ msgstr ""
msgid "Title"
msgstr "Title"
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr "Copy to clipboard"
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr "Scan QR code"
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr "Pass"
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr "Fail"
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr "Yes"
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr "No"
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr "Copied"
@@ -43,7 +69,7 @@ msgstr "Remove"
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -66,7 +92,7 @@ msgstr "Clear"
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr "Submit"
@@ -457,6 +483,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -555,10 +582,6 @@ msgstr "Duplicate"
msgid "Duplicate item"
msgstr "Duplicate item"
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr "Copy to clipboard"
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr "Read More"
@@ -601,28 +624,6 @@ msgstr "PLH"
msgid "This panel is a placeholder."
msgstr "This panel is a placeholder."
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr "Scan QR code"
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr "Pass"
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr "Fail"
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr "Yes"
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr "No"
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr "Version Information"
@@ -705,6 +706,26 @@ msgstr "Copy version information"
msgid "Dismiss"
msgstr "Dismiss"
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr "No license text available"
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr "No Information provided - this is likely a server issue"
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr "Loading license information"
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr "Failed to fetch license information"
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr "{key} Packages"
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr "Unknown response"
@@ -1129,7 +1150,7 @@ msgstr "Project Codes"
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr "Purchase Order"
@@ -1153,7 +1174,7 @@ msgstr "Purchase Order Lines"
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr "Sales Order"
@@ -1176,7 +1197,7 @@ msgstr "Sales Order Shipments"
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr "Return Order"
@@ -1987,7 +2008,7 @@ msgstr "Dashboard"
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr "Purchasing"
@@ -1995,9 +2016,9 @@ msgstr "Purchasing"
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr "Sales"
@@ -2044,7 +2065,7 @@ msgstr "Frequently asked questions"
#~ msgstr "Instance"
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr "System Information"
@@ -2053,25 +2074,33 @@ msgstr "System Information"
#~ msgstr "InvenTree"
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr "About InvenTree"
#: src/defaults/links.tsx:105
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr "License Information"
#: src/defaults/links.tsx:116
msgid "About this Inventree instance"
msgstr "About this Inventree instance"
#: src/defaults/links.tsx:111
#: src/defaults/links.tsx:117
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr "Licenses for packages used by InvenTree"
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr "About the InvenTree org"
#: src/defaults/links.tsx:116
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr "Licenses"
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
msgstr "Licenses for packages used by InvenTree"
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr "Licenses for dependencies of the service"
#: src/defaults/menuItems.tsx:7
#~ msgid "Open sourcea"
@@ -3175,7 +3204,7 @@ msgstr "Stocktake"
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr "Build Orders"
@@ -3294,9 +3323,9 @@ msgstr "Issued By"
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr "Responsible"
@@ -3369,9 +3398,9 @@ msgstr "Child Build Orders"
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr "Attachments"
@@ -3379,9 +3408,9 @@ msgstr "Attachments"
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr "Notes"
@@ -3569,7 +3598,7 @@ msgid "Supplier Part Details"
msgstr "Supplier Part Details"
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr "Received Stock"
@@ -3853,11 +3882,11 @@ msgid "Supplier Reference"
msgstr "Supplier Reference"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr "Line Items"
@@ -3870,7 +3899,7 @@ msgstr "Completed Line Items"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr "Completed Shipments"
@@ -3886,26 +3915,26 @@ msgstr "Order Currency,"
msgid "Total Cost"
msgstr "Total Cost"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr "Created On"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr "Target Date"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr "Order Details"
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr "Order Actions"
@@ -3919,7 +3948,7 @@ msgstr "Customer Reference"
msgid "Customers"
msgstr "Customers"
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr "Pending Shipments"
@@ -4705,8 +4734,8 @@ msgid "Parameter Template"
msgstr "Parameter Template"
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr "[{0}]"
#~ msgid "[{0}]"
#~ msgstr "[{0}]"
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
+101 -72
View File
@@ -17,6 +17,32 @@ msgstr ""
msgid "Title"
msgstr ""
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr ""
@@ -43,7 +69,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -66,7 +92,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr ""
@@ -438,6 +464,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -536,10 +563,6 @@ msgstr ""
msgid "Duplicate item"
msgstr ""
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr ""
@@ -582,28 +605,6 @@ msgstr ""
msgid "This panel is a placeholder."
msgstr ""
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr ""
@@ -686,6 +687,26 @@ msgstr ""
msgid "Dismiss"
msgstr ""
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr ""
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr ""
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr ""
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr ""
@@ -1102,7 +1123,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr ""
@@ -1126,7 +1147,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr ""
@@ -1149,7 +1170,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr ""
@@ -1948,7 +1969,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr ""
@@ -1956,9 +1977,9 @@ msgstr ""
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr ""
@@ -2005,7 +2026,7 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr ""
@@ -2014,24 +2035,32 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr ""
#: src/defaults/links.tsx:105
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:111
msgid "About the InvenTree org"
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr ""
#: src/defaults/links.tsx:116
msgid "Licenses"
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr ""
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr ""
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr ""
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr ""
#: src/defaults/menuItems.tsx:15
@@ -2940,7 +2969,7 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr ""
@@ -3055,9 +3084,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr ""
@@ -3130,9 +3159,9 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr ""
@@ -3140,9 +3169,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr ""
@@ -3330,7 +3359,7 @@ msgid "Supplier Part Details"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr ""
@@ -3610,11 +3639,11 @@ msgid "Supplier Reference"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr ""
@@ -3627,7 +3656,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr ""
@@ -3643,26 +3672,26 @@ msgstr ""
msgid "Total Cost"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr ""
@@ -3676,7 +3705,7 @@ msgstr ""
msgid "Customers"
msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr ""
@@ -4462,8 +4491,8 @@ msgid "Parameter Template"
msgstr ""
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr ""
#~ msgid "[{0}]"
#~ msgstr ""
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -57,6 +57,32 @@ msgstr ""
msgid "Title"
msgstr ""
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr ""
@@ -83,7 +109,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -106,7 +132,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr ""
@@ -497,6 +523,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -595,10 +622,6 @@ msgstr ""
msgid "Duplicate item"
msgstr ""
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr ""
@@ -645,28 +668,6 @@ msgstr ""
msgid "This panel is a placeholder."
msgstr ""
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr ""
@@ -749,6 +750,26 @@ msgstr ""
msgid "Dismiss"
msgstr ""
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr ""
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr ""
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr ""
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr ""
@@ -1173,7 +1194,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr ""
@@ -1197,7 +1218,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr ""
@@ -1220,7 +1241,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr ""
@@ -2031,7 +2052,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr ""
@@ -2039,9 +2060,9 @@ msgstr ""
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr ""
@@ -2088,7 +2109,7 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr ""
@@ -2097,24 +2118,32 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr ""
#: src/defaults/links.tsx:105
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:111
msgid "About the InvenTree org"
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr ""
#: src/defaults/links.tsx:116
msgid "Licenses"
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr ""
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr ""
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr ""
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr ""
#: src/defaults/menuItems.tsx:7
@@ -3219,7 +3248,7 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr ""
@@ -3338,9 +3367,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr ""
@@ -3413,9 +3442,9 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr ""
@@ -3423,9 +3452,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr ""
@@ -3613,7 +3642,7 @@ msgid "Supplier Part Details"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr ""
@@ -3897,11 +3926,11 @@ msgid "Supplier Reference"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr ""
@@ -3914,7 +3943,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr ""
@@ -3930,26 +3959,26 @@ msgstr ""
msgid "Total Cost"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr ""
@@ -3963,7 +3992,7 @@ msgstr ""
msgid "Customers"
msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr ""
@@ -4749,8 +4778,8 @@ msgid "Parameter Template"
msgstr ""
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr ""
#~ msgid "[{0}]"
#~ msgstr ""
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
+101 -72
View File
@@ -17,6 +17,32 @@ msgstr ""
msgid "Title"
msgstr ""
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr ""
@@ -43,7 +69,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -66,7 +92,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr ""
@@ -438,6 +464,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -536,10 +563,6 @@ msgstr ""
msgid "Duplicate item"
msgstr ""
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr ""
@@ -582,28 +605,6 @@ msgstr ""
msgid "This panel is a placeholder."
msgstr ""
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr ""
@@ -686,6 +687,26 @@ msgstr ""
msgid "Dismiss"
msgstr ""
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr ""
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr ""
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr ""
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr ""
@@ -1102,7 +1123,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr ""
@@ -1126,7 +1147,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr ""
@@ -1149,7 +1170,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr ""
@@ -1948,7 +1969,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr ""
@@ -1956,9 +1977,9 @@ msgstr ""
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr ""
@@ -2005,7 +2026,7 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr ""
@@ -2014,24 +2035,32 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr ""
#: src/defaults/links.tsx:105
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:111
msgid "About the InvenTree org"
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr ""
#: src/defaults/links.tsx:116
msgid "Licenses"
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr ""
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr ""
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr ""
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr ""
#: src/defaults/menuItems.tsx:15
@@ -2940,7 +2969,7 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr ""
@@ -3055,9 +3084,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr ""
@@ -3130,9 +3159,9 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr ""
@@ -3140,9 +3169,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr ""
@@ -3330,7 +3359,7 @@ msgid "Supplier Part Details"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr ""
@@ -3610,11 +3639,11 @@ msgid "Supplier Reference"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr ""
@@ -3627,7 +3656,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr ""
@@ -3643,26 +3672,26 @@ msgstr ""
msgid "Total Cost"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr ""
@@ -3676,7 +3705,7 @@ msgstr ""
msgid "Customers"
msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr ""
@@ -4462,8 +4491,8 @@ msgid "Parameter Template"
msgstr ""
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr ""
#~ msgid "[{0}]"
#~ msgstr ""
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+101 -72
View File
@@ -17,6 +17,32 @@ msgstr ""
msgid "Title"
msgstr ""
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr ""
@@ -43,7 +69,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -66,7 +92,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr ""
@@ -438,6 +464,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -536,10 +563,6 @@ msgstr ""
msgid "Duplicate item"
msgstr ""
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr ""
@@ -582,28 +605,6 @@ msgstr ""
msgid "This panel is a placeholder."
msgstr ""
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr ""
@@ -686,6 +687,26 @@ msgstr ""
msgid "Dismiss"
msgstr ""
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr ""
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr ""
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr ""
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr ""
@@ -1102,7 +1123,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr ""
@@ -1126,7 +1147,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr ""
@@ -1149,7 +1170,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr ""
@@ -1948,7 +1969,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr ""
@@ -1956,9 +1977,9 @@ msgstr ""
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr ""
@@ -2005,7 +2026,7 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr ""
@@ -2014,24 +2035,32 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr ""
#: src/defaults/links.tsx:105
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:111
msgid "About the InvenTree org"
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr ""
#: src/defaults/links.tsx:116
msgid "Licenses"
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr ""
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr ""
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr ""
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr ""
#: src/defaults/menuItems.tsx:15
@@ -2940,7 +2969,7 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr ""
@@ -3055,9 +3084,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr ""
@@ -3130,9 +3159,9 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr ""
@@ -3140,9 +3169,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr ""
@@ -3330,7 +3359,7 @@ msgid "Supplier Part Details"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr ""
@@ -3610,11 +3639,11 @@ msgid "Supplier Reference"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr ""
@@ -3627,7 +3656,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr ""
@@ -3643,26 +3672,26 @@ msgstr ""
msgid "Total Cost"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr ""
@@ -3676,7 +3705,7 @@ msgstr ""
msgid "Customers"
msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr ""
@@ -4462,8 +4491,8 @@ msgid "Parameter Template"
msgstr ""
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr ""
#~ msgid "[{0}]"
#~ msgstr ""
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
+101 -72
View File
@@ -17,6 +17,32 @@ msgstr ""
msgid "Title"
msgstr ""
#: src/components/buttons/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/buttons/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/buttons/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/details/Details.tsx:327
msgid "Copied"
msgstr ""
@@ -43,7 +69,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:70
#: src/components/editors/TemplateEditor/TemplateEditor.tsx:164
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/functions/forms.tsx:196
#: src/hooks/UseForm.tsx:39
#: src/tables/FilterSelectDrawer.tsx:218
@@ -66,7 +92,7 @@ msgstr ""
#: src/components/details/DetailsImage.tsx:226
#: src/components/forms/ApiForm.tsx:490
#: src/contexts/ThemeContext.tsx:64
#: src/contexts/ThemeContext.tsx:65
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51
msgid "Submit"
msgstr ""
@@ -438,6 +464,7 @@ msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
msgstr ""
#: src/components/forms/fields/ApiFormField.tsx:284
#: src/components/modals/LicenseModal.tsx:72
#: src/components/nav/SearchDrawer.tsx:411
#: src/components/widgets/MarkdownEditor.tsx:108
#: src/components/widgets/MarkdownEditor.tsx:154
@@ -536,10 +563,6 @@ msgstr ""
msgid "Duplicate item"
msgstr ""
#: src/components/items/CopyButton.tsx:18
msgid "Copy to clipboard"
msgstr ""
#: src/components/items/DocTooltip.tsx:94
msgid "Read More"
msgstr ""
@@ -582,28 +605,6 @@ msgstr ""
msgid "This panel is a placeholder."
msgstr ""
#: src/components/items/ScanButton.tsx:15
msgid "Scan QR code"
msgstr ""
#: src/components/items/YesNoButton.tsx:16
msgid "Pass"
msgstr ""
#: src/components/items/YesNoButton.tsx:17
msgid "Fail"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:51
msgid "Yes"
msgstr ""
#: src/components/items/YesNoButton.tsx:32
#: src/tables/Filter.tsx:52
msgid "No"
msgstr ""
#: src/components/modals/AboutInvenTreeModal.tsx:99
msgid "Version Information"
msgstr ""
@@ -686,6 +687,26 @@ msgstr ""
msgid "Dismiss"
msgstr ""
#: src/components/modals/LicenseModal.tsx:36
msgid "No license text available"
msgstr ""
#: src/components/modals/LicenseModal.tsx:43
msgid "No Information provided - this is likely a server issue"
msgstr ""
#: src/components/modals/LicenseModal.tsx:68
msgid "Loading license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:74
msgid "Failed to fetch license information"
msgstr ""
#: src/components/modals/LicenseModal.tsx:82
msgid "{key} Packages"
msgstr ""
#: src/components/modals/QrCodeModal.tsx:72
msgid "Unknown response"
msgstr ""
@@ -1102,7 +1123,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:119
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:99
#: src/pages/purchasing/PurchaseOrderDetail.tsx:305
#: src/pages/purchasing/PurchaseOrderDetail.tsx:306
msgid "Purchase Order"
msgstr ""
@@ -1126,7 +1147,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:132
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:108
#: src/pages/build/BuildDetail.tsx:127
#: src/pages/sales/SalesOrderDetail.tsx:251
#: src/pages/sales/SalesOrderDetail.tsx:252
#: src/pages/stock/StockDetail.tsx:205
msgid "Sales Order"
msgstr ""
@@ -1149,7 +1170,7 @@ msgstr ""
#: src/components/render/ModelType.tsx:147
#: src/pages/Index/Settings/AdminCenter/TemplateManagementPanel.tsx:117
#: src/pages/sales/ReturnOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:228
msgid "Return Order"
msgstr ""
@@ -1948,7 +1969,7 @@ msgstr ""
#: src/pages/company/ManufacturerPartDetail.tsx:217
#: src/pages/company/SupplierDetail.tsx:9
#: src/pages/company/SupplierPartDetail.tsx:262
#: src/pages/purchasing/PurchaseOrderDetail.tsx:308
#: src/pages/purchasing/PurchaseOrderDetail.tsx:309
#: src/pages/purchasing/PurchasingIndex.tsx:52
msgid "Purchasing"
msgstr ""
@@ -1956,9 +1977,9 @@ msgstr ""
#: src/defaults/links.tsx:32
#: src/defaults/menuItems.tsx:53
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:230
#: src/pages/sales/ReturnOrderDetail.tsx:231
#: src/pages/sales/SalesIndex.tsx:45
#: src/pages/sales/SalesOrderDetail.tsx:254
#: src/pages/sales/SalesOrderDetail.tsx:255
msgid "Sales"
msgstr ""
@@ -2005,7 +2026,7 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:79
#: src/defaults/links.tsx:104
#: src/defaults/links.tsx:115
msgid "System Information"
msgstr ""
@@ -2014,24 +2035,32 @@ msgstr ""
#~ msgstr ""
#: src/defaults/links.tsx:92
#: src/defaults/links.tsx:110
#: src/defaults/links.tsx:121
msgid "About InvenTree"
msgstr ""
#: src/defaults/links.tsx:105
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:111
msgid "About the InvenTree org"
#: src/defaults/links.tsx:104
msgid "License Information"
msgstr ""
#: src/defaults/links.tsx:116
msgid "Licenses"
msgid "About this Inventree instance"
msgstr ""
#: src/defaults/links.tsx:117
msgid "Licenses for packages used by InvenTree"
#~ msgid "Licenses for packages used by InvenTree"
#~ msgstr ""
#: src/defaults/links.tsx:122
msgid "About the InvenTree org"
msgstr ""
#: src/defaults/links.tsx:127
msgid "Licenses"
msgstr ""
#: src/defaults/links.tsx:128
msgid "Licenses for dependencies of the service"
msgstr ""
#: src/defaults/menuItems.tsx:15
@@ -2940,7 +2969,7 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:359
#: src/pages/build/BuildIndex.tsx:14
#: src/pages/part/PartDetail.tsx:513
#: src/pages/sales/SalesOrderDetail.tsx:211
#: src/pages/sales/SalesOrderDetail.tsx:212
msgid "Build Orders"
msgstr ""
@@ -3055,9 +3084,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:145
#: src/pages/part/PartDetail.tsx:316
#: src/pages/purchasing/PurchaseOrderDetail.tsx:188
#: src/pages/sales/ReturnOrderDetail.tsx:154
#: src/pages/sales/SalesOrderDetail.tsx:158
#: src/pages/purchasing/PurchaseOrderDetail.tsx:189
#: src/pages/sales/ReturnOrderDetail.tsx:155
#: src/pages/sales/SalesOrderDetail.tsx:159
msgid "Responsible"
msgstr ""
@@ -3130,9 +3159,9 @@ msgstr ""
#: src/pages/company/CompanyDetail.tsx:244
#: src/pages/company/ManufacturerPartDetail.tsx:169
#: src/pages/part/PartDetail.tsx:598
#: src/pages/purchasing/PurchaseOrderDetail.tsx:244
#: src/pages/sales/ReturnOrderDetail.tsx:197
#: src/pages/sales/SalesOrderDetail.tsx:221
#: src/pages/purchasing/PurchaseOrderDetail.tsx:245
#: src/pages/sales/ReturnOrderDetail.tsx:198
#: src/pages/sales/SalesOrderDetail.tsx:222
#: src/pages/stock/StockDetail.tsx:312
msgid "Attachments"
msgstr ""
@@ -3140,9 +3169,9 @@ msgstr ""
#: src/pages/build/BuildDetail.tsx:270
#: src/pages/company/CompanyDetail.tsx:256
#: src/pages/part/PartDetail.tsx:610
#: src/pages/purchasing/PurchaseOrderDetail.tsx:256
#: src/pages/sales/ReturnOrderDetail.tsx:209
#: src/pages/sales/SalesOrderDetail.tsx:233
#: src/pages/purchasing/PurchaseOrderDetail.tsx:257
#: src/pages/sales/ReturnOrderDetail.tsx:210
#: src/pages/sales/SalesOrderDetail.tsx:234
#: src/pages/stock/StockDetail.tsx:324
msgid "Notes"
msgstr ""
@@ -3330,7 +3359,7 @@ msgid "Supplier Part Details"
msgstr ""
#: src/pages/company/SupplierPartDetail.tsx:203
#: src/pages/purchasing/PurchaseOrderDetail.tsx:232
#: src/pages/purchasing/PurchaseOrderDetail.tsx:233
msgid "Received Stock"
msgstr ""
@@ -3610,11 +3639,11 @@ msgid "Supplier Reference"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:117
#: src/pages/purchasing/PurchaseOrderDetail.tsx:226
#: src/pages/purchasing/PurchaseOrderDetail.tsx:227
#: src/pages/sales/ReturnOrderDetail.tsx:83
#: src/pages/sales/ReturnOrderDetail.tsx:192
#: src/pages/sales/ReturnOrderDetail.tsx:193
#: src/pages/sales/SalesOrderDetail.tsx:87
#: src/pages/sales/SalesOrderDetail.tsx:196
#: src/pages/sales/SalesOrderDetail.tsx:197
msgid "Line Items"
msgstr ""
@@ -3627,7 +3656,7 @@ msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:132
#: src/pages/sales/ReturnOrderDetail.tsx:98
#: src/pages/sales/SalesOrderDetail.tsx:102
#: src/pages/sales/SalesOrderDetail.tsx:206
#: src/pages/sales/SalesOrderDetail.tsx:207
msgid "Completed Shipments"
msgstr ""
@@ -3643,26 +3672,26 @@ msgstr ""
msgid "Total Cost"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:175
#: src/pages/sales/ReturnOrderDetail.tsx:141
#: src/pages/sales/SalesOrderDetail.tsx:145
#: src/pages/purchasing/PurchaseOrderDetail.tsx:176
#: src/pages/sales/ReturnOrderDetail.tsx:142
#: src/pages/sales/SalesOrderDetail.tsx:146
msgid "Created On"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:181
#: src/pages/sales/ReturnOrderDetail.tsx:147
#: src/pages/sales/SalesOrderDetail.tsx:151
#: src/pages/purchasing/PurchaseOrderDetail.tsx:182
#: src/pages/sales/ReturnOrderDetail.tsx:148
#: src/pages/sales/SalesOrderDetail.tsx:152
#: src/tables/ColumnRenderers.tsx:164
msgid "Target Date"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:220
#: src/pages/sales/ReturnOrderDetail.tsx:186
#: src/pages/sales/SalesOrderDetail.tsx:190
#: src/pages/purchasing/PurchaseOrderDetail.tsx:221
#: src/pages/sales/ReturnOrderDetail.tsx:187
#: src/pages/sales/SalesOrderDetail.tsx:191
msgid "Order Details"
msgstr ""
#: src/pages/purchasing/PurchaseOrderDetail.tsx:285
#: src/pages/purchasing/PurchaseOrderDetail.tsx:286
msgid "Order Actions"
msgstr ""
@@ -3676,7 +3705,7 @@ msgstr ""
msgid "Customers"
msgstr ""
#: src/pages/sales/SalesOrderDetail.tsx:201
#: src/pages/sales/SalesOrderDetail.tsx:202
msgid "Pending Shipments"
msgstr ""
@@ -4462,8 +4491,8 @@ msgid "Parameter Template"
msgstr ""
#: src/tables/part/PartCategoryTemplateTable.tsx:93
msgid "[{0}]"
msgstr ""
#~ msgid "[{0}]"
#~ msgstr ""
#: src/tables/part/PartParameterTable.tsx:106
msgid "New Part Parameter"
File diff suppressed because it is too large Load Diff
@@ -2,6 +2,8 @@ import { Trans } from '@lingui/macro';
import { Button, Card, Stack, TextInput } from '@mantine/core';
import { Group, Text } from '@mantine/core';
import { Accordion } from '@mantine/core';
import { spotlight } from '@mantine/spotlight';
import { IconAlien } from '@tabler/icons-react';
import { ReactNode, useMemo, useState } from 'react';
import { OptionsApiForm } from '../../components/forms/ApiForm';
@@ -167,6 +169,38 @@ function StatusLabelPlayground() {
);
}
// Sample for spotlight actions
function SpotlighPlayground() {
return (
<Button
variant="outline"
onClick={() => {
spotlight.registerActions([
{
id: 'secret-action-1',
title: 'Secret action',
description: 'It was registered with a button click',
icon: <IconAlien size="1.2rem" />,
onTrigger: () => console.log('Secret')
},
{
id: 'secret-action-2',
title: 'Another secret action',
description:
'You can register multiple actions with just one command',
icon: <IconAlien size="1.2rem" />,
onTrigger: () => console.log('Secret')
}
]);
console.log('registed');
spotlight.open();
}}
>
Register extra actions
</Button>
);
}
/** Construct a simple accordion group with title and content */
function PlaygroundArea({
title,
@@ -207,6 +241,10 @@ export default function Playground() {
title="Status labels"
content={<StatusLabelPlayground />}
/>
<PlaygroundArea
title="Spotlight actions"
content={<SpotlighPlayground />}
/>
</Accordion>
</>
);
+12 -11
View File
@@ -334,16 +334,17 @@ export default function BuildDetail() {
];
}, [id, build, user]);
const buildDetail = useMemo(() => {
return build?.status ? (
StatusRenderer({
status: build.status,
type: ModelType.build
})
) : (
<Skeleton />
);
}, [build, id]);
const buildBadges = useMemo(() => {
return instanceQuery.isFetching
? []
: [
<StatusRenderer
status={build.status}
type={ModelType.build}
options={{ size: 'lg' }}
/>
];
}, [build, instanceQuery]);
return (
<>
@@ -353,7 +354,7 @@ export default function BuildDetail() {
<PageDetail
title={build.reference}
subtitle={build.title}
detail={buildDetail}
badges={buildBadges}
imageUrl={build.part_detail?.image ?? build.part_detail?.thumbnail}
breadcrumbs={[
{ name: t`Build Orders`, url: '/build' },
+37 -12
View File
@@ -1,5 +1,6 @@
import { t } from '@lingui/macro';
import {
Badge,
Grid,
Group,
LoadingOverlay,
@@ -30,11 +31,14 @@ import {
IconVersions
} from '@tabler/icons-react';
import { useSuspenseQuery } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
import { ReactNode, useMemo, useState } from 'react';
import { useParams } from 'react-router-dom';
import { api } from '../../App';
import { DetailsField, DetailsTable } from '../../components/details/Details';
import DetailsBadge, {
DetailsBadgeProps
} from '../../components/details/DetailsBadge';
import { DetailsImage } from '../../components/details/DetailsImage';
import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import { PartIcons } from '../../components/details/PartIcons';
@@ -449,7 +453,9 @@ export default function PartDetail() {
</Grid.Col>
<Grid.Col span={8}>
<Stack spacing="xs">
<PartIcons part={part} />
<table>
<PartIcons part={part} />
</table>
<DetailsTable fields={tl} item={part} />
</Stack>
</Grid.Col>
@@ -631,15 +637,34 @@ export default function PartDetail() {
[part]
);
const partDetail = useMemo(() => {
return (
<Group spacing="xs" noWrap={true}>
<Stack spacing="xs">
<Text>Stock: {part.in_stock}</Text>
</Stack>
</Group>
);
}, [part, id]);
const badges: ReactNode[] = useMemo(() => {
if (instanceQuery.isLoading || instanceQuery.isFetching) {
return [];
}
return [
<DetailsBadge
label={t`In Stock` + `: ${part.in_stock}`}
color={part.in_stock >= part.minimum_stock ? 'green' : 'orange'}
visible={part.in_stock > 0}
/>,
<DetailsBadge
label={t`No Stock`}
color="red"
visible={part.in_stock == 0}
/>,
<DetailsBadge
label={t`On Order` + `: ${part.ordering}`}
color="blue"
visible={part.on_order > 0}
/>,
<DetailsBadge
label={t`In Production` + `: ${part.building}`}
color="blue"
visible={part.building > 0}
/>
];
}, [part, instanceQuery]);
const partFields = usePartFields({ create: false });
@@ -740,7 +765,7 @@ export default function PartDetail() {
title={t`Part` + ': ' + part.full_name}
subtitle={part.description}
imageUrl={part.image}
detail={partDetail}
badges={badges}
breadcrumbs={breadcrumbs}
breadcrumbAction={() => {
setTreeOpen(true);
@@ -1,5 +1,5 @@
import { t } from '@lingui/macro';
import { Grid, LoadingOverlay, Skeleton, Stack } from '@mantine/core';
import { Grid, Group, LoadingOverlay, Skeleton, Stack } from '@mantine/core';
import {
IconDots,
IconInfoCircle,
@@ -8,7 +8,7 @@ import {
IconPackages,
IconPaperclip
} from '@tabler/icons-react';
import { useMemo } from 'react';
import { ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
import { DetailsField, DetailsTable } from '../../components/details/Details';
@@ -25,6 +25,7 @@ import {
} from '../../components/items/ActionDropdown';
import { PageDetail } from '../../components/nav/PageDetail';
import { PanelGroup, PanelType } from '../../components/nav/PanelGroup';
import { StatusRenderer } from '../../components/render/StatusRenderer';
import { NotesEditor } from '../../components/widgets/MarkdownEditor';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { ModelType } from '../../enums/ModelType';
@@ -297,6 +298,18 @@ export default function PurchaseOrderDetail() {
];
}, [id, order, user]);
const orderBadges: ReactNode[] = useMemo(() => {
return instanceQuery.isLoading
? []
: [
<StatusRenderer
status={order.status}
type={ModelType.purchaseorder}
options={{ size: 'lg' }}
/>
];
}, [order, instanceQuery]);
return (
<>
{editPurchaseOrder.modal}
@@ -308,6 +321,7 @@ export default function PurchaseOrderDetail() {
imageUrl={order.supplier_detail?.image}
breadcrumbs={[{ name: t`Purchasing`, url: '/purchasing/' }]}
actions={poActions}
badges={orderBadges}
/>
<PanelGroup pageKey="purchaseorder" panels={orderPanels} />
</Stack>
@@ -6,7 +6,7 @@ import {
IconNotes,
IconPaperclip
} from '@tabler/icons-react';
import { useMemo } from 'react';
import { ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
import { DetailsField, DetailsTable } from '../../components/details/Details';
@@ -14,6 +14,7 @@ import { DetailsImage } from '../../components/details/DetailsImage';
import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import { PageDetail } from '../../components/nav/PageDetail';
import { PanelGroup, PanelType } from '../../components/nav/PanelGroup';
import { StatusRenderer } from '../../components/render/StatusRenderer';
import { NotesEditor } from '../../components/widgets/MarkdownEditor';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { ModelType } from '../../enums/ModelType';
@@ -220,6 +221,18 @@ export default function ReturnOrderDetail() {
];
}, [order, id]);
const orderBadges: ReactNode[] = useMemo(() => {
return instanceQuery.isLoading
? []
: [
<StatusRenderer
status={order.status}
type={ModelType.returnorder}
options={{ size: 'lg' }}
/>
];
}, [order, instanceQuery]);
return (
<>
<Stack spacing="xs">
@@ -228,6 +241,7 @@ export default function ReturnOrderDetail() {
title={t`Return Order` + `: ${order.reference}`}
subtitle={order.description}
imageUrl={order.customer_detail?.image}
badges={orderBadges}
breadcrumbs={[{ name: t`Sales`, url: '/sales/' }]}
/>
<PanelGroup pageKey="returnorder" panels={orderPanels} />
@@ -9,7 +9,7 @@ import {
IconTruckDelivery,
IconTruckLoading
} from '@tabler/icons-react';
import { useMemo } from 'react';
import { ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom';
import { DetailsField, DetailsTable } from '../../components/details/Details';
@@ -17,6 +17,7 @@ import { DetailsImage } from '../../components/details/DetailsImage';
import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import { PageDetail } from '../../components/nav/PageDetail';
import { PanelGroup, PanelType } from '../../components/nav/PanelGroup';
import { StatusRenderer } from '../../components/render/StatusRenderer';
import { NotesEditor } from '../../components/widgets/MarkdownEditor';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { ModelType } from '../../enums/ModelType';
@@ -244,6 +245,18 @@ export default function SalesOrderDetail() {
];
}, [order, id]);
const orderBadges: ReactNode[] = useMemo(() => {
return instanceQuery.isLoading
? []
: [
<StatusRenderer
status={order.status}
type={ModelType.salesorder}
options={{ size: 'lg' }}
/>
];
}, [order, instanceQuery]);
return (
<>
<Stack spacing="xs">
@@ -252,6 +265,7 @@ export default function SalesOrderDetail() {
title={t`Sales Order` + `: ${order.reference}`}
subtitle={order.description}
imageUrl={order.customer_detail?.image}
badges={orderBadges}
breadcrumbs={[{ name: t`Sales`, url: '/sales/' }]}
/>
<PanelGroup pageKey="salesorder" panels={orderPanels} />
+33 -6
View File
@@ -1,7 +1,9 @@
import { t } from '@lingui/macro';
import {
Alert,
Badge,
Grid,
Group,
LoadingOverlay,
Skeleton,
Stack,
@@ -20,10 +22,11 @@ import {
IconPaperclip,
IconSitemap
} from '@tabler/icons-react';
import { useMemo, useState } from 'react';
import { ReactNode, useMemo, useState } from 'react';
import { useParams } from 'react-router-dom';
import { DetailsField, DetailsTable } from '../../components/details/Details';
import DetailsBadge from '../../components/details/DetailsBadge';
import { DetailsImage } from '../../components/details/DetailsImage';
import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import {
@@ -38,6 +41,7 @@ import {
import { PageDetail } from '../../components/nav/PageDetail';
import { PanelGroup, PanelType } from '../../components/nav/PanelGroup';
import { StockLocationTree } from '../../components/nav/StockLocationTree';
import { StatusRenderer } from '../../components/render/StatusRenderer';
import { NotesEditor } from '../../components/widgets/MarkdownEditor';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { ModelType } from '../../enums/ModelType';
@@ -437,6 +441,33 @@ export default function StockDetail() {
[id, stockitem, user]
);
const stockBadges: ReactNode[] = useMemo(() => {
return instanceQuery.isLoading
? []
: [
<DetailsBadge
color="blue"
label={t`Serial Number` + `: ${stockitem.serial}`}
visible={!!stockitem.serial}
/>,
<DetailsBadge
color="blue"
label={t`Quantity` + `: ${stockitem.quantity}`}
visible={!stockitem.serial}
/>,
<DetailsBadge
color="blue"
label={t`Batch Code` + `: ${stockitem.batch}`}
visible={!!stockitem.batch}
/>,
<StatusRenderer
status={stockitem.status}
type={ModelType.stockitem}
options={{ size: 'lg' }}
/>
];
}, [stockitem, instanceQuery]);
return (
<Stack>
<LoadingOverlay visible={instanceQuery.isFetching} />
@@ -449,11 +480,7 @@ export default function StockDetail() {
title={t`Stock Item`}
subtitle={stockitem.part_detail?.full_name}
imageUrl={stockitem.part_detail?.thumbnail}
detail={
<Alert color="teal" title="Stock Item">
<Text>Quantity: {stockitem.quantity ?? 'idk'}</Text>
</Alert>
}
badges={stockBadges}
breadcrumbs={breadcrumbs}
breadcrumbAction={() => {
setTreeOpen(true);
+13
View File
@@ -31,6 +31,10 @@ interface LocalStateProps {
clearTableColumnNames: () => void;
detailDrawerStack: number;
addDetailDrawer: (value: number | false) => void;
navigationOpen: boolean;
setNavigationOpen: (value: boolean) => void;
allowMobile: boolean;
setAllowMobile: (value: boolean) => void;
}
export const useLocalState = create<LocalStateProps>()(
@@ -87,6 +91,15 @@ export const useLocalState = create<LocalStateProps>()(
detailDrawerStack:
value === false ? 0 : get().detailDrawerStack + value
});
},
// navigation
navigationOpen: false,
setNavigationOpen: (value) => {
set({ navigationOpen: value });
},
allowMobile: false,
setAllowMobile: (value) => {
set({ allowMobile: value });
}
}),
{
+16 -11
View File
@@ -91,6 +91,7 @@ export type InvenTreeTableProps<T = any> = {
onRowClick?: (record: T, index: number, event: any) => void;
onCellClick?: DataTableCellClickHandler<T>;
modelType?: ModelType;
modelField?: string;
};
/**
@@ -515,18 +516,22 @@ export function InvenTreeTable<T = any>({
if (props.onRowClick) {
// If a custom row click handler is provided, use that
props.onRowClick(record, index, event);
} else if (tableProps.modelType && record?.pk) {
// If a model type is provided, navigate to the detail view for that model
let url = getDetailUrl(tableProps.modelType, record.pk);
} else if (tableProps.modelType) {
const pk = record?.[tableProps.modelField ?? 'pk'];
// Should it be opened in a new tab?
if (event?.ctrlKey || event?.shiftKey) {
// Open in a new tab
url = `/${base_url}${url}`;
window.open(url, '_blank');
} else {
// Navigate internally
navigate(url);
if (pk) {
// If a model type is provided, navigate to the detail view for that model
let url = getDetailUrl(tableProps.modelType, pk);
// Should it be opened in a new tab?
if (event?.ctrlKey || event?.shiftKey) {
// Open in a new tab
url = `/${base_url}${url}`;
window.open(url, '_blank');
} else {
// Navigate internally
navigate(url);
}
}
}
},
+2 -1
View File
@@ -83,7 +83,8 @@ export function UsedInTable({
sub_part_detail: true
},
tableFilters: tableFilters,
modelType: ModelType.part
modelType: ModelType.part,
modelField: 'part'
}}
/>
);
@@ -234,6 +234,10 @@ export default function ParametricPartTable({
{
accessor: 'IPN',
sortable: true
},
{
accessor: 'total_in_stock',
sortable: true
}
];
+3 -1
View File
@@ -3,6 +3,7 @@ import { lazy, useEffect } from 'react';
import { setApiDefaults } from '../App';
import { Loadable } from '../functions/loading';
import { useLocalState } from '../states/LocalState';
function checkMobile() {
const { height, width } = useViewportSize();
@@ -15,6 +16,7 @@ const DesktopAppView = Loadable(lazy(() => import('./DesktopAppView')));
// Main App
export default function MainView() {
const [allowMobile] = useLocalState((state) => [state.allowMobile]);
// Set initial login status
useEffect(() => {
// Local state initialization
@@ -22,7 +24,7 @@ export default function MainView() {
}, []);
// Check if mobile
if (checkMobile()) {
if (!allowMobile && checkMobile()) {
return <MobileAppView />;
}
+13
View File
@@ -3,8 +3,16 @@ import { Anchor, Center, Container, Stack, Text, Title } from '@mantine/core';
import { BaseContext } from '../contexts/BaseContext';
import { docLinks } from '../defaults/links';
import { IS_DEV } from '../main';
import { useLocalState } from '../states/LocalState';
export default function MobileAppView() {
const [setAllowMobile] = useLocalState((state) => [state.setAllowMobile]);
function ignore() {
setAllowMobile(true);
window.location.reload();
}
return (
<BaseContext>
<Center h="100vh">
@@ -22,6 +30,11 @@ export default function MobileAppView() {
<Anchor href={docLinks.app}>
<Trans>Read the docs</Trans>
</Anchor>
{IS_DEV && (
<Text onClick={ignore}>
<Trans>Ignore and continue to Desktop view</Trans>
</Text>
)}
</Stack>
</Container>
</Center>

Some files were not shown because too many files have changed in this diff Show More