Compare commits

...

5 Commits

Author SHA1 Message Date
Ron
cbdf1d489b Merge pull request #447 from fleetbase/dev-v0.7.13
Some checks failed
Fleetbase CI / Build and Start Docker Services (push) Has been cancelled
v0.7.13 ~ Connectivity Module + Positions Playback + Positions & Device Events Drawer
2025-10-28 05:48:35 +08:00
Ronald A. Richardson
785bc55bb7 v0.7.13 ~ Connectivity Module + Positions Playback + Positions & Device Events Drawer 2025-10-28 05:39:54 +08:00
Ron
d171d02aac Merge pull request #446 from fleetbase/dev-v0.7.12
Some checks failed
Fleetbase CI / Build and Start Docker Services (push) Has been cancelled
v0.7.12 ~ Patches and Order Board Improvement
2025-10-22 12:38:56 +08:00
Ronald A. Richardson
dfd4ee37df pin linux build version 2025-10-22 12:38:24 +08:00
Ronald A. Richardson
27c063fbfb v0.7.12 ~ Patches and Order Board Improvement 2025-10-22 12:21:58 +08:00
19 changed files with 855 additions and 616 deletions

View File

@@ -1,22 +1,17 @@
# 🚀 Fleetbase v0.7.11 — 2025-10-15
# 🚀 Fleetbase v0.7.13 — 2025-10-28
> Major update is here
> Connectivity Module + Positions Playback + Positions & Device Events Drawer
---
## ✨ Highlights
- UI/UX Refactor and improvements.
- Core API added `without` feature for `FleetbaseResource` classes, which filters properties from the JSON response of a resource.
- Added complete Reporting registry to Core API, and supported Schema
- Improved Custom Fields core feature
- FleetOps refactor completed
- Added Analytics -> Reports to FleetOps
- Added Order Kanban Board to Fleet-Ops
- UI/UX Refactor and Improvements
- Storefront patch for sending notifications without FCM/APN configured
- Storefront food truck orders automatically assign driver patch
- Added new complete translations: Arabic, Bulgarian, Spanish, French, Mongolian, Portuguese (Brazil), Russian, Vietnamese, and Chinese
- Custom Fields for all resources now here.
- Introduces the new Connectivity module in Fleet-Ops for managing telematics, devices, sensors with native support for Flespi, Geotab, and Samsara built in.
- Introduces Position replay for Vehicles
- Added new live map drawer tabs "Positions", and "Events" to view all trackable resources position data, as well as replay positions
- Improved the report query builder + fix drag sort on group by/aggregate fn and order by columns
- Patched entities by destination order view
- Improved movement tracker service to account for spead, improved bearing/heading for accurate playback and live tracking of assets
- Improved tracking endpoint for both vehicles and drivers
---

View File

@@ -20,10 +20,10 @@
"require": {
"php": "^8.0",
"appstract/laravel-opcache": "^4.0",
"fleetbase/core-api": "^1.6.18",
"fleetbase/fleetops-api": "^0.6.19",
"fleetbase/core-api": "^1.6.20",
"fleetbase/fleetops-api": "^0.6.21",
"fleetbase/registry-bridge": "^0.1.0",
"fleetbase/storefront-api": "^0.4.2",
"fleetbase/storefront-api": "^0.4.3",
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^10.0",
"laravel/octane": "^2.3",

379
api/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "50a570817358dfd52b876c771ed30aea",
"content-hash": "e7233912fa3ae9936f14283737e39794",
"packages": [
{
"name": "appstract/laravel-opcache",
@@ -124,16 +124,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.356.28",
"version": "3.356.43",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "aaf809461033836d120f3bbf7a4cf67e946281d1"
"reference": "5722f6ea95240ef28f1ded35448bedcccb0b0883"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/aaf809461033836d120f3bbf7a4cf67e946281d1",
"reference": "aaf809461033836d120f3bbf7a4cf67e946281d1",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/5722f6ea95240ef28f1ded35448bedcccb0b0883",
"reference": "5722f6ea95240ef28f1ded35448bedcccb0b0883",
"shasum": ""
},
"require": {
@@ -215,9 +215,9 @@
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.356.28"
"source": "https://github.com/aws/aws-sdk-php/tree/3.356.43"
},
"time": "2025-09-29T18:04:14+00:00"
"time": "2025-10-21T19:13:44+00:00"
},
{
"name": "aws/aws-sdk-php-laravel",
@@ -1147,21 +1147,21 @@
},
{
"name": "cuyz/valinor",
"version": "2.2.0",
"version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/CuyZ/Valinor.git",
"reference": "35470e576041dd9695ef36aceaab8925bc676586"
"reference": "212835b2efb89becd9881f4836e9b0b32ea105bf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/CuyZ/Valinor/zipball/35470e576041dd9695ef36aceaab8925bc676586",
"reference": "35470e576041dd9695ef36aceaab8925bc676586",
"url": "https://api.github.com/repos/CuyZ/Valinor/zipball/212835b2efb89becd9881f4836e9b0b32ea105bf",
"reference": "212835b2efb89becd9881f4836e9b0b32ea105bf",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.0",
"php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
"php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"conflict": {
"phpstan/phpstan": "<1.0 || >= 3.0",
@@ -1212,7 +1212,7 @@
],
"support": {
"issues": "https://github.com/CuyZ/Valinor/issues",
"source": "https://github.com/CuyZ/Valinor/tree/2.2.0"
"source": "https://github.com/CuyZ/Valinor/tree/2.3.1"
},
"funding": [
{
@@ -1220,7 +1220,7 @@
"type": "github"
}
],
"time": "2025-09-29T13:07:34+00:00"
"time": "2025-10-21T12:16:56+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -1299,16 +1299,16 @@
},
{
"name": "doctrine/dbal",
"version": "3.10.2",
"version": "3.10.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "c6c16cf787eaba3112203dfcd715fa2059c62282"
"reference": "65edaca19a752730f290ec2fb89d593cb40afb43"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/c6c16cf787eaba3112203dfcd715fa2059c62282",
"reference": "c6c16cf787eaba3112203dfcd715fa2059c62282",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/65edaca19a752730f290ec2fb89d593cb40afb43",
"reference": "65edaca19a752730f290ec2fb89d593cb40afb43",
"shasum": ""
},
"require": {
@@ -1324,14 +1324,14 @@
},
"require-dev": {
"doctrine/cache": "^1.11|^2.0",
"doctrine/coding-standard": "13.0.1",
"doctrine/coding-standard": "14.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2023.1",
"phpstan/phpstan": "2.1.22",
"phpstan/phpstan": "2.1.30",
"phpstan/phpstan-strict-rules": "^2",
"phpunit/phpunit": "9.6.23",
"slevomat/coding-standard": "8.16.2",
"squizlabs/php_codesniffer": "3.13.1",
"phpunit/phpunit": "9.6.29",
"slevomat/coding-standard": "8.24.0",
"squizlabs/php_codesniffer": "4.0.0",
"symfony/cache": "^5.4|^6.0|^7.0",
"symfony/console": "^4.4|^5.4|^6.0|^7.0"
},
@@ -1393,7 +1393,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.10.2"
"source": "https://github.com/doctrine/dbal/tree/3.10.3"
},
"funding": [
{
@@ -1409,7 +1409,7 @@
"type": "tidelift"
}
],
"time": "2025-09-04T23:51:27+00:00"
"time": "2025-10-09T09:05:12+00:00"
},
{
"name": "doctrine/deprecations",
@@ -1978,20 +1978,20 @@
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.18.0",
"version": "v4.19.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
"reference": "cb56001e54359df7ae76dc522d08845dc741621b"
"reference": "b287d2a16aceffbf6e0295559b39662612b77fcf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b",
"reference": "cb56001e54359df7ae76dc522d08845dc741621b",
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf",
"reference": "b287d2a16aceffbf6e0295559b39662612b77fcf",
"shasum": ""
},
"require": {
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -2033,9 +2033,9 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
"source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0"
"source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0"
},
"time": "2024-11-01T03:51:45+00:00"
"time": "2025-10-17T16:34:55+00:00"
},
{
"name": "fig/http-message-util",
@@ -2158,16 +2158,16 @@
},
{
"name": "fleetbase/core-api",
"version": "1.6.18",
"version": "1.6.20",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/core-api.git",
"reference": "e6bbffa495f5c081fd56559e6cc6c4dead8a4644"
"reference": "f5786609b581593945907a67f659a56bff8e0b93"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/e6bbffa495f5c081fd56559e6cc6c4dead8a4644",
"reference": "e6bbffa495f5c081fd56559e6cc6c4dead8a4644",
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/f5786609b581593945907a67f659a56bff8e0b93",
"reference": "f5786609b581593945907a67f659a56bff8e0b93",
"shasum": ""
},
"require": {
@@ -2252,9 +2252,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/core-api/issues",
"source": "https://github.com/fleetbase/core-api/tree/v1.6.18"
"source": "https://github.com/fleetbase/core-api/tree/v1.6.20"
},
"time": "2025-10-15T13:39:23+00:00"
"time": "2025-10-27T21:04:58+00:00"
},
{
"name": "fleetbase/countries",
@@ -2323,16 +2323,16 @@
},
{
"name": "fleetbase/fleetops-api",
"version": "0.6.19",
"version": "0.6.21",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/fleetops.git",
"reference": "6144f0cb7a610b171753ab5a7a9933eab5222ac5"
"reference": "df585850698a8deaa69c77a965f8ab6de145493e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/6144f0cb7a610b171753ab5a7a9933eab5222ac5",
"reference": "6144f0cb7a610b171753ab5a7a9933eab5222ac5",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/df585850698a8deaa69c77a965f8ab6de145493e",
"reference": "df585850698a8deaa69c77a965f8ab6de145493e",
"shasum": ""
},
"require": {
@@ -2407,9 +2407,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/fleetops/issues",
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.19"
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.21"
},
"time": "2025-10-15T13:54:23+00:00"
"time": "2025-10-27T21:19:21+00:00"
},
{
"name": "fleetbase/laravel-mysql-spatial",
@@ -2561,16 +2561,16 @@
},
{
"name": "fleetbase/storefront-api",
"version": "0.4.2",
"version": "0.4.3",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/storefront.git",
"reference": "fbd967b6a8faa4893faaed0a70ef7b57cf708cf3"
"reference": "71a30361531a549cc32324e4de7104e0e6822c54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/storefront/zipball/fbd967b6a8faa4893faaed0a70ef7b57cf708cf3",
"reference": "fbd967b6a8faa4893faaed0a70ef7b57cf708cf3",
"url": "https://api.github.com/repos/fleetbase/storefront/zipball/71a30361531a549cc32324e4de7104e0e6822c54",
"reference": "71a30361531a549cc32324e4de7104e0e6822c54",
"shasum": ""
},
"require": {
@@ -2638,9 +2638,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/storefront/issues",
"source": "https://github.com/fleetbase/storefront/tree/v0.4.2"
"source": "https://github.com/fleetbase/storefront/tree/v0.4.3"
},
"time": "2025-10-15T13:59:29+00:00"
"time": "2025-10-22T03:38:05+00:00"
},
{
"name": "fleetbase/twilio",
@@ -3386,16 +3386,16 @@
},
{
"name": "google/apiclient-services",
"version": "v0.414.0",
"version": "v0.417.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "5bd542b6d9639b89b95270ae85ed3062b4ca9b8e"
"reference": "d09f54168a8886ed758b5973e5231abefb5d5667"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/5bd542b6d9639b89b95270ae85ed3062b4ca9b8e",
"reference": "5bd542b6d9639b89b95270ae85ed3062b4ca9b8e",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/d09f54168a8886ed758b5973e5231abefb5d5667",
"reference": "d09f54168a8886ed758b5973e5231abefb5d5667",
"shasum": ""
},
"require": {
@@ -3424,9 +3424,9 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.414.0"
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.417.0"
},
"time": "2025-09-28T01:08:30+00:00"
"time": "2025-10-20T00:54:22+00:00"
},
{
"name": "google/auth",
@@ -3491,16 +3491,16 @@
},
{
"name": "google/cloud-core",
"version": "v1.64.3",
"version": "v1.67.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-cloud-php-core.git",
"reference": "9876bbc0fc1951b3d35a7928d7979d9ddbc3a963"
"reference": "2405b8116dcc4ec50756cc44486c149e34b1b4e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/9876bbc0fc1951b3d35a7928d7979d9ddbc3a963",
"reference": "9876bbc0fc1951b3d35a7928d7979d9ddbc3a963",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/2405b8116dcc4ec50756cc44486c149e34b1b4e5",
"reference": "2405b8116dcc4ec50756cc44486c149e34b1b4e5",
"shasum": ""
},
"require": {
@@ -3517,7 +3517,7 @@
"require-dev": {
"erusev/parsedown": "^1.6",
"google/cloud-common-protos": "~0.5",
"opis/closure": "^3",
"opis/closure": "^3.7|^4.0",
"phpdocumentor/reflection": "^5.3.3||^6.0",
"phpdocumentor/reflection-docblock": "^5.3",
"phpspec/prophecy-phpunit": "^2.0",
@@ -3551,22 +3551,22 @@
],
"description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
"support": {
"source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.64.3"
"source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.67.0"
},
"time": "2025-09-20T01:29:44+00:00"
"time": "2025-10-10T18:34:03+00:00"
},
{
"name": "google/cloud-storage",
"version": "v1.48.3",
"version": "v1.48.4",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-cloud-php-storage.git",
"reference": "028f54ad28cdd023686e650e5c21798c6735c317"
"reference": "4b81b682f6b1517c0c5f6152b2980195d23c1cef"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/028f54ad28cdd023686e650e5c21798c6735c317",
"reference": "028f54ad28cdd023686e650e5c21798c6735c317",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/4b81b682f6b1517c0c5f6152b2980195d23c1cef",
"reference": "4b81b682f6b1517c0c5f6152b2980195d23c1cef",
"shasum": ""
},
"require": {
@@ -3608,9 +3608,9 @@
],
"description": "Cloud Storage Client for PHP",
"support": {
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.48.3"
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.48.4"
},
"time": "2025-08-18T18:45:43+00:00"
"time": "2025-10-01T16:57:30+00:00"
},
{
"name": "google/common-protos",
@@ -3775,16 +3775,16 @@
},
{
"name": "google/longrunning",
"version": "0.5.0",
"version": "0.6.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/php-longrunning.git",
"reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f"
"reference": "226d3b5166eaa13754cc5e452b37872478e23375"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/715519ab4aaf3c4268adb2b551ee0f34135c8c5f",
"reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f",
"url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/226d3b5166eaa13754cc5e452b37872478e23375",
"reference": "226d3b5166eaa13754cc5e452b37872478e23375",
"shasum": ""
},
"require-dev": {
@@ -3813,22 +3813,22 @@
],
"description": "Google LongRunning Client for PHP",
"support": {
"source": "https://github.com/googleapis/php-longrunning/tree/v0.5.0"
"source": "https://github.com/googleapis/php-longrunning/tree/v0.6.0"
},
"time": "2025-09-20T01:29:44+00:00"
"time": "2025-10-07T18:41:09+00:00"
},
{
"name": "google/protobuf",
"version": "v4.32.1",
"version": "v4.33.0",
"source": {
"type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git",
"reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb"
"reference": "b50269e23204e5ae859a326ec3d90f09efe3047d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb",
"reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/b50269e23204e5ae859a326ec3d90f09efe3047d",
"reference": "b50269e23204e5ae859a326ec3d90f09efe3047d",
"shasum": ""
},
"require": {
@@ -3857,9 +3857,9 @@
"proto"
],
"support": {
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.32.1"
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.33.0"
},
"time": "2025-09-14T05:14:52+00:00"
"time": "2025-10-15T20:10:28+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -4765,23 +4765,23 @@
},
{
"name": "kreait/firebase-php",
"version": "7.22.0",
"version": "7.23.0",
"source": {
"type": "git",
"url": "https://github.com/kreait/firebase-php.git",
"reference": "97a39cb83de9acf1b0de8b0aa2fa0da0d8955c79"
"reference": "b75f8fa15d7ca9b029e0a87a152bcb67489f1623"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kreait/firebase-php/zipball/97a39cb83de9acf1b0de8b0aa2fa0da0d8955c79",
"reference": "97a39cb83de9acf1b0de8b0aa2fa0da0d8955c79",
"url": "https://api.github.com/repos/kreait/firebase-php/zipball/b75f8fa15d7ca9b029e0a87a152bcb67489f1623",
"reference": "b75f8fa15d7ca9b029e0a87a152bcb67489f1623",
"shasum": ""
},
"require": {
"beste/clock": "^3.0",
"beste/in-memory-cache": "^1.3.1",
"beste/json": "^1.5.1",
"cuyz/valinor": "^2.0",
"cuyz/valinor": "^2.2.1",
"ext-ctype": "*",
"ext-filter": "*",
"ext-json": "*",
@@ -4805,17 +4805,17 @@
"psr/log": "^1.1|^2.0|^3.0.2"
},
"require-dev": {
"google/cloud-firestore": "^1.53.0",
"php-cs-fixer/shim": "^3.85.1",
"google/cloud-firestore": "^1.54.2",
"php-cs-fixer/shim": "^3.88.2",
"phpstan/extension-installer": "^1.4.3",
"phpstan/phpstan": "^2.1.22",
"phpstan/phpstan": "^2.1.31",
"phpstan/phpstan-deprecation-rules": "^2.0.3",
"phpstan/phpstan-phpunit": "^2.0.7",
"phpstan/phpstan-strict-rules": "^2.0.6",
"phpunit/phpunit": "^10.5.48",
"rector/rector": "^2.1.2",
"phpstan/phpstan-strict-rules": "^2.0.7",
"phpunit/phpunit": "^10.5.58",
"rector/rector": "^2.2.2",
"shipmonk/composer-dependency-analyser": "^1.8.3",
"symfony/var-dumper": "^6.4.15 || ^7.3.2",
"symfony/var-dumper": "^6.4.15 || ^7.3.4",
"vlucas/phpdotenv": "^5.6.2"
},
"suggest": {
@@ -4862,7 +4862,7 @@
"type": "github"
}
],
"time": "2025-09-20T22:11:10+00:00"
"time": "2025-10-12T23:21:27+00:00"
},
{
"name": "kreait/firebase-tokens",
@@ -5018,20 +5018,20 @@
},
{
"name": "laminas/laminas-diactoros",
"version": "3.6.0",
"version": "3.8.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
"reference": "b068eac123f21c0e592de41deeb7403b88e0a89f"
"reference": "60c182916b2749480895601649563970f3f12ec4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b068eac123f21c0e592de41deeb7403b88e0a89f",
"reference": "b068eac123f21c0e592de41deeb7403b88e0a89f",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4",
"reference": "60c182916b2749480895601649563970f3f12ec4",
"shasum": ""
},
"require": {
"php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
"php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.1 || ^2.0"
},
@@ -5048,11 +5048,11 @@
"ext-gd": "*",
"ext-libxml": "*",
"http-interop/http-factory-tests": "^2.2.0",
"laminas/laminas-coding-standard": "~3.0.0",
"laminas/laminas-coding-standard": "~3.1.0",
"php-http/psr7-integration-tests": "^1.4.0",
"phpunit/phpunit": "^10.5.36",
"psalm/plugin-phpunit": "^0.19.0",
"vimeo/psalm": "^5.26.1"
"psalm/plugin-phpunit": "^0.19.5",
"vimeo/psalm": "^6.13"
},
"type": "library",
"extra": {
@@ -5102,7 +5102,7 @@
"type": "community_bridge"
}
],
"time": "2025-05-05T16:03:34+00:00"
"time": "2025-10-12T15:31:36+00:00"
},
{
"name": "laravel-notification-channels/apn",
@@ -5382,16 +5382,16 @@
},
{
"name": "laravel/framework",
"version": "v10.49.0",
"version": "v10.49.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "b6848517f93445e7f243aaa4f3c32cc70f6739e2"
"reference": "f857267b80789327cd3e6b077bcf6df5846cf71b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/b6848517f93445e7f243aaa4f3c32cc70f6739e2",
"reference": "b6848517f93445e7f243aaa4f3c32cc70f6739e2",
"url": "https://api.github.com/repos/laravel/framework/zipball/f857267b80789327cd3e6b077bcf6df5846cf71b",
"reference": "f857267b80789327cd3e6b077bcf6df5846cf71b",
"shasum": ""
},
"require": {
@@ -5586,20 +5586,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2025-09-08T22:02:05+00:00"
"time": "2025-09-30T14:56:54+00:00"
},
{
"name": "laravel/octane",
"version": "v2.12.3",
"version": "v2.13.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/octane.git",
"reference": "172e61d0b4dd9db263a59ff66213fa2d68f23dbf"
"reference": "21fd6220560c609bf703fa4ce6008081a4ce746c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/octane/zipball/172e61d0b4dd9db263a59ff66213fa2d68f23dbf",
"reference": "172e61d0b4dd9db263a59ff66213fa2d68f23dbf",
"url": "https://api.github.com/repos/laravel/octane/zipball/21fd6220560c609bf703fa4ce6008081a4ce746c",
"reference": "21fd6220560c609bf703fa4ce6008081a4ce746c",
"shasum": ""
},
"require": {
@@ -5676,7 +5676,7 @@
"issues": "https://github.com/laravel/octane/issues",
"source": "https://github.com/laravel/octane"
},
"time": "2025-09-23T13:39:52+00:00"
"time": "2025-10-13T16:28:21+00:00"
},
{
"name": "laravel/prompts",
@@ -5995,22 +5995,22 @@
},
{
"name": "lcobucci/jwt",
"version": "5.5.0",
"version": "5.6.0",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
"reference": "a835af59b030d3f2967725697cf88300f579088e"
"reference": "bb3e9f21e4196e8afc41def81ef649c164bca25e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/a835af59b030d3f2967725697cf88300f579088e",
"reference": "a835af59b030d3f2967725697cf88300f579088e",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/bb3e9f21e4196e8afc41def81ef649c164bca25e",
"reference": "bb3e9f21e4196e8afc41def81ef649c164bca25e",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"ext-sodium": "*",
"php": "~8.2.0 || ~8.3.0 || ~8.4.0",
"php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/clock": "^1.0"
},
"require-dev": {
@@ -6052,7 +6052,7 @@
],
"support": {
"issues": "https://github.com/lcobucci/jwt/issues",
"source": "https://github.com/lcobucci/jwt/tree/5.5.0"
"source": "https://github.com/lcobucci/jwt/tree/5.6.0"
},
"funding": [
{
@@ -6064,7 +6064,7 @@
"type": "patreon"
}
],
"time": "2025-01-26T21:29:45+00:00"
"time": "2025-10-17T11:30:53+00:00"
},
{
"name": "league/commonmark",
@@ -6257,16 +6257,16 @@
},
{
"name": "league/flysystem",
"version": "3.30.0",
"version": "3.30.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "2203e3151755d874bb2943649dae1eb8533ac93e"
"reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2203e3151755d874bb2943649dae1eb8533ac93e",
"reference": "2203e3151755d874bb2943649dae1eb8533ac93e",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c139fd65c1f796b926f4aec0df37f6caa959a8da",
"reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da",
"shasum": ""
},
"require": {
@@ -6334,22 +6334,22 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.30.0"
"source": "https://github.com/thephpleague/flysystem/tree/3.30.1"
},
"time": "2025-06-25T13:29:59+00:00"
"time": "2025-10-20T15:35:26+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
"version": "3.29.0",
"version": "3.30.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
"reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9"
"reference": "d286e896083bed3190574b8b088b557b59eb66f5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/c6ff6d4606e48249b63f269eba7fabdb584e76a9",
"reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d286e896083bed3190574b8b088b557b59eb66f5",
"reference": "d286e896083bed3190574b8b088b557b59eb66f5",
"shasum": ""
},
"require": {
@@ -6389,22 +6389,22 @@
"storage"
],
"support": {
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.29.0"
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.30.1"
},
"time": "2024-08-17T13:10:48+00:00"
"time": "2025-10-20T15:27:33+00:00"
},
{
"name": "league/flysystem-google-cloud-storage",
"version": "3.30.0",
"version": "3.30.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-google-cloud-storage.git",
"reference": "54a317aa1f6b6ef1b19e14ccf12930d8f95c75a7"
"reference": "2d36f1a050fe70bf21d8aa75275963f9ca2e16ea"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-google-cloud-storage/zipball/54a317aa1f6b6ef1b19e14ccf12930d8f95c75a7",
"reference": "54a317aa1f6b6ef1b19e14ccf12930d8f95c75a7",
"url": "https://api.github.com/repos/thephpleague/flysystem-google-cloud-storage/zipball/2d36f1a050fe70bf21d8aa75275963f9ca2e16ea",
"reference": "2d36f1a050fe70bf21d8aa75275963f9ca2e16ea",
"shasum": ""
},
"require": {
@@ -6437,9 +6437,9 @@
"google cloud storage"
],
"support": {
"source": "https://github.com/thephpleague/flysystem-google-cloud-storage/tree/3.30.0"
"source": "https://github.com/thephpleague/flysystem-google-cloud-storage/tree/3.30.1"
},
"time": "2025-01-26T14:03:02+00:00"
"time": "2025-10-20T15:27:33+00:00"
},
{
"name": "league/flysystem-local",
@@ -7683,16 +7683,16 @@
},
{
"name": "nikic/php-parser",
"version": "v5.6.1",
"version": "v5.6.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
"reference": "3a454ca033b9e06b63282ce19562e892747449bb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb",
"reference": "3a454ca033b9e06b63282ce19562e892747449bb",
"shasum": ""
},
"require": {
@@ -7735,9 +7735,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
"source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2"
},
"time": "2025-08-13T20:13:15+00:00"
"time": "2025-10-21T19:32:17+00:00"
},
{
"name": "nunomaduro/termwind",
@@ -8023,16 +8023,16 @@
},
{
"name": "paragonie/sodium_compat",
"version": "v2.2.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/paragonie/sodium_compat.git",
"reference": "9c3535883f1b60b5d26aeae5914bbec61132ad7f"
"reference": "547e2dc4d45107440e76c17ab5a46e4252460158"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/9c3535883f1b60b5d26aeae5914bbec61132ad7f",
"reference": "9c3535883f1b60b5d26aeae5914bbec61132ad7f",
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/547e2dc4d45107440e76c17ab5a46e4252460158",
"reference": "547e2dc4d45107440e76c17ab5a46e4252460158",
"shasum": ""
},
"require": {
@@ -8113,9 +8113,9 @@
],
"support": {
"issues": "https://github.com/paragonie/sodium_compat/issues",
"source": "https://github.com/paragonie/sodium_compat/tree/v2.2.0"
"source": "https://github.com/paragonie/sodium_compat/tree/v2.4.0"
},
"time": "2025-09-21T18:27:14+00:00"
"time": "2025-10-06T08:47:40+00:00"
},
{
"name": "phenx/php-font-lib",
@@ -8824,16 +8824,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "3.0.46",
"version": "3.0.47",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6"
"reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9d6ca36a6c2dd434765b1071b2644a1c683b385d",
"reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d",
"shasum": ""
},
"require": {
@@ -8914,7 +8914,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.46"
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.47"
},
"funding": [
{
@@ -8930,7 +8930,7 @@
"type": "tidelift"
}
],
"time": "2025-06-26T16:29:55+00:00"
"time": "2025-10-06T01:07:24+00:00"
},
{
"name": "phrity/net-stream",
@@ -9969,16 +9969,16 @@
},
{
"name": "psy/psysh",
"version": "v0.12.12",
"version": "v0.12.13",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
"reference": "cd23863404a40ccfaf733e3af4db2b459837f7e7"
"reference": "d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/cd23863404a40ccfaf733e3af4db2b459837f7e7",
"reference": "cd23863404a40ccfaf733e3af4db2b459837f7e7",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e",
"reference": "d86c2f750e72017a5cdb1b9f1cef468a5cbacd1e",
"shasum": ""
},
"require": {
@@ -9993,9 +9993,11 @@
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.2"
"bamarni/composer-bin-plugin": "^1.2",
"composer/class-map-generator": "^1.6"
},
"suggest": {
"composer/class-map-generator": "Improved tab completion performance with better class discovery.",
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
@@ -10041,9 +10043,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.12.12"
"source": "https://github.com/bobthecow/psysh/tree/v0.12.13"
},
"time": "2025-09-20T13:46:31+00:00"
"time": "2025-10-20T22:48:29+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -10647,16 +10649,16 @@
},
{
"name": "sentry/sentry",
"version": "4.16.0",
"version": "4.17.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
"reference": "c5b086e4235762da175034bc463b0d31cbb38d2e"
"reference": "62927369a572efc27ddbd89e466e17788329224b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/c5b086e4235762da175034bc463b0d31cbb38d2e",
"reference": "c5b086e4235762da175034bc463b0d31cbb38d2e",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/62927369a572efc27ddbd89e466e17788329224b",
"reference": "62927369a572efc27ddbd89e466e17788329224b",
"shasum": ""
},
"require": {
@@ -10680,7 +10682,6 @@
"phpbench/phpbench": "^1.0",
"phpstan/phpstan": "^1.3",
"phpunit/phpunit": "^8.5|^9.6",
"symfony/phpunit-bridge": "^5.2|^6.0|^7.0",
"vimeo/psalm": "^4.17"
},
"suggest": {
@@ -10720,7 +10721,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
"source": "https://github.com/getsentry/sentry-php/tree/4.16.0"
"source": "https://github.com/getsentry/sentry-php/tree/4.17.0"
},
"funding": [
{
@@ -10732,27 +10733,27 @@
"type": "custom"
}
],
"time": "2025-09-22T13:38:03+00:00"
"time": "2025-10-20T12:57:02+00:00"
},
{
"name": "sentry/sentry-laravel",
"version": "4.16.0",
"version": "4.18.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-laravel.git",
"reference": "b33b2e487b02db02d92988228f142d7fa2be2bfa"
"reference": "b9a647f93f9a040eaf6f21d0684f2351310d3360"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/b33b2e487b02db02d92988228f142d7fa2be2bfa",
"reference": "b33b2e487b02db02d92988228f142d7fa2be2bfa",
"url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/b9a647f93f9a040eaf6f21d0684f2351310d3360",
"reference": "b9a647f93f9a040eaf6f21d0684f2351310d3360",
"shasum": ""
},
"require": {
"illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
"nyholm/psr7": "^1.0",
"php": "^7.2 | ^8.0",
"sentry/sentry": "^4.15.2",
"sentry/sentry": "^4.16.0",
"symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0"
},
"require-dev": {
@@ -10809,7 +10810,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-laravel/issues",
"source": "https://github.com/getsentry/sentry-laravel/tree/4.16.0"
"source": "https://github.com/getsentry/sentry-laravel/tree/4.18.0"
},
"funding": [
{
@@ -10821,7 +10822,7 @@
"type": "custom"
}
],
"time": "2025-09-10T16:38:18+00:00"
"time": "2025-10-20T12:57:51+00:00"
},
{
"name": "spatie/laravel-activitylog",
@@ -15566,28 +15567,28 @@
},
{
"name": "webmozart/assert",
"version": "1.11.0",
"version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
"reference": "541057574806f942c94662b817a50f63f7345360"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/541057574806f942c94662b817a50f63f7345360",
"reference": "541057574806f942c94662b817a50f63f7345360",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-date": "*",
"ext-filter": "*",
"php": "^7.2 || ^8.0"
},
"conflict": {
"phpstan/phpstan": "<0.12.20",
"vimeo/psalm": "<4.6.1 || 4.6.2"
},
"require-dev": {
"phpunit/phpunit": "^8.5.13"
"suggest": {
"ext-intl": "",
"ext-simplexml": "",
"ext-spl": ""
},
"type": "library",
"extra": {
@@ -15618,9 +15619,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
"source": "https://github.com/webmozarts/assert/tree/1.12.0"
},
"time": "2022-06-03T18:03:27+00:00"
"time": "2025-10-20T12:43:39+00:00"
},
{
"name": "willdurand/geocoder",

View File

@@ -1,4 +1,5 @@
FROM --platform=linux/amd64 dunglas/frankenphp:static-builder
# FROM --platform=linux/amd64 dunglas/frankenphp:static-builder
FROM --platform=linux/amd64 docker.io/dunglas/frankenphp:static-builder@sha256:821526b776a26502735d83890cc0a0d579348c510ba6c777df0762cb1c50d967
WORKDIR /go/src/app

View File

@@ -4,6 +4,7 @@ import { inject as service } from '@ember/service';
import { later } from '@ember/runloop';
import { action } from '@ember/object';
import { isArray } from '@ember/array';
import { dasherize } from '@ember/string';
import first from '@fleetbase/ember-core/utils/first';
export default class ConsoleController extends Controller {
@@ -16,67 +17,19 @@ export default class ConsoleController extends Controller {
@service intl;
@service universe;
@service abilities;
/**
* Authenticated user organizations.
*
* @var {Array}
*/
@service sidebar;
@tracked organizations = [];
/**
* Sidebar Context Controls
*
* @var {SidebarContext}
*/
@tracked sidebarContext;
/**
* State of sidebar toggle icon
*
* @var {SidebarContext}
*/
@tracked sidebarToggleEnabled = true;
/**
* The sidebar toggle state.
*
* @var {SidebarContext}
*/
@tracked sidebarToggleState = {};
/**
* Routes which should hide the sidebar menu.
*
* @var {Array}
*/
@tracked hiddenSidebarRoutes = ['console.home', 'console.notifications', 'console.virtual'];
/**
* Menu items to be added to the main header navigation bar.
*
* @memberof ConsoleController
*/
@tracked menuItems = [];
/**
* Menu items to be added to the user dropdown menu located in the header.
*
* @memberof ConsoleController
*/
@tracked userMenuItems = [];
/**
* Menu items to be added to the organization dropdown menu located in the header.
*
* @memberof ConsoleController
*/
@tracked organizationMenuItems = [];
/**
* Creates an instance of ConsoleController.
* @memberof ConsoleController
*/
get currentRouteClass() {
return dasherize(this.router.currentRouteName.replace(/\./g, ' '));
}
constructor() {
super(...arguments);
this.router.on('routeDidChange', (transition) => {
@@ -89,17 +42,17 @@ export default class ConsoleController extends Controller {
// Hide the sidebar if the current route is in hiddenSidebarRoutes
if (shouldHideSidebar) {
this.sidebarContext.hideNow();
this.sidebar.hideNow();
this.sidebarToggleEnabled = false;
return; // Exit early as no further action is required
}
// If the sidebar was manually closed and not on a hidden route, keep it closed
if (isSidebarManuallyClosed) {
this.sidebarContext.hideNow();
this.sidebar.hideNow();
} else {
// Otherwise, show the sidebar
this.sidebarContext.show();
this.sidebar.show();
}
// Ensure toggle is enabled unless on a hidden route
@@ -134,7 +87,7 @@ export default class ConsoleController extends Controller {
this.universe.trigger('sidebarContext.available', sidebarContext);
if (this.hiddenSidebarRoutes.includes(this.router.currentRouteName)) {
this.sidebarContext.hideNow();
this.sidebar.hideNow();
this.sidebarToggleEnabled = false;
}
}

View File

@@ -13,7 +13,11 @@ export default class DashboardModel extends Model {
/** @attributes */
@attr('string') name;
@attr('string') extension;
@attr('boolean') is_default;
@attr('array') tags;
@attr('object') options;
@attr('object') meta;
/** @dates */
@attr('date') created_at;

View File

@@ -3,6 +3,7 @@ import { computed } from '@ember/object';
import { isArray } from '@ember/array';
import { getOwner } from '@ember/application';
import { isPresent, isEmpty } from '@ember/utils';
import { format, formatDistanceToNow } from 'date-fns';
export default class ReportModel extends Model {
/** @ids */
@@ -35,6 +36,10 @@ export default class ReportModel extends Model {
@attr('raw') meta;
@attr('string') status;
/** @dates */
@attr('date') created_at;
@attr('date') updated_at;
/** @relationships */
// @belongsTo('company') company;
// @belongsTo('user') createdBy;
@@ -54,8 +59,23 @@ export default class ReportModel extends Model {
}
/** @computed */
@computed('query_config.columns.length', 'query_config.table.name')
get hasValidConfig() {
@computed('updated_at') get updatedAgo() {
return formatDistanceToNow(this.updated_at);
}
@computed('updated_at') get updatedAt() {
return format(this.updated_at, 'yyyy-MM-dd HH:mm');
}
@computed('created_at') get createdAgo() {
return formatDistanceToNow(this.created_at);
}
@computed('created_at') get createdAt() {
return format(this.created_at, 'yyyy-MM-dd HH:mm');
}
@computed('query_config.columns.length', 'query_config.table.name') get hasValidConfig() {
return (
isPresent(this.query_config) &&
isPresent(this.query_config.table) &&
@@ -65,23 +85,19 @@ export default class ReportModel extends Model {
);
}
@computed('query_config.table.name')
get tableName() {
@computed('query_config.table.name') get tableName() {
return this.query_config?.table?.name || '';
}
@computed('query_config.table.label', 'tableName')
get tableLabel() {
@computed('query_config.table.label', 'tableName') get tableLabel() {
return this.query_config?.table?.label || this.tableName;
}
@computed('query_config.columns.[]')
get selectedColumns() {
@computed('query_config.columns.[]') get selectedColumns() {
return this.query_config?.columns || [];
}
@computed('selectedColumns.[]', 'query_config.joins.[]')
get totalSelectedColumns() {
@computed('selectedColumns.[]', 'query_config.joins.[]') get totalSelectedColumns() {
let count = this.selectedColumns.length;
// Add columns from joins
@@ -96,13 +112,11 @@ export default class ReportModel extends Model {
return count;
}
@computed('query_config.joins.[]')
get hasJoins() {
@computed('query_config.joins.[]') get hasJoins() {
return isArray(this.query_config?.joins) && this.query_config.joins.length > 0;
}
@computed('hasJoins', 'query_config.joins.[]')
get joinedTables() {
@computed('hasJoins', 'query_config.joins.[]') get joinedTables() {
if (!this.hasJoins) {
return [];
}
@@ -115,13 +129,11 @@ export default class ReportModel extends Model {
}));
}
@computed('query_config.conditions.[]')
get hasConditions() {
@computed('query_config.conditions.[]') get hasConditions() {
return isArray(this.query_config?.conditions) && this.query_config.conditions.length > 0;
}
@computed('hasConditions', 'query_config.conditions.[]')
get conditionsCount() {
@computed('hasConditions', 'query_config.conditions.[]') get conditionsCount() {
if (!this.hasConditions) {
return 0;
}
@@ -129,23 +141,19 @@ export default class ReportModel extends Model {
return this.countConditionsRecursively(this.query_config.conditions);
}
@computed('query_config.groupBy.[]')
get hasGrouping() {
@computed('query_config.groupBy.[]') get hasGrouping() {
return isArray(this.query_config?.groupBy) && this.query_config.groupBy.length > 0;
}
@computed('query_config.sortBy.[]')
get hasSorting() {
@computed('query_config.sortBy.[]') get hasSorting() {
return isArray(this.query_config?.sortBy) && this.query_config.sortBy.length > 0;
}
@computed('query_config.limit')
get hasLimit() {
@computed('query_config.limit') get hasLimit() {
return isPresent(this.query_config?.limit) && this.query_config.limit > 0;
}
@computed('conditionsCount', 'hasGrouping', 'hasJoins', 'joinedTables.length', 'totalSelectedColumns')
get complexity() {
@computed('conditionsCount', 'hasGrouping', 'hasJoins', 'joinedTables.length', 'totalSelectedColumns') get complexity() {
let score = 0;
score += this.totalSelectedColumns;
@@ -162,8 +170,7 @@ export default class ReportModel extends Model {
}
}
@computed('complexity', 'totalSelectedColumns', 'joinedTables.length')
get estimatedPerformance() {
@computed('complexity', 'totalSelectedColumns', 'joinedTables.length') get estimatedPerformance() {
if (this.complexity === 'simple' && this.totalSelectedColumns <= 10) {
return 'fast';
} else if (this.complexity === 'moderate' && this.joinedTables.length <= 2) {
@@ -173,8 +180,7 @@ export default class ReportModel extends Model {
}
}
@computed('last_executed_at')
get lastExecutedDisplay() {
@computed('last_executed_at') get lastExecutedDisplay() {
if (!this.last_executed_at) {
return 'Never executed';
}
@@ -182,8 +188,7 @@ export default class ReportModel extends Model {
return this.last_executed_at.toLocaleDateString() + ' ' + this.last_executed_at.toLocaleTimeString();
}
@computed('average_execution_time')
get averageExecutionTimeDisplay() {
@computed('average_execution_time') get averageExecutionTimeDisplay() {
if (!this.average_execution_time) {
return 'N/A';
}
@@ -195,13 +200,11 @@ export default class ReportModel extends Model {
}
}
@computed('execution_count')
get executionCountDisplay() {
@computed('execution_count') get executionCountDisplay() {
return this.execution_count || 0;
}
@computed('last_result_count')
get lastResultCountDisplay() {
@computed('last_result_count') get lastResultCountDisplay() {
if (this.last_result_count === null || this.last_result_count === undefined) {
return 'N/A';
}
@@ -209,23 +212,19 @@ export default class ReportModel extends Model {
return this.last_result_count.toLocaleString();
}
@computed('export_formats.[]')
get availableExportFormats() {
@computed('export_formats.[]') get availableExportFormats() {
return this.export_formats || ['csv', 'excel', 'json'];
}
@computed('tags.[]')
get tagsList() {
@computed('tags.[]') get tagsList() {
return this.tags || [];
}
@computed('shared_with.[]')
get sharedWithList() {
@computed('shared_with.[]') get sharedWithList() {
return this.shared_with || [];
}
@computed('is_scheduled', 'next_scheduled_run', 'schedule_frequency', 'schedule_timezone')
get scheduleInfo() {
@computed('is_scheduled', 'next_scheduled_run', 'schedule_frequency', 'schedule_timezone') get scheduleInfo() {
if (!this.is_scheduled) {
return null;
}
@@ -237,8 +236,7 @@ export default class ReportModel extends Model {
};
}
@computed('hasConditions', 'query_config.conditions.[]')
get conditionsSummary() {
@computed('hasConditions', 'query_config.conditions.[]') get conditionsSummary() {
if (!this.hasConditions) {
return [];
}
@@ -246,8 +244,7 @@ export default class ReportModel extends Model {
return this.extractConditionsSummary(this.query_config.conditions);
}
@computed('status')
get statusDisplay() {
@computed('status') get statusDisplay() {
const statusMap = {
draft: 'Draft',
active: 'Active',
@@ -258,8 +255,7 @@ export default class ReportModel extends Model {
return statusMap[this.status] || this.status;
}
@computed('status')
get statusClass() {
@computed('status') get statusClass() {
const statusClasses = {
draft: 'status-draft',
active: 'status-active',

View File

@@ -7,10 +7,10 @@
@userMenuItems={{this.userMenuItems}}
@onAction={{this.onAction}}
@showSidebarToggle={{true}}
@sidebarToggleEnabled={{this.sidebarToggleEnabled}}
@sidebarToggleEnabled={{true}}
@onSidebarToggle={{this.onSidebarToggle}}
/>
<Layout::Main>
<Layout::Main class={{this.currentRouteClass}}>
<Layout::Sidebar @onSetup={{this.setSidebarContext}}>
<div class="next-sidebar-content-inner">
<div role="menu" id="sidebar-menu-items">

View File

@@ -1,7 +1,7 @@
{{page-title "Dashboard"}}
<Layout::Section::Body class="overflow-y-scroll h-full">
<TwoFaEnforcementAlert />
<Dashboard @sidebar={{this.sidebarContext}} @createWrapperClass="px-10" class="flex items-center justify-between mb-4 mt-6 px-14" />
<Dashboard @extension="core" @createWrapperClass="px-10" class="flex items-center justify-between mb-4 mt-6 px-14" />
<Spacer @height="300px" />
</Layout::Section::Body>
<div id="console-home-wormhole" />

View File

@@ -49,7 +49,8 @@ module.exports = function (environment) {
defaultValues: {
categoryImage: getenv('DEFAULT_CATEGORY_IMAGE', 'https://flb-assets.s3.ap-southeast-1.amazonaws.com/images/fallback-placeholder-1.png'),
placeholderImage: getenv('DEFAULT_PLACEHOLDER_IMAGE', 'https://flb-assets.s3.ap-southeast-1.amazonaws.com/images/fallback-placeholder-2.png'),
placeholderImage: getenv('DEFAULT_PLACEHOLDER_IMAGE', 'https://flb-assets.s3.ap-southeast-1.amazonaws.com/static/image-file-icon.png'),
placeholderImageOld: getenv('DEFAULT_PLACEHOLDER_IMAGE_OLD', 'https://flb-assets.s3.ap-southeast-1.amazonaws.com/images/fallback-placeholder-2.png'),
driverImage: getenv('DEFAULT_DRIVER_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),
userImage: getenv('DEFAULT_USER_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),
contactImage: getenv('DEFAULT_CONTACT_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),

View File

@@ -1,6 +1,6 @@
{
"name": "@fleetbase/console",
"version": "0.7.11",
"version": "0.7.13",
"private": true,
"description": "Modular logistics and supply chain operating system (LSOS)",
"repository": "https://github.com/fleetbase/fleetbase",
@@ -33,11 +33,11 @@
"@fleetbase/ember-core": "latest",
"@fleetbase/ember-ui": "latest",
"@fleetbase/fleetops-data": "latest",
"@fleetbase/fleetops-engine": "^0.6.19",
"@fleetbase/fleetops-engine": "^0.6.21",
"@fleetbase/iam-engine": "^0.1.4",
"@fleetbase/leaflet-routing-machine": "^3.2.17",
"@fleetbase/registry-bridge-engine": "^0.1.0",
"@fleetbase/storefront-engine": "^0.4.2",
"@fleetbase/storefront-engine": "^0.4.3",
"@formatjs/intl-datetimeformat": "^6.18.2",
"@formatjs/intl-numberformat": "^8.15.6",
"@formatjs/intl-pluralrules": "^5.4.6",

864
console/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -75,7 +75,7 @@ ENV QUEUE_CONNECTION=redis
ENV CADDYFILE_PATH=/fleetbase/Caddyfile
ENV CONSOLE_PATH=/fleetbase/console
ENV OCTANE_SERVER=frankenphp
ENV FLEETBASE_VERSION=0.7.11
ENV FLEETBASE_VERSION=0.7.13
# Set environment
ARG ENVIRONMENT=production