Field Type - Some Work Done
This commit is contained in:
parent
39ee02475d
commit
c6ffb88100
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=e2c223b41f0fee5494cd",
|
||||
"/js/admin.js": "/js/admin.js?id=3829c36ba5d70b31abab",
|
||||
"/css/admin.css": "/css/admin.css?id=b24aa6544b82f674840f"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="control-group" :class="[errors.has(name) ? 'has-error' : '']">
|
||||
<label :for="name" :class="checkValidations">
|
||||
{{ label }}
|
||||
<span class="locale"> {{ channel_locale ? `[${channel_locale}]` : '' }} </span>
|
||||
<span class="locale"> {{ channel_locale }} </span>
|
||||
</label>
|
||||
|
||||
<select v-if="this.options.length" v-validate="checkValidations" class="control" :id = "name" :name = "name" v-model="savedValue"
|
||||
|
|
|
|||
|
|
@ -1,21 +1,14 @@
|
|||
<?php
|
||||
$validations = [];
|
||||
$disabled = false;
|
||||
|
||||
if (isset($field['validation'])) {
|
||||
array_push($validations, $field['validation']);
|
||||
}
|
||||
|
||||
$validations = implode('|', array_filter($validations));
|
||||
|
||||
$key = $item['key'];
|
||||
$key = explode(".", $key);
|
||||
$firstField = current($key);
|
||||
$secondField = next($key);
|
||||
$thirdField = end($key);
|
||||
|
||||
$name = $item['key'] . '.' . $field['name'];
|
||||
|
||||
$coreConfigRepository = app('Webkul\Core\Repositories\CoreConfigRepository');
|
||||
|
||||
$nameField = $coreConfigRepository->getNameField($name);
|
||||
|
||||
$validations = $coreConfigRepository->getValidations($field);
|
||||
|
||||
$channelLocaleInfo = $coreConfigRepository->getChannelLocaleInfo($field, $channel, $locale);
|
||||
|
||||
if (isset($field['repository'])) {
|
||||
$temp = explode("@", $field['repository']);
|
||||
$class = app(current($temp));
|
||||
|
|
@ -23,31 +16,20 @@
|
|||
$value = $class->$method();
|
||||
}
|
||||
|
||||
$channel_locale = [];
|
||||
|
||||
if (isset($field['channel_based']) && $field['channel_based'])
|
||||
{
|
||||
array_push($channel_locale, $channel);
|
||||
}
|
||||
|
||||
if (isset($field['locale_based']) && $field['locale_based']) {
|
||||
array_push($channel_locale, $locale);
|
||||
}
|
||||
$key = $item['key'];
|
||||
$key = explode(".", $key);
|
||||
$firstField = current($key);
|
||||
$secondField = next($key);
|
||||
$thirdField = end($key);
|
||||
?>
|
||||
|
||||
@if ($field['type'] == 'depends')
|
||||
|
||||
<?php
|
||||
|
||||
$depends = explode(":", $field['depend']);
|
||||
$dependField = current($depends);
|
||||
$dependValue = end($depends);
|
||||
|
||||
if (count($channel_locale)) {
|
||||
$channel_locale = implode(' - ', $channel_locale);
|
||||
} else {
|
||||
$channel_locale = '';
|
||||
}
|
||||
$dependValue = end($depends);
|
||||
|
||||
if (isset($value) && $value) {
|
||||
$i = 0;
|
||||
|
|
@ -70,7 +52,7 @@
|
|||
|
||||
@if (strpos($field['validation'], 'required_if') !== false)
|
||||
<required-if
|
||||
:name = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]'"
|
||||
:name = "'{{ $nameField }}'"
|
||||
:label = "'{{ trans($field['title']) }}'"
|
||||
:info = "'{{ trans(isset($field['info']) ? $field['info'] : '') }}'"
|
||||
:options = '@json($field['options'])'
|
||||
|
|
@ -78,17 +60,17 @@
|
|||
:validations = "'{{ $validations }}'"
|
||||
:depend = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $dependField }}]'"
|
||||
:depend-result= "'{{ $dependSelectedOption }}'"
|
||||
:channel_locale = "'{{ $channel_locale }}'"
|
||||
:channel_locale = "'{{ $channelLocaleInfo }}'"
|
||||
></required-if>
|
||||
@else
|
||||
<depends
|
||||
:options = '@json($field['options'])'
|
||||
:name = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]'"
|
||||
:name = "'{{ $nameField }}'"
|
||||
:validations = "'{{ $validations }}'"
|
||||
:depend = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $dependField }}]'"
|
||||
:value = "'{{ $dependValue }}'"
|
||||
:field_name = "'{{ trans($field['title']) }}'"
|
||||
:channel_locale = "'{{ $channel_locale }}'"
|
||||
:channel_locale = "'{{ $channelLocaleInfo }}'"
|
||||
:result = "'{{ $selectedOption }}'"
|
||||
:depend-saved-value= "'{{ $dependSelectedOption }}'"
|
||||
></depends>
|
||||
|
|
@ -96,42 +78,40 @@
|
|||
|
||||
@else
|
||||
|
||||
<div class="control-group {{ $field['type'] }}" @if ($field['type'] == 'multiselect') :class="[errors.has('{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][]') ? 'has-error' : '']" @else :class="[errors.has('{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]') ? 'has-error' : '']" @endif>
|
||||
<div class="control-group {{ $field['type'] }}" @if ($field['type'] == 'multiselect') :class="[errors.has('{{ $nameField }}[]') ? 'has-error' : '']" @else :class="[errors.has('{{ $nameField }}') ? 'has-error' : '']" @endif>
|
||||
|
||||
<label for="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" {{ !isset($field['validation']) || preg_match('/\brequired\b/', $field['validation']) == false ? '' : 'class=required' }}>
|
||||
<label for="{{ $nameField }}" {{ !isset($field['validation']) || preg_match('/\brequired\b/', $field['validation']) == false ? '' : 'class=required' }}>
|
||||
|
||||
{{ trans($field['title']) }}
|
||||
|
||||
@if (count($channel_locale))
|
||||
<span class="locale">[{{ implode(' - ', $channel_locale) }}]</span>
|
||||
@endif
|
||||
<span class="locale">{{ $channelLocaleInfo }}</span>
|
||||
|
||||
</label>
|
||||
|
||||
@if ($field['type'] == 'text')
|
||||
|
||||
<input type="text" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: (core()->getConfigData($name, $channel, $locale) ? core()->getConfigData($name, $channel, $locale) : (isset($field['default_value']) ? $field['default_value'] : '')) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
<input type="text" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: (core()->getConfigData($name, $channel, $locale) ? core()->getConfigData($name, $channel, $locale) : (isset($field['default_value']) ? $field['default_value'] : '')) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
|
||||
@elseif ($field['type'] == 'password')
|
||||
|
||||
<input type="password" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
<input type="password" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
|
||||
@elseif ($field['type'] == 'number')
|
||||
|
||||
<input type="number" min="0" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
<input type="number" min="0" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
|
||||
@elseif ($field['type'] == 'color')
|
||||
|
||||
<input type="color" v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
<input type="color" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"">
|
||||
|
||||
|
||||
@elseif ($field['type'] == 'textarea')
|
||||
|
||||
<textarea v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as=""{{ trans($field['title']) }}"">{{ old($name) ?: core()->getConfigData($name, $channel, $locale) ?: (isset($field['default_value']) ? $field['default_value'] : '') }}</textarea>
|
||||
<textarea v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" data-vv-as=""{{ trans($field['title']) }}"">{{ old($name) ?: core()->getConfigData($name, $channel, $locale) ?: (isset($field['default_value']) ? $field['default_value'] : '') }}</textarea>
|
||||
|
||||
@elseif ($field['type'] == 'select')
|
||||
|
||||
<select v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as=""{{ trans($field['title']) }}"" >
|
||||
<select v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" data-vv-as=""{{ trans($field['title']) }}"" >
|
||||
|
||||
<?php
|
||||
$selectedOption = core()->getConfigData($name, $channel, $locale) ?? '';
|
||||
|
|
@ -169,7 +149,7 @@
|
|||
|
||||
@elseif ($field['type'] == 'multiselect')
|
||||
|
||||
<select v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][]" data-vv-as=""{{ trans($field['title']) }}"" multiple>
|
||||
<select v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}[]" data-vv-as=""{{ trans($field['title']) }}"" multiple>
|
||||
|
||||
<?php
|
||||
$selectedOption = core()->getConfigData($name, $channel, $locale) ?? '';
|
||||
|
|
@ -214,7 +194,7 @@
|
|||
<country
|
||||
:country_code = "'{{ $countryCode }}'"
|
||||
:validations = "'{{ $validations }}'"
|
||||
:name = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]'"
|
||||
:name = "'{{ $nameField }}'"
|
||||
></country>
|
||||
|
||||
@elseif ($field['type'] == 'state')
|
||||
|
|
@ -226,7 +206,7 @@
|
|||
<state
|
||||
:state_code = "'{{ $stateCode }}'"
|
||||
:validations = "'{{ $validations }}'"
|
||||
:name = "'{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]'"
|
||||
:name = "'{{ $nameField }}'"
|
||||
></state>
|
||||
|
||||
@elseif ($field['type'] == 'boolean')
|
||||
|
|
@ -234,8 +214,8 @@
|
|||
<?php $selectedOption = core()->getConfigData($name, $channel, $locale) ?? (isset($field['default_value']) ? $field['default_value'] : ''); ?>
|
||||
|
||||
<label class="switch">
|
||||
<input type="hidden" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="0" />
|
||||
<input type="checkbox" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" value="1" {{ $selectedOption ? 'checked' : '' }}>
|
||||
<input type="hidden" name="{{ $nameField }}" value="0" />
|
||||
<input type="checkbox" id="{{ $nameField }}" name="{{ $nameField }}" value="1" {{ $selectedOption ? 'checked' : '' }}>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
|
||||
|
|
@ -252,12 +232,12 @@
|
|||
</a>
|
||||
@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, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"" style="padding-top: 5px;">
|
||||
<input type="file" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"" 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">
|
||||
<input type="checkbox" id="{{ $nameField }}[delete]" name="{{ $nameField }}[delete]" value="1">
|
||||
|
||||
<label class="checkbox-view" for="delete"></label>
|
||||
{{ __('admin::app.configuration.delete') }}
|
||||
|
|
@ -279,12 +259,12 @@
|
|||
</a>
|
||||
@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, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"" style="padding-top: 5px;">
|
||||
<input type="file" v-validate="'{{ $validations }}'" class="control" id="{{ $nameField }}" name="{{ $nameField }}" value="{{ old($name) ?: core()->getConfigData($name, $channel, $locale) }}" data-vv-as=""{{ trans($field['title']) }}"" 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">
|
||||
<input type="checkbox" id="{{ $nameField }}[delete]" name="{{ $nameField }}[delete]" value="1">
|
||||
|
||||
<label class="checkbox-view" for="delete"></label>
|
||||
{{ __('admin::app.configuration.delete') }}
|
||||
|
|
@ -298,7 +278,7 @@
|
|||
<span class="control-info mt-10">{{ trans($field['info']) }}</span>
|
||||
@endif
|
||||
|
||||
<span class="control-error" @if ($field['type'] == 'multiselect') v-if="errors.has('{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][]')" @else v-if="errors.has('{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]')" @endif
|
||||
<span class="control-error" @if ($field['type'] == 'multiselect') v-if="errors.has('{{ $nameField }}[]')" @else v-if="errors.has('{{ $nameField }}')" @endif
|
||||
>
|
||||
@if ($field['type'] == 'multiselect')
|
||||
@{{ errors.first('{!! $firstField !!}[{!! $secondField !!}][{!! $thirdField !!}][{!! $field['name'] !!}][]') }}
|
||||
|
|
@ -425,7 +405,7 @@
|
|||
<div class="control-group" :class="[errors.has(name) ? 'has-error' : '']" v-if="this.isVisible">
|
||||
<label :for="name" :class="[ isRequire ? 'required' : '']">
|
||||
@{{ field_name }}
|
||||
<span class="locale"> [@{{ channel_locale }}] </span>
|
||||
<span class="locale"> @{{ channel_locale }} </span>
|
||||
</label>
|
||||
|
||||
<select v-if="this.options.length" v-validate= "validations" class="control" :id = "name" :name = "name" v-model="savedValue"
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
|
||||
@foreach ($item['fields'] as $field)
|
||||
|
||||
@include ('admin::configuration.field-type', ['field' => $field])
|
||||
@include ('admin::configuration.field-type')
|
||||
|
||||
@php ($hint = $field['title'] . '-hint')
|
||||
@if ($hint !== __($hint))
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Core\Repositories;
|
||||
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Core\Contracts\CoreConfig;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Prettus\Repository\Traits\CacheableRepository;
|
||||
|
||||
|
|
@ -11,31 +12,33 @@ class CoreConfigRepository extends Repository
|
|||
use CacheableRepository;
|
||||
|
||||
/**
|
||||
* Specify Model class name
|
||||
* Specify model class name.
|
||||
*
|
||||
* @return mixed
|
||||
* @return string
|
||||
*/
|
||||
function model()
|
||||
function model(): string
|
||||
{
|
||||
return 'Webkul\Core\Contracts\CoreConfig';
|
||||
return CoreConfig::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Webkul\Core\Contracts\CoreConfig
|
||||
*/
|
||||
public function create(array $data)
|
||||
{
|
||||
if ($data['locale'] || $data['channel']) {
|
||||
$locale = $data['locale'];
|
||||
$channel = $data['channel'];
|
||||
$locale = $data['locale'];
|
||||
$channel = $data['channel'];
|
||||
|
||||
unset($data['locale']);
|
||||
unset($data['channel']);
|
||||
unset($data['locale']);
|
||||
unset($data['channel']);
|
||||
}
|
||||
|
||||
foreach ($data as $method => $fieldData) {
|
||||
$recurssiveData = $this->recuressiveArray($fieldData , $method);
|
||||
$recurssiveData = $this->recuressiveArray($fieldData, $method);
|
||||
|
||||
foreach ($recurssiveData as $fieldName => $value) {
|
||||
$field = core()->getConfigField($fieldName);
|
||||
|
|
@ -89,7 +92,7 @@ class CoreConfigRepository extends Repository
|
|||
foreach ($coreConfigValue as $coreConfig) {
|
||||
Storage::delete($coreConfig['value']);
|
||||
|
||||
if(isset($value['delete'])) {
|
||||
if (isset($value['delete'])) {
|
||||
$this->model->destroy($coreConfig['id']);
|
||||
} else {
|
||||
$coreConfig->update([
|
||||
|
|
@ -106,11 +109,14 @@ class CoreConfigRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Recursive array.
|
||||
*
|
||||
* @param array $formData
|
||||
* @param string $method
|
||||
* @return array
|
||||
*/
|
||||
public function recuressiveArray(array $formData, $method) {
|
||||
public function recuressiveArray(array $formData, $method)
|
||||
{
|
||||
static $data = [];
|
||||
|
||||
static $recuressiveArrayData = [];
|
||||
|
|
@ -145,11 +151,11 @@ class CoreConfigRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Return dimension of array
|
||||
* Return dimension of the array.
|
||||
*
|
||||
* @param array $array
|
||||
* @return int
|
||||
*/
|
||||
*/
|
||||
public function countDim($array)
|
||||
{
|
||||
if (is_array(reset($array))) {
|
||||
|
|
@ -160,4 +166,37 @@ class CoreConfigRepository extends Repository
|
|||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getNameField($key)
|
||||
{
|
||||
$nameField = '';
|
||||
|
||||
foreach (explode('.', $key) as $key => $field) {
|
||||
$nameField .= $key === 0 ? $field : '[' . $field . ']';
|
||||
}
|
||||
|
||||
return $nameField;
|
||||
}
|
||||
|
||||
public function getValidations($field)
|
||||
{
|
||||
return isset($field['validation'])
|
||||
? $field['validation']
|
||||
: '';
|
||||
}
|
||||
|
||||
public function getChannelLocaleInfo($field, $channel, $locale)
|
||||
{
|
||||
$info = [];
|
||||
|
||||
if (isset($field['channel_based']) && $field['channel_based']) {
|
||||
$info[] = $channel;
|
||||
}
|
||||
|
||||
if (isset($field['locale_based']) && $field['locale_based']) {
|
||||
$info[] = $locale;
|
||||
}
|
||||
|
||||
return ! empty($info) ? '[' . implode(' - ', $info) . ']' : '';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue