DashboardPermissions.tsx 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import React, { Component } from 'react';
  2. import { observer } from 'mobx-react';
  3. import { store } from 'app/stores/store';
  4. import Permissions from 'app/core/components/Permissions/Permissions';
  5. import Tooltip from 'app/core/components/Tooltip/Tooltip';
  6. import PermissionsInfo from 'app/core/components/Permissions/PermissionsInfo';
  7. import AddPermissions from 'app/core/components/Permissions/AddPermissions';
  8. import SlideDown from 'app/core/components/Animations/SlideDown';
  9. import { FolderInfo } from './FolderInfo';
  10. export interface Props {
  11. dashboardId: number;
  12. folder?: FolderInfo;
  13. backendSrv: any;
  14. }
  15. @observer
  16. class DashboardPermissions extends Component<Props, any> {
  17. permissions: any;
  18. constructor(props) {
  19. super(props);
  20. this.handleAddPermission = this.handleAddPermission.bind(this);
  21. this.permissions = store.permissions;
  22. }
  23. handleAddPermission() {
  24. this.permissions.toggleAddPermissions();
  25. }
  26. componentWillUnmount() {
  27. this.permissions.hideAddPermissions();
  28. }
  29. render() {
  30. const { dashboardId, folder, backendSrv } = this.props;
  31. return (
  32. <div>
  33. <div className="dashboard-settings__header">
  34. <div className="page-action-bar">
  35. <h3 className="d-inline-block">Permissions</h3>
  36. <Tooltip className="page-sub-heading-icon" placement="auto" content={PermissionsInfo}>
  37. <i className="gicon gicon-question gicon--has-hover" />
  38. </Tooltip>
  39. <div className="page-action-bar__spacer" />
  40. <button
  41. className="btn btn-success pull-right"
  42. onClick={this.handleAddPermission}
  43. disabled={this.permissions.isAddPermissionsVisible}
  44. >
  45. <i className="fa fa-plus" /> Add Permission
  46. </button>
  47. </div>
  48. </div>
  49. <SlideDown in={this.permissions.isAddPermissionsVisible}>
  50. <AddPermissions permissions={this.permissions} />
  51. </SlideDown>
  52. <Permissions
  53. permissions={this.permissions}
  54. isFolder={false}
  55. dashboardId={dashboardId}
  56. folderInfo={folder}
  57. backendSrv={backendSrv}
  58. />
  59. </div>
  60. );
  61. }
  62. }
  63. export default DashboardPermissions;