WorkspaceListItem.jsx 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import React from 'react'
  2. import classnames from 'classnames'
  3. import { translate } from 'react-i18next'
  4. import PropTypes from 'prop-types'
  5. import AnimateHeight from 'react-animate-height'
  6. const pad = number => {
  7. number = number.toString()
  8. return number.length < 2 ? pad('0' + number, 2) : number
  9. }
  10. const WorkspaceListItem = props => {
  11. return (
  12. <li className='sidebar__navigation__workspace__item'>
  13. <div className='sidebar__navigation__workspace__item__wrapper' onClick={props.onClickTitle}>
  14. <div className='sidebar__navigation__workspace__item__number'>
  15. {pad(props.number)}
  16. </div>
  17. <div className='sidebar__navigation__workspace__item__name' title={props.name}>
  18. {props.name}
  19. </div>
  20. <div className='sidebar__navigation__workspace__item__icon'>
  21. <i className={classnames(props.isOpenInSidebar ? 'fa fa-chevron-up' : 'fa fa-chevron-down')} />
  22. </div>
  23. </div>
  24. <AnimateHeight duration={500} height={props.isOpenInSidebar ? 'auto' : 0}>
  25. <ul
  26. className='sidebar__navigation__workspace__item__submenu'
  27. id={`sidebarSubMenu_${props.number}`}
  28. >
  29. <li
  30. className='sidebar__navigation__workspace__item__submenu__dropdown'
  31. onClick={() => props.onClickAllContent(props.idWs)}
  32. >
  33. <div className='dropdown__icon'>
  34. <i className='fa fa-th' />
  35. </div>
  36. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  37. <div className='dropdown__title'>
  38. <div className='dropdown__title__text'>
  39. Tous les contenus
  40. </div>
  41. </div>
  42. </div>
  43. {/*
  44. <div className='dropdown__subdropdown dropdown-menu' aria-labelledby='navbarDropdown'>
  45. <div className='dropdown__subdropdown__item dropdown-item'>
  46. <div className='dropdown__subdropdown__item__iconfile alignname'>
  47. <i className='fa fa-file-text-o' />
  48. </div>
  49. <div className='dropdown__subdropdown__item__textfile alignname'>
  50. Documents Archivés
  51. </div>
  52. </div>
  53. <div className='dropdown__subdropdown__item dropdown-item'>
  54. <div className='dropdown__subdropdown__item__iconfile alignname'>
  55. <i className='fa fa-file-text-o' />
  56. </div>
  57. <div className='dropdown__subdropdown__item__textfile alignname'>
  58. Documents Supprimés
  59. </div>
  60. </div>
  61. </div>
  62. */}
  63. </li>
  64. <li className='sidebar__navigation__workspace__item__submenu__dropdown'>
  65. <div className='dropdown__icon'>
  66. <i className='fa fa-signal dashboard-color' />
  67. </div>
  68. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  69. <div className='dropdown__title'>
  70. <div className='dropdown__title__text'>
  71. Tableau de bord
  72. </div>
  73. </div>
  74. </div>
  75. </li>
  76. { Object.keys(props.app).map(a =>
  77. <li
  78. className={classnames('sidebar__navigation__workspace__item__submenu__dropdown', {'activeFilter': props.activeFilterList.includes(a)})}
  79. onClick={() => props.onClickContentFilter(props.idWs, a)}
  80. key={a}
  81. >
  82. <div className='dropdown__icon'>
  83. <i className={classnames(props.app[a].icon)} style={{backgroudColor: props.app[a].color}} />
  84. </div>
  85. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  86. <div className='dropdown__title' id='navbarDropdown'>
  87. <div className='dropdown__title__text'>
  88. { props.app[a].label[props.lang.id] }
  89. </div>
  90. </div>
  91. </div>
  92. </li>
  93. )}
  94. <li className='sidebar__navigation__workspace__item__submenu__dropdown'>
  95. <div className='dropdown__icon'>
  96. <i className='fa fa-calendar calendar-color' />
  97. </div>
  98. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  99. <div className='dropdown__title'>
  100. <div className='dropdown__title__text'>
  101. Calendrier
  102. </div>
  103. </div>
  104. </div>
  105. </li>
  106. </ul>
  107. </AnimateHeight>
  108. </li>
  109. )
  110. }
  111. export default translate()(WorkspaceListItem)
  112. WorkspaceListItem.propTypes = {
  113. number: PropTypes.number.isRequired,
  114. name: PropTypes.string.isRequired,
  115. app: PropTypes.object,
  116. onClickTitle: PropTypes.func,
  117. onClickAllContent: PropTypes.func,
  118. isOpenInSidebar: PropTypes.bool
  119. }
  120. WorkspaceListItem.defaultProps = {
  121. onClickTitle: () => {},
  122. onClickAllContent: () => {},
  123. isOpenInSidebar: false
  124. }