Skip to content

Commit b6f79e6

Browse files
Merge pull request #38 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents b2196f9 + e1b80ab commit b6f79e6

File tree

77 files changed

+7003
-2444
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+7003
-2444
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,8 @@ yarn-error.log*
2727

2828
# vscode debug logs
2929
debug.log
30-
app.log
30+
app.log
31+
32+
# Cursor IDE
33+
.cursor/rules
34+

cspell.json

Lines changed: 70 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,72 @@
11
{
2-
"version": "0.2",
3-
"ignorePaths": [],
4-
"dictionaryDefinitions": [],
5-
"dictionaries": [],
6-
"words": [
7-
"ADMS",
8-
"AITM",
9-
"Augmentt",
10-
"Autotask",
11-
"Choco",
12-
"CIPP",
13-
"CIPP-API",
14-
"Datto",
15-
"Entra",
16-
"ESET",
17-
"GDAP",
18-
"HIBP",
19-
"Hudu",
20-
"ImmyBot",
21-
"Intune",
22-
"LCID",
23-
"OBEE",
24-
"Passwordless",
25-
"pwpush",
26-
"Rewst",
27-
"Sherweb",
28-
"Syncro",
29-
"Yubikey"
30-
],
31-
"ignoreWords": [
32-
"Addins",
33-
"CIPPAPI",
34-
"PSTN",
35-
"TNEF",
36-
"exo_individualsharing",
37-
"exo_mailboxaudit",
38-
"exo_mailtipsenabled",
39-
"exo_outlookaddins",
40-
"exo_storageproviderrestricted",
41-
"locationcipp",
42-
"mdo_antiphishingpolicies",
43-
"mdo_autoforwardingmode",
44-
"mdo_blockmailforward",
45-
"mdo_commonattachmentsfilter",
46-
"mdo_highconfidencephishaction",
47-
"mdo_highconfidencespamaction",
48-
"mdo_phishthresholdlevel",
49-
"mdo_phisspamacation",
50-
"mdo_safeattachmentpolicy",
51-
"mdo_safeattachments",
52-
"mdo_safedocuments",
53-
"mdo_safelinksforOfficeApps",
54-
"mdo_safelinksforemail",
55-
"mdo_spam_notifications_only_for_admins",
56-
"mdo_zapmalware",
57-
"mdo_zapphish",
58-
"mdo_zapspam",
59-
"microsoftonline",
60-
"mip_search_auditlog",
61-
"winmail"
62-
],
63-
"import": []
2+
"version": "0.2",
3+
"ignorePaths": [],
4+
"dictionaryDefinitions": [],
5+
"dictionaries": [],
6+
"words": [
7+
"ADMS",
8+
"AITM",
9+
"Augmentt",
10+
"Autotask",
11+
"Choco",
12+
"CIPP",
13+
"CIPP-API",
14+
"Datto",
15+
"Entra",
16+
"ESET",
17+
"GDAP",
18+
"HIBP",
19+
"Hudu",
20+
"ImmyBot",
21+
"Intune",
22+
"LCID",
23+
"OBEE",
24+
"passwordless",
25+
"Passwordless",
26+
"pwpush",
27+
"Reshare",
28+
"Rewst",
29+
"Sherweb",
30+
"Syncro",
31+
"TERRL",
32+
"Yubikey"
33+
],
34+
"ignoreWords": [
35+
"Addins",
36+
"Disablex",
37+
"Displayname",
38+
"CIPPAPI",
39+
"PSTN",
40+
"TNEF",
41+
"Equivio",
42+
"Excludedfile",
43+
"exo_individualsharing",
44+
"exo_mailboxaudit",
45+
"exo_mailtipsenabled",
46+
"exo_outlookaddins",
47+
"exo_storageproviderrestricted",
48+
"donotchange",
49+
"locationcipp",
50+
"mdo_antiphishingpolicies",
51+
"mdo_autoforwardingmode",
52+
"mdo_blockmailforward",
53+
"mdo_commonattachmentsfilter",
54+
"mdo_highconfidencephishaction",
55+
"mdo_highconfidencespamaction",
56+
"mdo_phishthresholdlevel",
57+
"mdo_phisspamacation",
58+
"mdo_safeattachmentpolicy",
59+
"mdo_safeattachments",
60+
"mdo_safedocuments",
61+
"mdo_safelinksforOfficeApps",
62+
"mdo_safelinksforemail",
63+
"mdo_spam_notifications_only_for_admins",
64+
"mdo_zapmalware",
65+
"mdo_zapphish",
66+
"mdo_zapspam",
67+
"microsoftonline",
68+
"mip_search_auditlog",
69+
"winmail"
70+
],
71+
"import": []
6472
}

