From c2af7dc6a2beeff67d755aa0132ee995da8e2663 Mon Sep 17 00:00:00 2001 From: Aleksandra Kozubal <104600942+AleksandraKozubal@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:06:38 +0100 Subject: [PATCH 01/12] - fix importers (#180) * fix BitMobilityDataImporter.php * fix BeamDataImporter.php * codestyle --- app/Importers/BeamDataImporter.php | 13 ++++++------- app/Importers/BitMobilityDataImporter.php | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/Importers/BeamDataImporter.php b/app/Importers/BeamDataImporter.php index 0a99e98a..4dd82e3e 100644 --- a/app/Importers/BeamDataImporter.php +++ b/app/Importers/BeamDataImporter.php @@ -25,7 +25,7 @@ public function extract(): static } $crawler = new Crawler($html); - $this->sections = $crawler->filter("div .find-beam-box"); + $this->sections = $crawler->filter("div.find-beam-box"); if (count($this->sections) === 0) { $this->createImportInfoDetails("204", self::getProviderName()); @@ -37,7 +37,7 @@ public function extract(): static public function transform(): void { - $url = "https://uploads-ssl.webflow.com/63c4acbedbab5dea8b1b98cd/63d8a5b60da91e7d71298637_map-vehicle-saturn.png"; + $url = "https://assets-global.website-files.com/63c4acbedbab5dea8b1b98cd/63d8a5b60da91e7d71298637_map-vehicle-saturn.png"; if ($this->stopExecution) { return; @@ -73,18 +73,17 @@ public function transform(): void $arrayOfCitiesNames = array_filter($arrayOfCitiesNames, fn($record) => strpos($record, "•") === false); foreach ($arrayOfCitiesNames as $cityName) { - if ($cityName === "Selangor") { - } else { + if ($cityName !== "Selangor") { $cityName = trim($cityName); if ($countryName === "Korea") { $countryName = "South Korea"; } $provider = $this->load($cityName, $countryName); - } - if ($provider !== "") { - $existingCityProviders[] = $provider; + if ($provider !== "") { + $existingCityProviders[] = $provider; + } } } } diff --git a/app/Importers/BitMobilityDataImporter.php b/app/Importers/BitMobilityDataImporter.php index 6e7eb93e..77bed5d1 100644 --- a/app/Importers/BitMobilityDataImporter.php +++ b/app/Importers/BitMobilityDataImporter.php @@ -36,7 +36,7 @@ public function transform(): void } $existingCityProviders = []; $crawler = new Crawler($this->html); - $this->sections = $crawler->filter(".wpb_content_element > .wpb_wrapper > p > a"); + $this->sections = $crawler->filter("div.e-hotspot__tooltip"); if (count($this->sections) === 0) { $this->createImportInfoDetails("204", self::getProviderName()); From 1dd33f1f287587f8334e47a6d37ba2b04ce9a83e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 08:28:15 +0100 Subject: [PATCH 02/12] - Batch update January 2024 (#186) * - (php) Bump spatie/laravel-permission from 6.2.0 to 6.3.0 Bumps [spatie/laravel-permission](https://github.com/spatie/laravel-permission) from 6.2.0 to 6.3.0. - [Release notes](https://github.com/spatie/laravel-permission/releases) - [Changelog](https://github.com/spatie/laravel-permission/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-permission/compare/6.2.0...6.3.0) --- updated-dependencies: - dependency-name: spatie/laravel-permission dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * bump dependencies --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Aleksandra Kozubal --- composer.lock | 207 +++++++++++++++-------------- environment/dev/app/Dockerfile | 2 +- environment/staging/app/Dockerfile | 2 +- package-lock.json | 16 +-- package.json | 2 +- 5 files changed, 116 insertions(+), 113 deletions(-) diff --git a/composer.lock b/composer.lock index 9163518e..256d8f79 100644 --- a/composer.lock +++ b/composer.lock @@ -63,26 +63,26 @@ }, { "name": "carbonphp/carbon-doctrine-types", - "version": "3.1.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5" + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/a31d3358a2a5d6ae947df1691d1f321418a5f3d5", - "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^7.4 || ^8.0" }, "conflict": { - "doctrine/dbal": "<4.0.0 || >=5.0.0" + "doctrine/dbal": "<3.7.0 || >=4.0.0" }, "require-dev": { - "doctrine/dbal": "^4.0.0", + "doctrine/dbal": "^3.7.0", "nesbot/carbon": "^2.71.0 || ^3.0.0", "phpunit/phpunit": "^10.3" }, @@ -112,7 +112,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.1.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2023-12-10T15:33:53+00:00" + "time": "2023-12-11T17:09:12+00:00" }, { "name": "clue/stream-filter", @@ -1302,16 +1302,16 @@ }, { "name": "laravel/framework", - "version": "v10.37.3", + "version": "v10.39.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "996375dd61f8c6e4ac262b57ed485655d71fcbdc" + "reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/996375dd61f8c6e4ac262b57ed485655d71fcbdc", - "reference": "996375dd61f8c6e4ac262b57ed485655d71fcbdc", + "url": "https://api.github.com/repos/laravel/framework/zipball/114926b07bfb5fbf2545c03aa2ce5c8c37be650c", + "reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c", "shasum": "" }, "require": { @@ -1357,6 +1357,8 @@ "voku/portable-ascii": "^2.0" }, "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -1412,7 +1414,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.15.1", + "orchestra/testbench-core": "^8.18", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", @@ -1468,6 +1470,7 @@ "files": [ "src/Illuminate/Collections/helpers.php", "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Support/helpers.php" ], @@ -1500,20 +1503,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-12-13T20:10:58+00:00" + "time": "2023-12-27T14:26:28+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.13", + "version": "v0.1.14", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a" + "reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/e1379d8ead15edd6cc4369c22274345982edc95a", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a", + "url": "https://api.github.com/repos/laravel/prompts/zipball/2219fa9c4b944add1e825c3bdb8ecae8bc503bc6", + "reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6", "shasum": "" }, "require": { @@ -1529,7 +1532,7 @@ "require-dev": { "mockery/mockery": "^1.5", "pestphp/pest": "^2.3", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, "suggest": { @@ -1555,9 +1558,9 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.13" + "source": "https://github.com/laravel/prompts/tree/v0.1.14" }, - "time": "2023-10-27T13:53:59+00:00" + "time": "2023-12-27T04:18:09+00:00" }, { "name": "laravel/sanctum", @@ -4360,16 +4363,16 @@ }, { "name": "spatie/laravel-permission", - "version": "6.2.0", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "299dd2c9bce700ea641021c1aea0dfece25e541d" + "reference": "4d119986c862ac0168b77338c85d8236bb559a88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/299dd2c9bce700ea641021c1aea0dfece25e541d", - "reference": "299dd2c9bce700ea641021c1aea0dfece25e541d", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/4d119986c862ac0168b77338c85d8236bb559a88", + "reference": "4d119986c862ac0168b77338c85d8236bb559a88", "shasum": "" }, "require": { @@ -4430,7 +4433,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/6.2.0" + "source": "https://github.com/spatie/laravel-permission/tree/6.3.0" }, "funding": [ { @@ -4438,7 +4441,7 @@ "type": "github" } ], - "time": "2023-12-09T01:40:07+00:00" + "time": "2023-12-24T06:58:02+00:00" }, { "name": "stichoza/google-translate-php", @@ -4522,16 +4525,16 @@ }, { "name": "symfony/console", - "version": "v6.4.1", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd" + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a550a7c99daeedef3f9d23fb82e3531525ff11fd", - "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd", + "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", "shasum": "" }, "require": { @@ -4596,7 +4599,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.1" + "source": "https://github.com/symfony/console/tree/v6.4.2" }, "funding": [ { @@ -4612,7 +4615,7 @@ "type": "tidelift" } ], - "time": "2023-11-30T10:54:28+00:00" + "time": "2023-12-10T16:15:48+00:00" }, { "name": "symfony/css-selector", @@ -4890,16 +4893,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v7.0.0", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" + "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a", + "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a", "shasum": "" }, "require": { @@ -4950,7 +4953,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2" }, "funding": [ { @@ -4966,7 +4969,7 @@ "type": "tidelift" } ], - "time": "2023-07-27T16:29:09+00:00" + "time": "2023-12-27T22:24:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5280,16 +5283,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771" + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/44a6d39a9cc11e154547d882d5aac1e014440771", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271", + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271", "shasum": "" }, "require": { @@ -5337,7 +5340,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.2" }, "funding": [ { @@ -5353,20 +5356,20 @@ "type": "tidelift" } ], - "time": "2023-11-20T16:41:16+00:00" + "time": "2023-12-27T22:16:42+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.1", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b" + "reference": "13e8387320b5942d0dc408440c888e2d526efef4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2953274c16a229b3933ef73a6898e18388e12e1b", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4", + "reference": "13e8387320b5942d0dc408440c888e2d526efef4", "shasum": "" }, "require": { @@ -5450,7 +5453,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/v6.4.1" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.2" }, "funding": [ { @@ -5466,20 +5469,20 @@ "type": "tidelift" } ], - "time": "2023-12-01T17:02:02+00:00" + "time": "2023-12-30T15:31:44+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba" + "reference": "6da89e5c9202f129717a770a03183fb140720168" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168", + "reference": "6da89e5c9202f129717a770a03183fb140720168", "shasum": "" }, "require": { @@ -5530,7 +5533,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.0" + "source": "https://github.com/symfony/mailer/tree/v6.4.2" }, "funding": [ { @@ -5546,7 +5549,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T18:02:22+00:00" + "time": "2023-12-19T09:12:31+00:00" }, { "name": "symfony/mime", @@ -6439,16 +6442,16 @@ }, { "name": "symfony/process", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa" + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/191703b1566d97a5425dc969e4350d32b8ef17aa", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa", + "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241", + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241", "shasum": "" }, "require": { @@ -6480,7 +6483,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.0" + "source": "https://github.com/symfony/process/tree/v6.4.2" }, "funding": [ { @@ -6496,7 +6499,7 @@ "type": "tidelift" } ], - "time": "2023-11-17T21:06:49+00:00" + "time": "2023-12-22T16:42:54+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -6589,16 +6592,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.1", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40" + "reference": "98eab13a07fddc85766f1756129c69f207ffbc21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0c95c164fdba18b12523b75e64199ca3503e6d40", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40", + "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21", + "reference": "98eab13a07fddc85766f1756129c69f207ffbc21", "shasum": "" }, "require": { @@ -6652,7 +6655,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.1" + "source": "https://github.com/symfony/routing/tree/v6.4.2" }, "funding": [ { @@ -6668,25 +6671,25 @@ "type": "tidelift" } ], - "time": "2023-12-01T14:54:37+00:00" + "time": "2023-12-29T15:34:34+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -6734,7 +6737,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -6750,20 +6753,20 @@ "type": "tidelift" } ], - "time": "2023-07-30T20:28:31+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/string", - "version": "v7.0.0", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" + "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", + "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5", + "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5", "shasum": "" }, "require": { @@ -6820,7 +6823,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" + "source": "https://github.com/symfony/string/tree/v7.0.2" }, "funding": [ { @@ -6836,20 +6839,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:40:23+00:00" + "time": "2023-12-10T16:54:46+00:00" }, { "name": "symfony/translation", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37" + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", + "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", "shasum": "" }, "require": { @@ -6915,7 +6918,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.0" + "source": "https://github.com/symfony/translation/tree/v6.4.2" }, "funding": [ { @@ -6931,20 +6934,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:14:36+00:00" + "time": "2023-12-18T09:25:29+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { @@ -6993,7 +6996,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -7009,7 +7012,7 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/uid", @@ -7087,16 +7090,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6" + "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c40f7d17e91d8b407582ed51a2bbf83c52c367f6", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", + "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", "shasum": "" }, "require": { @@ -7152,7 +7155,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.2" }, "funding": [ { @@ -7168,7 +7171,7 @@ "type": "tidelift" } ], - "time": "2023-11-09T08:28:32+00:00" + "time": "2023-12-28T19:16:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -10366,5 +10369,5 @@ "ext-dom": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/environment/dev/app/Dockerfile b/environment/dev/app/Dockerfile index 0011db68..9cc0bc88 100644 --- a/environment/dev/app/Dockerfile +++ b/environment/dev/app/Dockerfile @@ -2,7 +2,7 @@ FROM composer/composer:2.5.8-bin as composer-bin FROM node:21.4.0-bullseye-slim as node -FROM php:8.2.9-fpm-bullseye +FROM php:8.3.1-fpm-bullseye COPY --from=composer-bin ./composer /usr/bin/composer diff --git a/environment/staging/app/Dockerfile b/environment/staging/app/Dockerfile index f7c470d9..78859e08 100644 --- a/environment/staging/app/Dockerfile +++ b/environment/staging/app/Dockerfile @@ -2,7 +2,7 @@ FROM composer/composer:2.5.8-bin as composer-bin FROM node:20.4.0-bullseye-slim as node -FROM php:8.2.9-fpm-bullseye +FROM php:8.3.1-fpm-bullseye COPY --from=composer-bin ./composer /usr/bin/composer diff --git a/package-lock.json b/package-lock.json index e675f0f5..6d5a44ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "eslint-plugin-tailwindcss": "^3.13.0", "eslint-plugin-vue": "^9.16.1", "leaflet": "^1.9.4", - "postcss": "^8.4.27", + "postcss": "^8.4.32", "vite": "^4.4.7" } }, @@ -2527,9 +2527,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -2803,9 +2803,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -2821,7 +2821,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, diff --git a/package.json b/package.json index 6a29d9c2..2999773d 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "eslint-plugin-tailwindcss": "^3.13.0", "eslint-plugin-vue": "^9.16.1", "leaflet": "^1.9.4", - "postcss": "^8.4.27", + "postcss": "^8.4.32", "vite": "^4.4.7" } } From d043e8b8d1dce09676c60a2ddc20f96fc313abd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20=C5=BBmigrodzki?= <100092805+zmigrOO@users.noreply.github.com> Date: Mon, 8 Jan 2024 08:55:34 +0100 Subject: [PATCH 03/12] #12 - add link to install/open provider's app (#183) * prepare for adding provider app buttons * css and buttons updated * prepared database for links fixed displaying buttons * fixed error with buttons * Remove unused web_url field and update provider button styles to display correctly * some seeders done for testing (ie. beryl) * almost everything done, changing links for real ones left * fixed bolt seeder * updated seeder * lint * seeder lint * fixed colors and text issue * lintf --------- Co-authored-by: zmigroo --- app/Http/Resources/ProviderResource.php | 2 + .../2023_06_15_132726_create_providers.php | 2 + database/seeders/ProviderSeeder.php | 51 ++++----- public/icons/android.svg | 100 ++++++++++++++++++ public/icons/apple.svg | 44 ++++++++ public/icons/globe.svg | 38 +++++++ resources/css/app.css | 56 +++++++++- resources/js/Pages/City/Index.vue | 2 +- .../js/Shared/Components/ProviderIcons.vue | 73 ++++++++++++- 9 files changed, 338 insertions(+), 30 deletions(-) create mode 100644 public/icons/android.svg create mode 100644 public/icons/apple.svg create mode 100644 public/icons/globe.svg diff --git a/app/Http/Resources/ProviderResource.php b/app/Http/Resources/ProviderResource.php index 4c126b6a..75f16695 100644 --- a/app/Http/Resources/ProviderResource.php +++ b/app/Http/Resources/ProviderResource.php @@ -14,6 +14,8 @@ public function toArray(Request $request): array return [ "name" => $this->name, "url" => $this->url, + "android_url" => $this->android_url, + "ios_url" => $this->ios_url, "color" => $this->color, ]; } diff --git a/database/migrations/2023_06_15_132726_create_providers.php b/database/migrations/2023_06_15_132726_create_providers.php index 6ca84af4..794c7f9f 100644 --- a/database/migrations/2023_06_15_132726_create_providers.php +++ b/database/migrations/2023_06_15_132726_create_providers.php @@ -12,6 +12,8 @@ public function up(): void Schema::create("providers", function (Blueprint $table): void { $table->string("name")->unique(); $table->string("url")->nullable(); + $table->string("android_url")->nullable(); + $table->string("ios_url")->nullable(); $table->string("color"); $table->timestamps(); }); diff --git a/database/seeders/ProviderSeeder.php b/database/seeders/ProviderSeeder.php index 69f39543..e3bed569 100644 --- a/database/seeders/ProviderSeeder.php +++ b/database/seeders/ProviderSeeder.php @@ -36,36 +36,39 @@ class ProviderSeeder extends Seeder public function run(): void { $providers = [ - ["name" => BeamDataImporter::getProviderName(), "color" => "#7347ff"], - ["name" => BerylDataImporter::getProviderName(), "color" => "#00e3c2"], - ["name" => BinBinDataImporter::getProviderName(), "color" => "#3dbcc8"], - ["name" => BirdDataImporter::getProviderName(), "color" => "#26ccf0"], - ["name" => BitMobilityDataImporter::getProviderName(), "color" => "#8da6e3"], - ["name" => BoltDataImporter::getProviderName(), "color" => "#24f0a0"], - ["name" => DottDataImporter::getProviderName(), "color" => "#f5c604"], - ["name" => HopDataImporter::getProviderName(), "color" => "#ea1821"], - ["name" => HoppDataImporter::getProviderName(), "color" => "#1ce5be"], - ["name" => HulajDataImporter::getProviderName(), "color" => "#d6213f"], - ["name" => LimeDataImporter::getProviderName(), "color" => "#00de00"], - ["name" => LinkDataImporter::getProviderName(), "color" => "#def700"], - ["name" => NeuronDataImporter::getProviderName(), "color" => "#445261"], - ["name" => QuickDataImporter::getProviderName(), "color" => "#009ac7"], - ["name" => SpinDataImporter::getProviderName(), "color" => "#ff5436"], - ["name" => SixtDataImporter::getProviderName(), "color" => "#f25a04"], - ["name" => TierDataImporter::getProviderName(), "color" => "#0E1A50"], - ["name" => VoiDataImporter::getProviderName(), "color" => "#f46c63"], - ["name" => UrentDataImporter::getProviderName(), "color" => "#9400FF"], - ["name" => ZwingsDataImporter::getProviderName(), "color" => "#abb8c3"], - ["name" => RydeDataImporter::getProviderName(), "color" => "#4dcb1f"], - ["name" => VeoDataImporter::getProviderName(), "color" => "#000000"], - ["name" => WindDataImporter::getProviderName(), "color" => "#fffa00"], - ["name" => WheeMoveDataImporter::getProviderName(), "color" => "#31682d"], + ["name" => BeamDataImporter::getProviderName(), "color" => "#7347ff", "url" => "https://www.ridebeam.com/", "android_url" => "https://play.google.com/store/apps/details?id=com.escooterapp&pli=1", "ios_url" => "https://apps.apple.com/app/id1427114484"], + ["name" => BerylDataImporter::getProviderName(), "color" => "#00e3c2", "url" => "https://beryl.cc/", "android_url" => "https://play.google.com/store/apps/details?id=cc.beryl.basis", "ios_url" => "https://apps.apple.com/app/id1386768364"], + ["name" => BinBinDataImporter::getProviderName(), "color" => "#3dbcc8", "url" => "https://www.binbin.tech/", "android_url" => "https://play.google.com/store/apps/details?id=com.BINBIN&hl=en_US", "ios_url" => "https://apps.apple.com/us/app/binbin-scooters/id1483635924"], + ["name" => BirdDataImporter::getProviderName(), "color" => "#26ccf0", "url" => "https://www.bird.co/", "android_url" => "https://play.google.com/store/apps/details?id=co.bird.android", "ios_url" => "https://apps.apple.com/us/app/bird-be-free-enjoy-the-ride/id1260842311"], + ["name" => BitMobilityDataImporter::getProviderName(), "color" => "#8da6e3", "url" => "https://bitmobility.it/en/", "android_url" => "https://play.google.com/store/apps/details?id=it.bitmobility.bit", "ios_url" => "https://apps.apple.com/it/app/bit/id1464155063"], + ["name" => BoltDataImporter::getProviderName(), "color" => "#24f0a0", "url" => "https://bolt.eu/pl-pl/scooters/", "android_url" => "https://play.google.com/store/apps/details?id=ee.mtakso.client&hl=pl&gl=US", "ios_url" => "https://apps.apple.com/pl/app/bolt-przejazdy-hulajnogi/id675033630?l=pl"], + ["name" => DottDataImporter::getProviderName(), "color" => "#f5c604", "url" => "https://ridedott.com/", "android_url" => "https://play.google.com/store/apps/details?id=com.ridedott.rider&pli=1", "ios_url" => "https://apps.apple.com/us/app/dott-unlock-your-city/id1440301673"], + ["name" => HopDataImporter::getProviderName(), "color" => "#ea1821", "url" => "https://hop.bike/en/", "android_url" => "https://play.google.com/store/apps/details?id=com.hoplagit.rider&hl=pl&gl=US", "ios_url" => "https://apps.apple.com/pl/app/hop-enjoy-the-city/id1487640704?l=pl"], + ["name" => HoppDataImporter::getProviderName(), "color" => "#1ce5be", "url" => "https://hopp.bike/", "android_url" => "https://play.google.com/store/apps/details?id=bike.hopp", "ios_url" => "https://apps.apple.com/us/app/hopp-scooters/id1471324642?ls=1"], + ["name" => HulajDataImporter::getProviderName(), "color" => "#d6213f", "url" => "https://hulaj.eu/", "android_url" => "https://play.google.com/store/apps/details?id=eu.hulaj&hl=pl&gl=US"], + ["name" => LimeDataImporter::getProviderName(), "color" => "#00de00", "url" => "https://www.li.me/", "android_url" => "https://play.google.com/store/apps/details?id=com.limebike", "ios_url" => "https://apps.apple.com/app/id1199780189"], + ["name" => LinkDataImporter::getProviderName(), "color" => "#def700", "url" => "https://link.city/", "android_url" => "https://play.google.com/store/apps/details?id=com.superpedestrian.link", "ios_url" => "https://apps.apple.com/US/app/id1487864428?mt=8"], + ["name" => NeuronDataImporter::getProviderName(), "color" => "#445261", "url" => "https://www.rideneuron.com/", "android_url" => "https://go.onelink.me/app/Neuron", "ios_url" => "https://go.onelink.me/app/NeuroniOS"], + ["name" => QuickDataImporter::getProviderName(), "color" => "#009ac7", "url" => "https://quick-app.eu/en/", "android_url" => "https://play.google.com/store/apps/details?id=eu.quick_app.eu", "ios_url" => "https://apps.apple.com/us/app/quickapp/id1461661144"], + ["name" => SpinDataImporter::getProviderName(), "color" => "#ff5436", "url" => "https://www.spin.app/", "android_url" => "https://play.google.com/store/apps/details?hl=en_US&id=pm.spin", "ios_url" => "https://apps.apple.com/us/app/spin-electric-scooters/id1241808993"], + ["name" => SixtDataImporter::getProviderName(), "color" => "#f25a04", "url" => "https://www.sixt.com/share/#/", "android_url" => "https://play.google.com/store/apps/details?id=com.sixt.reservation&hl=pl&gl=US", "ios_url" => "https://apps.apple.com/us/app/sixt-rent-share-ride-plus/id295079411"], + ["name" => TierDataImporter::getProviderName(), "color" => "#0E1A50", "url" => "https://www.tier.app/", "android_url" => "https://play.google.com/store/apps/details?id=com.tier.app&hl=en&gl=US", "ios_url" => "https://apps.apple.com/app/id1436140272?mt=8"], + ["name" => VoiDataImporter::getProviderName(), "color" => "#f46c63", "url" => "https://www.voiscooters.com/", "android_url" => "https://play.google.com/store/apps/details?id=io.voiapp.voi&hl=pl&gl=US", "ios_url" => "https://apps.apple.com/us/app/voi-e-scooter-e-bike-hire/id1395921017?mt=8"], + ["name" => UrentDataImporter::getProviderName(), "color" => "#9400FF", "url" => "https://urent.ru/", "android_url" => "https://play.google.com/store/apps/details?id=ru.urentbike.app", "ios_url" => "https://apps.apple.com/gb/app/urent-e-scooters-and-bikes/id1352346712"], + ["name" => ZwingsDataImporter::getProviderName(), "color" => "#abb8c3", "url" => "https://www.zwings.co.uk/", "android_url" => "https://play.google.com/store/apps/details?id=com.zwings", "ios_url" => "https://apps.apple.com/us/app/zwings/id1503019815"], + ["name" => RydeDataImporter::getProviderName(), "color" => "#4dcb1f", "url" => "https://www.ryde-technology.com/", "android_url" => "https://play.google.com/store/apps/details?id=com.ryde_android&hl=no", "ios_url" => "https://apps.apple.com/no/app/id1495605028"], + ["name" => VeoDataImporter::getProviderName(), "color" => "#000000", "url" => "https://www.veoride.com/", "android_url" => "https://play.google.com/store/apps/details?id=com.pgt.veoride", "ios_url" => "https://apps.apple.com/us/app/veoride/id1279820696"], + ["name" => WindDataImporter::getProviderName(), "color" => "#fffa00", "url" => "https://www.wind.co/", "android_url" => "https://play.google.com/store/apps/details?id=com.zen.zbike&referrer=utm_source%3Dofficialweb%26utm_medium%3Dother%26utm_term%3Dglobal", "ios_url" => "https://apps.apple.com/cn/app/yango-wind-e-scooter-sharing/id1247826304?utm_source=officialweb&utm_medium=other&time=1703025387273&utm_term=global"], + ["name" => WheeMoveDataImporter::getProviderName(), "color" => "#31682d", "url" => "https://www.wheemove.com/", "android_url" => "https://play.google.com/store/apps/details?id=com.whee.android", "ios_url" => "https://apps.apple.com/us/app/whee-e-scooter-sharing/id1465111214?l=es&ls=1"], ]; foreach ($providers as $provider) { Provider::create([ "name" => $provider["name"], "color" => $provider["color"], + "url" => $provider["url"] ?? null, + "android_url" => $provider["android_url"] ?? null, + "ios_url" => $provider["ios_url"] ?? null, ]); } } diff --git a/public/icons/android.svg b/public/icons/android.svg new file mode 100644 index 00000000..8272bac1 --- /dev/null +++ b/public/icons/android.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/icons/apple.svg b/public/icons/apple.svg new file mode 100644 index 00000000..2c87d819 --- /dev/null +++ b/public/icons/apple.svg @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/public/icons/globe.svg b/public/icons/globe.svg new file mode 100644 index 00000000..afb61ac7 --- /dev/null +++ b/public/icons/globe.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/resources/css/app.css b/resources/css/app.css index 6cd0f405..9430c6ad 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1,7 +1,6 @@ @tailwind base; @tailwind components; @tailwind utilities; - @layer utilities { .no-scrollbar::-webkit-scrollbar { display: none; @@ -10,7 +9,6 @@ -ms-overflow-style: none; scrollbar-width: none; } - .scrollbar::-webkit-scrollbar { width: 15px; height: 12px; @@ -27,5 +25,57 @@ .scrollbar::-webkit-scrollbar-thumb:hover { background: #d3d3d3; } + .provider-buttons { + position: absolute; + transition: all 0.15s ease-in-out; + opacity: 0; + transform: translate(-50%, -50%); + visibility: hidden; + top: 20%; + left: 50%; + padding: 8px; + border-radius: 7px; + z-index: 50; + } + .provider-buttons > a { + position: relative; + margin-bottom: 4px; + } + .provider-buttons>a:last-of-type { + margin-bottom: 0; + } + .provider-buttons.show { + transform: translate(-50%, -50%); + opacity: 1; + visibility: visible; + top: 30%; + left: 50%; + scale: 1; + } + .provider-text::after { + content: ""; + display: inline-block; + border: 8px solid transparent; + border-left-color: #fff; + opacity: 0; + transition: all 0.15s ease-in-out; + height: 0px; + } + a>.provider-text { + transition: all 0.15s ease-in-out; + transform: scale(1); + } + a:hover>.provider-text { + text-decoration: none; + transform: scale(1.1); + } + a:hover>.provider-text::after { + opacity: 1; + } + .provider-buttons>a:hover{ + box-shadow: inset 0 0 8px 1px #315cb8c5; + } + .provider-buttons>a{ + transition: all 0.15s ease-in-out; + } } - diff --git a/resources/js/Pages/City/Index.vue b/resources/js/Pages/City/Index.vue index 785fa0b5..023550da 100644 --- a/resources/js/Pages/City/Index.vue +++ b/resources/js/Pages/City/Index.vue @@ -85,7 +85,7 @@ function createOpinion() {