fix(webui): submit scheduling option revisions
This commit is contained in:
@@ -52,6 +52,7 @@ assert.match(page, /type="email"[\s\S]*aria-label=\{I18N\.participantEmail\}/);
|
||||
assert.doesNotMatch(page, /header: I18N\.required|<table|scheduling-table|scheduling-card(?:\s|"|`)/);
|
||||
assert.match(page, /aria-label=\{i18nMessage\("i18n:govoplan-scheduling\.decide_on_value/);
|
||||
assert.match(page, /submitSchedulingAvailability\(settings, selected\.id/);
|
||||
assert.match(page, /option_revision: slot\.revision/);
|
||||
assert.match(page, /getSchedulingAvailabilityResponse\(settings, selected\.id\)/);
|
||||
assert.match(page, /setAvailability\(Object\.fromEntries\(response\.answers\.map/);
|
||||
assert.doesNotMatch(page, /<p>\{selected\.calendar_id\}<\/p>/);
|
||||
|
||||
@@ -12,6 +12,7 @@ export type SchedulingCandidateSlot = {
|
||||
timezone: string;
|
||||
location?: string | null;
|
||||
position: number;
|
||||
revision: string;
|
||||
freebusy_checked_at?: string | null;
|
||||
freebusy_status?: string | null;
|
||||
freebusy_conflicts: Record<string, unknown>[];
|
||||
@@ -121,6 +122,7 @@ export type SchedulingAvailabilityPayload = {
|
||||
answers: Array<{
|
||||
slot_id: string;
|
||||
value: SchedulingAvailabilityValue;
|
||||
option_revision: string;
|
||||
}>;
|
||||
};
|
||||
|
||||
|
||||
@@ -403,8 +403,16 @@ export default function SchedulingPage({ settings, auth }: { settings: ApiSettin
|
||||
event.preventDefault();
|
||||
if (!selected || !selectedParticipant || !canRespond || availabilityLoading) return;
|
||||
const answers = selected.slots
|
||||
.map((slot) => ({ slot_id: slot.id, value: availability[slot.id] }))
|
||||
.filter((answer): answer is { slot_id: string; value: SchedulingAvailabilityValue } => Boolean(answer.value));
|
||||
.map((slot) => ({
|
||||
slot_id: slot.id,
|
||||
value: availability[slot.id],
|
||||
option_revision: slot.revision
|
||||
}))
|
||||
.filter((answer): answer is {
|
||||
slot_id: string;
|
||||
value: SchedulingAvailabilityValue;
|
||||
option_revision: string;
|
||||
} => Boolean(answer.value));
|
||||
if (!answers.length) {
|
||||
setError(I18N.selectResponse);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user