generate-placeholders.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ const pages = [
9999
{ title: "Deleted Mailboxes", path: "/email/administration/deleted-mailboxes" },
100100
{ title: "Mailbox Rules", path: "/email/administration/mailbox-rules" },
101101
{ title: "Contacts", path: "/email/administration/contacts" },
102+
{ title: "Contact Templates", path: "/email/administration/contacts-template" },
102103
{ title: "Quarantine", path: "/email/administration/quarantine" },
103104
{ title: "Tenant Allow/Block Lists", path: "/email/administration/tenant-allow-block-lists" },
104105
{ title: "Mailbox Restore Wizard", path: "/email/tools/mailbox-restore-wizard" },

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cipp",
3-
"version": "7.1.3",
3+
"version": "8.0.3",
44
"author": "CIPP Contributors",
55
"homepage": "https://cipp.app/",
66
"bugs": {
@@ -95,6 +95,7 @@
9595
"react-redux": "9.2.0",
9696
"react-syntax-highlighter": "^15.6.1",
9797
"react-time-ago": "^7.3.3",
98+
"react-virtuoso": "^4.12.8",
9899
"react-window": "^1.8.10",
99100
"redux": "5.0.1",
100101
"redux-devtools-extension": "2.13.9",
@@ -111,4 +112,4 @@
111112
"eslint": "9.22.0",
112113
"eslint-config-next": "15.2.2"
113114
}
114-
}
115+
}

public/version.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "8.0.0"
3-
}
2+
"version": "8.0.3"
3+
}

