From 30b6238a3427d55dd930a0902afff96ecb69d989 Mon Sep 17 00:00:00 2001
From: "M. Reza Qorib" <rezaqorib96@gmail.com>
Date: Wed, 26 Apr 2017 09:51:26 +0700
Subject: [PATCH] Update applicancy status

---
 assets/js/VacancyPage.jsx            |  1 +
 assets/js/components/Applicant.jsx   |  2 ++
 assets/js/components/Vacancy.jsx     |  3 +++
 assets/js/components/VacancyList.jsx | 25 ++++++++++++++++++-------
 4 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/assets/js/VacancyPage.jsx b/assets/js/VacancyPage.jsx
index 4fd342d9..438defe0 100644
--- a/assets/js/VacancyPage.jsx
+++ b/assets/js/VacancyPage.jsx
@@ -44,6 +44,7 @@ export default class VacancyPage extends React.Component {
             <VacancyList
               key={2}
               userId={this.state.id}
+              status="applied"
               url={`/students/${this.state.id}/applied-vacancies/`}
             />
           </Pane>
diff --git a/assets/js/components/Applicant.jsx b/assets/js/components/Applicant.jsx
index ce10b848..b1d87a8e 100644
--- a/assets/js/components/Applicant.jsx
+++ b/assets/js/components/Applicant.jsx
@@ -20,6 +20,8 @@ export default class Applicant extends React.Component {
     ACCEPTED: 4,
   };
 
+  static APPLICATION_STATUS_TEXT = ['Baru', 'Sudah Dibaca', 'Ditandai', 'Diterima', 'Ditolak'];
+
   constructor(props) {
     super(props);
     /* istanbul ignore next */
diff --git a/assets/js/components/Vacancy.jsx b/assets/js/components/Vacancy.jsx
index e299d5b5..dc0f0b69 100644
--- a/assets/js/components/Vacancy.jsx
+++ b/assets/js/components/Vacancy.jsx
@@ -13,10 +13,12 @@ export default class Vacancy extends React.Component {
     data: React.PropTypes.object.isRequired,
     bookmarked: React.PropTypes.number,
     status: React.PropTypes.string.isRequired,
+    applicationStatus: React.PropTypes.string,
   };
 
   static defaultProps = {
     bookmarked: 0,
+    applicationStatus: '',
   };
 
   constructor(props) {
@@ -104,6 +106,7 @@ export default class Vacancy extends React.Component {
                 </Grid.Row>
                 <Grid.Row>
                   { this.generateAction() }
+                  <p>{ this.props.applicationStatus }</p>
                 </Grid.Row>
               </Grid.Column>
             </Grid.Row>
diff --git a/assets/js/components/VacancyList.jsx b/assets/js/components/VacancyList.jsx
index dc5c089d..de625610 100644
--- a/assets/js/components/VacancyList.jsx
+++ b/assets/js/components/VacancyList.jsx
@@ -1,10 +1,11 @@
 import React from 'react';
-import { Item, Button, Grid, Segment } from 'semantic-ui-react';
+import { Item, Button, Grid } from 'semantic-ui-react';
 import { Link } from 'react-router';
 import Vacancy from './Vacancy';
 import CompanyVacancy from './CompanyVacancy';
 import Server from '../lib/Server';
 import ModalAlert from '../components/ModalAlert';
+import Aplicant from './../components/Applicant';
 
 
 export default class VacancyList extends React.Component {
@@ -13,10 +14,12 @@ export default class VacancyList extends React.Component {
     url: React.PropTypes.string.isRequired,
     userId: React.PropTypes.number.isRequired,
     type: React.PropTypes.string,
+    status: React.PropTypes.string,
   };
 
   static defaultProps = {
     type: 'student',
+    status: 'new',
   };
 
   constructor(props) {
@@ -29,6 +32,7 @@ export default class VacancyList extends React.Component {
     Server.get(this.props.url, false).then((data) => {
       this.setState({ vacancies: data });
     });
+    console.log(this.state.vacancies);
     this.updateStatusList = this.updateStatusList.bind(this);
     this.generateVacancies = this.generateVacancies.bind(this);
     this.checkBookmark = this.checkBookmark.bind(this);
@@ -45,7 +49,7 @@ export default class VacancyList extends React.Component {
 
   checkApplied(id) {
     for (let i = 0; i < this.state.appliedList.length; i += 1) {
-      if (id === this.state.appliedList[i].id) { return 'registered'; }
+      if (id === this.state.appliedList[i].vacancy.id) { return 'registered'; }
     }
     return 'new';
   }
@@ -55,7 +59,12 @@ export default class VacancyList extends React.Component {
       this.setState({ bookmarkList: data });
     });
     Server.get(`/students/${this.props.userId}/applied-vacancies/`, false).then((data) => {
+      // console.log('hasil api:');
+      // console.log(data);
+      // console.log(data.vacancy);
       this.setState({ appliedList: data });
+      console.log('applied list:')
+      console.log(this.state.appliedList);
     });
   }
 
@@ -73,12 +82,14 @@ export default class VacancyList extends React.Component {
       return this.state.vacancies.map(vacancy =>
         (
           <Vacancy
-            key={vacancy.id}
-            status={this.checkApplied(vacancy.id)}
-            bookmarked={this.checkBookmark(vacancy.id)}
-            data={vacancy}
+            key={this.props.status === 'applied' ? vacancy.vacancy.id : vacancy.id}
+            status={this.checkApplied(this.props.status === 'applied' ? vacancy.vacancy.id : vacancy.id)}
+            bookmarked={this.checkBookmark(this.props.status === 'applied' ? vacancy.vacancy.id : vacancy.id)}
+            data={this.props.status === 'applied' ? vacancy.vacancy : vacancy}
             studentId={this.props.userId}
-          />
+            applicationStatus= {this.props.status === 'applied' ? (vacancy.status === 4 ? 'Ditolak' :
+                (vacancy.status === 3 ? 'Diterima' : 'Terdaftar')) : ''}
+          >{console.log(this.checkApplied(this.props.status === 'applied' ? vacancy.vacancy.id : vacancy.id))}</Vacancy>
         ),
       );
     }
-- 
GitLab