Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
8d97948
upgrade antd to v6
hotzenklotz Dec 2, 2025
eed2794
fix more deprecations
hotzenklotz Dec 2, 2025
96c5a5f
fix toast
hotzenklotz Dec 2, 2025
b37c8f6
fix more deprecation warnings
hotzenklotz Dec 4, 2025
5970b6f
bump antd to v6.0.1
hotzenklotz Dec 4, 2025
c3441cf
fix deprecation warning for optionFilterProp
hotzenklotz Dec 4, 2025
29d5858
fix deprecation warning for space direction
hotzenklotz Dec 4, 2025
31bdde4
fix more deprecation warnings
hotzenklotz Dec 4, 2025
0ff11a1
fix more antd v6 layouting issues
hotzenklotz Dec 4, 2025
c02f559
remove unused .ant-table-scroll CSS rule
hotzenklotz Dec 4, 2025
e6b4352
fix more deprecation warning
hotzenklotz Dec 4, 2025
1709cca
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 4, 2025
6748da0
formatting
hotzenklotz Dec 4, 2025
8e98842
show full VX task run name in popups
hotzenklotz Dec 4, 2025
bf9a63e
use <space> for more uniform UI spacing
hotzenklotz Dec 4, 2025
ca40f4a
remove overly broad event handlers
hotzenklotz Dec 4, 2025
3176e78
Update frontend/javascripts/admin/voxelytics/task_list_view.tsx
hotzenklotz Dec 4, 2025
724c088
Update frontend/javascripts/admin/voxelytics/task_list_view.tsx
hotzenklotz Dec 8, 2025
6cd4c5e
Update frontend/javascripts/admin/voxelytics/task_list_view.tsx
hotzenklotz Dec 8, 2025
2380dda
Update frontend/javascripts/admin/account/account_profile_view.tsx
hotzenklotz Dec 8, 2025
2b84535
added <Tag> borders
hotzenklotz Dec 8, 2025
5137abf
fix more tag spacings
hotzenklotz Dec 8, 2025
4fec5a4
fixed more spacings
hotzenklotz Dec 8, 2025
caa8b69
fix more stuff
hotzenklotz Dec 8, 2025
852e157
update antd to v6.1
hotzenklotz Dec 8, 2025
a11d14b
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 8, 2025
aac3469
more spacing fixed
hotzenklotz Dec 8, 2025
2fc6e65
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 9, 2025
edea57d
fix dataset table offset
hotzenklotz Dec 9, 2025
9d50e79
formatting
hotzenklotz Dec 9, 2025
e75f80e
Update frontend/stylesheets/antd_overwrites.less
hotzenklotz Dec 9, 2025
47090c2
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 9, 2025
688342a
fix css formatting
hotzenklotz Dec 9, 2025
53ca500
improve contrast for footer
hotzenklotz Dec 9, 2025
a39dd8b
unified admin page header spacing and layouting
hotzenklotz Dec 9, 2025
20be911
fix project pending instances filter
hotzenklotz Dec 10, 2025
85a4c15
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 10, 2025
fb82631
use the same layout for project progress report as for other admin views
hotzenklotz Dec 10, 2025
428dbda
restore config defaults
hotzenklotz Dec 10, 2025
ef7fb16
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 10, 2025
78dd0fa
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 10, 2025
7c154cb
fix redo/back button corner radius
hotzenklotz Dec 10, 2025
2bcc301
remove a bunch more paddings
hotzenklotz Dec 10, 2025
3c7feb9
formatting
hotzenklotz Dec 10, 2025
ff16122
fix spacing of AI analysis button in navbar
hotzenklotz Dec 11, 2025
22bbee9
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 12, 2025
771eba7
improve toolkit/view mode dropdown behavior
hotzenklotz Dec 12, 2025
d48f2ac
Merge branch 'master' of github.com:scalableminds/webknossos into ant…
hotzenklotz Dec 15, 2025
31a23be
PR feedback; remove unused arguments
hotzenklotz Dec 15, 2025
62c7279
Merge branch 'master' into antd-v6
hotzenklotz Dec 16, 2025
15eec4a
Merge branch 'master' into antd-v6
hotzenklotz Dec 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions frontend/javascripts/admin/account/account_profile_view.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CheckOutlined, DownOutlined, EditOutlined } from "@ant-design/icons";
import ChangeEmailView from "admin/auth/change_email_view";
import { updateSelectedThemeOfUser } from "admin/rest_api";
import { Button, Col, Dropdown, Row } from "antd";
import { Button, Col, Dropdown, Row, Space } from "antd";
import { useWkSelector } from "libs/react_hooks";
import * as Utils from "libs/utils";
import { useState } from "react";
Expand Down Expand Up @@ -94,9 +94,12 @@ function AccountProfileView() {
{
title: "Theme",
content: (
<Dropdown.Button menu={{ items: themeItems }} trigger={["click"]} icon={<DownOutlined />}>
{themeItems.find((item) => item.key === selectedTheme)?.label}
</Dropdown.Button>
<Space.Compact>
<Button>{themeItems.find((item) => item.key === selectedTheme)?.label}</Button>
<Dropdown menu={{ items: themeItems }} trigger={["click"]}>
<Button icon={<DownOutlined />} aria-label="Select theme" />
</Dropdown>
</Space.Compact>
),
},
];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ function AccountSecurityView() {
</FormItem>
<Alert
type="info"
message={messages["auth.reset_logout"]}
title={messages["auth.reset_logout"]}
showIcon
style={{
marginBottom: 24,
Expand Down
8 changes: 5 additions & 3 deletions frontend/javascripts/admin/account/helpers/settings_card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ export function SettingsCard({ title, content, tooltip, action, style }: Setting
{tooltip != null ? (
<Popover
content={tooltip}
overlayInnerStyle={{
maxWidth: 250,
wordWrap: "break-word",
styles={{
container: {
maxWidth: 250,
wordWrap: "break-word",
},
}}
>
<InfoCircleOutlined style={{ marginLeft: 8 }} />
Expand Down
2 changes: 1 addition & 1 deletion frontend/javascripts/admin/auth/authentication_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export default function AuthenticationModal({
return (
<Modal title={step} onCancel={onCancel} open={isOpen} footer={null} maskClosable={false}>
<Alert
message={alertMessage}
title={alertMessage}
type="info"
showIcon
style={{
Expand Down
2 changes: 1 addition & 1 deletion frontend/javascripts/admin/auth/change_email_view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ function ChangeEmailView({ onCancel }: { onCancel: () => void }) {
</FormItem>
<Alert
type="info"
message="You will be logged out after successfully changing your email address."
title="You will be logged out after successfully changing your email address."
showIcon
style={{
marginBottom: 24,
Expand Down
2 changes: 1 addition & 1 deletion frontend/javascripts/admin/auth/login_form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ function LoginForm({ layout, onLoggedIn, hideFooter, style }: Props) {
const iframeWarning = getIsInIframe() ? (
<Alert
type="warning"
message={
title={
<span>
Authentication within an iFrame probably does not work due to third-party cookies being
forbidden in most browsers. Please
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default function SelectImportType({
different ways to accomplish this:
<div style={{ margin: 12 }}>
<Radio.Group onChange={onChange} value={composeMode}>
<Space direction="vertical">
<Space orientation="vertical">
<Radio value={"WITHOUT_TRANSFORMS"}>Combine datasets without any transforms</Radio>
<Radio value={"WK_ANNOTATIONS"}>
Combine datasets by using skeleton annotations (NML)
Expand Down
5 changes: 2 additions & 3 deletions frontend/javascripts/admin/dataset/dataset_components.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export function CardContainer({
marginLeft: "auto",
marginRight: "auto",
}}
bordered={false}
variant="borderless"
title={
<>
<h3 style={{ lineHeight: "10px", marginTop: subtitle != null ? "22px" : "12px" }}>
Expand Down Expand Up @@ -133,9 +133,8 @@ export function DatastoreFormItem({
initialValue={datastores.length ? datastores[0].url : null}
>
<Select
showSearch
showSearch={{ optionFilterProp: "label" }}
placeholder="Select a Datastore"
optionFilterProp="label"
disabled={disabled}
style={{
width: "100%",
Expand Down
10 changes: 5 additions & 5 deletions frontend/javascripts/admin/dataset/dataset_upload_view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ type UploadFormFieldTypes = {
};

export const dataPrivacyInfo = (
<Space direction="horizontal" size={4}>
<Space orientation="horizontal" size={4}>
Per default, imported data is private and only visible within your organization.
<a
style={{ color: "var(--ant-color-primary)" }}
Expand Down Expand Up @@ -690,7 +690,7 @@ class DatasetUploadView extends React.Component<PropsWithFormAndRouter, State> {
);
};

onFormValueChange = (changedValues: UploadFormFieldTypes) => {
onFormValueChange = (changedValues: Partial<UploadFormFieldTypes>) => {
if (changedValues.datastoreUrl) {
this.setState({ datastoreUrl: changedValues.datastoreUrl });
this.updateUnfinishedUploads();
Expand Down Expand Up @@ -722,7 +722,7 @@ class DatasetUploadView extends React.Component<PropsWithFormAndRouter, State> {
{hasPricingPlanExceededStorage(this.props.organization) ? (
<Alert
type="error"
message={
title={
<>
Your organization has exceeded the available storage. Uploading new datasets is
disabled. Visit the{" "}
Expand All @@ -736,7 +736,7 @@ class DatasetUploadView extends React.Component<PropsWithFormAndRouter, State> {

{unfinishedAndNotSelectedUploads.length > 0 && (
<Alert
message={
title={
<>
Unfinished Dataset Uploads{" "}
<Tooltip
Expand Down Expand Up @@ -810,7 +810,7 @@ class DatasetUploadView extends React.Component<PropsWithFormAndRouter, State> {
>
{features().isWkorgInstance && (
<Alert
message={
title={
<>
We are happy to help!
<br />
Expand Down
1 change: 0 additions & 1 deletion frontend/javascripts/admin/job/job_list_view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,6 @@ function JobListView() {
}}
style={{
marginTop: 30,
marginBottom: 30,
}}
>
<Column
Expand Down
10 changes: 3 additions & 7 deletions frontend/javascripts/admin/onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import type { APITeamMembership } from "types/api_types";
import Store from "viewer/store";
import { PERMISSIONS, PermissionsAndTeamsComponent } from "./user/permissions_and_teams_modal_view";

const { Step } = Steps;
const FormItem = Form.Item;

function StepHeader({
Expand Down Expand Up @@ -153,7 +152,7 @@ export function OptionCard({ icon, header, children, action, height }: OptionCar
}}
>
<Card
bordered={false}
variant="borderless"
styles={{
body: {
textAlign: "center",
Expand Down Expand Up @@ -753,11 +752,8 @@ function OnboardingView() {
style={{
height: 25,
}}
>
{availableSteps.map(({ title }) => (
<Step title={title} key={title} />
))}
</Steps>
items={availableSteps.map(({ title }) => ({ title, key: title }))}
/>
</Col>
</Row>
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ export function PlanExceededAlert({ organization }: { organization: APIOrganizat
<Alert
showIcon
type="error"
message={message}
title={message}
action={activeUser && isUserAllowedToRequestUpgrades(activeUser) ? actionButton : null}
style={{ marginBottom: 20 }}
/>
Expand Down Expand Up @@ -181,7 +181,7 @@ export function PlanAboutToExceedAlert({ organization }: { organization: APIOrga
<Alert
showIcon
type="warning"
message="Your WEBKNOSSOS plan is about to expire soon. Renew your plan now to avoid being downgraded, users being blocked, and losing access to features."
title="Your WEBKNOSSOS plan is about to expire soon. Renew your plan now to avoid being downgraded, users being blocked, and losing access to features."
action={activeUser && isUserAllowedToRequestUpgrades(activeUser) ? actionButton : null}
style={{ marginBottom: 20 }}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import dayjs from "dayjs";
import features from "features";
import { formatCurrency } from "libs/format_utils";

import type { GetRef } from "antd/lib";
import renderIndependently from "libs/render_independently";
import Toast from "libs/toast";
import messages from "messages";
Expand Down Expand Up @@ -76,7 +77,7 @@ export function upgradeUserQuota() {
}

function UpgradeUserQuotaModal({ destroy }: { destroy: () => void }) {
const userInputRef = useRef<HTMLInputElement | null>(null);
const userInputRef = useRef<GetRef<typeof InputNumber> | null>(null);

const handleUserUpgrade = async () => {
if (userInputRef.current) {
Expand Down Expand Up @@ -120,7 +121,7 @@ export function upgradeStorageQuota() {
renderIndependently((destroyCallback) => <UpgradeStorageQuotaModal destroy={destroyCallback} />);
}
function UpgradeStorageQuotaModal({ destroy }: { destroy: () => void }) {
const storageInputRef = useRef<HTMLInputElement | null>(null);
const storageInputRef = useRef<GetRef<typeof InputNumber> | null>(null);

const handleStorageUpgrade = async () => {
if (storageInputRef.current) {
Expand Down Expand Up @@ -315,7 +316,7 @@ export function orderWebknossosCredits() {
}

function OrderWebknossosCreditsModal({ destroy }: { destroy: () => void }) {
const userInputRef = useRef<HTMLInputElement | null>(null);
const userInputRef = useRef<GetRef<typeof InputNumber> | null>(null);
const defaultCostPerCreditInEuro = formatCurrency(features().costPerCreditInEuro, "€");
const defaultCostPerCreditInDollar = formatCurrency(features().costPerCreditInDollar, "$");
const [creditCostAsString, setCreditCostsAsString] = useState<string>(
Expand Down
6 changes: 2 additions & 4 deletions frontend/javascripts/admin/project/project_create_view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,8 @@ function ProjectCreateView() {
]}
>
<Select
showSearch
showSearch={{ optionFilterProp: "label" }}
placeholder="Select a Team"
optionFilterProp="label"
style={fullWidth}
disabled={isEditMode}
loading={isFetchingData}
Expand All @@ -127,9 +126,8 @@ function ProjectCreateView() {
]}
>
<Select
showSearch
placeholder="Select a User"
optionFilterProp="label"
showSearch={{ optionFilterProp: "label" }}
style={fullWidth}
disabled={isEditMode}
loading={isFetchingData}
Expand Down
Loading