Skip to content

Commit 00bd677

Browse files
authored
Add question if user has BE rijbewijs (#941)
* Intial commit * added setup variable * small fix * refractor to trailer-drivers-license * Fixed lint * Check which files are changed * small change * hopefully this works * git push * fix * remove unneaded changes
1 parent b88de79 commit 00bd677

File tree

5 files changed

+55
-80
lines changed

5 files changed

+55
-80
lines changed

app/components/cards/privacy-preference.hbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,9 @@
4949
<td>Gegevens (naam, afbeelding, studie) mogen gedeeld worden in de almanak</td>
5050
<td data-test-info-in-almanak>{{boolean-tag @model.infoInAlmanak}}</td>
5151
</tr>
52+
<tr>
53+
<td>Bezit BE rijbewijs</td>
54+
<td data-test-trailer-drivers-license>{{boolean-tag @model.trailerDriversLicense}}</td>
55+
</tr>
5256
</tbody>
5357
</table>

app/components/privacy-modal.hbs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,29 @@
125125
</div>
126126
{{/each}}
127127
</div>
128+
{{else if (eq this.step 7)}}
129+
<b>Heb je een BE-rijbewijs?</b>
130+
<br />
131+
<small>
132+
Binnen Alpha hebben we een keet om ervoor te zorgen dat
133+
het vervoer soepel verloopt, houdt de Keetcie een lijst bij
134+
van leden met een BE-rijbewijs.
135+
</small>
136+
<br />
137+
<br />
138+
139+
<div
140+
class='btn btn-primary'
141+
{{on 'click' (fn this.select 'trailerDriversLicense' true)}}
142+
>
143+
Ja
144+
</div>
145+
<div
146+
class='btn btn-danger'
147+
{{on 'click' (fn this.select 'trailerDriversLicense' false)}}
148+
>
149+
Nee
150+
</div>
128151
{{/if}}
129152

130153
{{#if this.errorMessage}}

app/components/privacy-modal.js

Lines changed: 10 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default class PrivacyModal extends Component {
1717

1818
@tracked isOpen = false;
1919
@tracked step = 1;
20-
maxSteps = 6;
20+
maxSteps = 7;
2121
@tracked errorMessage = null;
2222
get userDetailsPreferenceTypes() {
2323
return Object.entries(UserDetailsPreferenceTypes).map(([value, label]) => ({
@@ -42,9 +42,16 @@ export default class PrivacyModal extends Component {
4242
}
4343
}
4444

45-
@action nextPage() {
45+
@action async nextPage() {
4646
this.errorMessage = null;
4747
if (this.step >= this.maxSteps) {
48+
this.model.set('setupComplete', true);
49+
try {
50+
await this.model.save();
51+
} catch (error) {
52+
this.errorMessage = error.errors.map((e) => e.detail).join(', ');
53+
return;
54+
}
4855
this.isOpen = false;
4956
return;
5057
}
@@ -61,82 +68,6 @@ export default class PrivacyModal extends Component {
6168

6269
constructor() {
6370
super(...arguments);
64-
if (
65-
this.model?.userDetailsSharingPreference === null ||
66-
this.model?.allowTomatoSharing === null
67-
) {
68-
this.isOpen = true;
69-
} else {
70-
this.isOpen = false;
71-
}
71+
this.isOpen = !this.model?.setupComplete;
7272
}
7373
}
74-
//
75-
// export default Component.extend({
76-
// session: service(),
77-
// store: service(),
78-
// fetch: service(),
79-
// model: alias('session.currentUser'),
80-
// isOpen: false,
81-
// step: 1,
82-
// maxSteps: 6,
83-
// errorMessage: null,
84-
// userDetailsPreferenceTypes: computed(function () {
85-
// return Object.entries(UserDetailsPreferenceTypes).map(([value, label]) => ({
86-
// value,
87-
// label,
88-
// }));
89-
// }),
90-
// picturePublicationPreferenceTypes: computed(function () {
91-
// return Object.entries(PicturePublicationPreferenceTypes).map(
92-
// ([value, label]) => ({ value, label })
93-
// );
94-
// }),
95-
// actions: {
96-
// select(attribute, value) {
97-
// this.model.set(attribute, value);
98-
// this.model
99-
// .save()
100-
// .then(() => {
101-
// this.send('nextPage');
102-
// })
103-
// .catch((error) => {
104-
// this.set(
105-
// 'errorMessage',
106-
// error.errors
107-
// .map((e) => {
108-
// return e.detail;
109-
// })
110-
// .join(', ')
111-
// );
112-
// });
113-
// },
114-
// nextPage() {
115-
// this.set('errorMessage', null);
116-
// if (this.step >= this.maxSteps) {
117-
// this.set('isOpen', false);
118-
// } else {
119-
// this.set('step', this.step + 1);
120-
// }
121-
// },
122-
// allowWebdav() {
123-
// return this.fetch
124-
// .fetch(`/users/${this.model.id}/activate_webdav`, { method: 'POST' })
125-
// .then(() => {
126-
// this.model.reload();
127-
// this.send('nextPage');
128-
// });
129-
// },
130-
// },
131-
// init() {
132-
// this._super(...arguments);
133-
// if (
134-
// this.model?.userDetailsSharingPreference === null ||
135-
// this.model?.allowTomatoSharing === null
136-
// ) {
137-
// this.set('isOpen', true);
138-
// } else {
139-
// this.set('isOpen', false);
140-
// }
141-
// },
142-
// });

app/components/users/privacy-settings.hbs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,21 @@
8787
</div>
8888
</div>
8989

90+
<div class='mb-3 row align-items-center'>
91+
<label class='col-10 col-sm-6 col-form-label form-label' for="trailer-drivers-license-check">
92+
Bezit BE rijbewijs
93+
</label>
94+
<div class='col-2 col-sm-6'>
95+
{{input
96+
data-test-trailerDriversLicense=true
97+
type='checkbox'
98+
checked=@model.trailerDriversLicense
99+
class='form-check-input'
100+
id="trailer-drivers-license-check"
101+
}}
102+
</div>
103+
</div>
104+
90105
{{#if formActionsVisible}}
91106
<ModelForm::FormActions
92107
@errors={{@model.errors}}

app/models/user.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ export default class User extends Model {
3636
@attr picturePublicationPreference;
3737

3838
@attr ifesDataSharingPreference;
39-
@attr({ allowNull: true }) allowTomatoSharing;
39+
@attr allowTomatoSharing;
4040
@attr infoInAlmanak;
4141
@attr userDetailsSharingPreference;
42+
@attr trailerDriversLicense;
43+
@attr setupComplete;
4244
// Security properties
4345
@attr otpRequired;
4446
@attr icalSecretKey;

0 commit comments

Comments
 (0)