Make it easier to switch between v1/v2 layout.

This commit is contained in:
James Cole 2021-01-31 20:29:17 +01:00
parent 21da959203
commit 27815d0311
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
5 changed files with 42 additions and 12 deletions

View File

@ -133,7 +133,7 @@ class IndexController extends Controller
// get all inactive budgets, and simply list them: // get all inactive budgets, and simply list them:
$inactive = $this->repository->getInactiveBudgets(); $inactive = $this->repository->getInactiveBudgets();
return view( return prefixView(
'budgets.index', compact( 'budgets.index', compact(
'availableBudgets', 'budgeted', 'spent', 'prevLoop', 'nextLoop', 'budgets', 'currencies', 'enableAddButton', 'periodTitle', 'availableBudgets', 'budgeted', 'spent', 'prevLoop', 'nextLoop', 'budgets', 'currencies', 'enableAddButton', 'periodTitle',
'defaultCurrency', 'activeDaysPassed', 'activeDaysLeft', 'inactive', 'budgets', 'start', 'end', 'sums' 'defaultCurrency', 'activeDaysPassed', 'activeDaysLeft', 'inactive', 'budgets', 'start', 'end', 'sums'

View File

@ -148,6 +148,6 @@ class HomeController extends Controller
$user = auth()->user(); $user = auth()->user();
event(new RequestedVersionCheckStatus($user)); event(new RequestedVersionCheckStatus($user));
return view('index', compact('count', 'subTitle', 'transactions', 'billCount', 'start', 'end', 'today')); return prefixView('index', compact('count', 'subTitle', 'transactions', 'billCount', 'start', 'end', 'today'));
} }
} }

View File

@ -21,6 +21,7 @@
declare(strict_types=1); declare(strict_types=1);
use Illuminate\Contracts\View\Factory as ViewFactory;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Create The Application | Create The Application
@ -56,6 +57,7 @@ if (!function_exists('str_is_equal')) {
/** /**
* @param string $left * @param string $left
* @param string $right * @param string $right
*
* @return bool * @return bool
*/ */
function str_is_equal(string $left, string $right): bool function str_is_equal(string $left, string $right): bool
@ -64,6 +66,41 @@ if (!function_exists('str_is_equal')) {
} }
} }
if (!function_exists('prefixView')) {
/**
* Get the evaluated view contents for the given view.
*
* @param string|null $view
* @param \Illuminate\Contracts\Support\Arrayable|array $data
* @param array $mergeData
*
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
function prefixView($view = null, $data = [], $mergeData = [])
{
$factory = app(ViewFactory::class);
if (func_num_args() === 0) {
return $factory;
}
$prefixView = $view;
if (
true === env('APP_DEBUG', false)
&& null !== $view
&& is_string($view)) {
// do something with view:
$layout = env('FIREFLY_III_LAYOUT', 'v1');
$prefixView = sprintf('%s/%s', $layout, $view);
if(false ===$factory->exists($view)) {
// fall back to v1.
$prefixView = sprintf('%s/%s', 'v1', $view);
}
}
return $factory->make($prefixView, $data, $mergeData);
}
}
$app = new Illuminate\Foundation\Application( $app = new Illuminate\Foundation\Application(
realpath(__DIR__ . '/../') realpath(__DIR__ . '/../')
); );

View File

@ -39,7 +39,7 @@ return [
| |
*/ */
'view' => 'partials/layout/breadcrumbs', 'view' => sprintf('%s/partials/layout/breadcrumbs', env('FIREFLY_III_LAYOUT', 'v1')),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -21,13 +21,6 @@
declare(strict_types=1); declare(strict_types=1);
// simple hack to force v2. Used for demo until next release.
$layout = env('FIREFLY_III_LAYOUT', 'v1');
if (isset($_GET['layout']) && 'v2' === $_GET['layout'] && 'demo@firefly' === env('DEMO_USERNAME')) {
$layout = 'v2';
}
return [ return [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -41,7 +34,7 @@ return [
*/ */
'paths' => [ 'paths' => [
realpath(base_path(sprintf('resources/views/%s', $layout))), realpath(base_path('resources/views')),
], ],
/* /*
@ -55,6 +48,6 @@ return [
| |
*/ */
'compiled' => realpath(storage_path(sprintf('framework/views/%s', $layout))), 'compiled' => realpath(storage_path('framework/views')),
]; ];