PanelHeader.tsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import React from 'react';
  2. import classNames from 'classnames';
  3. import { PanelModel } from '../panel_model';
  4. import { DashboardModel } from '../dashboard_model';
  5. import { store } from 'app/stores/store';
  6. interface PanelHeaderProps {
  7. panel: PanelModel;
  8. dashboard: DashboardModel;
  9. }
  10. export class PanelHeader extends React.Component<PanelHeaderProps, any> {
  11. onEditPanel = () => {
  12. store.view.updateQuery(
  13. {
  14. panelId: this.props.panel.id,
  15. edit: true,
  16. fullscreen: true,
  17. },
  18. false
  19. );
  20. };
  21. onViewPanel = () => {
  22. store.view.updateQuery(
  23. {
  24. panelId: this.props.panel.id,
  25. fullscreen: true,
  26. },
  27. false
  28. );
  29. };
  30. render() {
  31. let isFullscreen = false;
  32. let isLoading = false;
  33. let panelHeaderClass = classNames({ 'panel-header': true, 'grid-drag-handle': !isFullscreen });
  34. return (
  35. <div className={panelHeaderClass}>
  36. <span className="panel-info-corner">
  37. <i className="fa" />
  38. <span className="panel-info-corner-inner" />
  39. </span>
  40. {isLoading && (
  41. <span className="panel-loading">
  42. <i className="fa fa-spinner fa-spin" />
  43. </span>
  44. )}
  45. <div className="panel-title-container">
  46. <span className="panel-title">
  47. <span className="icon-gf panel-alert-icon" />
  48. <span className="panel-title-text">{this.props.panel.title}</span>
  49. <span className="panel-menu-container dropdown">
  50. <span className="fa fa-caret-down panel-menu-toggle" data-toggle="dropdown" />
  51. <ul className="dropdown-menu dropdown-menu--menu panel-menu" role="menu">
  52. <li>
  53. <a onClick={this.onEditPanel}>
  54. <i className="fa fa-fw fa-edit" /> Edit
  55. </a>
  56. </li>
  57. <li>
  58. <a onClick={this.onViewPanel}>
  59. <i className="fa fa-fw fa-eye" /> View
  60. </a>
  61. </li>
  62. </ul>
  63. </span>
  64. <span className="panel-time-info">
  65. <i className="fa fa-clock-o" /> 4m
  66. </span>
  67. </span>
  68. </div>
  69. </div>
  70. );
  71. }
  72. }