Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
33575ed
excluded tennats alerts
KelvinTegelaar Mar 7, 2025
3f6a393
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 7, 2025
6d17bb1
add to list
KelvinTegelaar Mar 7, 2025
3bc9b04
add amount of rows selected
KelvinTegelaar Mar 7, 2025
f5ca02c
add sku details to sherweb license add
JohnDuprey Mar 8, 2025
4a7f1f0
feat: Added DoNotRewriteUrls to SafeLinks
OfficialEsco Mar 8, 2025
f5bb12c
feat: Added AllowedSenderDomains to SpamFilter
OfficialEsco Mar 8, 2025
ee9dd5e
Fix actions and casing of the properties
kris6673 Mar 8, 2025
c308809
fix assign to current user
kris6673 Mar 8, 2025
75a1c42
remove unused import for useSettings in incidents list page
kris6673 Mar 8, 2025
7da8c16
move a few things around to make it more pleasing to the eye
kris6673 Mar 8, 2025
3b77204
add alert for new Defender Incidents
kris6673 Mar 8, 2025
c3ae422
Merge pull request #3773 from Ren-Roros-Digital/DoNotRewriteUrls
KelvinTegelaar Mar 9, 2025
897d2f6
Merge pull request #3774 from kris6673/incidents-alerts
KelvinTegelaar Mar 9, 2025
b8037fe
#3741
KelvinTegelaar Mar 9, 2025
a033082
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 9, 2025
9d6c5c5
added dates to lit hold
KelvinTegelaar Mar 9, 2025
a28fe18
delete device
KelvinTegelaar Mar 9, 2025
14d7729
add impact
KelvinTegelaar Mar 9, 2025
2f4081d
allow preselectedvalue for tenant selector.
KelvinTegelaar Mar 10, 2025
c00b98f
add MessageCopyForSentAsEnabled property
kris6673 Mar 10, 2025
961b881
Merge pull request #3778 from kris6673/fix-MessageCopyForSentAsEnabled
JohnDuprey Mar 10, 2025
1612643
fix: bpa report refreshing
JohnDuprey Mar 11, 2025
93c0254
fix: add asapp to presets
JohnDuprey Mar 11, 2025
c7b676e
minor fix
KelvinTegelaar Mar 11, 2025
6997afe
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 11, 2025
25bf5f2
support fullscreen dialog boxes
JohnDuprey Mar 12, 2025
e96a8f0
Update CippMessageViewer.jsx
JohnDuprey Mar 12, 2025
ba16e03
feat: anti-spam header parsing
JohnDuprey Mar 12, 2025
f7acb20
Update CippForefrontHeaderDialog.jsx
JohnDuprey Mar 12, 2025
6fe1d8b
feat: edit tenant/tenant groups
JohnDuprey Mar 13, 2025
30d7b65
fix: show the right domain and not just the first one
kris6673 Mar 13, 2025
0686ada
feat: global variables
JohnDuprey Mar 13, 2025
07a9991
feat: full tenant group management
JohnDuprey Mar 13, 2025
cc05e9e
Update CippCustomVariables.jsx
JohnDuprey Mar 13, 2025
a0834b9
fix build error
JohnDuprey Mar 13, 2025
eb002dc
Update edit.js
JohnDuprey Mar 13, 2025
ea4eb35
Merge pull request #3795 from kris6673/fix-default-domain
KelvinTegelaar Mar 13, 2025
1b8d608
feat: support groups in CippFormTenantSelector
JohnDuprey Mar 13, 2025
cb50bb0
Update offboarding.js
JohnDuprey Mar 13, 2025
3884750
reserved variables
JohnDuprey Mar 14, 2025
7457fd9
Fixed Intune capitalisation on Devices page
isgq-github01 Mar 14, 2025
f868a3a
Fixed Intune capitalisation on Device Score report
isgq-github01 Mar 14, 2025
0f6823e
Merge pull request #3798 from isgq-github01/patch-1
KelvinTegelaar Mar 14, 2025
b0323c7
Merge pull request #3799 from isgq-github01/patch-2
KelvinTegelaar Mar 14, 2025
d5c76a8
feat: custom data management
JohnDuprey Mar 14, 2025
7c2499f
feat: directory extension support
JohnDuprey Mar 14, 2025
ab451dc
Update index.js
JohnDuprey Mar 14, 2025
9b3c5f7
feat: add startup message for CIPP Dev Emulators
kris6673 Mar 15, 2025
b974bee
feat: add support for allowed senders/Allowlist
kris6673 Mar 15, 2025
0672435
fix: app permission builder tweaks
JohnDuprey Mar 15, 2025
ba5e3d0
fix: standards null safety
JohnDuprey Mar 15, 2025
8ce4d9e
add warning alert
JohnDuprey Mar 15, 2025
7304f73
feat: function offloading versions
JohnDuprey Mar 16, 2025
ed2adc0
Update function-offloading.js
JohnDuprey Mar 16, 2025
e0a6d03
Update function-offloading.js
JohnDuprey Mar 16, 2025
c2083ed
Update function-offloading.js
JohnDuprey Mar 16, 2025
998b15b
Update function-offloading.js
JohnDuprey Mar 16, 2025
65138ab
Update function-offloading.js
JohnDuprey Mar 16, 2025
23140e1
Merge pull request #3804 from kris6673/spoof-warn
KelvinTegelaar Mar 16, 2025
2df897f
Update licenses to newest version
kris6673 Mar 16, 2025
656dff0
yarn upgrade
KelvinTegelaar Mar 16, 2025
ee6f010
massive upgrade of packages
KelvinTegelaar Mar 16, 2025
c142f0e
fixes for preselect and other select issues.
KelvinTegelaar Mar 16, 2025
278270e
fix for added fields
KelvinTegelaar Mar 16, 2025
333d627
major package updates
KelvinTegelaar Mar 16, 2025
a59959b
fix: next export error
JohnDuprey Mar 17, 2025
86ebcfe
prevent refetches when changing pages for some calls
JohnDuprey Mar 17, 2025
9c16743
Update _app.js
JohnDuprey Mar 17, 2025
46c09d8
Update _app.js
JohnDuprey Mar 17, 2025
dd56f99
fix: permission builder issues
JohnDuprey Mar 17, 2025
8ad35c8
pretty up copy to clipboard
JohnDuprey Mar 17, 2025
a6893dc
Merge pull request #3806 from kris6673/chore-license-update
KelvinTegelaar Mar 17, 2025
fab0ec6
permission builder tweaks
JohnDuprey Mar 17, 2025
afcb098
make loading skeleton bigger, hide accordion until loaded
JohnDuprey Mar 17, 2025
2ce7695
permission check fixes
JohnDuprey Mar 17, 2025
4263f4e
fix import with missing pieces of report
JohnDuprey Mar 17, 2025
a4c1c00
new compare mockks
KelvinTegelaar Mar 18, 2025
e1cad9a
feat: edit group improvements
JohnDuprey Mar 18, 2025
bf96d67
tmp pushpush
KelvinTegelaar Mar 19, 2025
f3a5649
fix add group
JohnDuprey Mar 19, 2025
639d687
add dataFilter to api prop
JohnDuprey Mar 19, 2025
399a422
extend cippformcondition
JohnDuprey Mar 20, 2025
8b1e019
custom data mapping
JohnDuprey Mar 20, 2025
e493eb3
Update add.js
JohnDuprey Mar 20, 2025
3944f81
fix for actions on user page
KelvinTegelaar Mar 20, 2025
929609d
test
KelvinTegelaar Mar 20, 2025
d92069e
fix oopsie
JohnDuprey Mar 20, 2025
e263fa3
Delete src/pages/cipp/custom-data/mappings/edit.js
KelvinTegelaar Mar 20, 2025
c1de1f9
row stuff
KelvinTegelaar Mar 20, 2025
00e01e3
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 20, 2025
fe26446
remove console.log because kevin and gary scare me.
KelvinTegelaar Mar 20, 2025
99faa38
update defaultvalue for input
KelvinTegelaar Mar 20, 2025
4925bbb
nullsafety in case you forgot to select a tenant
KelvinTegelaar Mar 20, 2025
cff6f40
extension mapping tweaks
JohnDuprey Mar 20, 2025
3491119
fix edit group
JohnDuprey Mar 20, 2025
bea8028
data mapping tweaks
JohnDuprey Mar 20, 2025
a1b8ebe
better compare
KelvinTegelaar Mar 20, 2025
e675a6b
custom data frontend
JohnDuprey Mar 20, 2025
4b5e263
Update add.js
JohnDuprey Mar 20, 2025
7bf93d1
Update index.js
JohnDuprey Mar 20, 2025
b155713
Update index.js
JohnDuprey Mar 20, 2025
bb018b3
cleanup
JohnDuprey Mar 21, 2025
8e1c3d2
improve autocomplete speeds
JohnDuprey Mar 21, 2025
98f6605
Update log.js
JohnDuprey Mar 21, 2025
67c9cc5
Add Requested to Preset Filters
TMGCL-TS Mar 21, 2025
b048311
initial wizard create
JohnDuprey Mar 21, 2025
53eecc7
Merge pull request #3833 from TMGCL-TS/dev
KelvinTegelaar Mar 21, 2025
69ce24d
prettify tenant form
JohnDuprey Mar 21, 2025
6f1b039
add tenant wizard
JohnDuprey Mar 21, 2025
fcdb832
Update CippAddTenantForm.jsx
JohnDuprey Mar 21, 2025
722f5dd
confirmation page tweaks
JohnDuprey Mar 21, 2025
d857172
tenant wizard tweaks
JohnDuprey Mar 21, 2025
475ef6d
new tenant form
JohnDuprey Mar 21, 2025
05868b4
Update index.js
JohnDuprey Mar 22, 2025
602dd6c
fix multiple input fields in audit logs
JohnDuprey Mar 22, 2025
89acf63
fix: autocomplete exception on incorrect value types
JohnDuprey Mar 23, 2025
7738677
fix default values
JohnDuprey Mar 23, 2025
736ddac
improve default value population
JohnDuprey Mar 23, 2025
c8b3cac
add delete invite
JohnDuprey Mar 23, 2025
56d4d46
gdap improvements
JohnDuprey Mar 23, 2025
62441ca
tweak headered tab layout
JohnDuprey Mar 23, 2025
a0a022c
feat: adjustable max height offset for tables
JohnDuprey Mar 23, 2025
c3f1a99
cleanup imports and update text
JohnDuprey Mar 23, 2025
a8a19ca
backUrl support on headered tabbed layout page
JohnDuprey Mar 23, 2025
bfc4844
gdap advanced mode
JohnDuprey Mar 23, 2025
a661a64
Update add.js
JohnDuprey Mar 23, 2025
b04e67c
GDAP tweaks
JohnDuprey Mar 23, 2025
2468a27
update wording
JohnDuprey Mar 23, 2025
5c2491e
gdap tweaks
JohnDuprey Mar 23, 2025
c2f5113
set dialogs to full screen on mobile
JohnDuprey Mar 23, 2025
6ac4751
update text
JohnDuprey Mar 23, 2025
2250c4f
add links to MS documentation
JohnDuprey Mar 23, 2025
f824ca2
chore: alphabetize the default roles
JohnDuprey Mar 23, 2025
9b9cf00
fix table page offsets with tabs
JohnDuprey Mar 23, 2025
624aa0e
add filters
JohnDuprey Mar 23, 2025
1ca322d
default table sorting support
JohnDuprey Mar 23, 2025
a7d8e88
feat: mobile friendly improvements
JohnDuprey Mar 24, 2025
6b7af64
prettification
KelvinTegelaar Mar 24, 2025
6c6a98f
spacing
KelvinTegelaar Mar 24, 2025
3f4e126
integration query tweaks
JohnDuprey Mar 24, 2025
e33a5b4
fix table buttons
JohnDuprey Mar 24, 2025
b463f82
changes
KelvinTegelaar Mar 24, 2025
a5b303a
fix: richText values
JohnDuprey Mar 24, 2025
01f851e
fix: too many rerenders on richText
JohnDuprey Mar 24, 2025
ee25587
compare report header
JohnDuprey Mar 24, 2025
569267b
fix onboarding form
JohnDuprey Mar 24, 2025
e1c86b0
minor tweaks
JohnDuprey Mar 24, 2025
b306c48
update auto schedule limit
JohnDuprey Mar 24, 2025
3c31001
updated to support intune policies
KelvinTegelaar Mar 24, 2025
de76f1c
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 24, 2025
873ed94
fix rendering issues with exch cmdlets
JohnDuprey Mar 24, 2025
e654ad6
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
JohnDuprey Mar 24, 2025
9823d81
Update CippRemediationCard.jsx
kris6673 Mar 25, 2025
b783f81
exchange info refresh
JohnDuprey Mar 25, 2025
66e646d
Merge pull request #3852 from kris6673/patch-1
KelvinTegelaar Mar 25, 2025
2d02443
last fronttend change before release
KelvinTegelaar Mar 25, 2025
1c03148
removed creatable
KelvinTegelaar Mar 25, 2025
3d6f2e1
version up
KelvinTegelaar Mar 25, 2025
68c1393
Merge pull request #3858 from KelvinTegelaar/dev
KelvinTegelaar Mar 25, 2025
4f38eb0
Update yarn.lock
JohnDuprey Mar 25, 2025
1e5af22
Merge pull request #3860 from KelvinTegelaar/dev
KelvinTegelaar Mar 25, 2025
ed4609e
Update package.json
JohnDuprey Mar 25, 2025
0398ebe
Merge pull request #3862 from KelvinTegelaar/dev
JohnDuprey Mar 25, 2025
9216305
Update dev_deploy.yml
KelvinTegelaar Mar 25, 2025
467ad6a
test
KelvinTegelaar Mar 25, 2025
ad884a5
Update dev_deploy.yml
KelvinTegelaar Mar 25, 2025
6932342
Merge pull request #3864 from KelvinTegelaar/dev
JohnDuprey Mar 25, 2025
b0f87cc
Update dev_deploy.yml
KelvinTegelaar Mar 25, 2025
640c8da
Update dev_deploy.yml
KelvinTegelaar Mar 25, 2025
91fd1b9
added gitignore app log
KelvinTegelaar Mar 25, 2025
830e0ac
Update dev_deploy.yml
KelvinTegelaar Mar 25, 2025
647f9b2
package update with cleanup text
KelvinTegelaar Mar 25, 2025
77bcee4
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 25, 2025
dae68a8
test
KelvinTegelaar Mar 25, 2025
b2a8068
small change
KelvinTegelaar Mar 25, 2025
5b31bb6
next test
KelvinTegelaar Mar 25, 2025
d9205e3
up version
KelvinTegelaar Mar 25, 2025
4a3d98a
Merge pull request #3865 from KelvinTegelaar/dev
KelvinTegelaar Mar 25, 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/dev_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: '/' # App source code path
api_location: '' # Api source code path - optional
output_location: 'out' # Built app content directory - optional
output_location: '/out' # Built app content directory - optional
###### End of Repository/Build Configurations ######

