Add possibility to edit request award reason and give reject reason

pull/30/head
HardiReady 2018-03-11 13:52:26 +01:00
parent 84ab4410f5
commit 7287f6b8a1
4 changed files with 26 additions and 6 deletions

View File

@ -29,6 +29,9 @@ const AwardingSchema = new Schema({
max: 2, max: 2,
default: 0 default: 0
}, },
rejectReason: {
type: String
},
date: { date: {
type: Date, type: Date,
default: Date.now() default: Date.now()

View File

@ -114,7 +114,6 @@ awarding.route('/:id')
return; // prevent node to process this function further after next() has finished. return; // prevent node to process this function further after next() has finished.
} }
// optional task 3: increment version manually as we do not use .save(.)
req.body.updatedAt = new Date(); req.body.updatedAt = new Date();
req.body.$inc = {__v: 1}; req.body.$inc = {__v: 1};

View File

@ -16,7 +16,7 @@
<th class="col-sm-2">Begründung</th> <th class="col-sm-2">Begründung</th>
<th class="col-sm-1 ">Antragsteller</th> <th class="col-sm-1 ">Antragsteller</th>
<th class="col-sm-1 text-right">Datum</th> <th class="col-sm-1 text-right">Datum</th>
<th class="col-sm-1 text-right">Aktion</th> <th class="col-sm-2 text-right">Aktion</th>
</tr> </tr>
</thead> </thead>
<tbody *ngFor="let award of awards"> <tbody *ngFor="let award of awards">
@ -34,7 +34,10 @@
{{award.decorationId.name}} {{award.decorationId.name}}
</td> </td>
<td> <td>
{{award.reason}} <textarea style="width:100%;"
rows="7"
title="reason"
#reason>{{award.reason}}</textarea>
</td> </td>
<td> <td>
{{award.proposer?.username}} {{award.proposer?.username}}
@ -43,8 +46,15 @@
{{award.date | date: 'dd.MM.yyyy'}} {{award.date | date: 'dd.MM.yyyy'}}
</td> </td>
<td class="text-right"> <td class="text-right">
<a class="action" (click)="confirm(award, true)">Bestätigen</a><br> <a class="action" (click)="confirm(award, true, reason.value)">Bestätigen</a><br>
<a class="action" (click)="confirm(award, false)">Ablehnen</a> <a class="action" (click)="confirm(award, false, reason.value, rejectReason.value)">Ablehnen</a>
<div>
<textarea cols="20"
rows="5"
title="rejectReason"
placeholder="Begründung für Ablehnung (optional)"
#rejectReason></textarea>
</div>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -25,12 +25,20 @@ export class ConfirmAwardComponent implements OnInit {
}); });
} }
confirm(award: Award, decision: boolean) { confirm(award: Award, decision: boolean, reason: string, rejectReason: string) {
const updateObject = { const updateObject = {
_id: award._id, _id: award._id,
confirmed: decision ? 1 : 2 confirmed: decision ? 1 : 2
}; };
if (rejectReason) {
updateObject['rejectReason'] = rejectReason;
}
if (reason && reason !== award.reason) {
updateObject['reason'] = reason;
}
this.awardingService.updateAward(updateObject).subscribe(res => { this.awardingService.updateAward(updateObject).subscribe(res => {
const currentUser = this.loginService.getCurrentUser(); const currentUser = this.loginService.getCurrentUser();
this.awardingService.getUnconfirmedAwards(currentUser.squad.fraction).subscribe(awards => { this.awardingService.getUnconfirmedAwards(currentUser.squad.fraction).subscribe(awards => {