Merge branch 'master' of github.com:freescout-helpdesk/freescout into dist
This commit is contained in:
@@ -11,7 +11,7 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Validator;
|
||||
|
||||
class PublicController extends Controller
|
||||
class OpenController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
@@ -38,7 +38,7 @@ class PublicController extends Controller
|
||||
\Helper::setLocale($user->locale);
|
||||
}
|
||||
|
||||
return view('public/user_setup', ['user' => $user]);
|
||||
return view('open/user_setup', ['user' => $user]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,8 +207,8 @@ class PublicController extends Controller
|
||||
/**
|
||||
* Needed for the mobile app.
|
||||
*/
|
||||
public function mobilePing()
|
||||
{
|
||||
echo file_get_contents(public_path('installer/css/fontawesome.css'));
|
||||
}
|
||||
// public function mobilePing()
|
||||
// {
|
||||
// echo file_get_contents(public_path('installer/css/fontawesome.css'));
|
||||
// }
|
||||
}
|
||||
@@ -279,6 +279,8 @@ class SendReplyToCustomer implements ShouldQueue
|
||||
$envelope['from'] = $mailbox->getMailFrom(null, $this->conversation)['address'];
|
||||
$envelope['to'] = $this->customer_email;
|
||||
$envelope['subject'] = 'Re: ' . $this->conversation->subject;
|
||||
$envelope['date'] = now()->toRfc2822String();
|
||||
$envelope['message_id'] = $this->message_id;
|
||||
|
||||
// Get penultimate email Message-Id if reply
|
||||
if (!$new && !empty($last_customer_thread) && $last_customer_thread->message_id) {
|
||||
@@ -291,6 +293,7 @@ class SendReplyToCustomer implements ShouldQueue
|
||||
$part1['type'] = TYPETEXT;
|
||||
$part1['subtype'] = 'html';
|
||||
$part1['contents.data'] = $reply_mail->render();
|
||||
$part1['charset'] = 'utf-8';
|
||||
|
||||
try {
|
||||
// getFolder does not work if sent folder has spaces.
|
||||
|
||||
@@ -154,6 +154,9 @@ class Helper
|
||||
'ar-BH' => ['name' => 'العربية',
|
||||
'name_en' => 'Arabic (Bahrain)',
|
||||
],
|
||||
'az' => ['name' => 'Azerbaijani',
|
||||
'name_en' => 'Azerbaijani',
|
||||
],
|
||||
'eu' => ['name' => 'Euskara',
|
||||
'name_en' => 'Basque',
|
||||
],
|
||||
|
||||
@@ -18,7 +18,7 @@ return [
|
||||
| or any other location as required by the application or its packages.
|
||||
*/
|
||||
|
||||
'version' => '1.8.26',
|
||||
'version' => '1.8.27',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
3
public/js/summernote/summernote.js
vendored
3
public/js/summernote/summernote.js
vendored
@@ -4233,6 +4233,9 @@ var Editor = /** @class */ (function () {
|
||||
}
|
||||
$image.css('width', Math.min(_this.$editable.width(), $image.width()));
|
||||
}
|
||||
var alt = src.substring(src.lastIndexOf('/')+1);
|
||||
alt = alt.substring(0, alt.lastIndexOf('?'));
|
||||
$image.attr('alt', alt);
|
||||
$image.show();
|
||||
range.create(_this.editable).insertNode($image[0]);
|
||||
range.createFromNodeAfter($image[0]).select();
|
||||
|
||||
@@ -84,8 +84,6 @@
|
||||
"A conversation is assigned to someone else": "Тикет назначен кому-то другому",
|
||||
"A conversation :person is following is updated": "Тикет, за которым следит :person, обновлён",
|
||||
"A conversation I'm following is updated": "Тикет, за которым я слежу, обновлён",
|
||||
":person's team is @mentioned in a conversation": "Команда :person @упомянута в тикете",
|
||||
"My team is @mentioned in a conversation": "Моя команда @упомянута в тикете",
|
||||
"Notify :person when a customer replies…": "Уведомлять :person, когда клиент отвечает…",
|
||||
"Notify me when a customer replies…": "Уведомлять меня, когда клиент отвечает...",
|
||||
"To an unassigned conversation": "На неназначенный тикет",
|
||||
@@ -125,7 +123,6 @@
|
||||
"Time Format": "Формат времени",
|
||||
"12-hour clock (e.g. 2:13pm)": "12-часовой формат (например, 2:13pm)",
|
||||
"24-hour clock (e.g. 14:13)": "24-часовой формат (например, 14:13)",
|
||||
"Keyboard Shortcuts": "Горячие клавиши",
|
||||
"Deleting": "Удаление",
|
||||
"Delete Photo": "Удалить фото",
|
||||
"Image will be re-sized to :dimensions. JPG, GIF, PNG accepted.": "Изображение будет масштабировано до :dimensions. Разрешённые форматы: JPG, GIF, PNG .",
|
||||
@@ -234,7 +231,6 @@
|
||||
"Add an email address": "Добавить адрес эл.почты",
|
||||
"Website": "Вебсайт",
|
||||
"Add a website": "Добавить сайт",
|
||||
"Call customer": "Позвонить клиенту",
|
||||
"No customers found": "Не найдено клиентов",
|
||||
"There were no send attempts yet": "Еще не было попыток отправки",
|
||||
"Emails to Customers": "Письма клиентам",
|
||||
@@ -767,5 +763,29 @@
|
||||
"There is a mailbox with such email. Users and mailboxes can not have the same email addresses.": "Существует почтовый ящик с такой электронной почтой. Пользователи и почтовые ящики не могут иметь одинаковые адреса электронной почты.",
|
||||
"There is a user with such email. Users and mailboxes can not have the same email addresses.": "Существует пользователь с такой электронной почтой. Пользователи и почтовые ящики не могут иметь одинаковые адреса электронной почты.",
|
||||
"Use Deactivate License button to transfer license key from another domain": "Используйте кнопку Деактивировать лицензию, чтобы перенести лицензионный ключ с другого домена",
|
||||
"ZIP": "Индекс"
|
||||
"ZIP": "Индекс",
|
||||
"Click to Call": "Кликните, чтобы позвонить",
|
||||
"Conversation Number": "Номер тикета",
|
||||
"Custom": "Произвольный",
|
||||
"Equal to conversation ID": "Равен ID тикета",
|
||||
"Fax": "Факс",
|
||||
"Home": "Домашний",
|
||||
"Keep Current": "Сохранить текущий",
|
||||
"Other": "Другой",
|
||||
"Pager": "Пейджер",
|
||||
"Please specify a recipient.": "Пожалуйста, укажите получателя.",
|
||||
"Show": "Показать",
|
||||
"Third-Party": "Сторонний",
|
||||
"Third-Party Modules": "Сторонние модули",
|
||||
"Work": "Рабочий",
|
||||
"Image will be re-sized to 200x200. JPG, GIF, PNG accepted.": "Изображения будут масштабированы до 200x200. Принимаются файлы формата JPG, GIF и PNG.",
|
||||
"Let's setup your profile.": "Настройка профиля.",
|
||||
"No invite was found. Please contact your administrator to have a new invite email sent.": "Приглашение не найдено. Пожалуйста, свяжитель с администратором, чтобы Вам отправили новое письмо-приглашение.",
|
||||
"Only visible in :app_name.": "Показывается только в внутри системы.",
|
||||
"Profile Image": "Фото профиля",
|
||||
"User Setup Wizard": "Мастер настройки пользователя",
|
||||
"User Setup Problem": "Возникла проблема при настройке пользователя",
|
||||
"Welcome to :company_name, :first_name!": "Добро пожаловать в :company_name, :first_name!",
|
||||
"Your Email": "Ваша эл.почта",
|
||||
"Your password must be at least 8 characters": "Пароль должен содержать минимум 8 символов"
|
||||
}
|
||||
@@ -142,6 +142,8 @@
|
||||
<div class="col-sm-6">
|
||||
<input id="phone" type="text" class="form-control input-sized" name="phone" value="{{ old('phone', $user->phone) }}" placeholder="{{ __('(optional)') }}" maxlength="60">
|
||||
|
||||
@action('user.edit.phone_append', $user)
|
||||
|
||||
@include('partials/field_error', ['field'=>'phone'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -26,18 +26,10 @@ if (config('app.dashboard_path')) {
|
||||
Route::redirect('/home', config('app.url'), 302);
|
||||
}
|
||||
|
||||
// This is needed for the mobile app.
|
||||
if (config('app.dashboard_path')) {
|
||||
Route::get(rtrim(config('app.dashboard_path'), "/").'/installer/css/fontawesome.css', 'PublicController@mobilePing');
|
||||
}
|
||||
if (config('app.login_path')) {
|
||||
Route::get(rtrim(config('app.login_path'), "/").'/installer/css/fontawesome.css', 'PublicController@mobilePing');
|
||||
}
|
||||
|
||||
// Public routes
|
||||
Route::get('/user-setup/{hash}', 'PublicController@userSetup')->name('user_setup');
|
||||
Route::post('/user-setup/{hash}', 'PublicController@userSetupSave');
|
||||
Route::get('/storage/attachment/{dir_1}/{dir_2}/{dir_3}/{file_name}', 'PublicController@downloadAttachment')->name('attachment.download');
|
||||
// Open routes
|
||||
Route::get('/user-setup/{hash}', 'OpenController@userSetup')->name('user_setup');
|
||||
Route::post('/user-setup/{hash}', 'OpenController@userSetupSave');
|
||||
Route::get('/storage/attachment/{dir_1}/{dir_2}/{dir_3}/{file_name}', 'OpenController@downloadAttachment')->name('attachment.download');
|
||||
|
||||
// General routes for logged in users
|
||||
if (config('app.dashboard_path')) {
|
||||
@@ -125,7 +117,7 @@ Route::post('/system/action', ['uses' => 'SystemController@action', 'middleware'
|
||||
Route::get('/system/cron/{hash}', ['uses' => 'SystemController@cron'])->name('system.cron');
|
||||
|
||||
// Open tracking
|
||||
Route::get('/thread/read/{conversation_id}/{thread_id}', 'PublicController@setThreadAsRead')->name('open_tracking.set_read');
|
||||
Route::get('/thread/read/{conversation_id}/{thread_id}', 'OpenController@setThreadAsRead')->name('open_tracking.set_read');
|
||||
|
||||
// Uploads
|
||||
Route::post('/uploads/upload', ['uses' => 'SecureController@upload', 'laroute' => true])->name('uploads.upload');
|
||||
|
||||
Reference in New Issue
Block a user