Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from KelvinTegelaar:main #10

Closed
wants to merge 37 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
c11b5db
Added Tenant Allow/Block Lists
OfficialEsco Apr 26, 2024
c293a33
Rename TenantAllowBlockList
OfficialEsco Apr 26, 2024
7e76cdb
Merge pull request #2373 from Ren-Roros-Digital/AllowBlockList
KelvinTegelaar Apr 27, 2024
119d6b8
minor FA correction
KelvinTegelaar Apr 27, 2024
30b0b1f
DefaultValue Switch and Input
OfficialEsco Apr 4, 2024
66e9ec4
Added defaults from standards.json
OfficialEsco Apr 5, 2024
9ce74b9
Fix NinjaFields mappings
KelvinTegelaar Apr 28, 2024
420667b
Fixes sharepoint quota chart
KelvinTegelaar Apr 28, 2024
a8675b3
Merge pull request #2375 from Ren-Roros-Digital/ReaddDefaultValue
KelvinTegelaar Apr 28, 2024
b3bc2a5
Merge pull request #167 from KelvinTegelaar/dev
JohnDuprey Apr 29, 2024
91a5c9e
hotfix
KelvinTegelaar Apr 29, 2024
90e6c2d
Merge pull request #2378 from KelvinTegelaar/dev
KelvinTegelaar Apr 29, 2024
05f042d
Merge remote-tracking branch 'upstream/dev' into dev
JohnDuprey Apr 29, 2024
aa78d34
null safe status for mail test
JohnDuprey Apr 29, 2024
58377de
Move Helmet/Title to DefaultLayout
JohnDuprey Apr 29, 2024
c5ac068
Merge pull request #2381 from JohnDuprey/dev
JohnDuprey Apr 29, 2024
23d998b
copy to clipboard spacing
JohnDuprey Apr 29, 2024
459947e
design stuff
KelvinTegelaar Apr 29, 2024
8fe354d
Add propTypes to CippButtonCard
JohnDuprey Apr 30, 2024
018d364
Graph Explorer
JohnDuprey Apr 30, 2024
707b0ff
Fix notification test button
JohnDuprey Apr 30, 2024
e557919
Fix mail test
JohnDuprey Apr 30, 2024
e277b6b
Add Graph Explorer queue override name
JohnDuprey Apr 30, 2024
ba877e4
Merge remote-tracking branch 'upstream/dev' into dev
JohnDuprey Apr 30, 2024
def6083
Merge pull request #2386 from JohnDuprey/dev
JohnDuprey Apr 30, 2024
a3675bd
Update CellTable.jsx
JohnDuprey May 1, 2024
361dedd
Merge pull request #2391 from JohnDuprey/dev
JohnDuprey May 1, 2024
130d25b
Update Users.jsx
JohnDuprey May 1, 2024
17a4b8a
Merge pull request #2392 from JohnDuprey/dev
JohnDuprey May 1, 2024
cdc867d
add pretty card, fix dashboord calc
KelvinTegelaar May 2, 2024
d8662fa
secure score pimpin'
KelvinTegelaar May 2, 2024
c76e042
Add format parameter
JohnDuprey May 2, 2024
9145b40
Merge pull request #170 from KelvinTegelaar/dev
JohnDuprey May 2, 2024
c2b91ff
Merge pull request #2395 from JohnDuprey/dev
JohnDuprey May 2, 2024
bb7743c
up version
JohnDuprey May 2, 2024
d0f731b
Merge pull request #2400 from JohnDuprey/dev
JohnDuprey May 2, 2024
561a6b0
Merge pull request #2401 from KelvinTegelaar/dev
JohnDuprey May 2, 2024
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
13 changes: 11 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cipp",
"version": "5.6.0",
"version": "5.6.2",
"description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.",
"homepage": "https://cipp.app/",
"bugs": {
Expand Down Expand Up @@ -64,6 +64,7 @@
"react": "^18.2.0",
"react-app-polyfill": "^2.0.0",
"react-bootstrap": "^1.6.5",
"react-circular-progressbar": "^2.1.0",
"react-copy-to-clipboard": "^5.1.0",
"react-data-table-component": "^7.4.5",
"react-datepicker": "^4.10.0",
Expand Down
2 changes: 1 addition & 1 deletion public/version_latest.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.6.0
5.6.2
108 changes: 53 additions & 55 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import React, { Suspense } from 'react'
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom'
import { BrowserRouter, Route, Routes, Navigate, useLocation } from 'react-router-dom'
import { PrivateRoute, FullScreenLoading, ErrorBoundary } from 'src/components/utilities'
import 'src/scss/style.scss'
import { Helmet } from 'react-helmet-async'
import { Helmet, HelmetProvider } from 'react-helmet-async'
import Skeleton from 'react-loading-skeleton'
import TimeAgo from 'javascript-time-ago'
import en from 'javascript-time-ago/locale/en.json'
TimeAgo.addDefaultLocale(en)
import { library } from '@fortawesome/fontawesome-svg-core'
import { fas } from '@fortawesome/free-solid-svg-icons'
import routes from 'src/routes'
import { useAuthCheck } from './components/utilities/CippauthCheck'
import importsMap from './importsMap'

library.add(fas)
Expand All @@ -32,59 +31,58 @@ const Logout = React.lazy(() => import('./views/pages/login/Logout'))
const App = () => {
return (
<BrowserRouter>
<Suspense fallback={<FullScreenLoading />}>
<Helmet>
<title>CIPP</title>
</Helmet>
<Routes>
<Route exact path="/LogoutRedirect" name="LogoutRedirect" element={<PageLogOut />} />
<Route exact path="/401" name="Page 401" element={<Page401 />} />
<Route exact path="/403" name="Page 403" element={<Page403 />} />
<Route exact path="/404" name="Page 404" element={<Page404 />} />
<Route exact path="/500" name="Page 500" element={<Page500 />} />
<Route exact path="/login" name="Login" element={<Login />} />
<Route exact path="/logout" name="Logout" element={<Logout />} />
<Route
path="/"
element={
<PrivateRoute>
<DefaultLayout />
</PrivateRoute>
}
>
{routes.map((route, idx) => {
const allowedRoles = route.allowedRoles
const Routecomponent = dynamicImport(route.path)
//console.log('route', route)
//console.log('Routecomponent', Routecomponent)
return (
route.component && (
<Route
key={`route-${idx}`}
path={route.path}
exact={route.exact}
name={route.name}
element={
<PrivateRoute allowedRoles={allowedRoles}>
<Suspense fallback={<Skeleton />}>
<Helmet>
<title>CIPP - {route.name}</title>
</Helmet>
<ErrorBoundary key={route.name}>
<Routecomponent />
</ErrorBoundary>
</Suspense>
</PrivateRoute>
}
/>
<HelmetProvider>
<Suspense fallback={<FullScreenLoading />}>
<Helmet>
<title>CIPP</title>
</Helmet>
<Routes>
<Route exact path="/LogoutRedirect" name="LogoutRedirect" element={<PageLogOut />} />
<Route exact path="/401" name="Page 401" element={<Page401 />} />
<Route exact path="/403" name="Page 403" element={<Page403 />} />
<Route exact path="/404" name="Page 404" element={<Page404 />} />
<Route exact path="/500" name="Page 500" element={<Page500 />} />
<Route exact path="/login" name="Login" element={<Login />} />
<Route exact path="/logout" name="Logout" element={<Logout />} />
<Route
path="/"
element={
<PrivateRoute>
<DefaultLayout />
</PrivateRoute>
}
>
{routes.map((route, idx) => {
const allowedRoles = route.allowedRoles
const Routecomponent = dynamicImport(route.path)
//console.log('route', route)
//console.log('Routecomponent', Routecomponent)
return (
route.component && (
<Route
key={`route-${idx}`}
path={route.path}
exact={route.exact}
name={route.name}
element={
<PrivateRoute allowedRoles={allowedRoles}>
<Suspense fallback={<Skeleton />}>
<ErrorBoundary key={route.name}>
<Routecomponent />
</ErrorBoundary>
</Suspense>
</PrivateRoute>
}
/>
)
)
)
})}
<Route path="/" element={<Navigate to="/home" replace={true} />} />
</Route>
<Route path="*" name="Page 404" element={<Page404 />} />
</Routes>
</Suspense>
})}
<Route path="/" element={<Navigate to="/home" replace={true} />} />
</Route>
<Route path="*" name="Page 404" element={<Page404 />} />
</Routes>
</Suspense>
</HelmetProvider>
</BrowserRouter>
)
}
Expand Down
5 changes: 5 additions & 0 deletions src/_nav.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,11 @@ const _nav = [
name: 'Quarantine',
to: '/email/administration/quarantine',
},
{
component: CNavItem,
name: 'Tenant Allow/Block Lists',
to: '/email/administration/tenant-allow-block-lists',
},
],
},
{
Expand Down
10 changes: 9 additions & 1 deletion src/components/contentcards/CippButtonCard.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { CCard, CCardBody, CCardFooter, CCardHeader, CCardTitle } from '@coreui/react'
import Skeleton from 'react-loading-skeleton'
import PropTypes from 'prop-types'

export default function CippButtonCard({
title,
Expand All @@ -25,3 +25,11 @@ export default function CippButtonCard({
</CCard>
)
}

CippButtonCard.propTypes = {
title: PropTypes.string.isRequired,
titleType: PropTypes.string,
CardButton: PropTypes.element.isRequired,
children: PropTypes.element.isRequired,
isFetching: PropTypes.bool.isRequired,
}
61 changes: 61 additions & 0 deletions src/components/contentcards/CippChartCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import React from 'react'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { CCard, CCardBody, CCardFooter, CCardHeader, CCardTitle } from '@coreui/react'
import Skeleton from 'react-loading-skeleton'
import { CChart } from '@coreui/react-chartjs'
import { getStyle } from '@coreui/utils'

export default function CippChartCard({
title,
titleType = 'normal',
ChartData,
ChartLabels,
ChartType = 'pie',
LegendLocation = 'bottom',
isFetching,
}) {
return (
<CCard className="h-100 mb-3">
<CCardHeader>
<CCardTitle>
{titleType === 'big' ? <h3 className="underline mb-3">{title}</h3> : title}
</CCardTitle>
</CCardHeader>
<CCardBody>
{isFetching && <Skeleton />}
{!isFetching && (
<CChart
type={ChartType}
data={{
labels: ChartLabels,
datasets: [
{
backgroundColor: [
getStyle('--cyberdrain-warning'),
getStyle('--cyberdrain-info'),
getStyle('--cyberdrain-success'),
getStyle('--cyberdrain-danger'),
getStyle('--cyberdrain-primary'),
getStyle('--cyberdrain-secondary'),
],
data: ChartData,
borderWidth: 3,
},
],
}}
options={{
plugins: {
legend: {
position: LegendLocation,
labels: {
color: getStyle('--cui-body-color'),
},
},
},
}}
/>
)}
</CCardBody>
</CCard>
)
}
46 changes: 46 additions & 0 deletions src/components/contentcards/CippPrettyCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React from 'react'
import { CCard, CCardBody, CCardFooter, CCardHeader, CCardTitle, CCol, CRow } from '@coreui/react'
import Skeleton from 'react-loading-skeleton'
import { CircularProgressbar } from 'react-circular-progressbar'
import 'react-circular-progressbar/dist/styles.css'

export default function CippPrettyCard({
title,
titleType = 'normal',
percentage,
topLabel,
smallLabel,
ringcolor = '#f89226',
isFetching,
}) {
return (
<CCard className="h-100 mb-3">
<CCardHeader>
<CCardTitle>
{titleType === 'big' ? <h3 className="underline mb-3">{title}</h3> : title}
</CCardTitle>
</CCardHeader>
<CCardBody>
{isFetching && <Skeleton />}
{!isFetching && (
<CRow>
<CCol>
<div style={{ width: '50%', height: '50%' }}>
<CircularProgressbar
styles={{ path: { stroke: ringcolor }, text: { fill: ringcolor } }}
strokeWidth={3}
value={percentage}
text={`${percentage}%`}
/>
</div>
</CCol>
<CCol className="m-2">
<h4>{topLabel}</h4>
<small className="text-medium-emphasis">{smallLabel}</small>
</CCol>
</CRow>
)}
</CCardBody>
</CCard>
)
}
3 changes: 2 additions & 1 deletion src/components/forms/RFFComponents.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,11 @@ export const RFFCFormInput = ({
spellCheck = true,
autoFocus = false,
hiddenValue,
defaultValue,
onChange,
}) => {
return (
<Field initialValue={hiddenValue} name={name} validate={validate}>
<Field defaultValue={defaultValue} initialValue={hiddenValue} name={name} validate={validate}>
{({ input, meta }) => {
const handleChange = onChange
? (e) => {
Expand Down
24 changes: 14 additions & 10 deletions src/components/tables/CellTable.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,24 @@ export default function cellTable(
columnProp = column
}

if (!Array.isArray(columnProp) && typeof columnProp === 'object') {
columnProp = Object.keys(columnProp).map((key) => {
return {
Key: key,
Value: columnProp[key],
}
})
if (columnProp === undefined || columnProp === null) {
columnProp = []
} else {
if (Array.isArray(columnProp) && typeof columnProp[0] !== 'object') {
columnProp = columnProp.map((row) => {
if (!Array.isArray(columnProp) && typeof columnProp === 'object') {
columnProp = Object.keys(columnProp).map((key) => {
return {
Value: row,
Key: key,
Value: columnProp[key],
}
})
} else {
if (Array.isArray(columnProp) && typeof columnProp[0] !== 'object') {
columnProp = columnProp.map((row) => {
return {
Value: row,
}
})
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/components/utilities/CippCopyToClipboard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ function CippCopyToClipboard({ text }) {
<CopyToClipboard text={text} onCopy={() => onCodeCopied()}>
<CButton
color={codeCopied ? 'success' : 'info'}
className="cipp-code-copy-button"
className="cipp-code-copy-button ms-1"
size="sm"
variant="ghost"
>
Expand Down
Loading
Loading