Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions src/app/EmployeesHistory/Components/EmployeeDetails.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React from 'react';
import ProjectsHistoryDetails from './ProjectsHistoryDetails';
import Evaluations from './Evaluations';

class EmployeeDetails extends React.Component {
state = {
projectsHistory: [],
evaluations: []
};

componentWillReceiveProps(nextProps) {
this.setState({
projectsHistory: nextProps.employee.projectsHistory,
evaluations: nextProps.employee.employeeEvaluations
});
}

render() {
return (
<div>
<strong>Employee Details</strong>
<hr style={{ borderTop: 'dotted 1p' }} />
<ProjectsHistoryDetails projectsHistory={this.state.projectsHistory} />
<br />
<Evaluations evaluations={this.state.evaluations} />
</div>
);
}
}

export default EmployeeDetails;
46 changes: 46 additions & 0 deletions src/app/EmployeesHistory/Components/EmployeeSummary.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React, { Component } from 'react';
import ItemsList from './ItemsList';
import ProjectsItemList from './ProjectsItemList';

class EmployeeSummary extends Component {
render() {
const employee = this.props.employee;

return (
<div>
<br />
<strong>Employee Summary</strong>
<table>
<tbody>
<tr>
<td>Joined date</td>
<td>
{employee.joinDate}
</td>
</tr>
<tr>
<td>Techinical experience</td>
<td>
<ItemsList items={employee.technicalExperience} />
</td>
</tr>
<tr>
<td>Passions</td>
<td>
<ItemsList items={employee.hobbies} />
</td>
</tr>
<tr>
<td>Projects history</td>
<td>
<ProjectsItemList items={employee.projectsHistory} />
</td>
</tr>
</tbody>
</table>
</div>
);
}
}

export default EmployeeSummary;
18 changes: 18 additions & 0 deletions src/app/EmployeesHistory/Components/EvaluationItemsList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react';

const EvaluationItemsList = props => {
const evaluationItems = props.items.map((item, index) => {
return (
<li key={index}>
<i>{item.date}</i>: {item.feedback}
</li>
);
});
return (
<ul>
{evaluationItems}
</ul>
);
};

export default EvaluationItemsList;
13 changes: 13 additions & 0 deletions src/app/EmployeesHistory/Components/Evaluations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import EvaluationItemsList from './EvaluationItemsList';

const Evaluations = props => {
return (
<div>
<strong>Evaluations</strong>
<EvaluationItemsList items={props.evaluations} />
</div>
);
};

export default Evaluations;
27 changes: 27 additions & 0 deletions src/app/EmployeesHistory/Components/ItemsList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';

class ItemsList extends React.Component {
state = { items: [] };

componentWillReceiveProps(nextProps) {
this.setState({ items: nextProps.items });
}

render() {
const listItems = this.state.items.map((value, index) => {
return (
<li key={index}>
{value}
</li>
);
});

return (
<ul>
{listItems}
</ul>
);
}
}

export default ItemsList;
13 changes: 13 additions & 0 deletions src/app/EmployeesHistory/Components/ProjectsHistoryDetails.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import ProjectsTimeline from './ProjectsTimeline';

const ProjectsHistoryDetails = props => {
return (
<div>
<strong>Projects</strong>
<ProjectsTimeline projectsTimeline={props.projectsHistory} />
</div>
);
};

export default ProjectsHistoryDetails;
27 changes: 27 additions & 0 deletions src/app/EmployeesHistory/Components/ProjectsItemList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';

class ProjectItemList extends React.Component {
state = { items: [] };

componentWillReceiveProps(nextProps) {
this.setState({ items: nextProps.items });
}

render() {
const listItems = this.state.items.map((value, index) => {
return (
<li key={index}>
{value.projectName}
</li>
);
});

return (
<ul>
{listItems}
</ul>
);
}
}

export default ProjectItemList;
20 changes: 20 additions & 0 deletions src/app/EmployeesHistory/Components/ProjectsTimeline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import React from 'react';

const ProjectsTimeline = props => {
const timelines = props.projectsTimeline.map((projectTimeline, index) => {
return (
<li key={index}>
<strong>{projectTimeline.projectName}</strong> : ({projectTimeline.startDate}{' '}
- {projectTimeline.endDate})
</li>
);
});

return (
<ul>
{timelines}
</ul>
);
};

