diff --git a/Tools/Start-CippDevEmulatorsWithKitty.ps1 b/Tools/Start-CippDevEmulatorsWithKitty.ps1
index 39666bdcb05c..7013c054f375 100644
--- a/Tools/Start-CippDevEmulatorsWithKitty.ps1
+++ b/Tools/Start-CippDevEmulatorsWithKitty.ps1
@@ -15,7 +15,7 @@ if ($Process -eq 'y') {
kitty @new-window --new-tab --tab-title `"Azurite`" --cwd $Path -- azurite ;
kitty @new-window --new-tab --tab-title `"FunctionApp`" --cwd (Join-Path $Path `"CIPP-API`") -- func start;
kitty @new-window --new-tab --tab-title `"CIPP Frontend`" --cwd (Join-Path $Path `"CIPP`") -- yarn run dev ;
- kitty @new-window --new-tab --tab-title `"SWA`" --cwd (Join-Path $Path `"CIPP`") -- npm run start-swa;
+ kitty @new-window --new-tab --tab-title `"SWA`" --cwd (Join-Path $Path `"CIPP`") -- yarn run start-swa;
kitty @new-window --new-tab --tab-title `"CIPP-API-Processor`" --cwd (Join-Path $Path `"CIPP-API-Processor`") -- func start --port 7072"
} else {
@@ -23,5 +23,5 @@ if ($Process -eq 'y') {
kitty @new-window --new-tab --tab-title `"Azurite`" --cwd $Path -- azurite ;
kitty @new-window --new-tab --tab-title `"FunctionApp`" --cwd (Join-Path $Path `"CIPP-API`") -- func start;
kitty @new-window --new-tab --tab-title `"CIPP Frontend`" --cwd (Join-Path $Path `"CIPP`") -- yarn run dev ;
- kitty @new-window --new-tab --tab-title `"SWA`" --cwd (Join-Path $Path `"CIPP`") -- npm run start-swa"
+ kitty @new-window --new-tab --tab-title `"SWA`" --cwd (Join-Path $Path `"CIPP`") -- yarn run start-swa"
}
diff --git a/deployment/AzureDeploymentTemplate.json b/deployment/AzureDeploymentTemplate.json
index 91ce52c678a7..54cacf9f1064 100644
--- a/deployment/AzureDeploymentTemplate.json
+++ b/deployment/AzureDeploymentTemplate.json
@@ -241,6 +241,19 @@
"functionAppResourceId": "[resourceId('Microsoft.Web/sites/', variables('funcAppName'))]",
"functionAppRegion": "[resourceGroup().location]"
}
+ },
+ {
+ "type": "Microsoft.Authorization/roleAssignments",
+ "apiVersion": "2022-04-01",
+ "name": "[guid(resourceGroup().id, variables('funcAppName'), 'Contributor')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Web/sites', variables('funcAppName'))]"
+ ],
+ "properties": {
+ "roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
+ "principalId": "[reference(resourceId('Microsoft.Web/sites', variables('funcAppName')),'2019-08-01', 'full').identity.principalId]",
+ "scope": "[resourceGroup().id]"
+ }
}
],
"outputs": {}
diff --git a/deployment/AzureDeploymentTemplate_regionoptions.json b/deployment/AzureDeploymentTemplate_regionoptions.json
index 7e23726404c2..71e0cef97aca 100644
--- a/deployment/AzureDeploymentTemplate_regionoptions.json
+++ b/deployment/AzureDeploymentTemplate_regionoptions.json
@@ -241,6 +241,19 @@
"functionAppResourceId": "[resourceId('Microsoft.Web/sites/', variables('funcAppName'))]",
"functionAppRegion": "[resourceGroup().location]"
}
+ },
+ {
+ "type": "Microsoft.Authorization/roleAssignments",
+ "apiVersion": "2022-04-01",
+ "name": "[guid(resourceGroup().id, variables('funcAppName'), 'Contributor')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Web/sites', variables('funcAppName'))]"
+ ],
+ "properties": {
+ "roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
+ "principalId": "[reference(resourceId('Microsoft.Web/sites', variables('funcAppName')),'2019-08-01', 'full').identity.principalId]",
+ "scope": "[resourceGroup().id]"
+ }
}
],
"outputs": {}
diff --git a/public/version.json b/public/version.json
index 9e50dd4377c9..bd8b4fcf0a2d 100644
--- a/public/version.json
+++ b/public/version.json
@@ -1,3 +1,3 @@
{
- "version": "7.2.1"
+ "version": "7.2.2"
}
diff --git a/src/components/CippCards/CippPropertyListCard.jsx b/src/components/CippCards/CippPropertyListCard.jsx
index 136d77e61635..f6bd1a78b7a3 100644
--- a/src/components/CippCards/CippPropertyListCard.jsx
+++ b/src/components/CippCards/CippPropertyListCard.jsx
@@ -152,22 +152,18 @@ export const CippPropertyListCard = (props) => {
key={`${item.label}-${index}-ActionList-OffCanvas`}
icon={{item.icon}}
label={item.label}
- onClick={
- item.link
- ? () => window.open(item.link, "_blank")
- : () => {
- setActionData({
- data: data,
- action: item,
- ready: true,
- });
- if (item?.noConfirm) {
- item.customFunction(item, data, {});
- } else {
- createDialog.handleOpen();
- }
- }
- }
+ onClick={() => {
+ setActionData({
+ data: data,
+ action: item,
+ ready: true,
+ });
+ if (item?.noConfirm) {
+ item.customFunction(item, data, {});
+ } else {
+ createDialog.handleOpen();
+ }
+ }}
disabled={handleActionDisabled(data, item)}
/>
))}
diff --git a/src/components/CippComponents/CippAutocomplete.jsx b/src/components/CippComponents/CippAutocomplete.jsx
index b87f571b4d38..94b71886d005 100644
--- a/src/components/CippComponents/CippAutocomplete.jsx
+++ b/src/components/CippComponents/CippAutocomplete.jsx
@@ -27,7 +27,6 @@ const MemoTextField = React.memo(function MemoTextField({
{...otherParams}
label={label}
placeholder={placeholder}
- variant="outlined"
{...otherProps}
slotProps={{
inputLabel: {
@@ -275,7 +274,13 @@ export const CippAutoComplete = (props) => {
sx={sx}
renderInput={(params) => (
-
+
{api?.url && api?.showRefresh && (
) : (
- {drilldownData.slice(0, 4).map((data, index) => (
+ {drilldownData?.map((data, index) => (
4, and add spacing between the top and bottom items
+ paddingTop: index === 0 ? 0 : 2,
+ borderTop: index >= 4 && type !== "intune" ? "1px solid lightgrey" : "none",
+ borderRight: index < drilldownData.length - 1 ? "1px solid lightgrey" : "none",
overflowWrap: "anywhere",
whiteSpace: "pre-line",
paddingRight: 2,
diff --git a/src/components/CippTable/CIPPTableToptoolbar.js b/src/components/CippTable/CIPPTableToptoolbar.js
index fd15416b9082..7a135e9335d5 100644
--- a/src/components/CippTable/CIPPTableToptoolbar.js
+++ b/src/components/CippTable/CIPPTableToptoolbar.js
@@ -64,6 +64,10 @@ export const CIPPTableToptoolbar = ({
const pageName = router.pathname.split("/").slice(1).join("/");
const currentTenant = useSettings()?.currentTenant;
+ useEffect(() => {
+ //if usedData changes, deselect all rows
+ table.toggleAllRowsSelected(false);
+ }, [usedData]);
//if the currentTenant Switches, remove Graph filters
useEffect(() => {
if (currentTenant) {
diff --git a/src/components/CippTable/CippDataTable.js b/src/components/CippTable/CippDataTable.js
index a81830221b58..3a040dd4c1eb 100644
--- a/src/components/CippTable/CippDataTable.js
+++ b/src/components/CippTable/CippDataTable.js
@@ -274,7 +274,7 @@ export const CippDataTable = (props) => {
refreshFunction={refreshFunction}
setColumnVisibility={setColumnVisibility}
filters={filters}
- queryKeys={queryKey}
+ queryKeys={queryKey ? queryKey : title}
graphFilterData={graphFilterData}
setGraphFilterData={setGraphFilterData}
setConfiguredSimpleColumns={setConfiguredSimpleColumns}
diff --git a/src/components/CippWizard/CIPPDeploymentStep.js b/src/components/CippWizard/CIPPDeploymentStep.js
index 90a0840fc16e..3ba090c1a75e 100644
--- a/src/components/CippWizard/CIPPDeploymentStep.js
+++ b/src/components/CippWizard/CIPPDeploymentStep.js
@@ -16,7 +16,7 @@ import { CippWizardStepButtons } from "./CippWizardStepButtons";
import { ApiGetCall } from "../../api/ApiCall";
import CippButtonCard from "../CippCards/CippButtonCard";
import { CippCopyToClipBoard } from "../CippComponents/CippCopyToClipboard";
-import { CheckCircle, Sync } from "@mui/icons-material";
+import { CheckCircle, OpenInNew, Sync } from "@mui/icons-material";
import CippPermissionCheck from "../CippSettings/CippPermissionCheck";
import { useQueryClient } from "@tanstack/react-query";
import { CippApiResults } from "../CippComponents/CippApiResults";
@@ -265,12 +265,15 @@ export const CippDeploymentStep = (props) => {
}
onClick={() => openPopup(appId?.data?.refreshUrl)}
color="primary"
+ startIcon={
+
+ }
>
Refresh Graph Token