Andrew Wallo il y a 6 mois
Parent
révision
0345fe5c06

+ 3
- 2
app/Filament/Company/Pages/Accounting/AccountChart.php Voir le fichier

@@ -51,8 +51,9 @@ class AccountChart extends Page
51 51
     public function categories(): Collection
52 52
     {
53 53
         return AccountSubtype::withCount('accounts')
54
-            ->with('accounts')
55
-            ->with('accounts.adjustment')
54
+            ->with(['accounts' => function ($query) {
55
+                $query->withLastTransactionDate()->with('adjustment');
56
+            }])
56 57
             ->get()
57 58
             ->groupBy('category');
58 59
     }

+ 8
- 11
app/Models/Accounting/Account.php Voir le fichier

@@ -21,7 +21,7 @@ use Illuminate\Database\Eloquent\Model;
21 21
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
22 22
 use Illuminate\Database\Eloquent\Relations\HasMany;
23 23
 use Illuminate\Database\Eloquent\Relations\HasOne;
24
-use Illuminate\Support\Carbon;
24
+use Illuminate\Support\Facades\DB;
25 25
 
26 26
 #[ObservedBy(AccountObserver::class)]
27 27
 class Account extends Model
@@ -111,17 +111,14 @@ class Account extends Model
111 111
             ->where('currency_code', CurrencyAccessor::getDefaultCurrency());
112 112
     }
113 113
 
114
-    public function getLastTransactionDate(): ?string
114
+    public function scopeWithLastTransactionDate(Builder $query): Builder
115 115
     {
116
-        $lastJournalEntryTransaction = $this->journalEntries()
117
-            ->join('transactions', 'journal_entries.transaction_id', '=', 'transactions.id')
118
-            ->max('transactions.posted_at');
119
-
120
-        if ($lastJournalEntryTransaction) {
121
-            return Carbon::parse($lastJournalEntryTransaction)->format('F j, Y');
122
-        }
123
-
124
-        return null;
116
+        return $query->addSelect([
117
+            'last_transaction_date' => JournalEntry::select(DB::raw('MAX(transactions.posted_at)'))
118
+                ->join('transactions', 'journal_entries.transaction_id', '=', 'transactions.id')
119
+                ->whereColumn('journal_entries.account_id', 'accounts.id')
120
+                ->limit(1),
121
+        ]);
125 122
     }
126 123
 
127 124
     protected function endingBalance(): Attribute

+ 1
- 0
composer.json Voir le fichier

@@ -30,6 +30,7 @@
30 30
         "symfony/intl": "^6.3"
31 31
     },
32 32
     "require-dev": {
33
+        "barryvdh/laravel-debugbar": "^3.15",
33 34
         "fakerphp/faker": "^1.23",
34 35
         "laravel/pint": "^1.13",
35 36
         "laravel/sail": "^1.26",

+ 159
- 1
composer.lock Voir le fichier

@@ -4,7 +4,7 @@
4 4
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 5
         "This file is @generated automatically"
6 6
     ],
7
-    "content-hash": "095bb4040f9910ddd128bd53c0670a55",
7
+    "content-hash": "d025044f35b2bd1c51f1a316081969aa",
8 8
     "packages": [
9 9
         {
10 10
             "name": "akaunting/laravel-money",
@@ -9304,6 +9304,94 @@
9304 9304
         }
9305 9305
     ],