close_pull_request_job:
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ yarn-debug.log*
yarn-error.log*

# vscode debug logs
debug.log
debug.log
app.log
6 changes: 3 additions & 3 deletions Tools/Start-CippDevEmulators.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Get-Command wt -ErrorAction Stop | Out-Null
Get-Process node -ErrorAction SilentlyContinue | Stop-Process -ErrorAction SilentlyContinue
$Path = (Get-Item $PSScriptRoot).Parent.Parent.FullName
Write-Host "CIPP Dev Emulators starting in $Path" -ForegroundColor Green

pwsh -file (Join-Path $PSScriptRoot 'Start-CippDevInstallation.ps1')

Expand All @@ -11,8 +12,7 @@ if (Test-Path (Join-Path $Path 'CIPP-API-Processor')) {
}

if ($Process -eq 'y') {
wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa`; new-tab --title 'CIPP-API-Processor' -d $Path\CIPP-API-Processor pwsh -c func start --port 7072
wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa`; new-tab --title 'CIPP-API-Processor' -d $Path\CIPP-API-Processor pwsh -c func start --port 7072
} else {
wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa
wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa
}

2 changes: 2 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ const config = {
async redirects() {
return [];
},
output: "export",
distDir: "./out",
};

module.exports = config;
86 changes: 43 additions & 43 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,36 +8,36 @@
},
"license": "AGPL-3.0",
"engines": {
"node": "^22.13.0"
"node": "^20.18.3"
},
"repository": {
"type": "git",
"url": "git@github.com:KelvinTegelaar/CIPP.git"
},
"scripts": {
"dev": "next -H 127.0.0.1",
"build": "next build && next export",
"build": "next build && rm -rf package.json yarn.lock",
"start": "next start",
"export": "next export",
"lint": "next lint",
"lint-fix": "next lint --fix",
"start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://127.0.0.1:7071 --verbose=silly"
},
"dependencies": {
"@emotion/cache": "11.10.5",
"@emotion/react": "11.13.3",
"@emotion/server": "11.10.0",
"@emotion/styled": "11.13.0",
"@heroicons/react": "2.0.15",
"@emotion/cache": "11.14.0",
"@emotion/react": "11.14.0",
"@emotion/server": "11.11.0",
"@emotion/styled": "11.14.0",
"@heroicons/react": "2.2.0",
"@monaco-editor/react": "^4.6.0",
"@mui/icons-material": "6.1.6",
"@mui/lab": "6.0.0-beta.14",
"@mui/material": "6.1.6",
"@mui/system": "6.1.6",
"@mui/x-date-pickers": "7.22.1",
"@mui/icons-material": "6.4.7",
"@mui/lab": "6.0.0-beta.30",
"@mui/material": "6.4.7",
"@mui/system": "6.4.7",
"@mui/x-date-pickers": "7.27.3",
"@musement/iso-duration": "^1.0.0",
"@react-pdf/renderer": "3.1.2",
"@reduxjs/toolkit": "1.9.2",
"@react-pdf/renderer": "4.3.0",
"@reduxjs/toolkit": "2.6.1",
"@tanstack/react-query": "^5.51.11",
"@tanstack/react-query-devtools": "^5.51.11",
"@tanstack/react-table": "^8.19.2",
Expand All @@ -49,63 +49,63 @@
"@tiptap/react": "^2.9.1",
"@tiptap/starter-kit": "^2.9.1",
"@uiw/react-json-view": "^2.0.0-alpha.30",
"apexcharts": "3.36.3",
"apexcharts": "4.5.0",
"axios": "^1.7.2",
"date-fns": "2.29.3",
"eml-parse-js": "^1.1.15",
"date-fns": "4.1.0",
"eml-parse-js": "^1.2.0-beta.0",
"export-to-csv": "^1.3.0",
"formik": "2.2.9",
"formik": "2.4.6",
"gray-matter": "4.0.3",
"i18next": "22.4.9",
"i18next": "24.2.3",
"javascript-time-ago": "^2.5.11",
"jspdf": "^2.5.1",
"jspdf-autotable": "^3.8.2",
"jspdf": "^3.0.0",
"jspdf-autotable": "^5.0.2",
"leaflet": "^1.9.4",
"leaflet-defaulticon-compatibility": "^0.1.2",
"leaflet.markercluster": "^1.5.3",
"lodash.isequal": "4.5.0",
"material-react-table": "^3.0.1",
"monaco-editor": "^0.52.0",
"mui-tiptap": "^1.14.0",
"next": "^13.5.6",
"next": "^15.2.2",
"nprogress": "0.2.0",
"numeral": "2.0.6",
"prop-types": "15.8.1",
"react": "18.2.0",
"react-apexcharts": "1.4.0",
"react": "19.0.0",
"react-apexcharts": "1.7.0",
"react-beautiful-dnd": "13.1.1",
"react-copy-to-clipboard": "^5.1.0",
"react-dom": "18.2.0",
"react-dropzone": "14.2.3",
"react-error-boundary": "^4.0.13",
"react-dom": "19.0.0",
"react-dropzone": "14.3.8",
"react-error-boundary": "^5.0.0",
"react-grid-layout": "^1.5.0",
"react-hook-form": "^7.53.0",
"react-hot-toast": "2.4.0",
"react-hot-toast": "2.5.2",
"react-html-parser": "^2.0.2",
"react-i18next": "12.1.4",
"react-leaflet": "4.2.1",
"react-leaflet-markercluster": "^4.2.1",
"react-markdown": "8.0.5",
"react-i18next": "15.4.1",
"react-leaflet": "5.0.0",
"react-leaflet-markercluster": "^5.0.0-rc.0",
"react-markdown": "10.1.0",
"react-media-hook": "^0.5.0",
"react-papaparse": "^4.4.0",
"react-quill": "^0.0.2",
"react-redux": "8.0.5",
"react-quill": "^2.0.0",
"react-redux": "9.2.0",
"react-syntax-highlighter": "^15.6.1",
"react-time-ago": "^7.3.3",
"react-window": "^1.8.10",
"redux": "4.2.1",
"redux": "5.0.1",
"redux-devtools-extension": "2.13.9",
"redux-persist": "^6.0.0",
"redux-thunk": "2.4.2",
"simplebar": "6.2.0",
"simplebar-react": "3.2.0",
"redux-thunk": "3.1.0",
"simplebar": "6.3.0",
"simplebar-react": "3.3.0",
"stylis-plugin-rtl": "2.1.1",
"typescript": "4.9.4",
"yup": "0.32.11"
"typescript": "5.8.2",
"yup": "1.6.1"
},
"devDependencies": {
"@svgr/webpack": "6.5.1",
"eslint": "8.32.0",
"eslint-config-next": "13.1.6"
"@svgr/webpack": "8.1.0",
"eslint": "9.22.0",
"eslint-config-next": "15.2.2"
}
}
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.3.2"
"version": "7.4.1"
}
8 changes: 7 additions & 1 deletion src/api/ApiCall.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { keepPreviousData, useInfiniteQuery, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import axios, { isAxiosError } from "axios";
import { useDispatch } from "react-redux";
import { showToast } from "../store/toasts";
Expand All @@ -17,6 +17,9 @@ export function ApiGetCall(props) {
onResult,
staleTime = 600000, // 10 minutes
refetchOnWindowFocus = false,
refetchOnMount = true,
refetchOnReconnect = true,
keepPreviousData = false,
} = props;
const queryClient = useQueryClient();
const dispatch = useDispatch();
Expand Down Expand Up @@ -102,6 +105,9 @@ export function ApiGetCall(props) {
},
staleTime: staleTime,
refetchOnWindowFocus: refetchOnWindowFocus,
refetchOnMount: refetchOnMount,
refetchOnReconnect: refetchOnReconnect,
keepPreviousData: keepPreviousData,
retry: retryFn,
});
return queryInfo;
Expand Down
63 changes: 47 additions & 16 deletions src/components/CippCards/CippExchangeInfoCard.jsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
import PropTypes from "prop-types";
import { Card, CardHeader, Divider, Skeleton, Chip } from "@mui/material";
import {
Card,
CardHeader,
Divider,
Skeleton,
Chip,
IconButton,
Typography,
CircularProgress,
} from "@mui/material";
import { PropertyList } from "/src/components/property-list";
import { PropertyListItem } from "/src/components/property-list-item";
import { getCippFormatting } from "../../utils/get-cipp-formatting";
import { Check as CheckIcon, Close as CloseIcon } from "@mui/icons-material";
import { Check as CheckIcon, Close as CloseIcon, Sync } from "@mui/icons-material";
import { LinearProgressWithLabel } from "../linearProgressWithLabel";
import { Stack } from "@mui/system";

