file & image field for configuration

This commit is contained in:
rahul shukla 2019-01-30 21:25:38 +05:30
parent 36f98a8a4e
commit 2f8178afc0
6 changed files with 87 additions and 5 deletions

View File

@ -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',
];
}
}

View File

@ -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',

View File

@ -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="&quot;{{ $field['name'] }}&quot;">
<?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="&quot;{{ $field['name'] }}&quot;" 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="&quot;{{ $field['name'] }}&quot;" 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>

View File

@ -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);
}
}
}
}

View File

@ -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;

View File

@ -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();