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',
'tr' => 'Türkçe',
'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" => []]
],
/**
* @var string
*/
/**
* @var string
*/
'log_output_file' => null,
/**
@ -171,13 +171,13 @@ return array(
*/
"default_paper_size" => "a4",
/**
* The default paper orientation.
*
* The orientation of the page (portrait or landscape).
*
* @var string
*/
/**
* The default paper orientation.
*
* The orientation of the page (portrait or landscape).
*
* @var string
*/
'default_paper_orientation' => "portrait",
/**

View File

@ -14,7 +14,7 @@ return [
| 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.
|
*/
'csv' => [
'delimiter' => ',',
'enclosure' => '"',
'line_ending' => PHP_EOL,
'use_bom' => false,
'csv' => [
'delimiter' => ',',
'enclosure' => '"',
'line_ending' => PHP_EOL,
'use_bom' => false,
'include_separator_line' => false,
'excel_compatibility' => false,
'output_encoding' => '',
'excel_compatibility' => false,
'output_encoding' => '',
'test_auto_detect' => true,
],
/*
@ -59,20 +60,20 @@ return [
| Configure e.g. default title, creator, subject,...
|
*/
'properties' => [
'creator' => '',
'properties' => [
'creator' => '',
'lastModifiedBy' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'company' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'company' => '',
],
],
'imports' => [
'imports' => [
/*
|--------------------------------------------------------------------------
@ -85,7 +86,7 @@ return [
| 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
|
*/
'heading_row' => [
'heading_row' => [
'formatter' => 'slug',
],
@ -121,12 +122,12 @@ return [
| Configure e.g. delimiter, enclosure and line ending for CSV imports.
|
*/
'csv' => [
'delimiter' => null,
'enclosure' => '"',
'csv' => [
'delimiter' => null,
'enclosure' => '"',
'escape_character' => '\\',
'contiguous' => false,
'input_encoding' => 'UTF-8',
'contiguous' => false,
'input_encoding' => 'UTF-8',
],
/*
@ -137,16 +138,31 @@ return [
| Configure e.g. default title, creator, subject,...
|
*/
'properties' => [
'creator' => '',
'properties' => [
'creator' => '',
'lastModifiedBy' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'company' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'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' => [
'xlsx' => Excel::XLSX,
'xlsm' => Excel::XLSX,
'xltx' => Excel::XLSX,
'xltm' => Excel::XLSX,
'xls' => Excel::XLS,
'xlt' => Excel::XLS,
'ods' => Excel::ODS,
'ots' => Excel::ODS,
'slk' => Excel::SLK,
'xml' => Excel::XML,
'xlsx' => Excel::XLSX,
'xlsm' => Excel::XLSX,
'xltx' => Excel::XLSX,
'xltm' => Excel::XLSX,
'xls' => Excel::XLS,
'xlt' => Excel::XLS,
'ods' => Excel::ODS,
'ots' => Excel::ODS,
'slk' => Excel::SLK,
'xml' => Excel::XML,
'gnumeric' => Excel::GNUMERIC,
'htm' => Excel::HTML,
'html' => Excel::HTML,
'csv' => Excel::CSV,
'tsv' => Excel::TSV,
'htm' => Excel::HTML,
'html' => Excel::HTML,
'csv' => Excel::CSV,
'tsv' => Excel::TSV,
/*
|--------------------------------------------------------------------------
@ -186,7 +202,7 @@ return [
| 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
|
*/
'value_binder' => [
'value_binder' => [
'default' => Maatwebsite\Excel\DefaultValueBinder::class,
],
'cache' => [
'cache' => [
/*
|--------------------------------------------------------------------------
| Default cell caching driver
@ -219,7 +235,7 @@ return [
| By default PhpSpreadsheet keeps all cell values in memory, however when
| dealing with large files, this might result into memory issues. If you
| 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
| store each value. You can use the "batch" store if you want to
| only persist to the store when the memory limit is reached.
@ -227,7 +243,7 @@ return [
| Drivers: memory|illuminate|batch
|
*/
'driver' => 'memory',
'driver' => 'memory',
/*
|--------------------------------------------------------------------------
@ -239,7 +255,7 @@ return [
| Here you can tweak the memory limit to your liking.
|
*/
'batch' => [
'batch' => [
'memory_limit' => 60000,
],
@ -255,9 +271,23 @@ return [
| at "null" it will use the default store.
|
*/
'illuminate' => [
'illuminate' => [
'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' => [
'handler' => 'db',
'db' => [
'db' => [
'connection' => null,
],
],
@ -291,9 +321,26 @@ return [
|
| When exporting and importing files, we use a temporary file, before
| 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.
|
*/
'remote_disk' => null,
'remote_prefix' => null,
'remote_disk' => null,
'remote_prefix' => null,
/*
|--------------------------------------------------------------------------

View File

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

View File

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

View File

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

View File

@ -176,6 +176,7 @@ return [
'schedule' => 'Schedule',
'from' => 'From',
'to' => 'To',
'mail-to' => 'To',
'location' => 'Location',
'participants' => 'Participants',
'participant-info' => 'Start typing name',
@ -184,7 +185,7 @@ return [
'cc' => 'Cc',
'bcc' => 'Bcc',
'email-placeholder' => 'Press enter to add emails',
'file' => 'File',
'file-name' => 'File',
'subject' => 'Subject',
'reply' => 'Reply',
'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',
'meeting' => 'Toplantı',
'lunch' => 'Öğle Yemeği',
'file' => 'Dosya',
'file-name' => 'Dosya',
'quote' => 'Teklif',
'create-quote' => 'Teklif Oluştur',
'type' => 'Tip',
@ -175,6 +175,7 @@ return [
'schedule' => 'Takvim',
'from' => 'İtibaren',
'to' => 'İle',
'mail-to' => 'İle',
'location' => 'Lokasyon',
'participants' => 'Katılımcılar',
'participant-info' => 'Adı yazmaya başla',

View File

@ -252,11 +252,11 @@
<div class="form-group email-control-group"
: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
control-name="reply_to[]"
control-label="{{ __('admin::app.leads.to') }}"
control-label="{{ __('admin::app.leads.mail-to') }}"
:validations="'required'"
></email-tags-component>
@ -370,7 +370,7 @@
@csrf()
<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">
</div>

View File

@ -76,11 +76,11 @@
<div class="form-group email-control-group"
: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
control-name="reply_to[]"
control-label="{{ __('admin::app.leads.to') }}"
control-label="{{ __('admin::app.leads.mail-to') }}"
:validations="'required'"
:data='@json(isset($email) ? $email->reply_to : [])'
></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());
$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->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>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title')</title>
<title>@yield('title')</title>
<!-- Styles -->
<style>
html, body {
background-color: #fff;
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-weight: 100;
height: 100vh;
margin: 0;
}
<!-- Styles -->
<style>
html, body {
background-color: #fff;
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-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
@yield('message')
.title {
font-size: 36px;
padding: 20px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
@yield('message')
</div>
</div>
</div>
</div>
</div>
</body>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@ body,
body *:not(html):not(style):not(br):not(tr):not(code) {
box-sizing: border-box;
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;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -17,8 +17,7 @@
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}"
rel="next">{!! __('pagination.next') !!}</a>
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">{!! __('pagination.next') !!}</a>
</li>
@else
<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">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<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">
<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">
{!! __('pagination.previous') !!}
</span>
@else
<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">
<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">
{!! __('pagination.previous') !!}
</a>
@endif
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<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">
<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">
{!! __('pagination.next') !!}
</a>
@else
<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">
<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">
{!! __('pagination.next') !!}
</span>
@endif

View File

@ -2,25 +2,21 @@
<nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between">
<div class="flex justify-between flex-1 sm:hidden">
@if ($paginator->onFirstPage())
<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">
<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">
{!! __('pagination.previous') !!}
</span>
@else
<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">
<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">
{!! __('pagination.previous') !!}
</a>
@endif
@if ($paginator->hasMorePages())
<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">
<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">
{!! __('pagination.next') !!}
</a>
@else
<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">
<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">
{!! __('pagination.next') !!}
</span>
@endif
@ -28,7 +24,7 @@
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div>
<p class="text-sm text-gray-700 leading-5">
<p class="text-sm text-gray-700 leading-5 dark:text-gray-400">
{!! __('Showing') !!}
@if ($paginator->firstItem())
<span class="font-medium">{{ $paginator->firstItem() }}</span>
@ -44,28 +40,20 @@
</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 --}}
@if ($paginator->onFirstPage())
<span aria-disabled="true" aria-label="{{ __('pagination.previous') }}">
<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"
aria-hidden="true">
<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">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<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"/>
<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" />
</svg>
</span>
</span>
@else
<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"
aria-label="{{ __('pagination.previous') }}">
<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') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<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"/>
<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" />
</svg>
</a>
@endif
@ -75,8 +63,7 @@
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<span aria-disabled="true">
<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 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>
</span>
@endif
@ -85,13 +72,10 @@
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<span aria-current="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 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>
</span>
@else
<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"
aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
<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]) }}">
{{ $page }}
</a>
@endif
@ -101,24 +85,16 @@
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<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"
aria-label="{{ __('pagination.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') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<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"/>
<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" />
</svg>
</a>
@else
<span aria-disabled="true" aria-label="{{ __('pagination.next') }}">
<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"
aria-hidden="true">
<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">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<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"/>
<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" />
</svg>
</span>
</span>