mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Merge pull request #8410 from beganovich/fixes-for-storing-designs
Coerce the string to array if empty string passed for `design`
This commit is contained in:
commit
047fb30a78
24
app/DataProviders/DesignBlocks.php
Normal file
24
app/DataProviders/DesignBlocks.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com).
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\DataProviders;
|
||||||
|
|
||||||
|
class DesignBlocks
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public string $includes = '',
|
||||||
|
public string $header = '',
|
||||||
|
public string $body = '',
|
||||||
|
public string $footer = ''
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace App\Factory;
|
namespace App\Factory;
|
||||||
|
|
||||||
|
use App\DataProviders\DesignBlocks;
|
||||||
use App\Models\Design;
|
use App\Models\Design;
|
||||||
|
|
||||||
class DesignFactory
|
class DesignFactory
|
||||||
@ -24,7 +25,7 @@ class DesignFactory
|
|||||||
$design->is_active = true;
|
$design->is_active = true;
|
||||||
$design->is_custom = true;
|
$design->is_custom = true;
|
||||||
$design->name = '';
|
$design->name = '';
|
||||||
$design->design = '[]';
|
$design->design = new DesignBlocks();
|
||||||
|
|
||||||
return $design;
|
return $design;
|
||||||
}
|
}
|
||||||
|
@ -33,12 +33,17 @@ class StoreDesignRequest extends Request
|
|||||||
//'name' => 'required',
|
//'name' => 'required',
|
||||||
'name' => 'required|unique:designs,name,null,null,company_id,'.auth()->user()->companyId(),
|
'name' => 'required|unique:designs,name,null,null,company_id,'.auth()->user()->companyId(),
|
||||||
'design' => 'required|array',
|
'design' => 'required|array',
|
||||||
|
'design.header' => 'required|min:1',
|
||||||
|
'design.body' => 'required|min:1',
|
||||||
|
'design.footer' => 'required|min:1',
|
||||||
|
'design.includes' => 'required|min:1',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prepareForValidation()
|
public function prepareForValidation()
|
||||||
{
|
{
|
||||||
$input = $this->all();
|
$input = $this->all();
|
||||||
|
$input['design'] = (isset($input['design']) && is_array($input['design'])) ? $input['design'] : [];
|
||||||
|
|
||||||
if (! array_key_exists('product', $input['design']) || is_null($input['design']['product'])) {
|
if (! array_key_exists('product', $input['design']) || is_null($input['design']['product'])) {
|
||||||
$input['design']['product'] = '';
|
$input['design']['product'] = '';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user