mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 21:22:58 +01:00
Merge branch 'v5-stable' of https://github.com/turbo124/invoiceninja into v5-stable
This commit is contained in:
commit
0764de1c44
@ -1 +1 @@
|
|||||||
5.1.27
|
5.1.28
|
@ -57,24 +57,17 @@ class Kernel extends ConsoleKernel
|
|||||||
$schedule->job(new BillingSubscriptionCron)->daily()->withoutOverlapping();
|
$schedule->job(new BillingSubscriptionCron)->daily()->withoutOverlapping();
|
||||||
|
|
||||||
$schedule->job(new RecurringInvoicesCron)->hourly()->withoutOverlapping();
|
$schedule->job(new RecurringInvoicesCron)->hourly()->withoutOverlapping();
|
||||||
|
|
||||||
|
$schedule->job(new SchedulerCheck)->everyFiveMinutes();
|
||||||
|
|
||||||
/* Run hosted specific jobs */
|
/* Run hosted specific jobs */
|
||||||
if (Ninja::isHosted()) {
|
if (Ninja::isHosted()) {
|
||||||
|
|
||||||
$schedule->job(new AdjustEmailQuota())->daily()->withoutOverlapping();
|
$schedule->job(new AdjustEmailQuota)->daily()->withoutOverlapping();
|
||||||
$schedule->job(new SendFailedEmails())->daily()->withoutOverlapping();
|
$schedule->job(new SendFailedEmails)->daily()->withoutOverlapping();
|
||||||
|
|
||||||
}
|
}
|
||||||
/* Run queue's with this*/
|
|
||||||
if (Ninja::isSelfHost()) {
|
|
||||||
|
|
||||||
$schedule->command('queue:work --daemon')->everyMinute()->withoutOverlapping();
|
|
||||||
|
|
||||||
//we need to add this as we are seeing cached queues mess up the system on first load.
|
|
||||||
$schedule->command('queue:restart')->everyFiveMinutes()->withoutOverlapping();
|
|
||||||
$schedule->job(new SchedulerCheck)->everyFiveMinutes()->withoutOverlapping();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,7 +35,7 @@ class CompanyFactory
|
|||||||
$company->custom_fields = (object) [];
|
$company->custom_fields = (object) [];
|
||||||
$company->subdomain = '';
|
$company->subdomain = '';
|
||||||
$company->enabled_modules = config('ninja.enabled_modules'); //32767;//8191; //4095
|
$company->enabled_modules = config('ninja.enabled_modules'); //32767;//8191; //4095
|
||||||
$company->default_password_timeout = 30;
|
$company->default_password_timeout = 30 * 60000;
|
||||||
|
|
||||||
return $company;
|
return $company;
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class PasswordProtection
|
|||||||
if($timeout == 0)
|
if($timeout == 0)
|
||||||
$timeout = null;
|
$timeout = null;
|
||||||
else
|
else
|
||||||
$timeout = now()->addMinutes($timeout);
|
$timeout = now()->addMinutes($timeout/60000);
|
||||||
|
|
||||||
if (Cache::get(auth()->user()->hashed_id.'_logged_in')) {
|
if (Cache::get(auth()->user()->hashed_id.'_logged_in')) {
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ class PasswordProtection
|
|||||||
];
|
];
|
||||||
|
|
||||||
//If OAuth and user also has a password set - check both
|
//If OAuth and user also has a password set - check both
|
||||||
if ($existing_user = MultiDB::hasUser($query) && auth()->user()->has_password && Hash::check(auth()->user()->password, $request->header('X-API-PASSWORD'))) {
|
if ($existing_user = MultiDB::hasUser($query) && auth()->user()->has_password && Hash::check(auth()->user()->password, $request->header('X-API-PASSWORD'))) {
|
||||||
|
|
||||||
Cache::add(auth()->user()->hashed_id.'_logged_in', Str::random(64), $timeout);
|
Cache::add(auth()->user()->hashed_id.'_logged_in', Str::random(64), $timeout);
|
||||||
return $next($request);
|
return $next($request);
|
||||||
|
@ -302,7 +302,7 @@ class Design extends BaseDesign
|
|||||||
public function buildTableHeader(string $type): array
|
public function buildTableHeader(string $type): array
|
||||||
{
|
{
|
||||||
$this->processTaxColumns($type);
|
$this->processTaxColumns($type);
|
||||||
$this->processCustomColumns($type);
|
// $this->processCustomColumns($type);
|
||||||
|
|
||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
|
@ -213,6 +213,7 @@ trait PdfMakerUtilities
|
|||||||
$css = <<<'EOT'
|
$css = <<<'EOT'
|
||||||
table.page-container {
|
table.page-container {
|
||||||
page-break-after: always;
|
page-break-after: always;
|
||||||
|
min-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
thead.page-header {
|
thead.page-header {
|
||||||
|
@ -78,9 +78,15 @@ class SystemHealth
|
|||||||
'phantom_enabled' => (bool)config('ninja.phantomjs_pdf_generation'),
|
'phantom_enabled' => (bool)config('ninja.phantomjs_pdf_generation'),
|
||||||
'exec' => (bool)self::checkExecWorks(),
|
'exec' => (bool)self::checkExecWorks(),
|
||||||
'open_basedir' => (bool)self::checkOpenBaseDir(),
|
'open_basedir' => (bool)self::checkOpenBaseDir(),
|
||||||
|
'mail_mailer' => (string)self::checkMailMailer(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function checkMailMailer()
|
||||||
|
{
|
||||||
|
return config('mail.default');
|
||||||
|
}
|
||||||
|
|
||||||
public static function checkOpenBaseDir()
|
public static function checkOpenBaseDir()
|
||||||
{
|
{
|
||||||
if (strlen(ini_get('open_basedir') == 0)) {
|
if (strlen(ini_get('open_basedir') == 0)) {
|
||||||
|
@ -13,7 +13,7 @@ return [
|
|||||||
'require_https' => env('REQUIRE_HTTPS', true),
|
'require_https' => env('REQUIRE_HTTPS', true),
|
||||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||||
'app_domain' => env('APP_DOMAIN', ''),
|
'app_domain' => env('APP_DOMAIN', ''),
|
||||||
'app_version' => '5.1.27',
|
'app_version' => '5.1.28',
|
||||||
'minimum_client_version' => '5.0.16',
|
'minimum_client_version' => '5.0.16',
|
||||||
'terms_version' => '1.0.1',
|
'terms_version' => '1.0.1',
|
||||||
'api_secret' => env('API_SECRET', false),
|
'api_secret' => env('API_SECRET', false),
|
||||||
|
2
public/flutter_service_worker.js
vendored
2
public/flutter_service_worker.js
vendored
@ -30,7 +30,7 @@ const RESOURCES = {
|
|||||||
"assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "3e722fd57a6db80ee119f0e2c230ccff",
|
"assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf": "3e722fd57a6db80ee119f0e2c230ccff",
|
||||||
"assets/FontManifest.json": "cf3c681641169319e61b61bd0277378f",
|
"assets/FontManifest.json": "cf3c681641169319e61b61bd0277378f",
|
||||||
"/": "23224b5e03519aaa87594403d54412cf",
|
"/": "23224b5e03519aaa87594403d54412cf",
|
||||||
"main.dart.js": "1edd6ac83b22ed1c401a76cefe7eaa7d",
|
"main.dart.js": "114d8affe0f4b7576170753cf9fb4c0a",
|
||||||
"version.json": "b7c8971e1ab5b627fd2a4317c52b843e",
|
"version.json": "b7c8971e1ab5b627fd2a4317c52b843e",
|
||||||
"favicon.png": "dca91c54388f52eded692718d5a98b8b"
|
"favicon.png": "dca91c54388f52eded692718d5a98b8b"
|
||||||
};
|
};
|
||||||
|
135804
public/main.dart.js
vendored
135804
public/main.dart.js
vendored
File diff suppressed because one or more lines are too long
@ -262,7 +262,7 @@
|
|||||||
|
|
||||||
<div class="contacts-wrapper">
|
<div class="contacts-wrapper">
|
||||||
<div class="contact-wrapper-left-side">
|
<div class="contact-wrapper-left-side">
|
||||||
<p class="contact-label">$to_label:</p>
|
<p class="contact-label">$from_label:</p>
|
||||||
<div class="company-info">
|
<div class="company-info">
|
||||||
<div id="company-details"></div>
|
<div id="company-details"></div>
|
||||||
<div id="company-address"></div>
|
<div id="company-address"></div>
|
||||||
@ -270,7 +270,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="contact-wrapper-right-side">
|
<div class="contact-wrapper-right-side">
|
||||||
<p class="contact-label">$from_label:</p>
|
<p class="contact-label">$to_label:</p>
|
||||||
<div id="client-details"></div>
|
<div id="client-details"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user