import React from 'react' import { connect } from 'react-redux' import Sidebar from './Sidebar.jsx' import imgProfil from '../img/imgProfil.png' import { getAppList, getContentTypeList, getWorkspaceList } from '../action-creator.async.js' import { setAppList, setContentTypeList, setWorkspaceListIsOpenInSidebar, updateWorkspaceListData } from '../action-creator.sync.js' class Dashboard extends React.Component { constructor (props) { super(props) this.state = { workspaceIdInUrl: props.match.params.idws ? parseInt(props.match.params.idws) : null, // this is used to avoid handling the parseInt everytime displayNewMemberDashboard: false, displayNotifBtn: false, displayWebdavBtn: false, displayCalendarBtn: false } } async componentDidMount () { const { workspaceIdInUrl } = this.state const { user, workspaceList, app, contentType, dispatch } = this.props console.log(' componentDidMount') if (app.length === 0) { const fetchGetAppList = await dispatch(getAppList(user)) if (fetchGetAppList.status === 200) dispatch(setAppList(fetchGetAppList.json)) } if (contentType.length === 0) { const fetchGetContentTypeList = await dispatch(getContentTypeList(user)) if (fetchGetContentTypeList.status === 200) dispatch(setContentTypeList(fetchGetContentTypeList.json)) } if (user.user_id !== -1 && workspaceList.length === 0) { const fetchGetWorkspaceList = await dispatch(getWorkspaceList(user)) if (fetchGetWorkspaceList.status === 200) { dispatch(updateWorkspaceListData(fetchGetWorkspaceList.json)) dispatch(setWorkspaceListIsOpenInSidebar(workspaceIdInUrl || fetchGetWorkspaceList.json[0].workspace_id, true)) } } } handleToggleNewMemberDashboard = () => this.setState(prevState => ({ displayNewMemberDashboard: !prevState.displayNewMemberDashboard })) handleToggleNotifBtn = () => this.setState(prevState => ({ displayNotifBtn: !prevState.displayNotifBtn })) handleToggleWebdavBtn = () => this.setState(prevState => ({ displayWebdavBtn: !prevState.displayWebdavBtn })) handleToggleCalendarBtn = () => this.setState(prevState => ({ displayCalendarBtn: !prevState.displayCalendarBtn })) render () { return (
Dashboard
Développement tracim
Ligne directive pour le prochain design de Tracim et des futurs fonctionnalités.
Hi ! Alexi, vous êtes actuellement
Gestionnaire de projet
Vous êtes abonné(e) aux notifications de ce workspace
{this.state.displayNotifBtn === false &&
Changer de statut
} {this.state.displayNotifBtn === true &&
Abonné(e)
Non Abonné(e)
}
Débuter une nouvelle discussion
Rédiger un document
Importer un fichier
Débuter une visioconférence
Voir le Calendrier
Explorer le Workspace
Activité récente
Tout marquer comme lu
Développement Tracim
Mission externe
Recherche et developpement
Marketing
Évolution
Commercialisation
Voir plus
Liste des membres
{this.state.displayNewMemberDashboard === false &&
  • avatar
    Jean Dupont
    Responsable
  • avatar
    Aldwin Vinel
    Lecteur
  • avatar
    William Himme
    Contributeur
  • avatar
    Yacine Lite
    Contributeur
  • avatar
    Alexi Falcin
    Gestionnaire
  • avatar
    Mickaël Fonati
    Gestionnaire
  • avatar
    Eva Lonbard
    Gestionnaire
Ajouter un membre
} {this.state.displayNewMemberDashboard === true &&
Créer un compte
Choisissez le rôle du membre
  • Responsable
  • Gestionnaire de contenu
  • Contributeur
  • Lecteur
}
Implémenter Tracim dans votre explorateur
{this.state.displayWebdavBtn === true &&
Retrouvez tous vos documents déposés en ligne directement sur votre ordinateur via le poste de travail, sans passer par le logiciel.
http://algoo.trac.im/webdav/
}
Calendrier de l'espace de travail
{this.state.displayCalendarBtn === true &&
Chaque espace de travail possède son propre calendrier.
http://algoo.trac.im/calendar/
}
) } } const mapStateToProps = ({ user, app, contentType, workspaceList }) => ({ user, app, contentType, workspaceList }) export default connect(mapStateToProps)(Dashboard)