file & image field for configuration
This commit is contained in:
parent
36f98a8a4e
commit
2f8178afc0
|
|
@ -28,6 +28,8 @@ class ConfigurationForm extends FormRequest
|
|||
'sales.*.*.title' => 'required',
|
||||
'sales.*.*.active' => 'required',
|
||||
'sales.*.*.order_status' => 'required',
|
||||
// 'sales.*.*.Image' => 'image|mimes:jpg,png',
|
||||
// 'sales.*.*.File' => 'mimes:doc,pdf,docx,zip',
|
||||
];
|
||||
|
||||
return $this->rules;
|
||||
|
|
@ -44,6 +46,8 @@ class ConfigurationForm extends FormRequest
|
|||
'sales.*.*.title.required' => 'The title field is required.',
|
||||
'sales.*.*.active.required' => 'The status field is required.',
|
||||
'sales.*.*.order_status.required' => 'Order Status field is required',
|
||||
// 'sales.*.*.Image.image' => 'Image field must be an image',
|
||||
// 'sales.*.*.Image.mimes' => 'Image must be a file of type: jpg, png',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -447,6 +447,9 @@ return [
|
|||
'title' => 'Configuration',
|
||||
'save-btn-title' => 'Save',
|
||||
'save-message' => 'Configuration saved successfully',
|
||||
'yes' => 'Yes',
|
||||
'no' => 'No',
|
||||
'delete' => 'Delete',
|
||||
|
||||
'tax-categories' => [
|
||||
'title' => 'Tax Categories',
|
||||
|
|
|
|||
|
|
@ -139,6 +139,67 @@
|
|||
|
||||
<state code = {{ $stateCode }}></state>
|
||||
|
||||
@elseif ($field['type'] == 'boolean')
|
||||
|
||||
<select v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as=""{{ $field['name'] }}"">
|
||||
|
||||
<?php
|
||||
$selectedOption = core()->getConfigData($name) ?? '';
|
||||
?>
|
||||
|
||||
<option value="0" {{ $selectedOption ? '' : 'selected'}}>
|
||||
{{ __('admin::app.configuration.no') }}
|
||||
</option>
|
||||
|
||||
<option value="1" {{ $selectedOption ? 'selected' : ''}}>
|
||||
{{ __('admin::app.configuration.yes') }}
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
@elseif ($field['type'] == 'image')
|
||||
|
||||
<?php
|
||||
$src = Storage::url(core()->getConfigData($name));
|
||||
$result = core()->getConfigData($name);
|
||||
?>
|
||||
|
||||
@if ($result)
|
||||
<img src="{{ $src }}" style="position: relative; top: 15px" />
|
||||
@endif
|
||||
|
||||
<input type="file" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: core()->getConfigData($name) }}" data-vv-as=""{{ $field['name'] }}"" style="padding-top: 5px;">
|
||||
|
||||
@if ($result)
|
||||
<div class="control-group" style="margin-top: 5px;">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][delete]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][delete]" value="1">
|
||||
|
||||
<label class="checkbox-view" for="delete"></label>
|
||||
{{ __('admin::app.configuration.delete') }}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@elseif ($field['type'] == 'file')
|
||||
|
||||
<?php
|
||||
$result = core()->getConfigData($name);
|
||||
?>
|
||||
|
||||
<input type="file" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: core()->getConfigData($name) }}" data-vv-as=""{{ $field['name'] }}"" style="padding-top: 5px;">
|
||||
|
||||
@if ($result)
|
||||
<div class="control-group" style="margin-top: 5px;">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][delete]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][delete]" value="1">
|
||||
|
||||
<label class="checkbox-view" for="delete"></label>
|
||||
{{ __('admin::app.configuration.delete') }}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endif
|
||||
|
||||
<span class="control-error" v-if="errors.has('{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]')">@{{ errors.first('{!! $firstField !!}[{!! $secondField !!}][{!! $thirdField !!}][{!! $field['name'] !!}]') }}</span>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Core\Repositories;
|
||||
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
/**
|
||||
* Core Config Reposotory
|
||||
|
|
@ -56,7 +57,9 @@ class CoreConfigRepository extends Repository
|
|||
}
|
||||
|
||||
if (getType($value) == 'array') {
|
||||
$value = implode("," , $value);
|
||||
if (!$value['delete']) {
|
||||
$value = implode(",", $value);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($field['channel_based']) && $field['channel_based']) {
|
||||
|
|
@ -86,6 +89,11 @@ class CoreConfigRepository extends Repository
|
|||
}
|
||||
}
|
||||
|
||||
if (request()->hasFile($fieldName)) {
|
||||
$dir = 'configuration';
|
||||
$value = request()->file($fieldName)->store($dir);
|
||||
}
|
||||
|
||||
if (! count($coreConfigValue) > 0) {
|
||||
$this->model->create([
|
||||
'code' => $fieldName,
|
||||
|
|
@ -100,7 +108,13 @@ class CoreConfigRepository extends Repository
|
|||
$updataData['channel_code'] = $channel_based ? $channel : null;
|
||||
|
||||
foreach ($coreConfigValue as $coreConfig) {
|
||||
$coreConfig->update($updataData);
|
||||
Storage::delete($coreConfig['value']);
|
||||
|
||||
if(isset($value['delete'])) {
|
||||
$this->model->destroy($coreConfig['id']);
|
||||
} else {
|
||||
$coreConfig->update($updataData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1853,7 +1853,7 @@ section.product-detail {
|
|||
flex-direction: column-reverse;
|
||||
|
||||
.thumb-list {
|
||||
height: 120px;
|
||||
height: 120px !important;
|
||||
margin-top: 5px;
|
||||
flex-direction: row;
|
||||
overflow-x: scroll;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
const { mix } = require("laravel-mix");
|
||||
require("laravel-mix-merge-manifest");
|
||||
|
||||
var publicPath = 'publishable/assets';
|
||||
// var publicPath = "../../../public/themes/default/assets";
|
||||
// var publicPath = 'publishable/assets';
|
||||
var publicPath = "../../../public/themes/default/assets";
|
||||
|
||||
mix.setPublicPath(publicPath).mergeManifest();
|
||||
mix.disableNotifications();
|
||||
|
|
|
|||
Loading…
Reference in New Issue