mirror of
https://github.com/fleetbase/fleetbase.git
synced 2026-01-03 21:07:10 +00:00
Compare commits
26 Commits
v0.2.5
...
dev-v0.2.9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a4dc76e60 | ||
|
|
a52af94b00 | ||
|
|
9c4daf7a68 | ||
|
|
a8904ba112 | ||
|
|
6880664d9e | ||
|
|
99b30d7f58 | ||
|
|
c8539fd2a0 | ||
|
|
cb1aec40fd | ||
|
|
b728b366a0 | ||
|
|
5cfc3f1cc7 | ||
|
|
e7b5282aa3 | ||
|
|
7ffb7ac24a | ||
|
|
6e4a9edd7d | ||
|
|
d9d01c8bbc | ||
|
|
c54d75fa0f | ||
|
|
91904c3836 | ||
|
|
0e075e3b24 | ||
|
|
c56bea95d0 | ||
|
|
f1cec329bc | ||
|
|
34dc365dd2 | ||
|
|
74a782f4ea | ||
|
|
a8b2042d85 | ||
|
|
cc52a40660 | ||
|
|
4fb2dec8c3 | ||
|
|
0db3634ab3 | ||
|
|
1c0d324ba9 |
@@ -9,9 +9,9 @@
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^7.3|^8.0",
|
||||
"fleetbase/core-api": "^1.3.1",
|
||||
"fleetbase/fleetops-api": "^0.2.9",
|
||||
"fleetbase/storefront-api": "^0.2.0",
|
||||
"fleetbase/core-api": "^1.3.2",
|
||||
"fleetbase/fleetops-api": "^0.3.3",
|
||||
"fleetbase/storefront-api": "^0.2.4",
|
||||
"fruitcake/laravel-cors": "^2.0",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"laravel/framework": "^8.75",
|
||||
|
||||
362
api/composer.lock
generated
362
api/composer.lock
generated
@@ -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": "265e49a3b34040f5a2056d4674b0ca83",
|
||||
"content-hash": "faa6338e3534fb28d5e024130c9c7da9",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aloha/twilio",
|
||||
@@ -138,16 +138,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
"version": "v1.2.2",
|
||||
"version": "v1.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/awslabs/aws-crt-php.git",
|
||||
"reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9"
|
||||
"reference": "5545a4fa310aec39f54279fdacebcce33b3ff382"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/2f1dc7b7eda080498be96a4a6d683a41583030e9",
|
||||
"reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/5545a4fa310aec39f54279fdacebcce33b3ff382",
|
||||
"reference": "5545a4fa310aec39f54279fdacebcce33b3ff382",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -186,26 +186,26 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/awslabs/aws-crt-php/issues",
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.2"
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.3"
|
||||
},
|
||||
"time": "2023-07-20T16:49:55+00:00"
|
||||
"time": "2023-10-16T20:10:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.283.3",
|
||||
"version": "3.285.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "4cc8d6c7e856de80d9316f659c4c626d3713f6c1"
|
||||
"reference": "93165f8e241678b17f15212523dfe96f50307af1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4cc8d6c7e856de80d9316f659c4c626d3713f6c1",
|
||||
"reference": "4cc8d6c7e856de80d9316f659c4c626d3713f6c1",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/93165f8e241678b17f15212523dfe96f50307af1",
|
||||
"reference": "93165f8e241678b17f15212523dfe96f50307af1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"aws/aws-crt-php": "^1.0.4",
|
||||
"aws/aws-crt-php": "^1.2.3",
|
||||
"ext-json": "*",
|
||||
"ext-pcre": "*",
|
||||
"ext-simplexml": "*",
|
||||
@@ -281,9 +281,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.283.3"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.285.2"
|
||||
},
|
||||
"time": "2023-10-12T18:14:56+00:00"
|
||||
"time": "2023-11-09T01:20:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php-laravel",
|
||||
@@ -2002,16 +2002,16 @@
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/core-api",
|
||||
"version": "1.3.1",
|
||||
"version": "1.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fleetbase/core-api.git",
|
||||
"reference": "0b0fb9cde5e82caaf2b51f68960908f3c9a35a82"
|
||||
"reference": "e10f6e69d1604a4fa58257017d845e0d9b72e1c6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/0b0fb9cde5e82caaf2b51f68960908f3c9a35a82",
|
||||
"reference": "0b0fb9cde5e82caaf2b51f68960908f3c9a35a82",
|
||||
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/e10f6e69d1604a4fa58257017d845e0d9b72e1c6",
|
||||
"reference": "e10f6e69d1604a4fa58257017d845e0d9b72e1c6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2086,29 +2086,29 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/fleetbase/core-api/issues",
|
||||
"source": "https://github.com/fleetbase/core-api/tree/v1.3.1"
|
||||
"source": "https://github.com/fleetbase/core-api/tree/v1.3.2"
|
||||
},
|
||||
"time": "2023-10-10T12:35:05+00:00"
|
||||
"time": "2023-10-30T10:40:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/fleetops-api",
|
||||
"version": "0.2.9",
|
||||
"version": "0.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fleetbase/fleetops.git",
|
||||
"reference": "49cbcd58ad141ac778bdd20af4b28732abef57d2"
|
||||
"reference": "5ce11e275d87d7a318cd0713f72be1b385621ed9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/49cbcd58ad141ac778bdd20af4b28732abef57d2",
|
||||
"reference": "49cbcd58ad141ac778bdd20af4b28732abef57d2",
|
||||
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/5ce11e275d87d7a318cd0713f72be1b385621ed9",
|
||||
"reference": "5ce11e275d87d7a318cd0713f72be1b385621ed9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"barryvdh/laravel-dompdf": "^2.0",
|
||||
"brick/geo": "0.7.2",
|
||||
"cknow/laravel-money": "^7.1",
|
||||
"fleetbase/core-api": "^1.3.1",
|
||||
"fleetbase/core-api": "^1.3.2",
|
||||
"geocoder-php/google-maps-places-provider": "^1.4",
|
||||
"giggsey/libphonenumber-for-php": "^8.13",
|
||||
"league/geotools": "^1.1.0",
|
||||
@@ -2174,27 +2174,27 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/fleetbase/fleetops/issues",
|
||||
"source": "https://github.com/fleetbase/fleetops/tree/v0.2.9"
|
||||
"source": "https://github.com/fleetbase/fleetops/tree/v0.3.3"
|
||||
},
|
||||
"time": "2023-10-13T09:16:35+00:00"
|
||||
"time": "2023-11-09T08:42:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/storefront-api",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fleetbase/storefront.git",
|
||||
"reference": "cbc8c467f4a1934bbf61b02125e00eb999308659"
|
||||
"reference": "df155f5b3e04f73087899c85208d8b3f5de5d466"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/storefront/zipball/cbc8c467f4a1934bbf61b02125e00eb999308659",
|
||||
"reference": "cbc8c467f4a1934bbf61b02125e00eb999308659",
|
||||
"url": "https://api.github.com/repos/fleetbase/storefront/zipball/df155f5b3e04f73087899c85208d8b3f5de5d466",
|
||||
"reference": "df155f5b3e04f73087899c85208d8b3f5de5d466",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "^1.3.1",
|
||||
"fleetbase/fleetops-api": "^0.2.8",
|
||||
"fleetbase/core-api": "^1.3.2",
|
||||
"fleetbase/fleetops-api": "^0.3.2",
|
||||
"geocoder-php/google-maps-places-provider": "^1.4",
|
||||
"laravel-notification-channels/apn": "^3.8",
|
||||
"laravel-notification-channels/fcm": "^2.7",
|
||||
@@ -2255,9 +2255,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/fleetbase/storefront/issues",
|
||||
"source": "https://github.com/fleetbase/storefront/tree/v0.2.0"
|
||||
"source": "https://github.com/fleetbase/storefront/tree/v0.2.4"
|
||||
},
|
||||
"time": "2023-10-10T13:07:00+00:00"
|
||||
"time": "2023-11-09T08:50:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fruitcake/laravel-cors",
|
||||
@@ -2739,16 +2739,16 @@
|
||||
},
|
||||
{
|
||||
"name": "giggsey/libphonenumber-for-php",
|
||||
"version": "8.13.23",
|
||||
"version": "8.13.24",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/giggsey/libphonenumber-for-php.git",
|
||||
"reference": "b2dff83693cb46eb4478b193e9d94e2ff6258480"
|
||||
"reference": "746ca6a565b9d4167c94c80824f43fa6fb463fd1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/b2dff83693cb46eb4478b193e9d94e2ff6258480",
|
||||
"reference": "b2dff83693cb46eb4478b193e9d94e2ff6258480",
|
||||
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/746ca6a565b9d4167c94c80824f43fa6fb463fd1",
|
||||
"reference": "746ca6a565b9d4167c94c80824f43fa6fb463fd1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2807,20 +2807,20 @@
|
||||
"issues": "https://github.com/giggsey/libphonenumber-for-php/issues",
|
||||
"source": "https://github.com/giggsey/libphonenumber-for-php"
|
||||
},
|
||||
"time": "2023-10-11T07:12:56+00:00"
|
||||
"time": "2023-10-31T08:12:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "giggsey/locale",
|
||||
"version": "2.4",
|
||||
"version": "2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/giggsey/Locale.git",
|
||||
"reference": "a6b33dfc9e8949b7e28133c4628b29cd9f1850bb"
|
||||
"reference": "e6d4540109a01dd2bc7334cdc842d6a6a67cf239"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/giggsey/Locale/zipball/a6b33dfc9e8949b7e28133c4628b29cd9f1850bb",
|
||||
"reference": "a6b33dfc9e8949b7e28133c4628b29cd9f1850bb",
|
||||
"url": "https://api.github.com/repos/giggsey/Locale/zipball/e6d4540109a01dd2bc7334cdc842d6a6a67cf239",
|
||||
"reference": "e6d4540109a01dd2bc7334cdc842d6a6a67cf239",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2859,22 +2859,22 @@
|
||||
"description": "Locale functions required by libphonenumber-for-php",
|
||||
"support": {
|
||||
"issues": "https://github.com/giggsey/Locale/issues",
|
||||
"source": "https://github.com/giggsey/Locale/tree/2.4"
|
||||
"source": "https://github.com/giggsey/Locale/tree/2.5"
|
||||
},
|
||||
"time": "2023-04-13T07:40:58+00:00"
|
||||
"time": "2023-11-01T17:19:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/auth",
|
||||
"version": "v1.31.0",
|
||||
"version": "v1.32.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-auth-library-php.git",
|
||||
"reference": "22209fddd0c06f3f8e3cb4aade0b352aa00f9888"
|
||||
"reference": "999e9ce8b9d17914f04e1718271a0a46da4de2f3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/22209fddd0c06f3f8e3cb4aade0b352aa00f9888",
|
||||
"reference": "22209fddd0c06f3f8e3cb4aade0b352aa00f9888",
|
||||
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/999e9ce8b9d17914f04e1718271a0a46da4de2f3",
|
||||
"reference": "999e9ce8b9d17914f04e1718271a0a46da4de2f3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2917,22 +2917,22 @@
|
||||
"support": {
|
||||
"docs": "https://googleapis.github.io/google-auth-library-php/main/",
|
||||
"issues": "https://github.com/googleapis/google-auth-library-php/issues",
|
||||
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.31.0"
|
||||
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.32.1"
|
||||
},
|
||||
"time": "2023-10-05T20:39:00+00:00"
|
||||
"time": "2023-10-17T21:13:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/cloud-core",
|
||||
"version": "v1.52.6",
|
||||
"version": "v1.52.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-cloud-php-core.git",
|
||||
"reference": "71f092f4dab880515917da64423656ed3d6aefc2"
|
||||
"reference": "2ebcaa410f7e92dca5677dd9cc4ec1f9f315e83c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/71f092f4dab880515917da64423656ed3d6aefc2",
|
||||
"reference": "71f092f4dab880515917da64423656ed3d6aefc2",
|
||||
"url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/2ebcaa410f7e92dca5677dd9cc4ec1f9f315e83c",
|
||||
"reference": "2ebcaa410f7e92dca5677dd9cc4ec1f9f315e83c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2948,7 +2948,7 @@
|
||||
"require-dev": {
|
||||
"erusev/parsedown": "^1.6",
|
||||
"google/cloud-common-protos": "^0.4",
|
||||
"google/gax": "^1.19.1",
|
||||
"google/gax": "^1.24.0",
|
||||
"opis/closure": "^3",
|
||||
"phpdocumentor/reflection": "^5.0",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
@@ -2982,26 +2982,26 @@
|
||||
],
|
||||
"description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
|
||||
"support": {
|
||||
"source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.52.6"
|
||||
"source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.52.8"
|
||||
},
|
||||
"time": "2023-10-06T21:49:26+00:00"
|
||||
"time": "2023-11-02T19:15:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/cloud-storage",
|
||||
"version": "v1.33.3",
|
||||
"version": "v1.34.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/googleapis/google-cloud-php-storage.git",
|
||||
"reference": "e22877e96c3f5c4f53b0fb2077834fb6d64d0fca"
|
||||
"reference": "4589dd3c8f4171db4ce3eb335fc7d894661ca0e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/e22877e96c3f5c4f53b0fb2077834fb6d64d0fca",
|
||||
"reference": "e22877e96c3f5c4f53b0fb2077834fb6d64d0fca",
|
||||
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/4589dd3c8f4171db4ce3eb335fc7d894661ca0e9",
|
||||
"reference": "4589dd3c8f4171db4ce3eb335fc7d894661ca0e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"google/cloud-core": "^1.51.3",
|
||||
"google/cloud-core": "^1.52.7",
|
||||
"php": ">=7.4",
|
||||
"ramsey/uuid": "^4.2.3"
|
||||
},
|
||||
@@ -3038,9 +3038,9 @@
|
||||
],
|
||||
"description": "Cloud Storage Client for PHP",
|
||||
"support": {
|
||||
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.33.3"
|
||||
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.34.0"
|
||||
},
|
||||
"time": "2023-09-30T16:50:41+00:00"
|
||||
"time": "2023-11-02T19:15:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "graham-campbell/manager",
|
||||
@@ -4604,16 +4604,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
"version": "v1.3.1",
|
||||
"version": "v1.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/serializable-closure.git",
|
||||
"reference": "e5a3057a5591e1cfe8183034b0203921abe2c902"
|
||||
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902",
|
||||
"reference": "e5a3057a5591e1cfe8183034b0203921abe2c902",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
|
||||
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4660,7 +4660,7 @@
|
||||
"issues": "https://github.com/laravel/serializable-closure/issues",
|
||||
"source": "https://github.com/laravel/serializable-closure"
|
||||
},
|
||||
"time": "2023-07-14T13:56:28+00:00"
|
||||
"time": "2023-10-17T13:38:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/tinker",
|
||||
@@ -5294,16 +5294,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/mime-type-detection",
|
||||
"version": "1.13.0",
|
||||
"version": "1.14.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/mime-type-detection.git",
|
||||
"reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96"
|
||||
"reference": "b6a5854368533df0295c5761a0253656a2e52d9e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96",
|
||||
"reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96",
|
||||
"url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e",
|
||||
"reference": "b6a5854368533df0295c5761a0253656a2e52d9e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5334,7 +5334,7 @@
|
||||
"description": "Mime-type detection for Flysystem",
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
|
||||
"source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0"
|
||||
"source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5346,32 +5346,32 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-08-05T12:09:49+00:00"
|
||||
"time": "2023-10-17T14:13:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "maatwebsite/excel",
|
||||
"version": "3.1.48",
|
||||
"version": "3.1.50",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/SpartnerNL/Laravel-Excel.git",
|
||||
"reference": "6d0fe2a1d195960c7af7bf0de760582da02a34b9"
|
||||
"reference": "d79e66391aa306983bb7e234503f5605c3e33348"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/6d0fe2a1d195960c7af7bf0de760582da02a34b9",
|
||||
"reference": "6d0fe2a1d195960c7af7bf0de760582da02a34b9",
|
||||
"url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/d79e66391aa306983bb7e234503f5605c3e33348",
|
||||
"reference": "d79e66391aa306983bb7e234503f5605c3e33348",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/semver": "^3.3",
|
||||
"ext-json": "*",
|
||||
"illuminate/support": "5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0",
|
||||
"php": "^7.0|^8.0",
|
||||
"illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0",
|
||||
"php": "^7.0||^8.0",
|
||||
"phpoffice/phpspreadsheet": "^1.18",
|
||||
"psr/simple-cache": "^1.0|^2.0|^3.0"
|
||||
"psr/simple-cache": "^1.0||^2.0||^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^6.0|^7.0|^8.0",
|
||||
"orchestra/testbench": "^6.0||^7.0||^8.0",
|
||||
"predis/predis": "^1.1"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -5414,7 +5414,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/SpartnerNL/Laravel-Excel/issues",
|
||||
"source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.48"
|
||||
"source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.50"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5426,7 +5426,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-22T21:01:38+00:00"
|
||||
"time": "2023-11-06T11:29:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "maennchen/zipstream-php",
|
||||
@@ -5842,16 +5842,16 @@
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "2.9.1",
|
||||
"version": "2.9.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
|
||||
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
|
||||
"reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
|
||||
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5928,7 +5928,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Seldaek/monolog/issues",
|
||||
"source": "https://github.com/Seldaek/monolog/tree/2.9.1"
|
||||
"source": "https://github.com/Seldaek/monolog/tree/2.9.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5940,7 +5940,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-06T13:44:46+00:00"
|
||||
"time": "2023-10-27T15:25:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/jmespath.php",
|
||||
@@ -6823,16 +6823,16 @@
|
||||
},
|
||||
{
|
||||
"name": "php-http/curl-client",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/curl-client.git",
|
||||
"reference": "f7352c0796549949900d28fe991e19c90572386a"
|
||||
"reference": "085570be588f7cbdc4601e78886eea5b7051ad71"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/curl-client/zipball/f7352c0796549949900d28fe991e19c90572386a",
|
||||
"reference": "f7352c0796549949900d28fe991e19c90572386a",
|
||||
"url": "https://api.github.com/repos/php-http/curl-client/zipball/085570be588f7cbdc4601e78886eea5b7051ad71",
|
||||
"reference": "085570be588f7cbdc4601e78886eea5b7051ad71",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6843,7 +6843,7 @@
|
||||
"php-http/message": "^1.2",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory-implementation": "^1.0",
|
||||
"symfony/options-resolver": "^3.4 || ^4.0 || ^5.0 || ^6.0"
|
||||
"symfony/options-resolver": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
},
|
||||
"provide": {
|
||||
"php-http/async-client-implementation": "1.0",
|
||||
@@ -6854,6 +6854,7 @@
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"laminas/laminas-diactoros": "^2.0",
|
||||
"php-http/client-integration-tests": "^3.0",
|
||||
"php-http/message-factory": "^1.1",
|
||||
"phpunit/phpunit": "^7.5 || ^9.4"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -6881,9 +6882,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-http/curl-client/issues",
|
||||
"source": "https://github.com/php-http/curl-client/tree/2.3.0"
|
||||
"source": "https://github.com/php-http/curl-client/tree/2.3.1"
|
||||
},
|
||||
"time": "2023-04-28T14:56:41+00:00"
|
||||
"time": "2023-11-03T15:32:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/discovery",
|
||||
@@ -7204,31 +7205,26 @@
|
||||
},
|
||||
{
|
||||
"name": "php-http/promise",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/promise.git",
|
||||
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
|
||||
"reference": "44a67cb59f708f826f3bec35f22030b3edb90119"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||
"url": "https://api.github.com/repos/php-http/promise/zipball/44a67cb59f708f826f3bec35f22030b3edb90119",
|
||||
"reference": "44a67cb59f708f826f3bec35f22030b3edb90119",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
|
||||
"phpspec/phpspec": "^5.1.2 || ^6.2"
|
||||
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3",
|
||||
"phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Promise\\": "src/"
|
||||
@@ -7255,9 +7251,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-http/promise/issues",
|
||||
"source": "https://github.com/php-http/promise/tree/1.1.0"
|
||||
"source": "https://github.com/php-http/promise/tree/1.2.1"
|
||||
},
|
||||
"time": "2020-07-07T09:29:14+00:00"
|
||||
"time": "2023-11-08T12:57:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoffice/phpspreadsheet",
|
||||
@@ -7441,16 +7437,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phrity/net-stream",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sirn-se/phrity-net-stream.git",
|
||||
"reference": "83435f3103016dfd45ded39040190a7f505ea264"
|
||||
"reference": "9105931b65ad90c75f4885a40b268b0f65802e3e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sirn-se/phrity-net-stream/zipball/83435f3103016dfd45ded39040190a7f505ea264",
|
||||
"reference": "83435f3103016dfd45ded39040190a7f505ea264",
|
||||
"url": "https://api.github.com/repos/sirn-se/phrity-net-stream/zipball/9105931b65ad90c75f4885a40b268b0f65802e3e",
|
||||
"reference": "9105931b65ad90c75f4885a40b268b0f65802e3e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7495,9 +7491,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sirn-se/phrity-net-stream/issues",
|
||||
"source": "https://github.com/sirn-se/phrity-net-stream/tree/1.2.0"
|
||||
"source": "https://github.com/sirn-se/phrity-net-stream/tree/1.3.0"
|
||||
},
|
||||
"time": "2023-07-05T13:31:05+00:00"
|
||||
"time": "2023-10-22T10:47:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phrity/net-uri",
|
||||
@@ -7607,16 +7603,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phrity/websocket",
|
||||
"version": "1.7.0",
|
||||
"version": "1.7.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sirn-se/websocket-php.git",
|
||||
"reference": "d6dd8337e1ac13c08e0be25e168ad907300da955"
|
||||
"reference": "7349a37c5a853ff0ae12c03fa59e8879e9dda486"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sirn-se/websocket-php/zipball/d6dd8337e1ac13c08e0be25e168ad907300da955",
|
||||
"reference": "d6dd8337e1ac13c08e0be25e168ad907300da955",
|
||||
"url": "https://api.github.com/repos/sirn-se/websocket-php/zipball/7349a37c5a853ff0ae12c03fa59e8879e9dda486",
|
||||
"reference": "7349a37c5a853ff0ae12c03fa59e8879e9dda486",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7630,7 +7626,7 @@
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.0",
|
||||
"phpunit/phpunit": "^9.0 | ^10.0",
|
||||
"phrity/net-mock": "^1.2",
|
||||
"phrity/net-mock": "^1.3",
|
||||
"squizlabs/php_codesniffer": "^3.5"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -7662,9 +7658,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sirn-se/websocket-php/issues",
|
||||
"source": "https://github.com/sirn-se/websocket-php/tree/1.7.0"
|
||||
"source": "https://github.com/sirn-se/websocket-php/tree/1.7.2"
|
||||
},
|
||||
"time": "2023-07-14T05:44:18+00:00"
|
||||
"time": "2023-11-04T12:09:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pragmarx/coollection",
|
||||
@@ -8535,16 +8531,16 @@
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.11.21",
|
||||
"version": "v0.11.22",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "bcb22101107f3bf770523b65630c9d547f60c540"
|
||||
"reference": "128fa1b608be651999ed9789c95e6e2a31b5802b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/bcb22101107f3bf770523b65630c9d547f60c540",
|
||||
"reference": "bcb22101107f3bf770523b65630c9d547f60c540",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b",
|
||||
"reference": "128fa1b608be651999ed9789c95e6e2a31b5802b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -8573,7 +8569,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "0.11.x-dev"
|
||||
"dev-0.11": "0.11.x-dev"
|
||||
},
|
||||
"bamarni-bin": {
|
||||
"bin-links": false,
|
||||
@@ -8609,9 +8605,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/bobthecow/psysh/issues",
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.21"
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.22"
|
||||
},
|
||||
"time": "2023-09-17T21:15:54+00:00"
|
||||
"time": "2023-10-14T21:56:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
@@ -9219,16 +9215,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sentry/sentry",
|
||||
"version": "3.21.0",
|
||||
"version": "3.22.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getsentry/sentry-php.git",
|
||||
"reference": "624aafc22b84b089ffa43b71fb01e0096505ec4f"
|
||||
"reference": "c0e3df5a5c1d133cd9461e7672568ff07042c19d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/624aafc22b84b089ffa43b71fb01e0096505ec4f",
|
||||
"reference": "624aafc22b84b089ffa43b71fb01e0096505ec4f",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/c0e3df5a5c1d133cd9461e7672568ff07042c19d",
|
||||
"reference": "c0e3df5a5c1d133cd9461e7672568ff07042c19d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9246,7 +9242,7 @@
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-factory-implementation": "^1.0",
|
||||
"psr/log": "^1.0|^2.0|^3.0",
|
||||
"symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0",
|
||||
"symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0|^7.0",
|
||||
"symfony/polyfill-php80": "^1.17"
|
||||
},
|
||||
"conflict": {
|
||||
@@ -9303,7 +9299,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/getsentry/sentry-php/issues",
|
||||
"source": "https://github.com/getsentry/sentry-php/tree/3.21.0"
|
||||
"source": "https://github.com/getsentry/sentry-php/tree/3.22.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -9315,7 +9311,7 @@
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2023-07-31T15:31:24+00:00"
|
||||
"time": "2023-10-23T20:34:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sentry/sentry-laravel",
|
||||
@@ -9636,16 +9632,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-permission",
|
||||
"version": "5.11.0",
|
||||
"version": "5.11.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-permission.git",
|
||||
"reference": "0a35e99da4cb6f85b07b3b58b718ff659c39a009"
|
||||
"reference": "7090824cca57e693b880ce3aaf7ef78362e28bbd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-permission/zipball/0a35e99da4cb6f85b07b3b58b718ff659c39a009",
|
||||
"reference": "0a35e99da4cb6f85b07b3b58b718ff659c39a009",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-permission/zipball/7090824cca57e693b880ce3aaf7ef78362e28bbd",
|
||||
"reference": "7090824cca57e693b880ce3aaf7ef78362e28bbd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -9706,7 +9702,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/laravel-permission/issues",
|
||||
"source": "https://github.com/spatie/laravel-permission/tree/5.11.0"
|
||||
"source": "https://github.com/spatie/laravel-permission/tree/5.11.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -9714,7 +9710,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-08-30T23:41:24+00:00"
|
||||
"time": "2023-10-25T05:12:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-responsecache",
|
||||
@@ -10047,16 +10043,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
"version": "v5.4.29",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache.git",
|
||||
"reference": "e29c5a97bc2d81269973c3e1d7ceb9d48b4d5151"
|
||||
"reference": "2742d1b595927210546bb7a0887094cf1494de21"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/e29c5a97bc2d81269973c3e1d7ceb9d48b4d5151",
|
||||
"reference": "e29c5a97bc2d81269973c3e1d7ceb9d48b4d5151",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/2742d1b595927210546bb7a0887094cf1494de21",
|
||||
"reference": "2742d1b595927210546bb7a0887094cf1494de21",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10084,7 +10080,7 @@
|
||||
"require-dev": {
|
||||
"cache/integration-tests": "dev-master",
|
||||
"doctrine/cache": "^1.6|^2.0",
|
||||
"doctrine/dbal": "^2.13.1|^3.0",
|
||||
"doctrine/dbal": "^2.13.1|^3|^4",
|
||||
"predis/predis": "^1.1",
|
||||
"psr/simple-cache": "^1.0|^2.0",
|
||||
"symfony/config": "^4.4|^5.0|^6.0",
|
||||
@@ -10124,7 +10120,7 @@
|
||||
"psr6"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/cache/tree/v5.4.29"
|
||||
"source": "https://github.com/symfony/cache/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10140,7 +10136,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-09-19T13:25:51+00:00"
|
||||
"time": "2023-10-17T14:17:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache-contracts",
|
||||
@@ -10922,16 +10918,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v5.4.28",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2"
|
||||
"reference": "671769f79de0532da1478c60968b42506e185d2e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/365992c83a836dfe635f1e903ccca43ee03d3dd2",
|
||||
"reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/671769f79de0532da1478c60968b42506e185d2e",
|
||||
"reference": "671769f79de0532da1478c60968b42506e185d2e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -10978,7 +10974,7 @@
|
||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v5.4.28"
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -10994,20 +10990,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-08-21T07:23:18+00:00"
|
||||
"time": "2023-10-28T23:35:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v5.4.29",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7"
|
||||
"reference": "16b9b36f81631155546d9f05271dd027c83c3dd4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7",
|
||||
"reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/16b9b36f81631155546d9f05271dd027c83c3dd4",
|
||||
"reference": "16b9b36f81631155546d9f05271dd027c83c3dd4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -11090,7 +11086,7 @@
|
||||
"description": "Provides a structured process for converting a Request into a Response",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v5.4.29"
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -11106,7 +11102,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-09-30T06:31:17+00:00"
|
||||
"time": "2023-10-29T00:07:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
@@ -12493,16 +12489,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/serializer",
|
||||
"version": "v5.4.29",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/serializer.git",
|
||||
"reference": "b893175000155839170d589f3a3593f2ce601829"
|
||||
"reference": "ceadb4e08830e69738d313b667cfb426269f67f6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/serializer/zipball/b893175000155839170d589f3a3593f2ce601829",
|
||||
"reference": "b893175000155839170d589f3a3593f2ce601829",
|
||||
"url": "https://api.github.com/repos/symfony/serializer/zipball/ceadb4e08830e69738d313b667cfb426269f67f6",
|
||||
"reference": "ceadb4e08830e69738d313b667cfb426269f67f6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12576,7 +12572,7 @@
|
||||
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/serializer/tree/v5.4.29"
|
||||
"source": "https://github.com/symfony/serializer/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12592,7 +12588,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-09-20T07:40:46+00:00"
|
||||
"time": "2023-10-25T18:53:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -12765,16 +12761,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v5.4.24",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "de237e59c5833422342be67402d487fbf50334ff"
|
||||
"reference": "8560dc532e4e48d331937532a7cbfd2a9f9f53ce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/de237e59c5833422342be67402d487fbf50334ff",
|
||||
"reference": "de237e59c5833422342be67402d487fbf50334ff",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/8560dc532e4e48d331937532a7cbfd2a9f9f53ce",
|
||||
"reference": "8560dc532e4e48d331937532a7cbfd2a9f9f53ce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -12842,7 +12838,7 @@
|
||||
"description": "Provides tools to internationalize your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/translation/tree/v5.4.24"
|
||||
"source": "https://github.com/symfony/translation/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -12858,7 +12854,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-05-19T12:34:17+00:00"
|
||||
"time": "2023-10-28T09:19:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@@ -14702,16 +14698,16 @@
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.15.3",
|
||||
"version": "2.15.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/filp/whoops.git",
|
||||
"reference": "c83e88a30524f9360b11f585f71e6b17313b7187"
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187",
|
||||
"reference": "c83e88a30524f9360b11f585f71e6b17313b7187",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -14761,7 +14757,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/filp/whoops/issues",
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.3"
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -14769,7 +14765,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-07-13T12:00:00+00:00"
|
||||
"time": "2023-11-03T12:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hamcrest/hamcrest-php",
|
||||
|
||||
@@ -16,6 +16,6 @@
|
||||
<Button @wrapperClass="mt-3" @icon="plug" @text="Test Config" @onClick={{this.test}} @isLoading={{this.isLoading}} />
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
<EmberWormhole @to="next-view-section-subheader-actions">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</EmberWormhole>
|
||||
@@ -22,6 +22,6 @@
|
||||
<Button @wrapperClass="mt-3" @icon="plug" @text="Test Config" @onClick={{this.test}} @isLoading={{this.isLoading}} />
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
<EmberWormhole @to="next-view-section-subheader-actions">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</EmberWormhole>
|
||||
@@ -47,6 +47,6 @@
|
||||
</div>
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
<EmberWormhole @to="next-view-section-subheader-actions">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</EmberWormhole>
|
||||
@@ -20,6 +20,6 @@
|
||||
<Button @wrapperClass="mt-3" @icon="plug" @text="Test Config" @onClick={{this.test}} @isLoading={{this.isLoading}} />
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
<EmberWormhole @to="next-view-section-subheader-actions">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</EmberWormhole>
|
||||
@@ -40,6 +40,6 @@
|
||||
<InputGroup @name="IP Info API Key" @value={{this.ipinfoApiKey}} disabled={{this.isLoading}} />
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
<EmberWormhole @to="next-view-section-subheader-actions">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</EmberWormhole>
|
||||
@@ -65,13 +65,6 @@ export default class ConsoleController extends Controller {
|
||||
*/
|
||||
@tracked organizations = [];
|
||||
|
||||
/**
|
||||
* Whether or not to hide the sidebar.
|
||||
*
|
||||
* @var {Boolean}
|
||||
*/
|
||||
@tracked hideSidebar = true;
|
||||
|
||||
/**
|
||||
* Sidebar Context Controls
|
||||
*
|
||||
@@ -79,6 +72,13 @@ export default class ConsoleController extends Controller {
|
||||
*/
|
||||
@tracked sidebarContext;
|
||||
|
||||
/**
|
||||
* Routes which should hide the sidebar menu.
|
||||
*
|
||||
* @var {Array}
|
||||
*/
|
||||
@tracked hiddenSidebarRoutes = ['console.home', 'console.extensions', 'console.notifications'];
|
||||
|
||||
/**
|
||||
* Installed extensions.
|
||||
*
|
||||
@@ -104,7 +104,7 @@ export default class ConsoleController extends Controller {
|
||||
|
||||
this.router.on('routeDidChange', (transition) => {
|
||||
if (this.sidebarContext) {
|
||||
if (transition.to.name === 'console.home' || transition.to.name === 'console.extensions') {
|
||||
if (this.hiddenSidebarRoutes.includes(transition.to.name)) {
|
||||
this.sidebarContext.hideNow();
|
||||
} else {
|
||||
this.sidebarContext.show();
|
||||
@@ -123,7 +123,7 @@ export default class ConsoleController extends Controller {
|
||||
this.sidebarContext = sidebarContext;
|
||||
this.universe.sidebarContext = sidebarContext;
|
||||
|
||||
if (this.router.currentRouteName === 'console.home' || this.router.currentRouteName === 'console.extensions') {
|
||||
if (this.hiddenSidebarRoutes.includes(this.router.currentRouteName)) {
|
||||
this.sidebarContext.hideNow();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,10 @@ import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ConsoleAccountController extends Controller {
|
||||
/**
|
||||
* Inject the `universe` service.
|
||||
*
|
||||
* @memberof ConsoleAdminController
|
||||
*/
|
||||
@service universe;
|
||||
}
|
||||
|
||||
@@ -2,5 +2,10 @@ import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ConsoleAdminController extends Controller {
|
||||
/**
|
||||
* Inject the `universe` service.
|
||||
*
|
||||
* @memberof ConsoleAdminController
|
||||
*/
|
||||
@service universe;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import Controller from '@ember/controller';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
import { isArray } from '@ember/array';
|
||||
|
||||
export default class ConsoleAdminBrandingController extends Controller {
|
||||
/**
|
||||
@@ -51,13 +52,43 @@ export default class ConsoleAdminBrandingController extends Controller {
|
||||
}
|
||||
|
||||
/**
|
||||
* Unset a branding settings
|
||||
* Unsets the value of a given key or array of keys on the model.
|
||||
*
|
||||
* @param {String} key
|
||||
* @action
|
||||
* @param {string | string[]} key - The key or keys to unset on the model.
|
||||
* @param {*} [newValue=null] - The new value to set for the given key or keys. Defaults to null.
|
||||
* @memberof ConsoleAdminBrandingController
|
||||
*/
|
||||
@action unset(key, newValue = null) {
|
||||
this.model[key] = newValue;
|
||||
if (isArray(key)) {
|
||||
return key.forEach((k) => this.unset(k, undefined));
|
||||
}
|
||||
|
||||
this.model.set(key, newValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsets the icon properties on the model.
|
||||
*
|
||||
* @action
|
||||
* @returns {void} - No return value.
|
||||
* @memberof ConsoleAdminBrandingController
|
||||
*/
|
||||
@action unsetIcon() {
|
||||
this.unset(['icon_uuid', 'icon_url']);
|
||||
this.model.set('icon_url', '/images/icon.png');
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsets the logo properties on the model.
|
||||
*
|
||||
* @action
|
||||
* @returns {void} - No return value.
|
||||
* @memberof ConsoleAdminBrandingController
|
||||
*/
|
||||
@action unsetLogo() {
|
||||
this.unset(['logo_uuid', 'logo_url']);
|
||||
this.model.set('logo_url', '/images/fleetbase-logo-svg.svg');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
136
console/app/controllers/console/admin/notifications.js
Normal file
136
console/app/controllers/console/admin/notifications.js
Normal file
@@ -0,0 +1,136 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { action } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import createNotificationKey from '../../../utils/create-notification-key';
|
||||
|
||||
export default class ConsoleAdminNotificationsController extends Controller {
|
||||
/**
|
||||
* Inject the notifications service.
|
||||
*
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
@service notifications;
|
||||
|
||||
/**
|
||||
* Inject the fetch service.
|
||||
*
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
@service fetch;
|
||||
|
||||
/**
|
||||
* The notification settings value JSON.
|
||||
*
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
* @var {Object}
|
||||
*/
|
||||
@tracked notificationSettings = {};
|
||||
|
||||
/**
|
||||
* Notification transport methods enabled.
|
||||
*
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
* @var {Array}
|
||||
*/
|
||||
@tracked notificationTransportMethods = ['email', 'sms'];
|
||||
|
||||
/**
|
||||
* Tracked property for the loading state
|
||||
*
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
* @var {Boolean}
|
||||
*/
|
||||
@tracked isLoading = false;
|
||||
|
||||
/**
|
||||
* Creates an instance of ConsoleAdminNotificationsController.
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.getSettings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectes notifiables for settings.
|
||||
*
|
||||
* @param {Object} notification
|
||||
* @param {Array} notifiables
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
@action onSelectNotifiable(notification, notifiables) {
|
||||
const notificationKey = createNotificationKey(notification.definition, notification.name);
|
||||
const _notificationSettings = { ...this.notificationSettings };
|
||||
|
||||
if (!_notificationSettings[notificationKey]) {
|
||||
_notificationSettings[notificationKey] = {};
|
||||
}
|
||||
|
||||
_notificationSettings[notificationKey].notifiables = notifiables;
|
||||
_notificationSettings[notificationKey].definition = notification.definition;
|
||||
_notificationSettings[notificationKey].via = notifiables.map((notifiable) => {
|
||||
return {
|
||||
identifier: notifiable.value,
|
||||
methods: this.notificationTransportMethods,
|
||||
};
|
||||
});
|
||||
|
||||
this.mutateNotificationSettings(_notificationSettings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mutates the notification settings property.
|
||||
*
|
||||
* @param {Object} [_notificationSettings={}]
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
mutateNotificationSettings(_notificationSettings = {}) {
|
||||
this.notificationSettings = {
|
||||
...this.notificationSettings,
|
||||
..._notificationSettings,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Save notification settings to the server.
|
||||
*
|
||||
* @action
|
||||
* @method saveSettings
|
||||
* @returns {Promise}
|
||||
* @memberof ConsoleAdminNotificationsController
|
||||
*/
|
||||
@action saveSettings() {
|
||||
const { notificationSettings } = this;
|
||||
|
||||
this.isLoading = true;
|
||||
|
||||
return this.fetch
|
||||
.post('notifications/save-settings', { notificationSettings })
|
||||
.then(() => {
|
||||
this.notifications.success('Notification settings successfully saved.');
|
||||
})
|
||||
.catch((error) => {
|
||||
this.notifications.serverError(error);
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = false;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches and updates notification settings asynchronously.
|
||||
*
|
||||
* @returns {Promise<void>} A promise for successful retrieval and update, or an error on failure.
|
||||
*/
|
||||
getSettings() {
|
||||
return this.fetch
|
||||
.get('notifications/get-settings')
|
||||
.then(({ notificationSettings }) => {
|
||||
this.notificationSettings = notificationSettings;
|
||||
})
|
||||
.catch((error) => {
|
||||
this.notifications.serverError(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
188
console/app/controllers/console/notifications.js
Normal file
188
console/app/controllers/console/notifications.js
Normal file
@@ -0,0 +1,188 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { action } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
/**
|
||||
* Controller for managing notifications.
|
||||
*/
|
||||
export default class NotificationsController extends Controller {
|
||||
/**
|
||||
* Inject the `socket` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service socket;
|
||||
|
||||
/**
|
||||
* Inject the `store` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service store;
|
||||
|
||||
/**
|
||||
* Inject the `fetch` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service fetch;
|
||||
|
||||
/**
|
||||
* Inject the `notifications` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service notifications;
|
||||
|
||||
/**
|
||||
* Inject the `universe` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service universe;
|
||||
|
||||
/**
|
||||
* Inject the `router` service
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@service router;
|
||||
|
||||
/**
|
||||
* Queryable parameters for this controller's model
|
||||
*
|
||||
* @var {Array}
|
||||
*/
|
||||
queryParams = ['page', 'limit', 'sort', 'query', 'created_at'];
|
||||
|
||||
/**
|
||||
* The current page of data being viewed
|
||||
*
|
||||
* @var {Integer}
|
||||
*/
|
||||
@tracked page = 1;
|
||||
|
||||
/**
|
||||
* The maximum number of items to show per page
|
||||
*
|
||||
* @var {Integer}
|
||||
*/
|
||||
@tracked limit = 20;
|
||||
|
||||
/**
|
||||
* The param to sort the data on, the param with prepended `-` is descending
|
||||
*
|
||||
* @var {String}
|
||||
*/
|
||||
@tracked sort = '-created_at';
|
||||
|
||||
/**
|
||||
* The selected notifications.
|
||||
*
|
||||
* @tracked
|
||||
* @var {Array}
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@tracked selected = [];
|
||||
|
||||
/**
|
||||
* Creates an instance of NotificationsController.
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
|
||||
// listen for received notifications
|
||||
this.universe.on('notification.received', () => {
|
||||
this.router.refresh();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to select or deselect a notification.
|
||||
*
|
||||
* @param {NotificationModel} notification - The notification to select or deselect.
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@action selectNotification(notification) {
|
||||
if (this.selected.includes(notification)) {
|
||||
this.selected.removeObject(notification);
|
||||
} else {
|
||||
this.selected.pushObject(notification);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to delete selected notifications.
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@action delete() {
|
||||
return this.fetch
|
||||
.delete('notifications/bulk-delete', {
|
||||
notifications: this.selected.map(({ id }) => id),
|
||||
})
|
||||
.then(() => {
|
||||
this.notifications.success(`${this.selected.length} notifications deleted`);
|
||||
this.universe.trigger('notifications.deleted', [...this.selected]);
|
||||
this.selected.clear();
|
||||
|
||||
return this.router.refresh();
|
||||
})
|
||||
.catch((error) => {
|
||||
this.notifications.serverError(error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to mark selected notifications as read.
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@action read() {
|
||||
const unreadSelectedNotifications = this.selected.filter((notification) => notification.unread);
|
||||
|
||||
return this.fetch
|
||||
.put('notifications/mark-as-read', {
|
||||
notifications: unreadSelectedNotifications.map(({ id }) => id),
|
||||
})
|
||||
.then(() => {
|
||||
this.notifications.success(`${unreadSelectedNotifications.length} notifications marked as read`);
|
||||
this.universe.trigger('notifications.read', [...unreadSelectedNotifications]);
|
||||
this.selected.clear();
|
||||
|
||||
return this.router.refresh();
|
||||
})
|
||||
.catch((error) => {
|
||||
this.notifications.serverError(error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to select all notifications.
|
||||
*
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@action selectAll() {
|
||||
if (this.selected.length === this.model.length) {
|
||||
this.selected.clear();
|
||||
} else {
|
||||
this.selected = this.model.toArray();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to mark a notification as read.
|
||||
*
|
||||
* @param {NotificationModel} notification
|
||||
* @return {Promise}
|
||||
* @memberof NotificationsController
|
||||
*/
|
||||
@action markNotificationAsRead(notification) {
|
||||
return notification.markAsRead().then(() => {
|
||||
this.notifications.info('Notification marked as read.');
|
||||
this.universe.trigger('notifications.read', [notification]);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -2,5 +2,10 @@ import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ConsoleSettingsController extends Controller {
|
||||
/**
|
||||
* INject the `universe` service
|
||||
*
|
||||
* @memberof ConsoleSettingsController
|
||||
*/
|
||||
@service universe;
|
||||
}
|
||||
|
||||
6
console/app/helpers/get-notification-key.js
Normal file
6
console/app/helpers/get-notification-key.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import { helper } from '@ember/component/helper';
|
||||
import createNotificationKey from '../utils/create-notification-key';
|
||||
|
||||
export default helper(function getNotificationKey([definition, name]) {
|
||||
return createNotificationKey(definition, name);
|
||||
});
|
||||
@@ -10,7 +10,7 @@ export default class Company extends Model {
|
||||
@attr('string') owner_uuid;
|
||||
@attr('string') logo_uuid;
|
||||
@attr('string') backdrop_uuid;
|
||||
@attr('string') address_uuid;
|
||||
@attr('string') place_uuid;
|
||||
|
||||
/** @relationships */
|
||||
@belongsTo('file') logo;
|
||||
|
||||
53
console/app/models/notification.js
Normal file
53
console/app/models/notification.js
Normal file
@@ -0,0 +1,53 @@
|
||||
import Model, { attr } from '@ember-data/model';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
import { format, formatDistanceToNow } from 'date-fns';
|
||||
|
||||
export default class NotificationModel extends Model {
|
||||
@attr('string') notifiable_id;
|
||||
@attr('string') notifiable_type;
|
||||
|
||||
/** @attributes */
|
||||
@attr('string') type;
|
||||
@attr('raw') data;
|
||||
@attr('raw') meta;
|
||||
|
||||
/** @dates */
|
||||
@attr('date') read_at;
|
||||
@attr('date') created_at;
|
||||
|
||||
/** @computed */
|
||||
@computed('created_at') get createdAgo() {
|
||||
return formatDistanceToNow(this.created_at);
|
||||
}
|
||||
|
||||
@computed('created_at') get createdAt() {
|
||||
return format(this.created_at, 'PPP p');
|
||||
}
|
||||
|
||||
@computed('read_at') get readAt() {
|
||||
return format(this.read_at, 'PPP p');
|
||||
}
|
||||
|
||||
@computed('read_at') get isRead() {
|
||||
return this.read_at instanceof Date;
|
||||
}
|
||||
|
||||
@computed('read_at') get read() {
|
||||
return this.read_at instanceof Date;
|
||||
}
|
||||
|
||||
@computed('isRead') get unread() {
|
||||
return !this.get('isRead');
|
||||
}
|
||||
|
||||
/** @actions */
|
||||
markAsRead() {
|
||||
if (this.isRead) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.set('read_at', new Date());
|
||||
return this.save();
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ Router.map(function () {
|
||||
this.route('console', { path: '/' }, function () {
|
||||
this.route('home', { path: '/' });
|
||||
this.route('extensions');
|
||||
this.route('notifications');
|
||||
this.route('account', function () {
|
||||
this.route('virtual', { path: '/:slug/:view' });
|
||||
});
|
||||
@@ -41,28 +42,9 @@ Router.map(function () {
|
||||
this.route('socket');
|
||||
});
|
||||
this.route('branding');
|
||||
this.route('notifications');
|
||||
this.route('virtual', { path: '/:slug/:view' });
|
||||
});
|
||||
|
||||
this.mount('@fleetbase/dev-engine', {
|
||||
as: 'developers',
|
||||
path: 'developers'
|
||||
});
|
||||
|
||||
this.mount('@fleetbase/fleetops-engine', {
|
||||
as: 'fleet-ops',
|
||||
path: 'fleet-ops'
|
||||
});
|
||||
|
||||
this.mount('@fleetbase/iam-engine', {
|
||||
as: 'iam',
|
||||
path: 'iam'
|
||||
});
|
||||
|
||||
this.mount('@fleetbase/storefront-engine', {
|
||||
as: 'storefront',
|
||||
path: 'storefront'
|
||||
});
|
||||
});
|
||||
this.route('install');
|
||||
});
|
||||
|
||||
20
console/app/routes/console/admin/notifications.js
Normal file
20
console/app/routes/console/admin/notifications.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { hash } from 'rsvp';
|
||||
import groupBy from '@fleetbase/ember-core/utils/group-by';
|
||||
|
||||
export default class ConsoleAdminNotificationsRoute extends Route {
|
||||
@service fetch;
|
||||
|
||||
model() {
|
||||
return hash({
|
||||
registry: this.fetch.get('notifications/registry'),
|
||||
notifiables: this.fetch.get('notifications/notifiables'),
|
||||
});
|
||||
}
|
||||
|
||||
setupController(controller, { registry, notifiables }) {
|
||||
controller.groupedNotifications = groupBy(registry, 'package');
|
||||
controller.notifiables = notifiables;
|
||||
}
|
||||
}
|
||||
27
console/app/routes/console/notifications.js
Normal file
27
console/app/routes/console/notifications.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
/**
|
||||
* Route for managing console notifications.
|
||||
*/
|
||||
export default class ConsoleNotificationsRoute extends Route {
|
||||
@service store;
|
||||
|
||||
queryParams = {
|
||||
page: { refreshModel: true },
|
||||
limit: { refreshModel: true },
|
||||
sort: { refreshModel: true },
|
||||
query: { refreshModel: true },
|
||||
created_at: { refreshModel: true },
|
||||
};
|
||||
|
||||
/**
|
||||
* Fetch the model data based on the specified parameters.
|
||||
*
|
||||
* @param {Object} params - Query parameters for fetching notifications.
|
||||
* @returns {Promise} - A promise that resolves with the notification data.
|
||||
*/
|
||||
model(params = {}) {
|
||||
return this.store.query('notification', params);
|
||||
}
|
||||
}
|
||||
5
console/app/serializers/notification.js
Normal file
5
console/app/serializers/notification.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
|
||||
|
||||
export default class NotificationSerializer extends ApplicationSerializer {
|
||||
primaryKey = 'id';
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
<EmberWormhole @to="sidebar-menu-items">
|
||||
<Layout::Sidebar::Item @route="console.admin.index" @icon="rectangle-list">Overview</Layout::Sidebar::Item>
|
||||
<Layout::Sidebar::Item @route="console.admin.branding" @icon="palette">Branding</Layout::Sidebar::Item>
|
||||
<Layout::Sidebar::Item @route="console.admin.notifications" @icon="bell">Notifications</Layout::Sidebar::Item>
|
||||
{{#each this.universe.adminMenuItems as |menuItem|}}
|
||||
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem "console.admin.virtual" menuItem}} @item={{menuItem}} @icon={{menuItem.icon}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
||||
{{/each}}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{{page-title "Branding"}}
|
||||
<Layout::Section::Header @title="Branding" />
|
||||
<Layout::Section::Header @title="Branding">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</Layout::Section::Header>
|
||||
|
||||
<Layout::Section::Body class="overflow-y-scroll h-full">
|
||||
<div class="container mx-auto h-screen" {{increase-height-by 300}}>
|
||||
@@ -28,7 +30,7 @@
|
||||
</a>
|
||||
</FileUpload>
|
||||
</div>
|
||||
<a href="javascript:;" class="text-danger text-xs mt-1" {{on "click" (fn this.unset "icon_url" "/images/icon.png")}}>Reset to default</a>
|
||||
<a href="javascript:;" class="text-danger text-xs mt-1" {{on "click" this.unsetIcon}}>Reset to default</a>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>Logo</label>
|
||||
@@ -52,17 +54,13 @@
|
||||
</a>
|
||||
</FileUpload>
|
||||
</div>
|
||||
<a href="javascript:;" class="text-danger text-xs mt-1" {{on "click" (fn this.unset "logo_url" "/images/fleetbase-logo-svg.svg")}}>Reset to default</a>
|
||||
<a href="javascript:;" class="text-danger text-xs mt-1" {{on "click" this.unsetLogo}}>Reset to default</a>
|
||||
</div>
|
||||
<InputGroup @name="Default Theme">
|
||||
<Select @value={{@model.default_theme}} @onSelect={{this.setTheme}} @options={{this.themeOptions}} />
|
||||
</InputGroup>
|
||||
</form>
|
||||
</ContentPanel>
|
||||
|
||||
<div class="mt-3 flex items-center justify-end">
|
||||
<Button @type="primary" @size="lg" @icon="save" @text="Save Changes" @onClick={{this.save}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Layout::Section::Body>
|
||||
32
console/app/templates/console/admin/notifications.hbs
Normal file
32
console/app/templates/console/admin/notifications.hbs
Normal file
@@ -0,0 +1,32 @@
|
||||
{{page-title "Notifications"}}
|
||||
<Layout::Section::Header @title="Notifications">
|
||||
<Button @type="primary" @size="sm" @icon="save" @text="Save Changes" @onClick={{this.saveSettings}} @disabled={{this.isLoading}} @isLoading={{this.isLoading}} />
|
||||
</Layout::Section::Header>
|
||||
|
||||
<Layout::Section::Body class="overflow-y-scroll h-full">
|
||||
<div class="container mx-auto h-screen" {{increase-height-by 1200}}>
|
||||
<div class="max-w-3xl my-10 mx-auto space-y-4">
|
||||
{{#each-in this.groupedNotifications as |groupName notifications|}}
|
||||
<ContentPanel @title={{concat (smart-humanize groupName) " Notification Settings"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
||||
{{#each notifications as |notification|}}
|
||||
<InputGroup @name={{notification.name}} @helpText={{notification.description}}>
|
||||
<div class="fleetbase-model-select fleetbase-power-select ember-model-select">
|
||||
<PowerSelectMultiple
|
||||
@searchEnabled={{true}}
|
||||
@options={{this.notifiables}}
|
||||
@selected={{get this.notificationSettings (concat (get-notification-key notification.definition notification.name) ".notifiables")}}
|
||||
@onChange={{fn this.onSelectNotifiable notification}}
|
||||
@placeholder="Select notifiables..."
|
||||
@triggerClass="form-select form-input form-input-sm flex-1"
|
||||
as |notifiable|
|
||||
>
|
||||
{{notifiable.label}}
|
||||
</PowerSelectMultiple>
|
||||
</div>
|
||||
</InputGroup>
|
||||
{{/each}}
|
||||
</ContentPanel>
|
||||
{{/each-in}}
|
||||
</div>
|
||||
</div>
|
||||
</Layout::Section::Body>
|
||||
51
console/app/templates/console/notifications.hbs
Normal file
51
console/app/templates/console/notifications.hbs
Normal file
@@ -0,0 +1,51 @@
|
||||
<Layout::Section::Header @title="Notifications">
|
||||
<Button @icon="check-square" @type="default" @text="Select All" {{on "click" this.selectAll}} class="mr-2" />
|
||||
<Button @icon="envelope" @type="primary" @text="Mark as Read" {{on "click" this.read}} class="mr-2" />
|
||||
<Button @icon="trash" @type="danger" @text="Delete" {{on "click" this.delete}} />
|
||||
</Layout::Section::Header>
|
||||
|
||||
<Layout::Section::Body class="h-full w-full">
|
||||
<div class="max-h-[calc(100vh-10rem)] h-full w-full overflow-y-scroll">
|
||||
<div class="h-full w-full">
|
||||
{{#each @model as |notification|}}
|
||||
<div class="flex flex-row justify-between px-4 py-3 text-black dark:text-white border-b dark:border-gray-800 border-gray-200 text-sm hover:opacity-60 {{if notification.read_at 'bg-gray-100 dark:bg-gray-900' 'bg-white dark:bg-gray-800'}}">
|
||||
<div class="flex flex-row flex-1">
|
||||
<div class="flex items-center justify-center mr-6">
|
||||
<Checkbox @value={{includes notification this.selected}} @onToggle={{fn this.selectNotification notification}} />
|
||||
</div>
|
||||
<a href="javascript:;" class="flex-1 flex flex-row" {{on "click" (fn this.markNotificationAsRead notification)}}>
|
||||
<div class="mr-4 flex items-center justify-center">
|
||||
{{#if notification.read_at}}
|
||||
<FaIcon @icon="envelope-open" class="text-gray-200" />
|
||||
{{else}}
|
||||
<FaIcon @icon="envelope" class="text-gray-200" />
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div class="flex flex-row space-x-2">
|
||||
<h1 class="text-sm font-semibold antialiased leading-4">{{notification.data.subject}}</h1>
|
||||
<div class="text-xs antialiased text-gray-900 dark:text-gray-200">- {{notification.data.message}}</div>
|
||||
</div>
|
||||
<div class="text-gray-300 text-xs antialiased mt-1">Received: {{notification.createdAgo}}</div>
|
||||
</div>
|
||||
</a>
|
||||
<div>
|
||||
<FaIcon @icon="clock" class="text-gray-400 dark:text-gray-700" @size="sm" />
|
||||
<span class="text-gray-400 dark:text-gray-600 text-xs">{{notification.createdAt}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="flex items-center justify-center h-full w-full">
|
||||
<p class="text-base text-gray-800 dark:text-gray-300 italic">No notifications to display.</p>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</Layout::Section::Body>
|
||||
|
||||
<div class="fixed bottom-0 w-full">
|
||||
<Layout::Section::Footer>
|
||||
<Pagination @meta={{@model.meta}} @currentPage={{this.page}} @onPageChange={{fn (mut this.page)}} @tfootVerticalOffset="53" @tfootVerticalOffsetElements=".next-view-section-subheader" />
|
||||
</Layout::Section::Footer>
|
||||
</div>
|
||||
8
console/app/utils/create-notification-key.js
Normal file
8
console/app/utils/create-notification-key.js
Normal file
@@ -0,0 +1,8 @@
|
||||
import { camelize } from '@ember/string';
|
||||
|
||||
export default function createNotificationKey(definition, name) {
|
||||
const withoutSlashes = definition.replace(/[\W_]+/g, '');
|
||||
const key = `${camelize(withoutSlashes)}__${camelize(name)}`;
|
||||
|
||||
return key;
|
||||
}
|
||||
@@ -21,7 +21,7 @@ module.exports = function (environment) {
|
||||
},
|
||||
|
||||
API: {
|
||||
host: fixApiHost(getenv('API_HOST'), getenv('API_SECURE')),
|
||||
host: fixApiHost(getenv('API_HOST'), toBoolean(getenv('API_SECURE'))),
|
||||
namespace: getenv('API_NAMESPACE', 'int/v1'),
|
||||
},
|
||||
|
||||
@@ -43,7 +43,8 @@ module.exports = function (environment) {
|
||||
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'),
|
||||
vehicleImage: getenv('DEFAULT_VEHICLE_IMAGE', 'https://flb-assets.s3.ap-southeast-1.amazonaws.com/static/vehicle-icons/light_commercial_van.svg'),
|
||||
vendorImage: getenv('DEFAULT_VENDOR_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),
|
||||
vehicleImage: getenv('DEFAULT_VEHICLE_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/vehicle-placeholder.png'),
|
||||
vehicleAvatar: getenv('DEFAUL_VEHICLE_AVATAR', 'https://flb-assets.s3-ap-southeast-1.amazonaws.com/static/vehicle-icons/mini_bus.svg'),
|
||||
},
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ module.exports = function (defaults) {
|
||||
postcssMixins,
|
||||
postcssPresetEnv({ stage: 1 }),
|
||||
postcssEach,
|
||||
tailwind('./tailwind.js'),
|
||||
tailwind('./tailwind.config.js'),
|
||||
autoprefixer,
|
||||
],
|
||||
},
|
||||
|
||||
8
console/environments/.env.development
Normal file
8
console/environments/.env.development
Normal file
@@ -0,0 +1,8 @@
|
||||
API_HOST=http://localhost:8000
|
||||
API_NAMESPACE=int/v1
|
||||
SOCKETCLUSTER_PATH=/socketcluster/
|
||||
SOCKETCLUSTER_HOST=localhost
|
||||
SOCKETCLUSTER_SECURE=false
|
||||
SOCKETCLUSTER_PORT=38000
|
||||
OSRM_HOST=https://bundle.routing.fleetbase.io
|
||||
OSRM_SERVERS=https://canada.routing.fleetbase.io,https://us.routing.fleetbase.io
|
||||
9
console/environments/.env.production
Normal file
9
console/environments/.env.production
Normal file
@@ -0,0 +1,9 @@
|
||||
API_HOST=
|
||||
API_NAMESPACE=int/v1
|
||||
API_SECURE=true
|
||||
SOCKETCLUSTER_PATH=/socketcluster/
|
||||
SOCKETCLUSTER_HOST=
|
||||
SOCKETCLUSTER_SECURE=true
|
||||
SOCKETCLUSTER_PORT=38000
|
||||
OSRM_HOST=https://bundle.routing.fleetbase.io
|
||||
OSRM_SERVERS=https://canada.routing.fleetbase.io,https://us.routing.fleetbase.io
|
||||
0
console/environments/.gitkeep
Normal file
0
console/environments/.gitkeep
Normal file
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@fleetbase/console",
|
||||
"version": "0.2.6",
|
||||
"version": "0.2.9",
|
||||
"private": true,
|
||||
"description": "Fleetbase Console",
|
||||
"repository": "",
|
||||
@@ -25,13 +25,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@ember/legacy-built-in-components": "^0.4.1",
|
||||
"@fleetbase/ember-core": "^0.1.5",
|
||||
"@fleetbase/ember-ui": "^0.2.0",
|
||||
"@fleetbase/dev-engine": "^0.1.8",
|
||||
"@fleetbase/iam-engine": "^0.0.6",
|
||||
"@fleetbase/fleetops-engine": "^0.2.9",
|
||||
"@fleetbase/fleetops-data": "^0.1.1",
|
||||
"@fleetbase/storefront-engine": "^0.2.0",
|
||||
"@fleetbase/ember-core": "^0.1.7",
|
||||
"@fleetbase/ember-ui": "^0.2.4",
|
||||
"@fleetbase/dev-engine": "^0.1.9",
|
||||
"@fleetbase/iam-engine": "^0.0.7",
|
||||
"@fleetbase/fleetops-engine": "^0.3.3",
|
||||
"@fleetbase/fleetops-data": "^0.1.3",
|
||||
"@fleetbase/storefront-engine": "^0.2.4",
|
||||
"@fleetbase/leaflet-routing-machine": "^3.2.16",
|
||||
"@fortawesome/ember-fontawesome": "^0.4.1",
|
||||
"ember-intl": "^6.0.0-beta.6",
|
||||
@@ -67,7 +67,7 @@
|
||||
"dragula": "^3.7.3",
|
||||
"ember-auto-import": "^2.4.2",
|
||||
"ember-cli": "~4.6.0",
|
||||
"ember-cli-app-version": "^5.0.0",
|
||||
"ember-cli-app-version": "^6.0.1",
|
||||
"ember-cli-babel": "^7.26.11",
|
||||
"ember-cli-dependency-checker": "^3.3.1",
|
||||
"ember-cli-dotenv": "^3.1.0",
|
||||
@@ -125,9 +125,9 @@
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"@fleetbase/fleetops-data": "^0.1.1",
|
||||
"@fleetbase/ember-core": "^0.1.5",
|
||||
"@fleetbase/ember-ui": "^0.2.0"
|
||||
"@fleetbase/fleetops-data": "^0.1.3",
|
||||
"@fleetbase/ember-core": "^0.1.7",
|
||||
"@fleetbase/ember-ui": "^0.2.4"
|
||||
}
|
||||
},
|
||||
"prettier": {
|
||||
|
||||
2331
console/pnpm-lock.yaml
generated
2331
console/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,7 @@ Router.map(function () {
|
||||
this.route('console', { path: '/' }, function () {
|
||||
this.route('home', { path: '/' });
|
||||
this.route('extensions');
|
||||
this.route('notifications');
|
||||
this.route('account', function () {
|
||||
this.route('virtual', { path: '/:slug/:view' });
|
||||
});
|
||||
@@ -41,6 +42,7 @@ Router.map(function () {
|
||||
this.route('socket');
|
||||
});
|
||||
this.route('branding');
|
||||
this.route('notifications');
|
||||
this.route('virtual', { path: '/:slug/:view' });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from '@fleetbase/console/tests/helpers';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import { hbs } from 'ember-cli-htmlbars';
|
||||
|
||||
module('Integration | Component | notification-list', function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test('it renders', async function (assert) {
|
||||
// Set any properties with this.set('myProperty', 'value');
|
||||
// Handle any actions with this.set('myAction', function(val) { ... });
|
||||
|
||||
await render(hbs`<NotificationList />`);
|
||||
|
||||
assert.dom(this.element).hasText('');
|
||||
|
||||
// Template block usage:
|
||||
await render(hbs`
|
||||
<NotificationList>
|
||||
template block text
|
||||
</NotificationList>
|
||||
`);
|
||||
|
||||
assert.dom(this.element).hasText('template block text');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,26 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from '@fleetbase/console/tests/helpers';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import { hbs } from 'ember-cli-htmlbars';
|
||||
|
||||
module('Integration | Component | notifications-list', function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test('it renders', async function (assert) {
|
||||
// Set any properties with this.set('myProperty', 'value');
|
||||
// Handle any actions with this.set('myAction', function(val) { ... });
|
||||
|
||||
await render(hbs`<NotificationsList />`);
|
||||
|
||||
assert.dom(this.element).hasText('');
|
||||
|
||||
// Template block usage:
|
||||
await render(hbs`
|
||||
<NotificationsList>
|
||||
template block text
|
||||
</NotificationsList>
|
||||
`);
|
||||
|
||||
assert.dom(this.element).hasText('template block text');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from '@fleetbase/console/tests/helpers';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import { hbs } from 'ember-cli-htmlbars';
|
||||
|
||||
module('Integration | Helper | get-notification-key', function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
// TODO: Replace this with your real tests.
|
||||
test('it renders', async function (assert) {
|
||||
this.set('inputValue', '1234');
|
||||
|
||||
await render(hbs`{{get-notification-key this.inputValue}}`);
|
||||
|
||||
assert.dom(this.element).hasText('1234');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,12 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Controller | console/admin/notifications', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// TODO: Replace this with your real tests.
|
||||
test('it exists', function (assert) {
|
||||
let controller = this.owner.lookup('controller:console/admin/notifications');
|
||||
assert.ok(controller);
|
||||
});
|
||||
});
|
||||
12
console/tests/unit/controllers/console/notifications-test.js
Normal file
12
console/tests/unit/controllers/console/notifications-test.js
Normal file
@@ -0,0 +1,12 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Controller | console/notifications', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// TODO: Replace this with your real tests.
|
||||
test('it exists', function (assert) {
|
||||
let controller = this.owner.lookup('controller:console/notifications');
|
||||
assert.ok(controller);
|
||||
});
|
||||
});
|
||||
14
console/tests/unit/models/notification-test.js
Normal file
14
console/tests/unit/models/notification-test.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import { module, test } from 'qunit';
|
||||
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Model | notification', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// Replace this with your real tests.
|
||||
test('it exists', function (assert) {
|
||||
let store = this.owner.lookup('service:store');
|
||||
let model = store.createRecord('notification', {});
|
||||
assert.ok(model);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Route | console/admin/notifications', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
test('it exists', function (assert) {
|
||||
let route = this.owner.lookup('route:console/admin/notifications');
|
||||
assert.ok(route);
|
||||
});
|
||||
});
|
||||
11
console/tests/unit/routes/console/notifications-test.js
Normal file
11
console/tests/unit/routes/console/notifications-test.js
Normal file
@@ -0,0 +1,11 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Route | console/notifications', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
test('it exists', function (assert) {
|
||||
let route = this.owner.lookup('route:console/notifications');
|
||||
assert.ok(route);
|
||||
});
|
||||
});
|
||||
24
console/tests/unit/serializers/notification-test.js
Normal file
24
console/tests/unit/serializers/notification-test.js
Normal file
@@ -0,0 +1,24 @@
|
||||
import { module, test } from 'qunit';
|
||||
|
||||
import { setupTest } from '@fleetbase/console/tests/helpers';
|
||||
|
||||
module('Unit | Serializer | notification', function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// Replace this with your real tests.
|
||||
test('it exists', function (assert) {
|
||||
let store = this.owner.lookup('service:store');
|
||||
let serializer = store.serializerFor('notification');
|
||||
|
||||
assert.ok(serializer);
|
||||
});
|
||||
|
||||
test('it serializes records', function (assert) {
|
||||
let store = this.owner.lookup('service:store');
|
||||
let record = store.createRecord('notification', {});
|
||||
|
||||
let serializedRecord = record.serialize();
|
||||
|
||||
assert.ok(serializedRecord);
|
||||
});
|
||||
});
|
||||
10
console/tests/unit/utils/create-notification-key-test.js
Normal file
10
console/tests/unit/utils/create-notification-key-test.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import createNotificationKey from '@fleetbase/console/utils/create-notification-key';
|
||||
import { module, test } from 'qunit';
|
||||
|
||||
module('Unit | Utility | create-notification-key', function () {
|
||||
// TODO: Replace this with your real tests.
|
||||
test('it works', function (assert) {
|
||||
let result = createNotificationKey();
|
||||
assert.ok(result);
|
||||
});
|
||||
});
|
||||
Submodule packages/core-api updated: 0b0fb9cde5...e10f6e69d1
Submodule packages/dev-engine updated: 7bd488190f...36eae70b65
Submodule packages/ember-core updated: 490c6d3821...85a81456f9
Submodule packages/ember-ui updated: 0af42f9345...c4c9c184f0
Submodule packages/fleetops updated: 49cbcd58ad...5ce11e275d
Submodule packages/fleetops-data updated: 063ef50603...6d0ab56bdd
Submodule packages/iam-engine updated: 68204f8e57...8cc83d365e
Submodule packages/storefront updated: cbc8c467f4...df155f5b3e
Reference in New Issue
Block a user