v2 first commit

This commit is contained in:
denisdulici
2019-11-16 10:21:14 +03:00
parent 5b23e9c2c4
commit 6d50fa8442
3075 changed files with 3451681 additions and 65594 deletions

View File

@ -3,137 +3,125 @@
@section('title', trans('general.wizard'))
@section('content')
<!-- Default box -->
<div class="box box-solid">
<div class="box-body">
<div class="stepwizard">
<div class="stepwizard-row setup-panel">
<div class="stepwizard-step col-xs-3">
<a href="#step-1" type="button" class="btn btn-success btn-circle">1</a>
<p><small>{{ trans_choice('general.companies', 1) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">2</button>
<p><small>{{ trans_choice('general.currencies', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">3</button>
<p><small>{{ trans_choice('general.taxes', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">4</button>
<p><small>{{ trans_choice('general.finish', 1) }}</small></p>
<div class="card">
<div class="card-body">
<div class="container-fluid">
<div class="row mb--4">
<hr class="wizard-line">
<div class="col-md-3">
<div class="text-center">
<button href="#step-1" type="button" class="btn btn-default btn-lg wizard-steps rounded-circle">
<span class="btn-inner--icon wizard-steps-inner">1</span>
</button>
<p class="mt-2 after-step-text">{{ trans_choice('general.companies', 1) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">2</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.currencies', 2) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">3</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.taxes', 2) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">4</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.finish', 1) }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="box box-success">
<div id="wizard-loading"></div>
<div class="card">
{!! Form::model($company, [
'method' => 'PATCH',
'route' => ['wizard.companies.update'],
'id' => 'company',
'@submit.prevent' => 'onSubmit',
'@keydown' => 'form.errors.clear($event.target.name)',
'files' => true,
'role' => 'form',
'class' => 'form-loading-button mb-0',
'novalidate' => true
]) !!}
<div id="wizard-loading"></div>
{!! Form::model($company, ['method' => 'PATCH', 'files' => true, 'url' => ['wizard/companies'], 'role' => 'form', 'class' => 'form-loading-button']) !!}
<div class="card-header">
<h3 class="mb-0">{{ trans_choice('general.companies', 1) }}</h3>
</div>
<div class="box-header with-border">
<h3 class="box-title">{{ trans_choice('general.companies', 1) }}</h3>
</div>
<!-- /.box-header -->
<div class="card-body">
<div class="row mb--4">
<div class="col-md-12 {!! (!setting('apps.api_key', null)) ?: 'hidden' !!}">
<div class="form-group {{ $errors->has('api_key') ? 'has-error' : ''}}"
:class="[{'has-error': form.errors.get('api_key') }]">
{!! Form::label('api-key', trans('modules.api_key'), ['class' => 'form-control-label']) !!}
<div class="box-body">
<div class="col-md-12 {!! (!setting('general.api_token', null)) ?: 'hidden' !!}">
<div class="form-group {{ $errors->has('api_token') ? 'has-error' : ''}}">
{!! Form::label('sale_price', trans('modules.api_token'), ['class' => 'control-label']) !!}
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-key"></i></span>
{!! Form::text('api_token', setting('general.api_token', null), ['class' => 'form-control', 'placeholder' => trans('general.form.enter', ['field' => trans('modules.api_token')])]) !!}
<div class="input-group input-group-merge">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-key"></i>
</span>
</div>
{!! Form::text('api_key', setting('apps.api_key', null), array_merge([
'class' => 'form-control',
'data-name' => 'api_key',
'data-value' => setting('apps.api_key', null),
'placeholder' => trans('general.form.enter', ['field' => trans('modules.api_key')]),
'v-model' => 'form.api_key'
], [])) !!}
</div>
<div class="invalid-feedback d-block"
v-if="form.errors.has('api_key')"
v-html="form.errors.get('api_key')"></div>
</div>
<p class="mb-0 mt--3">
<small>{!! trans('modules.api_key_link') !!}</small>
</p>
<br>
</div>
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::dateGroup('financial_start', trans('settings.localisation.financial_start'), 'calendar', ['id' => 'financial_start', 'class' => 'form-control datepicker', 'show-date-format' => 'j F', 'date-format' => 'd-m', 'autocomplete' => 'off'], Date::now()->startOfYear()->format('d-m')) }}
{{ Form::textareaGroup('address', trans('settings.company.address')) }}
{{ Form::fileGroup('logo', trans('settings.company.logo')) }}
</div>
</div>
<div class="card-footer">
<div class="row">
<div class="col-12 text-right">
{!! Form::button(
'<div v-if="form.loading" :class="(form.loading) ? \'show \' : \'\'" class="aka-loader-frame d-none"><div class="aka-loader"></div></div> <span v-if="!form.loading" class="btn-inner--icon"><i class="fas fa-save"></i></span>' . '<span v-if="!form.loading" class="btn-inner--text"> ' . trans('general.save') . '</span>',
[':disabled' => 'form.loading', 'type' => 'submit', 'class' => 'btn btn-icon btn-success button-submit', 'data-loading-text' => trans('general.loading')]) !!}
<a href="{{ url('wizard/currencies') }}" id="wizard-skip" class="btn btn-white"><span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}</a>
</div>
</div>
{!! $errors->first('api_token', '<p class="help-block">:message</p>') !!}
</div>
<p>
{!! trans('modules.token_link') !!}
</p>
</br>
</div>
{{ Form::textGroup('company_tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::textGroup('financial_start', trans('settings.localisation.financial_start'), 'calendar-check-o', ['id' => 'financial_start', 'class' => 'form-control', 'data-inputmask' => '\'alias\': \'dd-mm\'', 'data-mask' => '', 'autocomplete' => 'off'], Date::now()->startOfYear()->format('d-m')) }}
{{ Form::textareaGroup('company_address', trans('settings.company.address')) }}
{{ Form::fileGroup('company_logo', trans('settings.company.logo')) }}
{!! Form::close() !!}
</div>
<!-- /.box-body -->
<div class="box-footer">
<div class="col-md-12">
<div class="form-group no-margin">
{!! Form::button('<span class="fa fa-save"></span> &nbsp;' . trans('general.save'), ['type' => 'submit', 'class' => 'btn btn-success button-submit', 'data-loading-text' => trans('general.loading')]) !!}
<a href="{{ url('wizard/currencies') }}" id="wizard-skip" class="btn btn-default"><span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}</a>
</div>
</div>
</div>
<!-- /.box-footer -->
{!! Form::close() !!}
</div>
@endsection
@push('js')
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/datepicker/bootstrap-datepicker.js') }}"></script>
@if (language()->getShortCode() != 'en')
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/datepicker/locales/bootstrap-datepicker.' . language()->getShortCode() . '.js') }}"></script>
@endif
<script src="{{ asset('public/js/bootstrap-fancyfile.js') }}"></script>
@endpush
@push('css')
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/plugins/datepicker/datepicker3.css') }}">
<link rel="stylesheet" href="{{ asset('public/css/bootstrap-fancyfile.css') }}">
@endpush
@push('scripts')
<script type="text/javascript">
var text_yes = '{{ trans('general.yes') }}';
var text_no = '{{ trans('general.no') }}';
$(document).ready(function() {
$('#financial_start').datepicker({
format: 'dd-mm',
todayBtn: 'linked',
weekStart: 1,
autoclose: true,
language: '{{ language()->getShortCode() }}'
});
$('#company_logo').fancyfile({
text : '{{ trans('general.form.select.file') }}',
style : 'btn-default',
@if($company->company_logo)
placeholder : '{{ $company->company_logo->basename }}',
@else
placeholder : '{{ trans('general.form.no_file_selected') }}',
@endif
});
@if($company->company_logo)
$.ajax({
url: '{{ url('uploads/' . $company->company_logo->id . '/show') }}',
type: 'GET',
data: {column_name: 'company_logo', page: 'setting', key: 'general.company_logo'},
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$('.form-group.col-md-6 .fancy-file').after(json['html']);
}
}
});
@permission('delete-common-uploads')
$(document).on('click', '#remove-company_logo', function (e) {
confirmDelete("#company_logo-{!! $company->company_logo->id !!}", "{!! trans('general.attachment') !!}", "{!! trans('general.delete_confirm', ['name' => '<strong>' . $company->company_logo->basename . '</strong>', 'type' => strtolower(trans('general.attachment'))]) !!}", "{!! trans('general.cancel') !!}", "{!! trans('general.delete') !!}");
});
@endpermission
@endif
});
</script>
@push('scripts_start')
<script src="{{ asset('public/js/wizard/company.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -1,30 +0,0 @@
<tr id="currency-create">
<td>
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], null, '') }}
</td>
<td class="hidden-xs">
{{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes, null, ['required' => 'required'], '') }}
</td>
<td>
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], null, '') }}
</td>
<td class="hidden-xs">
{{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12 currency-enabled-radio-group') }}
</td>
<td class="text-center">
{!! Form::button('<span class="fa fa-save"></span>', ['type' => 'button', 'class' => 'btn btn-success currency-submit', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/currencies/'), 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!}
</td>
<td class="hidden">
{{ Form::numberGroup('precision', trans('currencies.precision'), 'bullseye') }}
{{ Form::textGroup('symbol', trans('currencies.symbol.symbol'), 'font') }}
{{ Form::selectGroup('symbol_first', trans('currencies.symbol.position'), 'text-width', ['1' => trans('currencies.symbol.before'), '0' => trans('currencies.symbol.after')]) }}
{{ Form::textGroup('decimal_mark', trans('currencies.decimal_mark'), 'columns') }}
{{ Form::textGroup('thousands_separator', trans('currencies.thousands_separator'), 'columns', []) }}
{{ Form::radioGroup('default_currency', trans('currencies.default')) }}
</td>
</tr>

View File

@ -1,32 +0,0 @@
<tr id="currency-edit">
<td>
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', [], $item->name, '') }}
</td>
<td class="hidden-xs">
{{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes, $item->code, [], '') }}
</td>
<td>
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', [], $item->rate, '') }}
</td>
<td class="hidden-xs">
{{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12') }}
</td>
<td class="text-center">
{!! Form::button('<span class="fa fa-save"></span>', ['type' => 'button', 'class' => 'btn btn-success currency-updated', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/currencies/' . $item->id), 'data-id' => $item->id, 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!}
</td>
<td class="hidden">
{{ Form::numberGroup('precision', trans('currencies.precision'), 'bullseye', [], $item->precision) }}
{{ Form::textGroup('symbol', trans('currencies.symbol.symbol'), 'font', [], $item->symbol, '') }}
{{ Form::selectGroup('symbol_first', trans('currencies.symbol.position'), 'text-width', ['1' => trans('currencies.symbol.before'), '0' => trans('currencies.symbol.after')], $item->symbol_first) }}
{{ Form::textGroup('decimal_mark', trans('currencies.decimal_mark'), 'columns', [], $item->decimal_mark, '') }}
{{ Form::textGroup('thousands_separator', trans('currencies.thousands_separator'), 'columns', [], $item->thousands_separator) }}
{{ Form::radioGroup('default_currency', trans('currencies.default')) }}
{{ Form::hidden('id', $item->id) }}
</td>
</tr>

View File

@ -3,391 +3,188 @@
@section('title', trans('general.wizard'))
@section('content')
<!-- Default box -->
<div class="box box-solid">
<div class="box-body">
<div class="stepwizard">
<div class="stepwizard-row setup-panel">
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/companies') }}" type="button" class="btn btn-default btn-circle">1</a>
<p><small>{{ trans_choice('general.companies', 1) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="#step-2" type="button" class="btn btn-success btn-circle">2</a>
<p><small>{{ trans_choice('general.currencies', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">3</button>
<p><small>{{ trans_choice('general.taxes', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">4</button>
<p><small>{{ trans_choice('general.finish', 1) }}</small></p>
</div>
</div>
</div>
</div>
</div>
<div class="box box-success">
<div id="wizard-loading"></div>
<div class="box-header with-border">
<h3 class="box-title">{{ trans_choice('general.currencies', 2) }}</h3>
<span class="new-button"><a href="javascript:void(0);" data-href="{{ url('wizard/currencies/create') }}" class="btn btn-success btn-sm currency-create"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
</div>
<!-- /.box-header -->
<div class="box-body">
<div class="table table-responsive">
<table class="table table-striped table-hover" id="tbl-currencies">
<thead>
<tr>
<th class="col-md-4">@sortablelink('name', trans('general.name'))</th>
<th class="col-md-3 hidden-xs">@sortablelink('code', trans('currencies.code'))</th>
<th class="col-md-2">@sortablelink('rate', trans('currencies.rate'))</th>
<th class="col-md-2 hidden-xs">@sortablelink('enabled', trans_choice('general.statuses', 1))</th>
<th class="col-md-1 text-center">{{ trans('general.actions') }}</th>
</tr>
</thead>
<tbody>
@foreach($currencies as $item)
<tr id="currency-{{ $item->id }}" data-href="{{ url('wizard/currencies/' . $item->id . '/delete') }}">
<td class="currency-name"><a href="javascript:void(0);" data-id="{{ $item->id }}" data-href="{{ url('wizard/currencies/' . $item->id . '/edit') }}" class="currency-edit">{{ $item->name }}</a></td>
<td class="currency-code hidden-xs">{{ $item->code }}</td>
<td class="currency-rate">{{ $item->rate }}</td>
<td class="currency-status hidden-xs">
@if ($item->enabled)
<span class="label label-success">{{ trans('general.enabled') }}</span>
@else
<span class="label label-danger">{{ trans('general.disabled') }}</span>
@endif
</td>
<td class="currency-action text-center">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">
<i class="fa fa-ellipsis-h"></i>
<div class="card">
<div class="card-body">
<div class="container-fluid">
<div class="row mb--4">
<hr class="wizard-line">
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/companies') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="javascript:void(0);" data-id="{{ $item->id }}" data-href="{{ url('wizard/currencies/' . $item->id . '/edit') }}" class="currency-edit">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="javascript:void(0);" data-href="{{ url('wizard/currencies/' . $item->id . '/disable') }}" class="currency-disable">{{ trans('general.disable') }}</a></li>
@else
<li><a href="javascript:void(0);" data-href="{{ url('wizard/currencies/' . $item->id . '/enable') }}" class="currency-enable">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-settings-currencies')
<li class="divider"></li>
<li>
{!! Form::button(trans('general.delete'), array(
'type' => 'button',
'class' => 'delete-link',
'title' => trans('general.delete'),
'onclick' => 'confirmCurrency("' . '#currency-' . $item->id . '", "' . trans_choice('general.currencies', 2) . '", "' . trans('general.delete_confirm', ['name' => '<strong>' . $item->name . '</strong>', 'type' => mb_strtolower(trans_choice('general.currencies', 1))]) . '", "' . trans('general.cancel') . '", "' . trans('general.delete') . '")'
)) !!}
</li>
@endpermission
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<!-- /.box-body -->
<p class="mt-2 text-muted step-text">{{ trans_choice('general.companies', 1) }}</p>
</a>
</div>
</div>
<div class="box-footer">
<div class="col-md-12">
<div class="form-group no-margin">
<a href="{{ url('wizard/taxes') }}" id="wizard-skip" class="btn btn-default"><span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}</a>
<div class="col-md-3">
<div class="text-center">
<button href="#step-2" type="button" class="btn btn-default btn-lg wizard-steps rounded-circle">
<span class="btn-inner--icon wizard-steps-inner">2</span>
</button>
<p class="mt-2 after-step-text">{{ trans_choice('general.currencies', 2) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">3</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.taxes', 2) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">4</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.finish', 1) }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header border-bottom-0">
<div class="row">
<div class="col-6">
<h3 class="mb-0">{{ trans_choice('general.currencies', 2) }}</h3>
</div>
<div class="col-6 text-right">
<span class="new-button">
<button type="button" @click="onAddCurrency" class="btn btn-success btn-sm">
<span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}
</button>
</span>
</div>
</div>
</div>
<div class="table-responsive">
{!! Form::open([
'route' => 'wizard.currencies.store',
'id' => 'currency',
'@submit.prevent' => 'onSubmit',
'@keydown' => 'form.errors.clear($event.target.name)',
'files' => true,
'role' => 'form',
'class' => 'form-loading-button',
'novalidate' => true
]) !!}
<table class="table table-flush table-hover" id='tbl-currencies'>
<thead class="thead-light">
<tr class="row table-head-line">
<th class="col-xs-4 col-sm-3">@sortablelink('name', trans('general.name'))</th>
<th class="col-sm-3 hidden-sm">@sortablelink('code', trans('currencies.code'))</th>
<th class="col-sm-2 hidden-sm">@sortablelink('rate', trans('currencies.rate'))</th>
<th class="col-xs-4 col-sm-2">@sortablelink('enabled', trans('general.enabled'))</th>
<th class="col-xs-4 col-sm-2 text-center">{{ trans('general.actions') }}</th>
</tr>
</thead>
<tbody>
@foreach($currencies as $item)
<tr class="row align-items-center border-top-1" id="currency-{{ $item->id }}">
<td class="col-xs-4 col-sm-3 currency-name">
<a href="javascript:void(0);" class="text-success" @click="onEditCurrency('{{ $item->id }}')">
{{ $item->name }}
</a>
</td>
<td class="col-sm-3 hidden-sm currency-code">{{ $item->code }}</td>
<td class="col-sm-2 hidden-sm currency-rate">{{ $item->rate }}</td>
<td class="col-xs-4 col-sm-2 currency-status">
@if (user()->can('update-settings-currencies'))
{{ Form::enabledGroup($item->id, $item->name, $item->enabled) }}
@else
@if ($item->enabled)
<badge rounded type="success">{{ trans('general.enabled') }}</badge>
@else
<badge rounded type="danger">{{ trans('general.disabled') }}</badge>
@endif
@endif
</td>
<td class="col-xs-4 col-sm-2 text-center">
<div class="dropdown">
<a class="btn btn-neutral btn-sm text-light items-align-center py-2" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-ellipsis-h text-muted"></i>
</a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
<button type="button" class="dropdown-item" @click="onEditCurrency('{{ $item->id }}')">
{{ trans('general.edit') }}
</button>
@permission('delete-settings-currencies')
<div class="dropdown-divider"></div>
{!! Form::deleteLink($item, 'wizard/currencies') !!}
@endpermission
</div>
</div>
</td>
</tr>
@endforeach
<tr class="row align-items-center border-top-1" v-show="show">
<td class="col-xs-4 col-sm-3 currency-name">
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', [], null, '') }}
</td>
<td class="col-sm-3 hidden-sm currency-code">
{{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes, null, ['required' => 'required', 'change' => 'onChangeCode'], '') }}
</td>
<td class="col-sm-2 hidden-sm currency-rate">
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], null, '') }}
</td>
<td class="col-xs-4 col-sm-2 currency-status">
{{ Form::radioGroup('enabled', trans('general.enabled')) }}
</td>
<td class="col-xs-4 col-sm-2 text-center">
{!! Form::button(
'<div v-if="form.loading" :class="(form.loading) ? \'show \' : \'\'" class="aka-loader-frame d-none"><div class="aka-loader"></div></div> <span v-if="!form.loading" class="btn-inner--icon"><i class="fas fa-save"></i></span>', [
':disabled' => 'form.loading',
'type' => 'submit',
'class' => 'btn btn-success currency-submit',
'data-loading-text' => trans('general.loading'),
'style' => 'padding: 9px 14px; margin-top: 10px;'
]) !!}
<div class="d-none">
{{ Form::numberGroup('precision', trans('currencies.precision'), 'bullseye') }}
{{ Form::textGroup('symbol', trans('currencies.symbol.symbol'), 'font') }}
{{ Form::selectGroup('symbol_first', trans('currencies.symbol.position'), 'text-width', ['1' => trans('currencies.symbol.before'), '0' => trans('currencies.symbol.after')]) }}
{{ Form::textGroup('decimal_mark', trans('currencies.decimal_mark'), 'columns') }}
{{ Form::textGroup('thousands_separator', trans('currencies.thousands_separator'), 'columns', []) }}
</div>
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="bulk_action_path" value="settings/currencies" />
{!! Form::close() !!}
</div>
<div class="card-footer">
<div class="row">
<div class="col-12 text-right">
<a href="{{ url('wizard/taxes') }}" id="wizard-skip" class="btn btn-white">
<span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}
</a>
</div>
</div>
</div>
</div>
<!-- /.box-footer -->
</div>
@endsection
@push('scripts')
<script type="text/javascript">
var text_yes = '{{ trans('general.yes') }}';
var text_no = '{{ trans('general.no') }}';
@push('scripts_start')
<script type="text/javascript">
var currencies = {!! json_encode($currencies->items()) !!}
</script>
$(document).on('click', '.currency-create', function (e) {
$('#currency-create').remove();
$('#currency-edit').remove();
data_href = $(this).data('href');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$('#tbl-currencies tbody').append(json['html']);
$("#code").select2({
placeholder: "{{ trans('general.form.select.field', ['field' => trans('currencies.code')]) }}"
});
$('.currency-enabled-radio-group #enabled_1').trigger('click');
$('#name').focus();
}
}
});
});
$(document).on('click', '.currency-submit', function (e) {
$(this).html('<span class="fa fa-spinner fa-pulse"></span>');
$('.help-block').remove();
data_href = $(this).data('href');
$.ajax({
url: '{{ url("wizard/currencies") }}',
type: 'POST',
dataType: 'JSON',
data: $('#tbl-currencies input[type=\'number\'], #tbl-currencies input[type=\'text\'], #tbl-currencies input[type=\'radio\'], #tbl-currencies input[type=\'hidden\'], #tbl-currencies textarea, #tbl-currencies select').serialize(),
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
$('.currency-submit').html('<span class="fa fa-save"></span>');
if (json['success']) {
currency = json['data'];
$('#currency-create').remove();
$('#currency-edit').remove();
html = '<tr id="currency-' + currency.id + '" data-href="wizard/currencies/' + currency.id + '/delete">';
html += ' <td class="currency-name">';
html += ' <a href="javascript:void(0);" data-id="' + currency.id + '" data-href="wizard/currencies/' + currency.id + '/edit" class="currency-edit">' + currency.name + '</a>';
html += ' </td>';
html += ' <td class="currency-code hidden-xs">' + currency.code + '</td>';
html += ' <td class="currency-rate">' + currency.rate + '</td>';
html += ' <td class="currency-status hidden-xs">';
html += ' <span class="label label-success">Enabled</span>';
html += ' </td>';
html += ' <td class="currency-action text-center">';
html += ' <div class="btn-group">';
html += ' <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">';
html += ' <i class="fa fa-ellipsis-h"></i>';
html += ' </button>';
html += ' <ul class="dropdown-menu dropdown-menu-right">';
html += ' <li><a href="javascript:void(0);" data-id="' + currency.id + '" data-href="wizard/currencies/' + currency.id + '/edit" class="currency-edit">{{ trans('general.edit') }}</a></li>';
html += ' <li><a href="javascript:void(0);" data-href="wizard/currencies/' + currency.id + '/disable" class="currency-disable">{{ trans('general.disable') }}</a></li>';
html += ' <li class="divider"></li>';
html += ' <li>';
html += ' <button type="button" class="delete-link" title="{{ trans('general.delete') }}" onclick="confirmCurrency("#currency-' + currency.id + '", "{{ trans_choice('general.currencies', 2) }}", "{{ trans('general.delete_confirm', ['name' => '<strong>' . $item->name . '</strong>', 'type' => mb_strtolower(trans_choice('general.currencies', 1))]) }}", "{{ trans('general.cancel') }}", "{{ trans('general.delete') }}")">{{ trans('general.delete') }}</button>';
html += ' </li>';
html += ' </ul>';
html += ' </div>';
html += ' </td>';
html += '</tr>';
$('#tbl-currencies tbody').append(html);
}
},
error: function(data){
$('.currency-submit').html('<span class="fa fa-save"></span>');
var errors = data.responseJSON;
if (typeof errors !== 'undefined') {
if (errors.name) {
$('#tbl-currencies #name').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.name + '</p>');
}
if (errors.code) {
$('#tbl-currencies #code').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.code + '</p>');
}
if (errors.rate) {
$('#tbl-currencies #rate').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.rate + '</p>');
}
}
}
});
});
$(document).on('click', '.currency-edit', function (e) {
$('#currency-create').remove();
$('#currency-edit').remove();
data_href = $(this).data('href');
data_id = $(this).data('id');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$('#currency-' + data_id).after(json['html']);
$('#enabled_1').trigger('click');
$('#name').focus();
$("#code").select2({
placeholder: "{{ trans('general.form.select.field', ['field' => trans('currencies.code')]) }}"
});
$('.currency-enabled-radio-group #enabled_1').trigger();
}
}
});
});
$(document).on('click', '.currency-updated', function (e) {
$(this).html('<span class="fa fa-spinner fa-pulse"></span>');
$('.help-block').remove();
data = $('#tbl-currencies input[type=\'number\'], #tbl-currencies input[type=\'text\'], #tbl-currencies input[type=\'radio\'], #tbl-currencies input[type=\'hidden\'], #tbl-currencies textarea, #tbl-currencies select').serialize();
data_href = $(this).data('href');
data_id = $(this).data('id');
$.ajax({
url: data_href,
type: 'PATCH',
dataType: 'JSON',
data: data,
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
$('.currency-updated').html('<span class="fa fa-save"></span>');
if (json['success']) {
$('#currency-' + data_id + ' .currency-name a').text($('#currency-edit #name').val());
$('#currency-' + data_id + ' .currency-code').text($('#currency-edit #code').val());
$('#currency-' + data_id + ' .currency-rate').text($('#currency-edit #rate').val());
if ($('#currency-edit #enabled').val()) {
$('#currency-' + data_id + ' .currency-status').html('<span class="label label-success">{{ trans('general.enabled') }}</span>');
} else {
$('#currency-' + data_id + ' .currency-status').html('<span class="label label-danger">{{ trans('general.disabled') }}</span>');
}
$('#currency-create').remove();
$('#currency-edit').remove();
}
},
error: function(data){
$('.currency-updated').html('<span class="fa fa-save"></span>');
var errors = data.responseJSON;
if (typeof errors !== 'undefined') {
if (errors.name) {
$('#tbl-currencies #name').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.name + '</p>');
}
if (errors.code) {
$('#tbl-currencies #code').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.code + '</p>');
}
if (errors.rate) {
$('#tbl-currencies #rate').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.rate + '</p>');
}
}
}
});
});
$(document).on('click', '.currency-disable', function (e) {
data_href = $(this).data('href');
currency_tr = $(this).parent().parent().parent().parent().parent();
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
currency_tr.find('.currency-status').html('<span class="label label-danger">{{ trans('general.disabled') }}</span>');
}
}
});
});
$(document).on('click', '.currency-enable', function (e) {
data_href = $(this).data('href');
currency_tr = $(this).parent().parent().parent().parent().parent();
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
currency_tr.find('.currency-status').html('<span class="label label-success">{{ trans('general.enabled') }}</span>');
}
}
});
});
$(document).on('change', '#code', function (e) {
$.ajax({
url: '{{ url("settings/currencies/config") }}',
type: 'GET',
dataType: 'JSON',
data: 'code=' + $(this).val(),
success: function(data) {
$('#precision').val(data.precision);
$('#symbol').val(data.symbol);
$('#symbol_first').val(data.symbol_first);
$('#decimal_mark').val(data.decimal_mark);
$('#thousands_separator').val(data.thousands_separator);
// This event Select2 Stylesheet
$('#symbol_first').trigger('change');
}
});
});
function confirmCurrency(tr_id, title, message, button_cancel, button_delete) {
$('#confirm-modal').remove();
var html = '';
html += '<div class="modal fade" id="confirm-modal" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true">';
html += ' <div class="modal-dialog">';
html += ' <div class="modal-content">';
html += ' <div class="modal-header">';
html += ' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>';
html += ' <h4 class="modal-title" id="confirmModalLabel">' + title + '</h4>';
html += ' </div>';
html += ' <div class="modal-body">';
html += ' <p>' + message + '</p>';
html += ' <p></p>';
html += ' </div>';
html += ' <div class="modal-footer">';
html += ' <div class="pull-left">';
html += ' <button type="button" class="btn btn-danger" onclick="deleteCurrency(\'' + tr_id + '\');">' + button_delete + '</button>';
html += ' <button type="button" class="btn btn-default" data-dismiss="modal">' + button_cancel + '</button>';
html += ' </div>';
html += ' </div>';
html += ' </div>';
html += ' </div>';
html += '</div>';
$('body').append(html);
$('#confirm-modal').modal('show');
}
function deleteCurrency(tr_id) {
data_href = $(tr_id).data('href');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$(tr_id).remove();
}
}
});
}
</script>
<script src="{{ asset('public/js/wizard/currencies.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -3,86 +3,99 @@
@section('title', trans('general.wizard'))
@section('content')
<!-- Default box -->
<div class="box box-solid">
<div class="box-body">
<div class="stepwizard">
<div class="stepwizard-row setup-panel">
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/companies') }}" type="button" class="btn btn-default btn-circle">1</a>
<p><small>{{ trans_choice('general.companies', 1) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/currencies') }}" type="button" class="btn btn-default btn-circle">2</a>
<p><small>{{ trans_choice('general.currencies', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/taxes') }}" type="button" class="btn btn-default btn-circle">3</a>
<p><small>{{ trans_choice('general.taxes', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="#step-4" type="button" class="btn btn-success btn-circle">4</a>
<p><small>{{ trans_choice('general.finish', 1) }}</small></p>
<div class="card">
<div class="card-body">
<div class="container-fluid">
<div class="row mb--4">
<hr class="wizard-line">
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/companies') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.companies', 1) }}</p>
</a>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/currencies') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.currencies', 2) }}</p>
</a>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/taxes') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.taxes', 2) }}</p>
</a>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button href="#step-4" type="button" class="btn btn-default btn-lg wizard-steps rounded-circle">
<span class="btn-inner--icon wizard-steps-inner">4</span>
</button>
<p class="mt-2 after-step-text">{{ trans_choice('general.finish', 1) }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row" style="margin-top: 50px;">
<div class="col-md-12 no-padding-right text-center">
<a href="{{ url('/') }}" class="btn btn-lg btn-success"><span class="fa fa-dashboard"></span> &nbsp;{{ trans('general.go_to', ['name' => trans('general.dashboard')]) }}</a>
</div>
</div>
<div class="row">
<div class="col-md-12 no-padding-right">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.recommended_apps') }}</h3>
<div class="row mb-4">
<div class="col-md-12 text-center">
<a href="{{ url('/') }}" class="btn btn-lg btn-success"><span class="fa fa-home"></span> &nbsp;{{ trans('general.go_to', ['name' => trans('general.dashboard')]) }}</a>
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
<div class="content-header">
<h3 class="text-white">{{ trans('modules.recommended_apps') }}</h3>
</div>
@if ($modules)
<div class="row">
@foreach ($modules->data as $module)
@include('partials.modules.item')
@endforeach
</div>
<div class="col-md-12">
<ul>
@if ($modules->current_page < $modules->last_page)
<li class="next"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page + 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.next') }}</a></li>
@endif
@if ($modules->current_page > 1)
<li class="previous"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page - 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.previous') }}</a></li>
@endif
</ul>
</div>
@else
<div class="card">
<div class="card-body">
<p class="col-md-12">
{{ trans('modules.no_apps') }}
</p>
<p class="col-md-12">
<small>{!! trans('modules.developer') !!}</small>
</p>
</div>
</div>
@endif
</div>
@if ($modules)
@foreach ($modules->data as $module)
@include('partials.modules.item')
@endforeach
<div class="col-md-12 no-padding-left">
<ul class="pager nomargin">
@if ($modules->current_page < $modules->last_page)
<li class="next"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page + 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.next') }}</a></li>
@endif
@if ($modules->current_page > 1)
<li class="previous"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page - 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.previous') }}</a></li>
@endif
</ul>
</div>
@else
<div class="box box-success">
<div class="box-body">
<p class="col-md-12" style="margin-top: 15px">
{{ trans('modules.no_apps') }}
</p>
<p class="col-md-12" style="margin-top: 20px">
<small>{!! trans('modules.developer') !!}</small>
</p>
</div>
<!-- /.box-body -->
</div>
@endif
</div>
</div>
@endsection
@push('css')
<link rel="stylesheet" href="{{ asset('public/css/modules.css?v=' . version('short')) }}">
@endpush
@push('scripts')
<script type="text/javascript">
var text_yes = '{{ trans('general.yes') }}';
var text_no = '{{ trans('general.no') }}';
$(document).ready(function() {
});
</script>
@endpush

View File

@ -1,15 +0,0 @@
<tr id="tax-create">
<td>
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], null, '') }}
</td>
<td>
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], null, '') }}
{{ Form::hidden('type', 'normal') }}
</td>
<td class="hidden-xs">
{{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12 tax-enabled-radio-group') }}
</td>
<td class="text-center">
{!! Form::button('<span class="fa fa-save"></span>', ['type' => 'button', 'class' => 'btn btn-success tax-submit', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/taxes'), 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!}
</td>
</tr>

View File

@ -1,15 +0,0 @@
<tr id="tax-edit">
<td>
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], $item->name, '') }}
</td>
<td>
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], $item->rate, '') }}
{{ Form::hidden('type', 'normal') }}
</td>
<td class="hidden-xs">
{{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12') }}
</td>
<td class="text-center">
{!! Form::button('<span class="fa fa-save"></span>', ['type' => 'button', 'class' => 'btn btn-success tax-updated', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/taxes/' . $item->id), 'data-id' => $item->id, 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!}
</td>
</tr>

View File

@ -3,386 +3,173 @@
@section('title', trans('general.wizard'))
@section('content')
<!-- Default box -->
<div class="box box-solid">
<div class="box-body">
<div class="stepwizard">
<div class="stepwizard-row setup-panel">
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/companies') }}" type="button" class="btn btn-default btn-circle">1</a>
<p><small>{{ trans_choice('general.companies', 1) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="{{ url('wizard/currencies') }}" type="button" class="btn btn-default btn-circle">2</a>
<p><small>{{ trans_choice('general.currencies', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<a href="#step-3" type="button" class="btn btn-success btn-circle">3</a>
<p><small>{{ trans_choice('general.taxes', 2) }}</small></p>
</div>
<div class="stepwizard-step col-xs-3">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">4</button>
<p><small>{{ trans_choice('general.finish', 1) }}</small></p>
</div>
</div>
</div>
</div>
</div>
<div class="box box-success">
<div id="wizard-loading"></div>
<div class="box-header with-border">
<h3 class="box-title">{{ trans_choice('general.taxes', 2) }}</h3>
<span class="new-button"><a href="javascript:void(0);" data-href="{{ url('wizard/taxes/create') }}" class="btn btn-success btn-sm tax-create"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
</div>
<!-- /.box-header -->
<div class="box-body">
<div class="table table-responsive">
<table class="table table-striped table-hover" id="tbl-taxes">
<thead>
<tr>
<th class="col-md-5">@sortablelink('name', trans('general.name'))</th>
<th class="col-md-4">@sortablelink('rate', trans('taxes.rate_percent'))</th>
<th class="col-md-2 hidden-xs">@sortablelink('enabled', trans_choice('general.statuses', 1))</th>
<th class="col-md-1 text-center">{{ trans('general.actions') }}</th>
</tr>
</thead>
<tbody>
@foreach($taxes as $item)
<tr id="tax-{{ $item->id }}" data-href="{{ url('wizard/taxes/' . $item->id . '/delete') }}">
<td class="tax-name"><a href="javascript:void(0);" data-id="{{ $item->id }}" data-href="{{ url('wizard/taxes/' . $item->id . '/edit') }}" class="tax-edit">{{ $item->name }}</a></td>
<td class="tax-rate">{{ $item->rate }}</td>
<td class="tax-status hidden-xs">
@if ($item->enabled)
<span class="label label-success">{{ trans('general.enabled') }}</span>
@else
<span class="label label-danger">{{ trans('general.disabled') }}</span>
@endif
</td>
<td class="tax-action text-center">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">
<i class="fa fa-ellipsis-h"></i>
<div class="card">
<div class="card-body">
<div class="container-fluid">
<div class="row mb--4">
<hr class="wizard-line">
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/companies') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="javascript:void(0);" data-id="{{ $item->id }}" data-href="{{ url('wizard/taxes/' . $item->id . '/edit') }}" class="tax-edit">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="javascript:void(0);" data-href="{{ url('wizard/taxes/' . $item->id . '/disable') }}" class="tax-disable">{{ trans('general.disable') }}</a></li>
@else
<li><a href="javascript:void(0);" data-href="{{ url('wizard/taxes/' . $item->id . '/enable') }}" class="tax-enable">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-settings-taxes')
<li class="divider"></li>
<li>
{!! Form::button(trans('general.delete'), array(
'type' => 'button',
'class' => 'delete-link',
'title' => trans('general.delete'),
'onclick' => 'confirmTax("' . '#tax-' . $item->id . '", "' . trans_choice('general.taxes', 2) . '", "' . trans('general.delete_confirm', ['name' => '<strong>' . $item->name . '</strong>', 'type' => mb_strtolower(trans_choice('general.taxes', 1))]) . '", "' . trans('general.cancel') . '", "' . trans('general.delete') . '")'
)) !!}
</li>
@endpermission
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<!-- /.box-body -->
<p class="mt-2 text-muted step-text">{{ trans_choice('general.companies', 1) }}</p>
</a>
</div>
</div>
<div class="box-footer">
<div class="col-md-12">
<div class="form-group no-margin">
<a href="{{ url('wizard/finish') }}" id="wizard-skip" class="btn btn-default"><span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}</a>
<div class="col-md-3">
<div class="text-center">
<a href="{{ url('wizard/currencies') }}">
<button type="button" class="btn btn-secondary btn-lg wizard-steps wizard-steps-color-active rounded-circle">
<span class="btn-inner--icon wizard-steps-inner"><i class="fa fa-check"></i></span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.currencies', 2) }}</p>
</a>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button href="#step-3" type="button" class="btn btn-default btn-lg wizard-steps rounded-circle">
<span class="btn-inner--icon wizard-steps-inner">3</span>
</button>
<p class="mt-2 after-step-text">{{ trans_choice('general.taxes', 2) }}</p>
</div>
</div>
<div class="col-md-3">
<div class="text-center">
<button type="button" class="btn btn-secondary btn-lg wizard-steps rounded-circle steps">
<span class="btn-inner--icon wizard-steps-inner wizard-steps-color">4</span>
</button>
<p class="mt-2 text-muted step-text">{{ trans_choice('general.finish', 1) }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /.box-footer -->
</div>
<div class="card">
<div class="card-header border-bottom-0">
<div class="row">
<div class="col-6">
<h3 class="mb-0">{{ trans_choice('general.taxes', 2) }}</h3>
</div>
<div class="col-6 text-right">
<span class="new-button">
<button type="button" @click="onAddTax" class="btn btn-success btn-sm">
<span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}
</button>
</span>
</div>
</div>
</div>
<div class="table-responsive">
{!! Form::open([
'route' => 'wizard.taxes.store',
'id' => 'tax',
'@submit.prevent' => 'onSubmit',
'@keydown' => 'form.errors.clear($event.target.name)',
'files' => true,
'role' => 'form',
'class' => 'form-loading-button mb-0',
'novalidate' => true
]) !!}
<table class="table table-flush table-hover" id='tbl-taxes'>
<thead class="thead-light">
<tr class="row table-head-line">
<th class="col-xs-4 col-sm-3">@sortablelink('name', trans('general.name'))</th>
<th class="col-sm-3 hidden-sm">@sortablelink('rate', trans('taxes.rate_percent'))</th>
<th class="col-xs-4 col-sm-3">@sortablelink('enabled', trans('general.enabled'))</th>
<th class="col-xs-4 col-sm-3 text-center">{{ trans('general.actions') }}</th>
</tr>
</thead>
<tbody>
@foreach($taxes as $item)
<tr class="row align-items-center border-top-1" id="tax-{{ $item->id }}">
<td class="col-xs-4 col-sm-3 tax-name">
<a href="javascript:void(0);" class="text-success" @click="onEditTax('{{ $item->id }}')">
{{ $item->name }}
</a>
</td>
<td class="col-sm-3 hidden-sm">{{ $item->rate }}</td>
<td class="col-xs-4 col-sm-3">
@if (user()->can('update-settings-taxes'))
{{ Form::enabledGroup($item->id, $item->name, $item->enabled) }}
@else
@if ($item->enabled)
<badge rounded type="success">{{ trans('general.enabled') }}</badge>
@else
<badge rounded type="danger">{{ trans('general.disabled') }}</badge>
@endif
@endif
</td>
<td class="col-xs-4 col-sm-3 text-center">
<div class="dropdown">
<a class="btn btn-neutral btn-sm text-light items-align-center py-2" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-ellipsis-h text-muted"></i>
</a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
<button type="button" class="dropdown-item" @click="onEditTax('{{ $item->id }}')">
{{ trans('general.edit') }}
</button>
@permission('delete-settings-taxes')
<div class="dropdown-divider"></div>
{!! Form::deleteLink($item, 'wizard/taxes') !!}
@endpermission
</div>
</div>
</td>
</tr>
@endforeach
<tr class="row align-items-center border-top-1" v-show="show">
<td class="col-xs-4 col-sm-3 tax-name">
{{ Form::textGroup('name', trans('general.name'), 'id-card-o', [], null, '') }}
</td>
<td class="col-sm-3 hidden-sm tax-rate">
{{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], null, '') }}
</td>
<td class="col-xs-4 col-sm-3 tax-status">
{{ Form::radioGroup('enabled', trans('general.enabled')) }}
</td>
<td class="col-xs-4 col-sm-3 text-center">
{!! Form::button(
'<div v-if="form.loading" :class="(form.loading) ? \'show \' : \'\'" class="aka-loader-frame d-none"><div class="aka-loader"></div></div> <span v-if="!form.loading" class="btn-inner--icon"><i class="fas fa-save"></i></span>', [
':disabled' => 'form.loading',
'type' => 'submit',
'class' => 'btn btn-success tax-submit',
'data-loading-text' => trans('general.loading'),
'style' => 'padding: 9px 14px; margin-top: 10px;'
]) !!}
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="bulk_action_path" value="settings/taxes" />
{!! Form::close() !!}
</div>
<div class="card-footer">
<div class="row">
<div class="col-12 text-right">
<a href="{{ url('wizard/finish') }}" id="wizard-skip" class="btn btn-white">
<span class="fa fa-share"></span> &nbsp;{{ trans('general.skip') }}
</a>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
var text_yes = '{{ trans('general.yes') }}';
var text_no = '{{ trans('general.no') }}';
@push('scripts_start')
<script type="text/javascript">
var taxes = {!! json_encode($taxes->items()) !!}
</script>
$(document).on('click', '.tax-create', function (e) {
$('#tax-create').remove();
$('#tax-edit').remove();
data_href = $(this).data('href');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$('#tbl-taxes tbody').append(json['html']);
$("#code").select2({
placeholder: "{{ trans('general.form.select.field', ['field' => trans('taxes.code')]) }}"
});
$('.tax-enabled-radio-group #enabled_1').trigger('click');
$('#name').focus();
}
}
});
});
$(document).on('click', '.tax-submit', function (e) {
$(this).html('<span class="fa fa-spinner fa-pulse"></span>');
$('.help-block').remove();
data_href = $(this).data('href');
$.ajax({
url: '{{ url("wizard/taxes") }}',
type: 'POST',
dataType: 'JSON',
data: $('#tbl-taxes input[type=\'number\'], #tbl-taxes input[type=\'text\'], #tbl-taxes input[type=\'radio\'], #tbl-taxes input[type=\'hidden\'], #tbl-taxes textarea, #tbl-taxes select').serialize(),
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
$('.tax-submit').html('<span class="fa fa-save"></span>');
if (json['success']) {
tax = json['data'];
$('#tax-create').remove();
$('#tax-edit').remove();
html = '<tr id="tax-' + tax.id + '" data-href="wizard/taxes/' + tax.id + '/delete">';
html += ' <td class="tax-name">';
html += ' <a href="javascript:void(0);" data-id="' + tax.id + '" data-href="wizard/taxes/' + tax.id + '/edit" class="tax-edit">' + tax.name + '</a>';
html += ' </td>';
html += ' <td class="tax-rate">' + tax.rate + '</td>';
html += ' <td class="tax-status hidden-xs">';
html += ' <span class="label label-success">Enabled</span>';
html += ' </td>';
html += ' <td class="tax-action text-center">';
html += ' <div class="btn-group">';
html += ' <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">';
html += ' <i class="fa fa-ellipsis-h"></i>';
html += ' </button>';
html += ' <ul class="dropdown-menu dropdown-menu-right">';
html += ' <li><a href="javascript:void(0);" data-id="' + tax.id + '" data-href="wizard/taxes/' + tax.id + '/edit" class="tax-edit">{{ trans('general.edit') }}</a></li>';
html += ' <li><a href="javascript:void(0);" data-href="wizard/taxes/' + tax.id + '/disable" class="tax-disable">{{ trans('general.disable') }}</a></li>';
html += ' <li class="divider"></li>';
html += ' <li>';
html += ' <button type="button" class="delete-link" title="{{ trans('general.delete') }}" onclick="confirmCurrency("#tax-' + tax.id + '", "{{ trans_choice('general.taxes', 2) }}", "{{ trans('general.delete_confirm', ['name' => !empty($item) ? '<strong>' . $item->name . '</strong>' : '', 'type' => mb_strtolower(trans_choice('general.taxes', 1))]) }}", "{{ trans('general.cancel') }}", "{{ trans('general.delete') }}")">{{ trans('general.delete') }}</button>';
html += ' </li>';
html += ' </ul>';
html += ' </div>';
html += ' </td>';
html += '</tr>';
$('#tbl-taxes tbody').append(html);
}
},
error: function(data){
$('.tax-submit').html('<span class="fa fa-save"></span>');
var errors = data.responseJSON;
if (typeof errors !== 'undefined') {
if (errors.name) {
$('#tbl-taxes #name').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.name + '</p>');
}
if (errors.code) {
$('#tbl-taxes #code').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.code + '</p>');
}
if (errors.rate) {
$('#tbl-taxes #rate').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.rate + '</p>');
}
}
}
});
});
$(document).on('click', '.tax-edit', function (e) {
$('#tax-create').remove();
$('#tax-edit').remove();
data_href = $(this).data('href');
data_id = $(this).data('id');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$('#tax-' + data_id).after(json['html']);
$('#enabled_1').trigger('click');
$('#name').focus();
$("#code").select2({
placeholder: "{{ trans('general.form.select.field', ['field' => trans('taxes.code')]) }}"
});
$('.tax-enabled-radio-group #enabled_1').trigger();
}
}
});
});
$(document).on('click', '.tax-updated', function (e) {
$(this).html('<span class="fa fa-spinner fa-pulse"></span>');
$('.help-block').remove();
data_href = $(this).data('href');
$.ajax({
url: data_href,
type: 'PATCH',
dataType: 'JSON',
data: $('#tbl-taxes input[type=\'number\'], #tbl-taxes input[type=\'text\'], #tbl-taxes input[type=\'radio\'], #tbl-taxes input[type=\'hidden\'], #tbl-taxes textarea, #tbl-taxes select').serialize(),
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
$('.tax-updated').html('<span class="fa fa-save"></span>');
if (json['success']) {
$('#tax-' + data_id + ' .tax-name a').text($('#tax-edit #name').val());
$('#tax-' + data_id + ' .tax-rate').text($('#tax-edit #rate').val());
if ($('#tax-edit #enabled').val()) {
$('#tax-' + data_id + ' .tax-status').html('<span class="label label-success">{{ trans('general.enabled') }}</span>');
} else {
$('#tax-' + data_id + ' .tax-status').html('<span class="label label-danger">{{ trans('general.disabled') }}</span>');
}
$('#tax-create').remove();
$('#tax-edit').remove();
}
},
error: function(data){
$('.tax-updated').html('<span class="fa fa-save"></span>');
var errors = data.responseJSON;
if (typeof errors !== 'undefined') {
if (errors.name) {
$('#tbl-taxes #name').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.name + '</p>');
}
if (errors.code) {
$('#tbl-taxes #code').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.code + '</p>');
}
if (errors.rate) {
$('#tbl-taxes #rate').parent().after('<p class="help-block" style="color: #ca1313;">' + errors.rate + '</p>');
}
}
}
});
});
$(document).on('click', '.tax-disable', function (e) {
data_href = $(this).data('href');
tax_tr = $(this).parent().parent().parent().parent().parent();
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
tax_tr.find('.tax-status').html('<span class="label label-danger">{{ trans('general.disabled') }}</span>');
}
}
});
});
$(document).on('click', '.tax-enable', function (e) {
data_href = $(this).data('href');
tax_tr = $(this).parent().parent().parent().parent().parent();
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
tax_tr.find('.tax-status').html('<span class="label label-success">{{ trans('general.enabled') }}</span>');
}
}
});
});
$(document).on('change', '#code', function (e) {
$.ajax({
url: '{{ url("settings/taxes/config") }}',
type: 'GET',
dataType: 'JSON',
data: 'code=' + $(this).val(),
success: function(data) {
$('#precision').val(data.precision);
$('#symbol').val(data.symbol);
$('#symbol_first').val(data.symbol_first);
$('#decimal_mark').val(data.decimal_mark);
$('#thousands_separator').val(data.thousands_separator);
// This event Select2 Stylesheet
$('#symbol_first').trigger('change');
}
});
});
function confirmCurrency(tr_id, title, message, button_cancel, button_delete) {
$('#confirm-modal').remove();
var html = '';
html += '<div class="modal fade" id="confirm-modal" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true">';
html += ' <div class="modal-dialog">';
html += ' <div class="modal-content">';
html += ' <div class="modal-header">';
html += ' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>';
html += ' <h4 class="modal-title" id="confirmModalLabel">' + title + '</h4>';
html += ' </div>';
html += ' <div class="modal-body">';
html += ' <p>' + message + '</p>';
html += ' <p></p>';
html += ' </div>';
html += ' <div class="modal-footer">';
html += ' <div class="pull-left">';
html += ' <button type="button" class="btn btn-danger" onclick="deleteCurrency(\'' + tr_id + '\');">' + button_delete + '</button>';
html += ' <button type="button" class="btn btn-default" data-dismiss="modal">' + button_cancel + '</button>';
html += ' </div>';
html += ' </div>';
html += ' </div>';
html += ' </div>';
html += '</div>';
$('body').append(html);
$('#confirm-modal').modal('show');
}
function deleteCurrency(tr_id) {
data_href = $(tr_id).data('href');
$.ajax({
url: data_href,
type: 'GET',
dataType: 'JSON',
success: function(json) {
if (json['success']) {
$(tr_id).remove();
}
}
});
}
</script>
<script src="{{ asset('public/js/wizard/taxes.js?v=' . version('short')) }}"></script>
@endpush