Merge branch 'master' of github.com:freescout-helpdesk/freescout into dist

This commit is contained in:
FreeScout
2022-09-22 05:21:21 -07:00
9 changed files with 48 additions and 25 deletions

View File

@@ -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'));
// }
}

View File

@@ -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.

View File

@@ -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',
],

View File

@@ -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',
/*
|--------------------------------------------------------------------------

View File

@@ -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();

View File

@@ -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 символов"
}

View File

@@ -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>

View File

@@ -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');