9306 9306
     "packages-dev": [
9307
+        {
9308
+            "name": "barryvdh/laravel-debugbar",
9309
+            "version": "v3.15.2",
9310
+            "source": {
9311
+                "type": "git",
9312
+                "url": "https://github.com/barryvdh/laravel-debugbar.git",
9313
+                "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729"
9314
+            },
9315
+            "dist": {
9316
+                "type": "zip",
9317
+                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/0bc1e1361e7fffc2be156f46ad1fba6927c01729",
9318
+                "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729",
9319
+                "shasum": ""
9320
+            },
9321
+            "require": {
9322
+                "illuminate/routing": "^9|^10|^11|^12",
9323
+                "illuminate/session": "^9|^10|^11|^12",
9324
+                "illuminate/support": "^9|^10|^11|^12",
9325
+                "php": "^8.1",
9326
+                "php-debugbar/php-debugbar": "~2.1.1",
9327
+                "symfony/finder": "^6|^7"
9328
+            },
9329
+            "conflict": {
9330
+                "maximebf/debugbar": "*"
9331
+            },
9332
+            "require-dev": {
9333
+                "mockery/mockery": "^1.3.3",
9334
+                "orchestra/testbench-dusk": "^7|^8|^9|^10",
9335
+                "phpunit/phpunit": "^9.5.10|^10|^11",
9336
+                "squizlabs/php_codesniffer": "^3.5"
9337
+            },
9338
+            "type": "library",
9339
+            "extra": {
9340
+                "laravel": {
9341
+                    "aliases": {
9342
+                        "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar"
9343
+                    },
9344
+                    "providers": [
9345
+                        "Barryvdh\\Debugbar\\ServiceProvider"
9346
+                    ]
9347
+                },
9348
+                "branch-alias": {
9349
+                    "dev-master": "3.15-dev"
9350
+                }
9351
+            },
9352
+            "autoload": {
9353
+                "files": [
9354
+                    "src/helpers.php"
9355
+                ],
9356
+                "psr-4": {
9357
+                    "Barryvdh\\Debugbar\\": "src/"
9358
+                }
9359
+            },
9360
+            "notification-url": "https://packagist.org/downloads/",
9361
+            "license": [
9362
+                "MIT"
9363
+            ],
9364
+            "authors": [
9365
+                {
9366
+                    "name": "Barry vd. Heuvel",
9367
+                    "email": "barryvdh@gmail.com"
9368
+                }
9369
+            ],
9370
+            "description": "PHP Debugbar integration for Laravel",
9371
+            "keywords": [
9372
+                "debug",
9373
+                "debugbar",
9374
+                "dev",
9375
+                "laravel",
9376
+                "profiler",
9377
+                "webprofiler"
9378
+            ],
9379
+            "support": {
9380
+                "issues": "https://github.com/barryvdh/laravel-debugbar/issues",
9381
+                "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.2"
9382
+            },
9383
+            "funding": [
9384
+                {
9385
+                    "url": "https://fruitcake.nl",
9386
+                    "type": "custom"
9387
+                },
9388
+                {
9389
+                    "url": "https://github.com/barryvdh",
9390
+                    "type": "github"
9391
+                }
9392
+            ],
9393
+            "time": "2025-02-25T15:25:22+00:00"
9394
+        },
9307 9395
         {
9308 9396
             "name": "brianium/paratest",
9309 9397
             "version": "v7.8.3",
@@ -10582,6 +10670,76 @@
10582 10670
             },
10583 10671
             "time": "2022-02-21T01:04:05+00:00"
10584 10672
         },