src/components/CippCards/CippBannerListCard.jsx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ export const CippBannerListCard = (props) => {
3939
</Box>
4040
</Stack>
4141
<Stack alignItems="center" direction="row" spacing={2}>
42-
<Skeleton variant="circular" width={24} height={24} />
4342
<Skeleton variant="text" width={60} />
43+
<Skeleton variant="circular" width={24} height={24} />
4444
</Stack>
4545
</Stack>
4646
</Card>
@@ -74,7 +74,16 @@ export const CippBannerListCard = (props) => {
7474
direction="row"
7575
flexWrap="wrap"
7676
justifyContent="space-between"
77-
sx={{ p: 3 }}
77+
sx={{
78+
p: 3,
79+
...(isCollapsible && {
80+
cursor: "pointer",
81+
"&:hover": {
82+
bgcolor: "action.hover",
83+
},
84+
}),
85+
}}
86+
onClick={isCollapsible ? () => handleExpand(item.id) : undefined}
7887
>
7988
{/* Left Side: cardLabelBox */}
8089
<Stack direction="row" spacing={2} alignItems="center">
@@ -127,8 +136,16 @@ export const CippBannerListCard = (props) => {
127136
<Typography variant="body2">{item.statusText}</Typography>
128137
</Stack>
129138
)}
139+
{item?.cardLabelBoxActions && (
140+
<Box onClick={(e) => e.stopPropagation()}>{item.cardLabelBoxActions}</Box>
141+
)}
130142
{isCollapsible && (
131-
<IconButton onClick={() => handleExpand(item.id)}>
143+
<IconButton
144+
onClick={(e) => {
145+
e.stopPropagation();
146+
handleExpand(item.id);
147+
}}
148+
>
132149
<SvgIcon
133150
fontSize="small"
134151
sx={{
@@ -190,6 +207,7 @@ CippBannerListCard.propTypes = {
190207
actionButton: PropTypes.element,
191208
isFetching: PropTypes.bool,
192209
children: PropTypes.node,
210+
cardLabelBoxActions: PropTypes.element,
193211
})
194212
).isRequired,
195213
isCollapsible: PropTypes.bool,

src/components/CippCards/CippDomainCards.jsx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ function DomainResultCard({ title, data, isFetching, info, type }) {
152152
? {
153153
children: (
154154
<Grid container spacing={2}>
155-
<Grid item size={{ xs: 12 }}>
155+
<Grid size={{ xs: 12 }}>
156156
{info}
157157
</Grid>
158158
</Grid>
@@ -182,7 +182,7 @@ function DomainResultCard({ title, data, isFetching, info, type }) {
182182
? {
183183
children: (
184184
//4 headers, "Record" and then <CippCodeBlock code={record?.Record} /> under it.
185-
(<>
185+
<>
186186
<Typography variant="h6" gutterBottom>
187187
Record:
188188
</Typography>
@@ -237,7 +237,7 @@ function DomainResultCard({ title, data, isFetching, info, type }) {
237237
value: email,
238238
}))}
239239
/>
240-
</>)
240+
</>
241241
),
242242
}
243243
: type === "SPF"
@@ -361,7 +361,7 @@ function DomainResultCard({ title, data, isFetching, info, type }) {
361361
}
362362
isFetching={isFetching}
363363
>
364-
<Grid item size={{ xs: 12 }}>
364+
<Grid size={{ xs: 12 }}>
365365
{info}
366366
</Grid>
367367
<CippOffCanvas visible={visible} onClose={() => setVisible(false)} {...offCanvasData} />
@@ -483,7 +483,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
483483
return (
484484
<form onSubmit={handleSubmit(onSubmit)}>
485485
<Grid container spacing={3}>
486-
<Grid item size={{ xs: fullwidth ? 12 : 4 }}>
486+
<Grid size={{ xs: 12, md: gridItemSize }}>
487487
<CippButtonCard
488488
title="Domain Check"
489489
cardSx={{ display: "flex", flexDirection: "column", height: "100%" }}
@@ -496,7 +496,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
496496
}
497497
>
498498
<Grid container spacing={2}>
499-
<Grid item size={{ xs: 8 }}>
499+
<Grid size={{ xs: 8 }}>
500500
<Controller
501501
name="domain"
502502
control={control}
@@ -505,7 +505,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
505505
)}
506506
/>
507507
</Grid>
508-
<Grid item size={{ xs: 4 }}>
508+
<Grid size={{ xs: 4 }}>
509509
<Button type="submit" variant="contained" startIcon={<SearchIcon />}>
510510
Check
511511
</Button>
@@ -562,7 +562,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
562562

563563
{domain && (
564564
<>
565-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
565+
<Grid size={{ md: gridItemSize, xs: 12 }}>
566566
<DomainResultCard
567567
title="Whois Results"
568568
type="whois"
@@ -575,7 +575,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
575575
}
576576
/>
577577
</Grid>
578-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
578+
<Grid size={{ md: gridItemSize, xs: 12 }}>
579579
<DomainResultCard
580580
title="NS Records"
581581
data={nsData}
@@ -588,10 +588,10 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
588588
}
589589
/>
590590
</Grid>
591-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
591+
<Grid size={{ md: gridItemSize, xs: 12 }}>
592592
<MXResultsCard domain={domain} mxData={mxData} isFetching={mxLoading} />
593593
</Grid>
594-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
594+
<Grid size={{ md: gridItemSize, xs: 12 }}>
595595
<DomainResultCard
596596
title="SPF Record"
597597
type="SPF"
@@ -610,7 +610,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
610610
}
611611
/>
612612
</Grid>
613-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
613+
<Grid size={{ md: gridItemSize, xs: 12 }}>
614614
<DomainResultCard
615615
title="DMARC Policy"
616616
type="DMARC"
@@ -629,7 +629,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
629629
}
630630
/>
631631
</Grid>
632-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
632+
<Grid size={{ md: gridItemSize, xs: 12 }}>
633633
<DomainResultCard
634634
title="DKIM Record"
635635
data={dkimData}
@@ -648,7 +648,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
648648
}
649649
/>
650650
</Grid>
651-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
651+
<Grid size={{ md: gridItemSize, xs: 12 }}>
652652
<DomainResultCard
653653
title="DNSSEC"
654654
type={"DNSSEC"}
@@ -665,7 +665,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
665665
}
666666
/>
667667
</Grid>
668-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
668+
<Grid size={{ md: gridItemSize, xs: 12 }}>
669669
<DomainResultCard
670670
title="MTA-STS"
671671
type="MTA-STS"
@@ -685,7 +685,7 @@ export const CippDomainCards = ({ domain: propDomain = "", fullwidth = false })
685685
/>
686686
</Grid>
687687
{enableHttps && (
688-
<Grid item size={{ md: gridItemSize, xs: 12 }}>
688+
<Grid size={{ md: gridItemSize, xs: 12 }}>
689689
<DomainResultCard
690690
title="HTTPS Certificate"
691691
type="HTTPS"

0 commit comments

Comments
 (0)