AuditLogSettings.tsx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import React, { FC, useState } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { Collapse } from 'reactstrap';
  4. import { useActivityExpirationSeconds, useAuditLogAvailableActions } from '~/stores/context';
  5. export const AuditLogSettings: FC = () => {
  6. const { t } = useTranslation();
  7. const [isExpandActionList, setIsExpandActionList] = useState(false);
  8. const { data: activityExpirationSecondsData } = useActivityExpirationSeconds();
  9. const activityExpirationSeconds = activityExpirationSecondsData != null ? activityExpirationSecondsData : 2592000;
  10. const { data: availableActionsData } = useAuditLogAvailableActions();
  11. const availableActions = availableActionsData != null ? availableActionsData : [];
  12. return (
  13. <>
  14. <h4 className="mt-4">{t('admin:audit_log_management.activity_expiration_date')}</h4>
  15. <p className="form-text text-muted">
  16. {t('admin:audit_log_management.activity_expiration_date_explain')}
  17. </p>
  18. <p className="alert alert-warning col-6">
  19. <i className="icon-exclamation icon-fw">
  20. </i><b>FIXED</b><br />
  21. <b
  22. // eslint-disable-next-line react/no-danger
  23. dangerouslySetInnerHTML={{
  24. __html: t('admin:audit_log_management.fixed_by_env_var',
  25. { key: 'ACTIVITY_EXPIRATION_SECONDS', value: activityExpirationSeconds }),
  26. }}
  27. />
  28. </p>
  29. <h4 className="mt-4">{t('admin:audit_log_management.available_action_list')}</h4>
  30. <p className="form-text text-muted">{t('admin:audit_log_management.available_action_list_explain')}</p>
  31. <p className="mt-1">
  32. <button type="button" className="btn btn-link p-0" aria-expanded="false" onClick={() => setIsExpandActionList(!isExpandActionList)}>
  33. <i className={`fa fa-fw fa-arrow-right ${isExpandActionList ? 'fa-rotate-90' : ''}`}></i>
  34. { t('admin:audit_log_management.action_list') }
  35. </button>
  36. </p>
  37. <Collapse isOpen={isExpandActionList}>
  38. <ul className="list-group">
  39. { availableActions.map(action => (
  40. <li key={action} className="list-group-item">{t(`admin:audit_log_action.${action}`)}</li>
  41. )) }
  42. </ul>
  43. </Collapse>
  44. </>
  45. );
  46. };