export const CippExchangeInfoCard = (props) => {
const { exchangeData, isFetching = false, ...other } = props;
const { exchangeData, isLoading = false, isFetching = false, handleRefresh, ...other } = props;

// Define the protocols array
const protocols = [
Expand All @@ -21,14 +31,30 @@ export const CippExchangeInfoCard = (props) => {

return (
<Card {...other}>
<CardHeader title="Exchange Details" />
<CardHeader
title={
<Stack
direction="row"
sx={{ alignItems: "center", display: "flex", justifyContent: "space-between" }}
>
<Typography variant="h6">Exchange Information</Typography>
{isFetching ? (
<CircularProgress size={20} />
) : (
<IconButton onClick={handleRefresh} size="small">
<Sync />
</IconButton>
)}
</Stack>
}
/>
<Divider />
<PropertyList>
<PropertyListItem
divider
label="Mailbox Type"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={120} />
) : (
exchangeData?.RecipientTypeDetails || "N/A"
Expand All @@ -39,12 +65,15 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Mailbox Usage"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={80} />
) : exchangeData?.TotalItemSize != null ? (
<LinearProgressWithLabel
sx={{ width: "100%" }}
variant="determinate"
addedLabel={`(${Math.round(exchangeData.TotalItemSize)}/${Math.round(
exchangeData?.ProhibitSendReceiveQuota
)}GB)`}
value={
Math.round(
(exchangeData?.TotalItemSize / exchangeData?.ProhibitSendReceiveQuota) *
Expand All @@ -62,7 +91,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Hidden From Address Lists"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={60} />
) : (
getCippFormatting(exchangeData?.HiddenFromAddressLists, "HiddenFromAddressLists")
Expand All @@ -72,7 +101,7 @@ export const CippExchangeInfoCard = (props) => {
<PropertyListItem
label="Forward and Deliver"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={60} />
) : (
getCippFormatting(exchangeData?.ForwardAndDeliver, "ForwardAndDeliver")
Expand All @@ -83,7 +112,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Forwarding Address"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={180} />
) : (
exchangeData?.ForwardingAddress || "N/A"
Expand All @@ -93,7 +122,7 @@ export const CippExchangeInfoCard = (props) => {
<PropertyListItem
label="Archive Mailbox Enabled"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={60} />
) : (
getCippFormatting(exchangeData?.ArchiveMailBox, "ArchiveMailBox")
Expand All @@ -103,7 +132,7 @@ export const CippExchangeInfoCard = (props) => {
<PropertyListItem
label="Auto Expanding Archive"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={80} />
) : (
getCippFormatting(exchangeData?.AutoExpandingArchive, "AutoExpandingArchive")
Expand All @@ -113,7 +142,7 @@ export const CippExchangeInfoCard = (props) => {
<PropertyListItem
label="Total Archive Item Size"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={80} />
) : exchangeData?.TotalArchiveItemSize != null ? (
`${exchangeData.TotalArchiveItemSize} GB`
Expand All @@ -126,7 +155,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Total Archive Item Count"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={80} />
) : exchangeData?.TotalArchiveItemCount != null ? (
exchangeData.TotalArchiveItemCount
Expand All @@ -139,7 +168,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Litigation Hold"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={60} />
) : (
getCippFormatting(exchangeData?.LitigationHold, "LitigationHold")
Expand All @@ -151,7 +180,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Mailbox Protocols"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={200} />
) : (
<div>
Expand All @@ -174,7 +203,7 @@ export const CippExchangeInfoCard = (props) => {
divider
label="Blocked For Spam"
value={
isFetching ? (
isLoading ? (
<Skeleton variant="text" width={60} />
) : (
getCippFormatting(exchangeData?.BlockedForSpam, "BlockedForSpam")
Expand All @@ -188,5 +217,7 @@ export const CippExchangeInfoCard = (props) => {

CippExchangeInfoCard.propTypes = {
exchangeData: PropTypes.object,
isLoading: PropTypes.bool,
isFetching: PropTypes.bool,
handleRefresh: PropTypes.func,
};
Loading