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
231140b
Update standards.json
kris6673 Apr 16, 2025
c28c574
typo
kris6673 Apr 16, 2025
fb461f5
Update the Exchange Info Card to include more mailbox hold types
Zacgoose Apr 16, 2025
251aba0
Merge pull request #3972 from Zacgoose/dev
KelvinTegelaar Apr 16, 2025
7acd609
Remove redundant Legal Hold card, Addition of Retention Hold action
Zacgoose Apr 16, 2025
788039e
inclusion of extra hold types from updated API
Zacgoose Apr 16, 2025
ea705ed
Merge pull request #3974 from Zacgoose/dev
KelvinTegelaar Apr 16, 2025
8ceb387
Merge pull request #3970 from kris6673/patch-1
KelvinTegelaar Apr 16, 2025
404c435
fix: remove 'icon' from the icon import to fix page crash
kris6673 Apr 17, 2025
572ff7f
Merge pull request #3982 from kris6673/fix-exchange-actions
rvdwegen Apr 17, 2025
ee95059
feat: add text selection on focus for search input
kris6673 Apr 17, 2025
9c27cb1
Group permissions under "Mailbox Permissions" so that it is more read…
Jr7468 Apr 17, 2025
f990f82
Merge branch 'KelvinTegelaar:dev' into dev
Jr7468 Apr 17, 2025
3f53a8b
feat: add Teams Meeting Recording Expiration standard
kris6673 Apr 17, 2025
f406ab0
Added tracking and modification of per-mailbox recipient limits.
Jr7468 Apr 17, 2025
c9b0a0d
dont allow replacing the value
kris6673 Apr 17, 2025
388c98b
Update Close_Stale_Issues_and_PRs.yml
kris6673 Apr 20, 2025
2c25663
Merge pull request #3992 from kris6673/patch-1
KelvinTegelaar Apr 20, 2025
3c2ca1b
Merge pull request #3988 from kris6673/issue3948
KelvinTegelaar Apr 20, 2025
01ef1a6
Merge pull request #3986 from kris6673/issue3963
KelvinTegelaar Apr 20, 2025
f4911d9
Merge pull request #3984 from Jr7468/dev
KelvinTegelaar Apr 20, 2025
e1db122
Merge pull request #3983 from kris6673/feat-search-selection
KelvinTegelaar Apr 20, 2025
4b2eaf9
fix org repo creation
JohnDuprey Apr 22, 2025
3bf5e20
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
JohnDuprey Apr 22, 2025
53e83c9
fix import
JohnDuprey Apr 22, 2025
fc957a4
Add Welsh to language list
homotechsual Apr 23, 2025
228feb0
Merge pull request #4001 from homotechsual/patch-1
KelvinTegelaar Apr 23, 2025
b24112a
Missing comma
rvdwegen Apr 24, 2025
5ceac61
chore: enable report and alert for AutopilotStatusPage
OfficialEsco Apr 24, 2025
ef69be6
chore: enable report and alert for AutopilotProfile
OfficialEsco Apr 24, 2025
adb862e
Update Exchange Admin Center URL
D-on-GitHub Apr 25, 2025
f129df5
Change Exchange Admin URL
D-on-GitHub Apr 25, 2025
61ecdd6
better formatting for json strings
JohnDuprey Apr 26, 2025
1e7084f
fix theme switching
JohnDuprey Apr 26, 2025
8dc294e
formatting tweaks
JohnDuprey Apr 26, 2025
147a524
fix tenant filter
JohnDuprey Apr 26, 2025
8c91f6c
Update linearProgressWithLabel.jsx
JohnDuprey Apr 26, 2025
97a0ad5
more formatting tweaks
JohnDuprey Apr 26, 2025
4f31273
fix delete prompt
JohnDuprey Apr 26, 2025
3adca0d
add new filter functions
JohnDuprey Apr 26, 2025
5fc7f82
Merge pull request #4008 from D-on-GitHub/patch-1
JohnDuprey Apr 27, 2025
c2e87c3
fix admin urls
JohnDuprey Apr 27, 2025
fbba391
add office
KelvinTegelaar Apr 27, 2025
37e754b
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Apr 27, 2025
34e2c7f
Merge pull request #4006 from Ren-Roros-Digital/chore-AutopilotProfile
KelvinTegelaar Apr 27, 2025
4ee6b60
Merge pull request #4004 from Ren-Roros-Digital/chore-AutopilotStatus…
KelvinTegelaar Apr 27, 2025
46b10ae
Fixes choco package
KelvinTegelaar Apr 27, 2025
0f7733a
Update CippCustomVariables.jsx
JohnDuprey Apr 28, 2025
aaa9f68
remove immybot
JohnDuprey Apr 28, 2025
d989405
Update version.json
JohnDuprey Apr 28, 2025
e3c8dfc
Merge pull request #4017 from KelvinTegelaar/dev
JohnDuprey Apr 28, 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
2 changes: 1 addition & 1 deletion .github/workflows/Close_Stale_Issues_and_PRs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ jobs:
stale-issue-message: 'This issue is stale because it has been open 10 days with no activity. We will close this issue soon. If you want this feature implemented you can contribute it. See: https://docs.cipp.app/dev-documentation/contributing-to-the-code . Please notify the team if you are working on this yourself.'
close-issue-message: 'This issue was closed because it has been stalled for 14 days with no activity.'
stale-issue-label: 'no-activity'
exempt-issue-labels: 'planned,bug'
exempt-issue-labels: 'planned,bug,roadmap'
days-before-stale: 9
days-before-close: 5
2 changes: 1 addition & 1 deletion public/version.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "7.5.1"
"version": "7.5.2"
}
30 changes: 27 additions & 3 deletions src/components/CippCards/CippExchangeInfoCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,17 @@ export const CippExchangeInfoCard = (props) => {
{ name: "ActiveSync", enabled: exchangeData?.MailboxActiveSyncEnabled },
];

