97 lines
3.7 KiB
Vue
97 lines
3.7 KiB
Vue
<template>
|
|
<form :action="'/users/' + userDatas.id +'/update'" method="POST" @submit="checkForm">
|
|
<input type="hidden" name="_token" :value="this.csrf">
|
|
<div class="form-group">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<input type="text" name="surname" placeholder="Nom" class="form-control" v-model="userDatas.surname" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<input type="text" name="firstname" placeholder="Prénom" class="form-control" v-model="userDatas.firstname" required>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<input type="email" name="email" placeholder="Email" class="form-control" v-model="userDatas.email" required>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<input type="password" name="new_password" placeholder="Nouveau mot de passe" class="form-control">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" name="UserActivated" id="UserActivated" :checked="userDatas.activated">
|
|
<label class="form-check-label" for="UserActivated">Activé ?</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Rôle :</label>
|
|
<select class="form-control" v-model="userDatas.role">
|
|
<option value="USER">Commercial</option>
|
|
<option value="TOTAL">Commercial sans restrictions</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group" v-if="userDatas.role === 'USER'">
|
|
<v-select v-model="selectedFolders" :options="directories" label="name" multiple>
|
|
<template v-slot:option="option">
|
|
<span v-for="parent in option.parents">{{JSON.parse(parent.name).fr}} / </span>
|
|
{{option.name}}
|
|
</template>
|
|
</v-select>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="row">
|
|
<div class="col-md-12 d-flex justify-content-between">
|
|
<a href="/users" class="btn btn-secondary">Retour</a>
|
|
<input type="submit" value="Enregistrer" class="btn btn-success">
|
|
<input type="hidden" name="role" :value="role">
|
|
<input type="hidden" name="authorized_folders" :value="authorizedFolders">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: [
|
|
'user',
|
|
'csrf',
|
|
'folders'
|
|
],
|
|
mounted() {
|
|
console.log('EditDocument Component mounted.');
|
|
let parseDirectories = JSON.parse(this.folders);
|
|
this.directories = parseDirectories;
|
|
this.userDatas = JSON.parse(this.user);
|
|
this.selectedFolders = JSON.parse(this.userDatas.authorizedFolders);
|
|
},
|
|
data() {
|
|
return {
|
|
userDatas: [],
|
|
directories: [],
|
|
selectedFolders: [],
|
|
authorizedFolders: '',
|
|
role: 'USER',
|
|
}
|
|
},
|
|
methods: {
|
|
checkForm: function (e) {
|
|
|
|
this.authorizedFolders = JSON.stringify(this.selectedFolders);
|
|
this.role = this.userDatas.role;
|
|
|
|
return true;
|
|
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
|
|
</style>
|