diff --git a/app/Domain/Goalcanvas/Controllers/Dashboard.php b/app/Domain/Goalcanvas/Controllers/Dashboard.php
index b2f70629a9..5aed828c87 100644
--- a/app/Domain/Goalcanvas/Controllers/Dashboard.php
+++ b/app/Domain/Goalcanvas/Controllers/Dashboard.php
@@ -305,6 +305,18 @@ public function run()
}
}
+ // request
+ // $filter['status'] = request('filter_status', session('filter_status', 'all'));
+ // session(['filter_status' => $filter['status']]);
+ // $filter['relates'] = request('filter_relates', session('filter_relates', 'all'));
+ // session(['filter_relates' => $filter['relates']]);
+
+ $filter['status'] = $_GET['filter_status'] ?? (session("filter_status") ?? 'all');
+ session(["filter_status" => $filter['status']]);
+ $filter['relates'] = $_GET['filter_relates'] ?? (session("filter_relates") ?? 'all');
+ session(["filter_relates" => $filter['relates']]);
+
+ $this->tpl->assign('filter', $filter);
$this->tpl->assign('currentCanvas', $currentCanvasId);
$this->tpl->assign('goalStats', $goalAnalytics);
$this->tpl->assign('canvasIcon', $this->canvasRepo->getIcon());
diff --git a/app/Domain/Goalcanvas/Controllers/DelCanvasItem.php b/app/Domain/Goalcanvas/Controllers/DelCanvasItem.php
index 81e5e8b9c0..7406bf7fa7 100644
--- a/app/Domain/Goalcanvas/Controllers/DelCanvasItem.php
+++ b/app/Domain/Goalcanvas/Controllers/DelCanvasItem.php
@@ -12,6 +12,7 @@
class DelCanvasItem extends \Leantime\Domain\Canvas\Controllers\DelCanvasItem
{
protected const CANVAS_NAME = 'goal';
+
}
}
diff --git a/app/Domain/Goalcanvas/Templates/bigRockDialog.blade.php b/app/Domain/Goalcanvas/Templates/bigRockDialog.blade.php
index 8dd5e8618e..3e73bb1e97 100644
--- a/app/Domain/Goalcanvas/Templates/bigRockDialog.blade.php
+++ b/app/Domain/Goalcanvas/Templates/bigRockDialog.blade.php
@@ -25,10 +25,11 @@
+
+
+
+{!! $tpl->displayNotification() !!}
+
+
+
+
+
Progress: {{ round($goalStats['avgPercentComplete']) }}%
+
+
+
+ {{ sprintf(__("text.percent_complete"), round($goalStats['avgPercentComplete'])) }}
+
+
+
+
+
+
+
+
On Track
+ {{ $goalStats['goalsOnTrack'] }}
+
+
+
+
+
At Risk
+ {{ $goalStats['goalsAtRisk'] }}
+
+
+
+
+
Miss
+ {{ $goalStats['goalsMiss'] }}
+
+
+
+
+
+
+ @if (count($allCanvas) > 0)
+ @foreach ($tpl->get('allCanvas') as $canvasRow)
+
+
+ @php
+ $canvasSvc = app()->make(Goalcanvas::class);
+ $canvasItems = $canvasSvc->getCanvasItemsById($canvasRow["id"]);
+ @endphp
+
+
+
+
+ @if (!is_countable($canvasItems) || count($canvasItems) == 0)
+
No goals on this board yet. Open the
board to start adding goals
+ @endif
+ @foreach ($canvasItems as $row)
+ @php
+ $filterStatus = $filter['status'] ?? 'all';
+ $filterRelates = $filter['relates'] ?? 'all';
+ @endphp
+ @if ($row['box'] === $elementName && ($filterStatus == 'all' || $filterStatus == $row['status']) && ($filterRelates == 'all' || $filterRelates == $row['relates']))
+ @php
+ $comments = app()->make(Comments::class);
+ $nbcomments = $comments->countComments(moduleId: $row['id']);
+ @endphp
+
+
+
+
+
+ @if ($login::userIsAtLeast($roles::$editor))
+
+
+
+ @endif
+ @if ($login::userIsAtLeast($roles::$editor))
+
+
+ @endif
+
+
+
+
+
Metric: {{ $tpl->escape($row["description"]) }}
+
+
+ @php
+ $percentDone = $row["goalProgress"];
+ $metricTypeFront = '';
+ $metricTypeBack = '';
+ if ($row["metricType"] == "percent") {
+ $metricTypeBack = '%';
+ } elseif ($row["metricType"] == "currency") {
+ $metricTypeFront = __("language.currency");
+ }
+ @endphp
+
+
+
+
+ {{ sprintf(__("text.percent_complete"), $percentDone) }}
+
+
+
+
+
+ {{ sprintf(__("text.percent_complete"), $percentDone) }}
+
+
+
+
+ Start:
{{ $metricTypeFront . $row["startValue"] . $metricTypeBack }}
+
+
+ {{ __('label.current') }}:
{{ $metricTypeFront . $row["currentValue"] . $metricTypeBack }}
+
+
+ {{ __('label.goal') }}:
{{ $metricTypeFront . $row["endValue"] . $metricTypeBack }}
+
+
+
+
+
+ @if (!empty($statusLabels))
+
+
+
+
+ @endif
+
+ @if (!empty($relatesLabels))
+
+
+
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+
{{ $nbcomments }}
+
+
+
+
+ @if ($row['milestoneHeadline'] != '')
+
+
+
+ {{ __("label.loading_milestone") }}
+
+
+ @endif
+
+
+ @endif
+ @endforeach
+
+
+
+
+
+
+ @endforeach
+ @endif
+
+
+viewFactory->make(
+ $tpl->getTemplatePath('canvas', 'showCanvasBottom'),
+ array_merge($__data, ['canvasName' => 'goal'])
+)->render(); ?>
+
+@endsection
\ No newline at end of file
diff --git a/app/Domain/Goalcanvas/Templates/dashboard.tpl.php b/app/Domain/Goalcanvas/Templates/dashboard.tpl.php
deleted file mode 100644
index dddd1fcfb1..0000000000
--- a/app/Domain/Goalcanvas/Templates/dashboard.tpl.php
+++ /dev/null
@@ -1,724 +0,0 @@
- $val) {
- $$var = $val; // necessary for blade refactor
-}
-$canvasName = 'goal';
-$elementName = 'goal';
-
-
-/**
- * showCanvasTop.inc template - Top part of the main canvas page
- *
- * Required variables:
- * - $canvasName Name of current canvas
- */
-
-$canvasTitle = '';
-$allCanvas = $tpl->get('allCanvas');
-$canvasIcon = $tpl->get('canvasIcon');
-$canvasTypes = $tpl->get('canvasTypes');
-$statusLabels = $statusLabels ?? $tpl->get('statusLabels');
-$relatesLabels = $relatesLabels ?? $tpl->get('relatesLabels');
-$dataLabels = $tpl->get('dataLabels');
-$disclaimer = $tpl->get('disclaimer');
-$canvasItems = $tpl->get('canvasItems');
-
-$filter['status'] = $_GET['filter_status'] ?? (session("filter_status") ?? 'all');
-session(["filter_status" => $filter['status']]);
-$filter['relates'] = $_GET['filter_relates'] ?? (session("filter_relates") ?? 'all');
-session(["filter_relates" => $filter['relates']]);
-
-//get canvas title
-foreach ($tpl->get('allCanvas') as $canvasRow) {
- if ($canvasRow["id"] == $tpl->get('currentCanvas')) {
- $canvasTitle = $canvasRow["title"];
- $canvasId = $canvasRow["id"];
- break;
- }
-}
-
-$goalStats = $tpl->get("goalStats");
-
-?>
-
-
-
-
-
-
-
-displayNotification(); ?>
-
-
-
-
-
-
-
Progress: %
-
-
-
- =sprintf($tpl->__("text.percent_complete"), round($goalStats['avgPercentComplete']))?>
-
-
-
-
-
-
-
-
-
-
On Track
- =$goalStats['goalsOnTrack'] ?>
-
-
-
-
-
At Risk
- =$goalStats['goalsAtRisk'] ?>
-
-
-
-
-
Miss
- =$goalStats['goalsMiss'] ?>
-
-
-
-
-
-
-
-
-
-
-
- 0) {?>
- get('allCanvas') as $canvasRow) { ?>
-
-
- make(Goalcanvas::class);
- $canvasItems = $canvasSvc->getCanvasItemsById($canvasRow["id"]);
- ?>
-
" class="sortableTicketList disabled col-md-12" style="padding-top:15px;">
-
-
-
-
- No goals on this board yet. Open the
board to start adding goals
";
- }
- ?>
- make(Comments::class);
- $nbcomments = $comments->countComments(moduleId: $row['id']);
- ?>
-
-
">
-
-
-
-
-
-
-
Metric: =$tpl->escape($row["description"]) ?>
-
-
- __("language.currency");
- }
- ?>
-
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone); ?>
-
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone)?>
-
-
-
-
- Start:
=$metricTypeFront . $row["startValue"] . $metricTypeBack ?>
-
-
- =$tpl->__('label.current') ?>:
=$metricTypeFront . $row["currentValue"] . $metricTypeBack ?>
-
-
- =$tpl->__('label.goal') ?>:
=$metricTypeFront . $row["endValue"] . $metricTypeBack ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- =$tpl->__("label.loading_milestone") ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0 && !empty($statusLabels)) {?>
-
-
-
-
-
-
-
-
-
-
- 0 && !empty($relatesLabels)) {?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get('allCanvas')) > 0) { ?>
-
-
-
-
- make(\Leantime\Domain\Comments\Repositories\Comments::class);
- $nbcomments = $comments->countComments(moduleId: $row['id']);
- ?>
-
-
">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- =$tpl->escape($row["assumptions"]) ?>
-
-
-
-
-
-
-
-
- =$tpl->__('label.current') ?>: =$row["data"] ?>
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone); ?>
-
-
- =$tpl->__('label.goal') ?>: =$row["conclusion"] ?>
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone)?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 60 ?
- $tpl->e(substr(($row['milestoneHeadline']), 0, 60) . " ...") : $tpl->e($row['milestoneHeadline']); ?>
-
-
- =sprintf($tpl->__("text.percent_complete"), $row['percentDone'])?>
-
-
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $row['percentDone'])?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
";
-
- echo "
";
- echo file_get_contents(ROOT . "/dist/images/svg/undraw_design_data_khdb.svg");
- echo "
";
-
- echo"
" . $tpl->__("headlines.goal.analysis") . "
";
- echo "
" . $tpl->__("text.goal.helper_content");
-
-
- echo"
";
- } ?>
-
-
-
-
-
- */
-
-echo $tpl->viewFactory->make(
- $tpl->getTemplatePath('canvas', 'showCanvasBottom'),
- array_merge($__data, ['canvasName' => 'goal'])
-)->render(); ?>
diff --git a/app/Domain/Goalcanvas/Templates/delCanvas.blade.php b/app/Domain/Goalcanvas/Templates/delCanvas.blade.php
new file mode 100644
index 0000000000..47bc018b79
--- /dev/null
+++ b/app/Domain/Goalcanvas/Templates/delCanvas.blade.php
@@ -0,0 +1,29 @@
+@extends($layout)
+@section('content')
+
+
+@php
+/**
+ * delCanvas.inc template - Generic template for deleting canvas
+ *
+ * Required variables:
+ * - $canvasName Name of current canvas
+ * - $csrf_token CSRF token (if used in your application)
+ */
+
+$id = filter_var($_GET['id'] ?? '', FILTER_SANITIZE_NUMBER_INT);
+$canvasName = 'goal'
+@endphp
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/app/Domain/Goalcanvas/Templates/delCanvas.tpl.php b/app/Domain/Goalcanvas/Templates/delCanvas.tpl.php
deleted file mode 100644
index 608a99bf40..0000000000
--- a/app/Domain/Goalcanvas/Templates/delCanvas.tpl.php
+++ /dev/null
@@ -1,13 +0,0 @@
- $val) {
- $$var = $val; // necessary for blade refactor
-}
-echo $tpl->viewFactory->make(
- $tpl->getTemplatePath('canvas', 'delCanvas'),
- array_merge($__data, ['canvasName' => 'goal'])
-)->render();
diff --git a/app/Domain/Goalcanvas/Templates/delCanvasItem.blade.php b/app/Domain/Goalcanvas/Templates/delCanvasItem.blade.php
new file mode 100644
index 0000000000..a6908c91d5
--- /dev/null
+++ b/app/Domain/Goalcanvas/Templates/delCanvasItem.blade.php
@@ -0,0 +1,25 @@
+@extends($layout)
+@section('content')
+
+@php
+
+/**
+ * delCanvasItem.inc template - Generic template for deleting canvas item
+ *
+ * Required variables:
+ * - $canvasName Name of current canvas
+ */
+
+$id = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
+$canvasName = 'goal'
+@endphp
+
+
+
+
+
+@endsection
diff --git a/app/Domain/Goalcanvas/Templates/delCanvasItem.tpl.php b/app/Domain/Goalcanvas/Templates/delCanvasItem.tpl.php
deleted file mode 100644
index 155d8a1b4c..0000000000
--- a/app/Domain/Goalcanvas/Templates/delCanvasItem.tpl.php
+++ /dev/null
@@ -1,13 +0,0 @@
- $val) {
- $$var = $val; // necessary for blade refactor
-}
-echo $tpl->viewFactory->make(
- $tpl->getTemplatePath('canvas', 'delCanvasItem'),
- array_merge($__data, ['canvasName' => 'goal'])
-)->render();
diff --git a/app/Domain/Goalcanvas/Templates/showBottomCanvas.blade.php b/app/Domain/Goalcanvas/Templates/showBottomCanvas.blade.php
new file mode 100644
index 0000000000..8f044e7e10
--- /dev/null
+++ b/app/Domain/Goalcanvas/Templates/showBottomCanvas.blade.php
@@ -0,0 +1,67 @@
+@if (count($tpl->get('allCanvas')) > 0)
+@else
+
+
+
+ {!! file_get_contents(ROOT . "/dist/images/svg/undraw_design_data_khdb.svg") !!}
+
+
+
{{ __("headlines.$canvasName.analysis") }}
+
{{ __("text.$canvasName.helper_content") }}
+
+ @if ($login::userIsAtLeast($roles::$editor))
+
+
+ {{ __("links.icon.create_new_board") }}
+
+ @endif
+
+@endif
+
+@if (!empty($disclaimer) && count($tpl->get('allCanvas')) > 0)
+
{{ $disclaimer }}
+@endif
+
+{!! $tpl->viewFactory->make($tpl->getTemplatePath('canvas', 'modals'), $__data)->render() !!}
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Domain/Goalcanvas/Templates/showCanvas.blade.php b/app/Domain/Goalcanvas/Templates/showCanvas.blade.php
new file mode 100644
index 0000000000..bdab4e29ba
--- /dev/null
+++ b/app/Domain/Goalcanvas/Templates/showCanvas.blade.php
@@ -0,0 +1,415 @@
+@extends($layout)
+@section('content')
+
+
+@php
+
+$canvasName = 'goal';
+$elementName = 'goal';
+
+@endphp
+
+@php
+
+$canvasTitle = '';
+$allCanvas = $tpl->get('allCanvas');
+$canvasIcon = $tpl->get('canvasIcon');
+$canvasTypes = $tpl->get('canvasTypes');
+$statusLabels = $statusLabels ?? $tpl->get('statusLabels');
+$relatesLabels = $relatesLabels ?? $tpl->get('relatesLabels');
+$dataLabels = $tpl->get('dataLabels');
+$disclaimer = $tpl->get('disclaimer');
+$canvasItems = $tpl->get('canvasItems');
+
+$filter['status'] = $_GET['filter_status'] ?? (session("filter_status") ?? 'all');
+session(["filter_status" => $filter['status']]);
+$filter['relates'] = $_GET['filter_relates'] ?? (session("filter_relates") ?? 'all');
+session(["filter_relates" => $filter['relates']]);
+
+//get canvas title
+foreach ($tpl->get('allCanvas') as $canvasRow) {
+if ($canvasRow["id"] == $tpl->get('currentCanvas')) {
+$canvasTitle = $canvasRow["title"];
+break;
+}
+}
+
+$tpl->assign('canvasTitle', $canvasTitle);
+
+@endphp
+
+
+
+
+
+
+
+
+ displayNotification(); ?>
+
+
+
+
+
+
+
+
+
+
+ @if (count($allCanvas) > 0 && !empty($statusLabels))
+ @if ($filter['status'] == 'all')
+
+ @else
+
+ @endif
+
+ @endif
+
+
+
+ @if (count($allCanvas) > 0 && !empty($relatesLabels))
+ @if ($filter['relates'] == 'all')
+
+ @else
+
+ @endif
+
+ @endif
+
+
+
+
+
+
+
+
+ @if (count($allCanvas) > 0)
+
+
+
+
+ @foreach ($canvasItems as $row)
+ @php
+ $filterStatus = $filter['status'] ?? 'all';
+ $filterRelates = $filter['relates'] ?? 'all';
+ @endphp
+
+ @if ($row['box'] === $elementName && ($filterStatus == 'all' || $filterStatus == $row['status']) && ($filterRelates == 'all' || $filterRelates == $row['relates']))
+ @php
+ $comments = app()->make(Comments::class);
+ $nbcomments = $comments->countComments(moduleId: $row['id']);
+ @endphp
+
+
+
+
+
+ @if ($login::userIsAtLeast($roles::$editor))
+
+
+
+
+ @endif
+
+
+
+
+
Metric: {{ $row["description"] }}
+
+
+ @php
+ $percentDone = $row["goalProgress"];
+ $metricTypeFront = '';
+ $metricTypeBack = '';
+ if ($row["metricType"] == "percent") {
+ $metricTypeBack = '%';
+ } elseif ($row["metricType"] == "currency") {
+ $metricTypeFront = __("language.currency");
+ }
+ @endphp
+
+
+
+
+ {{ sprintf(__("text.percent_complete"), $percentDone) }}
+
+
+
+
+
+ {{ sprintf(__("text.percent_complete"), $percentDone) }}
+
+
+
+
+ Start:
{{ $metricTypeFront . $row["startValue"] . $metricTypeBack }}
+
+
+ {{ __('label.current') }}:
{{ $metricTypeFront . $row["currentValue"] . $metricTypeBack }}
+
+
+ {{ __('label.goal') }}:
{{ $metricTypeFront . $row["endValue"] . $metricTypeBack }}
+
+
+
+
+
+ @if (!empty($statusLabels))
+
+
+
+
+ @endif
+
+ @if (!empty($relatesLabels))
+
+
+
+
+ @endif
+
+
+
+
+
+
+
+ {{ $nbcomments }}
+
+
+
+
+
+ @if ($row['milestoneHeadline'] != '')
+
+
+
+ {{ __("label.loading_milestone") }}
+
+
+ @endif
+
+
+ @endif
+ @endforeach
+
+
+
+
+
+
+ @if (count($canvasItems) == 0)
+
+
+
+ {!! file_get_contents(ROOT . "/dist/images/svg/undraw_design_data_khdb.svg") !!}
+
+
{{ __("headlines.goal.analysis") }}
+
{!! __("text.goal.helper_content") !!}
+
+ @endif
+
+
+ @endif
+
+
+
+
+
+
+
+ @if (count($tpl->get('allCanvas')) > 0)
+ @else
+
+
+
+ {!! file_get_contents(ROOT . "/dist/images/svg/undraw_design_data_khdb.svg") !!}
+
+
+
{{ __("headlines.$canvasName.analysis") }}
+
{{ __("text.$canvasName.helper_content") }}
+
+ @if ($login::userIsAtLeast($roles::$editor))
+
+
+ {{ __("links.icon.create_new_board") }}
+
+ @endif
+
+ @endif
+
+ @if (!empty($disclaimer) && count($tpl->get('allCanvas')) > 0)
+
{{ $disclaimer }}
+ @endif
+
+ {!! $tpl->viewFactory->make($tpl->getTemplatePath('canvas', 'modals'), $__data)->render() !!}
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/app/Domain/Goalcanvas/Templates/showCanvas.tpl.php b/app/Domain/Goalcanvas/Templates/showCanvas.tpl.php
deleted file mode 100644
index 2137b1e6a3..0000000000
--- a/app/Domain/Goalcanvas/Templates/showCanvas.tpl.php
+++ /dev/null
@@ -1,404 +0,0 @@
- $val) {
- $$var = $val; // necessary for blade refactor
-}
-$canvasName = 'goal';
-$elementName = 'goal';
-
-?>
-
-get('allCanvas');
-$canvasIcon = $tpl->get('canvasIcon');
-$canvasTypes = $tpl->get('canvasTypes');
-$statusLabels = $statusLabels ?? $tpl->get('statusLabels');
-$relatesLabels = $relatesLabels ?? $tpl->get('relatesLabels');
-$dataLabels = $tpl->get('dataLabels');
-$disclaimer = $tpl->get('disclaimer');
-$canvasItems = $tpl->get('canvasItems');
-
-$filter['status'] = $_GET['filter_status'] ?? (session("filter_status") ?? 'all');
-session(["filter_status" => $filter['status']]);
-$filter['relates'] = $_GET['filter_relates'] ?? (session("filter_relates") ?? 'all');
-session(["filter_relates" => $filter['relates']]);
-
-//get canvas title
-foreach ($tpl->get('allCanvas') as $canvasRow) {
- if ($canvasRow["id"] == $tpl->get('currentCanvas')) {
- $canvasTitle = $canvasRow["title"];
- break;
- }
-}
-
-$tpl->assign('canvasTitle', $canvasTitle);
-
-?>
-
-
-
-
-
-
-
- displayNotification(); ?>
-
-
-
-
-
-
-
-
-
-
-
- 0 && !empty($statusLabels)) {?>
-
-
-
-
-
-
-
-
-
-
- 0 && !empty($relatesLabels)) {?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get('allCanvas')) > 0) { ?>
-
-
-
-
- make(Comments::class);
- $nbcomments = $comments->countComments(moduleId: $row['id']);
- ?>
-
-
">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Metric: =$tpl->escape($row["description"]) ?>
-
-
-
-
-
- __("language.currency");
- }
-
- ?>
-
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone); ?>
-
-
-
-
-
- =sprintf($tpl->__("text.percent_complete"), $percentDone)?>
-
-
-
-
- Start:
=$metricTypeFront . $row["startValue"] . $metricTypeBack ?>
-
-
- =$tpl->__('label.current') ?>:
=$metricTypeFront . $row["currentValue"] . $metricTypeBack ?>
-
-
- =$tpl->__('label.goal') ?>:
=$metricTypeFront . $row["endValue"] . $metricTypeBack ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- =$nbcomments ?>
-
-
-
-
-
-
-
-
-
- =$tpl->__("label.loading_milestone") ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
";
-
- echo "
";
- echo file_get_contents(ROOT . "/dist/images/svg/undraw_design_data_khdb.svg");
- echo "
";
-
- echo"
" . $tpl->__("headlines.goal.analysis") . "
";
- echo "
" . $tpl->__("text.goal.helper_content");
-
-
- echo"
";
- } ?>
-
-
-
-
-
-viewFactory->make(
- $tpl->getTemplatePath('canvas', 'showCanvasBottom'),
- array_merge($__data, ['canvasName' => 'goal'])
-)->render(); ?>
diff --git a/app/helpers.php b/app/helpers.php
index c76d65423a..5a7d462736 100644
--- a/app/helpers.php
+++ b/app/helpers.php
@@ -7,6 +7,7 @@
use Leantime\Core\Application;
use Leantime\Core\AppSettings;
use Leantime\Core\Bootloader;
+use Leantime\Core\IncomingRequest;
use Leantime\Core\Language;
use Leantime\Core\Support\Build;
use Leantime\Core\Support\Cast;
@@ -341,3 +342,27 @@ function storage_path($path = '')
}
}
+
+if (! function_exists('request')) {
+ /**
+ * Get an instance of the current request or an input item from the request.
+ *
+ * @param list
|string|null $key
+ * @param mixed $default
+ * @return ($key is null ? \Illuminate\Http\Request : ($key is string ? mixed : array))
+ */
+ function request($key = null, $default = null)
+ {
+ if (is_null($key)) {
+ return app()->make(IncomingRequest::class);
+ }
+
+ if (is_array($key)) {
+ return app()->make(IncomingRequest::class)->only($key);
+ }
+
+ $value = app()->make(IncomingRequest::class)->__get($key);
+
+ return is_null($value) ? value($default) : $value;
+ }
+}
diff --git a/public/dist/mix-manifest.json b/public/dist/mix-manifest.json
index 31410aae9b..acde37b1c1 100644
--- a/public/dist/mix-manifest.json
+++ b/public/dist/mix-manifest.json
@@ -17,51 +17,6 @@
"/images/03-1.png": "/images/03-1.png",
"/images/32px.png": "/images/32px.png",
"/images/40px.png": "/images/40px.png",
- "/images/Screenshots/Blueprints.png": "/images/Screenshots/Blueprints.png",
- "/images/Screenshots/Calendar.png": "/images/Screenshots/Calendar.png",
- "/images/Screenshots/Confetti.png": "/images/Screenshots/Confetti.png",
- "/images/Screenshots/Dashboard.png": "/images/Screenshots/Dashboard.png",
- "/images/Screenshots/Docs.png": "/images/Screenshots/Docs.png",
- "/images/Screenshots/DocsEmbed.png": "/images/Screenshots/DocsEmbed.png",
- "/images/Screenshots/DocsStandard.png": "/images/Screenshots/DocsStandard.png",
- "/images/Screenshots/Files.png": "/images/Screenshots/Files.png",
- "/images/Screenshots/Goals.png": "/images/Screenshots/Goals.png",
- "/images/Screenshots/Home.png": "/images/Screenshots/Home.png",
- "/images/Screenshots/Ideas.png": "/images/Screenshots/Ideas.png",
- "/images/Screenshots/Kanban2.png": "/images/Screenshots/Kanban2.png",
- "/images/Screenshots/LeanCanvas.png": "/images/Screenshots/LeanCanvas.png",
- "/images/Screenshots/Leancanvas.png": "/images/Screenshots/Leancanvas.png",
- "/images/Screenshots/Milestones.png": "/images/Screenshots/Milestones.png",
- "/images/Screenshots/MyProjects.png": "/images/Screenshots/MyProjects.png",
- "/images/Screenshots/Portfolio.png": "/images/Screenshots/Portfolio.png",
- "/images/Screenshots/ProjectDashboard.png": "/images/Screenshots/ProjectDashboard.png",
- "/images/Screenshots/Reports.png": "/images/Screenshots/Reports.png",
- "/images/Screenshots/Strategy.png": "/images/Screenshots/Strategy.png",
- "/images/Screenshots/Task.png": "/images/Screenshots/Task.png",
- "/images/Screenshots/Tasks-calendar.png": "/images/Screenshots/Tasks-calendar.png",
- "/images/Screenshots/Tasks-kanban.png": "/images/Screenshots/Tasks-kanban.png",
- "/images/Screenshots/Tasks-list.png": "/images/Screenshots/Tasks-list.png",
- "/images/Screenshots/Tasks-table.png": "/images/Screenshots/Tasks-table.png",
- "/images/Screenshots/Tasks-timeline.png": "/images/Screenshots/Tasks-timeline.png",
- "/images/Screenshots/TimesheetAdmin.png": "/images/Screenshots/TimesheetAdmin.png",
- "/images/Screenshots/Timesheets.png": "/images/Screenshots/Timesheets.png",
- "/images/Screenshots/ToDoKanban.png": "/images/Screenshots/ToDoKanban.png",
- "/images/Screenshots/ToDoTable.png": "/images/Screenshots/ToDoTable.png",
- "/images/Screenshots/ToDoView.png": "/images/Screenshots/ToDoView.png",
- "/images/Screenshots/UserDashboard.png": "/images/Screenshots/UserDashboard.png",
- "/images/Screenshots/apps.png": "/images/Screenshots/apps.png",
- "/images/Screenshots/blueprints.png": "/images/Screenshots/blueprints.png",
- "/images/Screenshots/calendar.png": "/images/Screenshots/calendar.png",
- "/images/Screenshots/dark.png": "/images/Screenshots/dark.png",
- "/images/Screenshots/docs.png": "/images/Screenshots/docs.png",
- "/images/Screenshots/goals.png": "/images/Screenshots/goals.png",
- "/images/Screenshots/kanban.png": "/images/Screenshots/kanban.png",
- "/images/Screenshots/mywork.png": "/images/Screenshots/mywork.png",
- "/images/Screenshots/projectDashboard.png": "/images/Screenshots/projectDashboard.png",
- "/images/Screenshots/table.png": "/images/Screenshots/table.png",
- "/images/Screenshots/timeline.png": "/images/Screenshots/timeline.png",
- "/images/Screenshots/timesheet.png": "/images/Screenshots/timesheet.png",
- "/images/ajaxLoader.gif": "/images/ajaxLoader.gif",
"/images/apple-touch-icon.png": "/images/apple-touch-icon.png",
"/images/backgrounds/bg0.png": "/images/backgrounds/bg0.png",
"/images/backgrounds/bg1.png": "/images/backgrounds/bg1.png",
@@ -71,27 +26,17 @@
"/images/backgrounds/bg5.png": "/images/backgrounds/bg5.png",
"/images/backgrounds/bg6.png": "/images/backgrounds/bg6.png",
"/images/backgrounds/bg7.png": "/images/backgrounds/bg7.png",
- "/images/bg0.png": "/images/bg0.png",
- "/images/bg2.png": "/images/bg2.png",
"/images/calarrow.png": "/images/calarrow.png",
- "/images/canvas.PNG": "/images/canvas.PNG",
"/images/chosen-sprite-light.png": "/images/chosen-sprite-light.png",
"/images/chosen-sprite-light@2x.png": "/images/chosen-sprite-light@2x.png",
"/images/chosen-sprite.png": "/images/chosen-sprite.png",
- "/images/close.gif": "/images/close.gif",
"/images/close.png": "/images/close.png",
- "/images/controls.png": "/images/controls.png",
- "/images/default-user.png": "/images/default-user.png",
"/images/discord-logo.png": "/images/discord-logo.png",
"/images/doc.png": "/images/doc.png",
- "/images/emptyChartBg.png": "/images/emptyChartBg.png",
"/images/favicon.png": "/images/favicon.png",
- "/images/glyphicons-halflings-white.png": "/images/glyphicons-halflings-white.png",
- "/images/glyphicons-halflings.png": "/images/glyphicons-halflings.png",
"/images/icon-192.png": "/images/icon-192.png",
"/images/icon-512.png": "/images/icon-512.png",
"/images/index.html": "/images/index.html",
- "/images/leantime-no-access.jpg": "/images/leantime-no-access.jpg",
"/images/loading-animation.svg": "/images/loading-animation.svg",
"/images/logo-powered-by-leantime.png": "/images/logo-powered-by-leantime.png",
"/images/logo.png": "/images/logo.png",
@@ -99,28 +44,28 @@
"/images/logo_blue.png": "/images/logo_blue.png",
"/images/logo_blue.svg": "/images/logo_blue.svg",
"/images/mattermost-logoHorizontal.png": "/images/mattermost-logoHorizontal.png",
- "/images/next.gif": "/images/next.gif",
- "/images/onboarding/canvasScreen.png": "/images/onboarding/canvasScreen.png",
- "/images/onboarding/ideaScreen.png": "/images/onboarding/ideaScreen.png",
- "/images/onboarding/retroScreen.png": "/images/onboarding/retroScreen.png",
- "/images/onboarding/roadmapScreen.png": "/images/onboarding/roadmapScreen.png",
- "/images/onboarding/todoScreen.png": "/images/onboarding/todoScreen.png",
"/images/openid-icon.png": "/images/openid-icon.png",
- "/images/prev.gif": "/images/prev.gif",
- "/images/registrationBg.png": "/images/registrationBg.png",
+ "/images/Screenshots/apps.png": "/images/Screenshots/apps.png",
+ "/images/Screenshots/blueprints.png": "/images/Screenshots/blueprints.png",
+ "/images/Screenshots/calendar.png": "/images/Screenshots/calendar.png",
+ "/images/Screenshots/dark.png": "/images/Screenshots/dark.png",
+ "/images/Screenshots/docs.png": "/images/Screenshots/docs.png",
+ "/images/Screenshots/goals.png": "/images/Screenshots/goals.png",
+ "/images/Screenshots/kanban.png": "/images/Screenshots/kanban.png",
+ "/images/Screenshots/mywork.png": "/images/Screenshots/mywork.png",
+ "/images/Screenshots/projectDashboard.png": "/images/Screenshots/projectDashboard.png",
+ "/images/Screenshots/table.png": "/images/Screenshots/table.png",
+ "/images/Screenshots/timeline.png": "/images/Screenshots/timeline.png",
+ "/images/Screenshots/timesheet.png": "/images/Screenshots/timesheet.png",
"/images/spotlightBg.png": "/images/spotlightBg.png",
- "/images/svg/30h/logo.png": "/images/svg/30h/logo.png",
- "/images/svg/SVG/logo.svg": "/images/svg/SVG/logo.svg",
"/images/svg/apps-grid-icon.svg": "/images/svg/apps-grid-icon.svg",
"/images/svg/csv-icon.svg": "/images/svg/csv-icon.svg",
"/images/svg/loading-animation.svg": "/images/svg/loading-animation.svg",
- "/images/svg/logo.svg": "/images/svg/logo.svg",
- "/images/svg/undraw_Organizing_projects_0p9a.svg": "/images/svg/undraw_Organizing_projects_0p9a.svg",
- "/images/svg/undraw_a_moment_to_relax_bbpa.svg": "/images/svg/undraw_a_moment_to_relax_bbpa.svg",
"/images/svg/undraw_adjustments_p22m.svg": "/images/svg/undraw_adjustments_p22m.svg",
"/images/svg/undraw_adventure_map_hnin.svg": "/images/svg/undraw_adventure_map_hnin.svg",
"/images/svg/undraw_air_support_re_nybl.svg": "/images/svg/undraw_air_support_re_nybl.svg",
"/images/svg/undraw_attached_file_re_0n9b.svg": "/images/svg/undraw_attached_file_re_0n9b.svg",
+ "/images/svg/undraw_a_moment_to_relax_bbpa.svg": "/images/svg/undraw_a_moment_to_relax_bbpa.svg",
"/images/svg/undraw_blooming_re_2kc4.svg": "/images/svg/undraw_blooming_re_2kc4.svg",
"/images/svg/undraw_book_reading_re_fu2c.svg": "/images/svg/undraw_book_reading_re_fu2c.svg",
"/images/svg/undraw_business_decisions_re_84ag.svg": "/images/svg/undraw_business_decisions_re_84ag.svg",
@@ -130,7 +75,6 @@
"/images/svg/undraw_complete_task_u2c3.svg": "/images/svg/undraw_complete_task_u2c3.svg",
"/images/svg/undraw_dark_mode_2xam.svg": "/images/svg/undraw_dark_mode_2xam.svg",
"/images/svg/undraw_design_data_khdb.svg": "/images/svg/undraw_design_data_khdb.svg",
- "/images/svg/undraw_donut_love_kau1.svg": "/images/svg/undraw_donut_love_kau1.svg",
"/images/svg/undraw_events_2p66.svg": "/images/svg/undraw_events_2p66.svg",
"/images/svg/undraw_events_re_98ue.svg": "/images/svg/undraw_events_re_98ue.svg",
"/images/svg/undraw_explore_re_8l4v.svg": "/images/svg/undraw_explore_re_8l4v.svg",
@@ -138,7 +82,6 @@
"/images/svg/undraw_game_day_ucx9.svg": "/images/svg/undraw_game_day_ucx9.svg",
"/images/svg/undraw_goals_re_lu76.svg": "/images/svg/undraw_goals_re_lu76.svg",
"/images/svg/undraw_happy_music_g6wc.svg": "/images/svg/undraw_happy_music_g6wc.svg",
- "/images/svg/undraw_happy_news_re_tsbd (1).svg": "/images/svg/undraw_happy_news_re_tsbd (1).svg",
"/images/svg/undraw_happy_news_re_tsbd.svg": "/images/svg/undraw_happy_news_re_tsbd.svg",
"/images/svg/undraw_image__folder_re_hgp7.svg": "/images/svg/undraw_image__folder_re_hgp7.svg",
"/images/svg/undraw_instant_support_re_s7un.svg": "/images/svg/undraw_instant_support_re_s7un.svg",
@@ -151,8 +94,9 @@
"/images/svg/undraw_no_data_re_kwbl.svg": "/images/svg/undraw_no_data_re_kwbl.svg",
"/images/svg/undraw_online_connection_6778.svg": "/images/svg/undraw_online_connection_6778.svg",
"/images/svg/undraw_online_party_re_7t6g.svg": "/images/svg/undraw_online_party_re_7t6g.svg",
- "/images/svg/undraw_party_re_nmwj.svg": "/images/svg/undraw_party_re_nmwj.svg",
+ "/images/svg/undraw_Organizing_projects_0p9a.svg": "/images/svg/undraw_Organizing_projects_0p9a.svg",
"/images/svg/undraw_partying_re_at7f.svg": "/images/svg/undraw_partying_re_at7f.svg",
+ "/images/svg/undraw_party_re_nmwj.svg": "/images/svg/undraw_party_re_nmwj.svg",
"/images/svg/undraw_photos_re_pvh3.svg": "/images/svg/undraw_photos_re_pvh3.svg",
"/images/svg/undraw_powerful_re_frhr.svg": "/images/svg/undraw_powerful_re_frhr.svg",
"/images/svg/undraw_progressive_app_m-9-ms.svg": "/images/svg/undraw_progressive_app_m-9-ms.svg",
@@ -174,39 +118,12 @@
"/images/svg/undraw_thought_process_re_om58.svg": "/images/svg/undraw_thought_process_re_om58.svg",
"/images/svg/undraw_time_management_30iu.svg": "/images/svg/undraw_time_management_30iu.svg",
"/images/svg/undraw_time_management_re_tk5w.svg": "/images/svg/undraw_time_management_re_tk5w.svg",
- "/images/svg/undraw_treasure_of-9-i.svg": "/images/svg/undraw_treasure_of-9-i.svg",
"/images/svg/undraw_welcome_re_h3d9.svg": "/images/svg/undraw_welcome_re_h3d9.svg",
"/images/svg/undraw_welcoming_re_x0qo.svg": "/images/svg/undraw_welcoming_re_x0qo.svg",
"/images/svg/undraw_wishes_icyp.svg": "/images/svg/undraw_wishes_icyp.svg",
"/images/throbber.gif": "/images/throbber.gif",
"/images/undraw_progressive_app_m9ms.png": "/images/undraw_progressive_app_m9ms.png",
"/images/zulip-org-logo.png": "/images/zulip-org-logo.png",
- "/fonts/Atkinson-Hyperlegible-Bold-102.ttf": "/fonts/Atkinson-Hyperlegible-Bold-102.ttf",
- "/fonts/Atkinson-Hyperlegible-Bold-102a.woff2": "/fonts/Atkinson-Hyperlegible-Bold-102a.woff2",
- "/fonts/Atkinson-Hyperlegible-BoldItalic-102.ttf": "/fonts/Atkinson-Hyperlegible-BoldItalic-102.ttf",
- "/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2": "/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2",
- "/fonts/Atkinson-Hyperlegible-Italic-102.ttf": "/fonts/Atkinson-Hyperlegible-Italic-102.ttf",
- "/fonts/Atkinson-Hyperlegible-Italic-102a.woff2": "/fonts/Atkinson-Hyperlegible-Italic-102a.woff2",
- "/fonts/Atkinson-Hyperlegible-Regular-102.ttf": "/fonts/Atkinson-Hyperlegible-Regular-102.ttf",
- "/fonts/Atkinson-Hyperlegible-Regular-102a.woff2": "/fonts/Atkinson-Hyperlegible-Regular-102a.woff2",
- "/fonts/Roboto-Bold.ttf": "/fonts/Roboto-Bold.ttf",
- "/fonts/Roboto-Bold.woff2": "/fonts/Roboto-Bold.woff2",
- "/fonts/Roboto-Italic.ttf": "/fonts/Roboto-Italic.ttf",
- "/fonts/Roboto-Italic.woff2": "/fonts/Roboto-Italic.woff2",
- "/fonts/Roboto-Light.ttf": "/fonts/Roboto-Light.ttf",
- "/fonts/Roboto-Light.woff2": "/fonts/Roboto-Light.woff2",
- "/fonts/Roboto-LightItalic.ttf": "/fonts/Roboto-LightItalic.ttf",
- "/fonts/Roboto-LightItalic.woff2": "/fonts/Roboto-LightItalic.woff2",
- "/fonts/Roboto-Medium.ttf": "/fonts/Roboto-Medium.ttf",
- "/fonts/Roboto-Medium.woff2": "/fonts/Roboto-Medium.woff2",
- "/fonts/Roboto-MediumItalic.ttf": "/fonts/Roboto-MediumItalic.ttf",
- "/fonts/Roboto-MediumItalic.woff2": "/fonts/Roboto-MediumItalic.woff2",
- "/fonts/Roboto-Regular.ttf": "/fonts/Roboto-Regular.ttf",
- "/fonts/Roboto-Regular.woff2": "/fonts/Roboto-Regular.woff2",
- "/fonts/Shantell_Sans-Informal_Bold.woff2": "/fonts/Shantell_Sans-Informal_Bold.woff2",
- "/fonts/Shantell_Sans-Informal_Bold_Italic.woff2": "/fonts/Shantell_Sans-Informal_Bold_Italic.woff2",
- "/fonts/Shantell_Sans-Informal_Regular.woff2": "/fonts/Shantell_Sans-Informal_Regular.woff2",
- "/fonts/Shantell_Sans-Informal_Regular_Italic.woff2": "/fonts/Shantell_Sans-Informal_Regular_Italic.woff2",
"/fonts/atkinson/Atkinson-Hyperlegible-Bold-102.ttf": "/fonts/atkinson/Atkinson-Hyperlegible-Bold-102.ttf",
"/fonts/atkinson/Atkinson-Hyperlegible-Bold-102a.woff2": "/fonts/atkinson/Atkinson-Hyperlegible-Bold-102a.woff2",
"/fonts/atkinson/Atkinson-Hyperlegible-BoldItalic-102.ttf": "/fonts/atkinson/Atkinson-Hyperlegible-BoldItalic-102.ttf",
@@ -216,6 +133,14 @@
"/fonts/atkinson/Atkinson-Hyperlegible-Italic-102a.woff2": "/fonts/atkinson/Atkinson-Hyperlegible-Italic-102a.woff2",
"/fonts/atkinson/Atkinson-Hyperlegible-Regular-102.ttf": "/fonts/atkinson/Atkinson-Hyperlegible-Regular-102.ttf",
"/fonts/atkinson/Atkinson-Hyperlegible-Regular-102a.woff2": "/fonts/atkinson/Atkinson-Hyperlegible-Regular-102a.woff2",
+ "/fonts/Atkinson-Hyperlegible-Bold-102.ttf": "/fonts/Atkinson-Hyperlegible-Bold-102.ttf",
+ "/fonts/Atkinson-Hyperlegible-Bold-102a.woff2": "/fonts/Atkinson-Hyperlegible-Bold-102a.woff2",
+ "/fonts/Atkinson-Hyperlegible-BoldItalic-102.ttf": "/fonts/Atkinson-Hyperlegible-BoldItalic-102.ttf",
+ "/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2": "/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2",
+ "/fonts/Atkinson-Hyperlegible-Italic-102.ttf": "/fonts/Atkinson-Hyperlegible-Italic-102.ttf",
+ "/fonts/Atkinson-Hyperlegible-Italic-102a.woff2": "/fonts/Atkinson-Hyperlegible-Italic-102a.woff2",
+ "/fonts/Atkinson-Hyperlegible-Regular-102.ttf": "/fonts/Atkinson-Hyperlegible-Regular-102.ttf",
+ "/fonts/Atkinson-Hyperlegible-Regular-102a.woff2": "/fonts/Atkinson-Hyperlegible-Regular-102a.woff2",
"/fonts/fa-brands-400.ttf": "/fonts/fa-brands-400.ttf",
"/fonts/fa-brands-400.woff2": "/fonts/fa-brands-400.woff2",
"/fonts/fa-regular-400.ttf": "/fonts/fa-regular-400.ttf",
@@ -250,29 +175,43 @@
"/fonts/roboto/Roboto-Thin.woff2": "/fonts/roboto/Roboto-Thin.woff2",
"/fonts/roboto/Roboto-ThinItalic.ttf": "/fonts/roboto/Roboto-ThinItalic.ttf",
"/fonts/roboto/Roboto-ThinItalic.woff2": "/fonts/roboto/Roboto-ThinItalic.woff2",
+ "/fonts/Roboto-Bold.ttf": "/fonts/Roboto-Bold.ttf",
+ "/fonts/Roboto-Bold.woff2": "/fonts/Roboto-Bold.woff2",
+ "/fonts/Roboto-Italic.ttf": "/fonts/Roboto-Italic.ttf",
+ "/fonts/Roboto-Italic.woff2": "/fonts/Roboto-Italic.woff2",
+ "/fonts/Roboto-Light.ttf": "/fonts/Roboto-Light.ttf",
+ "/fonts/Roboto-Light.woff2": "/fonts/Roboto-Light.woff2",
+ "/fonts/Roboto-LightItalic.ttf": "/fonts/Roboto-LightItalic.ttf",
+ "/fonts/Roboto-LightItalic.woff2": "/fonts/Roboto-LightItalic.woff2",
+ "/fonts/Roboto-Medium.ttf": "/fonts/Roboto-Medium.ttf",
+ "/fonts/Roboto-Medium.woff2": "/fonts/Roboto-Medium.woff2",
+ "/fonts/Roboto-MediumItalic.ttf": "/fonts/Roboto-MediumItalic.ttf",
+ "/fonts/Roboto-MediumItalic.woff2": "/fonts/Roboto-MediumItalic.woff2",
"/fonts/shantell/Shantell_Sans-Informal_Bold.woff2": "/fonts/shantell/Shantell_Sans-Informal_Bold.woff2",
"/fonts/shantell/Shantell_Sans-Informal_Bold_Italic.woff2": "/fonts/shantell/Shantell_Sans-Informal_Bold_Italic.woff2",
"/fonts/shantell/Shantell_Sans-Informal_Regular.woff2": "/fonts/shantell/Shantell_Sans-Informal_Regular.woff2",
"/fonts/shantell/Shantell_Sans-Informal_Regular_Italic.woff2": "/fonts/shantell/Shantell_Sans-Informal_Regular_Italic.woff2",
- "/lottie/leo/Dino.json": "/lottie/leo/Dino.json",
- "/lottie/leo/Loading_Clock_Animation.json": "/lottie/leo/Loading_Clock_Animation.json",
- "/lottie/leo/Lochnes.json": "/lottie/leo/Lochnes.json",
- "/lottie/leo/Mermaid.json": "/lottie/leo/Mermaid.json",
- "/lottie/leo/Narhwal.json": "/lottie/leo/Narhwal.json",
- "/lottie/leo/Peek_Unicorn.json": "/lottie/leo/Peek_Unicorn.json",
- "/lottie/leo/Pirate.json": "/lottie/leo/Pirate.json",
- "/lottie/leo/Rainbow_Unicorn.json": "/lottie/leo/Rainbow_Unicorn.json",
- "/lottie/leo/Rolling LEO.json": "/lottie/leo/Rolling LEO.json",
- "/lottie/leo/annnoucment.json": "/lottie/leo/annnoucment.json",
+ "/fonts/Shantell_Sans-Informal_Bold.woff2": "/fonts/Shantell_Sans-Informal_Bold.woff2",
+ "/fonts/Shantell_Sans-Informal_Bold_Italic.woff2": "/fonts/Shantell_Sans-Informal_Bold_Italic.woff2",
+ "/fonts/Shantell_Sans-Informal_Regular.woff2": "/fonts/Shantell_Sans-Informal_Regular.woff2",
+ "/fonts/Shantell_Sans-Informal_Regular_Italic.woff2": "/fonts/Shantell_Sans-Informal_Regular_Italic.woff2",
"/lottie/leo/announcement.json": "/lottie/leo/announcement.json",
+ "/lottie/leo/Dino.json": "/lottie/leo/Dino.json",
"/lottie/leo/exclamation.json": "/lottie/leo/exclamation.json",
"/lottie/leo/happy.json": "/lottie/leo/happy.json",
"/lottie/leo/heart.json": "/lottie/leo/heart.json",
"/lottie/leo/in-robo.json": "/lottie/leo/in-robo.json",
"/lottie/leo/king_arthur.json": "/lottie/leo/king_arthur.json",
+ "/lottie/leo/Loading_Clock_Animation.json": "/lottie/leo/Loading_Clock_Animation.json",
+ "/lottie/leo/Lochnes.json": "/lottie/leo/Lochnes.json",
+ "/lottie/leo/Mermaid.json": "/lottie/leo/Mermaid.json",
"/lottie/leo/motivational_speaker.json": "/lottie/leo/motivational_speaker.json",
+ "/lottie/leo/Narhwal.json": "/lottie/leo/Narhwal.json",
"/lottie/leo/peaking.json": "/lottie/leo/peaking.json",
+ "/lottie/leo/Peek_Unicorn.json": "/lottie/leo/Peek_Unicorn.json",
"/lottie/leo/pirate.json": "/lottie/leo/pirate.json",
+ "/lottie/leo/Rainbow_Unicorn.json": "/lottie/leo/Rainbow_Unicorn.json",
+ "/lottie/leo/Rolling LEO.json": "/lottie/leo/Rolling LEO.json",
"/lottie/leo/sleep.json": "/lottie/leo/sleep.json",
"/lottie/leo/smoking.json": "/lottie/leo/smoking.json",
"/lottie/leo/still.json": "/lottie/leo/still.json",