export default ProjectsTimeline;
31 changes: 31 additions & 0 deletions src/app/EmployeesHistory/Components/employeeDetails.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React from 'react';
import ProjectsHistoryDetails from './ProjectsHistoryDetails';
import Evaluations from './Evaluations';

class EmployeeDetails extends React.Component {
state = {
projectsHistory: [],
evaluations: []
};

componentWillReceiveProps(nextProps) {
this.setState({
projectsHistory: nextProps.employee.projectsHistory,
evaluations: nextProps.employee.employeeEvaluations
});
}

render() {
return (
<div>
<strong>Employee Details</strong>
<hr style={{ borderTop: 'dotted 1p' }} />
<ProjectsHistoryDetails projectsHistory={this.state.projectsHistory} />
<br />
<Evaluations evaluations={this.state.evaluations} />
</div>
);
}
}

export default EmployeeDetails;
46 changes: 46 additions & 0 deletions src/app/EmployeesHistory/Components/employeeSummary.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React, { Component } from 'react';
import ItemsList from './ItemsList';
import ProjectsItemList from './ProjectsItemList';

class EmployeeSummary extends Component {
render() {
const employee = this.props.employee;

return (
<div>
<br />
<strong>Employee Summary</strong>
<table>
<tbody>
<tr>
<td>Joined date</td>
<td>
{employee.joinDate}
</td>
</tr>
<tr>
<td>Techinical experience</td>
<td>
<ItemsList items={employee.technicalExperience} />
</td>
</tr>
<tr>
<td>Passions</td>
<td>
<ItemsList items={employee.hobbies} />
</td>
</tr>
<tr>
<td>Projects history</td>
<td>
<ProjectsItemList items={employee.projectsHistory} />
</td>
</tr>
</tbody>
</table>
</div>
);
}
}

export default EmployeeSummary;
18 changes: 18 additions & 0 deletions src/app/EmployeesHistory/Components/evaluationItemsList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react';

const EvaluationItemsList = props => {
const evaluationItems = props.items.map((item, index) => {
return (
<li key={index}>
<i>{item.date}</i>: {item.feedback}
</li>
);
});
return (
<ul>
{evaluationItems}
</ul>
);
};

export default EvaluationItemsList;
13 changes: 13 additions & 0 deletions src/app/EmployeesHistory/Components/evaluations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import EvaluationItemsList from './EvaluationItemsList';

const Evaluations = props => {
return (
<div>
<strong>Evaluations</strong>
<EvaluationItemsList items={props.evaluations} />
</div>
);
};

export default Evaluations;
27 changes: 27 additions & 0 deletions src/app/EmployeesHistory/Components/itemsList.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';

class ItemsList extends React.Component {
state = { items: [] };

componentWillReceiveProps(nextProps) {
this.setState({ items: nextProps.items });
}

render() {
const listItems = this.state.items.map((value, index) => {
return (
<li key={index}>
{value}
</li>
);
});

return (
<ul>
{listItems}
</ul>
);
}
}

export default ItemsList;
13 changes: 13 additions & 0 deletions src/app/EmployeesHistory/Components/projectsHistoryDetails.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import ProjectsTimeline from './ProjectsTimeline';

const ProjectsHistoryDetails = props => {
return (
<div>
<strong>Projects</strong>
<ProjectsTimeline projectsTimeline={props.projectsHistory} />
</div>
);
};

export default ProjectsHistoryDetails;
20 changes: 20 additions & 0 deletions src/app/EmployeesHistory/Components/projectsTimeline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import React from 'react';

const ProjectsTimeline = props => {
const timelines = props.projectsTimeline.map((projectTimeline, index) => {
return (
<li key={index}>
<strong>{projectTimeline.projectName}</strong> : ({projectTimeline.startDate}{' '}
- {projectTimeline.endDate})
</li>
);
});

return (
<ul>
{timelines}
</ul>
);
};

export default ProjectsTimeline;
16 changes: 16 additions & 0 deletions src/app/EmployeesHistory/EmployeeHistory.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}

td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}

tr:nth-child(even) {
background-color: #dddddd;
}
Loading