mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-06 20:14:34 -04:00
commit
06f08adaf2
@ -1 +1 @@
|
|||||||
5.1.47
|
5.1.48
|
@ -85,7 +85,6 @@ class SelfUpdateController extends BaseController
|
|||||||
|
|
||||||
Artisan::call('clear-compiled');
|
Artisan::call('clear-compiled');
|
||||||
Artisan::call('cache:clear');
|
Artisan::call('cache:clear');
|
||||||
// Artisan::call('debugbar:clear');
|
|
||||||
Artisan::call('route:clear');
|
Artisan::call('route:clear');
|
||||||
Artisan::call('view:clear');
|
Artisan::call('view:clear');
|
||||||
Artisan::call('config:clear');
|
Artisan::call('config:clear');
|
||||||
@ -96,10 +95,17 @@ class SelfUpdateController extends BaseController
|
|||||||
|
|
||||||
private function testWritable()
|
private function testWritable()
|
||||||
{
|
{
|
||||||
$directoryIterator = new \RecursiveDirectoryIterator(base_path());
|
$directoryIterator = new \RecursiveDirectoryIterator(base_path(), \RecursiveDirectoryIterator::SKIP_DOTS);
|
||||||
|
|
||||||
foreach (new \RecursiveIteratorIterator($directoryIterator) as $file) {
|
foreach (new \RecursiveIteratorIterator($directoryIterator) as $file) {
|
||||||
|
|
||||||
|
if(strpos($file->getPathname(), '.git') !== false)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// nlog($file->getPathname());
|
||||||
|
|
||||||
if ($file->isFile() && ! $file->isWritable()) {
|
if ($file->isFile() && ! $file->isWritable()) {
|
||||||
|
throw new FilePermissionsFailure($file);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -399,10 +399,10 @@ class TaskStatusController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function destroy(DestroyTaskStatusRequest $request, TaskStatus $task_status)
|
public function destroy(DestroyTaskStatusRequest $request, TaskStatus $task_status)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->task_status_repo->delete($task_status);
|
$task_status = $this->task_status_repo->delete($task_status);
|
||||||
|
|
||||||
return $this->itemResponse($task_status->fresh());
|
return $this->itemResponse($task_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace App\Repositories;
|
namespace App\Repositories;
|
||||||
|
|
||||||
use App\Models\Task;
|
use App\Models\Task;
|
||||||
|
use App\Models\TaskStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for task status repository.
|
* Class for task status repository.
|
||||||
@ -21,10 +22,14 @@ class TaskStatusRepository extends BaseRepository
|
|||||||
|
|
||||||
public function delete($task_status)
|
public function delete($task_status)
|
||||||
{
|
{
|
||||||
|
$ts = TaskStatus::where('company_id', $task_status->company_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$new_status = $ts ? $ts->id : null;
|
||||||
|
|
||||||
Task::where('status_id', $task_status->id)
|
Task::where('status_id', $task_status->id)
|
||||||
->where('company_id', $task_status->company_id)
|
->where('company_id', $task_status->company_id)
|
||||||
->update(['status_id' => null]);
|
->update(['status_id' => $new_status]);
|
||||||
|
|
||||||
|
|
||||||
parent::delete($task_status);
|
parent::delete($task_status);
|
||||||
@ -36,9 +41,14 @@ class TaskStatusRepository extends BaseRepository
|
|||||||
public function archive($task_status)
|
public function archive($task_status)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$task_status = TaskStatus::where('company_id', $task_status->company_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$new_status = $task_status ? $task_status->id : null;
|
||||||
|
|
||||||
Task::where('status_id', $task_status->id)
|
Task::where('status_id', $task_status->id)
|
||||||
->where('company_id', $task_status->company_id)
|
->where('company_id', $task_status->company_id)
|
||||||
->update(['status_id' => null]);
|
->update(['status_id' => $new_status]);
|
||||||
|
|
||||||
|
|
||||||
parent::archive($task_status);
|
parent::archive($task_status);
|
||||||
|
@ -153,6 +153,8 @@ class HtmlEngine
|
|||||||
$data['$date'] = ['value' => $this->translateDate($this->entity->date, $this->entity->client->date_format(), $this->entity->client->locale()) ?: ' ', 'label' => ctrans('texts.credit_date')];
|
$data['$date'] = ['value' => $this->translateDate($this->entity->date, $this->entity->client->date_format(), $this->entity->client->locale()) ?: ' ', 'label' => ctrans('texts.credit_date')];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$data['$portal_url'] = ['value' => $this->invitation->getPortalLink(), 'label' =>''];
|
||||||
|
|
||||||
$data['$entity_number'] = &$data['$number'];
|
$data['$entity_number'] = &$data['$number'];
|
||||||
$data['$invoice.discount'] = ['value' => Number::formatMoney($this->entity_calc->getTotalDiscount(), $this->client) ?: ' ', 'label' => ctrans('texts.discount')];
|
$data['$invoice.discount'] = ['value' => Number::formatMoney($this->entity_calc->getTotalDiscount(), $this->client) ?: ' ', 'label' => ctrans('texts.discount')];
|
||||||
$data['$discount'] = &$data['$invoice.discount'];
|
$data['$discount'] = &$data['$invoice.discount'];
|
||||||
|
@ -66,6 +66,30 @@ trait Inviteable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPortalLink() :string
|
||||||
|
{
|
||||||
|
|
||||||
|
$domain = isset($this->company->portal_domain) ?: $this->company->domain();
|
||||||
|
|
||||||
|
switch ($this->company->portal_mode) {
|
||||||
|
case 'subdomain':
|
||||||
|
return $domain.'/client/';
|
||||||
|
break;
|
||||||
|
case 'iframe':
|
||||||
|
return $domain.'/client/';
|
||||||
|
//return $domain . $entity_type .'/'. $this->contact->client->client_hash .'/'. $this->key;
|
||||||
|
break;
|
||||||
|
case 'domain':
|
||||||
|
return $domain.'/client/';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function getAdminLink() :string
|
public function getAdminLink() :string
|
||||||
{
|
{
|
||||||
return $this->getLink().'?silent=true';
|
return $this->getLink().'?silent=true';
|
||||||
|
@ -14,8 +14,8 @@ 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.47',
|
'app_version' => '5.1.48',
|
||||||
'app_tag' => '5.1.47-release',
|
'app_tag' => '5.1.48-release',
|
||||||
'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),
|
||||||
|
@ -135,7 +135,7 @@ class TaskStatusApiTest extends TestCase
|
|||||||
])->delete('/api/v1/task_statuses/'.$this->encodePrimaryKey($this->task_status->id));
|
])->delete('/api/v1/task_statuses/'.$this->encodePrimaryKey($this->task_status->id));
|
||||||
|
|
||||||
$arr = $response->json();
|
$arr = $response->json();
|
||||||
|
nlog($arr);
|
||||||
$this->assertTrue($arr['data']['is_deleted']);
|
$this->assertTrue($arr['data']['is_deleted']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user