Merge branch 'master' of https://github.com/brkcvn/akaunting into new-plans
This commit is contained in:
app
Abstracts
Events
Common
Http
Controllers
Jobs
Models
Document
View
Components
config
presets.jspublic
resources
assets
views
auth
users
banking
common
components
documents
form
group
index
layouts
table
settings
currencies
wizard
taxes
routes
tests/Feature/Wizard
@@ -56,6 +56,10 @@ abstract class Report
|
|||||||
|
|
||||||
public $loaded = false;
|
public $loaded = false;
|
||||||
|
|
||||||
|
public $bar_formatter_type = 'money';
|
||||||
|
|
||||||
|
public $donut_formatter_type = 'percent';
|
||||||
|
|
||||||
public $chart = [
|
public $chart = [
|
||||||
'bar' => [
|
'bar' => [
|
||||||
'colors' => [
|
'colors' => [
|
||||||
@@ -158,27 +162,6 @@ abstract class Report
|
|||||||
return $this->icon;
|
return $this->icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGrandTotal()
|
|
||||||
{
|
|
||||||
if (!$this->loaded) {
|
|
||||||
$this->load();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($this->footer_totals)) {
|
|
||||||
$sum = 0;
|
|
||||||
|
|
||||||
foreach ($this->footer_totals as $total) {
|
|
||||||
$sum += is_array($total) ? array_sum($total) : $total;
|
|
||||||
}
|
|
||||||
|
|
||||||
$total = $this->has_money ? money($sum, default_currency(), true)->format() : $sum;
|
|
||||||
} else {
|
|
||||||
$total = trans('general.na');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $total;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCharts($table_key)
|
public function getCharts($table_key)
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
@@ -310,12 +293,12 @@ abstract class Report
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->chart[$table_key]['bar']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter();
|
$this->chart[$table_key]['bar']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter($this->bar_formatter_type);
|
||||||
$this->chart[$table_key]['donut']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter('percent');
|
$this->chart[$table_key]['donut']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter($this->donut_formatter_type);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->chart['bar']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter();
|
$this->chart['bar']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter($this->bar_formatter_type);
|
||||||
$this->chart['donut']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter('percent');
|
$this->chart['donut']['yaxis']['labels']['formatter'] = $this->getChartLabelFormatter($this->donut_formatter_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,13 +8,16 @@ class CompanyCreated extends Event
|
|||||||
{
|
{
|
||||||
public $company;
|
public $company;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new event instance.
|
* Create a new event instance.
|
||||||
*
|
*
|
||||||
* @param $company
|
* @param $company
|
||||||
*/
|
*/
|
||||||
public function __construct($company)
|
public function __construct($company, $request = null)
|
||||||
{
|
{
|
||||||
$this->company = $company;
|
$this->company = $company;
|
||||||
|
$this->request = $request;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@ use App\Jobs\Common\UpdateCompany;
|
|||||||
use App\Models\Common\Company;
|
use App\Models\Common\Company;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
use App\Traits\Users;
|
use App\Traits\Users;
|
||||||
|
use Akaunting\Money\Currency as MoneyCurrency;
|
||||||
|
|
||||||
class Companies extends Controller
|
class Companies extends Controller
|
||||||
{
|
{
|
||||||
@@ -44,7 +45,15 @@ class Companies extends Controller
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
return view('common.companies.create');
|
$money_currencies = MoneyCurrency::getCurrencies();
|
||||||
|
|
||||||
|
$currencies = [];
|
||||||
|
|
||||||
|
foreach ($money_currencies as $key => $item) {
|
||||||
|
$currencies[$key] = $key . ' - ' . $item['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('common.companies.create', compact('currencies'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -61,7 +70,7 @@ class Companies extends Controller
|
|||||||
$response = $this->ajaxDispatch(new CreateCompany($request));
|
$response = $this->ajaxDispatch(new CreateCompany($request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
$response['redirect'] = route('companies.index');
|
$response['redirect'] = route('companies.switch', $response['data']->id);
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.companies', 1)]);
|
$message = trans('messages.success.added', ['type' => trans_choice('general.companies', 1)]);
|
||||||
|
|
||||||
@@ -92,7 +101,15 @@ class Companies extends Controller
|
|||||||
return redirect()->route('companies.index');
|
return redirect()->route('companies.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('common.companies.edit', compact('company'));
|
$money_currencies = MoneyCurrency::getCurrencies();
|
||||||
|
|
||||||
|
$currencies = [];
|
||||||
|
|
||||||
|
foreach ($money_currencies as $key => $item) {
|
||||||
|
$currencies[$key] = $key . ' - ' . $item['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('common.companies.edit', compact('company', 'currencies'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,117 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Wizard;
|
|
||||||
|
|
||||||
use App\Abstracts\Http\Controller;
|
|
||||||
use App\Http\Requests\Setting\Tax as Request;
|
|
||||||
use App\Jobs\Setting\CreateTax;
|
|
||||||
use App\Jobs\Setting\DeleteTax;
|
|
||||||
use App\Jobs\Setting\UpdateTax;
|
|
||||||
use App\Models\Setting\Tax;
|
|
||||||
|
|
||||||
class Taxes extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Instantiate a new controller instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
// Add CRUD permission check
|
|
||||||
$this->middleware('permission:create-settings-taxes')->only('create', 'store', 'duplicate', 'import');
|
|
||||||
$this->middleware('permission:read-settings-taxes')->only('index', 'show', 'edit', 'export');
|
|
||||||
$this->middleware('permission:update-settings-taxes')->only('update', 'enable', 'disable');
|
|
||||||
$this->middleware('permission:delete-settings-taxes')->only('destroy');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
$taxes = Tax::collect();
|
|
||||||
|
|
||||||
return $this->response('wizard.taxes.index', compact('taxes'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for viewing the specified resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function show()
|
|
||||||
{
|
|
||||||
return redirect()->route('wizard.taxes.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
$response = $this->ajaxDispatch(new CreateTax($request));
|
|
||||||
|
|
||||||
if ($response['success']) {
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.taxes', 1)]);
|
|
||||||
} else {
|
|
||||||
$message = $response['message'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$response['message'] = $message;
|
|
||||||
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param Tax $tax
|
|
||||||
* @param Request $request
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function update(Tax $tax, Request $request)
|
|
||||||
{
|
|
||||||
$response = $this->ajaxDispatch(new UpdateTax($tax, $request));
|
|
||||||
|
|
||||||
if ($response['success']) {
|
|
||||||
$message = trans('messages.success.updated', ['type' => $tax->name]);
|
|
||||||
} else {
|
|
||||||
$message = $response['message'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$response['message'] = $message;
|
|
||||||
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param Tax $tax
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function destroy(Tax $tax)
|
|
||||||
{
|
|
||||||
$tax_id = $tax->id;
|
|
||||||
|
|
||||||
$response = $this->ajaxDispatch(new DeleteTax($tax));
|
|
||||||
|
|
||||||
if ($response['success']) {
|
|
||||||
$message = trans('messages.success.deleted', ['type' => $tax->name]);
|
|
||||||
} else {
|
|
||||||
$message = $response['message'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$response['tax_id'] = $tax_id;
|
|
||||||
$response['message'] = $message;
|
|
||||||
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -89,26 +89,28 @@ class UpdateUser extends Job implements ShouldUpdate
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Can't unassigned company, The company must be assigned at least one user.
|
// Can't unassigned company, The company must be assigned at least one user.
|
||||||
$companies = (array) $this->request->get('companies', []);
|
if ($this->request->has('companies')) {
|
||||||
$user_companies = $this->model->companies()->pluck('id')->toArray();
|
$companies = (array) $this->request->get('companies', []);
|
||||||
|
$user_companies = $this->model->companies()->pluck('id')->toArray();
|
||||||
|
|
||||||
$company_diff = array_diff($user_companies, $companies);
|
$company_diff = array_diff($user_companies, $companies);
|
||||||
|
|
||||||
if ($company_diff) {
|
if ($company_diff) {
|
||||||
$errors = [];
|
$errors = [];
|
||||||
|
|
||||||
foreach ($company_diff as $company_id) {
|
foreach ($company_diff as $company_id) {
|
||||||
$company = Company::withCount('users')->find($company_id);
|
$company = Company::withCount('users')->find($company_id);
|
||||||
|
|
||||||
if ($company->users_count < 2) {
|
if ($company->users_count < 2) {
|
||||||
$errors[] = trans('auth.error.unassigned', ['company' => $company->name]);
|
$errors[] = trans('auth.error.unassigned', ['company' => $company->name]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($errors) {
|
if ($errors) {
|
||||||
$message = implode('\n', $errors);
|
$message = implode('\n', $errors);
|
||||||
|
|
||||||
throw new \Exception($message);
|
throw new \Exception($message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,8 +8,12 @@ use App\Events\Common\CompanyCreating;
|
|||||||
use App\Interfaces\Job\HasOwner;
|
use App\Interfaces\Job\HasOwner;
|
||||||
use App\Interfaces\Job\HasSource;
|
use App\Interfaces\Job\HasSource;
|
||||||
use App\Interfaces\Job\ShouldCreate;
|
use App\Interfaces\Job\ShouldCreate;
|
||||||
|
use App\Models\Banking\Account;
|
||||||
use App\Models\Common\Company;
|
use App\Models\Common\Company;
|
||||||
|
use App\Models\Setting\Currency;
|
||||||
|
use Akaunting\Money\Currency as MoneyCurrency;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
use Illuminate\Support\Facades\Artisan;
|
||||||
|
use OutOfBoundsException;
|
||||||
|
|
||||||
class CreateCompany extends Job implements HasOwner, HasSource, ShouldCreate
|
class CreateCompany extends Job implements HasOwner, HasSource, ShouldCreate
|
||||||
{
|
{
|
||||||
@@ -26,15 +30,17 @@ class CreateCompany extends Job implements HasOwner, HasSource, ShouldCreate
|
|||||||
|
|
||||||
$this->callSeeds();
|
$this->callSeeds();
|
||||||
|
|
||||||
|
$this->updateCurrency();
|
||||||
|
|
||||||
$this->updateSettings();
|
$this->updateSettings();
|
||||||
});
|
});
|
||||||
|
|
||||||
event(new CompanyCreated($this->model));
|
if (! empty($current_company_id)) {
|
||||||
|
|
||||||
if (!empty($current_company_id)) {
|
|
||||||
company($current_company_id)->makeCurrent();
|
company($current_company_id)->makeCurrent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event(new CompanyCreated($this->model, $this->request));
|
||||||
|
|
||||||
return $this->model;
|
return $this->model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,4 +105,42 @@ class CreateCompany extends Job implements HasOwner, HasSource, ShouldCreate
|
|||||||
|
|
||||||
setting()->save();
|
setting()->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function updateCurrency()
|
||||||
|
{
|
||||||
|
$currency_code = $this->request->get('currency');
|
||||||
|
|
||||||
|
if ($currency_code == 'USD') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$currency = Currency::where('company_id', $this->model->id)
|
||||||
|
->where('code', $currency_code)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($currency) {
|
||||||
|
$currency->rate = '1';
|
||||||
|
$currency->enabled = '1';
|
||||||
|
|
||||||
|
$currency->save();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$data = (new MoneyCurrency($currency_code))->toArray()[$currency_code];
|
||||||
|
$data['rate'] = '1';
|
||||||
|
$data['enabled'] = '1';
|
||||||
|
$data['company_id'] = $this->model->id;
|
||||||
|
$data['code'] = $currency_code;
|
||||||
|
$data['created_from'] = 'core::ui';
|
||||||
|
$data['created_by'] = user_id();
|
||||||
|
|
||||||
|
$currency = Currency::create($data);
|
||||||
|
} catch (OutOfBoundsException $e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$account = Account::where('company_id', $this->model->id)->first();
|
||||||
|
|
||||||
|
$account->currency_code = $currency_code;
|
||||||
|
$account->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,10 @@ use App\Events\Common\CompanyUpdated;
|
|||||||
use App\Events\Common\CompanyUpdating;
|
use App\Events\Common\CompanyUpdating;
|
||||||
use App\Interfaces\Job\ShouldUpdate;
|
use App\Interfaces\Job\ShouldUpdate;
|
||||||
use App\Models\Common\Company;
|
use App\Models\Common\Company;
|
||||||
|
use App\Models\Setting\Currency;
|
||||||
use App\Traits\Users;
|
use App\Traits\Users;
|
||||||
|
use Akaunting\Money\Currency as MoneyCurrency;
|
||||||
|
use OutOfBoundsException;
|
||||||
|
|
||||||
class UpdateCompany extends Job implements ShouldUpdate
|
class UpdateCompany extends Job implements ShouldUpdate
|
||||||
{
|
{
|
||||||
@@ -86,6 +89,8 @@ class UpdateCompany extends Job implements ShouldUpdate
|
|||||||
}
|
}
|
||||||
|
|
||||||
setting()->save();
|
setting()->save();
|
||||||
|
|
||||||
|
$this->updateCurrency();
|
||||||
});
|
});
|
||||||
|
|
||||||
event(new CompanyUpdated($this->model, $this->request));
|
event(new CompanyUpdated($this->model, $this->request));
|
||||||
@@ -116,4 +121,37 @@ class UpdateCompany extends Job implements ShouldUpdate
|
|||||||
throw new \Exception($message);
|
throw new \Exception($message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function updateCurrency()
|
||||||
|
{
|
||||||
|
$currency_code = $this->request->get('currency');
|
||||||
|
|
||||||
|
if (empty($currency_code)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$currency = Currency::where('company_id', $this->model->id)
|
||||||
|
->where('code', $currency_code)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($currency) {
|
||||||
|
$currency->rate = '1';
|
||||||
|
$currency->enabled = '1';
|
||||||
|
|
||||||
|
$currency->save();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$data = (new MoneyCurrency($currency_code))->toArray()[$currency_code];
|
||||||
|
$data['rate'] = '1';
|
||||||
|
$data['enabled'] = '1';
|
||||||
|
$data['company_id'] = $this->model->id;
|
||||||
|
$data['code'] = $currency_code;
|
||||||
|
$data['created_from'] = 'core::ui';
|
||||||
|
$data['created_by'] = user_id();
|
||||||
|
|
||||||
|
$currency = Currency::create($data);
|
||||||
|
} catch (OutOfBoundsException $e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -542,35 +542,20 @@ class Document extends Model
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
} catch (\Exception $e) {}
|
} catch (\Exception $e) {}
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
$actions[] = [
|
|
||||||
'title' => trans('general.print'),
|
|
||||||
'icon' => 'print',
|
|
||||||
'url' => route($prefix . '.print', $this->id),
|
|
||||||
'permission' => 'read-' . $group . '-' . $permission_prefix,
|
|
||||||
'attributes' => [
|
|
||||||
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
|
|
||||||
'target' => '_blank',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
} catch (\Exception $e) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($actions[1]['icon'] != 'print') && ($actions[2]['icon'] != 'print')) {
|
try {
|
||||||
try {
|
$actions[] = [
|
||||||
$actions[] = [
|
'title' => trans('general.print'),
|
||||||
'title' => trans('general.print'),
|
'icon' => 'print',
|
||||||
'icon' => 'print',
|
'url' => route($prefix . '.print', $this->id),
|
||||||
'url' => route($prefix . '.print', $this->id),
|
'permission' => 'read-' . $group . '-' . $permission_prefix,
|
||||||
'permission' => 'read-' . $group . '-' . $permission_prefix,
|
'attributes' => [
|
||||||
'attributes' => [
|
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
|
||||||
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
|
'target' => '_blank',
|
||||||
'target' => '_blank',
|
],
|
||||||
],
|
];
|
||||||
];
|
} catch (\Exception $e) {}
|
||||||
} catch (\Exception $e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$actions[] = [
|
$actions[] = [
|
||||||
|
@@ -35,6 +35,10 @@ class Currency extends Form
|
|||||||
|
|
||||||
$this->currencies = Model::enabled()->orderBy('name')->pluck('name', 'code');
|
$this->currencies = Model::enabled()->orderBy('name')->pluck('name', 'code');
|
||||||
|
|
||||||
|
if (! empty($this->options)) {
|
||||||
|
$this->currencies = $this->options;
|
||||||
|
}
|
||||||
|
|
||||||
$currency_id = old('currency.id', old('currency_id', null));
|
$currency_id = old('currency.id', old('currency_id', null));
|
||||||
|
|
||||||
if (! empty($currency_id)) {
|
if (! empty($currency_id)) {
|
||||||
|
@@ -6,7 +6,6 @@ use Akaunting\Money\Currency as MoneyCurrency;
|
|||||||
use App\Abstracts\View\Component;
|
use App\Abstracts\View\Component;
|
||||||
use App\Models\Common\Media;
|
use App\Models\Common\Media;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use App\Models\Setting\Tax;
|
|
||||||
use App\Traits\Modules;
|
use App\Traits\Modules;
|
||||||
|
|
||||||
class Scripts extends Component
|
class Scripts extends Component
|
||||||
@@ -21,8 +20,6 @@ class Scripts extends Component
|
|||||||
|
|
||||||
public $currency_codes;
|
public $currency_codes;
|
||||||
|
|
||||||
public $taxes;
|
|
||||||
|
|
||||||
public $modules;
|
public $modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,8 +38,6 @@ class Scripts extends Component
|
|||||||
// Prepare codes
|
// Prepare codes
|
||||||
$this->currency_codes = $this->getCurrencyCodes();
|
$this->currency_codes = $this->getCurrencyCodes();
|
||||||
|
|
||||||
$this->taxes = $this->getTaxes();
|
|
||||||
|
|
||||||
$this->modules = $this->getFeaturedModules([
|
$this->modules = $this->getFeaturedModules([
|
||||||
'query' => [
|
'query' => [
|
||||||
'limit' => 5
|
'limit' => 5
|
||||||
@@ -122,29 +117,6 @@ class Scripts extends Component
|
|||||||
'cancel' => trans('general.cancel'),
|
'cancel' => trans('general.cancel'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'taxes' => [
|
|
||||||
'title' => trans_choice('general.taxes', 2),
|
|
||||||
'add_new' => trans('general.add_new'),
|
|
||||||
'no_taxes' => trans('taxes.no_taxes'),
|
|
||||||
'create_task' => trans('taxes.create_task'),
|
|
||||||
'new_tax' => trans('taxes.new_tax'),
|
|
||||||
'name' => trans('general.name'),
|
|
||||||
'rate_percent' => trans('taxes.rate_percent'),
|
|
||||||
'enabled' => trans('general.enabled'),
|
|
||||||
'actions' => trans('general.actions'),
|
|
||||||
'yes' => trans('general.yes'),
|
|
||||||
'no' => trans('general.no'),
|
|
||||||
'edit' => trans('general.edit'),
|
|
||||||
'delete' => trans('general.delete'),
|
|
||||||
'name' => trans('general.name'),
|
|
||||||
'rate' => trans('currencies.rate'),
|
|
||||||
'enabled' => trans('general.enabled'),
|
|
||||||
'save' => trans('general.save'),
|
|
||||||
'previous' => trans('pagination.previous'),
|
|
||||||
'next' => trans('pagination.next'),
|
|
||||||
'cancel' => trans('general.cancel'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'finish' => [
|
'finish' => [
|
||||||
'title' => trans('modules.ready'),
|
'title' => trans('modules.ready'),
|
||||||
'recommended_apps' => trans('modules.recommended_apps'),
|
'recommended_apps' => trans('modules.recommended_apps'),
|
||||||
@@ -185,9 +157,4 @@ class Scripts extends Component
|
|||||||
|
|
||||||
return $codes;
|
return $codes;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getTaxes()
|
|
||||||
{
|
|
||||||
return Tax::all();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
"akaunting/laravel-debugbar-collector": "^2.0",
|
"akaunting/laravel-debugbar-collector": "^2.0",
|
||||||
"akaunting/laravel-firewall": "^2.0",
|
"akaunting/laravel-firewall": "^2.0",
|
||||||
"akaunting/laravel-language": "^1.0",
|
"akaunting/laravel-language": "^1.0",
|
||||||
"akaunting/laravel-menu": "^2.0",
|
"akaunting/laravel-menu": "^3.0",
|
||||||
"akaunting/laravel-module": "^2.0",
|
"akaunting/laravel-module": "^2.0",
|
||||||
"akaunting/laravel-money": "^3.0",
|
"akaunting/laravel-money": "^3.0",
|
||||||
"akaunting/laravel-mutable-observer": "^1.0",
|
"akaunting/laravel-mutable-observer": "^1.0",
|
||||||
|
186
composer.lock
generated
186
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "8c3e839574009ba27f0d0cdf0b8d8f0c",
|
"content-hash": "05d1711a45b021377c4ae35714cfb7ea",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "akaunting/laravel-apexcharts",
|
"name": "akaunting/laravel-apexcharts",
|
||||||
@@ -271,30 +271,30 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "akaunting/laravel-menu",
|
"name": "akaunting/laravel-menu",
|
||||||
"version": "2.0.3",
|
"version": "3.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/akaunting/laravel-menu.git",
|
"url": "https://github.com/akaunting/laravel-menu.git",
|
||||||
"reference": "4b5faf3929e2198725619ef7d313d2c582ea348f"
|
"reference": "9f7ac7fc67f1d7918281fe872472a79c9789d3e1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/akaunting/laravel-menu/zipball/4b5faf3929e2198725619ef7d313d2c582ea348f",
|
"url": "https://api.github.com/repos/akaunting/laravel-menu/zipball/9f7ac7fc67f1d7918281fe872472a79c9789d3e1",
|
||||||
"reference": "4b5faf3929e2198725619ef7d313d2c582ea348f",
|
"reference": "9f7ac7fc67f1d7918281fe872472a79c9789d3e1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"illuminate/config": ">=5.5",
|
"illuminate/config": "^9.0",
|
||||||
"illuminate/support": ">=5.5",
|
"illuminate/support": "^9.0",
|
||||||
"illuminate/view": ">=5.5",
|
"illuminate/view": "^9.0",
|
||||||
"laravelcollective/html": ">=5.5",
|
"laravelcollective/html": "^6.3",
|
||||||
"php": ">=7.3"
|
"php": "^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": ">=3.4",
|
"friendsofphp/php-cs-fixer": "^3.12",
|
||||||
"mockery/mockery": ">=1.4",
|
"mockery/mockery": "^1.5",
|
||||||
"orchestra/testbench": ">=6.0",
|
"orchestra/testbench": "^7.11",
|
||||||
"phpunit/phpunit": ">=9.0"
|
"phpunit/phpunit": "^9.5"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@@ -337,9 +337,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/akaunting/laravel-menu/issues",
|
"issues": "https://github.com/akaunting/laravel-menu/issues",
|
||||||
"source": "https://github.com/akaunting/laravel-menu/tree/2.0.3"
|
"source": "https://github.com/akaunting/laravel-menu/tree/3.0.0"
|
||||||
},
|
},
|
||||||
"time": "2022-02-04T14:26:16+00:00"
|
"time": "2022-10-25T14:52:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "akaunting/laravel-module",
|
"name": "akaunting/laravel-module",
|
||||||
@@ -907,16 +907,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "aws/aws-sdk-php",
|
"name": "aws/aws-sdk-php",
|
||||||
"version": "3.239.0",
|
"version": "3.240.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||||
"reference": "33ae76381b77a1a2580817996dcc7b9e931ae5f4"
|
"reference": "34c6bf82f337cadf31475c88ca70e8302afc624b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/33ae76381b77a1a2580817996dcc7b9e931ae5f4",
|
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/34c6bf82f337cadf31475c88ca70e8302afc624b",
|
||||||
"reference": "33ae76381b77a1a2580817996dcc7b9e931ae5f4",
|
"reference": "34c6bf82f337cadf31475c88ca70e8302afc624b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -995,9 +995,9 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.239.0"
|
"source": "https://github.com/aws/aws-sdk-php/tree/3.240.1"
|
||||||
},
|
},
|
||||||
"time": "2022-10-18T18:17:00+00:00"
|
"time": "2022-10-24T19:03:23+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "balping/json-raw-encoder",
|
"name": "balping/json-raw-encoder",
|
||||||
@@ -1469,16 +1469,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bugsnag/bugsnag",
|
"name": "bugsnag/bugsnag",
|
||||||
"version": "v3.28.0",
|
"version": "v3.29.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/bugsnag/bugsnag-php.git",
|
"url": "https://github.com/bugsnag/bugsnag-php.git",
|
||||||
"reference": "44fc93cac95e44741e0a5f9100f2a0958372e792"
|
"reference": "362b93bb4b1318bb4bfe3a9e553413e6c2c1f382"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/bugsnag/bugsnag-php/zipball/44fc93cac95e44741e0a5f9100f2a0958372e792",
|
"url": "https://api.github.com/repos/bugsnag/bugsnag-php/zipball/362b93bb4b1318bb4bfe3a9e553413e6c2c1f382",
|
||||||
"reference": "44fc93cac95e44741e0a5f9100f2a0958372e792",
|
"reference": "362b93bb4b1318bb4bfe3a9e553413e6c2c1f382",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1526,30 +1526,30 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/bugsnag/bugsnag-php/issues",
|
"issues": "https://github.com/bugsnag/bugsnag-php/issues",
|
||||||
"source": "https://github.com/bugsnag/bugsnag-php/tree/v3.28.0"
|
"source": "https://github.com/bugsnag/bugsnag-php/tree/v3.29.0"
|
||||||
},
|
},
|
||||||
"time": "2022-05-18T14:13:46+00:00"
|
"time": "2022-10-19T09:54:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bugsnag/bugsnag-laravel",
|
"name": "bugsnag/bugsnag-laravel",
|
||||||
"version": "v2.24.0",
|
"version": "v2.25.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/bugsnag/bugsnag-laravel.git",
|
"url": "https://github.com/bugsnag/bugsnag-laravel.git",
|
||||||
"reference": "1853d8335e2c29412abd14e3522fbca0a4351d84"
|
"reference": "64546d9171b6645b5e5c4c12195193cf8ec61aad"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/bugsnag/bugsnag-laravel/zipball/1853d8335e2c29412abd14e3522fbca0a4351d84",
|
"url": "https://api.github.com/repos/bugsnag/bugsnag-laravel/zipball/64546d9171b6645b5e5c4c12195193cf8ec61aad",
|
||||||
"reference": "1853d8335e2c29412abd14e3522fbca0a4351d84",
|
"reference": "64546d9171b6645b5e5c4c12195193cf8ec61aad",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"bugsnag/bugsnag": "^3.28.0",
|
"bugsnag/bugsnag": "^3.29.0",
|
||||||
"bugsnag/bugsnag-psr-logger": "^1.4|^2.0",
|
"bugsnag/bugsnag-psr-logger": "^1.4|^2.0",
|
||||||
"illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0",
|
"illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0",
|
||||||
"illuminate/support": "^5.0|^6.0|^7.0|^8.0|^9.0",
|
"illuminate/support": "^5.0|^6.0|^7.0|^8.0|^9.0",
|
||||||
"monolog/monolog": "^1.12|^2.0",
|
"monolog/monolog": "^1.12|^2.0|^3.0",
|
||||||
"php": ">=5.5"
|
"php": ">=5.5"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@@ -1589,9 +1589,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/bugsnag/bugsnag-laravel/issues",
|
"issues": "https://github.com/bugsnag/bugsnag-laravel/issues",
|
||||||
"source": "https://github.com/bugsnag/bugsnag-laravel/tree/v2.24.0"
|
"source": "https://github.com/bugsnag/bugsnag-laravel/tree/v2.25.0"
|
||||||
},
|
},
|
||||||
"time": "2022-05-20T14:12:51+00:00"
|
"time": "2022-10-25T10:33:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bugsnag/bugsnag-psr-logger",
|
"name": "bugsnag/bugsnag-psr-logger",
|
||||||
@@ -2103,23 +2103,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/dbal",
|
"name": "doctrine/dbal",
|
||||||
"version": "3.4.5",
|
"version": "3.5.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/dbal.git",
|
"url": "https://github.com/doctrine/dbal.git",
|
||||||
"reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e"
|
"reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/a5a58773109c0abb13e658c8ccd92aeec8d07f9e",
|
"url": "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5",
|
||||||
"reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e",
|
"reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-runtime-api": "^2",
|
"composer-runtime-api": "^2",
|
||||||
"doctrine/cache": "^1.11|^2.0",
|
"doctrine/cache": "^1.11|^2.0",
|
||||||
"doctrine/deprecations": "^0.5.3|^1",
|
"doctrine/deprecations": "^0.5.3|^1",
|
||||||
"doctrine/event-manager": "^1.0",
|
"doctrine/event-manager": "^1|^2",
|
||||||
"php": "^7.4 || ^8.0",
|
"php": "^7.4 || ^8.0",
|
||||||
"psr/cache": "^1|^2|^3",
|
"psr/cache": "^1|^2|^3",
|
||||||
"psr/log": "^1|^2|^3"
|
"psr/log": "^1|^2|^3"
|
||||||
@@ -2127,14 +2127,14 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/coding-standard": "10.0.0",
|
"doctrine/coding-standard": "10.0.0",
|
||||||
"jetbrains/phpstorm-stubs": "2022.2",
|
"jetbrains/phpstorm-stubs": "2022.2",
|
||||||
"phpstan/phpstan": "1.8.3",
|
"phpstan/phpstan": "1.8.10",
|
||||||
"phpstan/phpstan-strict-rules": "^1.3",
|
"phpstan/phpstan-strict-rules": "^1.4",
|
||||||
"phpunit/phpunit": "9.5.24",
|
"phpunit/phpunit": "9.5.25",
|
||||||
"psalm/plugin-phpunit": "0.17.0",
|
"psalm/plugin-phpunit": "0.17.0",
|
||||||
"squizlabs/php_codesniffer": "3.7.1",
|
"squizlabs/php_codesniffer": "3.7.1",
|
||||||
"symfony/cache": "^5.4|^6.0",
|
"symfony/cache": "^5.4|^6.0",
|
||||||
"symfony/console": "^4.4|^5.4|^6.0",
|
"symfony/console": "^4.4|^5.4|^6.0",
|
||||||
"vimeo/psalm": "4.27.0"
|
"vimeo/psalm": "4.29.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||||
@@ -2194,7 +2194,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/dbal/issues",
|
"issues": "https://github.com/doctrine/dbal/issues",
|
||||||
"source": "https://github.com/doctrine/dbal/tree/3.4.5"
|
"source": "https://github.com/doctrine/dbal/tree/3.5.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2210,7 +2210,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-09-23T17:48:57+00:00"
|
"time": "2022-10-24T07:26:18+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/deprecations",
|
"name": "doctrine/deprecations",
|
||||||
@@ -2349,23 +2349,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/inflector",
|
"name": "doctrine/inflector",
|
||||||
"version": "2.0.5",
|
"version": "2.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/inflector.git",
|
"url": "https://github.com/doctrine/inflector.git",
|
||||||
"reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392"
|
"reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/ade2b3bbfb776f27f0558e26eed43b5d9fe1b392",
|
"url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
|
||||||
"reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392",
|
"reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2 || ^8.0"
|
"php": "^7.2 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/coding-standard": "^9",
|
"doctrine/coding-standard": "^10",
|
||||||
"phpstan/phpstan": "^1.8",
|
"phpstan/phpstan": "^1.8",
|
||||||
"phpstan/phpstan-phpunit": "^1.1",
|
"phpstan/phpstan-phpunit": "^1.1",
|
||||||
"phpstan/phpstan-strict-rules": "^1.3",
|
"phpstan/phpstan-strict-rules": "^1.3",
|
||||||
@@ -2420,7 +2420,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/inflector/issues",
|
"issues": "https://github.com/doctrine/inflector/issues",
|
||||||
"source": "https://github.com/doctrine/inflector/tree/2.0.5"
|
"source": "https://github.com/doctrine/inflector/tree/2.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2436,7 +2436,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-09-07T09:01:28+00:00"
|
"time": "2022-10-20T09:10:12+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/lexer",
|
"name": "doctrine/lexer",
|
||||||
@@ -3397,16 +3397,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/psr7",
|
"name": "guzzlehttp/psr7",
|
||||||
"version": "2.4.1",
|
"version": "2.4.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/guzzle/psr7.git",
|
"url": "https://github.com/guzzle/psr7.git",
|
||||||
"reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379"
|
"reference": "3148458748274be1546f8f2809a6c09fe66f44aa"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379",
|
"url": "https://api.github.com/repos/guzzle/psr7/zipball/3148458748274be1546f8f2809a6c09fe66f44aa",
|
||||||
"reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379",
|
"reference": "3148458748274be1546f8f2809a6c09fe66f44aa",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -3496,7 +3496,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/guzzle/psr7/issues",
|
"issues": "https://github.com/guzzle/psr7/issues",
|
||||||
"source": "https://github.com/guzzle/psr7/tree/2.4.1"
|
"source": "https://github.com/guzzle/psr7/tree/2.4.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -3512,7 +3512,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-08-28T14:45:39+00:00"
|
"time": "2022-10-25T13:49:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "hoa/compiler",
|
"name": "hoa/compiler",
|
||||||
@@ -4858,16 +4858,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v9.36.2",
|
"version": "v9.36.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "0bcd350eec1974c9f912f129368587ef7e43722b"
|
"reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/0bcd350eec1974c9f912f129368587ef7e43722b",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/15ce569fd93124e8e2257c24e3ed85b9ef9951d6",
|
||||||
"reference": "0bcd350eec1974c9f912f129368587ef7e43722b",
|
"reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4879,7 +4879,7 @@
|
|||||||
"fruitcake/php-cors": "^1.2",
|
"fruitcake/php-cors": "^1.2",
|
||||||
"laravel/serializable-closure": "^1.2.2",
|
"laravel/serializable-closure": "^1.2.2",
|
||||||
"league/commonmark": "^2.2",
|
"league/commonmark": "^2.2",
|
||||||
"league/flysystem": "^3.0.16",
|
"league/flysystem": "^3.8.0",
|
||||||
"monolog/monolog": "^2.0",
|
"monolog/monolog": "^2.0",
|
||||||
"nesbot/carbon": "^2.62.1",
|
"nesbot/carbon": "^2.62.1",
|
||||||
"nunomaduro/termwind": "^1.13",
|
"nunomaduro/termwind": "^1.13",
|
||||||
@@ -4956,7 +4956,7 @@
|
|||||||
"league/flysystem-read-only": "^3.3",
|
"league/flysystem-read-only": "^3.3",
|
||||||
"league/flysystem-sftp-v3": "^3.0",
|
"league/flysystem-sftp-v3": "^3.0",
|
||||||
"mockery/mockery": "^1.5.1",
|
"mockery/mockery": "^1.5.1",
|
||||||
"orchestra/testbench-core": "^7.8",
|
"orchestra/testbench-core": "^7.11",
|
||||||
"pda/pheanstalk": "^4.0",
|
"pda/pheanstalk": "^4.0",
|
||||||
"phpstan/phpstan": "^1.4.7",
|
"phpstan/phpstan": "^1.4.7",
|
||||||
"phpunit/phpunit": "^9.5.8",
|
"phpunit/phpunit": "^9.5.8",
|
||||||
@@ -5040,7 +5040,7 @@
|
|||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2022-10-18T18:46:20+00:00"
|
"time": "2022-10-20T16:11:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/sanctum",
|
"name": "laravel/sanctum",
|
||||||
@@ -5619,16 +5619,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/flysystem",
|
"name": "league/flysystem",
|
||||||
"version": "3.9.0",
|
"version": "3.10.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/thephpleague/flysystem.git",
|
"url": "https://github.com/thephpleague/flysystem.git",
|
||||||
"reference": "60f3760352fe08e918bc3b1acae4e91af092ebe1"
|
"reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/60f3760352fe08e918bc3b1acae4e91af092ebe1",
|
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
|
||||||
"reference": "60f3760352fe08e918bc3b1acae4e91af092ebe1",
|
"reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5644,7 +5644,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"async-aws/s3": "^1.5",
|
"async-aws/s3": "^1.5",
|
||||||
"async-aws/simple-s3": "^1.0",
|
"async-aws/simple-s3": "^1.1",
|
||||||
"aws/aws-sdk-php": "^3.198.1",
|
"aws/aws-sdk-php": "^3.198.1",
|
||||||
"composer/semver": "^3.0",
|
"composer/semver": "^3.0",
|
||||||
"ext-fileinfo": "*",
|
"ext-fileinfo": "*",
|
||||||
@@ -5690,7 +5690,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||||
"source": "https://github.com/thephpleague/flysystem/tree/3.9.0"
|
"source": "https://github.com/thephpleague/flysystem/tree/3.10.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5706,25 +5706,25 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-10-18T21:02:43+00:00"
|
"time": "2022-10-25T07:01:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/flysystem-aws-s3-v3",
|
"name": "league/flysystem-aws-s3-v3",
|
||||||
"version": "3.8.0",
|
"version": "3.10.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
|
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
|
||||||
"reference": "192c0e7f36fe4e5a79cce94f8359076630b641f8"
|
"reference": "95825edc5463006853e64338a4d96a977e8a10ca"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/192c0e7f36fe4e5a79cce94f8359076630b641f8",
|
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/95825edc5463006853e64338a4d96a977e8a10ca",
|
||||||
"reference": "192c0e7f36fe4e5a79cce94f8359076630b641f8",
|
"reference": "95825edc5463006853e64338a4d96a977e8a10ca",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"aws/aws-sdk-php": "^3.132.4",
|
"aws/aws-sdk-php": "^3.132.4",
|
||||||
"league/flysystem": "^3.8.0",
|
"league/flysystem": "^3.10.0",
|
||||||
"league/mime-type-detection": "^1.0.0",
|
"league/mime-type-detection": "^1.0.0",
|
||||||
"php": "^8.0.2"
|
"php": "^8.0.2"
|
||||||
},
|
},
|
||||||
@@ -5760,7 +5760,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
|
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
|
||||||
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.8.0"
|
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.10.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5776,7 +5776,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-10-18T06:40:06+00:00"
|
"time": "2022-10-20T21:00:57+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/mime-type-detection",
|
"name": "league/mime-type-detection",
|
||||||
@@ -9524,16 +9524,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sentry/sentry",
|
"name": "sentry/sentry",
|
||||||
"version": "3.9.1",
|
"version": "3.10.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/getsentry/sentry-php.git",
|
"url": "https://github.com/getsentry/sentry-php.git",
|
||||||
"reference": "45b618b2265d11bc9b5a15f31bcc573a2dc3b956"
|
"reference": "2fdbda9b3569df08dd4a300db8a563d0ec7241f9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/45b618b2265d11bc9b5a15f31bcc573a2dc3b956",
|
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/2fdbda9b3569df08dd4a300db8a563d0ec7241f9",
|
||||||
"reference": "45b618b2265d11bc9b5a15f31bcc573a2dc3b956",
|
"reference": "2fdbda9b3569df08dd4a300db8a563d0ec7241f9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -9578,7 +9578,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "3.9.x-dev"
|
"dev-master": "3.10.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -9612,7 +9612,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/getsentry/sentry-php/issues",
|
"issues": "https://github.com/getsentry/sentry-php/issues",
|
||||||
"source": "https://github.com/getsentry/sentry-php/tree/3.9.1"
|
"source": "https://github.com/getsentry/sentry-php/tree/3.10.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -9624,7 +9624,7 @@
|
|||||||
"type": "custom"
|
"type": "custom"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-10-11T09:00:25+00:00"
|
"time": "2022-10-19T09:28:02+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sentry/sentry-laravel",
|
"name": "sentry/sentry-laravel",
|
||||||
@@ -15350,16 +15350,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spatie/laravel-ignition",
|
"name": "spatie/laravel-ignition",
|
||||||
"version": "1.5.2",
|
"version": "1.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/spatie/laravel-ignition.git",
|
"url": "https://github.com/spatie/laravel-ignition.git",
|
||||||
"reference": "f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a"
|
"reference": "c21309ebf6657e0c38083afac8af9baa12885676"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a",
|
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/c21309ebf6657e0c38083afac8af9baa12885676",
|
||||||
"reference": "f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a",
|
"reference": "c21309ebf6657e0c38083afac8af9baa12885676",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -15436,7 +15436,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-10-14T12:24:21+00:00"
|
"time": "2022-10-25T08:38:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
|
@@ -346,6 +346,31 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
Transaction::INCOME_SPLIT_TYPE => [
|
||||||
|
'group' => 'banking',
|
||||||
|
'route' => [
|
||||||
|
'prefix' => 'transactions', // core use with group + prefix, module ex. estimates
|
||||||
|
'parameter' => 'transaction', // banking/transactions/{parameter}/edit
|
||||||
|
//'create' => 'transactions.create', // if you change route, you can write full path
|
||||||
|
],
|
||||||
|
'permission' => [
|
||||||
|
'prefix' => 'transactions',
|
||||||
|
//'create' => 'create-banking-transactions',
|
||||||
|
],
|
||||||
|
'translation' => [
|
||||||
|
'prefix' => 'transactions', // this translation file name.
|
||||||
|
'related_document_amount' => 'invoices.invoice_amount',
|
||||||
|
'transactions' => 'general.incomes',
|
||||||
|
],
|
||||||
|
'contact_type' => 'customer',
|
||||||
|
'document_type' => 'invoice',
|
||||||
|
'email_template' => 'payment_received_customer',
|
||||||
|
'script' => [
|
||||||
|
'folder' => 'banking',
|
||||||
|
'file' => 'transactions',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
Transaction::INCOME_RECURRING_TYPE => [
|
Transaction::INCOME_RECURRING_TYPE => [
|
||||||
'group' => 'banking',
|
'group' => 'banking',
|
||||||
'route' => [
|
'route' => [
|
||||||
@@ -424,6 +449,30 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
Transaction::EXPENSE_SPLIT_TYPE => [
|
||||||
|
'group' => 'banking',
|
||||||
|
'route' => [
|
||||||
|
'prefix' => 'transactions', // core use with group + prefix, module ex. estimates
|
||||||
|
'parameter' => 'transaction', // banking/transactions/{parameter}/edit
|
||||||
|
//'create' => 'transactions.create', // if you change route, you can write full path
|
||||||
|
],
|
||||||
|
'permission' => [
|
||||||
|
'prefix' => 'transactions',
|
||||||
|
//'create' => 'create-banking-transactions',
|
||||||
|
],
|
||||||
|
'translation' => [
|
||||||
|
'prefix' => 'transactions', // this translation file name.
|
||||||
|
'related_document_amount' => 'bills.bill_amount',
|
||||||
|
],
|
||||||
|
'contact_type' => 'vendor',
|
||||||
|
'document_type' => 'bill',
|
||||||
|
'email_template' => 'payment_made_vendor',
|
||||||
|
'script' => [
|
||||||
|
'folder' => 'banking',
|
||||||
|
'file' => 'transactions',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
Transaction::EXPENSE_RECURRING_TYPE => [
|
Transaction::EXPENSE_RECURRING_TYPE => [
|
||||||
'group' => 'banking',
|
'group' => 'banking',
|
||||||
'route' => [
|
'route' => [
|
||||||
|
12
presets.js
vendored
12
presets.js
vendored
@@ -252,6 +252,14 @@ module.exports = {
|
|||||||
'0%': { boxShadow: '0 28px 0 -28px #55588b' },
|
'0%': { boxShadow: '0 28px 0 -28px #55588b' },
|
||||||
'100%': { boxShadow: '0 28px 0 #55588b' },
|
'100%': { boxShadow: '0 28px 0 #55588b' },
|
||||||
},
|
},
|
||||||
|
marquee: {
|
||||||
|
'0%': { transform: 'translateX(0%)' },
|
||||||
|
'100%': { transform: 'translateX(-100%)' },
|
||||||
|
},
|
||||||
|
marquee_long: {
|
||||||
|
'0%': { transform: 'translateX(0%)' },
|
||||||
|
'100%': { transform: 'translateX(-350%)' },
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
animation: {
|
animation: {
|
||||||
@@ -260,7 +268,9 @@ module.exports = {
|
|||||||
pulsate: 'pulsate 1500ms ease infinite;',
|
pulsate: 'pulsate 1500ms ease infinite;',
|
||||||
spin: 'spin 1000ms infinite',
|
spin: 'spin 1000ms infinite',
|
||||||
submit: 'submit 0.7s ease alternate infinite',
|
submit: 'submit 0.7s ease alternate infinite',
|
||||||
submit_second: 'submit_second 0.7s ease alternate infinite'
|
submit_second: 'submit_second 0.7s ease alternate infinite',
|
||||||
|
marquee: 'marquee 9s linear infinite',
|
||||||
|
marquee_long: 'marquee_long 14s linear infinite'
|
||||||
},
|
},
|
||||||
|
|
||||||
transitionProperty: {
|
transitionProperty: {
|
||||||
|
83
public/akaunting-js/generalAction.js
vendored
83
public/akaunting-js/generalAction.js
vendored
@@ -99,7 +99,7 @@ function expandSub(key, event) {
|
|||||||
//collapse accordion
|
//collapse accordion
|
||||||
|
|
||||||
// run dropdown and tooltip functions for Virtual DOM
|
// run dropdown and tooltip functions for Virtual DOM
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
const triggers = [
|
const triggers = [
|
||||||
{ event: "mouseover", checker: isHoverable },
|
{ event: "mouseover", checker: isHoverable },
|
||||||
{ event: "mouseout", checker: isHoverable },
|
{ event: "mouseout", checker: isHoverable },
|
||||||
@@ -357,3 +357,84 @@ if (navigator.userAgent.search("Firefox") >= 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Firefox show modal for icon set
|
//Firefox show modal for icon set
|
||||||
|
|
||||||
|
//margue animation for truncated text
|
||||||
|
function marqueeAnimation(truncate) {
|
||||||
|
if (truncate.closest('[disable-marquee]') !== null) {
|
||||||
|
truncate.parentElement.classList.add('truncate');
|
||||||
|
truncate.closest('[disable-marquee]').setAttribute('disable-marquee', 'data-disable-marquee');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// offsetwidth = width of the text, clientWidth = width of parent text (div)
|
||||||
|
// because some index page has icons, we use two time parent element
|
||||||
|
|
||||||
|
if (truncate.children.length < 1 && truncate.offsetWidth > truncate.parentElement.clientWidth || truncate.offsetWidth > truncate.parentElement.parentElement.parentElement.clientWidth) {
|
||||||
|
truncate.addEventListener('mouseover', function () {
|
||||||
|
truncate.parentElement.style.animationPlayState = 'running';
|
||||||
|
|
||||||
|
if (truncate.offsetWidth > 400 && truncate.parentElement.clientWidth < 150) {
|
||||||
|
truncate.parentElement.classList.remove('animate-marquee');
|
||||||
|
truncate.parentElement.classList.add('animate-marquee_long');
|
||||||
|
} else {
|
||||||
|
truncate.parentElement.classList.remove('animate-marquee_long');
|
||||||
|
truncate.parentElement.classList.add('animate-marquee');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (truncate.parentElement.classList.contains('truncate')) {
|
||||||
|
truncate.parentElement.classList.remove('truncate');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
truncate.addEventListener('mouseout', function () {
|
||||||
|
truncate.parentElement.style.animationPlayState = 'paused';
|
||||||
|
truncate.parentElement.classList.remove('animate-marquee');
|
||||||
|
truncate.parentElement.classList.remove('animate-marquee_long');
|
||||||
|
truncate.parentElement.classList.add('truncate');
|
||||||
|
});
|
||||||
|
|
||||||
|
truncate.classList.add('truncate');
|
||||||
|
|
||||||
|
// if truncate has truncate class, text marquee animate doesn't pretty work
|
||||||
|
if (truncate.querySelector('.truncate') !== null && truncate.querySelector('.truncate').classList.contains('truncate')) {
|
||||||
|
let old_element = truncate.querySelector('.truncate');
|
||||||
|
let parent = old_element.parentNode;
|
||||||
|
|
||||||
|
let new_element = document.createElement('span');
|
||||||
|
new_element.innerHTML = old_element.innerHTML;
|
||||||
|
new_element.classList = old_element.classList;
|
||||||
|
|
||||||
|
parent.replaceChild(new_element, old_element);
|
||||||
|
}
|
||||||
|
// if truncate has truncate class, text marquee animate doesn't pretty work
|
||||||
|
|
||||||
|
// There needs to be two div for disable/enable icons. If I don't create this div, animation will work with disable/enable icons.-->
|
||||||
|
let animate_element = document.createElement('div');
|
||||||
|
animate_element.classList.add('truncate');
|
||||||
|
truncate.parentElement.append(animate_element);
|
||||||
|
animate_element.append(truncate);
|
||||||
|
// There needs to be two div for disable/enable icons. If I don't create this div, animation will work with disable/enable icons.-->
|
||||||
|
|
||||||
|
//there is overflow class for the animation does not overflow the width
|
||||||
|
truncate.parentElement.parentElement.classList.add('overflow-x-hidden');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-truncate-marquee]').forEach((truncate) => {
|
||||||
|
marqueeAnimation(truncate);
|
||||||
|
});
|
||||||
|
|
||||||
|
//disable/enable icons ejected from data-truncate-marquee, HTML of icons ejected from parent element (data-truncate-marquee)
|
||||||
|
document.querySelectorAll('[data-index-icon]').forEach((defaultText) => {
|
||||||
|
let icon_parents_element = defaultText.parentElement.parentElement.parentElement;
|
||||||
|
|
||||||
|
if (icon_parents_element.classList.contains('flex')) {
|
||||||
|
icon_parents_element.appendChild(defaultText);
|
||||||
|
} else {
|
||||||
|
icon_parents_element.parentElement.appendChild(defaultText);
|
||||||
|
}
|
||||||
|
|
||||||
|
// defaultText.parentElement.parentElement.parentElement.parentElement.appendChild(defaultText);
|
||||||
|
});
|
||||||
|
//disable/enable icons ejected from data-truncate-marquee
|
||||||
|
|
||||||
|
//margue animation for truncated text
|
||||||
|
324
public/css/app.css
vendored
324
public/css/app.css
vendored
@@ -1618,6 +1618,36 @@ input[type="date"]::-webkit-inner-spin-button,
|
|||||||
height: 4rem;
|
height: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* widget container name will change as lg:px-12 on database. When container class name change on database, this code will clean */
|
||||||
|
|
||||||
|
.dashboard .px-12{
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1024px){
|
||||||
|
|
||||||
|
.dashboard .px-12{
|
||||||
|
padding-left: 3rem;
|
||||||
|
padding-right: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboard .px-6{
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1024px){
|
||||||
|
|
||||||
|
.dashboard .px-6{
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* widget container name will change as lg:px-12 on database. When container class name change on database, this code will clean */
|
||||||
|
|
||||||
*, ::before, ::after{
|
*, ::before, ::after{
|
||||||
--tw-translate-x: 0;
|
--tw-translate-x: 0;
|
||||||
--tw-translate-y: 0;
|
--tw-translate-y: 0;
|
||||||
@@ -10273,6 +10303,62 @@ input[type="date"]::-webkit-inner-spin-button,
|
|||||||
-webkit-animation: submit_second 0.7s ease alternate infinite;
|
-webkit-animation: submit_second 0.7s ease alternate infinite;
|
||||||
animation: submit_second 0.7s ease alternate infinite;
|
animation: submit_second 0.7s ease alternate infinite;
|
||||||
}
|
}
|
||||||
|
@-webkit-keyframes marquee{
|
||||||
|
|
||||||
|
0%{
|
||||||
|
-webkit-transform: translateX(0%);
|
||||||
|
transform: translateX(0%);
|
||||||
|
}
|
||||||
|
|
||||||
|
100%{
|
||||||
|
-webkit-transform: translateX(-100%);
|
||||||
|
transform: translateX(-100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes marquee{
|
||||||
|
|
||||||
|
0%{
|
||||||
|
-webkit-transform: translateX(0%);
|
||||||
|
transform: translateX(0%);
|
||||||
|
}
|
||||||
|
|
||||||
|
100%{
|
||||||
|
-webkit-transform: translateX(-100%);
|
||||||
|
transform: translateX(-100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.animate-marquee{
|
||||||
|
-webkit-animation: marquee 9s linear infinite;
|
||||||
|
animation: marquee 9s linear infinite;
|
||||||
|
}
|
||||||
|
@-webkit-keyframes marquee_long{
|
||||||
|
|
||||||
|
0%{
|
||||||
|
-webkit-transform: translateX(0%);
|
||||||
|
transform: translateX(0%);
|
||||||
|
}
|
||||||
|
|
||||||
|
100%{
|
||||||
|
-webkit-transform: translateX(-350%);
|
||||||
|
transform: translateX(-350%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes marquee_long{
|
||||||
|
|
||||||
|
0%{
|
||||||
|
-webkit-transform: translateX(0%);
|
||||||
|
transform: translateX(0%);
|
||||||
|
}
|
||||||
|
|
||||||
|
100%{
|
||||||
|
-webkit-transform: translateX(-350%);
|
||||||
|
transform: translateX(-350%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.animate-marquee_long{
|
||||||
|
-webkit-animation: marquee_long 14s linear infinite;
|
||||||
|
animation: marquee_long 14s linear infinite;
|
||||||
|
}
|
||||||
.cursor-auto{
|
.cursor-auto{
|
||||||
cursor: auto;
|
cursor: auto;
|
||||||
}
|
}
|
||||||
@@ -51760,105 +51846,138 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1024px){
|
@media (min-width: 1024px){
|
||||||
|
.dashboard .lg\:px-12{
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
@media (min-width: 1024px){
|
||||||
|
|
||||||
.lg\:absolute{
|
.dashboard .lg\:px-12{
|
||||||
|
padding-left: 3rem;
|
||||||
|
padding-right: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboard .lg\:px-6{
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1024px){
|
||||||
|
|
||||||
|
.dashboard .lg\:px-6{
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg\:absolute{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:relative{
|
.lg\:relative{
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:right-0{
|
.lg\:right-0{
|
||||||
right: 0px;
|
right: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:top-7{
|
.lg\:top-7{
|
||||||
top: 1.75rem;
|
top: 1.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:right-24{
|
.lg\:right-24{
|
||||||
|
=======
|
||||||
|
.lg\:right-24{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
right: 6rem;
|
right: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:top-2{
|
.lg\:top-2{
|
||||||
top: 0.5rem;
|
top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:col-span-5{
|
.lg\:col-span-5{
|
||||||
grid-column: span 5 / span 5;
|
grid-column: span 5 / span 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:my-12{
|
.lg\:my-12{
|
||||||
margin-top: 3rem;
|
margin-top: 3rem;
|
||||||
margin-bottom: 3rem;
|
margin-bottom: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:-mx-12{
|
.lg\:-mx-12{
|
||||||
margin-left: -3rem;
|
margin-left: -3rem;
|
||||||
margin-right: -3rem;
|
margin-right: -3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:my-16{
|
.lg\:my-16{
|
||||||
margin-top: 4rem;
|
margin-top: 4rem;
|
||||||
margin-bottom: 4rem;
|
margin-bottom: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:my-0{
|
.lg\:my-0{
|
||||||
|
=======
|
||||||
|
.lg\:my-0{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-2{
|
.lg\:mt-2{
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-4{
|
.lg\:mt-4{
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-11{
|
.lg\:mt-11{
|
||||||
margin-top: 2.75rem;
|
margin-top: 2.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-60{
|
.lg\:mt-60{
|
||||||
margin-top: 15rem;
|
margin-top: 15rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-8{
|
.lg\:mt-8{
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-0{
|
.lg\:mt-0{
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:-mt-16{
|
.lg\:-mt-16{
|
||||||
margin-top: -4rem;
|
margin-top: -4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mb-0{
|
.lg\:mb-0{
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:mt-20{
|
.lg\:mt-20{
|
||||||
margin-top: 5rem;
|
margin-top: 5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:block{
|
.lg\:block{
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:flex{
|
.lg\:flex{
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:hidden{
|
.lg\:hidden{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:h-6{
|
.lg\:h-6{
|
||||||
height: 1.5rem;
|
height: 1.5rem;
|
||||||
}
|
}
|
||||||
@@ -51872,141 +51991,153 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-64{
|
.lg\:h-64{
|
||||||
|
=======
|
||||||
|
.lg\:h-64{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
height: 16rem;
|
height: 16rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-auto{
|
.lg\:h-auto{
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-48{
|
.lg\:h-48{
|
||||||
height: 12rem;
|
height: 12rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-60{
|
.lg\:h-60{
|
||||||
height: 15rem;
|
height: 15rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-4{
|
.lg\:h-4{
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:h-12{
|
.lg\:h-12{
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-9{
|
.lg\:w-9{
|
||||||
width: 2.25rem;
|
width: 2.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-96{
|
.lg\:w-96{
|
||||||
width: 24rem;
|
width: 24rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:w-18{
|
.lg\:w-18{
|
||||||
width: 4.5rem;
|
width: 4.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-1\/2{
|
.lg\:w-1\/2{
|
||||||
|
=======
|
||||||
|
.lg\:w-1\/2{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-11\/12{
|
.lg\:w-11\/12{
|
||||||
width: 91.666667%;
|
width: 91.666667%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-1\/12{
|
.lg\:w-1\/12{
|
||||||
width: 8.333333%;
|
width: 8.333333%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-3\/12{
|
.lg\:w-3\/12{
|
||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-2\/12{
|
.lg\:w-2\/12{
|
||||||
width: 16.666667%;
|
width: 16.666667%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-80{
|
.lg\:w-80{
|
||||||
width: 20rem;
|
width: 20rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-8\/12{
|
.lg\:w-8\/12{
|
||||||
width: 66.666667%;
|
width: 66.666667%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-46{
|
.lg\:w-46{
|
||||||
width: 46.875rem;
|
width: 46.875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-4\/5{
|
.lg\:w-4\/5{
|
||||||
width: 80%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-3\/5{
|
.lg\:w-3\/5{
|
||||||
width: 60%;
|
width: 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-7\/12{
|
.lg\:w-7\/12{
|
||||||
width: 58.333333%;
|
width: 58.333333%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-5\/12{
|
.lg\:w-5\/12{
|
||||||
width: 41.666667%;
|
width: 41.666667%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-full{
|
.lg\:w-full{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-1\/3{
|
.lg\:w-1\/3{
|
||||||
width: 33.333333%;
|
width: 33.333333%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-2\/3{
|
.lg\:w-2\/3{
|
||||||
width: 66.666667%;
|
width: 66.666667%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-auto{
|
.lg\:w-auto{
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-1\/4{
|
.lg\:w-1\/4{
|
||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-6\/12{
|
.lg\:w-6\/12{
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-4\/12{
|
.lg\:w-4\/12{
|
||||||
width: 33.333333%;
|
width: 33.333333%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-4{
|
.lg\:w-4{
|
||||||
width: 1rem;
|
width: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-2\/4{
|
.lg\:w-2\/4{
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-3\/4{
|
.lg\:w-3\/4{
|
||||||
width: 75%;
|
width: 75%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:max-w-lg{
|
.lg\:max-w-lg{
|
||||||
max-width: 32rem;
|
max-width: 32rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:max-w-7xl{
|
.lg\:max-w-7xl{
|
||||||
|
=======
|
||||||
|
.lg\:max-w-7xl{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
max-width: 80rem;
|
max-width: 80rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:max-w-6xl{
|
.lg\:max-w-6xl{
|
||||||
max-width: 72rem;
|
max-width: 72rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:grid-cols-2{
|
.lg\:grid-cols-2{
|
||||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
}
|
}
|
||||||
@@ -52016,58 +52147,62 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lg\:flex-row{
|
.lg\:flex-row{
|
||||||
|
=======
|
||||||
|
.lg\:flex-row{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
-webkit-box-orient: horizontal;
|
-webkit-box-orient: horizontal;
|
||||||
-webkit-box-direction: normal;
|
-webkit-box-direction: normal;
|
||||||
-ms-flex-direction: row;
|
-ms-flex-direction: row;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:flex-row-reverse{
|
.lg\:flex-row-reverse{
|
||||||
-webkit-box-orient: horizontal;
|
-webkit-box-orient: horizontal;
|
||||||
-webkit-box-direction: reverse;
|
-webkit-box-direction: reverse;
|
||||||
-ms-flex-direction: row-reverse;
|
-ms-flex-direction: row-reverse;
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:flex-col{
|
.lg\:flex-col{
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
-webkit-box-direction: normal;
|
-webkit-box-direction: normal;
|
||||||
-ms-flex-direction: column;
|
-ms-flex-direction: column;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:flex-nowrap{
|
.lg\:flex-nowrap{
|
||||||
-ms-flex-wrap: nowrap;
|
-ms-flex-wrap: nowrap;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:items-center{
|
.lg\:items-center{
|
||||||
-webkit-box-align: center;
|
-webkit-box-align: center;
|
||||||
-ms-flex-align: center;
|
-ms-flex-align: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:justify-end{
|
.lg\:justify-end{
|
||||||
-webkit-box-pack: end;
|
-webkit-box-pack: end;
|
||||||
-ms-flex-pack: end;
|
-ms-flex-pack: end;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:justify-center{
|
.lg\:justify-center{
|
||||||
-webkit-box-pack: center;
|
-webkit-box-pack: center;
|
||||||
-ms-flex-pack: center;
|
-ms-flex-pack: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:justify-around{
|
.lg\:justify-around{
|
||||||
-ms-flex-pack: distribute;
|
-ms-flex-pack: distribute;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:gap-16{
|
.lg\:gap-16{
|
||||||
gap: 4rem;
|
gap: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:space-x-8 > :not([hidden]) ~ :not([hidden]){
|
.lg\:space-x-8 > :not([hidden]) ~ :not([hidden]){
|
||||||
--tw-space-x-reverse: 0;
|
--tw-space-x-reverse: 0;
|
||||||
margin-right: calc(2rem * var(--tw-space-x-reverse));
|
margin-right: calc(2rem * var(--tw-space-x-reverse));
|
||||||
@@ -52075,95 +52210,103 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lg\:space-y-0 > :not([hidden]) ~ :not([hidden]){
|
.lg\:space-y-0 > :not([hidden]) ~ :not([hidden]){
|
||||||
|
=======
|
||||||
|
.lg\:space-y-0 > :not([hidden]) ~ :not([hidden]){
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
--tw-space-y-reverse: 0;
|
--tw-space-y-reverse: 0;
|
||||||
margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
|
margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
|
||||||
margin-bottom: calc(0px * var(--tw-space-y-reverse));
|
margin-bottom: calc(0px * var(--tw-space-y-reverse));
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:space-x-24 > :not([hidden]) ~ :not([hidden]){
|
.lg\:space-x-24 > :not([hidden]) ~ :not([hidden]){
|
||||||
--tw-space-x-reverse: 0;
|
--tw-space-x-reverse: 0;
|
||||||
margin-right: calc(6rem * var(--tw-space-x-reverse));
|
margin-right: calc(6rem * var(--tw-space-x-reverse));
|
||||||
margin-left: calc(6rem * calc(1 - var(--tw-space-x-reverse)));
|
margin-left: calc(6rem * calc(1 - var(--tw-space-x-reverse)));
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:divide-y-0 > :not([hidden]) ~ :not([hidden]){
|
.lg\:divide-y-0 > :not([hidden]) ~ :not([hidden]){
|
||||||
--tw-divide-y-reverse: 0;
|
--tw-divide-y-reverse: 0;
|
||||||
border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
|
border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
|
||||||
border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
|
border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:divide-x > :not([hidden]) ~ :not([hidden]){
|
.lg\:divide-x > :not([hidden]) ~ :not([hidden]){
|
||||||
--tw-divide-x-reverse: 0;
|
--tw-divide-x-reverse: 0;
|
||||||
border-right-width: calc(1px * var(--tw-divide-x-reverse));
|
border-right-width: calc(1px * var(--tw-divide-x-reverse));
|
||||||
border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
|
border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:overflow-visible{
|
.lg\:overflow-visible{
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:overflow-x-hidden{
|
.lg\:overflow-x-hidden{
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:border-r{
|
.lg\:border-r{
|
||||||
|
=======
|
||||||
|
.lg\:border-r{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
border-right-width: 1px;
|
border-right-width: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:px-3{
|
.lg\:px-3{
|
||||||
padding-left: 0.75rem;
|
padding-left: 0.75rem;
|
||||||
padding-right: 0.75rem;
|
padding-right: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:px-4{
|
.lg\:px-4{
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:px-6{
|
.lg\:px-6{
|
||||||
padding-left: 1.5rem;
|
padding-left: 1.5rem;
|
||||||
padding-right: 1.5rem;
|
padding-right: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:px-12{
|
.lg\:px-12{
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
padding-right: 3rem;
|
padding-right: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:px-24{
|
.lg\:px-24{
|
||||||
padding-left: 6rem;
|
padding-left: 6rem;
|
||||||
padding-right: 6rem;
|
padding-right: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:py-0{
|
.lg\:py-0{
|
||||||
padding-top: 0px;
|
padding-top: 0px;
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pl-24{
|
.lg\:pl-24{
|
||||||
padding-left: 6rem;
|
padding-left: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pl-6{
|
.lg\:pl-6{
|
||||||
padding-left: 1.5rem;
|
padding-left: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pl-12{
|
.lg\:pl-12{
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pt-0{
|
.lg\:pt-0{
|
||||||
padding-top: 0px;
|
padding-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pl-8{
|
.lg\:pl-8{
|
||||||
padding-left: 2rem;
|
padding-left: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:pr-0{
|
.lg\:pr-0{
|
||||||
padding-right: 0px;
|
padding-right: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:text-6xl{
|
.lg\:text-6xl{
|
||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
line-height: 2.75rem;
|
line-height: 2.75rem;
|
||||||
@@ -52180,30 +52323,34 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lg\:text-8xl{
|
.lg\:text-8xl{
|
||||||
|
=======
|
||||||
|
.lg\:text-8xl{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
line-height: 3.25rem;
|
line-height: 3.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:text-7xl{
|
.lg\:text-7xl{
|
||||||
font-size: 2.75rem;
|
font-size: 2.75rem;
|
||||||
line-height: 3rem;
|
line-height: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:text-2xl{
|
.lg\:text-2xl{
|
||||||
font-size: 1.375rem;
|
font-size: 1.375rem;
|
||||||
line-height: 1.5rem;
|
line-height: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:text-5xl{
|
.lg\:text-5xl{
|
||||||
font-size: 2.25rem;
|
font-size: 2.25rem;
|
||||||
line-height: 2.5rem;
|
line-height: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:text-lg{
|
.lg\:text-lg{
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
line-height: 1.75rem;
|
line-height: 1.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
.lg\:leading-4{
|
.lg\:leading-4{
|
||||||
line-height: 1rem;
|
line-height: 1rem;
|
||||||
}
|
}
|
||||||
@@ -52217,42 +52364,53 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
[dir="ltr"] .lg\:ltr\:pr-12{
|
[dir="ltr"] .lg\:ltr\:pr-12{
|
||||||
|
=======
|
||||||
|
[dir="ltr"] .lg\:ltr\:right-0{
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[dir="ltr"] .lg\:ltr\:pr-12{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
padding-right: 3rem;
|
padding-right: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="ltr"] .lg\:ltr\:pl-12{
|
[dir="ltr"] .lg\:ltr\:pl-12{
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="ltr"] .ltr\:lg\:pl-8{
|
[dir="ltr"] .ltr\:lg\:pl-8{
|
||||||
padding-left: 2rem;
|
padding-left: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="ltr"] .lg\:ltr\:pl-24{
|
[dir="ltr"] .lg\:ltr\:pl-24{
|
||||||
padding-left: 6rem;
|
padding-left: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .lg\:rtl\:left-0{
|
[dir="rtl"] .lg\:rtl\:left-0{
|
||||||
left: 0px;
|
left: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
[dir="rtl"] .lg\:rtl\:mr-72{
|
[dir="rtl"] .lg\:rtl\:mr-72{
|
||||||
margin-right: 18rem;
|
margin-right: 18rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .lg\:rtl\:pl-12{
|
[dir="rtl"] .lg\:rtl\:pl-12{
|
||||||
|
=======
|
||||||
|
[dir="rtl"] .lg\:rtl\:pl-12{
|
||||||
|
>>>>>>> a4ea448ef90c7eafacea3700bc7c83bdbb963165
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .lg\:rtl\:pr-12{
|
[dir="rtl"] .lg\:rtl\:pr-12{
|
||||||
padding-right: 3rem;
|
padding-right: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .rtl\:lg\:pr-8{
|
[dir="rtl"] .rtl\:lg\:pr-8{
|
||||||
padding-right: 2rem;
|
padding-right: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .lg\:rtl\:pr-24{
|
[dir="rtl"] .lg\:rtl\:pr-24{
|
||||||
padding-right: 6rem;
|
padding-right: 6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
<router-view
|
<router-view
|
||||||
:translations="translations"
|
:translations="translations"
|
||||||
:currencies="currencies"
|
:currencies="currencies"
|
||||||
:taxes="taxes"
|
|
||||||
:modules="modules.data"
|
:modules="modules.data"
|
||||||
:currency_codes="currency_codes"
|
:currency_codes="currency_codes"
|
||||||
:company="company"
|
:company="company"
|
||||||
@@ -21,7 +20,6 @@
|
|||||||
this.countries = wizard_countries;
|
this.countries = wizard_countries;
|
||||||
this.currencies = wizard_currencies;
|
this.currencies = wizard_currencies;
|
||||||
this.currency_codes = wizard_currency_codes;
|
this.currency_codes = wizard_currency_codes;
|
||||||
this.taxes = wizard_taxes;
|
|
||||||
this.modules = wizard_modules;
|
this.modules = wizard_modules;
|
||||||
|
|
||||||
Object.keys(this.currency_codes).map((key) => {
|
Object.keys(this.currency_codes).map((key) => {
|
||||||
@@ -36,14 +34,12 @@
|
|||||||
translations: {
|
translations: {
|
||||||
company: {},
|
company: {},
|
||||||
currencies: {},
|
currencies: {},
|
||||||
taxes: {},
|
|
||||||
finish: {},
|
finish: {},
|
||||||
},
|
},
|
||||||
company: {},
|
company: {},
|
||||||
countries: {},
|
countries: {},
|
||||||
currencies: [],
|
currencies: [],
|
||||||
currency_codes: [],
|
currency_codes: [],
|
||||||
taxes: [],
|
|
||||||
modules: {},
|
modules: {},
|
||||||
page_loaded: true
|
page_loaded: true
|
||||||
};
|
};
|
||||||
|
@@ -842,7 +842,8 @@ export default {
|
|||||||
if (!check) {
|
if (!check) {
|
||||||
this.sorted_options.push({
|
this.sorted_options.push({
|
||||||
key: option.id.toString(),
|
key: option.id.toString(),
|
||||||
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name
|
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name,
|
||||||
|
level: (option.parent_id) ? 1 : 0 // 0: parent, 1: child. Level data get 0 via backend. This control will refactor.
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -165,19 +165,19 @@ export default {
|
|||||||
widthOptions: [
|
widthOptions: [
|
||||||
{
|
{
|
||||||
label: '25%',
|
label: '25%',
|
||||||
value: 'w-full lg:w-1/4 px-6'
|
value: 'w-full lg:w-1/4 lg:px-6'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '33%',
|
label: '33%',
|
||||||
value: 'w-full lg:w-1/3 px-6'
|
value: 'w-full lg:w-1/3 lg:px-6'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '50%',
|
label: '50%',
|
||||||
value: 'w-full lg:w-2/4 px-12'
|
value: 'w-full lg:w-2/4 lg:px-12'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '100%',
|
label: '100%',
|
||||||
value: 'w-full px-12'
|
value: 'w-full lg:px-12'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
form: {
|
form: {
|
||||||
|
@@ -414,7 +414,7 @@
|
|||||||
next() {
|
next() {
|
||||||
if (this.active++ > 2);
|
if (this.active++ > 2);
|
||||||
|
|
||||||
this.$router.push("/wizard/taxes");
|
this.$router.push("/wizard/finish");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@@ -128,7 +128,7 @@ export default {
|
|||||||
prev() {
|
prev() {
|
||||||
if (this.active-- > 2);
|
if (this.active-- > 2);
|
||||||
|
|
||||||
this.$router.push("/wizard/taxes");
|
this.$router.push("/wizard/currencies");
|
||||||
},
|
},
|
||||||
|
|
||||||
finish() {
|
finish() {
|
||||||
|
@@ -28,19 +28,6 @@
|
|||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="w-1/4">
|
|
||||||
<span class="px-3 flex flex-col">
|
|
||||||
<span
|
|
||||||
:class="[{'bg-purple': active_state > 2}, {'bg-purple': active_state == 2}]"
|
|
||||||
class="w-full h-1 bg-gray-300 rounded-xl text-transparent"
|
|
||||||
>Text</span>
|
|
||||||
|
|
||||||
<span :class="[{'font-bold': active_state == 2}, {'font-bold': active_state > 2}]" class="text-sm font-normal mt-2">
|
|
||||||
{{ translations.taxes.title }}
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="w-1/4">
|
<li class="w-1/4">
|
||||||
<span class="pl-6 flex flex-col">
|
<span class="pl-6 flex flex-col">
|
||||||
<span
|
<span
|
||||||
@@ -79,7 +66,6 @@
|
|||||||
translations: {
|
translations: {
|
||||||
company: {},
|
company: {},
|
||||||
currencies: {},
|
currencies: {},
|
||||||
taxes: {},
|
|
||||||
finish: {},
|
finish: {},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@@ -1,269 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="relative bg-body z-10 rounded-lg shadow-2xl p-10" style="height:675px;">
|
|
||||||
<WizardSteps :active_state="active"></WizardSteps>
|
|
||||||
|
|
||||||
<div class="flex flex-col justify-between overflow-y-auto" style="height: calc(100% - 53px)">
|
|
||||||
<div v-if="pageLoad" class="absolute left-0 right-0 top-0 bottom-0 w-full h-full bg-white rounded-lg flex items-center justify-center z-50">
|
|
||||||
<span class="material-icons form-spin animate-spin text-9xl">data_usage</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="overflow-x-visible menu-scroll mt-1">
|
|
||||||
<form ref="form" class="py-2 align-middle inline-block min-w-full">
|
|
||||||
<table id="tbl-taxes" v-if="taxes.length" class="min-w-full divide-y divide-gray-200">
|
|
||||||
<thead class="thead-light">
|
|
||||||
<tr class="flex items-center px-1">
|
|
||||||
<th class="w-6/12 ltr:pr-6 rtl:pl-6 py-3 ltr:text-left rtl:text-right text-xs font-medium text-black tracking-wider">
|
|
||||||
{{ translations.taxes.name }}
|
|
||||||
</th>
|
|
||||||
<th class="w-6/12 ltr:pr-6 rtl:pl-6 py-3 ltr:text-right rtl:text-left text-xs font-medium text-black tracking-wider">
|
|
||||||
{{ translations.taxes.rate }}
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody data-table-body>
|
|
||||||
<tr v-for="(item, index) in taxes" :key="index" data-table-list class="relative flex items-center border-b hover:bg-gray-100 px-1 flex-wrap group">
|
|
||||||
<td :class="current_tab == index ? 'hidden' : ''" class="w-6/12 ltr:pr-6 rtl:pl-6 py-4 ltr:text-left rtl:text-right whitespace-nowrap text-sm font-medium text-black">
|
|
||||||
{{ item.name }}
|
|
||||||
</td>
|
|
||||||
<td :class="current_tab == index ? 'hidden' : ''" class="w-6/12 relative ltr:pr-6 rtl:pl-6 py-4 ltr:text-right rtl:text-left whitespace-nowrap text-sm font-medium text-black">
|
|
||||||
{{ item.rate }}
|
|
||||||
|
|
||||||
<div class="absolute ltr:right-12 rtl:left-12 -top-4 hidden items-center group-hover:flex">
|
|
||||||
<button type="button" class="relative bg-white hover:bg-gray-100 border py-0.5 px-1 cursor-pointer index-actions " @click="onEditItem(item, index)">
|
|
||||||
<span class="material-icons-outlined text-purple text-lg">edit</span>
|
|
||||||
|
|
||||||
<div class="inline-block absolute invisible z-20 py-1 px-2 text-sm font-medium text-gray-900 bg-white rounded-lg border border-gray-200 shadow-sm opacity-0 whitespace-nowrap tooltip-content -top-10 -left-2" data-tooltip-placement="top">
|
|
||||||
<span>{{ translations.taxes.edit }}</span>
|
|
||||||
<div class="absolute w-2 h-2 -bottom-1 before:content-[' '] before:absolute before:w-2 before:h-2 before:bg-white before:border-gray-200 before:transform before:rotate-45 before:border before:border-t-0 before:border-l-0" data-popper-arrow></div>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button type="button" class="relative bg-white hover:bg-gray-100 border py-0.5 px-1 cursor-pointer index-actions " @click="onClickDelete(item)">
|
|
||||||
<span class="material-icons-outlined text-purple text-lg">delete</span>
|
|
||||||
|
|
||||||
<div class="inline-block absolute invisible z-20 py-1 px-2 text-sm font-medium text-gray-900 bg-white rounded-lg border border-gray-200 shadow-sm opacity-0 whitespace-nowrap tooltip-content -top-10 -left-2" data-tooltip-placement="top">
|
|
||||||
<span>{{ translations.taxes.delete }}</span>
|
|
||||||
<div class="absolute w-2 h-2 -bottom-1 before:content-[' '] before:absolute before:w-2 before:h-2 before:bg-white before:border-gray-200 before:transform before:rotate-45 before:border before:border-t-0 before:border-l-0" data-popper-arrow></div>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td class="w-full p-0 current-tab" v-if="current_tab == index">
|
|
||||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 py-3">
|
|
||||||
<base-input name="name" data-name="name" :placeholder="translations.taxes.name"
|
|
||||||
form-classes="sm:col-span-2"
|
|
||||||
v-model="model.name"
|
|
||||||
:error="onFailErrorGet('name')"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="sm:col-span-2"></div>
|
|
||||||
|
|
||||||
<base-input name="rate" data-name="rate" :placeholder="translations.taxes.rate"
|
|
||||||
form-classes="sm:col-span-2"
|
|
||||||
v-model="model.rate"
|
|
||||||
:error="onFailErrorGet('rate')"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="flex justify-end items-center sm:col-span-6">
|
|
||||||
<base-button class="flex items-center justify-center px-6 py-1.5 text-base rounded-lg bg-transparent hover:bg-gray-100 ltr:mr-2 rtl:ml-2" @click="onCancelItem()">
|
|
||||||
{{ translations.taxes.cancel }}
|
|
||||||
</base-button>
|
|
||||||
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
:disabled="button_loading"
|
|
||||||
class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100"
|
|
||||||
@click="onEditForm(item, $event)"
|
|
||||||
>
|
|
||||||
<i v-if="button_loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
|
||||||
<span :class="[{'opacity-0': button_loading}]">
|
|
||||||
{{ translations.taxes.save }}
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div class="flex flex-col items-center">
|
|
||||||
<div v-if="!taxes.length" class="flex flex-col items-center gap-y-2">
|
|
||||||
<span class="text-dark">
|
|
||||||
{{ translations.taxes.no_taxes }}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span class="text-gray-700">
|
|
||||||
{{ translations.taxes.create_task }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="taxes.length" class="w-full border-b hover:bg-gray-100" style="height:53px;">
|
|
||||||
<button type="button" class="w-full h-full flex items-center justify-center text-purple font-medium disabled:bg-gray-200" @click="onAddItem()">
|
|
||||||
<span class="material-icons-outlined text-base font-bold ltr:mr-1 rtl:ml-1 pointer-events-none">add</span>
|
|
||||||
{{ translations.taxes.new_tax }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button v-else type="button" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100 mt-3" @click="onAddItem()">
|
|
||||||
{{ translations.taxes.new_tax }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="new_datas" class="grid sm:grid-cols-4 gap-x-8 gap-y-6 my-3.5 w-full">
|
|
||||||
<base-input :label="translations.taxes.name" name="name" data-name="name" :placeholder="translations.taxes.name"
|
|
||||||
class="sm:col-span-2"
|
|
||||||
v-model="model.name"
|
|
||||||
:error="onFailErrorGet('name')"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<base-input :label="translations.taxes.rate" name="rate" data-name="rate"
|
|
||||||
:placeholder="translations.taxes.rate"
|
|
||||||
class="sm:col-span-2"
|
|
||||||
v-model="model.rate"
|
|
||||||
:error="onFailErrorGet('rate')"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="flex items-center justify-end sm:col-span-4">
|
|
||||||
<base-button class="flex items-center justify-center px-6 py-1.5 text-base rounded-lg bg-transparent hover:bg-gray-100 ltr:mr-2 rtl:ml-2" @click="new_datas = false">
|
|
||||||
{{ translations.taxes.cancel }}
|
|
||||||
</base-button>
|
|
||||||
|
|
||||||
<button type="submit" :disabled="button_loading" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100" @click="onSubmitForm($event)">
|
|
||||||
<i v-if="button_loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
|
||||||
<span :class="[{'opacity-0': button_loading}]">
|
|
||||||
{{ translations.taxes.save }}
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center justify-center mt-5 gap-x-10">
|
|
||||||
<base-button class="w-1/2 flex items-center justify-center px-6 py-1.5 text-base rounded-lg bg-transparent hover:bg-gray-100" @click="prev()">
|
|
||||||
{{ translations.taxes.previous }}
|
|
||||||
</base-button>
|
|
||||||
|
|
||||||
<base-button class="w-1/2 relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100" @click="next()">
|
|
||||||
{{ translations.taxes.next }}
|
|
||||||
</base-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<notifications></notifications>
|
|
||||||
|
|
||||||
<form id="form-dynamic-component" method="POST" action="#"></form>
|
|
||||||
|
|
||||||
<component v-bind:is="component" @deleted="onDeleteCurrency($event)"></component>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import AkauntingRadioGroup from "./../../components/AkauntingRadioGroup";
|
|
||||||
import BulkAction from "./../../plugins/bulk-action";
|
|
||||||
import MixinsGlobal from "./../../mixins/global";
|
|
||||||
import WizardAction from "./../../mixins/wizardAction";
|
|
||||||
import WizardSteps from "./Steps.vue";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "Taxes",
|
|
||||||
|
|
||||||
mixins: [MixinsGlobal, WizardAction],
|
|
||||||
|
|
||||||
components: {
|
|
||||||
AkauntingRadioGroup,
|
|
||||||
WizardSteps
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
|
||||||
taxes: {
|
|
||||||
type: [Object, Array],
|
|
||||||
},
|
|
||||||
|
|
||||||
translations: {
|
|
||||||
type: [Object, Array],
|
|
||||||
},
|
|
||||||
|
|
||||||
pageLoad: {
|
|
||||||
type: [Boolean, String]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
active: 2,
|
|
||||||
bulk_action: new BulkAction(url + "/settings/taxes"),
|
|
||||||
add_taxes: true,
|
|
||||||
new_add_taxes: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
onClickDelete(item) {
|
|
||||||
this.confirmDelete(
|
|
||||||
`${
|
|
||||||
new URL(url).protocol +
|
|
||||||
"//" +
|
|
||||||
location.host +
|
|
||||||
location.pathname +
|
|
||||||
"/" +
|
|
||||||
item.id
|
|
||||||
}`,
|
|
||||||
this.translations.taxes.title,
|
|
||||||
`${
|
|
||||||
this.translations.currencies.title +
|
|
||||||
" " +
|
|
||||||
this.translations.currencies.delete
|
|
||||||
} <strong>${item.name}</strong>?`,
|
|
||||||
this.translations.taxes.cancel,
|
|
||||||
this.translations.taxes.delete
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
onDeleteCurrency(event) {
|
|
||||||
this.onEjetItem(event, this.taxes, event.tax_id);
|
|
||||||
},
|
|
||||||
|
|
||||||
onEditForm(item, event) {
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
this.onSubmitEvent(
|
|
||||||
"PATCH",
|
|
||||||
url + "/wizard/taxes/" + item.id,
|
|
||||||
"type",
|
|
||||||
this.taxes,
|
|
||||||
item.id
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
onNewTax() {
|
|
||||||
this.new_add_taxes = true;
|
|
||||||
this.add_taxes = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
onCancelNewTax() {
|
|
||||||
this.new_add_taxes = false;
|
|
||||||
this.add_taxes = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
onSubmitForm(event) {
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
this.onSubmitEvent("POST", url + "/wizard/taxes", "type", this.taxes);
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
prev() {
|
|
||||||
if (this.active-- > 2);
|
|
||||||
this.$router.push("/wizard/currencies");
|
|
||||||
},
|
|
||||||
|
|
||||||
next() {
|
|
||||||
if (this.active++ > 2);
|
|
||||||
this.$router.push("/wizard/finish");
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
10
resources/assets/js/wizard.js
vendored
10
resources/assets/js/wizard.js
vendored
@@ -10,7 +10,6 @@ Vue.use(VueRouter);
|
|||||||
import Wizard from './Wizard.vue';
|
import Wizard from './Wizard.vue';
|
||||||
import Company from './views/wizard/Company.vue';
|
import Company from './views/wizard/Company.vue';
|
||||||
import Currencies from './views/wizard/Currencies.vue';
|
import Currencies from './views/wizard/Currencies.vue';
|
||||||
import Taxes from './views/wizard/Taxes.vue';
|
|
||||||
import Finish from './views/wizard/Finish.vue';
|
import Finish from './views/wizard/Finish.vue';
|
||||||
|
|
||||||
var global_path = new URL(url).protocol + '//' + window.location.host;
|
var global_path = new URL(url).protocol + '//' + window.location.host;
|
||||||
@@ -18,7 +17,9 @@ var base_path = url.replace(global_path, '');
|
|||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
mode: 'history',
|
mode: 'history',
|
||||||
|
|
||||||
base: base_path,
|
base: base_path,
|
||||||
|
|
||||||
routes: [
|
routes: [
|
||||||
{
|
{
|
||||||
path: '/wizard',
|
path: '/wizard',
|
||||||
@@ -35,18 +36,15 @@ const router = new VueRouter({
|
|||||||
name: 'Currencies',
|
name: 'Currencies',
|
||||||
component: Currencies
|
component: Currencies
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/wizard/taxes',
|
|
||||||
name: 'Taxes',
|
|
||||||
component: Taxes
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/wizard/finish',
|
path: '/wizard/finish',
|
||||||
name: 'Finish',
|
name: 'Finish',
|
||||||
component: Finish
|
component: Finish
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
linkActiveClass: 'active',
|
linkActiveClass: 'active',
|
||||||
|
|
||||||
scrollBehavior: (to, from ,savedPosition) => {
|
scrollBehavior: (to, from ,savedPosition) => {
|
||||||
if (savedPosition) {
|
if (savedPosition) {
|
||||||
return savedPosition;
|
return savedPosition;
|
||||||
|
9
resources/assets/sass/app.css
vendored
9
resources/assets/sass/app.css
vendored
@@ -203,6 +203,15 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: 4rem;
|
height: 4rem;
|
||||||
}
|
}
|
||||||
|
/* widget container name will change as lg:px-12 on database. When container class name change on database, this code will clean */
|
||||||
|
.dashboard .px-12 {
|
||||||
|
@apply px-0 lg:pl-12 lg:pr-12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboard .px-6 {
|
||||||
|
@apply px-0 lg:pl-6 lg:pr-6;
|
||||||
|
}
|
||||||
|
/* widget container name will change as lg:px-12 on database. When container class name change on database, this code will clean */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* menu */
|
/* menu */
|
||||||
|
@@ -58,11 +58,11 @@
|
|||||||
<x-table.td class="w-4/12 sm:w-5/12">
|
<x-table.td class="w-4/12 sm:w-5/12">
|
||||||
<div class="flex items-center space-x-2">
|
<div class="flex items-center space-x-2">
|
||||||
@if (setting('default.use_gravatar', '0') == '1')
|
@if (setting('default.use_gravatar', '0') == '1')
|
||||||
<img src="{{ $item->picture }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block" title="{{ $item->name }}" alt="{{ $item->name }}">
|
<img src="{{ $item->picture }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block text-transparent" title="{{ $item->name }}" alt="{{ $item->name }}">
|
||||||
@elseif (is_object($item->picture))
|
@elseif (is_object($item->picture))
|
||||||
<img src="{{ Storage::url($item->picture->id) }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block" alt="{{ $item->name }}" title="{{ $item->name }}">
|
<img src="{{ Storage::url($item->picture->id) }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block text-transparent" alt="{{ $item->name }}" title="{{ $item->name }}">
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset('public/img/user.svg') }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block" alt="{{ $item->name }}"/>
|
<img src="{{ asset('public/img/user.svg') }}" class="w-6 h-6 rounded-full mr-2 hidden lg:block text-transparent" alt="{{ $item->name }}"/>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{{ !empty($item->name) ? $item->name : trans('general.na') }}
|
{{ !empty($item->name) ? $item->name : trans('general.na') }}
|
||||||
|
@@ -64,9 +64,7 @@
|
|||||||
|
|
||||||
<x-table.td class="w-6/12 sm:w-5/12">
|
<x-table.td class="w-6/12 sm:w-5/12">
|
||||||
<x-slot name="first" class="flex font-bold">
|
<x-slot name="first" class="flex font-bold">
|
||||||
<div class="truncate">
|
{{ $item->name }}
|
||||||
{{ $item->name }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (! $item->enabled)
|
@if (! $item->enabled)
|
||||||
<x-index.disable text="{{ trans_choice('general.accounts', 1) }}" />
|
<x-index.disable text="{{ trans_choice('general.accounts', 1) }}" />
|
||||||
|
@@ -82,13 +82,18 @@
|
|||||||
|
|
||||||
<x-table.td kind="amount" class="none-truncate">
|
<x-table.td kind="amount" class="none-truncate">
|
||||||
@php
|
@php
|
||||||
|
$reconciliation_transactions = [];
|
||||||
$type = $item->isIncome() ? 'income' : 'expense';
|
$type = $item->isIncome() ? 'income' : 'expense';
|
||||||
$name = $type . '_' . $item->id;
|
$name = $type . '_' . $item->id;
|
||||||
|
|
||||||
$checked = $item->reconciled;
|
$checked = $item->reconciled;
|
||||||
|
|
||||||
if (! $reconciliation->reconciled && array_key_exists($name, $reconciliation->transactions)) {
|
if (! empty($reconciliation->transactions)) {
|
||||||
$checked = (empty($reconciliation->transactions[$name]) || $reconciliation->transactions[$name] === 'false') ? 0 : 1;
|
$reconciliation_transactions = $reconciliation->transactions;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $reconciliation->reconciled && array_key_exists($name, $reconciliation_transactions)) {
|
||||||
|
$checked = (empty($reconciliation_transactions[$name]) || $reconciliation_transactions[$name] === 'false') ? 0 : 1;
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
<x-layouts.admin>
|
<x-layouts.admin>
|
||||||
<x-slot name="title">{{ trans('general.title.new', ['type' => trans_choice('general.companies', 1)]) }}</x-slot>
|
<x-slot name="title">
|
||||||
|
{{ trans('general.title.new', ['type' => trans_choice('general.companies', 1)]) }}
|
||||||
|
</x-slot>
|
||||||
|
|
||||||
<x-slot name="content">
|
<x-slot name="content">
|
||||||
<x-form.container>
|
<x-form.container>
|
||||||
@@ -10,47 +12,11 @@
|
|||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<x-slot name="body">
|
<x-slot name="body">
|
||||||
<div class="sm:col-span-3 grid gap-x-8 gap-y-6 grid-rows-3">
|
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
|
||||||
|
|
||||||
<x-form.group.email name="email" label="{{ trans('general.email') }}" />
|
<x-form.group.email name="email" label="{{ trans('general.email') }}" />
|
||||||
|
|
||||||
<x-form.group.text name="phone" label="{{ trans('settings.company.phone') }}" value="{{ setting('company.phone') }}" not-required />
|
<x-form.group.currency name="currency" :options="$currencies" without-add-new />
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="sm:col-span-3">
|
|
||||||
<x-form.group.file name="logo" label="{{ trans('companies.logo') }}" not-required />
|
|
||||||
</div>
|
|
||||||
</x-slot>
|
|
||||||
</x-form.section>
|
|
||||||
|
|
||||||
<x-form.section>
|
|
||||||
<x-slot name="head">
|
|
||||||
<x-form.section.head title="{{ trans('items.billing') }}" description="{{ trans('companies.form_description.billing') }}" />
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="body">
|
|
||||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.currency name="currency" />
|
|
||||||
|
|
||||||
<x-form.group.locale not-required />
|
|
||||||
</x-slot>
|
|
||||||
</x-form.section>
|
|
||||||
|
|
||||||
<x-form.section>
|
|
||||||
<x-slot name="head">
|
|
||||||
<x-form.section.head title="{{ trans('general.address') }}" description="{{ trans('companies.form_description.address') }}" />
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="body">
|
|
||||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" v-model="form.address" not-required />
|
|
||||||
|
|
||||||
<x-form.group.text name="city" label="{{ trans_choice('general.cities', 1) }}" value="{{ setting('company.city') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.text name="zip_code" label="{{ trans('general.zip_code') }}" value="{{ setting('company.zip_code') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.text name="state" label="{{ trans('general.state') }}" value="{{ setting('company.state') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.country />
|
<x-form.group.country />
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
@@ -10,47 +10,11 @@
|
|||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<x-slot name="body">
|
<x-slot name="body">
|
||||||
<div class="sm:col-span-3 grid gap-x-8 gap-y-6 grid-rows-3">
|
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
|
||||||
|
|
||||||
<x-form.group.email name="email" label="{{ trans('general.email') }}" />
|
<x-form.group.email name="email" label="{{ trans('general.email') }}" />
|
||||||
|
|
||||||
<x-form.group.text name="phone" label="{{ trans('settings.company.phone') }}" not-required />
|
<x-form.group.currency name="currency" :options="$currencies" selected="{{ ! empty($company->currency) ? $company->currency : config('setting.fallback.default.currency') }}" without-add-new />
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="sm:col-span-3">
|
|
||||||
<x-form.group.file name="logo" label="{{ trans('companies.logo') }}" :value="$company->company_logo" not-required />
|
|
||||||
</div>
|
|
||||||
</x-slot>
|
|
||||||
</x-form.section>
|
|
||||||
|
|
||||||
<x-form.section>
|
|
||||||
<x-slot name="head">
|
|
||||||
<x-form.section.head title="{{ trans('items.billing') }}" description="{{ trans('companies.form_description.billing') }}" />
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="body">
|
|
||||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.currency name="currency" selected="{{ ! empty($company->currency) ? $company->currency : config('setting.fallback.default.currency') }}" />
|
|
||||||
|
|
||||||
<x-form.group.locale not-required />
|
|
||||||
</x-slot>
|
|
||||||
</x-form.section>
|
|
||||||
|
|
||||||
<x-form.section>
|
|
||||||
<x-slot name="head">
|
|
||||||
<x-form.section.head title="{{ trans('general.address') }}" description="{{ trans('companies.form_description.address') }}" />
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="body">
|
|
||||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" not-required v-model="form.address" />
|
|
||||||
|
|
||||||
<x-form.group.text name="city" label="{{ trans_choice('general.cities', 1) }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.text name="zip_code" label="{{ trans('general.zip_code') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.text name="state" label="{{ trans('general.state') }}" not-required />
|
|
||||||
|
|
||||||
<x-form.group.country />
|
<x-form.group.country />
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
@@ -84,16 +84,14 @@
|
|||||||
</x-table.td>
|
</x-table.td>
|
||||||
|
|
||||||
<x-table.td class="w-6/12 sm:w-4/12">
|
<x-table.td class="w-6/12 sm:w-4/12">
|
||||||
<x-slot name="first" class="flex items-center font-bold" override="class">
|
<x-slot name="first" class="font-bold" override="class">
|
||||||
<div class="truncate">
|
{{ $item->name }}
|
||||||
{{ $item->name }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (! $item->enabled)
|
@if (! $item->enabled)
|
||||||
<x-index.disable text="{{ trans_choice('general.items', 1) }}" />
|
<x-index.disable text="{{ trans_choice('general.items', 1) }}" />
|
||||||
@endif
|
@endif
|
||||||
</x-slot>
|
</x-slot>
|
||||||
<x-slot name="second" class="font-normal truncate" override="class">
|
<x-slot name="second" class="font-normal" override="class">
|
||||||
{{ $item->description }}
|
{{ $item->description }}
|
||||||
</x-slot>
|
</x-slot>
|
||||||
</x-table.td>
|
</x-table.td>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<x-form.accordion type="company">
|
<x-form.accordion type="company" :open="(! $hideLogo && empty(setting('company.logo')))">
|
||||||
<x-slot name="head">
|
<x-slot name="head">
|
||||||
<x-form.accordion.head
|
<x-form.accordion.head
|
||||||
title="{{ trans_choice($textSectionCompaniesTitle, 1) }}"
|
title="{{ trans_choice($textSectionCompaniesTitle, 1) }}"
|
||||||
|
@@ -139,6 +139,10 @@
|
|||||||
@visible-change="{{ $attributes['visible-change'] }}"
|
@visible-change="{{ $attributes['visible-change'] }}"
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@if (! empty($attributes['clear']))
|
||||||
|
@clear="{{ $attributes['clear'] }}($event)"
|
||||||
|
@endif
|
||||||
|
|
||||||
@if (isset($attributes['readonly']))
|
@if (isset($attributes['readonly']))
|
||||||
:readonly="{{ $attributes['readonly'] }}"
|
:readonly="{{ $attributes['readonly'] }}"
|
||||||
@endif
|
@endif
|
||||||
|
@@ -1,9 +1,11 @@
|
|||||||
<span @class([
|
<div class="flex items-center">
|
||||||
'w-3 h-3 rounded-full ltr:mr-1 rtl:ml-1', $backgroundColor, $textColor
|
<span @class([
|
||||||
])
|
'w-3 h-3 rounded-full ltr:mr-1 rtl:ml-1', $backgroundColor, $textColor
|
||||||
@if (! empty($backgroundStyle))
|
])
|
||||||
style="background-color: {{ $backgroundStyle }}"
|
@if (! empty($backgroundStyle))
|
||||||
@endif
|
style="background-color: {{ $backgroundStyle }}"
|
||||||
>
|
@endif
|
||||||
</span>
|
>
|
||||||
<span class="w-24 truncate">{{ $name }}</span>
|
</span>
|
||||||
|
<span class="w-24 truncate">{{ $name }}</span>
|
||||||
|
</div>
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
<x-tooltip id="{{ $id }}" placement="{{ $position }}" message="{{ $text }}">
|
<div data-index-icon>
|
||||||
<span class="material-icons{{ $iconType }} text-purple text-sm ml-2">
|
<x-tooltip id="{{ $id }}" placement="{{ $position }}" message="{{ $text }}">
|
||||||
{{ $icon }}
|
<span class="material-icons{{ $iconType }} text-purple text-sm ml-2">
|
||||||
</span>
|
{{ $icon }}
|
||||||
</x-tooltip>
|
</span>
|
||||||
|
</x-tooltip>
|
||||||
|
</div>
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
<x-tooltip id="{{ $id }}" placement="{{ $position }}" message="{{ $disableText }}">
|
<div data-index-icon>
|
||||||
<span class="material-icons{{ $iconType }} text-red text-sm ml-2">
|
<x-tooltip id="{{ $id }}" placement="{{ $position }}" message="{{ $disableText }}">
|
||||||
{{ $icon }}
|
<span class="material-icons{{ $iconType }} text-red text-sm ml-2">
|
||||||
</span>
|
{{ $icon }}
|
||||||
</x-tooltip>
|
</span>
|
||||||
|
</x-tooltip>
|
||||||
|
</div>
|
||||||
|
@@ -40,9 +40,9 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
@if (setting('default.use_gravatar', '0') == '1')
|
@if (setting('default.use_gravatar', '0') == '1')
|
||||||
<img src="{{ user()->picture }}" alt="{{ user()->name }}" class="w-8 h-8 m-auto rounded-full" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<img src="{{ user()->picture }}" alt="{{ user()->name }}" class="w-8 h-8 m-auto rounded-full text-transparent" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
@elseif (is_object(user()->picture))
|
@elseif (is_object(user()->picture))
|
||||||
<img src="{{ Storage::url(user()->picture->id) }}" class="w-8 h-8 m-auto rounded-full" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<img src="{{ Storage::url(user()->picture->id) }}" class="w-8 h-8 m-auto rounded-full text-transparent" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
@else
|
@else
|
||||||
<span id="menu-profile-icon" name="account_circle" class="material-icons-outlined text-purple w-8 h-8 flex items-center justify-center text-center text-2xl pointer-events-none" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<span id="menu-profile-icon" name="account_circle" class="material-icons-outlined text-purple w-8 h-8 flex items-center justify-center text-center text-2xl pointer-events-none" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
account_circle
|
account_circle
|
||||||
|
@@ -24,9 +24,9 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
@if (setting('default.use_gravatar', '0') == '1')
|
@if (setting('default.use_gravatar', '0') == '1')
|
||||||
<img src="{{ user()->picture }}" alt="{{ user()->name }}" class="w-8 h-8 m-auto rounded-full" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<img src="{{ user()->picture }}" alt="{{ user()->name }}" class="w-8 h-8 m-auto rounded-full text-transparent" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
@elseif (is_object(user()->picture))
|
@elseif (is_object(user()->picture))
|
||||||
<img src="{{ Storage::url(user()->picture->id) }}" class="w-8 h-8 m-auto rounded-full" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<img src="{{ Storage::url(user()->picture->id) }}" class="w-8 h-8 m-auto rounded-full text-transparent" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
@else
|
@else
|
||||||
<span name="account_circle" class="material-icons-outlined text-purple w-8 h-8 flex items-center justify-center text-center text-2xl pointer-events-none" alt="{{ user()->name }}" title="{{ user()->name }}">
|
<span name="account_circle" class="material-icons-outlined text-purple w-8 h-8 flex items-center justify-center text-center text-2xl pointer-events-none" alt="{{ user()->name }}" title="{{ user()->name }}">
|
||||||
account_circle
|
account_circle
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
var wizard_countries = {!! json_encode(trans('countries')) !!};
|
var wizard_countries = {!! json_encode(trans('countries')) !!};
|
||||||
var wizard_currencies = {!! json_encode($currencies) !!};
|
var wizard_currencies = {!! json_encode($currencies) !!};
|
||||||
var wizard_currency_codes = {!! json_encode($currency_codes) !!};
|
var wizard_currency_codes = {!! json_encode($currency_codes) !!};
|
||||||
var wizard_taxes = {!! json_encode($taxes) !!};
|
|
||||||
var wizard_modules = {!! json_encode($modules) !!};
|
var wizard_modules = {!! json_encode($modules) !!};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<div class="overflow-x-visible">
|
<div class="overflow-x-visible">
|
||||||
<div class="py-2 align-middle">
|
<div class="py-2 align-middle">
|
||||||
<table class="flex flex-col divide-y divide-gray-200">
|
<table class="flex flex-col divide-y divide-gray-200" {{ $attributes }}>
|
||||||
{{ $slot }}
|
{{ $slot }}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -8,7 +8,13 @@
|
|||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div {{ $first_attributes }}>
|
<div {{ $first_attributes }}>
|
||||||
{!! $first !!}
|
<!--so that the animation does not overflow the width. With javascript will add (overflow-x-hidden) class name-->
|
||||||
|
<div>
|
||||||
|
<!-- this tag use for calculate width of text and parent element -->
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{!! $first !!}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@@ -21,9 +27,18 @@
|
|||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div {{ $second_attributes }}>
|
<div {{ $second_attributes }}>
|
||||||
{!! $second !!}
|
<div>
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{!! $second !!}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{{ $slot }}
|
<div>
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{{ $slot }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
@@ -8,7 +8,13 @@
|
|||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div {{ $first_attributes }}>
|
<div {{ $first_attributes }}>
|
||||||
{!! $first !!}
|
<!--so that the animation does not overflow the width. With javascript will add (overflow-x-hidden) class name-->
|
||||||
|
<div>
|
||||||
|
<!-- this tag use for calculate width of text and parent element -->
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{!! $first !!}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@@ -21,9 +27,17 @@
|
|||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
<div {{ $second_attributes }}>
|
<div {{ $second_attributes }}>
|
||||||
{!! $second !!}
|
<div>
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{!! $second !!}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{{ $slot }}
|
<div>
|
||||||
|
<span data-truncate-marquee>
|
||||||
|
{{ $slot }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
|
@@ -57,7 +57,7 @@
|
|||||||
</x-table.td>
|
</x-table.td>
|
||||||
|
|
||||||
<x-table.td class="w-6/12 sm:w-4/12">
|
<x-table.td class="w-6/12 sm:w-4/12">
|
||||||
<x-slot name="first" class="flex" override="class">
|
<x-slot name="first" class="flex font-bold" override="class">
|
||||||
<div class="font-bold truncate">
|
<div class="font-bold truncate">
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,7 +0,0 @@
|
|||||||
<x-layouts.wizard>
|
|
||||||
<x-slot name="title">
|
|
||||||
{{ trans('general.wizard') }}
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="content"></x-slot>
|
|
||||||
</x-layouts.wizard>
|
|
@@ -16,10 +16,6 @@ Route::group(['as' => 'wizard.'], function () {
|
|||||||
Route::get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('currencies.disable');
|
Route::get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('currencies.disable');
|
||||||
Route::resource('currencies', 'Wizard\Currencies');
|
Route::resource('currencies', 'Wizard\Currencies');
|
||||||
|
|
||||||
Route::get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('taxes.enable');
|
|
||||||
Route::get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('taxes.disable');
|
|
||||||
Route::resource('taxes', 'Wizard\Taxes');
|
|
||||||
|
|
||||||
Route::get('finish', 'Wizard\Finish@index')->name('finish.index');
|
Route::get('finish', 'Wizard\Finish@index')->name('finish.index');
|
||||||
Route::patch('finish', 'Wizard\Finish@update')->name('finish.update');
|
Route::patch('finish', 'Wizard\Finish@update')->name('finish.update');
|
||||||
});
|
});
|
||||||
|
@@ -1,79 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace Tests\Feature\Wizard;
|
|
||||||
|
|
||||||
use App\Jobs\Setting\CreateTax;
|
|
||||||
use App\Models\Setting\Tax;
|
|
||||||
use Tests\Feature\FeatureTestCase;
|
|
||||||
|
|
||||||
class TaxesTest extends FeatureTestCase
|
|
||||||
{
|
|
||||||
public function testItShouldSeeTaxListPage()
|
|
||||||
{
|
|
||||||
$this->loginAs()
|
|
||||||
->get(route('wizard.taxes.index'))
|
|
||||||
->assertStatus(200)
|
|
||||||
->assertSeeText(trans('general.wizard'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testItShouldCreateTax()
|
|
||||||
{
|
|
||||||
$request = $this->getRequest();
|
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.taxes', 1)]);
|
|
||||||
|
|
||||||
$this->loginAs()
|
|
||||||
->post(route('wizard.taxes.store'), $request)
|
|
||||||
->assertStatus(200)
|
|
||||||
->assertJson([
|
|
||||||
'success' => true,
|
|
||||||
'message' => $message,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertDatabaseHas('taxes', $request);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testItShouldUpdateTax()
|
|
||||||
{
|
|
||||||
$request = $this->getRequest();
|
|
||||||
|
|
||||||
$tax = $this->dispatch(new CreateTax($request));
|
|
||||||
|
|
||||||
$request['name'] = $this->faker->text(15);
|
|
||||||
|
|
||||||
$message = trans('messages.success.updated', ['type' => $request['name']]);
|
|
||||||
|
|
||||||
$this->loginAs()
|
|
||||||
->patch(route('wizard.taxes.update', $tax->id), $request)
|
|
||||||
->assertStatus(200)
|
|
||||||
->assertJson([
|
|
||||||
'success' => true,
|
|
||||||
'message' => $message,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertDatabaseHas('taxes', $request);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testItShouldDeleteTax()
|
|
||||||
{
|
|
||||||
$request = $this->getRequest();
|
|
||||||
|
|
||||||
$tax = $this->dispatch(new CreateTax($request));
|
|
||||||
|
|
||||||
$message = trans('messages.success.deleted', ['type' => $tax->name]);
|
|
||||||
|
|
||||||
$this->loginAs()
|
|
||||||
->delete(route('wizard.taxes.destroy', $tax->id))
|
|
||||||
->assertStatus(200)
|
|
||||||
->assertJson([
|
|
||||||
'success' => true,
|
|
||||||
'message' => $message,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertDatabaseHas('taxes', $request);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequest()
|
|
||||||
{
|
|
||||||
return Tax::factory()->enabled()->raw();
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user