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:
@@ -10,7 +10,7 @@ on:
|
||||
types: [ "labeled", "closed" ]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
backport:
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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: (
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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' },
|
||||
|
||||
@@ -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} />
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
}),
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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,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 />;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user