Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9d40ae0
Update packages
Tiggles May 4, 2026
ff03691
Some typesafety fixes
Tiggles May 6, 2026
52d5879
Re-write every Reducer to use `createSlice` instead.
Tiggles May 13, 2026
9d3c955
Add async to callbacks that don't have it
Tiggles May 13, 2026
f08567e
Previous commit merged another branch and fixed merged conflicts. Tex…
Tiggles May 13, 2026
3e3e59c
Fixes bug in sidebarReducer
Tiggles May 18, 2026
5b365f8
Remove Dashboard reducer, seemingly not in use
Tiggles May 18, 2026
6118669
Use terminal actions
Tiggles May 18, 2026
525682e
Fix provider branding reducer
Tiggles May 18, 2026
728fee6
Fixes popin reducer
Tiggles May 18, 2026
f8801d8
Revert HTML5FileSelector changes
Tiggles May 19, 2026
a2961fb
Fix wrong usage of genericSet in ResourceBrowser
Tiggles May 19, 2026
1f3e253
String change, and revert "Revert HTML5FileSelector changes"
Tiggles May 19, 2026
2c567a0
Add the string-change, please!
Tiggles May 19, 2026
f6dc2d1
Merge remote-tracking branch 'origin/master' into issue-5485-ts-6
Tiggles May 20, 2026
8d7cde2
Apply suggestion from @hschu12
Tiggles May 20, 2026
06c1534
Indentation fixes
Tiggles May 20, 2026
a5ec55b
Merge branch 'issue-5485-ts-6' of github.com:SDU-eScience/UCloud into…
Tiggles May 20, 2026
b666251
Indent change
Tiggles May 20, 2026
bdaac05
version bump before deploy to dev
hschu12 May 20, 2026
f677abe
Merge remote-tracking branch 'origin/master' into issue-5485-ts-6
Tiggles May 21, 2026
05b606b
Add module property for our dynamic imports in Monaco editor
Tiggles May 21, 2026
bb50a52
version bump
hschu12 May 22, 2026
47cefae
Merge remote-tracking branch 'origin/master' into issue-5485-ts-6
Tiggles May 22, 2026
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
2 changes: 1 addition & 1 deletion core2/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2026.3.2
2026.3.1-es6-2
142 changes: 71 additions & 71 deletions frontend-web/webclient/app/Accounting/Allocations/CommonSections.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,8 @@ export const YourAllocations: React.FunctionComponent<{
</Flex>}
right={<Flex flexDirection={"row"} gap={"8px"}>
{tree.usageAndQuota.map((uq, idx) => <React.Fragment key={idx}>
<ProgressBar uq={uq} responsive/>
</React.Fragment>
<ProgressBar uq={uq} responsive />
</React.Fragment>
)}
</Flex>}
indent={indent}
Expand All @@ -177,7 +177,7 @@ export const YourAllocations: React.FunctionComponent<{
<code>{wallet.category.name}</code>
</Flex>}
right={<Flex flexDirection={"row"} gap={"8px"}>
<ProgressBar uq={wallet.usageAndQuota} responsive/>
<ProgressBar uq={wallet.usageAndQuota} responsive />
</Flex>}
indent={indent * 2}
>
Expand Down Expand Up @@ -729,7 +729,7 @@ export const KeyMetrics: React.FunctionComponent<{
const atRiskPercentage = total > 0 ? (atRisk / total) * 100 : 0;
const underusedPercentage = underused > 0 ? (underused / total) * 100 : 0;

if (!hasFeature(Feature.ALLOCATIONS_PAGE_IMPROVEMENTS) || true) return null;
if (!hasFeature(Feature.ALLOCATIONS_PAGE_IMPROVEMENTS) || Math.random() > -1) return null;

return <>
<ReactModal
Expand All @@ -740,13 +740,13 @@ export const KeyMetrics: React.FunctionComponent<{
ariaHideApp={false}
className={classConcat(CardClass, keyMetricsStyle)}
>
<Flex flexDirection={"column"} height={"100%"} width={"100%"}>
<Flex mb="12px">
<div className="key-metrics-settings-container">
<h3>Key metrics settings</h3>
<h4 style={{color: "var(--textSecondary)"}}>Select key metrics to display</h4>
</div>
{/*
<Flex flexDirection={"column"} height={"100%"} width={"100%"}>
<Flex mb="12px">
<div className="key-metrics-settings-container">
<h3>Key metrics settings</h3>
<h4 style={{color: "var(--textSecondary)"}}>Select key metrics to display</h4>
</div>
{/*
Note(Louise): Leave this code disabled until we decide if it is needed or not
<div className="key-metrics-input">
<div className="key-metrics-search-box">
Expand All @@ -759,20 +759,20 @@ export const KeyMetrics: React.FunctionComponent<{
</div>
</div>
*/}
</Flex>

<Box flexGrow={1} minHeight={0} overflowY={"auto"}>
{Object.values(settings).map(setting => (
<KeyMetricSettingsRow key={setting.title} setting={setting} onChange={onSettingsChanged} />
))}
</Box>

<Flex justifyContent="end" px={"20px"} py={"12px"} margin={"-20px"} background={"var(--dialogToolbar)"}
zIndex={10000} gap={"8px"}>
<Button color={"successMain"} type="button" onClick={closeFilters}>Apply</Button>
</Flex>
</Flex>

<Box flexGrow={1} minHeight={0} overflowY={"auto"}>
{Object.values(settings).map(setting => (
<KeyMetricSettingsRow key={setting.title} setting={setting} onChange={onSettingsChanged}/>
))}
</Box>

<Flex justifyContent="end" px={"20px"} py={"12px"} margin={"-20px"} background={"var(--dialogToolbar)"}
zIndex={10000} gap={"8px"}>
<Button color={"successMain"} type="button" onClick={closeFilters}>Apply</Button>
</Flex>
</Flex>

</ReactModal>

<Box mt={32} mb={10} className={keyMetricsStyle}>
Expand All @@ -798,31 +798,31 @@ export const KeyMetrics: React.FunctionComponent<{
<h3>Sub-project allocations</h3>
{state.remoteData.wallets === undefined ? <>
<HexSpin size={64} />
</> : <>
<div>
{allocations.length !== 0 ? null :
<div style={{marginLeft: "20px", marginTop: "10px"}}>
You do not have given out allocated any resources at this time.
When you approve grant applications, the allocated resources will be shown here.
</div>}
</> : <>
<div>
{allocations.length !== 0 ? null :
<div style={{marginLeft: "20px", marginTop: "10px"}}>
You do not have given out allocated any resources at this time.
When you approve grant applications, the allocated resources will be shown here.
</div>}
<Tree apiRef={treeApi}>
{allocations.map(([rawType, tree]) => {
const type = rawType as ProductType;
{allocations.map(([rawType, tree]) => {
const type = rawType as ProductType;

return <TreeNode
key={rawType}
left={
<Flex gap={"4px"}>
<Icon name={Accounting.productTypeToIcon(type)} size={20} />
{Accounting.productAreaTitle(type)}
</Flex>
}
right={<Flex flexDirection={"row"} gap={"8px"}>
{tree.usageAndQuota.map((uq, idx) => {
let label = `${okPercentage.toFixed(2)}% Ok` +
` | ${atRiskPercentage.toFixed(2)}% At risk` +
` | ${underusedPercentage.toFixed(2)}% Underused`;
return <React.Fragment key={idx}>
return <TreeNode
key={rawType}
left={
<Flex gap={"4px"}>
<Icon name={Accounting.productTypeToIcon(type)} size={20} />
{Accounting.productAreaTitle(type)}
</Flex>
}
right={<Flex flexDirection={"row"} gap={"8px"}>
{tree.usageAndQuota.map((uq, idx) => {
let label = `${okPercentage.toFixed(2)}% Ok` +
` | ${atRiskPercentage.toFixed(2)}% At risk` +
` | ${underusedPercentage.toFixed(2)}% Underused`;
return <React.Fragment key={idx}>
<AllocationBar
label={label}
okPercentage={okPercentage}
Expand All @@ -831,26 +831,26 @@ export const KeyMetrics: React.FunctionComponent<{
/>
</React.Fragment>;
}
)}
</Flex>}
indent={indent}
>
{tree.wallets.map((wallet, idx) =>
<TreeNode
key={idx}
left={
<Flex gap={"4px"}>
<ProviderLogo providerId={wallet.category.provider} size={20} />
<code>{wallet.category.name}</code>
</Flex>
}
right={<Flex flexDirection={"row"} gap={"8px"}>
<ProgressBar uq={usageAndQuotaByProduct[productCategoryKey(wallet.category)]} responsive />
)}
</Flex>}
indent={indent}
>
</TreeNode>
)}
</TreeNode>;
{tree.wallets.map((wallet, idx) =>
<TreeNode
key={idx}
left={
<Flex gap={"4px"}>
<ProviderLogo providerId={wallet.category.provider} size={20} />
<code>{wallet.category.name}</code>
</Flex>
}
right={<Flex flexDirection={"row"} gap={"8px"}>
<ProgressBar uq={usageAndQuotaByProduct[productCategoryKey(wallet.category)]} responsive />
</Flex>}
>
</TreeNode>
)}
</TreeNode>;
})}
</Tree>
</div>
Expand Down Expand Up @@ -912,7 +912,7 @@ const FilteredUsageAndQuota: React.FunctionComponent<{
return <>
{filteredEntries.map((uq, idx) => {
if (idx > 2) return null;
return <ProgressBar key={idx} uq={uq} responsive/>;
return <ProgressBar key={idx} uq={uq} responsive />;
})}
</>
}
Expand Down Expand Up @@ -1114,8 +1114,8 @@ const SubProjectListRow: React.FunctionComponent<{
</Flex>
</Flex>}
right={<div className={"sub-alloc"}>
<ProgressBar uq={g.usageAndQuota} responsive/>
<Box width={25} height={25}/>
<ProgressBar uq={g.usageAndQuota} responsive />
<Box width={25} height={25} />
</div>}
onActivate={open => {
if (open) setNodeState(TreeAction.OPEN, workspaceId, g.category.name);
Expand Down Expand Up @@ -1290,7 +1290,7 @@ export const SubProjectFilters: React.FunctionComponent<{
}, []);

useEffect(() => {
dispatchEvent({ type: "SubProjectFilterSettingsLoad", settings: subProjectsDefaultSettings });
dispatchEvent({type: "SubProjectFilterSettingsLoad", settings: subProjectsDefaultSettings});
}, []);

const [ascending, setAscending] = useState<boolean>(true);
Expand Down Expand Up @@ -1346,7 +1346,7 @@ export const SubProjectFilters: React.FunctionComponent<{
state={state}
/> : null
))}
<Divider/>
<Divider />
<div className="sub-projects-sorting-container">
<div className="sub-projects-sorting-headers">
<h3>Sort by</h3>
Expand All @@ -1373,15 +1373,15 @@ export const SubProjectFilters: React.FunctionComponent<{
<TooltipV2 tooltip={ascending ? "Set to ascending" : "Set to descending"}>
<SmallIconButton
icon={ascending ? "heroBarsArrowUp" : "heroBarsArrowDown"}
onClick={onSortingToggle}/>
onClick={onSortingToggle} />
</TooltipV2>
</div>
</div>
</div>
</Box>

<Flex justifyContent="end" px={"20px"} py={"12px"} margin={"-20px"} background={"var(--dialogToolbar)"}
zIndex={10000} gap={"8px"}>
zIndex={10000} gap={"8px"}>
<Button color={"successMain"} type="button" onClick={closeFilters}>Apply</Button>
</Flex>
</Flex>
Expand Down
Loading