edit ledger mogelijk gemaakt
This commit is contained in:
parent
800cb7a819
commit
57be9168e5
@ -34,12 +34,14 @@ const props = defineProps<{
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
rules: string;
|
rules: string;
|
||||||
|
alignment: 'positive' | 'neutral' | 'negative';
|
||||||
};
|
};
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const form = useForm({
|
const form = useForm({
|
||||||
name: props.ledger.name,
|
name: props.ledger.name,
|
||||||
rules: props.ledger.rules,
|
rules: props.ledger.rules,
|
||||||
|
alignment: props.ledger.alignment,
|
||||||
});
|
});
|
||||||
|
|
||||||
function submit() {
|
function submit() {
|
||||||
@ -69,6 +71,25 @@ function submit() {
|
|||||||
<textarea v-model="form.rules" id="rules" rows="4" class="c-ledger-edit__textarea"></textarea>
|
<textarea v-model="form.rules" id="rules" rows="4" class="c-ledger-edit__textarea"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="c-ledger-edit__field">
|
||||||
|
<label for="alignment" class="c-ledger-edit__label">Alignment</label>
|
||||||
|
<select
|
||||||
|
v-model="form.alignment"
|
||||||
|
id="alignment"
|
||||||
|
class="c-ledger-edit__select"
|
||||||
|
>
|
||||||
|
<option value="positive">
|
||||||
|
Positive (Higher Score is Better)
|
||||||
|
</option>
|
||||||
|
<option value="neutral">
|
||||||
|
Neutral (Frictionless / Standard)
|
||||||
|
</option>
|
||||||
|
<option value="negative">
|
||||||
|
Negative (Lower Score is Better / Demerits)
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="c-ledger-edit__actions">
|
<div class="c-ledger-edit__actions">
|
||||||
<button type="submit" :disabled="form.processing" class="c-ledger-edit__submit-btn">
|
<button type="submit" :disabled="form.processing" class="c-ledger-edit__submit-btn">
|
||||||
Save
|
Save
|
||||||
@ -129,13 +150,18 @@ function submit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.c-ledger-edit__textarea {
|
.c-ledger-edit__textarea {
|
||||||
@apply mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 dark:focus:border-indigo-600 dark:focus:ring-indigo-600;
|
@apply mt-1 block w-full rounded-md border border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 dark:focus:border-indigo-600 dark:focus:ring-indigo-600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c-ledger-edit__select {
|
||||||
|
@apply mt-1 block w-full rounded-md border border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 dark:focus:border-indigo-600 dark:focus:ring-indigo-600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c-ledger-edit__actions {
|
.c-ledger-edit__actions {
|
||||||
@apply flex items-center gap-4;
|
@apply mt-6 flex items-center justify-end gap-4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.c-ledger-edit__submit-btn {
|
.c-ledger-edit__submit-btn {
|
||||||
@apply inline-flex items-center rounded-md border border-transparent bg-gray-800 px-4 py-2 text-xs font-semibold tracking-widest text-white uppercase transition duration-150 ease-in-out hover:bg-gray-700 focus:bg-gray-700 focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 focus:outline-none active:bg-gray-900 dark:bg-gray-200 dark:text-gray-800 dark:hover:bg-white dark:focus:bg-white dark:focus:ring-offset-gray-800 dark:active:bg-gray-300;
|
@apply inline-flex items-center rounded-md border border-transparent bg-gray-800 px-4 py-2 text-xs font-semibold tracking-widest text-white uppercase transition duration-150 ease-in-out hover:bg-gray-700 focus:bg-gray-700 focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 focus:outline-none active:bg-gray-900 dark:bg-gray-200 dark:text-gray-800 dark:hover:bg-white dark:focus:bg-white dark:focus:ring-offset-gray-800 dark:active:bg-gray-300;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,3 +55,25 @@ test('non-owners cannot view ledger creation form or store ledgers', function ()
|
|||||||
'name' => 'Illegal Ledger',
|
'name' => 'Illegal Ledger',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('owner can edit a ledger', function () {
|
||||||
|
$owner = User::factory()->create();
|
||||||
|
$dynamic = Dynamic::factory()->create();
|
||||||
|
$dynamic->participants()->attach($owner->id, ['role' => 'owner']);
|
||||||
|
$ledger = Ledger::factory()->create(['dynamic_id' => $dynamic->id]);
|
||||||
|
|
||||||
|
$this->actingAs($owner);
|
||||||
|
|
||||||
|
$response = $this->put(route('dynamics.ledgers.update', [$dynamic->uuid, $ledger->uuid]), [
|
||||||
|
'name' => 'Updated Ledger Name',
|
||||||
|
'rules' => 'Updated rules.',
|
||||||
|
'alignment' => 'negative',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect(route('dynamics.ledgers.show', [$dynamic->uuid, $ledger->uuid]));
|
||||||
|
$ledger->refresh();
|
||||||
|
|
||||||
|
expect($ledger->name)->toBe('Updated Ledger Name');
|
||||||
|
expect($ledger->rules)->toBe('Updated rules.');
|
||||||
|
expect($ledger->alignment)->toBe('negative');
|
||||||
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user