diff --git a/frontend/app/components/Client/ManageUsers/userItem.css b/frontend/app/components/Client/ManageUsers/userItem.css
index 6de747561..e11592408 100644
--- a/frontend/app/components/Client/ManageUsers/userItem.css
+++ b/frontend/app/components/Client/ManageUsers/userItem.css
@@ -16,11 +16,11 @@
}
& .adminLabel {
- margin-left: 10px;
+ margin-left: 5px;
padding: 0 10px;
border-radius: 3px;
background-color: $gray-lightest;
- font-size: 12px;
+ font-size: 10px;
border: solid thin $gray-light;
}
}
diff --git a/frontend/app/components/Client/ProfileSettings/Licenses.js b/frontend/app/components/Client/ProfileSettings/Licenses.js
index 4e487120c..748d5bb80 100644
--- a/frontend/app/components/Client/ProfileSettings/Licenses.js
+++ b/frontend/app/components/Client/ProfileSettings/Licenses.js
@@ -6,8 +6,8 @@ function Licenses({ account }) {
{account.license}
{account.expirationDate && (
-
- Expires At: {account.expirationDate.toFormat('LLL dd, yyyy')}
+
+ (Expires on {account.expirationDate.toFormat('LLL dd, yyyy')})
)}
diff --git a/frontend/app/components/Client/ProfileSettings/ProfileSettings.js b/frontend/app/components/Client/ProfileSettings/ProfileSettings.js
index 5df0d1aec..b12b2cf8c 100644
--- a/frontend/app/components/Client/ProfileSettings/ProfileSettings.js
+++ b/frontend/app/components/Client/ProfileSettings/ProfileSettings.js
@@ -76,6 +76,7 @@ export default class ProfileSettings extends React.PureComponent {
{ 'License' }
+
{ 'License key and expiration date.' }
diff --git a/frontend/app/components/Client/Roles/Roles.tsx b/frontend/app/components/Client/Roles/Roles.tsx
index 28382a4a6..91ab2fda5 100644
--- a/frontend/app/components/Client/Roles/Roles.tsx
+++ b/frontend/app/components/Client/Roles/Roles.tsx
@@ -7,6 +7,7 @@ import RoleForm from './components/RoleForm'
import { init, edit, fetchList, remove as deleteRole } from 'Duck/roles';
import RoleItem from './components/RoleItem'
import { confirm } from 'UI/Confirmation';
+import { toast } from 'react-toastify';
interface Props {
loading: boolean
@@ -14,14 +15,15 @@ interface Props {
edit: (role: any) => void,
instance: any,
roles: any[],
- deleteRole: (id: any) => void,
+ deleteRole: (id: any) => Promise
,
fetchList: () => Promise,
account: any,
- permissionsMap: any
+ permissionsMap: any,
+ removeErrors: any
}
function Roles(props: Props) {
- const { loading, instance, roles, init, edit, deleteRole, account, permissionsMap } = props
+ const { loading, instance, roles, init, edit, deleteRole, account, permissionsMap, removeErrors } = props
const [showModal, setShowmModal] = useState(false)
const isAdmin = account.admin || account.superAdmin;
@@ -46,7 +48,13 @@ function Roles(props: Props) {
header: 'Roles',
confirmation: `Are you sure you want to remove this role?`
})) {
- deleteRole(role.roleId)
+ deleteRole(role.roleId).then(() => {
+ if (removeErrors && removeErrors.size > 0) {
+ removeErrors.forEach(e => {
+ toast.error(e)
+ })
+ }
+ })
}
}
@@ -96,6 +104,7 @@ function Roles(props: Props) {
{roles.map(role => (
{
instance: state.getIn(['roles', 'instance']) || null,
permissionsMap: permissionsMap,
roles: state.getIn(['roles', 'list']),
+ removeErrors: state.getIn(['roles', 'removeRequest', 'errors']),
loading: state.getIn(['roles', 'fetchRequest', 'loading']),
account: state.getIn([ 'user', 'account' ])
}
diff --git a/frontend/app/components/Client/Roles/components/RoleItem/RoleItem.tsx b/frontend/app/components/Client/Roles/components/RoleItem/RoleItem.tsx
index c4cdb7a25..2ef271a46 100644
--- a/frontend/app/components/Client/Roles/components/RoleItem/RoleItem.tsx
+++ b/frontend/app/components/Client/Roles/components/RoleItem/RoleItem.tsx
@@ -13,34 +13,37 @@ interface Props {
role: any,
deleteHandler?: (role: any) => void,
editHandler?: (role: any) => void,
- permissions: any
+ permissions: any,
+ isAdmin: boolean
}
-function RoleItem({ role, deleteHandler, editHandler, permissions }: Props) {
+function RoleItem({ role, deleteHandler, editHandler, isAdmin, permissions }: Props) {
return (
-
{ role.name }
-
+
{ role.name }
+
{role.permissions.map((permission: any) => (
//
{ permissions[permission].name }
))}
+ { isAdmin && (
+
+ { !!deleteHandler &&
+
deleteHandler(role) } id="trash">
+
+
+ }
+ { !!editHandler &&
+
editHandler(role) }>
+
+
+ }
+
+ )}
-
- { !!deleteHandler &&
-
deleteHandler(role) } id="trash">
-
-
- }
- { !!editHandler &&
-
editHandler(role) }>
-
-
- }
-
);
}
diff --git a/frontend/app/components/Client/Roles/components/RoleItem/roleItem.css b/frontend/app/components/Client/Roles/components/RoleItem/roleItem.css
index 7173d1c33..af0aab35d 100644
--- a/frontend/app/components/Client/Roles/components/RoleItem/roleItem.css
+++ b/frontend/app/components/Client/Roles/components/RoleItem/roleItem.css
@@ -38,10 +38,10 @@
.label {
margin-left: 10px;
- padding: 0 10px;
+ padding: 0 5px;
border-radius: 3px;
background-color: $gray-lightest;
- font-size: 12px;
+ font-size: 10px;
border: solid thin $gray-light;
width: fit-content;
}
\ No newline at end of file
diff --git a/frontend/app/duck/roles.js b/frontend/app/duck/roles.js
index f1dd1ecec..67c9a79df 100644
--- a/frontend/app/duck/roles.js
+++ b/frontend/app/duck/roles.js
@@ -13,8 +13,8 @@ const initialState = Map({
{ name: 'Developer Tools', value: 'DEV_TOOLS' },
{ name: 'Errors', value: 'ERRORS' },
{ name: 'Metrics', value: 'METRICS' },
- { name: 'Assist Live', value: 'ASSIST_LIVE' },
- { name: 'Assist Call', value: 'ASSIST_CALL' },
+ { name: 'Assist (Live)', value: 'ASSIST_LIVE' },
+ { name: 'Assist (Call)', value: 'ASSIST_CALL' },
])
});