From a617e29e128d4603aa41ba32c9a04c5dc917c569 Mon Sep 17 00:00:00 2001 From: hilyafesmia Date: Thu, 14 Nov 2019 13:37:24 +0700 Subject: [PATCH 1/3] Added vacancy state to this.state --- assets/js/components/VacancyList.jsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/assets/js/components/VacancyList.jsx b/assets/js/components/VacancyList.jsx index 164a7eb..843eb26 100755 --- a/assets/js/components/VacancyList.jsx +++ b/assets/js/components/VacancyList.jsx @@ -34,6 +34,12 @@ export default class VacancyList extends React.Component { { key: 3, text: '3-5 juta', value: 3 }, { key: 4, text: '> 5 juta', value: 4 }, ], + vacancyStateFilter: 0, + vacancyStateFilterBy: [ + { key: 0, text: 'Semua', value: 0 }, + { key: 1, text: 'Masih Menerima', value: 1 }, + { key: 2, text: 'Sudah Tutup', value: 2 }, + ], }; this.generateVacancies = this.generateVacancies.bind(this); this.updateStatus = this.updateStatus.bind(this); -- GitLab From 1207733b24223d6a0ea7c0633f57535c3dcce6d7 Mon Sep 17 00:00:00 2001 From: hilyafesmia Date: Thu, 14 Nov 2019 13:39:23 +0700 Subject: [PATCH 2/3] Created function to filter vacancy by closing date --- assets/js/components/VacancyList.jsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assets/js/components/VacancyList.jsx b/assets/js/components/VacancyList.jsx index 843eb26..a86092c 100755 --- a/assets/js/components/VacancyList.jsx +++ b/assets/js/components/VacancyList.jsx @@ -80,6 +80,18 @@ export default class VacancyList extends React.Component { return filteredVacancies; } + filterVacanciesBasedOnVacancyStatus = (vacancies) => { + const vacancyStateFilter = this.state.vacancyStateFilter; + let filteredVacancies = vacancies; + if (vacancyStateFilter === 1) { + filteredVacancies = filteredVacancies.filter((vacancy) => vacancy.props.data.close_time >= moment().format()); + } else if (vacancyStateFilter === 2) { + filteredVacancies = filteredVacancies.filter((vacancy) => vacancy.props.data.close_time < moment().format()); + } + + return filteredVacancies; + } + handleChangeSalaryFilter = (e, data) => { this.setState({ salaryFilter: data.value }); } -- GitLab From 69d41bcc5f3b0195c05e6a362ad393e07d895d59 Mon Sep 17 00:00:00 2001 From: hilyafesmia Date: Thu, 14 Nov 2019 13:43:40 +0700 Subject: [PATCH 3/3] Created dropdown to pick desired filter --- assets/js/components/VacancyList.jsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/assets/js/components/VacancyList.jsx b/assets/js/components/VacancyList.jsx index a86092c..2ce2bcc 100755 --- a/assets/js/components/VacancyList.jsx +++ b/assets/js/components/VacancyList.jsx @@ -4,6 +4,7 @@ import Vacancy from './Vacancy'; import CompanyVacancy from './CompanyVacancy'; import AdminVacancy from './AdminVacancy'; import Server from '../lib/Server'; +import moment from 'moment'; export default class VacancyList extends React.Component { @@ -44,6 +45,7 @@ export default class VacancyList extends React.Component { this.generateVacancies = this.generateVacancies.bind(this); this.updateStatus = this.updateStatus.bind(this); this.handleChangeSalaryFilter = this.handleChangeSalaryFilter.bind(this); + this.handleChangeVacancyStateFilter = this.handleChangeVacancyStateFilter.bind(this); } updateStatus(id, status) { @@ -96,6 +98,10 @@ export default class VacancyList extends React.Component { this.setState({ salaryFilter: data.value }); } + handleChangeVacancyStateFilter = (e, data) => { + this.setState({ vacancyStateFilter: data.value }); + } + generateVacancies() { if (this.state.vacancies.length === 0) { return ( @@ -132,6 +138,7 @@ export default class VacancyList extends React.Component { }); } vacancies = this.filterVacanciesBasedOnSalary(vacancies); + vacancies = this.filterVacanciesBasedOnVacancyStatus(vacancies); return vacancies; } else if ((this.props.user.role === 'admin' && this.props.user.data.company != null) || this.props.user.role === 'company') { @@ -165,6 +172,13 @@ export default class VacancyList extends React.Component { options={this.state.salaryFilterBy} onChange={this.handleChangeSalaryFilter} /> + { this.generateVacancies() } -- GitLab