// Define mailbox hold types array
const holds = [
{ name: "Compliance Tag Hold", enabled: exchangeData?.ComplianceTagHold },
{ name: "Retention Hold", enabled: exchangeData?.RetentionHold },
{ name: "Litigation Hold", enabled: exchangeData?.LitigationHold },
{ name: "In-Place Hold", enabled: exchangeData?.InPlaceHold },
{ name: "eDiscovery Hold", enabled: exchangeData?.EDiscoveryHold },
{ name: "Purview Retention Hold", enabled: exchangeData?.PurviewRetentionHold },
{ name: "Excluded from Org-Wide Hold", enabled: exchangeData?.ExcludedFromOrgWideHold },
];

return (
<Card {...other}>
<CardHeader
Expand Down Expand Up @@ -164,14 +175,27 @@ export const CippExchangeInfoCard = (props) => {
)
}
/>
{/* Combine all mailbox hold types into a single PropertyListItem */}
<PropertyListItem
divider
label="Litigation Hold"
label="Mailbox Holds"
value={
isLoading ? (
<Skeleton variant="text" width={60} />
<Skeleton variant="text" width={200} />
) : (
getCippFormatting(exchangeData?.LitigationHold, "LitigationHold")
<div>
{holds.map((hold) => (
<Chip
key={hold.name}
label={hold.name}
icon={hold.enabled ? <CheckIcon /> : <CloseIcon />}
color={hold.enabled ? "success" : "default"}
variant="outlined"
size="small"
sx={{ mr: 1, mb: 1 }}
/>
))}
</div>
)
}
/>
Expand Down
11 changes: 7 additions & 4 deletions src/components/CippComponents/CippCentralSearch.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ export const CippCentralSearch = ({ handleClose, open }) => {
label="Search any menu item or page in CIPP"
onChange={handleChange}
onKeyDown={handleKeyDown}
onFocus={(event) => {
// Select all text on focus if there's content
if (event.target.value) {
event.target.select();
}
}}
value={searchValue}
autoFocus
/>
Expand All @@ -106,10 +112,7 @@ export const CippCentralSearch = ({ handleClose, open }) => {
<Grid container spacing={2} mt={2}>
{filteredItems.map((item, index) => (
<Grid item xs={12} sm={12} md={12} key={index}>
<Card
variant="outlined"
sx={{ height: "100%" }}
>
<Card variant="outlined" sx={{ height: "100%" }}>
<CardActionArea
onClick={() => handleCardClick(item.path)}
aria-label={`Navigate to ${item.title}`}
Expand Down
8 changes: 4 additions & 4 deletions src/components/CippComponents/CippCustomVariables.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ const CippCustomVariables = ({ id }) => {
url: "/api/ExecCippReplacemap",
data: {
Action: "!AddEdit",
customerId: id,
tenantId: id,
},
relatedQueryKeys: [`CustomVariables_${id}`],
},
Expand All @@ -77,7 +77,7 @@ const CippCustomVariables = ({ id }) => {
data: {
Action: "Delete",
RowKey: "RowKey",
customerId: id,
tenantId: id,
},
relatedQueryKeys: [`CustomVariables_${id}`],
multiPost: false,
Expand All @@ -100,7 +100,7 @@ const CippCustomVariables = ({ id }) => {
title={id === "AllTenants" ? "Global Variables" : "Custom Variables"}
actions={actions}
api={{
url: `/api/ExecCippReplacemap?Action=List&customerId=${id}`,
url: `/api/ExecCippReplacemap?Action=List&tenantId=${id}`,
dataKey: "Results",
}}
simpleColumns={["RowKey", "Value"]}
Expand Down Expand Up @@ -147,7 +147,7 @@ const CippCustomVariables = ({ id }) => {
api={{
type: "POST",
url: "/api/ExecCippReplacemap",
data: { Action: "AddEdit", customerId: id },
data: { Action: "AddEdit", tenantId: id },
relatedQueryKeys: [`CustomVariables_${id}`],
}}
/>
Expand Down
16 changes: 16 additions & 0 deletions src/components/CippComponents/CippExchangeActions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
Outbox,
NotificationImportant,
DataUsage,
MailLock,
} from "@mui/icons-material";

export const CippExchangeActions = () => {
Expand Down Expand Up @@ -187,6 +188,21 @@ export const CippExchangeActions = () => {
},
],
},
{
label: "Set Retention Hold",
type: "POST",
url: "/api/ExecSetRetentionHold",
data: { UPN: "UPN", Identity: "Id" },
confirmText: "What do you want to set Retention Hold to?",
icon: <MailLock />,
fields: [
{
type: "switch",
name: "disable",
label: "Disable Retention Hold",
},
],
},
{
label: "Set Mailbox Locale",
type: "POST",
Expand Down
2 changes: 1 addition & 1 deletion src/components/CippComponents/CippTenantSelector.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ export const CippTenantSelector = (props) => {
},
{
label: "Exchange Portal",
link: `https://admin.exchange.microsoft.com/?landingpage=homepage&form=mac_sidebar&delegatedOrg=${currentTenant?.value}`,
link: `https://admin.cloud.microsoft/exchange?landingpage=homepage&form=mac_sidebar&delegatedOrg=${currentTenant?.value}`,
icon: <Mail />,
},
{
Expand Down
29 changes: 29 additions & 0 deletions src/components/CippComponents/CollapsibleChipList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React, { useState } from "react";
import { Box, Link } from "@mui/material";

export const CollapsibleChipList = ({ children, maxItems = 4 }) => {
const [expanded, setExpanded] = useState(false);
const childArray = React.Children.toArray(children);
const hasMoreItems = childArray.length > maxItems;

const toggleExpanded = (e) => {
e.preventDefault();
setExpanded(!expanded);
};

return (
<Box sx={{ display: "flex", flexWrap: "wrap", gap: 0.5, alignItems: "center" }}>
{expanded ? childArray : childArray.slice(0, maxItems)}

{hasMoreItems && (
<Link
href="#"
onClick={toggleExpanded}
sx={{ ml: 0.5, fontSize: "0.8rem", whiteSpace: "nowrap" }}
>
{expanded ? "Show less" : `+${childArray.length - maxItems} more`}
</Link>
)}
</Box>
);
};
Loading