10673
+        {
10674
+            "name": "php-debugbar/php-debugbar",
10675
+            "version": "v2.1.6",
10676
+            "source": {
10677
+                "type": "git",
10678
+                "url": "https://github.com/php-debugbar/php-debugbar.git",
10679
+                "reference": "16fa68da5617220594aa5e33fa9de415f94784a0"
10680
+            },
10681
+            "dist": {
10682
+                "type": "zip",
10683
+                "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/16fa68da5617220594aa5e33fa9de415f94784a0",
10684
+                "reference": "16fa68da5617220594aa5e33fa9de415f94784a0",
10685
+                "shasum": ""
10686
+            },
10687
+            "require": {
10688
+                "php": "^8",
10689
+                "psr/log": "^1|^2|^3",
10690
+                "symfony/var-dumper": "^4|^5|^6|^7"
10691
+            },
10692
+            "require-dev": {
10693
+                "dbrekelmans/bdi": "^1",
10694
+                "phpunit/phpunit": "^8|^9",
10695
+                "symfony/panther": "^1|^2.1",
10696
+                "twig/twig": "^1.38|^2.7|^3.0"
10697
+            },
10698
+            "suggest": {
10699
+                "kriswallsmith/assetic": "The best way to manage assets",
10700
+                "monolog/monolog": "Log using Monolog",
10701
+                "predis/predis": "Redis storage"
10702
+            },
10703
+            "type": "library",
10704
+            "extra": {
10705
+                "branch-alias": {
10706
+                    "dev-master": "2.0-dev"
10707
+                }
10708
+            },
10709
+            "autoload": {
10710
+                "psr-4": {
10711
+                    "DebugBar\\": "src/DebugBar/"
10712
+                }
10713
+            },
10714
+            "notification-url": "https://packagist.org/downloads/",
10715
+            "license": [
10716
+                "MIT"
10717
+            ],
10718
+            "authors": [
10719
+                {
10720
+                    "name": "Maxime Bouroumeau-Fuseau",
10721
+                    "email": "maxime.bouroumeau@gmail.com",
10722
+                    "homepage": "http://maximebf.com"
10723
+                },
10724
+                {
10725
+                    "name": "Barry vd. Heuvel",
10726
+                    "email": "barryvdh@gmail.com"
10727
+                }
10728
+            ],
10729
+            "description": "Debug bar in the browser for php application",
10730
+            "homepage": "https://github.com/php-debugbar/php-debugbar",
10731
+            "keywords": [
10732
+                "debug",
10733
+                "debug bar",
10734
+                "debugbar",
10735
+                "dev"
10736
+            ],
10737
+            "support": {
10738
+                "issues": "https://github.com/php-debugbar/php-debugbar/issues",
10739
+                "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.1.6"
10740
+            },
10741
+            "time": "2025-02-21T17:47:03+00:00"
10742
+        },
10585 10743
         {
10586 10744
             "name": "php-di/invoker",
10587 10745
             "version": "2.3.6",

+ 332
- 0
config/debugbar.php Voir le fichier

@@ -0,0 +1,332 @@
1
+<?php
2
+
3
+return [
4
+
5
+    /*
6
+     |--------------------------------------------------------------------------
7
+     | Debugbar Settings
8
+     |--------------------------------------------------------------------------
9
+     |
10
+     | Debugbar is enabled by default, when debug is set to true in app.php.
11
+     | You can override the value by setting enable to true or false instead of null.
12
+     |
13
+     | You can provide an array of URI's that must be ignored (eg. 'api/*')
14
+     |
15
+     */
16
+
17
+    'enabled' => env('DEBUGBAR_ENABLED', null),
18
+    'hide_empty_tabs' => true, // Hide tabs until they have content
19
+    'except' => [
20
+        'telescope*',
21
+        'horizon*',
22
+    ],
23
+
24
+    /*
25
+     |--------------------------------------------------------------------------
26
+     | Storage settings
27
+     |--------------------------------------------------------------------------
28
+     |
29
+     | Debugbar stores data for session/ajax requests.
30
+     | You can disable this, so the debugbar stores data in headers/session,
31
+     | but this can cause problems with large data collectors.
32
+     | By default, file storage (in the storage folder) is used. Redis and PDO
33
+     | can also be used. For PDO, run the package migrations first.
34
+     |
35
+     | Warning: Enabling storage.open will allow everyone to access previous
36
+     | request, do not enable open storage in publicly available environments!
37
+     | Specify a callback if you want to limit based on IP or authentication.
38
+     | Leaving it to null will allow localhost only.
39
+     */
40
+    'storage' => [
41
+        'enabled' => true,
42
+        'open' => env('DEBUGBAR_OPEN_STORAGE'), // bool/callback.
43
+        'driver' => 'file', // redis, file, pdo, socket, custom
44
+        'path' => storage_path('debugbar'), // For file driver
45
+        'connection' => null,   // Leave null for default connection (Redis/PDO)
46
+        'provider' => '', // Instance of StorageInterface for custom driver
47
+        'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver
48
+        'port' => 2304, // Port to use with the "socket" driver
49
+    ],
50
+
51
+    /*
52
+    |--------------------------------------------------------------------------
53
+    | Editor
54
+    |--------------------------------------------------------------------------
55
+    |
56
+    | Choose your preferred editor to use when clicking file name.
57
+    |
58
+    | Supported: "phpstorm", "vscode", "vscode-insiders", "vscode-remote",
59
+    |            "vscode-insiders-remote", "vscodium", "textmate", "emacs",
60
+    |            "sublime", "atom", "nova", "macvim", "idea", "netbeans",
61
+    |            "xdebug", "espresso"
62
+    |
63
+    */
64
+
65
+    'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),
66
+
67
+    /*
68
+    |--------------------------------------------------------------------------
69
+    | Remote Path Mapping
70
+    |--------------------------------------------------------------------------
71
+    |
72
+    | If you are using a remote dev server, like Laravel Homestead, Docker, or
73
+    | even a remote VPS, it will be necessary to specify your path mapping.
74
+    |
75
+    | Leaving one, or both of these, empty or null will not trigger the remote
76
+    | URL changes and Debugbar will treat your editor links as local files.
77
+    |
78
+    | "remote_sites_path" is an absolute base path for your sites or projects
79
+    | in Homestead, Vagrant, Docker, or another remote development server.
80
+    |
81
+    | Example value: "/home/vagrant/Code"
82
+    |
83
+    | "local_sites_path" is an absolute base path for your sites or projects
84
+    | on your local computer where your IDE or code editor is running on.
85
+    |
86
+    | Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
87
+    |
88
+    */
89
+
90
+    'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH'),
91
+    'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', env('IGNITION_LOCAL_SITES_PATH')),
92
+
93
+    /*
94
+     |--------------------------------------------------------------------------
95
+     | Vendors
96
+     |--------------------------------------------------------------------------
97
+     |
98
+     | Vendor files are included by default, but can be set to false.
99
+     | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
100
+     | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files)
101
+     | and for js: jquery and highlight.js
102
+     | So if you want syntax highlighting, set it to true.
103
+     | jQuery is set to not conflict with existing jQuery scripts.
104
+     |
105
+     */
106
+
107
+    'include_vendors' => true,
108
+
109
+    /*
110
+     |--------------------------------------------------------------------------
111
+     | Capture Ajax Requests
112
+     |--------------------------------------------------------------------------
113
+     |
114
+     | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
115
+     | you can use this option to disable sending the data through the headers.
116
+     |
117
+     | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
118
+     |
119
+     | Note for your request to be identified as ajax requests they must either send the header
120
+     | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
121
+     |
122
+     | By default `ajax_handler_auto_show` is set to true allowing ajax requests to be shown automatically in the Debugbar.
123
+     | Changing `ajax_handler_auto_show` to false will prevent the Debugbar from reloading.
124
+     |
125
+     | You can defer loading the dataset, so it will be loaded with ajax after the request is done. (Experimental)
126
+     */
127
+
128
+    'capture_ajax' => true,
129
+    'add_ajax_timing' => false,
130
+    'ajax_handler_auto_show' => false,
131
+    'ajax_handler_enable_tab' => true,
132
+    'defer_datasets' => false,
133
+    /*
134
+     |--------------------------------------------------------------------------
135
+     | Custom Error Handler for Deprecated warnings
136
+     |--------------------------------------------------------------------------
137
+     |
138
+     | When enabled, the Debugbar shows deprecated warnings for Symfony components
139
+     | in the Messages tab.
140
+     |
141
+     */
142
+    'error_handler' => false,
143
+
144
+    /*
145
+     |--------------------------------------------------------------------------
146
+     | Clockwork integration
147
+     |--------------------------------------------------------------------------
148
+     |
149
+     | The Debugbar can emulate the Clockwork headers, so you can use the Chrome
150
+     | Extension, without the server-side code. It uses Debugbar collectors instead.
151
+     |
152
+     */
153
+    'clockwork' => false,
154
+
155
+    /*
156
+     |--------------------------------------------------------------------------
157
+     | DataCollectors
158
+     |--------------------------------------------------------------------------
159
+     |
160
+     | Enable/disable DataCollectors
161
+     |
162
+     */
163
+
164
+    'collectors' => [
165
+        'phpinfo' => false,  // Php version
166
+        'messages' => true,  // Messages
167
+        'time' => true,  // Time Datalogger
168
+        'memory' => true,  // Memory usage
169
+        'exceptions' => true,  // Exception displayer
170
+        'log' => true,  // Logs from Monolog (merged in messages if enabled)
171
+        'db' => true,  // Show database (PDO) queries and bindings
172
+        'views' => true,  // Views with their data
173
+        'route' => false,  // Current route information
174
+        'auth' => false, // Display Laravel authentication status
175
+        'gate' => true,  // Display Laravel Gate checks
176
+        'session' => false,  // Display session data
177
+        'symfony_request' => true,  // Only one can be enabled..
178
+        'mail' => true,  // Catch mail messages
179
+        'laravel' => true, // Laravel version and environment
180
+        'events' => false, // All events fired
181
+        'default_request' => false, // Regular or special Symfony request logger
182
+        'logs' => false, // Add the latest log messages
183
+        'files' => false, // Show the included files
184
+        'config' => false, // Display config settings
185
+        'cache' => false, // Display cache events
186
+        'models' => true,  // Display models
187
+        'livewire' => true,  // Display Livewire (when available)
188
+        'jobs' => false, // Display dispatched jobs
189
+        'pennant' => false, // Display Pennant feature flags
190
+    ],
191
+
192
+    /*
193
+     |--------------------------------------------------------------------------
194
+     | Extra options
195
+     |--------------------------------------------------------------------------
196
+     |
197
+     | Configure some DataCollectors
198
+     |
199
+     */
200
+
201
+    'options' => [
202
+        'time' => [
203
+            'memory_usage' => false,  // Calculated by subtracting memory start and end, it may be inaccurate
204
+        ],
205
+        'messages' => [
206
+            'trace' => true,   // Trace the origin of the debug message
207
+        ],
208
+        'memory' => [
209
+            'reset_peak' => false,     // run memory_reset_peak_usage before collecting
210
+            'with_baseline' => false,  // Set boot memory usage as memory peak baseline
211
+            'precision' => 0,          // Memory rounding precision
212
+        ],
213
+        'auth' => [
214
+            'show_name' => true,   // Also show the users name/email in the debugbar
215
+            'show_guards' => true, // Show the guards that are used
216
+        ],
217
+        'db' => [
218
+            'with_params' => true,   // Render SQL with the parameters substituted
219
+            'exclude_paths' => [       // Paths to exclude entirely from the collector
220
+                //                'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
221
+            ],
222
+            'backtrace' => true,   // Use a backtrace to find the origin of the query in your files.
223
+            'backtrace_exclude_paths' => [],   // Paths to exclude from backtrace. (in addition to defaults)
224
+            'timeline' => false,  // Add the queries to the timeline
225
+            'duration_background' => true,   // Show shaded background on each query relative to how long it took to execute.
226
+            'explain' => [                 // Show EXPLAIN output on queries
227
+                'enabled' => false,
228
+            ],
229
+            'hints' => false,   // Show hints for common mistakes
230
+            'show_copy' => true,    // Show copy button next to the query,
231
+            'slow_threshold' => false,   // Only track queries that last longer than this time in ms
232
+            'memory_usage' => false,   // Show queries memory usage
233
+            'soft_limit' => 100,      // After the soft limit, no parameters/backtrace are captured
234
+            'hard_limit' => 500,      // After the hard limit, queries are ignored
235
+        ],
236
+        'mail' => [
237
+            'timeline' => true,  // Add mails to the timeline
238
+            'show_body' => true,
239
+        ],
240
+        'views' => [
241
+            'timeline' => true,    // Add the views to the timeline
242
+            'data' => false,        // True for all data, 'keys' for only names, false for no parameters.
243
+            'group' => 50,          // Group duplicate views. Pass value to auto-group, or true/false to force
244
+            'exclude_paths' => [    // Add the paths which you don't want to appear in the views
245
+                'vendor/filament',   // Exclude Filament components by default
246
+            ],
247
+        ],
248
+        'route' => [
249
+            'label' => true,  // Show complete route on bar
250
+        ],
251
+        'session' => [
252
+            'hiddens' => [], // Hides sensitive values using array paths
253
+        ],
254
+        'symfony_request' => [
255
+            'label' => true,  // Show route on bar
256
+            'hiddens' => [], // Hides sensitive values using array paths, example: request_request.password
257
+        ],
258
+        'events' => [
259
+            'data' => false, // Collect events data, listeners
260
+        ],
261
+        'logs' => [
262
+            'file' => null,
263
+        ],
264
+        'cache' => [
265
+            'values' => true, // Collect cache values
266
+        ],
267
+    ],
268
+
269
+    /*
270
+     |--------------------------------------------------------------------------
271
+     | Inject Debugbar in Response
272
+     |--------------------------------------------------------------------------
273
+     |
274
+     | Usually, the debugbar is added just before </body>, by listening to the
275
+     | Response after the App is done. If you disable this, you have to add them
276
+     | in your template yourself. See http://phpdebugbar.com/docs/rendering.html
277
+     |
278
+     */
279
+
280
+    'inject' => true,
281
+
282
+    /*
283
+     |--------------------------------------------------------------------------
284
+     | Debugbar route prefix
285
+     |--------------------------------------------------------------------------
286
+     |
287
+     | Sometimes you want to set route prefix to be used by Debugbar to load
288
+     | its resources from. Usually the need comes from misconfigured web server or
289
+     | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97
290
+     |
291
+     */
292
+    'route_prefix' => '_debugbar',
293
+
294
+    /*
295
+     |--------------------------------------------------------------------------
296
+     | Debugbar route middleware
297
+     |--------------------------------------------------------------------------
298
+     |
299
+     | Additional middleware to run on the Debugbar routes
300
+     */
301
+    'route_middleware' => [],
302
+
303
+    /*
304
+     |--------------------------------------------------------------------------
305
+     | Debugbar route domain
306
+     |--------------------------------------------------------------------------
307
+     |
308
+     | By default Debugbar route served from the same domain that request served.
309
+     | To override default domain, specify it as a non-empty value.
310
+     */
311
+    'route_domain' => null,
312
+
313
+    /*
314
+     |--------------------------------------------------------------------------
315
+     | Debugbar theme
316
+     |--------------------------------------------------------------------------
317
+     |
318
+     | Switches between light and dark theme. If set to auto it will respect system preferences
319
+     | Possible values: auto, light, dark
320
+     */
321
+    'theme' => env('DEBUGBAR_THEME', 'auto'),
322
+
323
+    /*
324
+     |--------------------------------------------------------------------------
325
+     | Backtrace stack limit
326
+     |--------------------------------------------------------------------------
327
+     |
328
+     | By default, the Debugbar limits the number of frames returned by the 'debug_backtrace()' function.
329
+     | If you need larger stacktraces, you can increase this number. Setting it to 0 will result in no limit.
330
+     */
331
+    'debug_backtrace_limit' => 50,
332
+];

+ 3
- 2
resources/views/filament/company/pages/accounting/chart.blade.php Voir le fichier

@@ -58,8 +58,9 @@
58 58
                                             {{ $account->name }}
59 59
                                             <br>
60 60
                                             <small class="text-gray-500 dark:text-gray-400">
61
-                                                @if($account->getLastTransactionDate())
62
-                                                    Last transaction on {{ $account->getLastTransactionDate() }}
61
+                                                @if($account->last_transaction_date)
62
+                                                    Last transaction
63
+                                                    on {{ \Illuminate\Support\Carbon::parse($account->last_transaction_date)->toDefaultDateFormat() }}
63 64
                                                 @else
64 65
                                                     No transactions for this account
65 66
                                                 @endif

+ 2
- 0
storage/debugbar/.gitignore Voir le fichier

@@ -0,0 +1,2 @@
1
+*
2
+!.gitignore

Chargement…
Annuler
Enregistrer