diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 74601e87fa..22255fd655 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -130,7 +130,7 @@ jobs: rm -rf InvenTree/_testfolder - name: Set up QEMU if: github.event_name != 'pull_request' - uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # pin@v3.2.0 + uses: docker/setup-qemu-action@53851d14592bedcffcf25ea515637cff71ef929a # pin@v3.3.0 - name: Set up Docker Buildx if: github.event_name != 'pull_request' uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # pin@v3.8.0 diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index a4a6f7bb37..d41a886449 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -148,7 +148,7 @@ jobs: - name: Export API Documentation run: invoke dev.schema --ignore-warnings --filename src/backend/InvenTree/schema.yml - name: Upload schema - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # pin@v4.5.0 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # pin@v4.6.0 with: name: schema.yml path: src/backend/InvenTree/schema.yml @@ -219,7 +219,7 @@ jobs: echo "Version: $version" mkdir export/${version} mv schema.yml export/${version}/api.yaml - - uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # pin@v5.0.1 + - uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # pin@v5.1.0 name: Commit schema changes with: commit_message: "Update API schema for ${{ env.version }} / ${{ github.sha }}" @@ -550,7 +550,7 @@ jobs: - name: Run Playwright tests id: tests run: cd src/frontend && npx nyc playwright test - - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # pin@v4.5.0 + - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # pin@v4.6.0 if: ${{ !cancelled() && steps.tests.outcome == 'failure' }} with: name: playwright-report @@ -597,7 +597,7 @@ jobs: run: | cd src/backend/InvenTree/web/static zip -r frontend-build.zip web/ web/.vite - - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # pin@v4.5.0 + - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # pin@v4.6.0 with: name: frontend-build path: src/backend/InvenTree/web/static/web @@ -622,7 +622,7 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # pin@v3 + uses: github/codeql-action/upload-sarif@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # pin@v3 with: sarif_file: results.sarif category: zizmor diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index c15d99301a..a5c408cb82 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 with: name: SARIF file path: results.sarif @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 + uses: github/codeql-action/upload-sarif@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # v3.28.1 with: sarif_file: results.sarif diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index 5395033a05..531317f31b 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -378,18 +378,22 @@ export function DetailsTableField({ return ( + + + + {field.label} + + - - - - {field.label} - - @@ -409,7 +413,11 @@ export function DetailsTable({ title?: string; }>) { return ( - + {title && {title}} diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx index 09104900e5..89a61f4159 100644 --- a/src/frontend/src/components/details/DetailsImage.tsx +++ b/src/frontend/src/components/details/DetailsImage.tsx @@ -2,6 +2,7 @@ import { Trans, t } from '@lingui/macro'; import { AspectRatio, Button, + Grid, Group, Image, Overlay, @@ -421,31 +422,39 @@ export function DetailsImage(props: Readonly) { return ( <> {downloadImage.modal} - - <> - - {permissions.hasChangeRole(props.appRole) && - hasOverlay && - hovered && ( - - - - )} - - + + + <> + + {permissions.hasChangeRole(props.appRole) && + hasOverlay && + hovered && ( + + + + )} + + + ); } diff --git a/src/frontend/src/components/details/ItemDetails.tsx b/src/frontend/src/components/details/ItemDetails.tsx index 77750caf7e..1d0b79d7da 100644 --- a/src/frontend/src/components/details/ItemDetails.tsx +++ b/src/frontend/src/components/details/ItemDetails.tsx @@ -1,16 +1,15 @@ import { Paper, SimpleGrid } from '@mantine/core'; -import { useElementSize } from '@mantine/hooks'; import type React from 'react'; -import { useMemo } from 'react'; export function ItemDetailsGrid(props: React.PropsWithChildren<{}>) { - const { ref, width } = useElementSize(); - - const cols = useMemo(() => (width > 700 ? 2 : 1), [width]); - return ( - + {props.children} diff --git a/src/frontend/src/components/items/MenuLinks.tsx b/src/frontend/src/components/items/MenuLinks.tsx index 9f882e22a5..531b2a81bc 100644 --- a/src/frontend/src/components/items/MenuLinks.tsx +++ b/src/frontend/src/components/items/MenuLinks.tsx @@ -53,7 +53,12 @@ export function MenuLinks({ {title} - + {visibleLinks.map((item) => ( + shortenString({ + str: title, + len: 50 + }), + [title] + ); + + const description = useMemo( + () => + shortenString({ + str: subtitle, + len: 75 + }), + [subtitle] + ); + + const maxCols = useMemo(() => { + let cols = 1; + + if (!!detail) { + cols++; + } + + if (!!badges) { + cols++; + } + + return cols; + }, [detail, badges]); + return ( <> - + {breadcrumbs && breadcrumbs.length > 0 && ( )} - - + + {imageUrl && ( )} @@ -79,30 +124,33 @@ export function PageDetail({ {subtitle && ( {icon} - - {subtitle} - + {description} )} - - {detail} - - {badges?.map((badge, idx) => ( - {badge} - ))} - - - {actions && ( - - {actions.map((action, idx) => ( - {action} + {detail &&
{detail}
} + {badges && ( + + {badges?.map((badge, idx) => ( + {badge} ))} )} -
-
+
+ {actions && ( + + {actions.map((action, idx) => ( + {action} + ))} + + )} + diff --git a/src/frontend/src/components/settings/FactCollection.tsx b/src/frontend/src/components/settings/FactCollection.tsx index 633a92c6d4..ac0e9e2a93 100644 --- a/src/frontend/src/components/settings/FactCollection.tsx +++ b/src/frontend/src/components/settings/FactCollection.tsx @@ -10,7 +10,15 @@ export function FactCollection({ minItems?: number; }>) { return ( - + {items.map((item, index) => ( - + diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index ec0bbecd4d..c28090d6bd 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -239,16 +239,14 @@ export default function BuildDetail() { return ( - - - - - + + + diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index 56c4b3ecff..11e4c8dce6 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -145,22 +145,20 @@ export default function CompanyDetail(props: Readonly) { return ( - - - - - + + + diff --git a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx index c68136fe01..6b8350eab9 100644 --- a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx +++ b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx @@ -133,19 +133,17 @@ export default function ManufacturerPartDetail() { return ( - - - - - + + + diff --git a/src/frontend/src/pages/company/SupplierPartDetail.tsx b/src/frontend/src/pages/company/SupplierPartDetail.tsx index e3e4bec417..f5c9c51f0d 100644 --- a/src/frontend/src/pages/company/SupplierPartDetail.tsx +++ b/src/frontend/src/pages/company/SupplierPartDetail.tsx @@ -217,18 +217,16 @@ export default function SupplierPartDetail() { return ( - - - - + + diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 248298612d..90953b271f 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -5,7 +5,6 @@ import { Grid, Loader, Skeleton, - Space, Stack, Text } from '@mantine/core'; @@ -439,23 +438,21 @@ export default function PartDetail() { return part ? ( - - - - - + + + @@ -1040,9 +1037,7 @@ export default function PartDetail() { }} /> - ) : ( - - ) + ) : null } /> {t`There is no scheduling information available for the selected part`} )} - + + - + + {editPricing.modal} - + diff --git a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx index ce3ea98e33..aeec576b76 100644 --- a/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PurchaseHistoryPanel.tsx @@ -103,7 +103,7 @@ export default function PurchaseHistoryPanel({ }, [table.records]); return ( - + + + - + - - - - - + + + diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx index d598134805..e63f484dd3 100644 --- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx +++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx @@ -233,16 +233,14 @@ export default function ReturnOrderDetail() { return ( - - - - - + + + diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index c0b7e0fa23..282dcf2d49 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -243,16 +243,14 @@ export default function SalesOrderDetail() { return ( - - - - - + + + diff --git a/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx index 1a5e3631b6..a40c1b9b49 100644 --- a/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderShipmentDetail.tsx @@ -175,22 +175,20 @@ export default function SalesOrderShipmentDetail() { return ( <> - - - - - + + + diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index a4ffb6c3ad..3b069e99f4 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -346,19 +346,16 @@ export default function StockDetail() { return ( - - - - - + + +