Skip to content
Snippets Groups Projects
Commit 623b3d29 authored by nicrausaz's avatar nicrausaz
Browse files

Mise à jour du statut (unique) fonctionnelle

parent 9ff30a09
No related branches found
No related tags found
No related merge requests found
......@@ -42,7 +42,8 @@ class StatusController extends Controller
// Valide le status
if (count(DB::table('status')->where('status_value', $new_status)->get())) {
return DB::table('applicant')->where('applicant_id', $id)->update(['fk_status' => $new_status]);
DB::table('applicant')->where('applicant_id', $id)->update(['fk_status' => $new_status]);
return ["message" => lang::get('http.success.updated.status'), "id" => $id];
} else {
return abort(404, lang::get('http.notfound'));
}
......
......@@ -16,7 +16,8 @@ return [
'comment' => 'Commentaire modifié',
'position' => 'Offre modifiée',
'location' => 'Lieu modifié',
'job' => 'Métier modifié'
'job' => 'Métier modifié',
'status' => 'Statut modifié'
],
'deleted' => [
'marker' => 'Marqueur supprimé',
......
......@@ -11,4 +11,31 @@ export function getApplications(context) {
.catch(err => {
console.log(err)
})
}
export function getAvailableStatus(context) {
axios({
method: 'get',
url: '/status'
})
.then(response => {
context.commit('setAvailableStatus', response.data)
})
.catch(err => {
console.log(err)
})
}
export function changeApplicationStatus(context, data) {
axios({
method: 'patch',
url: '/status/applicant/' + data.id,
data: data
})
.then(response => {
console.log(response.data)
})
.catch(err => {
console.log(err)
})
}
\ No newline at end of file
export function setApplications (state, data) {
state.applications = data
}
export function setAvailableStatus (state, data) {
state.available_status = data
}
\ No newline at end of file
export default {
applications: [],
currentApplication: {}
currentApplication: {},
available_status: []
}
\ No newline at end of file
......@@ -28,7 +28,6 @@
:items="$store.state.moduleApplications.applications"
item-key="applicant_id"
:search="search"
:pagination.sync="pagination"
select-all
>
<template v-slot:items="props">
......@@ -41,7 +40,6 @@
<td>{{ props.item.job_full_value }}, {{ props.item.location_site }}</td>
<td>{{ props.item.applicant_address_street }} {{ props.item.applicant_address_npa }}</td>
<td>{{ props.item.applicant_mail }}</td>
<td>{{ props.item.applicant_foreign_authorization }}</td>
<td>{{ props.item.applicant_birthdate }}</td>
<td>{{ props.item.applicant_has_majority }}</td>
<td>{{ props.item.applicant_nationality }}</td>
......@@ -49,9 +47,19 @@
<td>{{ props.item.applicant_speaks_french }} {{ props.item.applicant_speaks_english }} {{ props.item.applicant_speaks_german }} {{ props.item.applicant_speaks_other }}</td>
<td>{{ props.item.applicant_scolarity_end }}</td>
<td>{{ props.item.applicant_application_date }}</td>
<td>
<v-select
:items="$store.state.moduleApplications.available_status"
label="Statut"
item-text="status_value"
item-value="status_value"
v-model="props.item.fk_status"
@change="updateStatus(props.item.applicant_id, props.item.fk_status)"
></v-select>
</td>
<td></td>
<td>
<v-tooltip bottom>
<v-tooltip bottom class="mr-2">
<template v-slot:activator="{ on }">
<v-icon @click="navigateTo(props.item.applicant_id)" v-on="on">pageview</v-icon>
</template>
......@@ -70,17 +78,14 @@ export default {
name: 'applications-view',
data() {
return {
loaded: false,
jobFilter: null,
search: '',
pagination: {},
selected: [],
headers: [
{ text: 'Nom, Prénom', align: 'left', value: 'applicant_fsname' },
{ text: 'Formation, Lieu', value: 'applicant_formation' },
{ text: 'Adresse', value: 'applicant_npa' },
{ text: 'Email', value: 'applicant_mail' },
{ text: 'Cat. permis étranger', value: 'applicant_foreign_authorization' },
{ text: 'Date naissance', value: 'applicant_birthdate' },
{ text: 'Majeur', value: 'applicant_has_majority' },
{ text: 'Nationalité', value: 'applicant_nationality' },
......@@ -88,6 +93,7 @@ export default {
{ text: 'Langues', value: 'applicant_languages', sortable: false },
{ text: 'Fin de scolarité', value: 'applicant_scolarity_end' },
{ text: 'Date postulation', value: 'applicant_application_date' },
{ text: 'Statut', value: 'fk_status' },
{ text: 'Indications', value: 'indications' },
{ text: 'Actions', value: 'actions', sortable: false },
]
......@@ -96,20 +102,17 @@ export default {
created() {
this.loadApplications()
},
computed: {
pages() {
if (this.pagination.rowsPerPage == null || this.pagination.totalItems == null) return 0
return Math.ceil(this.pagination.totalItems / this.pagination.rowsPerPage)
}
},
methods: {
loadApplications() {
this.$store.dispatch('moduleApplications/getApplications')
this.$store.dispatch('moduleApplications/getAvailableStatus')
this.$store.dispatch('moduleUser/getUserPermittedJobs')
// this.loaded = true
},
navigateTo(id) {
this.$router.push('/application/' + id)
},
updateStatus (id, status) {
this.$store.dispatch('moduleApplications/changeApplicationStatus', {id: id, status: status})
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment