Compare commits
2 Commits
89a48fae16
...
57be9168e5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57be9168e5 | ||
|
|
800cb7a819 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -31,4 +31,5 @@ yarn-error.log
|
|||||||
/public/workbox-*.js
|
/public/workbox-*.js
|
||||||
/tests/Browser/console
|
/tests/Browser/console
|
||||||
/tests/Browser/screenshots
|
/tests/Browser/screenshots
|
||||||
/tests/Browser/source
|
/tests/Browser/source
|
||||||
|
/storage/debugbar/
|
||||||
|
|||||||
@ -22,6 +22,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.24",
|
"fakerphp/faker": "^1.24",
|
||||||
|
"fruitcake/laravel-debugbar": "^4.4",
|
||||||
"larastan/larastan": "^3.9",
|
"larastan/larastan": "^3.9",
|
||||||
"laravel/boost": "^2.2",
|
"laravel/boost": "^2.2",
|
||||||
"laravel/dusk": "^8.6",
|
"laravel/dusk": "^8.6",
|
||||||
|
|||||||
273
composer.lock
generated
273
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "26618424deaf53a19e8fe992032eef9c",
|
"content-hash": "349232eb2e405a447b06a60c3c01fe4c",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bacon/bacon-qr-code",
|
"name": "bacon/bacon-qr-code",
|
||||||
@ -9344,6 +9344,109 @@
|
|||||||
],
|
],
|
||||||
"time": "2025-08-08T12:00:00+00:00"
|
"time": "2025-08-08T12:00:00+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "fruitcake/laravel-debugbar",
|
||||||
|
"version": "v4.4.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/fruitcake/laravel-debugbar.git",
|
||||||
|
"reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/80ef956bda9e1a5824037d6f2cd06e73092e5634",
|
||||||
|
"reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"illuminate/routing": "^11|^12|^13.0",
|
||||||
|
"illuminate/session": "^11|^12|^13.0",
|
||||||
|
"illuminate/support": "^11|^12|^13.0",
|
||||||
|
"php": "^8.2",
|
||||||
|
"php-debugbar/php-debugbar": "^3.8.0",
|
||||||
|
"php-debugbar/symfony-bridge": "^1.1"
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"barryvdh/laravel-debugbar": "self.version"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"larastan/larastan": "^3",
|
||||||
|
"laravel/ai": "^0.8",
|
||||||
|
"laravel/octane": "^2",
|
||||||
|
"laravel/pennant": "^1",
|
||||||
|
"laravel/pint": "^1",
|
||||||
|
"laravel/telescope": "^5.16",
|
||||||
|
"livewire/livewire": "^3.7|^4",
|
||||||
|
"mockery/mockery": "^1.3.3",
|
||||||
|
"orchestra/testbench-dusk": "^9|^10|^11",
|
||||||
|
"php-debugbar/twig-bridge": "^2.0",
|
||||||
|
"phpstan/phpstan-phpunit": "^2",
|
||||||
|
"phpstan/phpstan-strict-rules": "^2.0",
|
||||||
|
"phpunit/phpunit": "^11",
|
||||||
|
"shipmonk/phpstan-rules": "^4.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"aliases": {
|
||||||
|
"Debugbar": "Fruitcake\\LaravelDebugbar\\Facades\\Debugbar"
|
||||||
|
},
|
||||||
|
"providers": [
|
||||||
|
"Fruitcake\\LaravelDebugbar\\ServiceProvider"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.2-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/helpers.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Fruitcake\\LaravelDebugbar\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fruitcake",
|
||||||
|
"homepage": "https://fruitcake.nl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Barry vd. Heuvel",
|
||||||
|
"email": "barryvdh@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Debugbar integration for Laravel",
|
||||||
|
"keywords": [
|
||||||
|
"barryvdh",
|
||||||
|
"debug",
|
||||||
|
"debugbar",
|
||||||
|
"dev",
|
||||||
|
"laravel",
|
||||||
|
"profiler",
|
||||||
|
"webprofiler"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/fruitcake/laravel-debugbar/issues",
|
||||||
|
"source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://fruitcake.nl",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/barryvdh",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-07-04T08:30:57+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "hamcrest/hamcrest-php",
|
"name": "hamcrest/hamcrest-php",
|
||||||
"version": "v2.1.1",
|
"version": "v2.1.1",
|
||||||
@ -11041,6 +11144,174 @@
|
|||||||
},
|
},
|
||||||
"time": "2022-02-21T01:04:05+00:00"
|
"time": "2022-02-21T01:04:05+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "php-debugbar/php-debugbar",
|
||||||
|
"version": "v3.8.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-debugbar/php-debugbar.git",
|
||||||
|
"reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/18ced90d4b882ed449b2278fea8692f8f7d1c13c",
|
||||||
|
"reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.2",
|
||||||
|
"psr/log": "^1|^2|^3",
|
||||||
|
"symfony/var-dumper": "^5.4|^6|^7|^8"
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"maximebf/debugbar": "self.version"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dbrekelmans/bdi": "^1.4",
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.92",
|
||||||
|
"monolog/monolog": "^3.9",
|
||||||
|
"php-debugbar/doctrine-bridge": "^3@dev",
|
||||||
|
"php-debugbar/monolog-bridge": "^1@dev",
|
||||||
|
"php-debugbar/symfony-bridge": "^1@dev",
|
||||||
|
"php-debugbar/twig-bridge": "^2@dev",
|
||||||
|
"phpstan/phpstan": "^2.1",
|
||||||
|
"phpstan/phpstan-phpunit": "^2.0",
|
||||||
|
"phpstan/phpstan-strict-rules": "^2.0",
|
||||||
|
"phpunit/phpunit": "^10",
|
||||||
|
"predis/predis": "^3.3",
|
||||||
|
"shipmonk/phpstan-rules": "^4.3",
|
||||||
|
"symfony/browser-kit": "^6.4|7.0",
|
||||||
|
"symfony/dom-crawler": "^6.4|^7",
|
||||||
|
"symfony/event-dispatcher": "^5.4|^6.4|^7.3|^8.0",
|
||||||
|
"symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0",
|
||||||
|
"symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
|
||||||
|
"symfony/panther": "^1|^2.1",
|
||||||
|
"twig/twig": "^3.11.2"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"php-debugbar/doctrine-bridge": "To integrate Doctrine with php-debugbar.",
|
||||||
|
"php-debugbar/monolog-bridge": "To integrate Monolog with php-debugbar.",
|
||||||
|
"php-debugbar/symfony-bridge": "To integrate Symfony with php-debugbar.",
|
||||||
|
"php-debugbar/twig-bridge": "To integrate Twig with php-debugbar."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.8-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"DebugBar\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Maxime Bouroumeau-Fuseau",
|
||||||
|
"email": "maxime.bouroumeau@gmail.com",
|
||||||
|
"homepage": "http://maximebf.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Barry vd. Heuvel",
|
||||||
|
"email": "barryvdh@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Debug bar in the browser for php application",
|
||||||
|
"homepage": "https://github.com/php-debugbar/php-debugbar",
|
||||||
|
"keywords": [
|
||||||
|
"debug",
|
||||||
|
"debug bar",
|
||||||
|
"debugbar",
|
||||||
|
"dev",
|
||||||
|
"profiler",
|
||||||
|
"toolbar"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
|
||||||
|
"source": "https://github.com/php-debugbar/php-debugbar/tree/v3.8.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://fruitcake.nl",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/barryvdh",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-07-02T12:38:20+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-debugbar/symfony-bridge",
|
||||||
|
"version": "v1.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-debugbar/symfony-bridge.git",
|
||||||
|
"reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-debugbar/symfony-bridge/zipball/e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
|
||||||
|
"reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.2",
|
||||||
|
"php-debugbar/php-debugbar": "^3.1",
|
||||||
|
"symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dbrekelmans/bdi": "^1.4",
|
||||||
|
"phpunit/phpunit": "^10",
|
||||||
|
"symfony/browser-kit": "^6|^7",
|
||||||
|
"symfony/dom-crawler": "^6|^7",
|
||||||
|
"symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
|
||||||
|
"symfony/panther": "^1|^2.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"DebugBar\\Bridge\\Symfony\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Maxime Bouroumeau-Fuseau",
|
||||||
|
"email": "maxime.bouroumeau@gmail.com",
|
||||||
|
"homepage": "http://maximebf.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Barry vd. Heuvel",
|
||||||
|
"email": "barryvdh@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony bridge for PHP Debugbar",
|
||||||
|
"homepage": "https://github.com/php-debugbar/php-debugbar",
|
||||||
|
"keywords": [
|
||||||
|
"debugbar",
|
||||||
|
"dev",
|
||||||
|
"symfony"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-debugbar/symfony-bridge/issues",
|
||||||
|
"source": "https://github.com/php-debugbar/symfony-bridge/tree/v1.1.0"
|
||||||
|
},
|
||||||
|
"time": "2026-01-15T14:47:34+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "php-webdriver/webdriver",
|
"name": "php-webdriver/webdriver",
|
||||||
"version": "1.16.0",
|
"version": "1.16.0",
|
||||||
|
|||||||
@ -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