Compare commits

...

8 Commits

Author SHA1 Message Date
root 158c546df0 Merge https://gitea.testnir.ru/Andrey/laravel-crm 2024-02-01 18:02:03 +03:00
Andrey df6c5fcff4 Add Rubble Money Value 2024-02-01 18:00:08 +03:00
root 1af04e0669 Merge https://gitea.testnir.ru/Andrey/laravel-crm
first#
2024-01-31 16:30:59 +03:00
root 86a14cf720 Merge https://gitea.testnir.ru/Andrey/laravel-crm 2024-01-31 16:29:33 +03:00
root ebcca33aef Dnjhjq 2024-01-31 16:15:53 +03:00
root 8dffb4bdbc Dnjhjq 2024-01-31 16:14:46 +03:00
Andrey c4e67ccadb RU-lang update fix bugs 2024-01-31 16:07:29 +03:00
Andrey e18f559236 RU-lang 2024-01-29 11:47:59 +03:00
39 changed files with 1478 additions and 960 deletions

View File

@ -113,6 +113,7 @@ return [
'en' => 'English', 'en' => 'English',
'tr' => 'Türkçe', 'tr' => 'Türkçe',
'ar' => 'Arabic', 'ar' => 'Arabic',
'ru' => 'Русский',
], ],
/* /*
@ -150,7 +151,7 @@ return [
| |
*/ */
'currency' => env('APP_CURRENCY', 'USD'), 'currency' => env('APP_CURRENCY', 'RUB'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -96,9 +96,9 @@ return array(
"https://" => ["rules" => []] "https://" => ["rules" => []]
], ],
/** /**
* @var string * @var string
*/ */
'log_output_file' => null, 'log_output_file' => null,
/** /**
@ -171,13 +171,13 @@ return array(
*/ */
"default_paper_size" => "a4", "default_paper_size" => "a4",
/** /**
* The default paper orientation. * The default paper orientation.
* *
* The orientation of the page (portrait or landscape). * The orientation of the page (portrait or landscape).
* *
* @var string * @var string
*/ */
'default_paper_orientation' => "portrait", 'default_paper_orientation' => "portrait",
/** /**

View File

@ -14,7 +14,7 @@ return [
| Here you can specify how big the chunk should be. | Here you can specify how big the chunk should be.
| |
*/ */
'chunk_size' => 1000, 'chunk_size' => 1000,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -41,14 +41,15 @@ return [
| Configure e.g. delimiter, enclosure and line ending for CSV exports. | Configure e.g. delimiter, enclosure and line ending for CSV exports.
| |
*/ */
'csv' => [ 'csv' => [
'delimiter' => ',', 'delimiter' => ',',
'enclosure' => '"', 'enclosure' => '"',
'line_ending' => PHP_EOL, 'line_ending' => PHP_EOL,
'use_bom' => false, 'use_bom' => false,
'include_separator_line' => false, 'include_separator_line' => false,
'excel_compatibility' => false, 'excel_compatibility' => false,
'output_encoding' => '', 'output_encoding' => '',
'test_auto_detect' => true,
], ],
/* /*
@ -59,20 +60,20 @@ return [
| Configure e.g. default title, creator, subject,... | Configure e.g. default title, creator, subject,...
| |
*/ */
'properties' => [ 'properties' => [
'creator' => '', 'creator' => '',
'lastModifiedBy' => '', 'lastModifiedBy' => '',
'title' => '', 'title' => '',
'description' => '', 'description' => '',
'subject' => '', 'subject' => '',
'keywords' => '', 'keywords' => '',
'category' => '', 'category' => '',
'manager' => '', 'manager' => '',
'company' => '', 'company' => '',
], ],
], ],
'imports' => [ 'imports' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -85,7 +86,7 @@ return [
| you can enable it by setting read_only to false. | you can enable it by setting read_only to false.
| |
*/ */
'read_only' => true, 'read_only' => true,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -109,7 +110,7 @@ return [
| Available options: none|slug|custom | Available options: none|slug|custom
| |
*/ */
'heading_row' => [ 'heading_row' => [
'formatter' => 'slug', 'formatter' => 'slug',
], ],
@ -121,12 +122,12 @@ return [
| Configure e.g. delimiter, enclosure and line ending for CSV imports. | Configure e.g. delimiter, enclosure and line ending for CSV imports.
| |
*/ */
'csv' => [ 'csv' => [
'delimiter' => null, 'delimiter' => null,
'enclosure' => '"', 'enclosure' => '"',
'escape_character' => '\\', 'escape_character' => '\\',
'contiguous' => false, 'contiguous' => false,
'input_encoding' => 'UTF-8', 'input_encoding' => 'UTF-8',
], ],
/* /*
@ -137,16 +138,31 @@ return [
| Configure e.g. default title, creator, subject,... | Configure e.g. default title, creator, subject,...
| |
*/ */
'properties' => [ 'properties' => [
'creator' => '', 'creator' => '',
'lastModifiedBy' => '', 'lastModifiedBy' => '',
'title' => '', 'title' => '',
'description' => '', 'description' => '',
'subject' => '', 'subject' => '',
'keywords' => '', 'keywords' => '',
'category' => '', 'category' => '',
'manager' => '', 'manager' => '',
'company' => '', 'company' => '',
],
/*
|--------------------------------------------------------------------------
| Cell Middleware
|--------------------------------------------------------------------------
|
| Configure middleware that is executed on getting a cell value
|
*/
'cells' => [
'middleware' => [
//\Maatwebsite\Excel\Middleware\TrimCellValue::class,
//\Maatwebsite\Excel\Middleware\ConvertEmptyCellValuesToNull::class,
],
], ],
], ],
@ -161,21 +177,21 @@ return [
| |
*/ */
'extension_detector' => [ 'extension_detector' => [
'xlsx' => Excel::XLSX, 'xlsx' => Excel::XLSX,
'xlsm' => Excel::XLSX, 'xlsm' => Excel::XLSX,
'xltx' => Excel::XLSX, 'xltx' => Excel::XLSX,
'xltm' => Excel::XLSX, 'xltm' => Excel::XLSX,
'xls' => Excel::XLS, 'xls' => Excel::XLS,
'xlt' => Excel::XLS, 'xlt' => Excel::XLS,
'ods' => Excel::ODS, 'ods' => Excel::ODS,
'ots' => Excel::ODS, 'ots' => Excel::ODS,
'slk' => Excel::SLK, 'slk' => Excel::SLK,
'xml' => Excel::XML, 'xml' => Excel::XML,
'gnumeric' => Excel::GNUMERIC, 'gnumeric' => Excel::GNUMERIC,
'htm' => Excel::HTML, 'htm' => Excel::HTML,
'html' => Excel::HTML, 'html' => Excel::HTML,
'csv' => Excel::CSV, 'csv' => Excel::CSV,
'tsv' => Excel::TSV, 'tsv' => Excel::TSV,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -186,7 +202,7 @@ return [
| Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF | Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
| |
*/ */
'pdf' => Excel::DOMPDF, 'pdf' => Excel::DOMPDF,
], ],
/* /*
@ -206,11 +222,11 @@ return [
| [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class | [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class
| |
*/ */
'value_binder' => [ 'value_binder' => [
'default' => Maatwebsite\Excel\DefaultValueBinder::class, 'default' => Maatwebsite\Excel\DefaultValueBinder::class,
], ],
'cache' => [ 'cache' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Default cell caching driver | Default cell caching driver
@ -219,7 +235,7 @@ return [
| By default PhpSpreadsheet keeps all cell values in memory, however when | By default PhpSpreadsheet keeps all cell values in memory, however when
| dealing with large files, this might result into memory issues. If you | dealing with large files, this might result into memory issues. If you
| want to mitigate that, you can configure a cell caching driver here. | want to mitigate that, you can configure a cell caching driver here.
| When using the illuminate driver, it will store each value in a the | When using the illuminate driver, it will store each value in the
| cache store. This can slow down the process, because it needs to | cache store. This can slow down the process, because it needs to
| store each value. You can use the "batch" store if you want to | store each value. You can use the "batch" store if you want to
| only persist to the store when the memory limit is reached. | only persist to the store when the memory limit is reached.
@ -227,7 +243,7 @@ return [
| Drivers: memory|illuminate|batch | Drivers: memory|illuminate|batch
| |
*/ */
'driver' => 'memory', 'driver' => 'memory',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -239,7 +255,7 @@ return [
| Here you can tweak the memory limit to your liking. | Here you can tweak the memory limit to your liking.
| |
*/ */
'batch' => [ 'batch' => [
'memory_limit' => 60000, 'memory_limit' => 60000,
], ],
@ -255,9 +271,23 @@ return [
| at "null" it will use the default store. | at "null" it will use the default store.
| |
*/ */
'illuminate' => [ 'illuminate' => [
'store' => null, 'store' => null,
], ],
/*
|--------------------------------------------------------------------------
| Cache Time-to-live (TTL)
|--------------------------------------------------------------------------
|
| The TTL of items written to cache. If you want to keep the items cached
| indefinitely, set this to null. Otherwise, set a number of seconds,
| a \DateInterval, or a callable.
|
| Allowable types: callable|\DateInterval|int|null
|
*/
'default_ttl' => 10800,
], ],
/* /*
@ -277,7 +307,7 @@ return [
*/ */
'transactions' => [ 'transactions' => [
'handler' => 'db', 'handler' => 'db',
'db' => [ 'db' => [
'connection' => null, 'connection' => null,
], ],
], ],
@ -291,9 +321,26 @@ return [
| |
| When exporting and importing files, we use a temporary file, before | When exporting and importing files, we use a temporary file, before
| storing reading or downloading. Here you can customize that path. | storing reading or downloading. Here you can customize that path.
| permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
| |
*/ */
'local_path' => storage_path('framework/cache/laravel-excel'), 'local_path' => storage_path('framework/cache/laravel-excel'),
/*
|--------------------------------------------------------------------------
| Local Temporary Path Permissions
|--------------------------------------------------------------------------
|
| Permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
| If omitted the default permissions of the filesystem will be used.
|
*/
'local_permissions' => [
// 'dir' => 0755,
// 'file' => 0644,
],
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -309,8 +356,8 @@ return [
| in conjunction with queued imports and exports. | in conjunction with queued imports and exports.
| |
*/ */
'remote_disk' => null, 'remote_disk' => null,
'remote_prefix' => null, 'remote_prefix' => null,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -30,8 +30,8 @@ return [
JsonApiSerializer JsonApiSerializer
*/ */
'fractal' => [ 'fractal' => [
'params' => [ 'params' => [
'include' => 'include' 'include' => 'include'
], ],
'serializer' => League\Fractal\Serializer\DataArraySerializer::class 'serializer' => League\Fractal\Serializer\DataArraySerializer::class
@ -43,7 +43,7 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
*/ */
'cache' => [ 'cache' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Cache Status | Cache Status
@ -52,7 +52,7 @@ return [
| Enable or disable cache | Enable or disable cache
| |
*/ */
'enabled' => false, 'enabled' => false,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -62,7 +62,7 @@ return [
| Time of expiration cache | Time of expiration cache
| |
*/ */
'minutes' => 30, 'minutes' => 30,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -82,7 +82,7 @@ return [
| |
| |
*/ */
'clean' => [ 'clean' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -102,14 +102,14 @@ return [
| delete : Clear Cache on delete Entry in repository | delete : Clear Cache on delete Entry in repository
| |
*/ */
'on' => [ 'on' => [
'create' => true, 'create' => true,
'update' => true, 'update' => true,
'delete' => true, 'delete' => true,
] ]
], ],
'params' => [ 'params' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Skip Cache Params | Skip Cache Params
@ -137,8 +137,8 @@ return [
| |
| 'except' =>['find'], | 'except' =>['find'],
*/ */
'allowed' => [ 'allowed' => [
'only' => null, 'only' => null,
'except' => null 'except' => null
] ]
], ],
@ -151,7 +151,7 @@ return [
| Settings of request parameters names that will be used by Criteria | Settings of request parameters names that will be used by Criteria
| |
*/ */
'criteria' => [ 'criteria' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Accepted Conditions | Accepted Conditions
@ -210,15 +210,15 @@ return [
| http://prettus.local/?search=lorem&searchJoin=or | http://prettus.local/?search=lorem&searchJoin=or
| |
*/ */
'params' => [ 'params' => [
'search' => 'search', 'search' => 'search',
'searchFields' => 'searchFields', 'searchFields' => 'searchFields',
'filter' => 'filter', 'filter' => 'filter',
'orderBy' => 'orderBy', 'orderBy' => 'orderBy',
'sortedBy' => 'sortedBy', 'sortedBy' => 'sortedBy',
'with' => 'with', 'with' => 'with',
'searchJoin' => 'searchJoin', 'searchJoin' => 'searchJoin',
'withCount' => 'withCount' 'withCount' => 'withCount'
] ]
], ],
/* /*
@ -227,20 +227,20 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
*/ */
'generator' => [ 'generator' => [
'basePath' => app()->path(), 'basePath' => app()->path(),
'rootNamespace' => 'App\\', 'rootNamespace' => 'App\\',
'stubsOverridePath' => app()->path(), 'stubsOverridePath' => app()->path(),
'paths' => [ 'paths' => [
'models' => 'Entities', 'models' => 'Entities',
'repositories' => 'Repositories', 'repositories' => 'Repositories',
'interfaces' => 'Repositories', 'interfaces' => 'Repositories',
'transformers' => 'Transformers', 'transformers' => 'Transformers',
'presenters' => 'Presenters', 'presenters' => 'Presenters',
'validators' => 'Validators', 'validators' => 'Validators',
'controllers' => 'Http/Controllers', 'controllers' => 'Http/Controllers',
'provider' => 'RepositoryServiceProvider', 'provider' => 'RepositoryServiceProvider',
'criteria' => 'Criteria' 'criteria' => 'Criteria'
] ]
] ]
]; ];

View File

@ -4,33 +4,30 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
class CreatePersonalAccessTokensTable extends Migration return new class extends Migration
{ {
/** /**
* Run the migrations. * Run the migrations.
*
* @return void
*/ */
public function up() public function up(): void
{ {
Schema::create('personal_access_tokens', function (Blueprint $table) { Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->bigIncrements('id'); $table->id();
$table->morphs('tokenable'); $table->morphs('tokenable');
$table->string('name'); $table->string('name');
$table->string('token', 64)->unique(); $table->string('token', 64)->unique();
$table->text('abilities')->nullable(); $table->text('abilities')->nullable();
$table->timestamp('last_used_at')->nullable(); $table->timestamp('last_used_at')->nullable();
$table->timestamp('expires_at')->nullable();
$table->timestamps(); $table->timestamps();
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
*
* @return void
*/ */
public function down() public function down(): void
{ {
Schema::dropIfExists('personal_access_tokens'); Schema::dropIfExists('personal_access_tokens');
} }
} };

View File

@ -168,7 +168,7 @@ return [
'call' => 'مكالمة', 'call' => 'مكالمة',
'meeting' => 'لقاء', 'meeting' => 'لقاء',
'lunch' => 'غداء', 'lunch' => 'غداء',
'file' => 'ملف', 'file-name' => 'ملف',
'quote' => 'اقتبس', 'quote' => 'اقتبس',
'create-quote' => 'إنشاء اقتباس', 'create-quote' => 'إنشاء اقتباس',
'type' => 'نوع', 'type' => 'نوع',
@ -176,6 +176,7 @@ return [
'schedule' => 'جدول', 'schedule' => 'جدول',
'from' => 'من عند', 'from' => 'من عند',
'to' => 'إلى', 'to' => 'إلى',
'mail-to' => 'إلى',
'location' => 'موقع', 'location' => 'موقع',
'participants' => 'مشاركون', 'participants' => 'مشاركون',
'participant-info' => 'ابدأ في كتابة الاسم', 'participant-info' => 'ابدأ في كتابة الاسم',

View File

@ -176,6 +176,7 @@ return [
'schedule' => 'Schedule', 'schedule' => 'Schedule',
'from' => 'From', 'from' => 'From',
'to' => 'To', 'to' => 'To',
'mail-to' => 'To',
'location' => 'Location', 'location' => 'Location',
'participants' => 'Participants', 'participants' => 'Participants',
'participant-info' => 'Start typing name', 'participant-info' => 'Start typing name',
@ -184,7 +185,7 @@ return [
'cc' => 'Cc', 'cc' => 'Cc',
'bcc' => 'Bcc', 'bcc' => 'Bcc',
'email-placeholder' => 'Press enter to add emails', 'email-placeholder' => 'Press enter to add emails',
'file' => 'File', 'file-name' => 'File',
'subject' => 'Subject', 'subject' => 'Subject',
'reply' => 'Reply', 'reply' => 'Reply',
'send' => 'Send', 'send' => 'Send',

View File

@ -0,0 +1,870 @@
<?php
return [
'dashboard' => [
'title' => 'Главная панель',
'cards' => 'Карточки',
'column' => 'Колонки',
'done' => 'Готово',
'activity' => 'Активность',
'activities' => 'События',
'top_leads' => 'Лучшие сделки',
'pipelines' => 'Маршруты',
'quotes' => 'Договоры',
'emails' => 'Кореспонденция',
'custom_card' => 'Пользовательская карта',
'customers' => 'Заказчики',
'top_customers' => 'Лучшие заказчики',
'leads_started' => 'В работе',
'products' => 'Продукты',
'top_products' => 'Лучшие продукты',
'leads_over_time' => 'Просроченные',
'no_record_found' => 'Запись не найдена',
'week' => 'Неделя ',
],
'layouts' => [
'app-version' => 'Версия : :version',
'dashboard' => 'Рабочий стол',
'leads' => 'Услуги',
'quotes' => 'Договоры',
'quote' => 'Доовор',
'mail' => [
'title' => 'Кореспонденция',
'compose' => 'Написать',
'inbox' => 'Входящие',
'draft' => 'Черновики',
'outbox' => 'Отправленные',
'sent' => 'Sent',
'trash' => 'Корзина',
'setting' => 'Настройки',
],
'activities' => 'События',
'contacts' => 'Контакты',
'persons' => 'Сотрудники организации Заявителя',
'person' => 'Сотрудник организации Заявителя',
'organizations' => 'Организации Заявители',
'organization' => 'Организация Заявитель',
'products' => 'Продукты',
'product' => 'Продукт',
'settings' => 'Настройки',
'user' => 'Пользователи',
'user-info' => 'Управляйте всеми своими пользователями и их разрешениями в CRM, что им разрешено делать.',
'groups' => 'Группы',
'groups-info' => 'Добавляйте, редактируйте или удаляйте группы из CRM',
'roles' => 'Роли',
'role' => 'Роль',
'roles-info' => 'Добавляйте, редактируйте или удаляйте роли из CRM',
'users' => 'Пользователи',
'users-info' => 'Добавляйте, редактируйте или удаляйте пользователей из CRM',
'lead' => 'Область деятельности',
'lead-info' => 'Управляйте всеми настройками, связанными с областью деятельности, в CRM',
'pipelines' => 'Услуги',
'pipelines-info' => 'Добавляйте, редактируйте или удаляйте услуги из CRM',
'sources' => 'Центральные органы системы',
'sources-info' => 'Добавляйте, редактируйте или удаляйте ЦОС из CRM',
'types' => 'Типы',
'types-info' => 'Добавляйте, редактируйте или удаляйте типы из CRM',
'automation' => 'Автоматизация',
'automation-info' => 'Управляйте всеми настройками, связанными с автоматизацией, в CRM',
'attributes' => 'Атрибуты',
'attribute' => 'Атрибут',
'attributes-info' => 'Добавляйте, редактируйте или удаляйте атрибуты из CRM',
'email-templates' => 'Шаблоны электронной почты',
'email' => 'Электронная почта',
'email-templates-info' => 'Добавляйте, редактируйте или удаляйте шаблоны электронной почты из CRM',
'workflows' => 'Рабочие процессы',
'workflows-info' => 'Добавляйте, редактируйте или удаляйте рабочие процессы из CRM',
'other-settings' => 'Другие настройки',
'other-settings-info' => 'Управляйте всеми дополнительными настройками в CRM',
// 'web-forms' => 'Внешние формы',
// 'web-forms-info' => 'Добавляйте, редактируйте или удаляйте внешние формы из CRM',
'tags' => 'Ярлыки',
'tags-info' => 'Добавляйте, редактируйте или удаляйте ярлыки из CRM',
'my-account' => 'Мой аккаунт',
'sign-out' => 'Выход',
'back' => 'Назад',
'name' => 'Наименование',
'configuration' => 'Конфигурация',
'howdy' => 'Привет!',
],
'contacts' => [
'organizations' => [
'title' => 'Организации Заявители',
'organization' => 'Организация Заявитель',
'create-title' => 'Добавить организацию',
'edit-title' => 'Редактировать организацию',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'create-success' => 'Организация успешно добавлена.',
'update-success' => 'Организация успешно обновлена.',
'delete-success' => 'Организация успешно удалена.',
'delete-failed' => 'Организацию не может быть удалена.',
],
'persons' => [
'title' => 'Сотрудник организации заявителя',
'person' => 'Сотрудник организации заявителя',
'create-title' => 'Добавить сотрудника',
'edit-title' => 'Редактировать сотрудника',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'create-success' => 'Сотрудник успешно добавлен.',
'update-success' => 'Сотрудник успешно обновлен.',
'delete-success' => 'Сотрудник спешно удален.',
'delete-failed' => 'Сотрудник не может быть удален.',
],
],
'leads' => [
'title' => 'Услуги',
'lead' => 'Услуга',
'create-title' => 'Добавить услугу',
'edit-title' => 'Редактировать задачу',
'save-btn-title' => 'Сохранить',
'save' => 'Сохранить',
'upload' => 'Загрузить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'no-lead' => 'Нет задач',
'lead-source-name' => 'Источник задачи',
'details' => 'Общая информация',
'rotten-info' => 'Задача была просрочена на день (дня, дней)',
'stage' => 'Этап',
'new' => 'Новая',
'won-lost' => 'Выполнено/Отклонено',
'won' => 'Выполнено',
'lost' => 'Отклонено',
'change-stage' => 'Поменять этап',
'lost-reason' => 'Причина отклонения',
'won-value' => 'Прибыль',
'created-date:' => 'Дата создания:',
'closed-date:' => 'Дата завершения:',
'closed-date' => 'Дата завершения',
'expected-close-date:' => 'Ожидаемая дата закрытия:',
'contact-person' => 'Заявитель',
'add-tag' => 'Добавить ярлык',
'search-tag' => 'Найти ярлык',
'tag-name' => 'Наименование',
'name' => 'ФИО ответственного лица от Заявителя',
'color' => 'Цвет',
'email' => 'Электронная почта',
'contact-numbers' => 'Номер телефона',
'organization' => 'Организация',
'address' => 'Адрес',
'products' => 'Продукт',
'item' => 'Наименование продукта',
'price' => 'Цена',
'quantity' => 'Колличество',
'amount' => 'Сумма',
'create-success' => 'Задача успешно добавлена.',
'update-success' => 'Задача успешно обновлена.',
'delete-success' => 'Задача успешно удалена.',
'delete-failed' => 'Задача не может быть удалена.',
'note' => 'Заметки',
'activity' => 'События',
'title-control' => 'Заголовок',
'call' => 'Звонок',
'meeting' => 'Встреча',
'lunch' => 'Задача',
'file' => 'Файл',
'quote' => 'Договоры',
'create-quote' => 'Заключить договор',
'type' => 'Мероприятие',
'description' => 'Описание',
'schedule' => 'Расписание',
'from' => 'от',
'to' => 'до',
'mail-to' => 'Кому',
'location' => 'Место встречи',
'participants' => 'Участники',
'participant-info' => 'Начните писать имя',
'users' => 'Пользователи',
'persons' => 'Участники',
'cc' => 'Копия',
'bcc' => 'Скрытая копия',
'email-placeholder' => 'Нажмите Enter для добавления адреса',
'subject' => 'Тема',
'reply' => 'Текст',
'send' => 'Отправить',
'all' => 'Все',
'notes' => 'Заметки',
'select-type' => 'Выбрать тип',
'calls' => 'Звонки',
'meetings' => 'Встречи',
'lunches' => 'Задачи',
'emails' => 'Письма',
'files' => 'Файлы',
'file-name' => 'Наименование',
'sales-owner' => 'Ответственное лицо',
'person' => 'Сотрудник Заявителя',
'expired-at' => 'Крайний срок',
'sub-total' => 'Промежуточный итог',
'discount' => 'Скидка',
'tax' => 'Налог',
'adjustment' => 'Корректировка',
'grand-total' => 'Итого',
'actions' => 'Actions',
'planned' => 'Запланировано',
'done' => 'Выполнено',
'edit' => 'Изменить',
'view' => 'Просмотр',
'unlink' => 'Открепить',
'mark-as-done' => 'Отметить как выполненное',
'remove' => 'Удалить',
'export-to-pdf' => 'Экспорт в PDF',
'empty-planned-activities' => 'У вас нет запланированных событий.',
'empty-done-activities' => 'У вас нет выполненных событий.',
'note-added' => 'Заметка добавлена',
'call-scheduled' => 'Звонок запланирован на :from - :to',
'meeting-scheduled' => 'Встреча запланирована на :from - :to',
'lunch-scheduled' => 'Задача запланирован на :from - :to',
'file-added' => 'Файл добавлен',
'quote-destroy-success' => 'Договор успешно удален.',
'tag-create-success' => 'Ярлык успешно добавлен.',
'tag-destroy-success' => 'Ярлык успешно удален.',
],
'quotes' => [
'title' => 'Договоры',
'quote' => 'Договор',
'create-title' => 'Создать договор',
'edit-title' => 'Редактировать договор',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'quote-information' => 'Информация о договоре',
'lead' => 'Lead',
'address-information' => 'Адресс',
'quote-items' => 'Элементы договора',
'name' => 'Наименование',
'quantity' => 'Колличество',
'price' => 'Цена',
'amount' => 'Сумма',
'discount' => 'Скидка',
'tax' => 'Налог',
'total' => 'Итог',
'sub-total' => 'Подытог',
'adjustment' => 'Корректировка',
'grand-total' => 'Итог',
'create-success' => 'Договор успешно добавлен.',
'update-success' => 'Договор успешно обновлен.',
'delete-success' => 'Договор успешно удален.',
'delete-failed' => 'Договор не может быть удален.',
'quote-id' => 'Договор № п.п.',
'quote-date' => 'Дата заключения',
'valid-until' => 'Срок',
'sales-person' => 'Ответственный',
'bill-to' => 'Bill To',
'ship-to' => 'Ship To',
'sku' => 'Артикул',
'product-name' => 'Наименование продукта',
'search' => 'Поиск..'
],
'mail' => [
'title' => 'Кореспонденция - :type',
'compose' => 'Написать',
'inbox' => 'Входящие',
'draft' => 'Черновики',
'outbox' => 'Отправленные',
'sent' => 'Sent',
'trash' => 'Корзина',
'setting' => 'Настройки',
'total' => 'Всего',
'link-mail' => 'Прикрепить письмо',
'link-contact' => 'Ссылка на контакт',
'linked-contact' => 'Прикрепленный контакт',
'add-to-existing-contact' => 'Добавить к существующему контакту',
'create-new-contact' => 'Добавить новый контакт',
'search-contact' => 'Найти контакт',
'link-lead' => 'Прекрепить услугу',
'linked-lead' => 'Прикрепленная услуга',
'search-lead' => 'Найти услугу',
'link-to-existing-lead' => 'Прикрепить существвующую услугу',
'add-new-lead' => 'Добавить новую услугу',
'send' => 'Отправить',
'back' => 'Назад',
'discard' => 'Discard',
'from-' => 'From - ',
'to-' => 'Кому - ',
'cc-' => 'Копия - ',
'bcc-' => 'Скрытая копия - ',
'reply' => 'Ответить',
'reply-all' => 'Ответить всем',
'forward' => 'Вперед',
'delete' => 'Удалить',
'destroy-success' => 'выбранные еписьма успешно удалены.',
'save-to-draft' => 'Сохранить в Черновик',
'create-success' => 'Письмо успешно отправлено.',
'update-success' => 'Письмо успешно обновлено.',
'saved-to-draft' => 'Письмо созранено в черновик.',
'delete-success' => 'Письмо успешно удалено.',
'delete-failed' => 'Письмо не может быть удалено.',
'mass-update-success' => 'Письма успешно орбновлены.',
'forget-password' => [
'subject' => 'Сброс пароля пользователя',
'dear' => 'Уважаемый(ая) :name',
'reset-password' => 'Сброс пароля',
'info' => 'Вы получили это письмо, потому что мы получили запрос на сброс пароля для вашей учетной записи.',
'final-summary' => 'Если вы не запрашивали сброс пароля, никаких дальнейших действий не требуется.',
'thanks' => 'Спасибо!'
],
'user' => [
'create-subject' => 'Вы добавлены в качестве участника.',
'create-body' => 'Поздравляю! Теперь вы член нашей команды.',
],
],
'activities' => [
'title' => 'События',
'title-control' => 'Заголовок',
'edit-title' => 'Редактирование события',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'type' => 'Вид события',
'note' => 'Заметка',
'call' => 'Звонок',
'meeting' => 'Встреча',
'lunch' => 'Задача',
'file' => 'Файл',
'description' => 'Описание',
'schedule' => 'Расписание',
'from' => 'С',
'to' => 'До',
'location' => 'Место встречи',
'participants' => 'Участники',
'lead' => 'Услуга',
'duration-overlapping' => 'В это время у участников состоится еще одна встреча. Вы хотите продолжить?',
'file-upload-success' => 'Файл(ы) успешно загружены.',
'file-upload-error' => 'Файл(ы) не могут быть загружены.',
'create-success' => ':type успешно добавлен.',
'update-success' => ':type успешно обновлен.',
'mass-update-success' => 'Событие успешно обновлено.',
'mass-update-failed' => 'Событие не могут быть обновлены.',
'destroy-success' => ':type успешно удален.',
'delete-failed' => ':type не может быть удален.',
'typing-placeholder' => 'Начните вводить ФИО',
],
'products' => [
'title' => 'Продукты',
'product' => 'Продукт',
'create-title' => 'Добавить продукт',
'edit-title' => 'Редактировать продукт',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'create-success' => 'Продукт успешно добавлен.',
'update-success' => 'Продукт успешно обновлен.',
'delete-success' => 'Продукт успешно удален.',
'delete-failed' => 'ТПродукт не может быть удален.',
],
'sessions' => [
'login' => [
'title' => 'Имя пользователя',
'welcome' => 'Добро пожаловать',
'email' => 'Адрес электронной почты',
'password' => 'Пароль',
'login' => 'Войти',
'forgot-password' => 'Забыли пароль?',
'login-error' => 'Пожалуйста, проверьте свои учетные данные и повторите попытку.',
'activate-warning' => 'Ваша учетная запись еще не активирована, обратитесь к администратору.',
],
'forgot-password' => [
'title' => 'Забыли пароль ?',
'email' => 'Адрес электронной почты',
'send-reset-password-email' => 'Отправить электронное письмо для сброса пароля',
'reset-link-sent' => 'Мы отправили вам ссылку для сброса пароля на электронную почту.',
'email-not-exist' => 'Мы не можем найти пользователя с этим адресом электронной почты.',
'back-to-login' => 'Вернуться на страницу авторизации'
],
'reset-password' => [
'title' => 'Сброс пароля',
'email' => 'Адрес электронной почты',
'password' => 'Пароль',
'confirm-password' => 'Подтвердите пароль',
'reset-password' => 'Сброс пароля'
]
],
'settings' => [
'title' => 'Настройки',
'groups' => [
'title' => 'Группы',
'group' => 'Группа',
'edit-title' => 'Редактировать группу',
'description' => 'Описание',
'create-title' => 'Добавить группу',
'save-btn-title' => 'Сохранить',
'update-btn-title' => 'Редактировать группу',
'create-success' => 'Группа успешно добавлена.',
'update-success' => 'Группа успешно обновлена.',
'destroy-success' => 'Группа успешно удалена.',
'delete-failed' => 'Группа не может быть удалена.',
'user-define-error' => 'Невозможно удалить системную группу.',
],
'roles' => [
'title' => 'Роли',
'role' => 'Роль',
'edit-title' => 'Редактировать роль',
'description' => 'Описание',
'create-title' => 'Добавить роль',
'permission_type' => 'Уровни доступа',
'custom' => 'Пользовательский',
'all' => 'Все',
'save-btn-title' => 'Сохранить',
'update-btn-title' => 'Редактировать роль',
'create-success' => 'Роль успешно добавлена.',
'update-success' => 'Роль успешно обновлена.',
'delete-success' => 'Роль успешно удалена.',
'delete-failed' => 'Роль не может быть удалена.',
'user-define-error' => 'Не могу удалить системную роль.',
'last-delete-error' => 'Требуется хотя бы одна роль.',
'current-role-delete-error' => 'Невозможно удалить роль, назначенную текущему пользователю.',
'being-used' => 'Роль невозможно удалить, так как она используется администратором.',
],
'users' => [
'title' => 'Пользователи',
'create-title' => 'Добавить пользователя',
'edit-title' => 'Редактировать пользователя',
'general' => 'Основная информация',
'permission' => 'Права доступа',
'name' => 'Имя',
'email' => 'Адрес электронной почты',
'back' => 'Назад',
'password' => 'Пароль',
'groups' => 'Группы',
'role' => 'Роль',
'view-permission' => 'Просмотр прав доступа',
'global' => 'Глобальные',
'group' => 'Групповые',
'individual' => 'Индивидуальные',
'status' => 'Активированная/Заблокированная',
'save-btn-title' => 'Сохранить',
'confirm_password' => 'Подтвердить пароль',
'create-success' => 'Пользователь успешно добавлен.',
'update-success' => 'Пользователь успешно обновлен.',
'delete-success' => 'Пользователь успешно удален.',
'delete-failed' => 'Пользователь не может быть удален.',
'last-delete-error' => 'Требуется хотя бы один пользователь.',
'user-define-error' => 'Не могу удалить системного пользователя.',
'mass-update-success' => 'Пользователи успешно обновлены.',
'mass-update-failed' => 'Пользователи не могут быть обновлены.',
'mass-delete-success' => 'Пользователи успешно удалены.',
'mass-delete-failed' => 'Пользователи не могут быть удалены.',
],
'attributes' => [
'title' => 'Атрибуты',
'attribute' => 'Атрибут',
'create-title' => 'Добавить атрибут',
'edit-title' => 'Редактировать атрибут',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'code' => 'Код',
'name' => 'Наименование',
'type' => 'Тип данных',
'text' => 'Текст',
'textarea' => 'Текстовый блок',
'price' => 'Цена',
'boolean' => 'Булево',
'select' => 'Выберите',
'multiselect' => 'Множественный список',
'address' => 'Адрес',
'phone' => 'Телефон',
'datetime' => 'Дата и время',
'date' => 'Дата',
'image' => 'Картинка',
'file' => 'Файл',
'entity-type' => 'Сущность',
'lookup' => 'С помощью поиска',
'entity_type' => 'Сущность',
'lookup-type' => 'Тип выбора',
'checkbox' => 'Радиокнопки',
'is_required' => 'Проверка заполнения',
'is_unique' => 'Проверка на уникальность',
'yes' => 'Да',
'no' => 'Нет',
'input_validation' => 'Тип проверки',
'number' => 'Число',
'decimal' => 'Число с точкой',
'email' => 'Электронная почта',
'url' => 'Ссылка',
'options-type' => 'Тип опции',
'options' => 'Опции',
'sort-order' => 'Порядок сортировки',
'add-option-btn-title' => 'Добавить опцию',
'create-success' => 'Атрибут успешно добавлен.',
'update-success' => 'Атрибут успешно обновлен.',
'update-error' => 'Невозможно обновить атрибут.',
'delete-success' => 'Атрибут успешно удален.',
'delete-failed' => 'Атрибут не может быть удален.',
'user-define-error' => 'Невозможно удалить системный атрибут.',
'mass-delete-failed' => 'Атрибуты не могут быть удалены.',
],
'pipelines' => [
'title' => 'Услуги',
'organization' => 'Услуга',
'create-title' => 'Добавить услугу',
'edit-title' => 'Редактировать услугу',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'name' => 'Наименование',
'rotting-days' => 'Длительность',
'is-default' => 'По умолчанию',
'probability' => 'Выполнение (%)',
'add-stage-btn-title' => 'Добавить этап',
'new-stage' => '1. Заявка',
'won-stage' => 'Выполненные',
'lost-stage' => 'Невыполненные',
'duplicate-name' => 'Поле «Наименование» не может повторяться.',
'create-success' => 'Услуга успешно добавлена.',
'update-success' => 'Услуга успешно обновлена.',
'delete-success' => 'Услуга успешно удален.',
'delete-failed' => 'Услуга не может быть удалена.',
'default-delete-error' => 'Услуга по умолчанию не может быть удален.',
],
'sources' => [
'title' => 'Источники',
'organization' => 'Источник',
'create-title' => 'Добавить источник',
'edit-title' => 'Редактировать источник',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'create-success' => 'Источник успешно добавлен.',
'name-exists' => 'Имя источника уже существует.',
'update-success' => 'Источник успешно обновлен.',
'delete-success' => 'Источник успешно удален.',
'delete-failed' => 'Источник не может быть удален.',
],
'types' => [
'title' => 'Типы',
'organization' => 'Тип',
'create-title' => 'Создать тип',
'edit-title' => 'Редактировать тип',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'create-success' => 'Тип успешно добавлен.',
'name-exists' => 'Тип уже существует.',
'update-success' => 'Тип успешно обновлен.',
'delete-success' => 'Тип успешно удален.',
'delete-failed' => 'Тип не может быть удален.',
],
'email-templates' => [
'title' => 'Шаблоны электронных писем',
'create-title' => 'Добавить шаблон',
'edit-title' => 'Редактировать шаблон',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'name' => 'Наименование',
'subject' => 'Тема',
'content' => 'Текст',
'placeholders' => 'Держатели',
'create-success' => 'Шаблон электронной почты успешно добавлен.',
'update-success' => 'Шаблон электронной почты успешно обновлен.',
'delete-success' => 'Шаблон электронной почты успешно удален.',
'delete-failed' => 'Шаблон электронной почты не может быть удален.',
],
'workflows' => [
'title' => 'Рабочие процессы',
'create-title' => 'Добавить процесс',
'edit-title' => 'Редактировать процесс',
'save-btn-title' => 'Сохранить',
'back' => 'Назад',
'cancel' => 'Закрыть',
'information' => 'Информация',
'name' => 'Наименование',
'description' => 'Описание',
'event' => 'Событие',
'events' => 'События',
'created' => 'Добавлено',
'updated' => 'Обновлено',
'deleted' => 'Удалено',
'event-info' => 'Событие автоматически запускается для проверки условий и выполнения соответствующего заранее определенного набора действий.',
'conditions' => 'Условия',
'condition-info' => 'Условия это набор правил, которые проверяют конкретные сценарии и запускаются в определенных случаях.',
'condition-type' => 'Тип условия',
'all-conditions-true' => 'Все условия истинно',
'any-condition-true' => 'Любое условие истинно',
'add-condition' => 'Добавить условие',
'choose-condition-to-add' => 'Выберите условие для добавления',
'is-equal-to' => 'Равно',
'is-not-equal-to' => 'Не равно',
'equals-or-greater-than' => 'Равно или больше, чем',
'equals-or-less-than' => 'Равно или меньше, чем',
'greater-than' => 'Больше чем',
'less-than' => 'Меньчше чем',
'contain' => 'Содержать',
'contains' => 'Содержит',
'does-not-contain' => 'Does not contain',
'actions' => 'Не содержит',
'action-info' => 'Действие не только снижает рабочую нагрузку, но и значительно упрощает автоматизацию CRM.',
'choose-action-to-add' => 'Выберите действие для добавления',
'update-lead' => 'Редактирование услуги',
'update-person' => 'Редактирование участника',
'send-email-to-person' => 'Отправить письмо участнику',
'send-email-to-sales-owner' => 'Отправить письмо эксперту',
'send-email-to-participants' => 'Отправить письмо участникам',
'add-tag' => 'AДобавить ярлык',
'add-note-as-activity' => 'Добавить заметку в события',
'choose-attribute' => 'Выбрать атрибут',
'choose-option' => 'Выбрать опцию',
'update-person' => 'Редактировать участника',
'update-related-leads' => 'Убрать относящуюся услугу',
'update-quote' => 'Обновить договор',
'add-action' => 'Добавить событие',
'create-success' => 'Рабочий процесс успешно добавлен.',
'update-success' => 'Рабочий процесс успешно обновлен.',
'delete-success' => 'Рабочий процесс успешно удален.',
'delete-failed' => 'Рабочий процесс не может быть удален.',
],
'tags' => [
'title' => 'Tags',
'create-title' => 'Create Tag',
'edit-title' => 'Edit Tag',
'cancel' => 'Cancel',
'save-btn-title' => 'Save as Tag',
'name' => 'Name',
'color' => 'Color',
'create-success' => 'Tag created successfully.',
'update-success' => 'Tag updated successfully.',
'delete-success' => 'Tag deleted successfully.',
'delete-failed' => 'Tag can not be deleted.',
],
'web-forms' => [
'create-success' => 'Web form created successfully',
'update-success' => 'Web form Updated successfully',
'delete-success' => 'Web form deleted successfully'
],
],
'configuration' => [
'title' => 'Конфигураци',
'save-btn-title' => 'Сохранить',
'general' => 'Главная',
'locale-settings' => 'Настройка языка',
'locale' => 'Язык',
'timezone' => 'Временная зона',
'date-time-formats' => 'Формат даты и времени',
'save-message' => 'Конфигурация успешно обновлена!',
"emails" => [
'email' => 'адрес электронной почты',
'notification_label' => 'Уведомления',
'new_lead' => 'Новая заявка',
]
],
'datagrid' => [
'id' => '№',
'name' => 'Наименование',
'code' => 'Уникальный эндитификатор',
'sku' => 'Артикул',
'type' => 'Тип',
'price' => 'Цена',
'email' => 'Электронная почта',
'attachments' => 'Вложения',
'from' => 'От',
'lead' => 'Услуга',
'title' => 'Заголовок',
'subject' => 'Тема',
'tags' => 'Ярлык',
'emails' => 'Электронная почта',
'stage' => 'Этап',
'status' => 'Статус',
'active' => 'Активный',
'inactive' => 'Неактивный',
'address' => 'Адрес',
'quantity' => 'Количество',
'lead_value' => 'Стоимосмть услуги',
'comment' => 'Комментарий',
'is_done' => 'Ответка о выполнении',
'all' => 'Все',
'user' => 'Пользователь',
'sales-person' => 'Эксперт',
'expired_quotes' => 'Просроченные договора',
'person' => 'Участник',
'sub-total' => 'Подытог',
'discount' => 'Скидка',
'tax' => 'Налог',
'adjustment' => 'Корректировка',
'grand-total' => 'Итог',
'persons_count' => 'Количество участников',
'assigned_to' => 'Назначено',
'created_by' => 'Создано',
'entity_type' => 'Сущность',
'created_at' => 'Создано',
'expected_close_date' => 'Ожидаемая дата завершения',
'schedule_from' => 'C',
'schedule_to' => 'До',
'description' => 'Описание',
'update_stage' => 'Стадия обновления',
'contact_person' => 'Контактное лицо',
'contact_numbers' => 'Контактный номер',
'permission_type' => 'Тип доступа',
'organization_name' => 'Наименоывание организации',
'is-default' => 'По умолчанию',
'rotten-days' => 'Продолжительность',
'rotten_lead' => 'Просроченные услуги',
'yes' => 'Да',
'no' => 'Нет',
'move-to-inbox' => 'Отправить во входящие',
'update-success' => ':resource успешно обновлено.',
'destroy-success' => ':resource успешно удалено.',
'destroy-failed' => ':resource не может быть удалено.',
'attribute_type' => 'Тип атрибута',
'filters' => [
'yesterday' => 'Вчера',
'today' => 'Сегодня',
'tomorrow' => 'Завтра',
'this-week' => 'Эта неделя',
'this-month' => 'Этот месяц',
'custom' => 'Другой период',
]
],
'response' => [
'create-success' => ':name created successfully.',
'update-success' => ':name updated successfully.',
'destroy-success' => ':name deleted successfully.',
'destroy-failed' => ':name can not be deleted.',
],
'acl' => [
'leads' => 'Leads',
'lead' => 'Lead',
'quotes' => 'Quotes',
'mail' => 'Mail',
'inbox' => 'Inbox',
'draft' => 'Draft',
'outbox' => 'Outbox',
'sent' => 'Sent',
'trash' => 'Trash',
'activities' => 'Activities',
'contacts' => 'Contacts',
'persons' => 'Persons',
'organizations' => 'Organizations',
'products' => 'Products',
'settings' => 'Settings',
'groups' => 'Groups',
'roles' => 'Roles',
'users' => 'Users',
'user' => 'User',
'automation' => 'Automation',
'attributes' => 'Attributes',
'pipelines' => 'Pipelines',
'sources' => 'Sources',
'types' => 'Types',
'email-templates' => 'Email Templates',
'workflows' => 'Workflows',
'other-settings' => 'Other Settings',
'tags' => 'Tags',
'configuration' => 'Configuration',
'create' => 'Create',
'edit' => 'Edit',
'view' => 'View',
'print' => 'Print',
'delete' => 'Delete',
'export' => 'Export',
'mass-delete' => 'Mass Delete',
],
'common' => [
'back' => 'Назад',
'address' => 'Адресс',
'country' => 'Страна',
'add_more' => 'Добавить',
'select-country' => 'Пожалуйста выберите страну',
'select-users' => 'Выберите пользователя',
'select_rotten_leads' => 'Выберите просроченные услуги',
'select-organization' => 'выберите организацию',
'state' => 'Состояние',
'select-state' => 'Выберите состояние',
'city' => 'Город',
'postcode' => 'Индекс',
'address-validation' => 'Поле «Адрес» обязательно для заполнения',
'work' => 'Рабочий',
'home' => 'Личный',
'no-result-found' => 'Записи с таким наименованием не найдены.',
'not-available' => 'Не доступно',
'select-options' => 'Выберите параметр',
'yes' => 'Да',
'no' => 'Нет',
'delete' => 'Удалить',
'save' => 'Сохранить',
'locale' => 'Locale',
'en' => 'Английский',
'tr' => 'Турецкий',
'ar' => 'Арабский',
'ru' => 'Русский',
'add-as' => 'Add as new',
'no-records-found' => 'Записи не найдены',
'start-typing' => 'Начните писать, чтобы найти записи',
'select-type' => 'Выберите тип',
'select-call' => 'Звонок',
'select-meeting' => 'Встреча',
'select-lunch' => 'Задача',
'duplicate-value' => 'Значение не может повторяться',
'unauthenticated' => 'Неавторизован',
'resource-not-found' => 'Ресурс не найден',
'forbidden-error' => '403 forbidden Error',
'internal-server-error' => '500 Internal Server Error',
'something-went-wrong' => 'Что-то пошло не так, повторите позже.',
'delete-confirm' => 'Вы действительно хотите выполнить это действие?',
'system_attribute' => 'Системный',
'custom_attribute' => 'Пользовательский',
],
'user' => [
'account' => [
'name' => 'Имя',
'email' => 'Андрес Электронной почты',
'password' => 'Новый пароль',
'my_account' => 'My account',
'update_details' => 'Update Details',
'current_password' => 'Текущий пароль',
'confirm_password' => 'Подтвердите пароль',
'password-match' => 'Текущий пароль не соответствует.',
'account-save' => 'Изменения аккаунта успешно сохранены.',
'permission-denied' => 'Доступ запрещен',
'remove-image' => 'Удалить изображение',
'upload_image_pix' => 'Загрузить изображение профиля (100px x 100px)',
'upload_image_format' => 'PNG or JPG',
'image_upload_message' => 'Разрешены только изображения (.jpeg, .jpg, .png, ..).'
]
],
'emails' => [
'common' => [
'dear' => 'Уважаемый (ая) :name',
'cheers' => 'Cheers,</br>Team :app_name'
],
],
'errors' => [
'401' => 'Вы не авторизованы для просмотра этой страницы'
]
];
?>

View File

@ -167,7 +167,7 @@ return [
'call' => 'Arama Yap', 'call' => 'Arama Yap',
'meeting' => 'Toplantı', 'meeting' => 'Toplantı',
'lunch' => 'Öğle Yemeği', 'lunch' => 'Öğle Yemeği',
'file' => 'Dosya', 'file-name' => 'Dosya',
'quote' => 'Teklif', 'quote' => 'Teklif',
'create-quote' => 'Teklif Oluştur', 'create-quote' => 'Teklif Oluştur',
'type' => 'Tip', 'type' => 'Tip',
@ -175,6 +175,7 @@ return [
'schedule' => 'Takvim', 'schedule' => 'Takvim',
'from' => 'İtibaren', 'from' => 'İtibaren',
'to' => 'İle', 'to' => 'İle',
'mail-to' => 'İle',
'location' => 'Lokasyon', 'location' => 'Lokasyon',
'participants' => 'Katılımcılar', 'participants' => 'Katılımcılar',
'participant-info' => 'Adı yazmaya başla', 'participant-info' => 'Adı yazmaya başla',

View File

@ -252,11 +252,11 @@
<div class="form-group email-control-group" <div class="form-group email-control-group"
:class="[errors.has('email-form.reply_to[]') ? 'has-error' : '']"> :class="[errors.has('email-form.reply_to[]') ? 'has-error' : '']">
<label for="to" class="required">{{ __('admin::app.leads.to') }}</label> <label for="to" class="required">{{ __('admin::app.leads.mail-to') }}</label>
<email-tags-component <email-tags-component
control-name="reply_to[]" control-name="reply_to[]"
control-label="{{ __('admin::app.leads.to') }}" control-label="{{ __('admin::app.leads.mail-to') }}"
:validations="'required'" :validations="'required'"
></email-tags-component> ></email-tags-component>
@ -370,7 +370,7 @@
@csrf() @csrf()
<div class="form-group"> <div class="form-group">
<label for="name">{{ __('admin::app.leads.name') }}</label> <label for="name">{{ __('admin::app.leads.file-name') }}</label>
<input type="text" class="control" id="name" name="name"> <input type="text" class="control" id="name" name="name">
</div> </div>

View File

@ -76,11 +76,11 @@
<div class="form-group email-control-group" <div class="form-group email-control-group"
:class="[errors.has('reply_to[]') ? 'has-error' : '']"> :class="[errors.has('reply_to[]') ? 'has-error' : '']">
<label for="to" class="required">{{ __('admin::app.leads.to') }}</label> <label for="to" class="required">{{ __('admin::app.leads.mail-to') }}</label>
<email-tags-component <email-tags-component
control-name="reply_to[]" control-name="reply_to[]"
control-label="{{ __('admin::app.leads.to') }}" control-label="{{ __('admin::app.leads.mail-to') }}"
:validations="'required'" :validations="'required'"
:data='@json(isset($email) ? $email->reply_to : [])' :data='@json(isset($email) ? $email->reply_to : [])'
></email-tags-component> ></email-tags-component>

View File

@ -125,7 +125,7 @@ class Install extends Command
$timezone = $this->anticipate('Please enter the default timezone', $TimeZones, date_default_timezone_get()); $timezone = $this->anticipate('Please enter the default timezone', $TimeZones, date_default_timezone_get());
$this->envUpdate('APP_TIMEZONE=', $timezone); $this->envUpdate('APP_TIMEZONE=', $timezone);
$currency = $this->choice('Please enter the default currency', ['USD', 'EUR'], 'USD'); $currency = $this->choice('Please enter the default currency', ['USD', 'EUR','RUB'], 'USD');
$this->envUpdate('APP_CURRENCY=', $currency); $this->envUpdate('APP_CURRENCY=', $currency);
$this->addDatabaseDetails(); $this->addDatabaseDetails();

View File

@ -0,0 +1,88 @@
<?php
return [
'errors' => [
'no-records' => 'No records found!',
'something-went-wrong' => 'Something went wrong!',
],
'datagrid' => [
'title' => 'Таблица',
'actions' => 'Действия',
'edit' => 'Редактировать',
'view' => 'Простмотр',
'delete' => 'Удалить',
'print' => 'Печать',
'id' => 'Столбцы индекса имеют значение только больше нуля',
'cancel' => 'Закрыть',
'download' => 'Скачать',
'export' => 'Экспорт',
'select-format' => 'Выбрать формат',
'massaction' => [
'select_action' => 'Выберите действие',
'mass-delete-confirm' => 'Вы действительно хотите удалить это :resource?',
'mass-update-status' => 'Вы действительно хотите обновить статус :resource?',
'delete' => 'Вы действительно хотите выполнить это действие?',
'edit' => 'Вы действительно хотите отредактировать это :resource?',
],
'zero-index' => 'Столбцы индекса могут иметь только значения больше нуля.',
'no-records' => 'Записей не найдено',
'filter-fields-missing' => 'Некоторые из обязательных полей имеют пустые значения. Пожалуйста, проверьте поле и заполните значение .',
'click_on_action' => 'Вы действительно хотите выполнить это действие?',
'search' => 'Поиск...',
'column' => 'Select Column',
'condition' => 'Select Condition',
'contains' => 'Contains',
'ncontains' => 'Does not contains',
'equals' => 'Is Equals to',
'nequals' => 'Is Not equals to',
'greater' => 'Greater than',
'less' => 'Less than',
'greatere' => 'Greater than equals to',
'lesse' => 'Less than equals to',
'value' => 'Select Value',
'true' => 'True / Active',
'update-status' => 'Update Status',
'false' => 'False / Inactive',
'between' => 'Is between',
'apply' => 'Apply',
'items-per-page' => 'Элементов на странице',
'value-here' => 'Value here',
'numeric-value-here' => 'Numeric Value here',
'submit' => 'Подтвердить',
"mandatory_mass_action" => "Please select an action to perform.",
'multiple_sort_keys' => 'Fatal Error! Multiple Sort keys Found, Please Resolve the URL Manually',
'multiple_search_keys' => 'Multiple Search keys Found, Please Resolve the URL Manually',
'is-done' => 'Выполнить',
'filter' => [
'remove_all' => 'Очистить',
'title' => 'Фильтр',
'apply_title' => 'Применить фильтр',
'custom_filter' => 'Пользовательский фильтр',
'done' => 'Готово',
'to' => 'от',
'date_range' => 'Разница дат',
'start_date' => 'Дата начала',
'end_date' => 'Дата окончание',
'today' => 'Сегодня',
'yesterday' => 'Вчера',
'this_month' => 'Этот месяц',
'this_year' => 'Этот год',
'last_month' => 'Прошлый месяц',
'apply' => 'Приянять',
'cancel' => 'Закрыть',
'perPage' => 'На страницу',
'is_done' => 'Выполнено',
'created_by_id' => 'Создано Id',
'schedule_from' => 'Расписание с',
'schedule_to' => 'Расписание до',
'created_at' => 'Создан от',
'scheduled' => 'Запланированное',
'duration' => 'Продолжительность',
],
],
'add-attachment' => 'Add Attachment',
];

View File

@ -0,0 +1,48 @@
<?php
return [
'title' => 'Web Forms',
'title-info' => 'Add, edit or delete web forms from CRM',
'create-title' => 'Create Web Form',
'edit-title' => 'Edit Web Form',
'save-btn-title' => 'Save as Web Form',
'back' => 'Back',
'cancel' => 'Cancel',
'preview' => 'Preview',
'embed' => 'Embed',
'public-url' => 'Public Url',
'code-snippet' => 'Code Snippet',
'copy' => 'Copy',
'title-control' => 'Title',
'description' => 'Description',
'submit-button-label' => 'Submit Button Label',
'submit-success-action' => 'Submit Success Action',
'redirect-to-url' => 'Redirect to a url',
'display-custom-message' => 'Display custom message',
'enter-url-placeholder' => 'Enter url to redirect',
'enter-message-placeholder' => 'Enter message to display',
'customize-web-form' => 'Customize Web Form',
'customize-web-form-info' => 'Customize your web form with element colors of your choosing.',
'background-color' => 'Background Color',
'form-background-color' => 'Form Background Color',
'form-title-color' => 'Form Title Color',
'form-submit-button-color' => 'Form Submit Button Color',
'attribute-label-color' => 'Attribute Label Color',
'attributes' => 'Attributes',
'add-attribute' => 'Add Attribute',
'attributes-info' => 'Add custom attributes to the form.',
'persons' => 'Persons',
'leads' => 'Leads',
'create-lead' => 'Create new lead with contact',
'required' => 'Required',
'placeholder-value' => 'Enter placeholder value',
'choose-value' => 'Choose Value',
'select-file' => 'Select File',
'select-image' => 'Select Image',
'enter-value' => 'Enter Value',
'create-success' => 'Web Form created successfully.',
'update-success' => 'Web Form updated successfully.',
'delete-success' => 'Web Form deleted successfully.',
'delete-failed' => 'Web Form can not be deleted.',
'submit_button_label' => 'Submit Button Label',
];

View File

@ -1,53 +1,53 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title')</title> <title>@yield('title')</title>
<!-- Styles --> <!-- Styles -->
<style> <style>
html, body { html, body {
background-color: #fff; background-color: #fff;
color: #636b6f; color: #636b6f;
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-weight: 100; font-weight: 100;
height: 100vh; height: 100vh;
margin: 0; margin: 0;
} }
.full-height { .full-height {
height: 100vh; height: 100vh;
} }
.flex-center { .flex-center {
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.position-ref { .position-ref {
position: relative; position: relative;
} }
.content { .content {
text-align: center; text-align: center;
} }
.title { .title {
font-size: 36px; font-size: 36px;
padding: 20px; padding: 20px;
} }
</style> </style>
</head> </head>
<body> <body>
<div class="flex-center position-ref full-height"> <div class="flex-center position-ref full-height">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
@yield('message') @yield('message')
</div>
</div>
</div> </div>
</div> </body>
</div>
</body>
</html> </html>

File diff suppressed because one or more lines are too long

View File

@ -5,8 +5,7 @@
@if ($loop->last) @if ($loop->last)
@if ($breadcrumb->url) @if ($breadcrumb->url)
<li class="is-active"><a href="{{ $breadcrumb->url }}" <li class="is-active"><a href="{{ $breadcrumb->url }}" aria-current="page">{{ $breadcrumb->title }}</a></li>
aria-current="page">{{ $breadcrumb->title }}</a></li>
@else @else
<li class="is-active"><a aria-current="page">{{ $breadcrumb->title }}</a></li> <li class="is-active"><a aria-current="page">{{ $breadcrumb->title }}</a></li>
@endif @endif

View File

@ -3,18 +3,18 @@
use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Request;
$json = [ $json = [
'@context' => 'https://schema.org', '@context' => 'https://schema.org',
'@type' => 'BreadcrumbList', '@type' => 'BreadcrumbList',
'itemListElement' => [], 'itemListElement' => [],
]; ];
foreach ($breadcrumbs as $i => $breadcrumb) { foreach ($breadcrumbs as $i => $breadcrumb) {
$json['itemListElement'][] = [ $json['itemListElement'][] = [
'@type' => 'ListItem', '@type' => 'ListItem',
'position' => $i + 1, 'position' => $i + 1,
'item' => [ 'item' => [
'@id' => $breadcrumb->url ?: Request::fullUrl(), '@id' => $breadcrumb->url ?: Request::fullUrl(),
'name' => $breadcrumb->title, 'name' => $breadcrumb->title,
'image' => $breadcrumb->image ?? null, 'image' => $breadcrumb->image ?? null,
], ],
]; ];

View File

@ -5,8 +5,7 @@
@if ($breadcrumb->url && !$loop->last) @if ($breadcrumb->url && !$loop->last)
<li> <li>
<a href="{{ $breadcrumb->url }}" <a href="{{ $breadcrumb->url }}" class="text-blue-600 hover:text-blue-900 hover:underline focus:text-blue-900 focus:underline">
class="text-blue-600 hover:text-blue-900 hover:underline focus:text-blue-900 focus:underline">
{{ $breadcrumb->title }} {{ $breadcrumb->title }}
</a> </a>
</li> </li>

View File

@ -1,20 +1,24 @@
<table class="action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation"> @props([
<tr> 'url',
<td align="center"> 'color' => 'primary',
<table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation"> 'align' => 'center',
<tr> ])
<td align="center"> <table class="action" align="{{ $align }}" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"> <tr>
<tr> <td align="{{ $align }}">
<td> <table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation">
<a href="{{ $url }}" class="button button-{{ $color ?? 'primary' }}" target="_blank" <tr>
rel="noopener">{{ $slot }}</a> <td align="{{ $align }}">
</td> <table border="0" cellpadding="0" cellspacing="0" role="presentation">
</tr> <tr>
</table> <td>
</td> <a href="{{ $url }}" class="button button-{{ $color }}" target="_blank" rel="noopener">{{ $slot }}</a>
</tr> </td>
</table> </tr>
</td> </table>
</tr> </td>
</tr>
</table>
</td>
</tr>
</table> </table>

View File

@ -1,11 +1,11 @@
<tr> <tr>
<td> <td>
<table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation"> <table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="content-cell" align="center"> <td class="content-cell" align="center">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@ -1,11 +1,12 @@
@props(['url'])
<tr> <tr>
<td class="header"> <td class="header">
<a href="{{ $url }}" style="display: inline-block;"> <a href="{{ $url }}" style="display: inline-block;">
@if (trim($slot) === 'Laravel') @if (trim($slot) === 'Laravel')
<img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo"> <img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo">
@else @else
{{ $slot }} {{ $slot }}
@endif @endif
</a> </a>
</td> </td>
</tr> </tr>

View File

@ -1,58 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>{{ config('app.name') }}</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="light"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="supported-color-schemes" content="light"> <meta name="color-scheme" content="light">
<style> <meta name="supported-color-schemes" content="light">
@media only screen and (max-width: 600px) { <style>
.inner-body { @media only screen and (max-width: 600px) {
width: 100% !important; .inner-body {
} width: 100% !important;
}
.footer { .footer {
width: 100% !important; width: 100% !important;
} }
} }
@media only screen and (max-width: 500px) { @media only screen and (max-width: 500px) {
.button { .button {
width: 100% !important; width: 100% !important;
} }
} }
</style> </style>
</head> </head>
<body> <body>
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td align="center"> <td align="center">
<table class="content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
{{ $header ?? '' }} {{ $header ?? '' }}
<!-- Email Body --> <!-- Email Body -->
<tr> <tr>
<td class="body" width="100%" cellpadding="0" cellspacing="0"> <td class="body" width="100%" cellpadding="0" cellspacing="0" style="border: hidden !important;">
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" <table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
role="presentation"> <!-- Body content -->
<!-- Body content --> <tr>
<tr> <td class="content-cell">
<td class="content-cell"> {{ Illuminate\Mail\Markdown::parse($slot) }}
{{ Illuminate\Mail\Markdown::parse($slot) }}
{{ $subcopy ?? '' }} {{ $subcopy ?? '' }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
{{ $footer ?? '' }} {{ $footer ?? '' }}
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</body> </body>
</html> </html>

View File

@ -1,27 +1,27 @@
@component('mail::layout') <x-mail::layout>
{{-- Header --}} {{-- Header --}}
@slot('header') <x-slot:header>
@component('mail::header', ['url' => config('app.url')]) <x-mail::header :url="config('app.url')">
{{ config('app.name') }} {{ config('app.name') }}
@endcomponent </x-mail::header>
@endslot </x-slot:header>
{{-- Body --}} {{-- Body --}}
{{ $slot }} {{ $slot }}
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($subcopy) @isset($subcopy)
@slot('subcopy') <x-slot:subcopy>
@component('mail::subcopy') <x-mail::subcopy>
{{ $subcopy }} {{ $subcopy }}
@endcomponent </x-mail::subcopy>
@endslot </x-slot:subcopy>
@endisset @endisset
{{-- Footer --}} {{-- Footer --}}
@slot('footer') <x-slot:footer>
@component('mail::footer') <x-mail::footer>
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
@endcomponent </x-mail::footer>
@endslot </x-slot:footer>
@endcomponent </x-mail::layout>

View File

@ -1,14 +1,14 @@
<table class="panel" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="panel" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="panel-content"> <td class="panel-content">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="panel-item"> <td class="panel-item">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -1,7 +1,7 @@
<table class="subcopy" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="subcopy" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td> <td>
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -1,3 +1,3 @@
<div class="table"> <div class="table">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</div> </div>

View File

@ -4,7 +4,7 @@ body,
body *:not(html):not(style):not(br):not(tr):not(code) { body *:not(html):not(style):not(br):not(tr):not(code) {
box-sizing: border-box; box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
position: relative; position: relative;
} }

View File

@ -1,9 +1,9 @@
{!! strip_tags($header) !!} {!! strip_tags($header ?? '') !!}
{!! strip_tags($slot) !!} {!! strip_tags($slot) !!}
@isset($subcopy) @isset($subcopy)
{!! strip_tags($subcopy) !!} {!! strip_tags($subcopy) !!}
@endisset @endisset
{!! strip_tags($footer) !!} {!! strip_tags($footer ?? '') !!}

View File

@ -1,27 +1,27 @@
@component('mail::layout') <x-mail::layout>
{{-- Header --}} {{-- Header --}}
@slot('header') <x-slot:header>
@component('mail::header', ['url' => config('app.url')]) <x-mail::header :url="config('app.url')">
{{ config('app.name') }} {{ config('app.name') }}
@endcomponent </x-mail::header>
@endslot </x-slot:header>
{{-- Body --}} {{-- Body --}}
{{ $slot }} {{ $slot }}
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($subcopy) @isset($subcopy)
@slot('subcopy') <x-slot:subcopy>
@component('mail::subcopy') <x-mail::subcopy>
{{ $subcopy }} {{ $subcopy }}
@endcomponent </x-mail::subcopy>
@endslot </x-slot:subcopy>
@endisset @endisset
{{-- Footer --}} {{-- Footer --}}
@slot('footer') <x-slot:footer>
@component('mail::footer') <x-mail::footer>
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
@endcomponent </x-mail::footer>
@endslot </x-slot:footer>
@endcomponent </x-mail::layout>

View File

@ -1,58 +1,58 @@
@component('mail::message') <x-mail::message>
{{-- Greeting --}} {{-- Greeting --}}
@if (! empty($greeting)) @if (! empty($greeting))
# {{ $greeting }} # {{ $greeting }}
@else @else
@if ($level === 'error') @if ($level === 'error')
# @lang('Whoops!') # @lang('Whoops!')
@else @else
# @lang('Hello!') # @lang('Hello!')
@endif @endif
@endif @endif
{{-- Intro Lines --}} {{-- Intro Lines --}}
@foreach ($introLines as $line) @foreach ($introLines as $line)
{{ $line }} {{ $line }}
@endforeach @endforeach
{{-- Action Button --}} {{-- Action Button --}}
@isset($actionText) @isset($actionText)
<?php <?php
$color = match ($level) { $color = match ($level) {
'success', 'error' => $level, 'success', 'error' => $level,
default => 'primary', default => 'primary',
}; };
?> ?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color]) <x-mail::button :url="$actionUrl" :color="$color">
{{ $actionText }} {{ $actionText }}
@endcomponent </x-mail::button>
@endisset @endisset
{{-- Outro Lines --}} {{-- Outro Lines --}}
@foreach ($outroLines as $line) @foreach ($outroLines as $line)
{{ $line }} {{ $line }}
@endforeach @endforeach
{{-- Salutation --}} {{-- Salutation --}}
@if (! empty($salutation)) @if (! empty($salutation))
{{ $salutation }} {{ $salutation }}
@else @else
@lang('Regards'),<br> @lang('Regards'),<br>
{{ config('app.name') }} {{ config('app.name') }}
@endif @endif
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($actionText) @isset($actionText)
@slot('subcopy') <x-slot:subcopy>
@lang( @lang(
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n". "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n".
'into your web browser:', 'into your web browser:',
[ [
'actionText' => $actionText, 'actionText' => $actionText,
] ]
) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span> ) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span>
@endslot </x-slot:subcopy>
@endisset @endisset
@endcomponent </x-mail::message>

View File

@ -8,8 +8,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
aria-label="@lang('pagination.previous')">&lsaquo;</a>
</li> </li>
@endif @endif
@ -17,16 +16,14 @@
@foreach ($elements as $element) @foreach ($elements as $element)
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span> <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
</li>
@endif @endif
{{-- Array Of Links --}} {{-- Array Of Links --}}
@if (is_array($element)) @if (is_array($element))
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span> <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
</li>
@else @else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li> <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif @endif
@ -37,8 +34,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -9,16 +9,14 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a>
rel="prev">@lang('pagination.previous')</a>
</li> </li>
@endif @endif
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
rel="next">@lang('pagination.next')</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true"> <li class="page-item disabled" aria-disabled="true">
@ -50,8 +48,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
aria-label="@lang('pagination.previous')">&lsaquo;</a>
</li> </li>
@endif @endif
@ -59,16 +56,14 @@
@foreach ($elements as $element) @foreach ($elements as $element)
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
class="page-link">{{ $element }}</span></li>
@endif @endif
{{-- Array Of Links --}} {{-- Array Of Links --}}
@if (is_array($element)) @if (is_array($element))
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
class="page-link">{{ $page }}</span></li>
@else @else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li> <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif @endif
@ -79,8 +74,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -34,8 +34,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li> <li>
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -2,11 +2,9 @@
<div class="ui pagination menu" role="navigation"> <div class="ui pagination menu" role="navigation">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')"> <i <a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
class="left chevron icon"></i> </a>
@else @else
<a class="icon item" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="icon item" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
@endif @endif
{{-- Pagination Elements --}} {{-- Pagination Elements --}}
@ -30,11 +28,9 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a class="icon item" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="icon item" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
@else @else
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <i <a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
class="right chevron icon"></i> </a>
@endif @endif
</div> </div>
@endif @endif

View File

@ -8,8 +8,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a>
rel="prev">@lang('pagination.previous')</a>
</li> </li>
@endif @endif

View File

@ -17,8 +17,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">{!! __('pagination.next') !!}</a>
rel="next">{!! __('pagination.next') !!}</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true"> <li class="page-item disabled" aria-disabled="true">

View File

@ -2,26 +2,22 @@
<nav role="navigation" aria-label="Pagination Navigation" class="flex justify-between"> <nav role="navigation" aria-label="Pagination Navigation" class="flex justify-between">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" rel="prev" <a href="{{ $paginator->previousPageUrl() }}" rel="prev" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</a> </a>
@endif @endif
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</a> </a>
@else @else
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</span> </span>
@endif @endif

View File

@ -2,25 +2,21 @@
<nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between"> <nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between">
<div class="flex justify-between flex-1 sm:hidden"> <div class="flex justify-between flex-1 sm:hidden">
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" <a href="{{ $paginator->previousPageUrl() }}" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</a> </a>
@endif @endif
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" <a href="{{ $paginator->nextPageUrl() }}" class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</a> </a>
@else @else
<span <span class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</span> </span>
@endif @endif
@ -28,7 +24,7 @@
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"> <div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div> <div>
<p class="text-sm text-gray-700 leading-5"> <p class="text-sm text-gray-700 leading-5 dark:text-gray-400">
{!! __('Showing') !!} {!! __('Showing') !!}
@if ($paginator->firstItem()) @if ($paginator->firstItem())
<span class="font-medium">{{ $paginator->firstItem() }}</span> <span class="font-medium">{{ $paginator->firstItem() }}</span>
@ -44,28 +40,20 @@
</div> </div>
<div> <div>
<span class="relative z-0 inline-flex shadow-sm rounded-md"> <span class="relative z-0 inline-flex rtl:flex-row-reverse shadow-sm rounded-md">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span aria-disabled="true" aria-label="{{ __('pagination.previous') }}"> <span aria-disabled="true" aria-label="{{ __('pagination.previous') }}">
<span <span class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true">
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5"
aria-hidden="true">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" />
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</span> </span>
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" rel="prev" <a href="{{ $paginator->previousPageUrl() }}" rel="prev" class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('pagination.previous') }}">
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
aria-label="{{ __('pagination.previous') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" />
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</a> </a>
@endif @endif
@ -75,8 +63,7 @@
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<span aria-disabled="true"> <span aria-disabled="true">
<span <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600">{{ $element }}</span>
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5">{{ $element }}</span>
</span> </span>
@endif @endif
@ -85,13 +72,10 @@
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<span aria-current="page"> <span aria-current="page">
<span <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600">{{ $page }}</span>
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5">{{ $page }}</span>
</span> </span>
@else @else
<a href="{{ $url }}" <a href="{{ $url }}" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150"
aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
{{ $page }} {{ $page }}
</a> </a>
@endif @endif
@ -101,24 +85,16 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('pagination.next') }}">
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
aria-label="{{ __('pagination.next') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</a> </a>
@else @else
<span aria-disabled="true" aria-label="{{ __('pagination.next') }}"> <span aria-disabled="true" aria-label="{{ __('pagination.next') }}">
<span <span class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-r-md leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true">
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-r-md leading-5"
aria-hidden="true">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</span> </span>
</span> </span>