From 09523f2bb0a3cdd04e870e508463c2f9812a7a55 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Wed, 4 Dec 2019 20:58:20 -0500 Subject: [PATCH 01/42] Update to 6.6 --- .phpunit.result.cache | 1 + composer.json | 11 +- composer.lock | 2063 ++++++++++++++------ public/js/app.js | 4 +- public/mix-manifest.json | 2 + resources/views/admin/user/index.blade.php | 6 +- resources/views/auth/login.blade.php | 4 +- start.sh | 3 + storage/framework/cache/.gitignore | 3 +- storage/framework/cache/data/.gitignore | 2 + tests/Browser/LoginTest.php | 21 + tests/Browser/Pages/HomePage.php | 41 + tests/Browser/Pages/Page.php | 20 + tests/Browser/UserTest.php | 43 + tests/Browser/console/.gitignore | 2 + tests/Browser/screenshots/.gitignore | 2 + tests/DuskTestCase.php | 43 + 17 files changed, 1666 insertions(+), 605 deletions(-) create mode 100644 .phpunit.result.cache create mode 100644 start.sh create mode 100755 storage/framework/cache/data/.gitignore create mode 100644 tests/Browser/LoginTest.php create mode 100644 tests/Browser/Pages/HomePage.php create mode 100644 tests/Browser/Pages/Page.php create mode 100644 tests/Browser/UserTest.php create mode 100644 tests/Browser/console/.gitignore create mode 100644 tests/Browser/screenshots/.gitignore create mode 100644 tests/DuskTestCase.php diff --git a/.phpunit.result.cache b/.phpunit.result.cache new file mode 100644 index 00000000..c6a7c98c --- /dev/null +++ b/.phpunit.result.cache @@ -0,0 +1 @@ +C:30:"PHPUnit\Runner\TestResultCache":187:{a:2:{s:7:"defects";a:1:{s:32:"Tests\Browser\UserTest::testUser";i:3;}s:5:"times";a:2:{s:34:"Tests\Browser\LoginTest::testLogin";d:5.605;s:32:"Tests\Browser\UserTest::testUser";d:14.139;}}} \ No newline at end of file diff --git a/composer.json b/composer.json index 3dfd2691..3e3ab2db 100644 --- a/composer.json +++ b/composer.json @@ -5,18 +5,21 @@ "license": "MIT", "type": "project", "require": { - "php": "^7.1.3", + "php": "^7.2", "barryvdh/laravel-dompdf": "^0.8.4", - "barryvdh/laravel-ide-helper": "v2.6.2", + "barryvdh/laravel-ide-helper": "v2.6.6", "fideloper/proxy": "^4.0", "guzzlehttp/guzzle": "^6.3", - "laravel/framework": "5.6.*", + "laravel/framework": "^6.0", + "laravel/helpers": "^1.1", + "laravel/nexmo-notification-channel": "^2.2", "laravel/tinker": "^1.0", - "nexmo/client": "^1.4" + "nexmo/client": "^2.0" }, "require-dev": { "filp/whoops": "^2.0", "fzaninotto/faker": "^1.4", + "laravel/dusk": "^5.6", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", "phpunit/phpunit": "^7.0" diff --git a/composer.lock b/composer.lock index 9d6ca2fb..99d6bc0c 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "24a0b732198a68feae22520e2527cb91", + "content-hash": "a086e5bc47221176f2f7258e41366c37", "packages": [ { "name": "barryvdh/laravel-dompdf", @@ -64,38 +64,35 @@ }, { "name": "barryvdh/laravel-ide-helper", - "version": "v2.6.2", + "version": "v2.6.6", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "39c148ad4273f5b8c49d0a363ddbc0462f1f2eec" + "reference": "b91b959364d97af658f268c733c75dccdbff197e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/39c148ad4273f5b8c49d0a363ddbc0462f1f2eec", - "reference": "39c148ad4273f5b8c49d0a363ddbc0462f1f2eec", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/b91b959364d97af658f268c733c75dccdbff197e", + "reference": "b91b959364d97af658f268c733c75dccdbff197e", "shasum": "" }, "require": { "barryvdh/reflection-docblock": "^2.0.6", "composer/composer": "^1.6", - "illuminate/console": "^5.5,<5.9", - "illuminate/filesystem": "^5.5,<5.9", - "illuminate/support": "^5.5,<5.9", + "doctrine/dbal": "~2.3", + "illuminate/console": "^5.5|^6", + "illuminate/filesystem": "^5.5|^6", + "illuminate/support": "^5.5|^6", "php": ">=7" }, "require-dev": { - "doctrine/dbal": "~2.3", - "illuminate/config": "^5.1,<5.9", - "illuminate/view": "^5.1,<5.9", + "illuminate/config": "^5.5|^6", + "illuminate/view": "^5.5|^6", "phpro/grumphp": "^0.14", "phpunit/phpunit": "4.*", "scrutinizer/ocular": "~1.1", "squizlabs/php_codesniffer": "^3" }, - "suggest": { - "doctrine/dbal": "Load information from the database about models for phpdocs (~2.3)" - }, "type": "library", "extra": { "branch-alias": { @@ -134,7 +131,7 @@ "phpstorm", "sublime" ], - "time": "2019-03-26T10:38:22+00:00" + "time": "2019-10-30T20:53:27+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -243,16 +240,16 @@ }, { "name": "composer/composer", - "version": "1.9.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5" + "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/314aa57fdcfc942065996f59fb73a8b3f74f3fa5", - "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5", + "url": "https://api.github.com/repos/composer/composer/zipball/bb01f2180df87ce7992b8331a68904f80439dd2f", + "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f", "shasum": "" }, "require": { @@ -319,7 +316,7 @@ "dependency", "package" ], - "time": "2019-08-02T18:55:33+00:00" + "time": "2019-11-01T16:20:17+00:00" }, { "name": "composer/semver", @@ -445,24 +442,24 @@ }, { "name": "composer/xdebug-handler", - "version": "1.3.3", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" + "reference": "cbe23383749496fe0f373345208b79568e4bc248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", + "reference": "cbe23383749496fe0f373345208b79568e4bc248", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", "autoload": { @@ -480,12 +477,12 @@ "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Restarts a process without xdebug.", + "description": "Restarts a process without Xdebug.", "keywords": [ "Xdebug", "performance" ], - "time": "2019-05-27T17:52:04+00:00" + "time": "2019-11-06T16:40:04+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -521,17 +518,267 @@ "time": "2014-10-24T07:27:01+00:00" }, { - "name": "doctrine/inflector", - "version": "v1.3.0", + "name": "doctrine/cache", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a" + "url": "https://github.com/doctrine/cache.git", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a", + "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "time": "2019-11-29T15:36:20+00:00" + }, + { + "name": "doctrine/dbal", + "version": "v2.10.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934", + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "jetbrains/phpstorm-stubs": "^2019.1", + "phpstan/phpstan": "^0.11.3", + "phpunit/phpunit": "^8.4.1", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "time": "2019-11-03T16:50:43+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "629572819973f13486371cb611386eb17851e85c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "time": "2019-11-10T09:48:07+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", "shasum": "" }, "require": { @@ -556,6 +803,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -564,10 +815,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -585,20 +832,20 @@ "singularize", "string" ], - "time": "2018-01-09T20:05:19+00:00" + "time": "2019-10-30T19:59:35+00:00" }, { "name": "doctrine/lexer", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e17f069ede36f7534b95adec71910ed1b49c74ea", - "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { @@ -612,7 +859,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -647,7 +894,7 @@ "parser", "php" ], - "time": "2019-07-30T19:33:28+00:00" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "dompdf/dompdf", @@ -929,27 +1176,28 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "version": "6.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "reference": "0895c932405407fd3a7368b6910c09a24d26db11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", + "reference": "0895c932405407fd3a7368b6910c09a24d26db11", "shasum": "" }, "require": { + "ext-json": "*", "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", + "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5" }, "require-dev": { "ext-curl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "psr/log": "^1.1" }, "suggest": { "psr/log": "Required for using the Log middleware" @@ -961,12 +1209,12 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -990,7 +1238,7 @@ "rest", "web service" ], - "time": "2018-04-22T15:46:56+00:00" + "time": "2019-10-23T15:58:00+00:00" }, { "name": "guzzlehttp/promises", @@ -1204,23 +1452,23 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.8", + "version": "5.2.9", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4" + "reference": "44c6787311242a979fa15c704327c20e7221a0e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/dcb6e1006bb5fd1e392b4daa68932880f37550d4", - "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20", + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", "json-schema/json-schema-test-suite": "1.2.0", "phpunit/phpunit": "^4.8.35" }, @@ -1266,91 +1514,49 @@ "json", "schema" ], - "time": "2019-01-14T23:55:14+00:00" - }, - { - "name": "kylekatarnls/update-helper", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/kylekatarnls/update-helper.git", - "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/5786fa188e0361b9adf9e8199d7280d1b2db165e", - "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0.0", - "php": ">=5.3.0" - }, - "require-dev": { - "codeclimate/php-test-reporter": "dev-master", - "composer/composer": "2.0.x-dev || ^2.0.0-dev", - "phpunit/phpunit": ">=4.8.35 <6.0" - }, - "type": "composer-plugin", - "extra": { - "class": "UpdateHelper\\ComposerPlugin" - }, - "autoload": { - "psr-0": { - "UpdateHelper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle", - "email": "kylekatarnls@gmail.com" - } - ], - "description": "Update helper", - "time": "2019-07-29T11:03:54+00:00" + "time": "2019-09-25T14:49:45+00:00" }, { "name": "laravel/framework", - "version": "v5.6.39", + "version": "v6.6.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "37bb306f516669ab4f888c16003f694313ab299e" + "reference": "0a8e3e6e96e5ec3af6b9f30026cb8e5551554875" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/37bb306f516669ab4f888c16003f694313ab299e", - "reference": "37bb306f516669ab4f888c16003f694313ab299e", + "url": "https://api.github.com/repos/laravel/framework/zipball/0a8e3e6e96e5ec3af6b9f30026cb8e5551554875", + "reference": "0a8e3e6e96e5ec3af6b9f30026cb8e5551554875", "shasum": "" }, "require": { - "doctrine/inflector": "~1.1", - "dragonmantank/cron-expression": "~2.0", - "erusev/parsedown": "~1.7", + "doctrine/inflector": "^1.1", + "dragonmantank/cron-expression": "^2.0", + "egulias/email-validator": "^2.1.10", + "erusev/parsedown": "^1.7", + "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", "league/flysystem": "^1.0.8", - "monolog/monolog": "~1.12", - "nesbot/carbon": "1.25.*", - "php": "^7.1.3", - "psr/container": "~1.0", + "monolog/monolog": "^1.12|^2.0", + "nesbot/carbon": "^2.0", + "opis/closure": "^3.1", + "php": "^7.2", + "psr/container": "^1.0", "psr/simple-cache": "^1.0", "ramsey/uuid": "^3.7", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~4.0", - "symfony/debug": "~4.0", - "symfony/finder": "~4.0", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0", - "symfony/process": "~4.0", - "symfony/routing": "~4.0", - "symfony/var-dumper": "~4.0", + "swiftmailer/swiftmailer": "^6.0", + "symfony/console": "^4.3.4", + "symfony/debug": "^4.3.4", + "symfony/finder": "^4.3.4", + "symfony/http-foundation": "^4.3.4", + "symfony/http-kernel": "^4.3.4", + "symfony/process": "^4.3.4", + "symfony/routing": "^4.3.4", + "symfony/var-dumper": "^4.3.4", "tijsverkoyen/css-to-inline-styles": "^2.2.1", - "vlucas/phpdotenv": "~2.2" + "vlucas/phpdotenv": "^3.3" }, "conflict": { "tightenco/collect": "<5.5.33" @@ -1386,43 +1592,47 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.6", - "filp/whoops": "^2.1.4", - "league/flysystem-cached-adapter": "~1.0", - "mockery/mockery": "~1.0", + "aws/aws-sdk-php": "^3.0", + "doctrine/dbal": "^2.6", + "filp/whoops": "^2.4", + "guzzlehttp/guzzle": "^6.3", + "league/flysystem-cached-adapter": "^1.0", + "mockery/mockery": "^1.2.3", "moontoast/math": "^1.1", - "orchestra/testbench-core": "3.6.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~7.0", + "orchestra/testbench-core": "^4.0", + "pda/pheanstalk": "^4.0", + "phpunit/phpunit": "^8.3", "predis/predis": "^1.1.1", - "symfony/css-selector": "~4.0", - "symfony/dom-crawler": "~4.0" + "symfony/cache": "^4.3", + "true/punycode": "^2.1" }, "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", "ext-pcntl": "Required to use all features of the queue worker.", "ext-posix": "Required to use all features of the queue worker.", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~4.0).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~4.0).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." + "ext-redis": "Required to use the Redis cache and queue drivers.", + "filp/whoops": "Required for friendly error pages in development (^2.4).", + "fzaninotto/faker": "Required to use the eloquent factory builder (^1.4).", + "guzzlehttp/guzzle": "Required to use the Mailgun mail driver and the ping methods on schedules (^6.0).", + "laravel/tinker": "Required to use the tinker console command (^1.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", + "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", + "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", + "moontoast/math": "Required to use ordered UUIDs (^1.1).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0)", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^4.3.4).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^1.2).", + "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.6-dev" + "dev-master": "6.x-dev" } }, "autoload": { @@ -1450,7 +1660,117 @@ "framework", "laravel" ], - "time": "2018-10-04T14:50:41+00:00" + "time": "2019-12-03T15:23:55+00:00" + }, + { + "name": "laravel/helpers", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/helpers.git", + "reference": "b8eae9ddd461e89d0296f74fd069c413bf83b6fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/helpers/zipball/b8eae9ddd461e89d0296f74fd069c413bf83b6fa", + "reference": "b8eae9ddd461e89d0296f74fd069c413bf83b6fa", + "shasum": "" + }, + "require": { + "illuminate/support": "~5.8.0|^6.0", + "php": ">=7.1.3" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Dries Vints", + "email": "dries.vints@gmail.com" + } + ], + "description": "Provides backwards compatibility for helpers in the latest Laravel release.", + "keywords": [ + "helpers", + "laravel" + ], + "time": "2019-07-30T15:25:31+00:00" + }, + { + "name": "laravel/nexmo-notification-channel", + "version": "v2.2.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/nexmo-notification-channel.git", + "reference": "7ff1765564f6ac4005c0734d5ca66556d63faab6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/nexmo-notification-channel/zipball/7ff1765564f6ac4005c0734d5ca66556d63faab6", + "reference": "7ff1765564f6ac4005c0734d5ca66556d63faab6", + "shasum": "" + }, + "require": { + "illuminate/notifications": "~5.8.0|^6.0|^7.0", + "nexmo/laravel": "^2.0", + "php": "^7.1.3" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.0|^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Illuminate\\Notifications\\NexmoChannelServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Notifications\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Nexmo Notification Channel for laravel.", + "keywords": [ + "laravel", + "nexmo", + "notifications" + ], + "time": "2019-10-29T16:11:56+00:00" }, { "name": "laravel/tinker", @@ -1572,16 +1892,16 @@ }, { "name": "league/flysystem", - "version": "1.0.55", + "version": "1.0.57", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6" + "reference": "0e9db7f0b96b9f12dcf6f65bc34b72b1a30ea55a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/33c91155537c6dc899eacdc54a13ac6303f156e6", - "reference": "33c91155537c6dc899eacdc54a13ac6303f156e6", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/0e9db7f0b96b9f12dcf6f65bc34b72b1a30ea55a", + "reference": "0e9db7f0b96b9f12dcf6f65bc34b72b1a30ea55a", "shasum": "" }, "require": { @@ -1652,25 +1972,25 @@ "sftp", "storage" ], - "time": "2019-08-24T11:17:19+00:00" + "time": "2019-10-16T21:01:05+00:00" }, { "name": "monolog/monolog", - "version": "1.25.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf" + "reference": "f9d56fd2f5533322caccdfcddbb56aedd622ef1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf", - "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9d56fd2f5533322caccdfcddbb56aedd622ef1c", + "reference": "f9d56fd2f5533322caccdfcddbb56aedd622ef1c", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": "^7.2", + "psr/log": "^1.0.1" }, "provide": { "psr/log-implementation": "1.0.0" @@ -1678,33 +1998,36 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", + "elasticsearch/elasticsearch": "^6.0", + "graylog2/gelf-php": "^1.4.2", + "jakub-onderka/php-parallel-lint": "^0.9", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", + "phpspec/prophecy": "^1.6.1", + "phpunit/phpunit": "^8.3", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1730,38 +2053,48 @@ "logging", "psr-3" ], - "time": "2019-09-06T13:49:17+00:00" + "time": "2019-11-13T10:27:43+00:00" }, { "name": "nesbot/carbon", - "version": "1.25.3", + "version": "2.27.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "ad6afecd38ce2d7f7bd1b5d47ffd8e93ebbd3ed8" + "reference": "13b8485a8690f103bf19cba64879c218b102b726" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/ad6afecd38ce2d7f7bd1b5d47ffd8e93ebbd3ed8", - "reference": "ad6afecd38ce2d7f7bd1b5d47ffd8e93ebbd3ed8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/13b8485a8690f103bf19cba64879c218b102b726", + "reference": "13b8485a8690f103bf19cba64879c218b102b726", "shasum": "" }, "require": { - "kylekatarnls/update-helper": "^1.1", - "php": ">=5.3.9", - "symfony/translation": "~2.6 || ~3.0 || ~4.0" + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { - "composer/composer": "^1.2", - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "^4.8.35 || ^5.7" + "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "kylekatarnls/multi-tester": "^1.1", + "phpmd/phpmd": "dev-php-7.1-compatibility", + "phpstan/phpstan": "^0.11", + "phpunit/phpunit": "^7.5 || ^8.0", + "squizlabs/php_codesniffer": "^3.4" }, "bin": [ - "bin/upgrade-carbon" + "bin/carbon" ], "type": "library", "extra": { - "update-helper": "Carbon\\Upgrade" + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + } }, "autoload": { "psr-4": { @@ -1777,42 +2110,92 @@ "name": "Brian Nesbitt", "email": "brian@nesbot.com", "homepage": "http://nesbot.com" + }, + { + "name": "kylekatarnls", + "homepage": "http://github.com/kylekatarnls" } ], - "description": "A simple API extension for DateTime.", + "description": "An API extension for DateTime that supports 281 different languages.", "homepage": "http://carbon.nesbot.com", "keywords": [ "date", "datetime", "time" ], - "time": "2019-06-03T17:56:44+00:00" + "time": "2019-11-20T06:59:06+00:00" }, { "name": "nexmo/client", - "version": "1.8.1", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/Nexmo/nexmo-php.git", - "reference": "182d41a02ebd3e4be147baea45458ccfe2f528c4" + "url": "https://github.com/Nexmo/nexmo-php-complete.git", + "reference": "664082abac14f6ab9ceec9abaf2e00aeb7c17333" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/182d41a02ebd3e4be147baea45458ccfe2f528c4", - "reference": "182d41a02ebd3e4be147baea45458ccfe2f528c4", + "url": "https://api.github.com/repos/Nexmo/nexmo-php-complete/zipball/664082abac14f6ab9ceec9abaf2e00aeb7c17333", + "reference": "664082abac14f6ab9ceec9abaf2e00aeb7c17333", + "shasum": "" + }, + "require": { + "nexmo/client-core": "^2.0", + "php": ">=7.1", + "php-http/guzzle6-adapter": "^2.0" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Lytle", + "email": "tim@nexmo.com", + "homepage": "http://twitter.com/tjlytle", + "role": "Developer" + }, + { + "name": "Michael Heap", + "email": "michael.heap@vonage.com", + "role": "Developer" + }, + { + "name": "Lorna Mitchell", + "email": "lorna.mitchell@vonage.com", + "role": "Developer" + } + ], + "description": "PHP Client for using Nexmo's API.", + "time": "2019-08-20T16:06:03+00:00" + }, + { + "name": "nexmo/client-core", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/Nexmo/nexmo-php.git", + "reference": "ef7e8a0715c93c5ddc7915e8a29f29331798bb52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/ef7e8a0715c93c5ddc7915e8a29f29331798bb52", + "reference": "ef7e8a0715c93c5ddc7915e8a29f29331798bb52", "shasum": "" }, "require": { "lcobucci/jwt": "^3.2", - "php": ">=5.6", + "ocramius/package-versions": "^1.4", + "php": ">=7.1", "php-http/client-implementation": "^1.0", - "php-http/guzzle6-adapter": "^1.0", "zendframework/zend-diactoros": "^1.8.4 || ^2.0" }, "require-dev": { - "estahn/phpunit-json-assertions": "^1.0.0", + "estahn/phpunit-json-assertions": "^3.0.0", + "php-http/guzzle6-adapter": "^1.0", "php-http/mock-client": "^0.3.0", - "phpunit/phpunit": "^5.7", + "phpunit/phpunit": "^7.4", "squizlabs/php_codesniffer": "^3.1" }, "type": "library", @@ -1831,23 +2214,104 @@ "email": "tim@nexmo.com", "homepage": "http://twitter.com/tjlytle", "role": "Developer" + }, + { + "name": "Michael Heap", + "email": "michael.heap@vonage.com", + "role": "Developer" + }, + { + "name": "Lorna Mitchell", + "email": "lorna.mitchell@vonage.com", + "role": "Developer" + }, + { + "name": "Chris Tankersley", + "email": "chris.tankersley@vonage.com", + "role": "Developer" } ], "description": "PHP Client for using Nexmo's API.", - "time": "2019-05-13T20:27:43+00:00" + "time": "2019-10-18T08:19:04+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.2.4", + "name": "nexmo/laravel", + "version": "2.1.0", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" + "url": "https://github.com/Nexmo/nexmo-laravel.git", + "reference": "d05faa716133b49975907848ed4c79f85033a1f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "url": "https://api.github.com/repos/Nexmo/nexmo-laravel/zipball/d05faa716133b49975907848ed4c79f85033a1f9", + "reference": "d05faa716133b49975907848ed4c79f85033a1f9", + "shasum": "" + }, + "require": { + "illuminate/support": "^5.2|^6.0", + "nexmo/client": "^2.0", + "php": "^5.6|^7.1" + }, + "require-dev": { + "orchestra/testbench": "~3.0|^4.0", + "phpunit/phpunit": "^5.3|~6.0|~8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Nexmo\\Laravel\\NexmoServiceProvider" + ], + "aliases": { + "Nexmo": "Nexmo\\Laravel\\Facade\\Nexmo" + } + } + }, + "autoload": { + "psr-4": { + "Nexmo\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Lytle", + "email": "tim@nexmo.com", + "homepage": "http://twitter.com/tjlytle", + "role": "Developer" + }, + { + "name": "Michael Heap", + "email": "michael.heap@nexmo.com", + "homepage": "http://twitter.com/mheap", + "role": "Developer" + }, + { + "name": "Chris Tankersley", + "email": "chris.tankersley@nexmo.com", + "homepage": "http://twitter.com/dragonmantank", + "role": "Developer" + } + ], + "description": "Laravel Package for Nexmo's PHP Client", + "time": "2019-10-21T18:25:16+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.3.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "shasum": "" }, "require": { @@ -1855,6 +2319,7 @@ "php": ">=7.0" }, "require-dev": { + "ircmaxell/php-yacc": "0.0.5", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ @@ -1863,7 +2328,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -1885,7 +2350,118 @@ "parser", "php" ], - "time": "2019-09-01T07:51:21+00:00" + "time": "2019-11-08T13:50:10+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.5.17" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-11-15T16:17:10+00:00" + }, + { + "name": "opis/closure", + "version": "3.5.1", + "source": { + "type": "git", + "url": "https://github.com/opis/closure.git", + "reference": "93ebc5712cdad8d5f489b500c59d122df2e53969" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/closure/zipball/93ebc5712cdad8d5f489b500c59d122df2e53969", + "reference": "93ebc5712cdad8d5f489b500c59d122df2e53969", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0" + }, + "require-dev": { + "jeremeamia/superclosure": "^2.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\Closure\\": "src/" + }, + "files": [ + "functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", + "homepage": "https://opis.io/closure", + "keywords": [ + "anonymous functions", + "closure", + "function", + "serializable", + "serialization", + "serialize" + ], + "time": "2019-11-29T22:36:02+00:00" }, { "name": "paragonie/random_compat", @@ -1971,28 +2547,28 @@ }, { "name": "phenx/php-svg-lib", - "version": "v0.3.2", + "version": "v0.3.3", "source": { "type": "git", "url": "https://github.com/PhenX/php-svg-lib.git", - "reference": "ccc46ef6340d4b8a4a68047e68d8501ea961442c" + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/ccc46ef6340d4b8a4a68047e68d8501ea961442c", - "reference": "ccc46ef6340d4b8a4a68047e68d8501ea961442c", + "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", "shasum": "" }, "require": { - "sabberworm/php-css-parser": "8.1.*" + "sabberworm/php-css-parser": "^8.3" }, "require-dev": { - "phpunit/phpunit": "~5.0" + "phpunit/phpunit": "^5.5|^6.5" }, "type": "library", "autoload": { - "psr-0": { - "Svg\\": "src/" + "psr-4": { + "Svg\\": "src/Svg" } }, "notification-url": "https://packagist.org/downloads/", @@ -2007,39 +2583,42 @@ ], "description": "A library to read, parse and export to PDF SVG files.", "homepage": "https://github.com/PhenX/php-svg-lib", - "time": "2018-06-03T10:10:03+00:00" + "time": "2019-09-11T20:02:13+00:00" }, { "name": "php-http/guzzle6-adapter", - "version": "v1.1.1", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/php-http/guzzle6-adapter.git", - "reference": "a56941f9dc6110409cfcddc91546ee97039277ab" + "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/a56941f9dc6110409cfcddc91546ee97039277ab", - "reference": "a56941f9dc6110409cfcddc91546ee97039277ab", + "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/6074a4b1f4d5c21061b70bab3b8ad484282fe31f", + "reference": "6074a4b1f4d5c21061b70bab3b8ad484282fe31f", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^6.0", - "php": ">=5.5.0", - "php-http/httplug": "^1.0" + "php": "^7.1", + "php-http/httplug": "^2.0", + "psr/http-client": "^1.0" }, "provide": { "php-http/async-client-implementation": "1.0", - "php-http/client-implementation": "1.0" + "php-http/client-implementation": "1.0", + "psr/http-client-implementation": "1.0" }, "require-dev": { "ext-curl": "*", - "php-http/adapter-integration-tests": "^0.4" + "php-http/client-integration-tests": "^2.0", + "phpunit/phpunit": "^7.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -2067,25 +2646,26 @@ "Guzzle", "http" ], - "time": "2016-05-10T06:13:32+00:00" + "time": "2018-12-16T14:44:03+00:00" }, { "name": "php-http/httplug", - "version": "v1.1.0", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/php-http/httplug.git", - "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018" + "reference": "b3842537338c949f2469557ef4ad4bdc47b58603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/1c6381726c18579c4ca2ef1ec1498fdae8bdf018", - "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018", + "url": "https://api.github.com/repos/php-http/httplug/zipball/b3842537338c949f2469557ef4ad4bdc47b58603", + "reference": "b3842537338c949f2469557ef4ad4bdc47b58603", "shasum": "" }, "require": { - "php": ">=5.4", + "php": "^7.0", "php-http/promise": "^1.0", + "psr/http-client": "^1.0", "psr/http-message": "^1.0" }, "require-dev": { @@ -2095,7 +2675,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2123,7 +2703,7 @@ "client", "http" ], - "time": "2016-08-31T08:30:17+00:00" + "time": "2018-10-31T09:14:44+00:00" }, { "name": "php-http/promise", @@ -2175,6 +2755,60 @@ ], "time": "2016-01-26T13:27:02+00:00" }, + { + "name": "phpoption/phpoption", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "f4e7a6a1382183412246f0d361078c29fb85089e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/f4e7a6a1382183412246f0d361078c29fb85089e", + "reference": "f4e7a6a1382183412246f0d361078c29fb85089e", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "time": "2019-11-30T20:20:49+00:00" + }, { "name": "psr/container", "version": "1.0.0", @@ -2224,6 +2858,55 @@ ], "time": "2017-02-14T16:28:37+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/496a823ef742b632934724bf769560c2a5c7c44e", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e", + "shasum": "" + }, + "require": { + "php": "^7.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "time": "2018-10-30T23:29:13+00:00" + }, { "name": "psr/http-factory", "version": "1.0.1", @@ -2328,16 +3011,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -2346,7 +3029,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -2371,7 +3054,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -2423,16 +3106,16 @@ }, { "name": "psy/psysh", - "version": "v0.9.9", + "version": "v0.9.11", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e" + "reference": "75d9ac1c16db676de27ab554a4152b594be4748e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", - "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/75d9ac1c16db676de27ab554a4152b594be4748e", + "reference": "75d9ac1c16db676de27ab554a4152b594be4748e", "shasum": "" }, "require": { @@ -2442,8 +3125,8 @@ "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*", "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", "php": ">=5.4.0", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" + "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0|~5.0", + "symfony/var-dumper": "~2.7|~3.0|~4.0|~5.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.2", @@ -2493,7 +3176,7 @@ "interactive", "shell" ], - "time": "2018-10-13T15:16:03+00:00" + "time": "2019-11-27T22:44:29+00:00" }, { "name": "ralouphie/getallheaders", @@ -2537,44 +3220,46 @@ }, { "name": "ramsey/uuid", - "version": "3.8.0", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" + "reference": "5ac2740e0c8c599d2bbe7f113a939f2b5b216c67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5ac2740e0c8c599d2bbe7f113a939f2b5b216c67", + "reference": "5ac2740e0c8c599d2bbe7f113a939f2b5b216c67", "shasum": "" }, "require": { - "paragonie/random_compat": "^1.0|^2.0|9.99.99", - "php": "^5.4 || ^7.0", + "ext-json": "*", + "paragonie/random_compat": "^1 | ^2 | 9.99.99", + "php": "^5.4 | ^7", "symfony/polyfill-ctype": "^1.8" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "codeception/aspect-mock": "^1.0 | ~2.0.0", - "doctrine/annotations": "~1.2.0", - "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", - "ircmaxell/random-lib": "^1.1", + "codeception/aspect-mock": "^1 | ^2", + "doctrine/annotations": "^1.2", + "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1", "jakub-onderka/php-parallel-lint": "^0.9.0", "mockery/mockery": "^0.9.9", "moontoast/math": "^1.1", - "php-mock/php-mock-phpunit": "^0.3|^1.1", - "phpunit/phpunit": "^4.7|^5.0|^6.5", + "paragonie/random-lib": "^2", + "php-mock/php-mock-phpunit": "^0.3 | ^1.1", + "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5", "squizlabs/php_codesniffer": "^2.3" }, "suggest": { "ext-ctype": "Provides support for PHP Ctype functions", "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator", "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." }, @@ -2587,13 +3272,21 @@ "autoload": { "psr-4": { "Ramsey\\Uuid\\": "src/" - } + }, + "files": [ + "src/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + }, { "name": "Marijn Huizendveld", "email": "marijn.huizendveld@gmail.com" @@ -2601,11 +3294,6 @@ { "name": "Thibaud Fabre", "email": "thibaud@aztech.io" - }, - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" } ], "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", @@ -2615,27 +3303,28 @@ "identifier", "uuid" ], - "time": "2018-07-19T23:38:55+00:00" + "time": "2019-12-01T04:55:27+00:00" }, { "name": "sabberworm/php-css-parser", - "version": "8.1.0", + "version": "8.3.0", "source": { "type": "git", "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", - "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef" + "reference": "91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/850cbbcbe7fbb155387a151ea562897a67e242ef", - "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f", + "reference": "91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f", "shasum": "" }, "require": { "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "*" + "codacy/coverage": "^1.4", + "phpunit/phpunit": "~4.8" }, "type": "library", "autoload": { @@ -2659,20 +3348,20 @@ "parser", "stylesheet" ], - "time": "2016-07-19T19:14:21+00:00" + "time": "2019-02-22T07:42:52+00:00" }, { "name": "seld/jsonlint", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38" + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", "shasum": "" }, "require": { @@ -2708,7 +3397,7 @@ "parser", "validator" ], - "time": "2018-01-24T12:46:19+00:00" + "time": "2019-10-24T14:27:39+00:00" }, { "name": "seld/phar-utils", @@ -2756,16 +3445,16 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.1", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a" + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", - "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", "shasum": "" }, "require": { @@ -2814,31 +3503,32 @@ "mail", "mailer" ], - "time": "2019-04-21T09:21:45+00:00" + "time": "2019-11-12T09:31:26+00:00" }, { "name": "symfony/console", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "de63799239b3881b8a08f8481b22348f77ed7b36" + "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36", - "reference": "de63799239b3881b8a08f8481b22348f77ed7b36", + "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1" + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { @@ -2846,12 +3536,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/event-dispatcher": "^4.3", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/var-dumper": "^4.3" + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2862,7 +3552,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -2889,29 +3579,29 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-08-26T08:26:39+00:00" + "time": "2019-12-01T10:06:17+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.4", + "version": "v5.0.1", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03" + "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/c6e5e2a00db768c92c3ae131532af4e1acc7bd03", - "reference": "c6e5e2a00db768c92c3ae131532af4e1acc7bd03", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/19d29e7098b7b2c3313cb03902ca30f100dcb837", + "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": "^7.2.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -2942,20 +3632,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-08-20T14:07:54+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/debug", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced" + "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/afcdea44a2e399c1e4b52246ec8d54c715393ced", - "reference": "afcdea44a2e399c1e4b52246ec8d54c715393ced", + "url": "https://api.github.com/repos/symfony/debug/zipball/b8600a1d7d20b0e80906398bb1f50612fa074a8e", + "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e", "shasum": "" }, "require": { @@ -2966,12 +3656,12 @@ "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/http-kernel": "~3.4|~4.0" + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -2998,20 +3688,76 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-08-20T14:27:59+00:00" + "time": "2019-11-28T13:33:56+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v4.3.4", + "name": "symfony/error-handler", + "version": "v4.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2" + "url": "https://github.com/symfony/error-handler.git", + "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/429d0a1451d4c9c4abe1959b2986b88794b9b7d2", - "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", + "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ErrorHandler Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T08:46:01+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f", + "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f", "shasum": "" }, "require": { @@ -3027,12 +3773,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "^3.4|^4.0", - "symfony/service-contracts": "^1.1", - "symfony/stopwatch": "~3.4|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -3041,7 +3787,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3068,20 +3814,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-08-26T08:55:16+00:00" + "time": "2019-11-28T13:33:56+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.5", + "version": "v1.1.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c61766f4440ca687de1084a5c00b08e167a2575c" + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c", - "reference": "c61766f4440ca687de1084a5c00b08e167a2575c", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", "shasum": "" }, "require": { @@ -3126,20 +3872,20 @@ "interoperability", "standards" ], - "time": "2019-06-20T06:46:26+00:00" + "time": "2019-09-17T09:54:03+00:00" }, { "name": "symfony/filesystem", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263" + "reference": "40c2606131d56eff6f193b6e2ceb92414653b591" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263", - "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/40c2606131d56eff6f193b6e2ceb92414653b591", + "reference": "40c2606131d56eff6f193b6e2ceb92414653b591", "shasum": "" }, "require": { @@ -3149,7 +3895,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3176,20 +3922,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-08-20T14:07:54+00:00" + "time": "2019-11-26T23:16:41+00:00" }, { "name": "symfony/finder", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2" + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/86c1c929f0a4b24812e1eb109262fc3372c8e9f2", - "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2", + "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", "shasum": "" }, "require": { @@ -3198,7 +3944,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3225,35 +3971,35 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-08-14T12:26:46+00:00" + "time": "2019-11-17T21:56:56+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc" + "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d804bea118ff340a12e22a79f9c7e7eb56b35adc", - "reference": "d804bea118ff340a12e22a79f9c7e7eb56b35adc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8bccc59e61b41963d14c3dbdb23181e5c932a1d5", + "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/mime": "^4.3", + "symfony/mime": "^4.3|^5.0", "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/expression-language": "~3.4|~4.0" + "symfony/expression-language": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3280,37 +4026,37 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-08-26T08:55:16+00:00" + "time": "2019-11-28T13:33:56+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52" + "reference": "e4187780ed26129ee86d5234afbebf085e144f88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5e0fc71be03d52cd00c423061cfd300bd6f92a52", - "reference": "5e0fc71be03d52cd00c423061cfd300bd6f92a52", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e4187780ed26129ee86d5234afbebf085e144f88", + "reference": "e4187780ed26129ee86d5234afbebf085e144f88", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "~3.4|~4.0", - "symfony/event-dispatcher": "^4.3", - "symfony/http-foundation": "^4.1.1", - "symfony/polyfill-ctype": "~1.8", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9" }, "conflict": { "symfony/browser-kit": "<4.3", "symfony/config": "<3.4", + "symfony/console": ">=5", "symfony/dependency-injection": "<4.3", "symfony/translation": "<4.2", - "symfony/var-dumper": "<4.1.1", "twig/twig": "<1.34|<2.4,>=2" }, "provide": { @@ -3318,34 +4064,32 @@ }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "^4.3", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dependency-injection": "^4.3", - "symfony/dom-crawler": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~4.2", - "symfony/translation-contracts": "^1.1", - "symfony/var-dumper": "^4.1.1", - "twig/twig": "^1.34|^2.4" + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.34|^2.4|^3.0" }, "suggest": { "symfony/browser-kit": "", "symfony/config": "", "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/var-dumper": "" + "symfony/dependency-injection": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3372,35 +4116,38 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-08-26T16:47:42+00:00" + "time": "2019-12-01T14:06:38+00:00" }, { "name": "symfony/mime", - "version": "v4.3.4", + "version": "v5.0.1", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "987a05df1c6ac259b34008b932551353f4f408df" + "reference": "0e6a4ced216e49d457eddcefb61132173a876d79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/987a05df1c6ac259b34008b932551353f4f408df", - "reference": "987a05df1c6ac259b34008b932551353f4f408df", + "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79", + "reference": "0e6a4ced216e49d457eddcefb61132173a876d79", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, + "conflict": { + "symfony/mailer": "<4.4" + }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "~3.4|^4.1" + "symfony/dependency-injection": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -3431,20 +4178,20 @@ "mime", "mime-type" ], - "time": "2019-08-22T08:16:11+00:00" + "time": "2019-11-30T14:12:50+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", "shasum": "" }, "require": { @@ -3456,7 +4203,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3489,20 +4236,20 @@ "polyfill", "portable" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "685968b11e61a347c18bf25db32effa478be610f" + "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/685968b11e61a347c18bf25db32effa478be610f", - "reference": "685968b11e61a347c18bf25db32effa478be610f", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/a019efccc03f1a335af6b4f20c30f5ea8060be36", + "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36", "shasum": "" }, "require": { @@ -3514,7 +4261,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3548,20 +4295,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", - "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", "shasum": "" }, "require": { @@ -3575,7 +4322,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3610,20 +4357,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", "shasum": "" }, "require": { @@ -3635,7 +4382,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3669,20 +4416,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T14:18:11+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "04ce3335667451138df4307d6a9b61565560199e" + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", - "reference": "04ce3335667451138df4307d6a9b61565560199e", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", "shasum": "" }, "require": { @@ -3691,7 +4438,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3724,20 +4471,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.12.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", "shasum": "" }, "require": { @@ -3746,7 +4493,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -3782,20 +4529,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T16:25:15+00:00" }, { "name": "symfony/process", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a" + "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e89969c00d762349f078db1128506f7f3dcc0d4a", - "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a", + "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", + "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", "shasum": "" }, "require": { @@ -3804,7 +4551,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3831,20 +4578,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-08-26T08:26:39+00:00" + "time": "2019-11-28T13:33:56+00:00" }, { "name": "symfony/routing", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f" + "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ff1049f6232dc5b6023b1ff1c6de56f82bcd264f", - "reference": "ff1049f6232dc5b6023b1ff1c6de56f82bcd264f", + "url": "https://api.github.com/repos/symfony/routing/zipball/51f3f20ad29329a0bdf5c0e2f722d3764b065273", + "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273", "shasum": "" }, "require": { @@ -3858,11 +4605,11 @@ "require-dev": { "doctrine/annotations": "~1.2", "psr/log": "~1.0", - "symfony/config": "~4.2", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -3874,7 +4621,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3907,24 +4654,24 @@ "uri", "url" ], - "time": "2019-08-26T08:26:39+00:00" + "time": "2019-12-01T08:39:58+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.6", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3" + "reference": "144c5e51266b281231e947b51223ba14acf1a749" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3", - "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5", "psr/container": "^1.0" }, "suggest": { @@ -3933,7 +4680,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3965,30 +4712,31 @@ "interoperability", "standards" ], - "time": "2019-08-20T14:44:19+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/translation", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "28498169dd334095fa981827992f3a24d50fed0f" + "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/28498169dd334095fa981827992f3a24d50fed0f", - "reference": "28498169dd334095fa981827992f3a24d50fed0f", + "url": "https://api.github.com/repos/symfony/translation/zipball/897fb68ee7933372517b551d6f08c6d4bb0b8c40", + "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.6" + "symfony/translation-contracts": "^1.1.6|^2" }, "conflict": { "symfony/config": "<3.4", "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", "symfony/yaml": "<3.4" }, "provide": { @@ -3996,15 +4744,14 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "~3.4|~4.0", - "symfony/service-contracts": "^1.1.2", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -4014,7 +4761,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -4041,24 +4788,24 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-08-26T08:55:16+00:00" + "time": "2019-11-12T17:18:47+00:00" }, { "name": "symfony/translation-contracts", - "version": "v1.1.6", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a" + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", - "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": "^7.2.5" }, "suggest": { "symfony/translation-implementation": "" @@ -4066,7 +4813,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4098,20 +4845,20 @@ "interoperability", "standards" ], - "time": "2019-08-02T12:15:04+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.3.4", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6" + "reference": "0a89a1dbbedd9fb2cfb2336556dec8305273c19a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/641043e0f3e615990a0f29479f9c117e8a6698c6", - "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0a89a1dbbedd9fb2cfb2336556dec8305273c19a", + "reference": "0a89a1dbbedd9fb2cfb2336556dec8305273c19a", "shasum": "" }, "require": { @@ -4125,9 +4872,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "twig/twig": "~1.34|~2.4" + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -4140,7 +4887,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -4174,25 +4921,27 @@ "debug", "dump" ], - "time": "2019-08-26T08:26:39+00:00" + "time": "2019-11-28T13:33:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.1", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757" + "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/dda2ee426acd6d801d5b7fd1001cde9b5f790e15", + "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15", "shasum": "" }, "require": { + "ext-dom": "*", + "ext-libxml": "*", "php": "^5.5 || ^7.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" @@ -4221,33 +4970,34 @@ ], "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", - "time": "2017-11-27T11:13:29+00:00" + "time": "2019-10-24T08:53:34+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v2.6.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5" + "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2a7dcf7e3e02dc5e701004e51a6f304b713107d5", - "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1bdf24f065975594f6a117f0f1f6cabf1333b156", + "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156", "shasum": "" }, "require": { - "php": ">=5.3.9", + "php": "^5.4 || ^7.0", + "phpoption/phpoption": "^1.5", "symfony/polyfill-ctype": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.0" + "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "3.6-dev" } }, "autoload": { @@ -4260,10 +5010,15 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" + }, { "name": "Vance Lucas", "email": "vance@vancelucas.com", - "homepage": "http://www.vancelucas.com" + "homepage": "https://vancelucas.com/" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -4272,20 +5027,20 @@ "env", "environment" ], - "time": "2019-01-29T11:11:52+00:00" + "time": "2019-09-10T21:37:39+00:00" }, { "name": "zendframework/zend-diactoros", - "version": "2.1.3", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1" + "reference": "de5847b068362a88684a55b0dbb40d85986cfa52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/279723778c40164bcf984a2df12ff2c6ec5e61c1", - "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/de5847b068362a88684a55b0dbb40d85986cfa52", + "reference": "de5847b068362a88684a55b0dbb40d85986cfa52", "shasum": "" }, "require": { @@ -4298,6 +5053,7 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { + "ext-curl": "*", "ext-dom": "*", "ext-libxml": "*", "http-interop/http-factory-tests": "^0.5.0", @@ -4338,22 +5094,22 @@ "psr", "psr-7" ], - "time": "2019-07-10T16:13:25+00:00" + "time": "2019-11-13T19:16:13+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { @@ -4396,7 +5152,67 @@ "constructor", "instantiate" ], - "time": "2019-03-17T17:37:11+00:00" + "time": "2019-10-21T16:45:58+00:00" + }, + { + "name": "facebook/webdriver", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/facebook/php-webdriver.git", + "reference": "e43de70f3c7166169d0f14a374505392734160e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", + "reference": "e43de70f3c7166169d0f14a374505392734160e5", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-zip": "*", + "php": "^5.6 || ~7.0", + "symfony/process": "^2.8 || ^3.1 || ^4.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "php-coveralls/php-coveralls": "^2.0", + "php-mock/php-mock-phpunit": "^1.1", + "phpunit/phpunit": "^5.7", + "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", + "squizlabs/php_codesniffer": "^2.6", + "symfony/var-dumper": "^3.3 || ^4.0" + }, + "suggest": { + "ext-SimpleXML": "For Firefox profile creation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-community": "1.5-dev" + } + }, + "autoload": { + "psr-4": { + "Facebook\\WebDriver\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "A PHP client for Selenium WebDriver", + "homepage": "https://github.com/facebook/php-webdriver", + "keywords": [ + "facebook", + "php", + "selenium", + "webdriver" + ], + "time": "2019-06-13T08:02:18+00:00" }, { "name": "filp/whoops", @@ -4461,16 +5277,16 @@ }, { "name": "fzaninotto/faker", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de" + "reference": "27a216cbe72327b2d6369fab721a5843be71e57d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/27a216cbe72327b2d6369fab721a5843be71e57d", + "reference": "27a216cbe72327b2d6369fab721a5843be71e57d", "shasum": "" }, "require": { @@ -4479,13 +5295,11 @@ "require-dev": { "ext-intl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5" + "squizlabs/php_codesniffer": "^2.9.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } + "branch-alias": [] }, "autoload": { "psr-4": { @@ -4507,7 +5321,7 @@ "faker", "fixtures" ], - "time": "2018-07-12T10:23:15+00:00" + "time": "2019-11-14T13:13:06+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -4558,23 +5372,92 @@ "time": "2016-01-20T08:20:44+00:00" }, { - "name": "mockery/mockery", - "version": "1.2.3", + "name": "laravel/dusk", + "version": "v5.6.3", "source": { "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "4eff936d83eb809bde2c57a3cea0ee9643769031" + "url": "https://github.com/laravel/dusk.git", + "reference": "c342e3e802607d0ca081b6b8021811e218b5fe5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/4eff936d83eb809bde2c57a3cea0ee9643769031", - "reference": "4eff936d83eb809bde2c57a3cea0ee9643769031", + "url": "https://api.github.com/repos/laravel/dusk/zipball/c342e3e802607d0ca081b6b8021811e218b5fe5d", + "reference": "c342e3e802607d0ca081b6b8021811e218b5fe5d", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-zip": "*", + "facebook/webdriver": "^1.7", + "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0", + "illuminate/support": "~5.7.0|~5.8.0|^6.0|^7.0", + "nesbot/carbon": "^1.20|^2.0", + "php": ">=7.1.0", + "symfony/console": "^4.0|^5.0", + "symfony/finder": "^4.0|^5.0", + "symfony/process": "^4.0|^5.0", + "vlucas/phpdotenv": "^2.2|^3.0|^4.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5|^8.0" + }, + "suggest": { + "ext-pcntl": "Used to gracefully terminate Dusk when tests are running." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Dusk\\DuskServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Dusk\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Dusk provides simple end-to-end testing and browser automation.", + "keywords": [ + "laravel", + "testing", + "webdriver" + ], + "time": "2019-12-03T21:07:05+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "5571962a4f733fbb57bede39778f71647fae8e66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/5571962a4f733fbb57bede39778f71647fae8e66", + "reference": "5571962a4f733fbb57bede39778f71647fae8e66", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.6.0" + "php": ">=5.6.0", + "sebastian/comparator": "^1.2.4|^3.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" @@ -4582,7 +5465,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -4620,7 +5503,7 @@ "test double", "testing" ], - "time": "2019-08-07T15:01:07+00:00" + "time": "2019-11-24T07:54:50+00:00" }, { "name": "myclabs/deep-copy", @@ -4838,35 +5721,33 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "~6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4888,30 +5769,30 @@ "reflection", "static analysis" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2018-08-07T13:53:10+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.1", + "version": "4.3.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", "shasum": "" }, "require": { "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", "webmozart/assert": "^1.0" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", + "doctrine/instantiator": "^1.0.5", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.4" }, @@ -4939,41 +5820,40 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-04-30T17:48:53+00:00" + "time": "2019-09-12T14:27:41+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4986,26 +5866,27 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" }, { "name": "phpspec/prophecy", - "version": "1.8.1", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, @@ -5049,7 +5930,7 @@ "spy", "stub" ], - "time": "2019-06-13T12:50:23+00:00" + "time": "2019-10-03T11:07:50+00:00" }, { "name": "phpunit/php-code-coverage", @@ -5256,16 +6137,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", "shasum": "" }, "require": { @@ -5301,20 +6182,20 @@ "keywords": [ "tokenizer" ], - "time": "2019-07-25T05:29:42+00:00" + "time": "2019-09-17T06:23:10+00:00" }, { "name": "phpunit/phpunit", - "version": "7.5.15", + "version": "7.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d79c053d972856b8b941bb233e39dc521a5093f0" + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0", - "reference": "d79c053d972856b8b941bb233e39dc521a5093f0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4c92a15296e58191a4cd74cff3b34fc8e374174a", + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a", "shasum": "" }, "require": { @@ -5385,7 +6266,7 @@ "testing", "xunit" ], - "time": "2019-08-21T07:05:16+00:00" + "time": "2019-10-28T10:37:36+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -5554,16 +6435,16 @@ }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", "shasum": "" }, "require": { @@ -5603,20 +6484,20 @@ "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "time": "2019-11-20T08:46:58+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687" + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { @@ -5670,7 +6551,7 @@ "export", "exporter" ], - "time": "2019-08-11T12:43:14+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { "name": "sebastian/global-state", @@ -5995,31 +6876,29 @@ }, { "name": "webmozart/assert", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", "shasum": "" }, "require": { "php": "^5.3.3 || ^7.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "vimeo/psalm": "<3.6.0" + }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -6041,7 +6920,7 @@ "check", "validate" ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2019-11-24T13:36:37+00:00" } ], "aliases": [], @@ -6050,7 +6929,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.1.3" + "php": "^7.2" }, "platform-dev": [] } diff --git a/public/js/app.js b/public/js/app.js index 11818cd2..1ab94bcd 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -49135,13 +49135,13 @@ if (false) { /* 43 */ /***/ (function(module, exports) { -throw new Error("Module build failed: ModuleBuildError: Module build failed: Error: Missing binding /home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/vendor/linux-x64-72/binding.node\nNode Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x\n\nFound bindings for the following environments:\n - Linux 64-bit with Node.js 8.x\n\nThis usually happens because your environment has changed since running `npm install`.\nRun `npm rebuild node-sass` to download the binding for your current environment.\n at module.exports (/home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/lib/binding.js:15:13)\n at Object. (/home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/lib/index.js:14:35)\n at Module._compile (internal/modules/cjs/loader.js:945:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)\n at Module.load (internal/modules/cjs/loader.js:798:32)\n at Function.Module._load (internal/modules/cjs/loader.js:711:12)\n at Module.require (internal/modules/cjs/loader.js:838:19)\n at require (internal/modules/cjs/helpers.js:74:18)\n at Object. (/home/etudiant/PhpstormProjects/c-cms/node_modules/sass-loader/lib/loader.js:3:14)\n at Module._compile (internal/modules/cjs/loader.js:945:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)\n at Module.load (internal/modules/cjs/loader.js:798:32)\n at Function.Module._load (internal/modules/cjs/loader.js:711:12)\n at Module.require (internal/modules/cjs/loader.js:838:19)\n at require (internal/modules/cjs/helpers.js:74:18)\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:18:17)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at runLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:365:2)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:195:19\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:367:11\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:172:11\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:32:11)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at runLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:365:2)\n at NormalModule.doBuild (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:182:3)\n at NormalModule.build (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:275:15)\n at Compilation.buildModule (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/Compilation.js:157:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/Compilation.js:460:10\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:243:5\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:94:13\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/tapable/lib/Tapable.js:268:11\n at NormalModuleFactory. (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/CompatibilityPlugin.js:52:5)\n at NormalModuleFactory.applyPluginsAsyncWaterfall (/home/etudiant/PhpstormProjects/c-cms/node_modules/tapable/lib/Tapable.js:272:13)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:69:10\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:196:7\n at processTicksAndRejections (internal/process/task_queues.js:75:11)"); +// removed by extract-text-webpack-plugin /***/ }), /* 44 */ /***/ (function(module, exports) { -throw new Error("Module build failed: ModuleBuildError: Module build failed: Error: Missing binding /home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/vendor/linux-x64-72/binding.node\nNode Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x\n\nFound bindings for the following environments:\n - Linux 64-bit with Node.js 8.x\n\nThis usually happens because your environment has changed since running `npm install`.\nRun `npm rebuild node-sass` to download the binding for your current environment.\n at module.exports (/home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/lib/binding.js:15:13)\n at Object. (/home/etudiant/PhpstormProjects/c-cms/node_modules/node-sass/lib/index.js:14:35)\n at Module._compile (internal/modules/cjs/loader.js:945:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)\n at Module.load (internal/modules/cjs/loader.js:798:32)\n at Function.Module._load (internal/modules/cjs/loader.js:711:12)\n at Module.require (internal/modules/cjs/loader.js:838:19)\n at require (internal/modules/cjs/helpers.js:74:18)\n at Object. (/home/etudiant/PhpstormProjects/c-cms/node_modules/sass-loader/lib/loader.js:3:14)\n at Module._compile (internal/modules/cjs/loader.js:945:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)\n at Module.load (internal/modules/cjs/loader.js:798:32)\n at Function.Module._load (internal/modules/cjs/loader.js:711:12)\n at Module.require (internal/modules/cjs/loader.js:838:19)\n at require (internal/modules/cjs/helpers.js:74:18)\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:18:17)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at runLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:365:2)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:195:19\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:367:11\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:172:11\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:32:11)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:165:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:176:18\n at loadLoader (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/loadLoader.js:47:3)\n at iteratePitchingLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:169:2)\n at runLoaders (/home/etudiant/PhpstormProjects/c-cms/node_modules/loader-runner/lib/LoaderRunner.js:365:2)\n at NormalModule.doBuild (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:182:3)\n at NormalModule.build (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModule.js:275:15)\n at Compilation.buildModule (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/Compilation.js:157:10)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/Compilation.js:460:10\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:243:5\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:94:13\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/tapable/lib/Tapable.js:268:11\n at NormalModuleFactory. (/home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/CompatibilityPlugin.js:52:5)\n at NormalModuleFactory.applyPluginsAsyncWaterfall (/home/etudiant/PhpstormProjects/c-cms/node_modules/tapable/lib/Tapable.js:272:13)\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:69:10\n at /home/etudiant/PhpstormProjects/c-cms/node_modules/webpack/lib/NormalModuleFactory.js:196:7\n at processTicksAndRejections (internal/process/task_queues.js:75:11)"); +// removed by extract-text-webpack-plugin /***/ }) /******/ ]); \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 5ba0ee36..3284f7c6 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,6 @@ { "/js/app.js": "/js/app.js", + "/css/app.css": "/css/app.css", + "/css/material-dashboard.css": "/css/material-dashboard.css", "/css/custom.css": "/css/custom.css" } diff --git a/resources/views/admin/user/index.blade.php b/resources/views/admin/user/index.blade.php index 2003b7b0..e8b008dd 100644 --- a/resources/views/admin/user/index.blade.php +++ b/resources/views/admin/user/index.blade.php @@ -25,15 +25,15 @@ {{$item->rank->name}} {{$item->job->name}} - edit - close + edit + close @endforeach
- Ajouter un utilisateur + Ajouter un utilisateur diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 511f5c25..965931c9 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -109,9 +109,7 @@
- +
diff --git a/start.sh b/start.sh new file mode 100644 index 00000000..7f479e7e --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +php artisan serve & +npm run watch & +~/.local/share/umake/web/firefox-dev/./firefox http://127.0.0.1:8000/ \ No newline at end of file diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore index d6b7ef32..869804c2 100755 --- a/storage/framework/cache/.gitignore +++ b/storage/framework/cache/.gitignore @@ -1,2 +1,3 @@ * -!.gitignore +!data/ +!.gitignore \ No newline at end of file diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore new file mode 100755 index 00000000..d6b7ef32 --- /dev/null +++ b/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/Browser/LoginTest.php b/tests/Browser/LoginTest.php new file mode 100644 index 00000000..bba8bf85 --- /dev/null +++ b/tests/Browser/LoginTest.php @@ -0,0 +1,21 @@ +browse(function (Browser $browser) { + $browser->visit('/login') + ->type('email','admin@exvps.ca') + ->type('password','SuperAdmin') + ->click('@login-button') + ->assertPathIs('/admin'); + }); + } +} diff --git a/tests/Browser/Pages/HomePage.php b/tests/Browser/Pages/HomePage.php new file mode 100644 index 00000000..26bf174f --- /dev/null +++ b/tests/Browser/Pages/HomePage.php @@ -0,0 +1,41 @@ + '#selector', + ]; + } +} diff --git a/tests/Browser/Pages/Page.php b/tests/Browser/Pages/Page.php new file mode 100644 index 00000000..f8d76222 --- /dev/null +++ b/tests/Browser/Pages/Page.php @@ -0,0 +1,20 @@ + '#selector', + ]; + } +} diff --git a/tests/Browser/UserTest.php b/tests/Browser/UserTest.php new file mode 100644 index 00000000..aeb98eda --- /dev/null +++ b/tests/Browser/UserTest.php @@ -0,0 +1,43 @@ +browse(function (Browser $browser) { + $browser->loginAs(\App\User::find(2)) + ->visit('/admin/user') + ->assertSee('Autre visiteur') + ->assertSee('Administrateur Administrateur') + ->click('@add-user-btn') + ->assertPathIs('/admin/user/add') + ->type('firstname','Test') + ->type('lastname','User') + ->type('email','test@exvps.ca') + ->type('emailc','test@exvps.ca') + ->type('adresse','14 ave Des Rue, Rimouski') + ->type('telephone','4187544158') + ->select('sexe','Femme') + ->type('age','55') + ->select('rank','SuperAdmin') + ->select('job','Indéterminé') + ->type('psw','SuperAdmin') + ->type('pswc','SuperAdmin') + ->click('#submit') + ->assertSee('User Test') + ->click('@edit-btn-'.\App\User::all()->where('firstname','=','Test')->first()->id) + ->type('lastname','test') + ->click('#submit') + ->assertSee('test Test') + ->click('@delete-btn-'.\App\User::all()->where('firstname','=','Test')->first()->id) + ->press('Oui') + ->press('OK'); + }); + } +} diff --git a/tests/Browser/console/.gitignore b/tests/Browser/console/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/tests/Browser/console/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/Browser/screenshots/.gitignore b/tests/Browser/screenshots/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/tests/Browser/screenshots/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/DuskTestCase.php b/tests/DuskTestCase.php new file mode 100644 index 00000000..ee90c408 --- /dev/null +++ b/tests/DuskTestCase.php @@ -0,0 +1,43 @@ +addArguments([ + '--disable-gpu', + '--window-size=1920,1080', + ]); + + return RemoteWebDriver::create( + 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( + ChromeOptions::CAPABILITY, $options + ) + ); + } +} From 90b551ad31c669724e8e0e94dc5d2514dbbf3c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lagac=C3=A9=20Mathieu?= Date: Tue, 10 Dec 2019 10:09:59 -0500 Subject: [PATCH 02/42] 3.2.5 --- composer.lock | 54 +++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/composer.lock b/composer.lock index 99d6bc0c..75459114 100644 --- a/composer.lock +++ b/composer.lock @@ -1,7 +1,7 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], "content-hash": "a086e5bc47221176f2f7258e41366c37", @@ -1518,16 +1518,16 @@ }, { "name": "laravel/framework", - "version": "v6.6.1", + "version": "v6.6.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0a8e3e6e96e5ec3af6b9f30026cb8e5551554875" + "reference": "27efba7e13aaf91a87ae9a63db158e943eb71410" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0a8e3e6e96e5ec3af6b9f30026cb8e5551554875", - "reference": "0a8e3e6e96e5ec3af6b9f30026cb8e5551554875", + "url": "https://api.github.com/repos/laravel/framework/zipball/27efba7e13aaf91a87ae9a63db158e943eb71410", + "reference": "27efba7e13aaf91a87ae9a63db158e943eb71410", "shasum": "" }, "require": { @@ -1623,7 +1623,7 @@ "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", "moontoast/math": "Required to use ordered UUIDs (^1.1).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0)", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).", "symfony/cache": "Required to PSR-6 cache bridge (^4.3.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^1.2).", @@ -1660,7 +1660,7 @@ "framework", "laravel" ], - "time": "2019-12-03T15:23:55+00:00" + "time": "2019-12-05T13:49:53+00:00" }, { "name": "laravel/helpers", @@ -1879,8 +1879,8 @@ "authors": [ { "name": "Luís Otávio Cobucci Oblonczyk", - "email": "lcobucci@gmail.com", - "role": "Developer" + "role": "Developer", + "email": "lcobucci@gmail.com" } ], "description": "A simple library to work with JSON Web Token and JSON Web Signature", @@ -5259,8 +5259,8 @@ "authors": [ { "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" + "role": "Developer", + "homepage": "https://github.com/filp" } ], "description": "php error handling for cool kids", @@ -5702,18 +5702,18 @@ "authors": [ { "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "role": "Developer", + "email": "arne@blankerts.de" }, { "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "role": "Developer", + "email": "sebastian@phpeople.de" }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "role": "Developer", + "email": "sebastian@phpunit.de" } ], "description": "Library for handling version information and constraints", @@ -5982,8 +5982,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", @@ -6033,8 +6033,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "FilterIterator implementation that filters files based on a list of suffixes.", @@ -6075,8 +6075,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Simple template engine.", @@ -6124,8 +6124,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Utility class for timing", @@ -6826,8 +6826,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", From 997abf460e56c60bcb0687a96b05f56c0978fad3 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Sat, 21 Dec 2019 18:40:01 -0500 Subject: [PATCH 03/42] begin of schedule editor --- app/Http/Controllers/OCOMController.php | 702 ++++++++++++++++++ .../Controllers/ScheduleEditorController.php | 23 + app/OCOM.php | 10 + app/Providers/AppServiceProvider.php | 5 + ...19_12_21_165529_create_o_c_o_m_s_table.php | 36 + public/css/contextLoader.min.css | 1 + public/css/custom.css | 58 ++ public/js/plugins/contextLoader.min.js | 2 + public/js/plugins/schedule/editor.js | 38 + resources/custom.css | 58 ++ .../assets/js/plugins/bootstrap-switch.js | 614 +++++++++++++++ .../admin/schedule/editor/course.blade.php | 36 + .../admin/schedule/editor/template.blade.php | 63 ++ .../views/admin/schedule/event/add.blade.php | 154 +++- .../views/admin/schedule/modal/add.blade.php | 362 ++++----- resources/views/layouts/admin/head.blade.php | 2 +- .../views/layouts/admin/scripts.blade.php | 1 + routes/api.php | 8 +- routes/web.php | 6 +- 19 files changed, 1954 insertions(+), 225 deletions(-) create mode 100644 app/Http/Controllers/OCOMController.php create mode 100644 app/Http/Controllers/ScheduleEditorController.php create mode 100644 app/OCOM.php create mode 100644 database/migrations/2019_12_21_165529_create_o_c_o_m_s_table.php create mode 100644 public/css/contextLoader.min.css create mode 100644 public/js/plugins/contextLoader.min.js create mode 100644 public/js/plugins/schedule/editor.js create mode 100644 resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js create mode 100644 resources/views/admin/schedule/editor/course.blade.php create mode 100644 resources/views/admin/schedule/editor/template.blade.php diff --git a/app/Http/Controllers/OCOMController.php b/app/Http/Controllers/OCOMController.php new file mode 100644 index 00000000..e0c4c129 --- /dev/null +++ b/app/Http/Controllers/OCOMController.php @@ -0,0 +1,702 @@ +nbPeriode = $nbPeriode; + + $obj_competence = str_replace(",".$nbPeriode,'',$obj_competence); + + $newocom->ocom = $ocom[0]; + $newocom->oren = $oren[0]; + $newocom->objectif_competence = $obj_competence; + $newocom->objectif_rendement = $orens[$oren[0]]; + $newocom->save(); + } + dd(\App\OCOM::all()); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + // + } + + /** + * Display the specified resource. + * + * @param \App\OCOM $oCOM + * @return \Illuminate\Http\Response + */ + public function show(OCOM $oCOM) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\OCOM $oCOM + * @return \Illuminate\Http\Response + */ + public function edit(OCOM $oCOM) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param \App\OCOM $oCOM + * @return \Illuminate\Http\Response + */ + public function update(Request $request, OCOM $oCOM) + { + // + } + + /** + * Remove the specified resource from storage. + * + * @param \App\OCOM $oCOM + * @return \Illuminate\Http\Response + */ + public function destroy(OCOM $oCOM) + { + // + } +} diff --git a/app/Http/Controllers/ScheduleEditorController.php b/app/Http/Controllers/ScheduleEditorController.php new file mode 100644 index 00000000..3dd8a495 --- /dev/null +++ b/app/Http/Controllers/ScheduleEditorController.php @@ -0,0 +1,23 @@ + $periode, 'niveau' => $niveau]); + } + + public function getTemplate() + { + return view('admin.schedule.editor.template'); + } +} diff --git a/app/OCOM.php b/app/OCOM.php new file mode 100644 index 00000000..9e796e66 --- /dev/null +++ b/app/OCOM.php @@ -0,0 +1,10 @@ +
'; + }); } /** diff --git a/database/migrations/2019_12_21_165529_create_o_c_o_m_s_table.php b/database/migrations/2019_12_21_165529_create_o_c_o_m_s_table.php new file mode 100644 index 00000000..b88a2806 --- /dev/null +++ b/database/migrations/2019_12_21_165529_create_o_c_o_m_s_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->string('ocom'); + $table->string('objectif_competence'); + $table->string('nbPeriode'); + $table->string('objectif_rendement'); + $table->string('oren'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('o_c_o_m_s'); + } +} diff --git a/public/css/contextLoader.min.css b/public/css/contextLoader.min.css new file mode 100644 index 00000000..6fb3472e --- /dev/null +++ b/public/css/contextLoader.min.css @@ -0,0 +1 @@ +.timeline-item{background: #fff;border: 1px solid;border-color: #e5e6e9 #dfe0e4 #d0d1d5;border-radius: 3px;padding: 2%;margin: 0 auto;width: 100%;height: 100%;}@keyframes placeHolderShimmer{0%{ background-position: -468px 0;} 100%{background-position: 468px 0;}}.animated-background{animation-duration: 1s;animation-fill-mode: forwards;animation-iteration-count: infinite;animation-name: placeHolderShimmer;animation-timing-function: linear;background: #f6f7f8;background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);background-size: 800px 104px;height: 96px;position: relative;}.background-masker{background: #fff;position: absolute;}.background-masker.header-top,.background-masker.header-bottom,.background-masker.subheader-bottom{top: 0;left: 40px;right: 0px;height: 10px;}.background-masker.header-left,.background-masker.subheader-left,.background-masker.header-right,.background-masker.subheader-right{top: 10px;left: 40px;height: 8px;width: 10px;}.background-masker.header-bottom{top: 18px;height: 6px;}.background-masker.subheader-left,.background-masker.subheader-right{top: 24px;height: 6px;}.background-masker.header-right,.background-masker.subheader-right{width: auto;left: 300px;right: 0px;}.background-masker.subheader-right{left: 230px;}.background-masker.subheader-bottom{top: 30px;height: 10px;}.background-masker.content-top,.background-masker.content-second-line,.background-masker.content-third-line,.background-masker.content-second-end,.background-masker.content-third-end,.background-masker.content-first-end{top: 40px;left: 0;right: 0;height: 6px;}.background-masker.content-top{height: 20px;}.background-masker.content-first-end,.background-masker.content-second-end,.background-masker.content-third-end{width: auto;left: 380px;right: 0;top: 60px;height: 8px;}.background-masker.content-second-line{top: 68px;}.background-masker.content-second-end{left: 420px;top: 74px;}.background-masker.content-third-line{top: 82px;}.background-masker.content-third-end{left: 300px;top: 88px;} \ No newline at end of file diff --git a/public/css/custom.css b/public/css/custom.css index f595d6ba..c85e0091 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -3,6 +3,64 @@ word-break: break-word; } +.lds-ellipsis { + display: inline-block; + position: relative; + width: 80px; + height: 80px; +} +.lds-ellipsis div { + position: absolute; + top: 33px; + width: 13px; + height: 13px; + border-radius: 50%; + background: #dee2e6; + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} +.lds-ellipsis div:nth-child(1) { + left: 8px; + animation: lds-ellipsis1 0.6s infinite; +} +.lds-ellipsis div:nth-child(2) { + left: 8px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(3) { + left: 32px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(4) { + left: 56px; + animation: lds-ellipsis3 0.6s infinite; +} + +@keyframes lds-ellipsis1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes lds-ellipsis3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} +@keyframes lds-ellipsis2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(24px, 0); + } +} + + .container-fluid { padding: 0px; } diff --git a/public/js/plugins/contextLoader.min.js b/public/js/plugins/contextLoader.min.js new file mode 100644 index 00000000..036b34fe --- /dev/null +++ b/public/js/plugins/contextLoader.min.js @@ -0,0 +1,2 @@ + +contextLoader={};contextLoader.htmlContent='
';contextLoader.addLoader = function(theDiv){document.querySelector(theDiv).innerHTML = contextLoader.htmlContent;} diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js new file mode 100644 index 00000000..31a7ba25 --- /dev/null +++ b/public/js/plugins/schedule/editor.js @@ -0,0 +1,38 @@ +function initScheduleEditor(id, periode, niveau) +{ + $.ajax({ + type: 'GET', + url: '/api/schedule/editor/init?api_token='+api_token, + success: function (template) { + $("#"+id).html(template); + for (let pniveau = 1; pniveau <= 3; pniveau++) { + for (let pperiode = 1; pperiode <= 3; pperiode++) { + loadCourse(pniveau,pperiode); + } + } + initAutoComplete("AutoComplete"); + }, + error: function () { + showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center') + } + }) +} + +function loadTemplate(id) +{ + $.get('/api/schedule/editor/init?api_token='+api_token, function ( data ) {$("#"+id).html(data);}); +} + +function loadCourse(periode,niveau) +{ + $.ajax({ + type: 'GET', + url: '/api/schedule/editor/course/'+niveau+'/'+periode+'?api_token='+api_token, + success: function (course) { + $("#container-"+niveau+"-"+periode).html(course); + }, + error: function () { + showNotification('error','Impossible de charger les cours ...','top', 'center') + } + }) +} \ No newline at end of file diff --git a/resources/custom.css b/resources/custom.css index f595d6ba..c85e0091 100644 --- a/resources/custom.css +++ b/resources/custom.css @@ -3,6 +3,64 @@ word-break: break-word; } +.lds-ellipsis { + display: inline-block; + position: relative; + width: 80px; + height: 80px; +} +.lds-ellipsis div { + position: absolute; + top: 33px; + width: 13px; + height: 13px; + border-radius: 50%; + background: #dee2e6; + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} +.lds-ellipsis div:nth-child(1) { + left: 8px; + animation: lds-ellipsis1 0.6s infinite; +} +.lds-ellipsis div:nth-child(2) { + left: 8px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(3) { + left: 32px; + animation: lds-ellipsis2 0.6s infinite; +} +.lds-ellipsis div:nth-child(4) { + left: 56px; + animation: lds-ellipsis3 0.6s infinite; +} + +@keyframes lds-ellipsis1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes lds-ellipsis3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} +@keyframes lds-ellipsis2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(24px, 0); + } +} + + .container-fluid { padding: 0px; } diff --git a/resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js b/resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js new file mode 100644 index 00000000..32af33de --- /dev/null +++ b/resources/theme/material-dashboard/assets/js/plugins/bootstrap-switch.js @@ -0,0 +1,614 @@ +import jquery from 'jquery' + +const $ = jquery || window.jQuery || window.$ + +class BootstrapSwitch { + constructor (element, options = {}) { + this.$element = $(element) + this.options = $.extend( + {}, + $.fn.bootstrapSwitch.defaults, + this._getElementOptions(), + options + ) + this.prevOptions = {} + this.$wrapper = $('
', { + class: () => { + const classes = [] + classes.push(this.options.state ? 'on' : 'off') + if (this.options.size) { + classes.push(this.options.size) + } + if (this.options.disabled) { + classes.push('disabled') + } + if (this.options.readonly) { + classes.push('readonly') + } + if (this.options.indeterminate) { + classes.push('indeterminate') + } + if (this.options.inverse) { + classes.push('inverse') + } + if (this.$element.attr('id')) { + classes.push(`id-${this.$element.attr('id')}`) + } + return classes + .map(this._getClass.bind(this)) + .concat([this.options.baseClass], this._getClasses(this.options.wrapperClass)) + .join(' ') + } + }) + this.$container = $('
', { class: this._getClass('container') }) + this.$on = $('', { + html: this.options.onText, + class: `${this._getClass('handle-on')} ${this._getClass(this.options.onColor)}` + }) + this.$off = $('', { + html: this.options.offText, + class: `${this._getClass('handle-off')} ${this._getClass(this.options.offColor)}` + }) + this.$label = $('', { + html: this.options.labelText, + class: this._getClass('label') + }) + + this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element)) + this.$element.on('switchChange.bootstrapSwitch', (...args) => { + if (this.options.onSwitchChange.apply(element, args) === false) { + if (this.$element.is(':radio')) { + $(`[name="${this.$element.attr('name')}"]`).trigger('previousState.bootstrapSwitch', true) + } else { + this.$element.trigger('previousState.bootstrapSwitch', true) + } + } + }) + + this.$container = this.$element.wrap(this.$container).parent() + this.$wrapper = this.$container.wrap(this.$wrapper).parent() + this.$element + .before(this.options.inverse ? this.$off : this.$on) + .before(this.$label) + .before(this.options.inverse ? this.$on : this.$off) + + if (this.options.indeterminate) { + this.$element.prop('indeterminate', true) + } + + this._init() + this._elementHandlers() + this._handleHandlers() + this._labelHandlers() + this._formHandler() + this._externalLabelHandler() + this.$element.trigger('init.bootstrapSwitch', this.options.state) + } + + setPrevOptions () { + this.prevOptions = { ...this.options } + } + + state (value, skip) { + if (typeof value === 'undefined') { return this.options.state } + if ( + (this.options.disabled || this.options.readonly) || + (this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) + ) { return this.$element } + if (this.$element.is(':radio')) { + $(`[name="${this.$element.attr('name')}"]`).trigger('setPreviousOptions.bootstrapSwitch') + } else { + this.$element.trigger('setPreviousOptions.bootstrapSwitch') + } + if (this.options.indeterminate) { + this.indeterminate(false) + } + this.$element + .prop('checked', Boolean(value)) + .trigger('change.bootstrapSwitch', skip) + return this.$element + } + + toggleState (skip) { + if (this.options.disabled || this.options.readonly) { return this.$element } + if (this.options.indeterminate) { + this.indeterminate(false) + return this.state(true) + } else { + return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip) + } + } + + size (value) { + if (typeof value === 'undefined') { return this.options.size } + if (this.options.size != null) { + this.$wrapper.removeClass(this._getClass(this.options.size)) + } + if (value) { + this.$wrapper.addClass(this._getClass(value)) + } + this._width() + this._containerPosition() + this.options.size = value + return this.$element + } + + animate (value) { + if (typeof value === 'undefined') { return this.options.animate } + if (this.options.animate === Boolean(value)) { return this.$element } + return this.toggleAnimate() + } + + toggleAnimate () { + this.options.animate = !this.options.animate + this.$wrapper.toggleClass(this._getClass('animate')) + return this.$element + } + + disabled (value) { + if (typeof value === 'undefined') { return this.options.disabled } + if (this.options.disabled === Boolean(value)) { return this.$element } + return this.toggleDisabled() + } + + toggleDisabled () { + this.options.disabled = !this.options.disabled + this.$element.prop('disabled', this.options.disabled) + this.$wrapper.toggleClass(this._getClass('disabled')) + return this.$element + } + + readonly (value) { + if (typeof value === 'undefined') { return this.options.readonly } + if (this.options.readonly === Boolean(value)) { return this.$element } + return this.toggleReadonly() + } + + toggleReadonly () { + this.options.readonly = !this.options.readonly + this.$element.prop('readonly', this.options.readonly) + this.$wrapper.toggleClass(this._getClass('readonly')) + return this.$element + } + + indeterminate (value) { + if (typeof value === 'undefined') { return this.options.indeterminate } + if (this.options.indeterminate === Boolean(value)) { return this.$element } + return this.toggleIndeterminate() + } + + toggleIndeterminate () { + this.options.indeterminate = !this.options.indeterminate + this.$element.prop('indeterminate', this.options.indeterminate) + this.$wrapper.toggleClass(this._getClass('indeterminate')) + this._containerPosition() + return this.$element + } + + inverse (value) { + if (typeof value === 'undefined') { return this.options.inverse } + if (this.options.inverse === Boolean(value)) { return this.$element } + return this.toggleInverse() + } + + toggleInverse () { + this.$wrapper.toggleClass(this._getClass('inverse')) + const $on = this.$on.clone(true) + const $off = this.$off.clone(true) + this.$on.replaceWith($off) + this.$off.replaceWith($on) + this.$on = $off + this.$off = $on + this.options.inverse = !this.options.inverse + return this.$element + } + + onColor (value) { + if (typeof value === 'undefined') { return this.options.onColor } + if (this.options.onColor) { + this.$on.removeClass(this._getClass(this.options.onColor)) + } + this.$on.addClass(this._getClass(value)) + this.options.onColor = value + return this.$element + } + + offColor (value) { + if (typeof value === 'undefined') { return this.options.offColor } + if (this.options.offColor) { + this.$off.removeClass(this._getClass(this.options.offColor)) + } + this.$off.addClass(this._getClass(value)) + this.options.offColor = value + return this.$element + } + + onText (value) { + if (typeof value === 'undefined') { return this.options.onText } + this.$on.html(value) + this._width() + this._containerPosition() + this.options.onText = value + return this.$element + } + + offText (value) { + if (typeof value === 'undefined') { return this.options.offText } + this.$off.html(value) + this._width() + this._containerPosition() + this.options.offText = value + return this.$element + } + + labelText (value) { + if (typeof value === 'undefined') { return this.options.labelText } + this.$label.html(value) + this._width() + this.options.labelText = value + return this.$element + } + + handleWidth (value) { + if (typeof value === 'undefined') { return this.options.handleWidth } + this.options.handleWidth = value + this._width() + this._containerPosition() + return this.$element + } + + labelWidth (value) { + if (typeof value === 'undefined') { return this.options.labelWidth } + this.options.labelWidth = value + this._width() + this._containerPosition() + return this.$element + } + + baseClass (value) { + return this.options.baseClass + } + + wrapperClass (value) { + if (typeof value === 'undefined') { return this.options.wrapperClass } + if (!value) { + value = $.fn.bootstrapSwitch.defaults.wrapperClass + } + this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' ')) + this.$wrapper.addClass(this._getClasses(value).join(' ')) + this.options.wrapperClass = value + return this.$element + } + + radioAllOff (value) { + if (typeof value === 'undefined') { return this.options.radioAllOff } + const val = Boolean(value) + if (this.options.radioAllOff === val) { return this.$element } + this.options.radioAllOff = val + return this.$element + } + + onInit (value) { + if (typeof value === 'undefined') { return this.options.onInit } + if (!value) { + value = $.fn.bootstrapSwitch.defaults.onInit + } + this.options.onInit = value + return this.$element + } + + onSwitchChange (value) { + if (typeof value === 'undefined') { + return this.options.onSwitchChange + } + if (!value) { + value = $.fn.bootstrapSwitch.defaults.onSwitchChange + } + this.options.onSwitchChange = value + return this.$element + } + + destroy () { + const $form = this.$element.closest('form') + if ($form.length) { + $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch') + } + this.$container + .children() + .not(this.$element) + .remove() + this.$element + .unwrap() + .unwrap() + .off('.bootstrapSwitch') + .removeData('bootstrap-switch') + return this.$element + } + + _getElementOptions () { + return { + state: this.$element.is(':checked'), + size: this.$element.data('size'), + animate: this.$element.data('animate'), + disabled: this.$element.is(':disabled'), + readonly: this.$element.is('[readonly]'), + indeterminate: this.$element.data('indeterminate'), + inverse: this.$element.data('inverse'), + radioAllOff: this.$element.data('radio-all-off'), + onColor: this.$element.data('on-color'), + offColor: this.$element.data('off-color'), + onText: this.$element.data('on-text'), + offText: this.$element.data('off-text'), + labelText: this.$element.data('label-text'), + handleWidth: this.$element.data('handle-width'), + labelWidth: this.$element.data('label-width'), + baseClass: this.$element.data('base-class'), + wrapperClass: this.$element.data('wrapper-class') + } + } + + _width () { + const $handles = this.$on + .add(this.$off) + .add(this.$label) + .css('width', '') + const handleWidth = this.options.handleWidth === 'auto' + ? Math.round(Math.max(this.$on.width(), this.$off.width())) + : this.options.handleWidth + $handles.width(handleWidth) + this.$label.width((index, width) => { + if (this.options.labelWidth !== 'auto') { return this.options.labelWidth } + if (width < handleWidth) { return handleWidth } + return width + }) + this._handleWidth = this.$on.outerWidth() + this._labelWidth = this.$label.outerWidth() + this.$container.width((this._handleWidth * 2) + this._labelWidth) + return this.$wrapper.width(this._handleWidth + this._labelWidth) + } + + _containerPosition (state = this.options.state, callback) { + this.$container.css('margin-left', () => { + const values = [0, `-${this._handleWidth}px`] + if (this.options.indeterminate) { + return `-${this._handleWidth / 2}px` + } + if (state) { + if (this.options.inverse) { + return values[1] + } else { + return values[0] + } + } else { + if (this.options.inverse) { + return values[0] + } else { + return values[1] + } + } + }) + } + + _init () { + const init = () => { + this.setPrevOptions() + this._width() + this._containerPosition() + setTimeout(() => { + if (this.options.animate) { + return this.$wrapper.addClass(this._getClass('animate')) + } + }, 50) + } + if (this.$wrapper.is(':visible')) { + init() + return + } + const initInterval = window.setInterval(() => { + if (this.$wrapper.is(':visible')) { + init() + return window.clearInterval(initInterval) + } + }, 50) + } + + _elementHandlers () { + return this.$element.on({ + 'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this), + + 'previousState.bootstrapSwitch': () => { + this.options = this.prevOptions + if (this.options.indeterminate) { + this.$wrapper.addClass(this._getClass('indeterminate')) + } + this.$element + .prop('checked', this.options.state) + .trigger('change.bootstrapSwitch', true) + }, + + 'change.bootstrapSwitch': (event, skip) => { + event.preventDefault() + event.stopImmediatePropagation() + const state = this.$element.is(':checked') + this._containerPosition(state) + if (state === this.options.state) { + return + } + this.options.state = state + this.$wrapper + .toggleClass(this._getClass('off')) + .toggleClass(this._getClass('on')) + if (!skip) { + if (this.$element.is(':radio')) { + $(`[name="${this.$element.attr('name')}"]`) + .not(this.$element) + .prop('checked', false) + .trigger('change.bootstrapSwitch', true) + } + this.$element.trigger('switchChange.bootstrapSwitch', [state]) + } + }, + + 'focus.bootstrapSwitch': event => { + event.preventDefault() + this.$wrapper.addClass(this._getClass('focused')) + }, + + 'blur.bootstrapSwitch': event => { + event.preventDefault() + this.$wrapper.removeClass(this._getClass('focused')) + }, + + 'keydown.bootstrapSwitch': event => { + if (!event.which || this.options.disabled || this.options.readonly) { + return + } + if (event.which === 37 || event.which === 39) { + event.preventDefault() + event.stopImmediatePropagation() + this.state(event.which === 39) + } + } + }) + } + + _handleHandlers () { + this.$on.on('click.bootstrapSwitch', event => { + event.preventDefault() + event.stopPropagation() + this.state(false) + return this.$element.trigger('focus.bootstrapSwitch') + }) + return this.$off.on('click.bootstrapSwitch', event => { + event.preventDefault() + event.stopPropagation() + this.state(true) + return this.$element.trigger('focus.bootstrapSwitch') + }) + } + + _labelHandlers () { + const handlers = { + click (event) { event.stopPropagation() }, + + 'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': event => { + if (this._dragStart || this.options.disabled || this.options.readonly) { + return + } + event.preventDefault() + event.stopPropagation() + this._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(this.$container.css('margin-left'), 10) + if (this.options.animate) { + this.$wrapper.removeClass(this._getClass('animate')) + } + this.$element.trigger('focus.bootstrapSwitch') + }, + + 'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': event => { + if (this._dragStart == null) { return } + const difference = (event.pageX || event.originalEvent.touches[0].pageX) - this._dragStart + event.preventDefault() + if (difference < -this._handleWidth || difference > 0) { return } + this._dragEnd = difference + this.$container.css('margin-left', `${this._dragEnd}px`) + }, + + 'mouseup.bootstrapSwitch touchend.bootstrapSwitch': event => { + if (!this._dragStart) { return } + event.preventDefault() + if (this.options.animate) { + this.$wrapper.addClass(this._getClass('animate')) + } + if (this._dragEnd) { + const state = this._dragEnd > -(this._handleWidth / 2) + this._dragEnd = false + this.state(this.options.inverse ? !state : state) + } else { + this.state(!this.options.state) + } + this._dragStart = false + }, + + 'mouseleave.bootstrapSwitch': () => { + this.$label.trigger('mouseup.bootstrapSwitch') + } + } + this.$label.on(handlers) + } + + _externalLabelHandler () { + const $externalLabel = this.$element.closest('label') + $externalLabel.on('click', event => { + event.preventDefault() + event.stopImmediatePropagation() + if (event.target === $externalLabel[0]) { + this.toggleState() + } + }) + } + + _formHandler () { + const $form = this.$element.closest('form') + if ($form.data('bootstrap-switch')) { + return + } + $form + .on('reset.bootstrapSwitch', () => { + window.setTimeout(() => { + $form.find('input') + .filter(function () { return $(this).data('bootstrap-switch') }) + .each(function () { return $(this).bootstrapSwitch('state', this.checked) }) + }, 1) + }) + .data('bootstrap-switch', true) + } + + _getClass (name) { + return `${this.options.baseClass}-${name}` + } + + _getClasses (classes) { + if (!$.isArray(classes)) { + return [this._getClass(classes)] + } + return classes.map(this._getClass.bind(this)) + } +} + +$.fn.bootstrapSwitch = function (option, ...args) { + function reducer (ret, next) { + const $this = $(next) + const existingData = $this.data('bootstrap-switch') + const data = existingData || new BootstrapSwitch(next, option) + if (!existingData) { + $this.data('bootstrap-switch', data) + } + if (typeof option === 'string') { + return data[option].apply(data, args) + } + return ret + } + return Array.prototype.reduce.call(this, reducer, this) +} +$.fn.bootstrapSwitch.Constructor = BootstrapSwitch +$.fn.bootstrapSwitch.defaults = { + state: true, + size: null, + animate: true, + disabled: false, + readonly: false, + indeterminate: false, + inverse: false, + radioAllOff: false, + onColor: 'primary', + offColor: 'default', + onText: 'ON', + offText: 'OFF', + labelText: ' ', + handleWidth: 'auto', + labelWidth: 'auto', + baseClass: 'bootstrap-switch', + wrapperClass: 'wrapper', + onInit: () => {}, + onSwitchChange: () => {} +} diff --git a/resources/views/admin/schedule/editor/course.blade.php b/resources/views/admin/schedule/editor/course.blade.php new file mode 100644 index 00000000..74cb0673 --- /dev/null +++ b/resources/views/admin/schedule/editor/course.blade.php @@ -0,0 +1,36 @@ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/template.blade.php b/resources/views/admin/schedule/editor/template.blade.php new file mode 100644 index 00000000..6ef641b3 --- /dev/null +++ b/resources/views/admin/schedule/editor/template.blade.php @@ -0,0 +1,63 @@ +
+
+ + Niveau/Periode + +
+ @for($i = 1; $i <= 3; $i++) +
+
+ + +
+
+ @endfor +
+ +
+
+@for($j = 1; $j <= 3; $j++) +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ @for($i = 1; $i <= 3; $i++) +
+ @loaderDot +
+ @endfor +
+ +
+
+@endfor +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/admin/schedule/event/add.blade.php b/resources/views/admin/schedule/event/add.blade.php index a2f7622c..db23c9cf 100644 --- a/resources/views/admin/schedule/event/add.blade.php +++ b/resources/views/admin/schedule/event/add.blade.php @@ -2,54 +2,128 @@ @section('content')
-
-
-

Ajouter un événement à l'horaire

-
-
-
- @csrf +
+
+
+

Ajouter un événement à l'horaire

+
+
+ + @csrf -
-
-
- - -
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+
+
+
+

Options

+
+
+
+ + L'activité est-elle obligatoire pour tout les cadets ? +
+
-
- +
+ + Inclure des messages de la semaine avec l'activité ? +
+ +
- - +
+ + Inclure un horaire avec l'activité ? +
+ +
+
+
@endsection @section('custom_scripts') - - - + + + + + + @endsection \ No newline at end of file diff --git a/resources/views/admin/schedule/modal/add.blade.php b/resources/views/admin/schedule/modal/add.blade.php index 084beaad..59695a07 100644 --- a/resources/views/admin/schedule/modal/add.blade.php +++ b/resources/views/admin/schedule/modal/add.blade.php @@ -1,198 +1,208 @@ -
-

Information Générale

-
-
-
- - - Veuillez entrer le nom de l'événement -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - - Veuillez entrer le lieu de l'événement -
-
-
-
-
- + -
-

Options Supplémentaires

-
-
- -
-
-
- - -
-
-
+ +
-
-
- - -
-
- - + + + Veuillez entrer le nom de l'événement +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + + Veuillez entrer le lieu de l'événement +
+
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+ @loaderDot +
+
+
+
-@if ($activity->id == 1) +@if ($activity->id == 99)

Horaire d'instruction

-
-
- @for ($i = 1; $i <= \App\Config::getData('admin_level_in_schedule_nb'); $i++) -
- - -
-
- - @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) -

Période {{$p}}

-
-
-
- - - Veuillez entrer le nom du cours -
-
-
-
- -
- +
+
+ @for ($i = 1; $i <= \App\Config::getData('admin_level_in_schedule_nb'); $i++) +
+ + +
+
+ + @for ($p = 1; $p <= \App\Config::getData('admin_periode_nb'); $p++) +

Période {{$p}}

+
+
+
+ + + Veuillez entrer le nom du cours +
+
+
+
+ +
+ +
+ Veuillez entrer le nom de l'instructeur +
+
+
+
+ + + Veuillez entrer l'OCOM +
+
+
+
+ + + Veuillez entrer le lieux
- Veuillez entrer le nom de l'instructeur
-
-
- - - Veuillez entrer l'OCOM -
-
-
-
- - - Veuillez entrer le lieux -
-
-
-
- @endfor +
+ @endfor +
-
- @endfor + @endfor +
-
- + @endif - \ No newline at end of file diff --git a/resources/views/layouts/admin/head.blade.php b/resources/views/layouts/admin/head.blade.php index 1c73d5cc..0a0a4b71 100644 --- a/resources/views/layouts/admin/head.blade.php +++ b/resources/views/layouts/admin/head.blade.php @@ -26,7 +26,7 @@ - + \ No newline at end of file diff --git a/resources/views/layouts/admin/scripts.blade.php b/resources/views/layouts/admin/scripts.blade.php index fc8c1830..58ece41e 100644 --- a/resources/views/layouts/admin/scripts.blade.php +++ b/resources/views/layouts/admin/scripts.blade.php @@ -30,6 +30,7 @@ + - - + + + From e5d28d796a081c6b04cd2d0981eb2e96c255db16 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Sun, 22 Dec 2019 12:57:35 -0500 Subject: [PATCH 06/42] Turn off perfect-scrollbar --- public/js/material-dashboard.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/js/material-dashboard.js b/public/js/material-dashboard.js index 30fc10b9..b7986449 100644 --- a/public/js/material-dashboard.js +++ b/public/js/material-dashboard.js @@ -20,11 +20,11 @@ if (isWindows) { // if we are on windows OS we activate the perfectScrollbar function - $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar(); + //$('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar(); - $('html').addClass('perfect-scrollbar-on'); + //$('html').addClass('perfect-scrollbar-on'); } else { - $('html').addClass('perfect-scrollbar-off'); + //$('html').addClass('perfect-scrollbar-off'); } })(); From 047633c2ceddccd0fda607024c85a5bc8f1cc4aa Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Sun, 22 Dec 2019 13:10:57 -0500 Subject: [PATCH 07/42] Turn on perfect-scrollbar --- public/js/material-dashboard.js | 6 +++--- resources/views/admin/schedule/event/add.blade.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/js/material-dashboard.js b/public/js/material-dashboard.js index b7986449..30fc10b9 100644 --- a/public/js/material-dashboard.js +++ b/public/js/material-dashboard.js @@ -20,11 +20,11 @@ if (isWindows) { // if we are on windows OS we activate the perfectScrollbar function - //$('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar(); + $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar(); - //$('html').addClass('perfect-scrollbar-on'); + $('html').addClass('perfect-scrollbar-on'); } else { - //$('html').addClass('perfect-scrollbar-off'); + $('html').addClass('perfect-scrollbar-off'); } })(); diff --git a/resources/views/admin/schedule/event/add.blade.php b/resources/views/admin/schedule/event/add.blade.php index db23c9cf..4a80d822 100644 --- a/resources/views/admin/schedule/event/add.blade.php +++ b/resources/views/admin/schedule/event/add.blade.php @@ -124,6 +124,6 @@ ) @endsection \ No newline at end of file From 2c18dc8c1dcc2c558840232cd63ae9a58df7c210 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Sun, 22 Dec 2019 17:45:44 -0500 Subject: [PATCH 08/42] Update schedule editor --- app/EventType.php | 12 ++ app/Http/Controllers/EventTypeController.php | 85 +++++++++ .../Controllers/ScheduleEditorController.php | 60 ++++++- ..._12_22_145445_create_event_types_table.php | 44 +++++ public/js/plugins/schedule/editor.js | 131 +++++++++++++- .../admin/schedule/editor/template.blade.php | 22 +-- .../views/admin/schedule/event/add.blade.php | 168 +++++++++++------- routes/api.php | 3 +- routes/web.php | 2 +- 9 files changed, 448 insertions(+), 79 deletions(-) create mode 100644 app/EventType.php create mode 100644 app/Http/Controllers/EventTypeController.php create mode 100644 database/migrations/2019_12_22_145445_create_event_types_table.php diff --git a/app/EventType.php b/app/EventType.php new file mode 100644 index 00000000..9d98e112 --- /dev/null +++ b/app/EventType.php @@ -0,0 +1,12 @@ + 'array', + ]; +} diff --git a/app/Http/Controllers/EventTypeController.php b/app/Http/Controllers/EventTypeController.php new file mode 100644 index 00000000..231cb37e --- /dev/null +++ b/app/Http/Controllers/EventTypeController.php @@ -0,0 +1,85 @@ + $periode, 'niveau' => $niveau]); } - public function getTemplate() + public function getTemplate(int $id) { - return view('admin.schedule.editor.template'); + return view('admin.schedule.editor.template',["eventType" => \App\EventType::find($id)]); + } + + public function getEventTemplate(int $id) + { + $eventType = \App\EventType::find($id); + + return json_encode($eventType); + } + + public function test() + { + $evenType = new \App\EventType(); + + $evenType->name = "Soirée d'instruction régulière"; + $evenType->admin_desc = "Veuillez modifier la description admin par défaut"; + $evenType->calendar_color = "orange"; + $evenType->calendar_icon = "fas fa-book"; + $evenType->begin_time = "12:00"; + $evenType->end_time = "18:00"; + $evenType->location = "Escadron"; + $evenType->is_mandatory = true; + $evenType->use_weekly_msg = true; + $evenType->weekly_msg_publication_time = "-5days"; + $evenType->use_schedule = true; + $evenType->schedule_model = [ + "periodes" => [ + 0 => [ + "name" => "Periode 1", + "begin_time" => "19:00", + "end_time" => "20:10" + ], + 1 => [ + "name" => "Pause", + "begin_time" => "20:10", + "end_time" => "20:30" + ], + 2 => [ + "name" => "Periode 1", + "begin_time" => "20:30", + "end_time" => "21:20" + ] + ], + "niveaux" => [ + 0 => [ + "name" => "Niveau 1" + ], + 1 => [ + "name" => "Niveau 2" + ], + 2 => [ + "name" => "Niveau 3" + ] + ] + ]; + $evenType->is_promoted = true; + //$evenType->save(); } } diff --git a/database/migrations/2019_12_22_145445_create_event_types_table.php b/database/migrations/2019_12_22_145445_create_event_types_table.php new file mode 100644 index 00000000..210d134d --- /dev/null +++ b/database/migrations/2019_12_22_145445_create_event_types_table.php @@ -0,0 +1,44 @@ +bigIncrements('id'); + $table->string('name'); + $table->text('admin_desc'); + $table->string('calendar_color')->default('blue'); + $table->string('calendar_icon')->default(''); + $table->string('begin_time')->default('12:00'); + $table->string('end_time')->default('13:00'); + $table->string('location')->default('Escadron'); + $table->boolean('is_mandatory')->default(false); + $table->boolean('use_weekly_msg')->default(false); + $table->string('weekly_msg_publication_time')->default('-5day'); + $table->boolean('use_schedule')->default(false); + $table->text('schedule_model'); + $table->boolean('is_promoted')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('event_types'); + } +} diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js index 31a7ba25..7289e417 100644 --- a/public/js/plugins/schedule/editor.js +++ b/public/js/plugins/schedule/editor.js @@ -1,8 +1,8 @@ -function initScheduleEditor(id, periode, niveau) +function initScheduleEditor(id, eventType) { $.ajax({ type: 'GET', - url: '/api/schedule/editor/init?api_token='+api_token, + url: '/api/schedule/editor/init/'+eventType+'?api_token='+api_token, success: function (template) { $("#"+id).html(template); for (let pniveau = 1; pniveau <= 3; pniveau++) { @@ -16,11 +16,49 @@ function initScheduleEditor(id, periode, niveau) showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center') } }) + $('.datetimepicker').datetimepicker({ + icons: { + time: "fa fa-clock-o", + date: "fa fa-calendar", + up: "fa fa-chevron-up", + down: "fa fa-chevron-down", + previous: 'fa fa-chevron-left', + next: 'fa fa-chevron-right', + today: 'fa fa-screenshot', + clear: 'fa fa-trash', + close: 'fa fa-remove' + } + }); + $('.richeditor').trumbowyg({ + lang: 'fr' + }); + $('select').selectpicker(); } -function loadTemplate(id) +function switchUseWeeklyMsg() { - $.get('/api/schedule/editor/init?api_token='+api_token, function ( data ) {$("#"+id).html(data);}); + + if($('#use_weekly_msg').is(":checked")) + { + $('#collmessagedelasemaine').removeClass('d-none'); + } + else + { + $('#collmessagedelasemaine').addClass('d-none'); + } + +} + +function switchUseSchedule() +{ + if($('#use_schedule').is(":checked")) + { + $('#collschedule').removeClass('d-none'); + } + else + { + $('#collschedule').addClass('d-none'); + } } function loadCourse(periode,niveau) @@ -35,4 +73,89 @@ function loadCourse(periode,niveau) showNotification('error','Impossible de charger les cours ...','top', 'center') } }) +} + +function loadEventType(date) +{ + var selectInput = $('#type'); + var id = selectInput.val(); + $.ajax({ + type: 'GET', + url: '/api/schedule/editor/template/'+id+'?api_token='+api_token, + success: function (data) { + var result = JSON.parse(data); + initScheduleEditor("scheduleEditor",id) + $.each(result, function (i, val) { + if(i == "is_mandatory" || i == "use_schedule" || i == "use_weekly_msg") + { + if(val == 1) + { + $('#'+i).prop( "checked", true ); + } + else + { + $('#'+i).prop( "checked", false ); + } + switchUseSchedule(); + switchUseWeeklyMsg(); + } + else if(i == "begin_time" || i == "end_time") + { + var foo = $('#'+i); + var mdate = moment(date+" "+val); + foo.data("DateTimePicker").destroy(); + foo.datetimepicker({ + icons: { + time: "fa fa-clock-o", + date: "fa fa-calendar", + up: "fa fa-chevron-up", + down: "fa fa-chevron-down", + previous: 'fa fa-chevron-left', + next: 'fa fa-chevron-right', + today: 'fa fa-screenshot', + clear: 'fa fa-trash', + close: 'fa fa-remove' + }, + date: new Date(mdate) + }); + + } + else if(i == "weekly_msg_publication_time") + { + var foo = $('#'+i); + var mdate = moment(date+" "+result["begin_time"]); + mdate.subtract(5, 'days'); + foo.data("DateTimePicker").destroy(); + foo.datetimepicker({ + icons: { + time: "fa fa-clock-o", + date: "fa fa-calendar", + up: "fa fa-chevron-up", + down: "fa fa-chevron-down", + previous: 'fa fa-chevron-left', + next: 'fa fa-chevron-right', + today: 'fa fa-screenshot', + clear: 'fa fa-trash', + close: 'fa fa-remove' + }, + date: new Date(mdate) + }); + + } + else if(i == "location" || i == "name") + { + var foo = $('#'+i); + foo.val(val); + } + else if(i == "admin_desc") + { + var foo = $('#'+i); + foo.trumbowyg('html', val); + } + }); + }, + error: function () { + showNotification('error','Impossible de charger le type d\'évenement ...','top', 'center') + } + }) } \ No newline at end of file diff --git a/resources/views/admin/schedule/editor/template.blade.php b/resources/views/admin/schedule/editor/template.blade.php index 6ef641b3..cd64c21d 100644 --- a/resources/views/admin/schedule/editor/template.blade.php +++ b/resources/views/admin/schedule/editor/template.blade.php @@ -4,27 +4,27 @@ Niveau/Periode
- @for($i = 1; $i <= 3; $i++) + @foreach($eventType->schedule_model['niveaux'] as $niveau)
- +
- @endfor + @endforeach
-@for($j = 1; $j <= 3; $j++) +@foreach($eventType->schedule_model['periodes'] as $periode)
- + @@ -32,28 +32,28 @@
- +
- +
- @for($i = 1; $i <= 3; $i++) -
+ @foreach($eventType->schedule_model['niveaux'] as $niveau) +
@loaderDot
- @endfor + @endforeach
-@endfor +@endforeach
@@ -37,12 +116,21 @@

Options

+
+ + Choisir le type d'activité supprimera vos modification actuel + +
L'activité est-elle obligatoire pour tout les cadets ?
@@ -53,7 +141,7 @@ Inclure des messages de la semaine avec l'activité ?
@@ -64,7 +152,7 @@ Inclure un horaire avec l'activité ?
@@ -81,49 +169,9 @@ - - @endsection \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 3d3df645..d7bb23ff 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,8 +19,9 @@ Route::middleware('auth:api')->group(function () { Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see'); Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add'); - Route::get('/schedule/editor/init','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit'); + Route::get('/schedule/editor/init/{id}','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit'); Route::get('/schedule/editor/course/{niveau}/{periode}','ScheduleEditorController@getCourseEmpty')->middleware('perm:schedule_edit'); + Route::get('/schedule/editor/template/{id}','ScheduleEditorController@getEventTemplate')->middleware('perm:schedule_add'); Route::post('/schedule/event/delete/{id}','ScheduleController@delete')->middleware('perm:schedule_delete'); /** Booking */ diff --git a/routes/web.php b/routes/web.php index 8f4d3fd9..093884cd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -15,7 +15,7 @@ use Illuminate\Support\Facades\Storage; /* Basic Auth Route */ Auth::routes(); Route::get('logout', 'Auth\LoginController@logout')->name('logout'); -Route::get("/test",'OCOMController@create'); +Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate'); /** Public Route */ From c20024ed96cc68951f79f970006c589e5d5b4865 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Mon, 23 Dec 2019 17:57:41 -0500 Subject: [PATCH 09/42] Update schedule editor --- app/Http/Controllers/OCOMController.php | 27 ++++++ .../Controllers/ScheduleEditorController.php | 2 +- public/css/material-dashboard.css | 6 +- public/js/plugins/autocomplete.js | 10 ++ public/js/plugins/schedule/editor.js | 82 +++++++++++++++- .../admin/schedule/editor/course.blade.php | 93 +++++++++++++------ .../admin/schedule/editor/template.blade.php | 44 +++++++-- .../views/admin/schedule/event/add.blade.php | 6 +- routes/api.php | 3 +- 9 files changed, 229 insertions(+), 44 deletions(-) diff --git a/app/Http/Controllers/OCOMController.php b/app/Http/Controllers/OCOMController.php index e0c4c129..16e7d2bc 100644 --- a/app/Http/Controllers/OCOMController.php +++ b/app/Http/Controllers/OCOMController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\OCOM; use Illuminate\Http\Request; +use function GuzzleHttp\json_encode; use function GuzzleHttp\Psr7\str; class OCOMController extends Controller @@ -699,4 +700,30 @@ X20,\"Participer à des activités { // } + + public function jsonList() + { + $ocoms = \App\OCOM::all(); + + $name = []; + + foreach ($ocoms as $ocom) { + array_push($name, $ocom->ocom); + } + + return json_encode($name); + } + + public function getName(string $ocom) + { + $foo = \App\OCOM::all()->where('ocom','=',$ocom)->first(); + if($foo != null) + { + return $foo->objectif_competence; + } + else + { + return null; + } + } } diff --git a/app/Http/Controllers/ScheduleEditorController.php b/app/Http/Controllers/ScheduleEditorController.php index 4387b10d..bd4e9664 100644 --- a/app/Http/Controllers/ScheduleEditorController.php +++ b/app/Http/Controllers/ScheduleEditorController.php @@ -56,7 +56,7 @@ class ScheduleEditorController extends Controller "end_time" => "20:30" ], 2 => [ - "name" => "Periode 1", + "name" => "Periode 2", "begin_time" => "20:30", "end_time" => "21:20" ] diff --git a/public/css/material-dashboard.css b/public/css/material-dashboard.css index 223c69a9..4b2dc50c 100644 --- a/public/css/material-dashboard.css +++ b/public/css/material-dashboard.css @@ -3305,9 +3305,9 @@ fieldset:disabled a.btn { } .btn-secondary:hover { - color: #ffffff; - background-color: #5a6268; - border-color: #545b62; + color: #ffffff !important; + background-color: #5a6268 !important; + border-color: #545b62 !important; } .btn-secondary:focus, diff --git a/public/js/plugins/autocomplete.js b/public/js/plugins/autocomplete.js index 2102ed7e..a0c6a0b0 100644 --- a/public/js/plugins/autocomplete.js +++ b/public/js/plugins/autocomplete.js @@ -103,4 +103,14 @@ function initAutoComplete(htmlClass) autocomplete(document.getElementById(this.id), users); }) }); +} + +function initAutoCompleteOCOM(htmlClass) +{ + $.get('/api/ocom/list?api_token='+api_token, function ( data ) { + var ocoms = JSON.parse(data); + $("."+htmlClass).each(function ( index ) { + autocomplete(document.getElementById(this.id), ocoms); + }) + }); } \ No newline at end of file diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js index 7289e417..67ab97db 100644 --- a/public/js/plugins/schedule/editor.js +++ b/public/js/plugins/schedule/editor.js @@ -1,3 +1,5 @@ +var editorTemplate; + function initScheduleEditor(id, eventType) { $.ajax({ @@ -10,7 +12,8 @@ function initScheduleEditor(id, eventType) loadCourse(pniveau,pperiode); } } - initAutoComplete("AutoComplete"); + initAutoComplete("AutoCompleteUser"); + initAutoCompleteOCOM('AutoCompleteOCOM'); }, error: function () { showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center') @@ -84,6 +87,7 @@ function loadEventType(date) url: '/api/schedule/editor/template/'+id+'?api_token='+api_token, success: function (data) { var result = JSON.parse(data); + editorTemplate = result; initScheduleEditor("scheduleEditor",id) $.each(result, function (i, val) { if(i == "is_mandatory" || i == "use_schedule" || i == "use_weekly_msg") @@ -158,4 +162,80 @@ function loadEventType(date) showNotification('error','Impossible de charger le type d\'évenement ...','top', 'center') } }) +} + +function updateCourseName(niveau, periode) { + setTimeout(function(){ + let val = $('#ocom_n'+niveau+'_p'+periode).val(); + if(val != "") + { + $.ajax({ + type: 'GET', + url: '/api/ocom/'+val+'/name?api_token='+api_token, + success: function (data) { + if(data != null && data != "") + { + $('#name_n'+niveau+'_p'+periode).val(data); + } + }, + error: function () { + showNotification('error','Erreur impossible de charger l\'objectif de rendement ...','top', 'center') + } + }) + } + }, 100); +} + +function selectCourseMode(mode, niveau, periode) +{ + if(mode == "course") + { + $('#descContainer'+niveau+'-'+periode).addClass('d-none'); + $('#isDoneContainer'+niveau+'-'+periode).removeClass('d-none'); + $('#isDoneContainer'+niveau+'-'+periode).addClass('d-flex'); + $('#OCOMContainer'+niveau+'-'+periode).removeClass('d-none'); + $('#nameContainer'+niveau+'-'+periode).removeClass('d-none'); + $('#modeSwitchC'+niveau+'-'+periode).addClass('active'); + $('#modeSwitchO'+niveau+'-'+periode).removeClass('active'); + } + else + { + $('#descContainer'+niveau+'-'+periode).removeClass('d-none'); + $('#isDoneContainer'+niveau+'-'+periode).addClass('d-none'); + $('#isDoneContainer'+niveau+'-'+periode).removeClass('d-flex'); + $('#OCOMContainer'+niveau+'-'+periode).addClass('d-none'); + $('#nameContainer'+niveau+'-'+periode).addClass('d-none'); + $('#modeSwitchC'+niveau+'-'+periode).removeClass('active'); + $('#modeSwitchO'+niveau+'-'+periode).addClass('active'); + } +} + +function selectCourseModePeriode(mode,periode) +{ + $.each(editorTemplate['schedule_model']['niveaux'], function (i, val) { + selectCourseMode(mode,i+1,periode); + }); +} + +function selectCourseModeNiveau(mode,niveau) +{ + $.each(editorTemplate['schedule_model']['periodes'], function (i, val) { + selectCourseMode(mode,niveau,i+1); + }); +} + +function updatePlantext(toggle,id) +{ + if($('#'+toggle).is(":checked")) + { + $('#'+id).removeClass('text-warning'); + $('#'+id).addClass('text-success'); + $('#'+id).html('Plan de cours remis') + } + else + { + $('#'+id).addClass('text-warning'); + $('#'+id).removeClass('text-success'); + $('#'+id).html('Plan de cours non remis') + } } \ No newline at end of file diff --git a/resources/views/admin/schedule/editor/course.blade.php b/resources/views/admin/schedule/editor/course.blade.php index 74cb0673..17a7b53c 100644 --- a/resources/views/admin/schedule/editor/course.blade.php +++ b/resources/views/admin/schedule/editor/course.blade.php @@ -1,36 +1,77 @@ -
-
-
- - +
+
+
+
+ +
+
+ Plan de cours non remis +
-
-
- -
+
+
+
+
+
+ + +
+
+
+
+
+ +
+ +
+
+
+
+ + -
-
-
-
- - -
-
-
-
-
- +
-
+
+ Test +
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/template.blade.php b/resources/views/admin/schedule/editor/template.blade.php index cd64c21d..d21dd37e 100644 --- a/resources/views/admin/schedule/editor/template.blade.php +++ b/resources/views/admin/schedule/editor/template.blade.php @@ -6,11 +6,24 @@
@foreach($eventType->schedule_model['niveaux'] as $niveau)
-
- -
@endforeach @@ -23,11 +36,24 @@ @foreach($eventType->schedule_model['periodes'] as $periode)
-
- - +
+
+
+ + +
+
+
+ + +
@@ -45,7 +71,7 @@
@foreach($eventType->schedule_model['niveaux'] as $niveau) -
+
@loaderDot
@endforeach diff --git a/resources/views/admin/schedule/event/add.blade.php b/resources/views/admin/schedule/event/add.blade.php index cb2d3c2a..ca482534 100644 --- a/resources/views/admin/schedule/event/add.blade.php +++ b/resources/views/admin/schedule/event/add.blade.php @@ -58,7 +58,7 @@
-
' + } + }; + c.batch = function(b, c) { + var d = Array.prototype.slice.call(arguments, 2); + return a(b).each(function() { + var b = a(this).data("iconpicker"); + if (!!b) { + b[c].apply(b, d); + } + }); + }; + c.prototype = { + constructor: c, + options: {}, + _id: 0, + _trigger: function(b, c) { + c = c || {}; + this.element.trigger(a.extend({ + type: b, + iconpickerInstance: this + }, c)); + }, + _createPopover: function() { + this.popover = a(this.options.templates.popover); + var c = this.popover.find(".popover-title"); + if (!!this.options.title) { + c.append(a('
' + this.options.title + "
")); + } + if (this.hasSeparatedSearchInput() && !this.options.searchInFooter) { + c.append(this.options.templates.search); + } else if (!this.options.title) { + c.remove(); + } + if (this.options.showFooter && !b.isEmpty(this.options.templates.footer)) { + var d = a(this.options.templates.footer); + if (this.hasSeparatedSearchInput() && this.options.searchInFooter) { + d.append(a(this.options.templates.search)); + } + if (!b.isEmpty(this.options.templates.buttons)) { + d.append(a(this.options.templates.buttons)); + } + this.popover.append(d); + } + if (this.options.animation === true) { + this.popover.addClass("fade"); + } + return this.popover; + }, + _createIconpicker: function() { + var b = this; + this.iconpicker = a(this.options.templates.iconpicker); + var c = function(c) { + var d = a(this); + if (d.is("i")) { + d = d.parent(); + } + b._trigger("iconpickerSelect", { + iconpickerItem: d, + iconpickerValue: b.iconpickerValue + }); + if (b.options.mustAccept === false) { + b.update(d.data("iconpickerValue")); + b._trigger("iconpickerSelected", { + iconpickerItem: this, + iconpickerValue: b.iconpickerValue + }); + } else { + b.update(d.data("iconpickerValue"), true); + } + if (b.options.hideOnSelect && b.options.mustAccept === false) { + b.hide(); + } + }; + for (var d in this.options.icons) { + if (typeof this.options.icons[d].title === "string") { + var e = a(this.options.templates.iconpickerItem); + e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d].title)); + e.data("iconpickerValue", this.options.icons[d].title).on("click.iconpicker", c); + this.iconpicker.find(".iconpicker-items").append(e.attr("title", "." + this.options.icons[d].title)); + if (this.options.icons[d].searchTerms.length > 0) { + var f = ""; + for (var g = 0; g < this.options.icons[d].searchTerms.length; g++) { + f = f + this.options.icons[d].searchTerms[g] + " "; + } + this.iconpicker.find(".iconpicker-items").append(e.attr("data-search-terms", f)); + } + } + } + this.popover.find(".popover-content").append(this.iconpicker); + return this.iconpicker; + }, + _isEventInsideIconpicker: function(b) { + var c = a(b.target); + if ((!c.hasClass("iconpicker-element") || c.hasClass("iconpicker-element") && !c.is(this.element)) && c.parents(".iconpicker-popover").length === 0) { + return false; + } + return true; + }, + _bindElementEvents: function() { + var c = this; + this.getSearchInput().on("keyup.iconpicker", function() { + c.filter(a(this).val().toLowerCase()); + }); + this.getAcceptButton().on("click.iconpicker", function() { + var a = c.iconpicker.find(".iconpicker-selected").get(0); + c.update(c.iconpickerValue); + c._trigger("iconpickerSelected", { + iconpickerItem: a, + iconpickerValue: c.iconpickerValue + }); + if (!c.isInline()) { + c.hide(); + } + }); + this.getCancelButton().on("click.iconpicker", function() { + if (!c.isInline()) { + c.hide(); + } + }); + this.element.on("focus.iconpicker", function(a) { + c.show(); + a.stopPropagation(); + }); + if (this.hasComponent()) { + this.component.on("click.iconpicker", function() { + c.toggle(); + }); + } + if (this.hasInput()) { + this.input.on("keyup.iconpicker", function(d) { + if (!b.inArray(d.keyCode, [ 38, 40, 37, 39, 16, 17, 18, 9, 8, 91, 93, 20, 46, 186, 190, 46, 78, 188, 44, 86 ])) { + c.update(); + } else { + c._updateFormGroupStatus(c.getValid(this.value) !== false); + } + if (c.options.inputSearch === true) { + c.filter(a(this).val().toLowerCase()); + } + }); + } + }, + _bindWindowEvents: function() { + var b = a(window.document); + var c = this; + var d = ".iconpicker.inst" + this._id; + a(window).on("resize.iconpicker" + d + " orientationchange.iconpicker" + d, function(a) { + if (c.popover.hasClass("in")) { + c.updatePlacement(); + } + }); + if (!c.isInline()) { + b.on("mouseup" + d, function(a) { + if (!c._isEventInsideIconpicker(a) && !c.isInline()) { + c.hide(); + } + }); + } + }, + _unbindElementEvents: function() { + this.popover.off(".iconpicker"); + this.element.off(".iconpicker"); + if (this.hasInput()) { + this.input.off(".iconpicker"); + } + if (this.hasComponent()) { + this.component.off(".iconpicker"); + } + if (this.hasContainer()) { + this.container.off(".iconpicker"); + } + }, + _unbindWindowEvents: function() { + a(window).off(".iconpicker.inst" + this._id); + a(window.document).off(".iconpicker.inst" + this._id); + }, + updatePlacement: function(b, c) { + b = b || this.options.placement; + this.options.placement = b; + c = c || this.options.collision; + c = c === true ? "flip" : c; + var d = { + at: "right bottom", + my: "right top", + of: this.hasInput() && !this.isInputGroup() ? this.input : this.container, + collision: c === true ? "flip" : c, + within: window + }; + this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner " + "rightTop right rightBottom bottomRight bottomRightCorner " + "bottom bottomLeft bottomLeftCorner leftBottom left leftTop"); + if (typeof b === "object") { + return this.popover.pos(a.extend({}, d, b)); + } + switch (b) { + case "inline": + { + d = false; + } + break; + + case "topLeftCorner": + { + d.my = "right bottom"; + d.at = "left top"; + } + break; + + case "topLeft": + { + d.my = "left bottom"; + d.at = "left top"; + } + break; + + case "top": + { + d.my = "center bottom"; + d.at = "center top"; + } + break; + + case "topRight": + { + d.my = "right bottom"; + d.at = "right top"; + } + break; + + case "topRightCorner": + { + d.my = "left bottom"; + d.at = "right top"; + } + break; + + case "rightTop": + { + d.my = "left bottom"; + d.at = "right center"; + } + break; + + case "right": + { + d.my = "left center"; + d.at = "right center"; + } + break; + + case "rightBottom": + { + d.my = "left top"; + d.at = "right center"; + } + break; + + case "bottomRightCorner": + { + d.my = "left top"; + d.at = "right bottom"; + } + break; + + case "bottomRight": + { + d.my = "right top"; + d.at = "right bottom"; + } + break; + + case "bottom": + { + d.my = "center top"; + d.at = "center bottom"; + } + break; + + case "bottomLeft": + { + d.my = "left top"; + d.at = "left bottom"; + } + break; + + case "bottomLeftCorner": + { + d.my = "right top"; + d.at = "left bottom"; + } + break; + + case "leftBottom": + { + d.my = "right top"; + d.at = "left center"; + } + break; + + case "left": + { + d.my = "right center"; + d.at = "left center"; + } + break; + + case "leftTop": + { + d.my = "right bottom"; + d.at = "left center"; + } + break; + + default: + { + return false; + } + break; + } + this.popover.css({ + display: this.options.placement === "inline" ? "" : "block" + }); + if (d !== false) { + this.popover.pos(d).css("maxWidth", a(window).width() - this.container.offset().left - 5); + } else { + this.popover.css({ + top: "auto", + right: "auto", + bottom: "auto", + left: "auto", + maxWidth: "none" + }); + } + this.popover.addClass(this.options.placement); + return true; + }, + _updateComponents: function() { + this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected " + this.options.selectedCustomClass); + if (this.iconpickerValue) { + this.iconpicker.find("." + this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g, ".")).parent().addClass("iconpicker-selected " + this.options.selectedCustomClass); + } + if (this.hasComponent()) { + var a = this.component.find("i"); + if (a.length > 0) { + a.attr("class", this.options.fullClassFormatter(this.iconpickerValue)); + } else { + this.component.html(this.getHtml()); + } + } + }, + _updateFormGroupStatus: function(a) { + if (this.hasInput()) { + if (a !== false) { + this.input.parents(".form-group:first").removeClass("has-error"); + } else { + this.input.parents(".form-group:first").addClass("has-error"); + } + return true; + } + return false; + }, + getValid: function(c) { + if (!b.isString(c)) { + c = ""; + } + var d = c === ""; + c = a.trim(c); + var e = false; + for (var f = 0; f < this.options.icons.length; f++) { + if (this.options.icons[f].title === c) { + e = true; + break; + } + } + if (e || d) { + return c; + } + return false; + }, + setValue: function(a) { + var b = this.getValid(a); + if (b !== false) { + this.iconpickerValue = b; + this._trigger("iconpickerSetValue", { + iconpickerValue: b + }); + return this.iconpickerValue; + } else { + this._trigger("iconpickerInvalid", { + iconpickerValue: a + }); + return false; + } + }, + getHtml: function() { + return ''; + }, + setSourceValue: function(a) { + a = this.setValue(a); + if (a !== false && a !== "") { + if (this.hasInput()) { + this.input.val(this.iconpickerValue); + } else { + this.element.data("iconpickerValue", this.iconpickerValue); + } + this._trigger("iconpickerSetSourceValue", { + iconpickerValue: a + }); + } + return a; + }, + getSourceValue: function(a) { + a = a || this.options.defaultValue; + var b = a; + if (this.hasInput()) { + b = this.input.val(); + } else { + b = this.element.data("iconpickerValue"); + } + if (b === undefined || b === "" || b === null || b === false) { + b = a; + } + return b; + }, + hasInput: function() { + return this.input !== false; + }, + isInputSearch: function() { + return this.hasInput() && this.options.inputSearch === true; + }, + isInputGroup: function() { + return this.container.is(".input-group"); + }, + isDropdownMenu: function() { + return this.container.is(".dropdown-menu"); + }, + hasSeparatedSearchInput: function() { + return this.options.templates.search !== false && !this.isInputSearch(); + }, + hasComponent: function() { + return this.component !== false; + }, + hasContainer: function() { + return this.container !== false; + }, + getAcceptButton: function() { + return this.popover.find(".iconpicker-btn-accept"); + }, + getCancelButton: function() { + return this.popover.find(".iconpicker-btn-cancel"); + }, + getSearchInput: function() { + return this.popover.find(".iconpicker-search"); + }, + filter: function(c) { + if (b.isEmpty(c)) { + this.iconpicker.find(".iconpicker-item").show(); + return a(false); + } else { + var d = []; + this.iconpicker.find(".iconpicker-item").each(function() { + var b = a(this); + var e = b.attr("title").toLowerCase(); + var f = b.attr("data-search-terms") ? b.attr("data-search-terms").toLowerCase() : ""; + e = e + " " + f; + var g = false; + try { + g = new RegExp("(^|\\W)" + c, "g"); + } catch (a) { + g = false; + } + if (g !== false && e.match(g)) { + d.push(b); + b.show(); + } else { + b.hide(); + } + }); + return d; + } + }, + show: function() { + if (this.popover.hasClass("in")) { + return false; + } + a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover), "hide"); + this._trigger("iconpickerShow", { + iconpickerValue: this.iconpickerValue + }); + this.updatePlacement(); + this.popover.addClass("in"); + setTimeout(a.proxy(function() { + this.popover.css("display", this.isInline() ? "" : "block"); + this._trigger("iconpickerShown", { + iconpickerValue: this.iconpickerValue + }); + }, this), this.options.animation ? 300 : 1); + }, + hide: function() { + if (!this.popover.hasClass("in")) { + return false; + } + this._trigger("iconpickerHide", { + iconpickerValue: this.iconpickerValue + }); + this.popover.removeClass("in"); + setTimeout(a.proxy(function() { + this.popover.css("display", "none"); + this.getSearchInput().val(""); + this.filter(""); + this._trigger("iconpickerHidden", { + iconpickerValue: this.iconpickerValue + }); + }, this), this.options.animation ? 300 : 1); + }, + toggle: function() { + if (this.popover.is(":visible")) { + this.hide(); + } else { + this.show(true); + } + }, + update: function(a, b) { + a = a ? a : this.getSourceValue(this.iconpickerValue); + this._trigger("iconpickerUpdate", { + iconpickerValue: this.iconpickerValue + }); + if (b === true) { + a = this.setValue(a); + } else { + a = this.setSourceValue(a); + this._updateFormGroupStatus(a !== false); + } + if (a !== false) { + this._updateComponents(); + } + this._trigger("iconpickerUpdated", { + iconpickerValue: this.iconpickerValue + }); + return a; + }, + destroy: function() { + this._trigger("iconpickerDestroy", { + iconpickerValue: this.iconpickerValue + }); + this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"); + this._unbindElementEvents(); + this._unbindWindowEvents(); + a(this.popover).remove(); + this._trigger("iconpickerDestroyed", { + iconpickerValue: this.iconpickerValue + }); + }, + disable: function() { + if (this.hasInput()) { + this.input.prop("disabled", true); + return true; + } + return false; + }, + enable: function() { + if (this.hasInput()) { + this.input.prop("disabled", false); + return true; + } + return false; + }, + isDisabled: function() { + if (this.hasInput()) { + return this.input.prop("disabled") === true; + } + return false; + }, + isInline: function() { + return this.options.placement === "inline" || this.popover.hasClass("inline"); + } + }; + a.iconpicker = c; + a.fn.iconpicker = function(b) { + return this.each(function() { + var d = a(this); + if (!d.data("iconpicker")) { + d.data("iconpicker", new c(this, typeof b === "object" ? b : {})); + } + }); + }; + c.defaultOptions = a.extend(c.defaultOptions, { + icons: [ { + title: "fab fa-500px", + searchTerms: [] + }, { + title: "fab fa-accessible-icon", + searchTerms: [ "accessibility", "wheelchair", "handicap", "person", "wheelchair-alt" ] + }, { + title: "fab fa-accusoft", + searchTerms: [] + }, { + title: "fas fa-address-book", + searchTerms: [] + }, { + title: "far fa-address-book", + searchTerms: [] + }, { + title: "fas fa-address-card", + searchTerms: [] + }, { + title: "far fa-address-card", + searchTerms: [] + }, { + title: "fas fa-adjust", + searchTerms: [ "contrast" ] + }, { + title: "fab fa-adn", + searchTerms: [] + }, { + title: "fab fa-adversal", + searchTerms: [] + }, { + title: "fab fa-affiliatetheme", + searchTerms: [] + }, { + title: "fab fa-algolia", + searchTerms: [] + }, { + title: "fas fa-align-center", + searchTerms: [ "middle", "text" ] + }, { + title: "fas fa-align-justify", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-left", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-right", + searchTerms: [ "text" ] + }, { + title: "fab fa-amazon", + searchTerms: [] + }, { + title: "fab fa-amazon-pay", + searchTerms: [] + }, { + title: "fas fa-ambulance", + searchTerms: [ "vehicle", "support", "help" ] + }, { + title: "fas fa-american-sign-language-interpreting", + searchTerms: [] + }, { + title: "fab fa-amilia", + searchTerms: [] + }, { + title: "fas fa-anchor", + searchTerms: [ "link" ] + }, { + title: "fab fa-android", + searchTerms: [ "robot" ] + }, { + title: "fab fa-angellist", + searchTerms: [] + }, { + title: "fas fa-angle-double-down", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-double-left", + searchTerms: [ "laquo", "quote", "previous", "back", "arrows" ] + }, { + title: "fas fa-angle-double-right", + searchTerms: [ "raquo", "quote", "next", "forward", "arrows" ] + }, { + title: "fas fa-angle-double-up", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-down", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-angle-left", + searchTerms: [ "previous", "back", "arrow" ] + }, { + title: "fas fa-angle-right", + searchTerms: [ "next", "forward", "arrow" ] + }, { + title: "fas fa-angle-up", + searchTerms: [ "arrow" ] + }, { + title: "fab fa-angrycreative", + searchTerms: [] + }, { + title: "fab fa-angular", + searchTerms: [] + }, { + title: "fab fa-app-store", + searchTerms: [] + }, { + title: "fab fa-app-store-ios", + searchTerms: [] + }, { + title: "fab fa-apper", + searchTerms: [] + }, { + title: "fab fa-apple", + searchTerms: [ "osx", "food" ] + }, { + title: "fab fa-apple-pay", + searchTerms: [] + }, { + title: "fas fa-archive", + searchTerms: [ "box", "storage", "package" ] + }, { + title: "fas fa-arrow-alt-circle-down", + searchTerms: [ "download", "arrow-circle-o-down" ] + }, { + title: "far fa-arrow-alt-circle-down", + searchTerms: [ "download", "arrow-circle-o-down" ] + }, { + title: "fas fa-arrow-alt-circle-left", + searchTerms: [ "previous", "back", "arrow-circle-o-left" ] + }, { + title: "far fa-arrow-alt-circle-left", + searchTerms: [ "previous", "back", "arrow-circle-o-left" ] + }, { + title: "fas fa-arrow-alt-circle-right", + searchTerms: [ "next", "forward", "arrow-circle-o-right" ] + }, { + title: "far fa-arrow-alt-circle-right", + searchTerms: [ "next", "forward", "arrow-circle-o-right" ] + }, { + title: "fas fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "far fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "fas fa-arrow-circle-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-circle-left", + searchTerms: [ "previous", "back" ] + }, { + title: "fas fa-arrow-circle-right", + searchTerms: [ "next", "forward" ] + }, { + title: "fas fa-arrow-circle-up", + searchTerms: [] + }, { + title: "fas fa-arrow-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-left", + searchTerms: [ "previous", "back" ] + }, { + title: "fas fa-arrow-right", + searchTerms: [ "next", "forward" ] + }, { + title: "fas fa-arrow-up", + searchTerms: [] + }, { + title: "fas fa-arrows-alt", + searchTerms: [ "expand", "enlarge", "fullscreen", "bigger", "move", "reorder", "resize", "arrow", "arrows" ] + }, { + title: "fas fa-arrows-alt-h", + searchTerms: [ "resize", "arrows-h" ] + }, { + title: "fas fa-arrows-alt-v", + searchTerms: [ "resize", "arrows-v" ] + }, { + title: "fas fa-assistive-listening-systems", + searchTerms: [] + }, { + title: "fas fa-asterisk", + searchTerms: [ "details" ] + }, { + title: "fab fa-asymmetrik", + searchTerms: [] + }, { + title: "fas fa-at", + searchTerms: [ "email", "e-mail" ] + }, { + title: "fab fa-audible", + searchTerms: [] + }, { + title: "fas fa-audio-description", + searchTerms: [] + }, { + title: "fab fa-autoprefixer", + searchTerms: [] + }, { + title: "fab fa-avianex", + searchTerms: [] + }, { + title: "fab fa-aviato", + searchTerms: [] + }, { + title: "fab fa-aws", + searchTerms: [] + }, { + title: "fas fa-backward", + searchTerms: [ "rewind", "previous" ] + }, { + title: "fas fa-balance-scale", + searchTerms: [] + }, { + title: "fas fa-ban", + searchTerms: [ "delete", "remove", "trash", "hide", "block", "stop", "abort", "cancel", "ban", "prohibit" ] + }, { + title: "fas fa-band-aid", + searchTerms: [ "bandage", "ouch", "boo boo" ] + }, { + title: "fab fa-bandcamp", + searchTerms: [] + }, { + title: "fas fa-barcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-bars", + searchTerms: [ "menu", "drag", "reorder", "settings", "list", "ul", "ol", "checklist", "todo", "list", "hamburger" ] + }, { + title: "fas fa-baseball-ball", + searchTerms: [] + }, { + title: "fas fa-basketball-ball", + searchTerms: [] + }, { + title: "fas fa-bath", + searchTerms: [] + }, { + title: "fas fa-battery-empty", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-full", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-half", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-quarter", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-three-quarters", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-bed", + searchTerms: [ "travel" ] + }, { + title: "fas fa-beer", + searchTerms: [ "alcohol", "stein", "drink", "mug", "bar", "liquor" ] + }, { + title: "fab fa-behance", + searchTerms: [] + }, { + title: "fab fa-behance-square", + searchTerms: [] + }, { + title: "fas fa-bell", + searchTerms: [ "alert", "reminder", "notification" ] + }, { + title: "far fa-bell", + searchTerms: [ "alert", "reminder", "notification" ] + }, { + title: "fas fa-bell-slash", + searchTerms: [] + }, { + title: "far fa-bell-slash", + searchTerms: [] + }, { + title: "fas fa-bicycle", + searchTerms: [ "vehicle", "bike", "gears" ] + }, { + title: "fab fa-bimobject", + searchTerms: [] + }, { + title: "fas fa-binoculars", + searchTerms: [] + }, { + title: "fas fa-birthday-cake", + searchTerms: [] + }, { + title: "fab fa-bitbucket", + searchTerms: [ "git", "bitbucket-square" ] + }, { + title: "fab fa-bitcoin", + searchTerms: [] + }, { + title: "fab fa-bity", + searchTerms: [] + }, { + title: "fab fa-black-tie", + searchTerms: [] + }, { + title: "fab fa-blackberry", + searchTerms: [] + }, { + title: "fas fa-blind", + searchTerms: [] + }, { + title: "fab fa-blogger", + searchTerms: [] + }, { + title: "fab fa-blogger-b", + searchTerms: [] + }, { + title: "fab fa-bluetooth", + searchTerms: [] + }, { + title: "fab fa-bluetooth-b", + searchTerms: [] + }, { + title: "fas fa-bold", + searchTerms: [] + }, { + title: "fas fa-bolt", + searchTerms: [ "lightning", "weather" ] + }, { + title: "fas fa-bomb", + searchTerms: [] + }, { + title: "fas fa-book", + searchTerms: [ "read", "documentation" ] + }, { + title: "fas fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "far fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "fas fa-bowling-ball", + searchTerms: [] + }, { + title: "fas fa-box", + searchTerms: [] + }, { + title: "fas fa-boxes", + searchTerms: [] + }, { + title: "fas fa-braille", + searchTerms: [] + }, { + title: "fas fa-briefcase", + searchTerms: [ "work", "business", "office", "luggage", "bag" ] + }, { + title: "fab fa-btc", + searchTerms: [] + }, { + title: "fas fa-bug", + searchTerms: [ "report", "insect" ] + }, { + title: "fas fa-building", + searchTerms: [ "work", "business", "apartment", "office", "company" ] + }, { + title: "far fa-building", + searchTerms: [ "work", "business", "apartment", "office", "company" ] + }, { + title: "fas fa-bullhorn", + searchTerms: [ "announcement", "share", "broadcast", "louder", "megaphone" ] + }, { + title: "fas fa-bullseye", + searchTerms: [ "target" ] + }, { + title: "fab fa-buromobelexperte", + searchTerms: [] + }, { + title: "fas fa-bus", + searchTerms: [ "vehicle" ] + }, { + title: "fab fa-buysellads", + searchTerms: [] + }, { + title: "fas fa-calculator", + searchTerms: [] + }, { + title: "fas fa-calendar", + searchTerms: [ "date", "time", "when", "event", "calendar-o" ] + }, { + title: "far fa-calendar", + searchTerms: [ "date", "time", "when", "event", "calendar-o" ] + }, { + title: "fas fa-calendar-alt", + searchTerms: [ "date", "time", "when", "event", "calendar" ] + }, { + title: "far fa-calendar-alt", + searchTerms: [ "date", "time", "when", "event", "calendar" ] + }, { + title: "fas fa-calendar-check", + searchTerms: [ "ok" ] + }, { + title: "far fa-calendar-check", + searchTerms: [ "ok" ] + }, { + title: "fas fa-calendar-minus", + searchTerms: [] + }, { + title: "far fa-calendar-minus", + searchTerms: [] + }, { + title: "fas fa-calendar-plus", + searchTerms: [] + }, { + title: "far fa-calendar-plus", + searchTerms: [] + }, { + title: "fas fa-calendar-times", + searchTerms: [] + }, { + title: "far fa-calendar-times", + searchTerms: [] + }, { + title: "fas fa-camera", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-camera-retro", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-car", + searchTerms: [ "vehicle" ] + }, { + title: "fas fa-caret-down", + searchTerms: [ "more", "dropdown", "menu", "triangle down", "arrow" ] + }, { + title: "fas fa-caret-left", + searchTerms: [ "previous", "back", "triangle left", "arrow" ] + }, { + title: "fas fa-caret-right", + searchTerms: [ "next", "forward", "triangle right", "arrow" ] + }, { + title: "fas fa-caret-square-down", + searchTerms: [ "more", "dropdown", "menu", "caret-square-o-down" ] + }, { + title: "far fa-caret-square-down", + searchTerms: [ "more", "dropdown", "menu", "caret-square-o-down" ] + }, { + title: "fas fa-caret-square-left", + searchTerms: [ "previous", "back", "caret-square-o-left" ] + }, { + title: "far fa-caret-square-left", + searchTerms: [ "previous", "back", "caret-square-o-left" ] + }, { + title: "fas fa-caret-square-right", + searchTerms: [ "next", "forward", "caret-square-o-right" ] + }, { + title: "far fa-caret-square-right", + searchTerms: [ "next", "forward", "caret-square-o-right" ] + }, { + title: "fas fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "far fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "fas fa-caret-up", + searchTerms: [ "triangle up", "arrow" ] + }, { + title: "fas fa-cart-arrow-down", + searchTerms: [ "shopping" ] + }, { + title: "fas fa-cart-plus", + searchTerms: [ "add", "shopping" ] + }, { + title: "fab fa-cc-amazon-pay", + searchTerms: [] + }, { + title: "fab fa-cc-amex", + searchTerms: [ "amex" ] + }, { + title: "fab fa-cc-apple-pay", + searchTerms: [] + }, { + title: "fab fa-cc-diners-club", + searchTerms: [] + }, { + title: "fab fa-cc-discover", + searchTerms: [] + }, { + title: "fab fa-cc-jcb", + searchTerms: [] + }, { + title: "fab fa-cc-mastercard", + searchTerms: [] + }, { + title: "fab fa-cc-paypal", + searchTerms: [] + }, { + title: "fab fa-cc-stripe", + searchTerms: [] + }, { + title: "fab fa-cc-visa", + searchTerms: [] + }, { + title: "fab fa-centercode", + searchTerms: [] + }, { + title: "fas fa-certificate", + searchTerms: [ "badge", "star" ] + }, { + title: "fas fa-chart-area", + searchTerms: [ "graph", "analytics", "area-chart" ] + }, { + title: "fas fa-chart-bar", + searchTerms: [ "graph", "analytics", "bar-chart" ] + }, { + title: "far fa-chart-bar", + searchTerms: [ "graph", "analytics", "bar-chart" ] + }, { + title: "fas fa-chart-line", + searchTerms: [ "graph", "analytics", "line-chart", "dashboard" ] + }, { + title: "fas fa-chart-pie", + searchTerms: [ "graph", "analytics", "pie-chart" ] + }, { + title: "fas fa-check", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "tick", "ok", "select" ] + }, { + title: "fas fa-check-circle", + searchTerms: [ "todo", "done", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "far fa-check-circle", + searchTerms: [ "todo", "done", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "fas fa-check-square", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "far fa-check-square", + searchTerms: [ "checkmark", "done", "todo", "agree", "accept", "confirm", "ok", "select" ] + }, { + title: "fas fa-chess", + searchTerms: [] + }, { + title: "fas fa-chess-bishop", + searchTerms: [] + }, { + title: "fas fa-chess-board", + searchTerms: [] + }, { + title: "fas fa-chess-king", + searchTerms: [] + }, { + title: "fas fa-chess-knight", + searchTerms: [] + }, { + title: "fas fa-chess-pawn", + searchTerms: [] + }, { + title: "fas fa-chess-queen", + searchTerms: [] + }, { + title: "fas fa-chess-rook", + searchTerms: [] + }, { + title: "fas fa-chevron-circle-down", + searchTerms: [ "more", "dropdown", "menu", "arrow" ] + }, { + title: "fas fa-chevron-circle-left", + searchTerms: [ "previous", "back", "arrow" ] + }, { + title: "fas fa-chevron-circle-right", + searchTerms: [ "next", "forward", "arrow" ] + }, { + title: "fas fa-chevron-circle-up", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-chevron-down", + searchTerms: [] + }, { + title: "fas fa-chevron-left", + searchTerms: [ "bracket", "previous", "back" ] + }, { + title: "fas fa-chevron-right", + searchTerms: [ "bracket", "next", "forward" ] + }, { + title: "fas fa-chevron-up", + searchTerms: [] + }, { + title: "fas fa-child", + searchTerms: [] + }, { + title: "fab fa-chrome", + searchTerms: [ "browser" ] + }, { + title: "fas fa-circle", + searchTerms: [ "dot", "notification", "circle-thin" ] + }, { + title: "far fa-circle", + searchTerms: [ "dot", "notification", "circle-thin" ] + }, { + title: "fas fa-circle-notch", + searchTerms: [ "circle-o-notch" ] + }, { + title: "fas fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "far fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "fas fa-clipboard-check", + searchTerms: [] + }, { + title: "fas fa-clipboard-list", + searchTerms: [] + }, { + title: "fas fa-clock", + searchTerms: [ "watch", "timer", "late", "timestamp", "date" ] + }, { + title: "far fa-clock", + searchTerms: [ "watch", "timer", "late", "timestamp", "date" ] + }, { + title: "fas fa-clone", + searchTerms: [ "copy" ] + }, { + title: "far fa-clone", + searchTerms: [ "copy" ] + }, { + title: "fas fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "far fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "fas fa-cloud", + searchTerms: [ "save" ] + }, { + title: "fas fa-cloud-download-alt", + searchTerms: [ "cloud-download" ] + }, { + title: "fas fa-cloud-upload-alt", + searchTerms: [ "cloud-upload" ] + }, { + title: "fab fa-cloudscale", + searchTerms: [] + }, { + title: "fab fa-cloudsmith", + searchTerms: [] + }, { + title: "fab fa-cloudversify", + searchTerms: [] + }, { + title: "fas fa-code", + searchTerms: [ "html", "brackets" ] + }, { + title: "fas fa-code-branch", + searchTerms: [ "git", "fork", "vcs", "svn", "github", "rebase", "version", "branch", "code-fork" ] + }, { + title: "fab fa-codepen", + searchTerms: [] + }, { + title: "fab fa-codiepie", + searchTerms: [] + }, { + title: "fas fa-coffee", + searchTerms: [ "morning", "mug", "breakfast", "tea", "drink", "cafe" ] + }, { + title: "fas fa-cog", + searchTerms: [ "settings" ] + }, { + title: "fas fa-cogs", + searchTerms: [ "settings", "gears" ] + }, { + title: "fas fa-columns", + searchTerms: [ "split", "panes", "dashboard" ] + }, { + title: "fas fa-comment", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "far fa-comment", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "fas fa-comment-alt", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation", "commenting", "commenting" ] + }, { + title: "far fa-comment-alt", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation", "commenting", "commenting" ] + }, { + title: "fas fa-comments", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "far fa-comments", + searchTerms: [ "speech", "notification", "note", "chat", "bubble", "feedback", "message", "texting", "sms", "conversation" ] + }, { + title: "fas fa-compass", + searchTerms: [ "safari", "directory", "menu", "location" ] + }, { + title: "far fa-compass", + searchTerms: [ "safari", "directory", "menu", "location" ] + }, { + title: "fas fa-compress", + searchTerms: [ "collapse", "combine", "contract", "merge", "smaller" ] + }, { + title: "fab fa-connectdevelop", + searchTerms: [] + }, { + title: "fab fa-contao", + searchTerms: [] + }, { + title: "fas fa-copy", + searchTerms: [ "duplicate", "clone", "file", "files-o" ] + }, { + title: "far fa-copy", + searchTerms: [ "duplicate", "clone", "file", "files-o" ] + }, { + title: "fas fa-copyright", + searchTerms: [] + }, { + title: "far fa-copyright", + searchTerms: [] + }, { + title: "fab fa-cpanel", + searchTerms: [] + }, { + title: "fab fa-creative-commons", + searchTerms: [] + }, { + title: "fas fa-credit-card", + searchTerms: [ "money", "buy", "debit", "checkout", "purchase", "payment", "credit-card-alt" ] + }, { + title: "far fa-credit-card", + searchTerms: [ "money", "buy", "debit", "checkout", "purchase", "payment", "credit-card-alt" ] + }, { + title: "fas fa-crop", + searchTerms: [ "design" ] + }, { + title: "fas fa-crosshairs", + searchTerms: [ "picker", "gpd" ] + }, { + title: "fab fa-css3", + searchTerms: [ "code" ] + }, { + title: "fab fa-css3-alt", + searchTerms: [] + }, { + title: "fas fa-cube", + searchTerms: [ "package" ] + }, { + title: "fas fa-cubes", + searchTerms: [ "packages" ] + }, { + title: "fas fa-cut", + searchTerms: [ "scissors", "scissors" ] + }, { + title: "fab fa-cuttlefish", + searchTerms: [] + }, { + title: "fab fa-d-and-d", + searchTerms: [] + }, { + title: "fab fa-dashcube", + searchTerms: [] + }, { + title: "fas fa-database", + searchTerms: [] + }, { + title: "fas fa-deaf", + searchTerms: [] + }, { + title: "fab fa-delicious", + searchTerms: [] + }, { + title: "fab fa-deploydog", + searchTerms: [] + }, { + title: "fab fa-deskpro", + searchTerms: [] + }, { + title: "fas fa-desktop", + searchTerms: [ "monitor", "screen", "desktop", "computer", "demo", "device", "pc" ] + }, { + title: "fab fa-deviantart", + searchTerms: [] + }, { + title: "fab fa-digg", + searchTerms: [] + }, { + title: "fab fa-digital-ocean", + searchTerms: [] + }, { + title: "fab fa-discord", + searchTerms: [] + }, { + title: "fab fa-discourse", + searchTerms: [] + }, { + title: "fas fa-dna", + searchTerms: [ "double helix", "helix" ] + }, { + title: "fab fa-dochub", + searchTerms: [] + }, { + title: "fab fa-docker", + searchTerms: [] + }, { + title: "fas fa-dollar-sign", + searchTerms: [ "usd", "price" ] + }, { + title: "fas fa-dolly", + searchTerms: [] + }, { + title: "fas fa-dolly-flatbed", + searchTerms: [] + }, { + title: "fas fa-dot-circle", + searchTerms: [ "target", "bullseye", "notification" ] + }, { + title: "far fa-dot-circle", + searchTerms: [ "target", "bullseye", "notification" ] + }, { + title: "fas fa-download", + searchTerms: [ "import" ] + }, { + title: "fab fa-draft2digital", + searchTerms: [] + }, { + title: "fab fa-dribbble", + searchTerms: [] + }, { + title: "fab fa-dribbble-square", + searchTerms: [] + }, { + title: "fab fa-dropbox", + searchTerms: [] + }, { + title: "fab fa-drupal", + searchTerms: [] + }, { + title: "fab fa-dyalog", + searchTerms: [] + }, { + title: "fab fa-earlybirds", + searchTerms: [] + }, { + title: "fab fa-edge", + searchTerms: [ "browser", "ie" ] + }, { + title: "fas fa-edit", + searchTerms: [ "write", "edit", "update", "pencil", "pen" ] + }, { + title: "far fa-edit", + searchTerms: [ "write", "edit", "update", "pencil", "pen" ] + }, { + title: "fas fa-eject", + searchTerms: [] + }, { + title: "fab fa-elementor", + searchTerms: [] + }, { + title: "fas fa-ellipsis-h", + searchTerms: [ "dots" ] + }, { + title: "fas fa-ellipsis-v", + searchTerms: [ "dots" ] + }, { + title: "fab fa-ember", + searchTerms: [] + }, { + title: "fab fa-empire", + searchTerms: [] + }, { + title: "fas fa-envelope", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "far fa-envelope", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fas fa-envelope-open", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "far fa-envelope-open", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fas fa-envelope-square", + searchTerms: [ "email", "e-mail", "letter", "support", "mail", "message", "notification" ] + }, { + title: "fab fa-envira", + searchTerms: [ "leaf" ] + }, { + title: "fas fa-eraser", + searchTerms: [ "remove", "delete" ] + }, { + title: "fab fa-erlang", + searchTerms: [] + }, { + title: "fab fa-ethereum", + searchTerms: [] + }, { + title: "fab fa-etsy", + searchTerms: [] + }, { + title: "fas fa-euro-sign", + searchTerms: [ "eur", "eur" ] + }, { + title: "fas fa-exchange-alt", + searchTerms: [ "transfer", "arrows", "arrow", "exchange", "swap" ] + }, { + title: "fas fa-exclamation", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-exclamation-circle", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-exclamation-triangle", + searchTerms: [ "warning", "error", "problem", "notification", "notify", "alert", "danger" ] + }, { + title: "fas fa-expand", + searchTerms: [ "enlarge", "bigger", "resize" ] + }, { + title: "fas fa-expand-arrows-alt", + searchTerms: [ "enlarge", "bigger", "resize", "move", "arrows-alt" ] + }, { + title: "fab fa-expeditedssl", + searchTerms: [] + }, { + title: "fas fa-external-link-alt", + searchTerms: [ "open", "new", "external-link" ] + }, { + title: "fas fa-external-link-square-alt", + searchTerms: [ "open", "new", "external-link-square" ] + }, { + title: "fas fa-eye", + searchTerms: [ "show", "visible", "views" ] + }, { + title: "fas fa-eye-dropper", + searchTerms: [ "eyedropper" ] + }, { + title: "fas fa-eye-slash", + searchTerms: [ "toggle", "show", "hide", "visible", "visiblity", "views" ] + }, { + title: "far fa-eye-slash", + searchTerms: [ "toggle", "show", "hide", "visible", "visiblity", "views" ] + }, { + title: "fab fa-facebook", + searchTerms: [ "social network", "facebook-official" ] + }, { + title: "fab fa-facebook-f", + searchTerms: [ "facebook" ] + }, { + title: "fab fa-facebook-messenger", + searchTerms: [] + }, { + title: "fab fa-facebook-square", + searchTerms: [ "social network" ] + }, { + title: "fas fa-fast-backward", + searchTerms: [ "rewind", "previous", "beginning", "start", "first" ] + }, { + title: "fas fa-fast-forward", + searchTerms: [ "next", "end", "last" ] + }, { + title: "fas fa-fax", + searchTerms: [] + }, { + title: "fas fa-female", + searchTerms: [ "woman", "human", "user", "person", "profile" ] + }, { + title: "fas fa-fighter-jet", + searchTerms: [ "fly", "plane", "airplane", "quick", "fast", "travel" ] + }, { + title: "fas fa-file", + searchTerms: [ "new", "page", "pdf", "document" ] + }, { + title: "far fa-file", + searchTerms: [ "new", "page", "pdf", "document" ] + }, { + title: "fas fa-file-alt", + searchTerms: [ "new", "page", "pdf", "document", "file-text" ] + }, { + title: "far fa-file-alt", + searchTerms: [ "new", "page", "pdf", "document", "file-text" ] + }, { + title: "fas fa-file-archive", + searchTerms: [] + }, { + title: "far fa-file-archive", + searchTerms: [] + }, { + title: "fas fa-file-audio", + searchTerms: [] + }, { + title: "far fa-file-audio", + searchTerms: [] + }, { + title: "fas fa-file-code", + searchTerms: [] + }, { + title: "far fa-file-code", + searchTerms: [] + }, { + title: "fas fa-file-excel", + searchTerms: [] + }, { + title: "far fa-file-excel", + searchTerms: [] + }, { + title: "fas fa-file-image", + searchTerms: [] + }, { + title: "far fa-file-image", + searchTerms: [] + }, { + title: "fas fa-file-pdf", + searchTerms: [] + }, { + title: "far fa-file-pdf", + searchTerms: [] + }, { + title: "fas fa-file-powerpoint", + searchTerms: [] + }, { + title: "far fa-file-powerpoint", + searchTerms: [] + }, { + title: "fas fa-file-video", + searchTerms: [] + }, { + title: "far fa-file-video", + searchTerms: [] + }, { + title: "fas fa-file-word", + searchTerms: [] + }, { + title: "far fa-file-word", + searchTerms: [] + }, { + title: "fas fa-film", + searchTerms: [ "movie" ] + }, { + title: "fas fa-filter", + searchTerms: [ "funnel", "options" ] + }, { + title: "fas fa-fire", + searchTerms: [ "flame", "hot", "popular" ] + }, { + title: "fas fa-fire-extinguisher", + searchTerms: [] + }, { + title: "fab fa-firefox", + searchTerms: [ "browser" ] + }, { + title: "fas fa-first-aid", + searchTerms: [] + }, { + title: "fab fa-first-order", + searchTerms: [] + }, { + title: "fab fa-firstdraft", + searchTerms: [] + }, { + title: "fas fa-flag", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "far fa-flag", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "fas fa-flag-checkered", + searchTerms: [ "report", "notification", "notify" ] + }, { + title: "fas fa-flask", + searchTerms: [ "science", "beaker", "experimental", "labs" ] + }, { + title: "fab fa-flickr", + searchTerms: [] + }, { + title: "fab fa-flipboard", + searchTerms: [] + }, { + title: "fab fa-fly", + searchTerms: [] + }, { + title: "fas fa-folder", + searchTerms: [] + }, { + title: "far fa-folder", + searchTerms: [] + }, { + title: "fas fa-folder-open", + searchTerms: [] + }, { + title: "far fa-folder-open", + searchTerms: [] + }, { + title: "fas fa-font", + searchTerms: [ "text" ] + }, { + title: "fab fa-font-awesome", + searchTerms: [ "meanpath" ] + }, { + title: "fab fa-font-awesome-alt", + searchTerms: [] + }, { + title: "fab fa-font-awesome-flag", + searchTerms: [] + }, { + title: "fab fa-fonticons", + searchTerms: [] + }, { + title: "fab fa-fonticons-fi", + searchTerms: [] + }, { + title: "fas fa-football-ball", + searchTerms: [] + }, { + title: "fab fa-fort-awesome", + searchTerms: [ "castle" ] + }, { + title: "fab fa-fort-awesome-alt", + searchTerms: [ "castle" ] + }, { + title: "fab fa-forumbee", + searchTerms: [] + }, { + title: "fas fa-forward", + searchTerms: [ "forward", "next" ] + }, { + title: "fab fa-foursquare", + searchTerms: [] + }, { + title: "fab fa-free-code-camp", + searchTerms: [] + }, { + title: "fab fa-freebsd", + searchTerms: [] + }, { + title: "fas fa-frown", + searchTerms: [ "face", "emoticon", "sad", "disapprove", "rating" ] + }, { + title: "far fa-frown", + searchTerms: [ "face", "emoticon", "sad", "disapprove", "rating" ] + }, { + title: "fas fa-futbol", + searchTerms: [] + }, { + title: "far fa-futbol", + searchTerms: [] + }, { + title: "fas fa-gamepad", + searchTerms: [ "controller" ] + }, { + title: "fas fa-gavel", + searchTerms: [ "judge", "lawyer", "opinion", "hammer" ] + }, { + title: "fas fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "far fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "fas fa-genderless", + searchTerms: [] + }, { + title: "fab fa-get-pocket", + searchTerms: [] + }, { + title: "fab fa-gg", + searchTerms: [] + }, { + title: "fab fa-gg-circle", + searchTerms: [] + }, { + title: "fas fa-gift", + searchTerms: [ "present" ] + }, { + title: "fab fa-git", + searchTerms: [] + }, { + title: "fab fa-git-square", + searchTerms: [] + }, { + title: "fab fa-github", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-alt", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-square", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-gitkraken", + searchTerms: [] + }, { + title: "fab fa-gitlab", + searchTerms: [ "Axosoft" ] + }, { + title: "fab fa-gitter", + searchTerms: [] + }, { + title: "fas fa-glass-martini", + searchTerms: [ "martini", "drink", "bar", "alcohol", "liquor", "glass" ] + }, { + title: "fab fa-glide", + searchTerms: [] + }, { + title: "fab fa-glide-g", + searchTerms: [] + }, { + title: "fas fa-globe", + searchTerms: [ "world", "planet", "map", "place", "travel", "earth", "global", "translate", "all", "language", "localize", "location", "coordinates", "country", "gps" ] + }, { + title: "fab fa-gofore", + searchTerms: [] + }, { + title: "fas fa-golf-ball", + searchTerms: [] + }, { + title: "fab fa-goodreads", + searchTerms: [] + }, { + title: "fab fa-goodreads-g", + searchTerms: [] + }, { + title: "fab fa-google", + searchTerms: [] + }, { + title: "fab fa-google-drive", + searchTerms: [] + }, { + title: "fab fa-google-play", + searchTerms: [] + }, { + title: "fab fa-google-plus", + searchTerms: [ "google-plus-circle", "google-plus-official" ] + }, { + title: "fab fa-google-plus-g", + searchTerms: [ "social network", "google-plus" ] + }, { + title: "fab fa-google-plus-square", + searchTerms: [ "social network" ] + }, { + title: "fab fa-google-wallet", + searchTerms: [] + }, { + title: "fas fa-graduation-cap", + searchTerms: [ "learning", "school", "student" ] + }, { + title: "fab fa-gratipay", + searchTerms: [ "heart", "like", "favorite", "love" ] + }, { + title: "fab fa-grav", + searchTerms: [] + }, { + title: "fab fa-gripfire", + searchTerms: [] + }, { + title: "fab fa-grunt", + searchTerms: [] + }, { + title: "fab fa-gulp", + searchTerms: [] + }, { + title: "fas fa-h-square", + searchTerms: [ "hospital", "hotel" ] + }, { + title: "fab fa-hacker-news", + searchTerms: [] + }, { + title: "fab fa-hacker-news-square", + searchTerms: [] + }, { + title: "fas fa-hand-lizard", + searchTerms: [] + }, { + title: "far fa-hand-lizard", + searchTerms: [] + }, { + title: "fas fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "far fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "fas fa-hand-peace", + searchTerms: [] + }, { + title: "far fa-hand-peace", + searchTerms: [] + }, { + title: "fas fa-hand-point-down", + searchTerms: [ "point", "finger", "hand-o-down" ] + }, { + title: "far fa-hand-point-down", + searchTerms: [ "point", "finger", "hand-o-down" ] + }, { + title: "fas fa-hand-point-left", + searchTerms: [ "point", "left", "previous", "back", "finger", "hand-o-left" ] + }, { + title: "far fa-hand-point-left", + searchTerms: [ "point", "left", "previous", "back", "finger", "hand-o-left" ] + }, { + title: "fas fa-hand-point-right", + searchTerms: [ "point", "right", "next", "forward", "finger", "hand-o-right" ] + }, { + title: "far fa-hand-point-right", + searchTerms: [ "point", "right", "next", "forward", "finger", "hand-o-right" ] + }, { + title: "fas fa-hand-point-up", + searchTerms: [ "point", "finger", "hand-o-up" ] + }, { + title: "far fa-hand-point-up", + searchTerms: [ "point", "finger", "hand-o-up" ] + }, { + title: "fas fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "far fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-hand-rock", + searchTerms: [] + }, { + title: "far fa-hand-rock", + searchTerms: [] + }, { + title: "fas fa-hand-scissors", + searchTerms: [] + }, { + title: "far fa-hand-scissors", + searchTerms: [] + }, { + title: "fas fa-hand-spock", + searchTerms: [] + }, { + title: "far fa-hand-spock", + searchTerms: [] + }, { + title: "fas fa-handshake", + searchTerms: [] + }, { + title: "far fa-handshake", + searchTerms: [] + }, { + title: "fas fa-hashtag", + searchTerms: [] + }, { + title: "fas fa-hdd", + searchTerms: [ "harddrive", "hard drive", "storage", "save" ] + }, { + title: "far fa-hdd", + searchTerms: [ "harddrive", "hard drive", "storage", "save" ] + }, { + title: "fas fa-heading", + searchTerms: [ "header", "header" ] + }, { + title: "fas fa-headphones", + searchTerms: [ "sound", "listen", "music", "audio" ] + }, { + title: "fas fa-heart", + searchTerms: [ "love", "like", "favorite" ] + }, { + title: "far fa-heart", + searchTerms: [ "love", "like", "favorite" ] + }, { + title: "fas fa-heartbeat", + searchTerms: [ "ekg", "vital signs" ] + }, { + title: "fab fa-hips", + searchTerms: [] + }, { + title: "fab fa-hire-a-helper", + searchTerms: [] + }, { + title: "fas fa-history", + searchTerms: [] + }, { + title: "fas fa-hockey-puck", + searchTerms: [] + }, { + title: "fas fa-home", + searchTerms: [ "main", "house" ] + }, { + title: "fab fa-hooli", + searchTerms: [] + }, { + title: "fas fa-hospital", + searchTerms: [ "building", "medical center", "emergency room" ] + }, { + title: "far fa-hospital", + searchTerms: [ "building", "medical center", "emergency room" ] + }, { + title: "fas fa-hospital-symbol", + searchTerms: [] + }, { + title: "fab fa-hotjar", + searchTerms: [] + }, { + title: "fas fa-hourglass", + searchTerms: [] + }, { + title: "far fa-hourglass", + searchTerms: [] + }, { + title: "fas fa-hourglass-end", + searchTerms: [] + }, { + title: "fas fa-hourglass-half", + searchTerms: [] + }, { + title: "fas fa-hourglass-start", + searchTerms: [] + }, { + title: "fab fa-houzz", + searchTerms: [] + }, { + title: "fab fa-html5", + searchTerms: [] + }, { + title: "fab fa-hubspot", + searchTerms: [] + }, { + title: "fas fa-i-cursor", + searchTerms: [] + }, { + title: "fas fa-id-badge", + searchTerms: [] + }, { + title: "far fa-id-badge", + searchTerms: [] + }, { + title: "fas fa-id-card", + searchTerms: [] + }, { + title: "far fa-id-card", + searchTerms: [] + }, { + title: "fas fa-image", + searchTerms: [ "photo", "album", "picture", "picture" ] + }, { + title: "far fa-image", + searchTerms: [ "photo", "album", "picture", "picture" ] + }, { + title: "fas fa-images", + searchTerms: [ "photo", "album", "picture" ] + }, { + title: "far fa-images", + searchTerms: [ "photo", "album", "picture" ] + }, { + title: "fab fa-imdb", + searchTerms: [] + }, { + title: "fas fa-inbox", + searchTerms: [] + }, { + title: "fas fa-indent", + searchTerms: [] + }, { + title: "fas fa-industry", + searchTerms: [ "factory" ] + }, { + title: "fas fa-info", + searchTerms: [ "help", "information", "more", "details" ] + }, { + title: "fas fa-info-circle", + searchTerms: [ "help", "information", "more", "details" ] + }, { + title: "fab fa-instagram", + searchTerms: [] + }, { + title: "fab fa-internet-explorer", + searchTerms: [ "browser", "ie" ] + }, { + title: "fab fa-ioxhost", + searchTerms: [] + }, { + title: "fas fa-italic", + searchTerms: [ "italics" ] + }, { + title: "fab fa-itunes", + searchTerms: [] + }, { + title: "fab fa-itunes-note", + searchTerms: [] + }, { + title: "fab fa-jenkins", + searchTerms: [] + }, { + title: "fab fa-joget", + searchTerms: [] + }, { + title: "fab fa-joomla", + searchTerms: [] + }, { + title: "fab fa-js", + searchTerms: [] + }, { + title: "fab fa-js-square", + searchTerms: [] + }, { + title: "fab fa-jsfiddle", + searchTerms: [] + }, { + title: "fas fa-key", + searchTerms: [ "unlock", "password" ] + }, { + title: "fas fa-keyboard", + searchTerms: [ "type", "input" ] + }, { + title: "far fa-keyboard", + searchTerms: [ "type", "input" ] + }, { + title: "fab fa-keycdn", + searchTerms: [] + }, { + title: "fab fa-kickstarter", + searchTerms: [] + }, { + title: "fab fa-kickstarter-k", + searchTerms: [] + }, { + title: "fab fa-korvue", + searchTerms: [] + }, { + title: "fas fa-language", + searchTerms: [] + }, { + title: "fas fa-laptop", + searchTerms: [ "demo", "computer", "device", "pc" ] + }, { + title: "fab fa-laravel", + searchTerms: [] + }, { + title: "fab fa-lastfm", + searchTerms: [] + }, { + title: "fab fa-lastfm-square", + searchTerms: [] + }, { + title: "fas fa-leaf", + searchTerms: [ "eco", "nature", "plant" ] + }, { + title: "fab fa-leanpub", + searchTerms: [] + }, { + title: "fas fa-lemon", + searchTerms: [ "food" ] + }, { + title: "far fa-lemon", + searchTerms: [ "food" ] + }, { + title: "fab fa-less", + searchTerms: [] + }, { + title: "fas fa-level-down-alt", + searchTerms: [ "level-down" ] + }, { + title: "fas fa-level-up-alt", + searchTerms: [ "level-up" ] + }, { + title: "fas fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "far fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "fas fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "far fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "fab fa-line", + searchTerms: [] + }, { + title: "fas fa-link", + searchTerms: [ "chain" ] + }, { + title: "fab fa-linkedin", + searchTerms: [ "linkedin-square" ] + }, { + title: "fab fa-linkedin-in", + searchTerms: [ "linkedin" ] + }, { + title: "fab fa-linode", + searchTerms: [] + }, { + title: "fab fa-linux", + searchTerms: [ "tux" ] + }, { + title: "fas fa-lira-sign", + searchTerms: [ "try", "turkish", "try" ] + }, { + title: "fas fa-list", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fas fa-list-alt", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "far fa-list-alt", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fas fa-list-ol", + searchTerms: [ "ul", "ol", "checklist", "list", "todo", "list", "numbers" ] + }, { + title: "fas fa-list-ul", + searchTerms: [ "ul", "ol", "checklist", "todo", "list" ] + }, { + title: "fas fa-location-arrow", + searchTerms: [ "map", "coordinates", "location", "address", "place", "where", "gps" ] + }, { + title: "fas fa-lock", + searchTerms: [ "protect", "admin", "security" ] + }, { + title: "fas fa-lock-open", + searchTerms: [ "protect", "admin", "password", "lock", "open" ] + }, { + title: "fas fa-long-arrow-alt-down", + searchTerms: [ "long-arrow-down" ] + }, { + title: "fas fa-long-arrow-alt-left", + searchTerms: [ "previous", "back", "long-arrow-left" ] + }, { + title: "fas fa-long-arrow-alt-right", + searchTerms: [ "long-arrow-right" ] + }, { + title: "fas fa-long-arrow-alt-up", + searchTerms: [ "long-arrow-up" ] + }, { + title: "fas fa-low-vision", + searchTerms: [] + }, { + title: "fab fa-lyft", + searchTerms: [] + }, { + title: "fab fa-magento", + searchTerms: [] + }, { + title: "fas fa-magic", + searchTerms: [ "wizard", "automatic", "autocomplete" ] + }, { + title: "fas fa-magnet", + searchTerms: [] + }, { + title: "fas fa-male", + searchTerms: [ "man", "human", "user", "person", "profile" ] + }, { + title: "fas fa-map", + searchTerms: [] + }, { + title: "far fa-map", + searchTerms: [] + }, { + title: "fas fa-map-marker", + searchTerms: [ "map", "pin", "location", "coordinates", "localize", "address", "travel", "where", "place", "gps" ] + }, { + title: "fas fa-map-marker-alt", + searchTerms: [ "map-marker", "gps" ] + }, { + title: "fas fa-map-pin", + searchTerms: [] + }, { + title: "fas fa-map-signs", + searchTerms: [] + }, { + title: "fas fa-mars", + searchTerms: [ "male" ] + }, { + title: "fas fa-mars-double", + searchTerms: [] + }, { + title: "fas fa-mars-stroke", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-h", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-v", + searchTerms: [] + }, { + title: "fab fa-maxcdn", + searchTerms: [] + }, { + title: "fab fa-medapps", + searchTerms: [] + }, { + title: "fab fa-medium", + searchTerms: [] + }, { + title: "fab fa-medium-m", + searchTerms: [] + }, { + title: "fas fa-medkit", + searchTerms: [ "first aid", "firstaid", "help", "support", "health" ] + }, { + title: "fab fa-medrt", + searchTerms: [] + }, { + title: "fab fa-meetup", + searchTerms: [] + }, { + title: "fas fa-meh", + searchTerms: [ "face", "emoticon", "rating", "neutral" ] + }, { + title: "far fa-meh", + searchTerms: [ "face", "emoticon", "rating", "neutral" ] + }, { + title: "fas fa-mercury", + searchTerms: [ "transgender" ] + }, { + title: "fas fa-microchip", + searchTerms: [] + }, { + title: "fas fa-microphone", + searchTerms: [ "record", "voice", "sound" ] + }, { + title: "fas fa-microphone-slash", + searchTerms: [ "record", "voice", "sound", "mute" ] + }, { + title: "fab fa-microsoft", + searchTerms: [] + }, { + title: "fas fa-minus", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "fas fa-minus-circle", + searchTerms: [ "delete", "remove", "trash", "hide" ] + }, { + title: "fas fa-minus-square", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "far fa-minus-square", + searchTerms: [ "hide", "minify", "delete", "remove", "trash", "hide", "collapse" ] + }, { + title: "fab fa-mix", + searchTerms: [] + }, { + title: "fab fa-mixcloud", + searchTerms: [] + }, { + title: "fab fa-mizuni", + searchTerms: [] + }, { + title: "fas fa-mobile", + searchTerms: [ "cell phone", "cellphone", "text", "call", "iphone", "number", "telephone" ] + }, { + title: "fas fa-mobile-alt", + searchTerms: [ "mobile" ] + }, { + title: "fab fa-modx", + searchTerms: [] + }, { + title: "fab fa-monero", + searchTerms: [] + }, { + title: "fas fa-money-bill-alt", + searchTerms: [ "cash", "money", "buy", "checkout", "purchase", "payment", "price" ] + }, { + title: "far fa-money-bill-alt", + searchTerms: [ "cash", "money", "buy", "checkout", "purchase", "payment", "price" ] + }, { + title: "fas fa-moon", + searchTerms: [ "night", "darker", "contrast" ] + }, { + title: "far fa-moon", + searchTerms: [ "night", "darker", "contrast" ] + }, { + title: "fas fa-motorcycle", + searchTerms: [ "vehicle", "bike" ] + }, { + title: "fas fa-mouse-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-music", + searchTerms: [ "note", "sound" ] + }, { + title: "fab fa-napster", + searchTerms: [] + }, { + title: "fas fa-neuter", + searchTerms: [] + }, { + title: "fas fa-newspaper", + searchTerms: [ "press", "article" ] + }, { + title: "far fa-newspaper", + searchTerms: [ "press", "article" ] + }, { + title: "fab fa-nintendo-switch", + searchTerms: [] + }, { + title: "fab fa-node", + searchTerms: [] + }, { + title: "fab fa-node-js", + searchTerms: [] + }, { + title: "fab fa-npm", + searchTerms: [] + }, { + title: "fab fa-ns8", + searchTerms: [] + }, { + title: "fab fa-nutritionix", + searchTerms: [] + }, { + title: "fas fa-object-group", + searchTerms: [ "design" ] + }, { + title: "far fa-object-group", + searchTerms: [ "design" ] + }, { + title: "fas fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "far fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "fab fa-odnoklassniki", + searchTerms: [] + }, { + title: "fab fa-odnoklassniki-square", + searchTerms: [] + }, { + title: "fab fa-opencart", + searchTerms: [] + }, { + title: "fab fa-openid", + searchTerms: [] + }, { + title: "fab fa-opera", + searchTerms: [] + }, { + title: "fab fa-optin-monster", + searchTerms: [] + }, { + title: "fab fa-osi", + searchTerms: [] + }, { + title: "fas fa-outdent", + searchTerms: [] + }, { + title: "fab fa-page4", + searchTerms: [] + }, { + title: "fab fa-pagelines", + searchTerms: [ "leaf", "leaves", "tree", "plant", "eco", "nature" ] + }, { + title: "fas fa-paint-brush", + searchTerms: [] + }, { + title: "fab fa-palfed", + searchTerms: [] + }, { + title: "fas fa-pallet", + searchTerms: [] + }, { + title: "fas fa-paper-plane", + searchTerms: [] + }, { + title: "far fa-paper-plane", + searchTerms: [] + }, { + title: "fas fa-paperclip", + searchTerms: [ "attachment" ] + }, { + title: "fas fa-paragraph", + searchTerms: [] + }, { + title: "fas fa-paste", + searchTerms: [ "copy", "clipboard" ] + }, { + title: "fab fa-patreon", + searchTerms: [] + }, { + title: "fas fa-pause", + searchTerms: [ "wait" ] + }, { + title: "fas fa-pause-circle", + searchTerms: [] + }, { + title: "far fa-pause-circle", + searchTerms: [] + }, { + title: "fas fa-paw", + searchTerms: [ "pet" ] + }, { + title: "fab fa-paypal", + searchTerms: [] + }, { + title: "fas fa-pen-square", + searchTerms: [ "write", "edit", "update", "pencil-square" ] + }, { + title: "fas fa-pencil-alt", + searchTerms: [ "write", "edit", "update", "pencil", "design" ] + }, { + title: "fas fa-percent", + searchTerms: [] + }, { + title: "fab fa-periscope", + searchTerms: [] + }, { + title: "fab fa-phabricator", + searchTerms: [] + }, { + title: "fab fa-phoenix-framework", + searchTerms: [] + }, { + title: "fas fa-phone", + searchTerms: [ "call", "voice", "number", "support", "earphone", "telephone" ] + }, { + title: "fas fa-phone-square", + searchTerms: [ "call", "voice", "number", "support", "telephone" ] + }, { + title: "fas fa-phone-volume", + searchTerms: [ "telephone", "volume-control-phone" ] + }, { + title: "fab fa-php", + searchTerms: [] + }, { + title: "fab fa-pied-piper", + searchTerms: [] + }, { + title: "fab fa-pied-piper-alt", + searchTerms: [] + }, { + title: "fab fa-pied-piper-pp", + searchTerms: [] + }, { + title: "fas fa-pills", + searchTerms: [ "medicine", "drugs" ] + }, { + title: "fab fa-pinterest", + searchTerms: [] + }, { + title: "fab fa-pinterest-p", + searchTerms: [] + }, { + title: "fab fa-pinterest-square", + searchTerms: [] + }, { + title: "fas fa-plane", + searchTerms: [ "travel", "trip", "location", "destination", "airplane", "fly", "mode" ] + }, { + title: "fas fa-play", + searchTerms: [ "start", "playing", "music", "sound" ] + }, { + title: "fas fa-play-circle", + searchTerms: [ "start", "playing" ] + }, { + title: "far fa-play-circle", + searchTerms: [ "start", "playing" ] + }, { + title: "fab fa-playstation", + searchTerms: [] + }, { + title: "fas fa-plug", + searchTerms: [ "power", "connect" ] + }, { + title: "fas fa-plus", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-plus-circle", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-plus-square", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "far fa-plus-square", + searchTerms: [ "add", "new", "create", "expand" ] + }, { + title: "fas fa-podcast", + searchTerms: [] + }, { + title: "fas fa-pound-sign", + searchTerms: [ "gbp", "gbp" ] + }, { + title: "fas fa-power-off", + searchTerms: [ "on" ] + }, { + title: "fas fa-print", + searchTerms: [] + }, { + title: "fab fa-product-hunt", + searchTerms: [] + }, { + title: "fab fa-pushed", + searchTerms: [] + }, { + title: "fas fa-puzzle-piece", + searchTerms: [ "addon", "add-on", "section" ] + }, { + title: "fab fa-python", + searchTerms: [] + }, { + title: "fab fa-qq", + searchTerms: [] + }, { + title: "fas fa-qrcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-question", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "fas fa-question-circle", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "far fa-question-circle", + searchTerms: [ "help", "information", "unknown", "support" ] + }, { + title: "fas fa-quidditch", + searchTerms: [] + }, { + title: "fab fa-quinscape", + searchTerms: [] + }, { + title: "fab fa-quora", + searchTerms: [] + }, { + title: "fas fa-quote-left", + searchTerms: [] + }, { + title: "fas fa-quote-right", + searchTerms: [] + }, { + title: "fas fa-random", + searchTerms: [ "sort", "shuffle" ] + }, { + title: "fab fa-ravelry", + searchTerms: [] + }, { + title: "fab fa-react", + searchTerms: [] + }, { + title: "fab fa-rebel", + searchTerms: [] + }, { + title: "fas fa-recycle", + searchTerms: [] + }, { + title: "fab fa-red-river", + searchTerms: [] + }, { + title: "fab fa-reddit", + searchTerms: [] + }, { + title: "fab fa-reddit-alien", + searchTerms: [] + }, { + title: "fab fa-reddit-square", + searchTerms: [] + }, { + title: "fas fa-redo", + searchTerms: [ "forward", "repeat", "repeat" ] + }, { + title: "fas fa-redo-alt", + searchTerms: [ "forward", "repeat" ] + }, { + title: "fas fa-registered", + searchTerms: [] + }, { + title: "far fa-registered", + searchTerms: [] + }, { + title: "fab fa-rendact", + searchTerms: [] + }, { + title: "fab fa-renren", + searchTerms: [] + }, { + title: "fas fa-reply", + searchTerms: [] + }, { + title: "fas fa-reply-all", + searchTerms: [] + }, { + title: "fab fa-replyd", + searchTerms: [] + }, { + title: "fab fa-resolving", + searchTerms: [] + }, { + title: "fas fa-retweet", + searchTerms: [ "refresh", "reload", "share", "swap" ] + }, { + title: "fas fa-road", + searchTerms: [ "street" ] + }, { + title: "fas fa-rocket", + searchTerms: [ "app" ] + }, { + title: "fab fa-rocketchat", + searchTerms: [] + }, { + title: "fab fa-rockrms", + searchTerms: [] + }, { + title: "fas fa-rss", + searchTerms: [ "blog" ] + }, { + title: "fas fa-rss-square", + searchTerms: [ "feed", "blog" ] + }, { + title: "fas fa-ruble-sign", + searchTerms: [ "rub", "rub" ] + }, { + title: "fas fa-rupee-sign", + searchTerms: [ "indian", "inr" ] + }, { + title: "fab fa-safari", + searchTerms: [ "browser" ] + }, { + title: "fab fa-sass", + searchTerms: [] + }, { + title: "fas fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "far fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "fab fa-schlix", + searchTerms: [] + }, { + title: "fab fa-scribd", + searchTerms: [] + }, { + title: "fas fa-search", + searchTerms: [ "magnify", "zoom", "enlarge", "bigger" ] + }, { + title: "fas fa-search-minus", + searchTerms: [ "magnify", "minify", "zoom", "smaller" ] + }, { + title: "fas fa-search-plus", + searchTerms: [ "magnify", "zoom", "enlarge", "bigger" ] + }, { + title: "fab fa-searchengin", + searchTerms: [] + }, { + title: "fab fa-sellcast", + searchTerms: [ "eercast" ] + }, { + title: "fab fa-sellsy", + searchTerms: [] + }, { + title: "fas fa-server", + searchTerms: [] + }, { + title: "fab fa-servicestack", + searchTerms: [] + }, { + title: "fas fa-share", + searchTerms: [] + }, { + title: "fas fa-share-alt", + searchTerms: [] + }, { + title: "fas fa-share-alt-square", + searchTerms: [] + }, { + title: "fas fa-share-square", + searchTerms: [ "social", "send" ] + }, { + title: "far fa-share-square", + searchTerms: [ "social", "send" ] + }, { + title: "fas fa-shekel-sign", + searchTerms: [ "ils", "ils" ] + }, { + title: "fas fa-shield-alt", + searchTerms: [ "shield" ] + }, { + title: "fas fa-ship", + searchTerms: [ "boat", "sea" ] + }, { + title: "fas fa-shipping-fast", + searchTerms: [] + }, { + title: "fab fa-shirtsinbulk", + searchTerms: [] + }, { + title: "fas fa-shopping-bag", + searchTerms: [] + }, { + title: "fas fa-shopping-basket", + searchTerms: [] + }, { + title: "fas fa-shopping-cart", + searchTerms: [ "checkout", "buy", "purchase", "payment" ] + }, { + title: "fas fa-shower", + searchTerms: [] + }, { + title: "fas fa-sign-in-alt", + searchTerms: [ "enter", "join", "log in", "login", "sign up", "sign in", "signin", "signup", "arrow", "sign-in" ] + }, { + title: "fas fa-sign-language", + searchTerms: [] + }, { + title: "fas fa-sign-out-alt", + searchTerms: [ "log out", "logout", "leave", "exit", "arrow", "sign-out" ] + }, { + title: "fas fa-signal", + searchTerms: [ "graph", "bars", "status" ] + }, { + title: "fab fa-simplybuilt", + searchTerms: [] + }, { + title: "fab fa-sistrix", + searchTerms: [] + }, { + title: "fas fa-sitemap", + searchTerms: [ "directory", "hierarchy", "organization" ] + }, { + title: "fab fa-skyatlas", + searchTerms: [] + }, { + title: "fab fa-skype", + searchTerms: [] + }, { + title: "fab fa-slack", + searchTerms: [ "hashtag", "anchor", "hash" ] + }, { + title: "fab fa-slack-hash", + searchTerms: [ "hashtag", "anchor", "hash" ] + }, { + title: "fas fa-sliders-h", + searchTerms: [ "settings", "sliders" ] + }, { + title: "fab fa-slideshare", + searchTerms: [] + }, { + title: "fas fa-smile", + searchTerms: [ "face", "emoticon", "happy", "approve", "satisfied", "rating" ] + }, { + title: "far fa-smile", + searchTerms: [ "face", "emoticon", "happy", "approve", "satisfied", "rating" ] + }, { + title: "fab fa-snapchat", + searchTerms: [] + }, { + title: "fab fa-snapchat-ghost", + searchTerms: [] + }, { + title: "fab fa-snapchat-square", + searchTerms: [] + }, { + title: "fas fa-snowflake", + searchTerms: [] + }, { + title: "far fa-snowflake", + searchTerms: [] + }, { + title: "fas fa-sort", + searchTerms: [ "order" ] + }, { + title: "fas fa-sort-alpha-down", + searchTerms: [ "sort-alpha-asc" ] + }, { + title: "fas fa-sort-alpha-up", + searchTerms: [ "sort-alpha-desc" ] + }, { + title: "fas fa-sort-amount-down", + searchTerms: [ "sort-amount-asc" ] + }, { + title: "fas fa-sort-amount-up", + searchTerms: [ "sort-amount-desc" ] + }, { + title: "fas fa-sort-down", + searchTerms: [ "arrow", "descending", "sort-desc" ] + }, { + title: "fas fa-sort-numeric-down", + searchTerms: [ "numbers", "sort-numeric-asc" ] + }, { + title: "fas fa-sort-numeric-up", + searchTerms: [ "numbers", "sort-numeric-desc" ] + }, { + title: "fas fa-sort-up", + searchTerms: [ "arrow", "ascending", "sort-asc" ] + }, { + title: "fab fa-soundcloud", + searchTerms: [] + }, { + title: "fas fa-space-shuttle", + searchTerms: [] + }, { + title: "fab fa-speakap", + searchTerms: [] + }, { + title: "fas fa-spinner", + searchTerms: [ "loading", "progress" ] + }, { + title: "fab fa-spotify", + searchTerms: [] + }, { + title: "fas fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "far fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "fas fa-square-full", + searchTerms: [] + }, { + title: "fab fa-stack-exchange", + searchTerms: [] + }, { + title: "fab fa-stack-overflow", + searchTerms: [] + }, { + title: "fas fa-star", + searchTerms: [ "award", "achievement", "night", "rating", "score", "favorite" ] + }, { + title: "far fa-star", + searchTerms: [ "award", "achievement", "night", "rating", "score", "favorite" ] + }, { + title: "fas fa-star-half", + searchTerms: [ "award", "achievement", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "far fa-star-half", + searchTerms: [ "award", "achievement", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "fab fa-staylinked", + searchTerms: [] + }, { + title: "fab fa-steam", + searchTerms: [] + }, { + title: "fab fa-steam-square", + searchTerms: [] + }, { + title: "fab fa-steam-symbol", + searchTerms: [] + }, { + title: "fas fa-step-backward", + searchTerms: [ "rewind", "previous", "beginning", "start", "first" ] + }, { + title: "fas fa-step-forward", + searchTerms: [ "next", "end", "last" ] + }, { + title: "fas fa-stethoscope", + searchTerms: [] + }, { + title: "fab fa-sticker-mule", + searchTerms: [] + }, { + title: "fas fa-sticky-note", + searchTerms: [] + }, { + title: "far fa-sticky-note", + searchTerms: [] + }, { + title: "fas fa-stop", + searchTerms: [ "block", "box", "square" ] + }, { + title: "fas fa-stop-circle", + searchTerms: [] + }, { + title: "far fa-stop-circle", + searchTerms: [] + }, { + title: "fas fa-stopwatch", + searchTerms: [ "time" ] + }, { + title: "fab fa-strava", + searchTerms: [] + }, { + title: "fas fa-street-view", + searchTerms: [ "map" ] + }, { + title: "fas fa-strikethrough", + searchTerms: [] + }, { + title: "fab fa-stripe", + searchTerms: [] + }, { + title: "fab fa-stripe-s", + searchTerms: [] + }, { + title: "fab fa-studiovinari", + searchTerms: [] + }, { + title: "fab fa-stumbleupon", + searchTerms: [] + }, { + title: "fab fa-stumbleupon-circle", + searchTerms: [] + }, { + title: "fas fa-subscript", + searchTerms: [] + }, { + title: "fas fa-subway", + searchTerms: [] + }, { + title: "fas fa-suitcase", + searchTerms: [ "trip", "luggage", "travel", "move", "baggage" ] + }, { + title: "fas fa-sun", + searchTerms: [ "weather", "contrast", "lighter", "brighten", "day" ] + }, { + title: "far fa-sun", + searchTerms: [ "weather", "contrast", "lighter", "brighten", "day" ] + }, { + title: "fab fa-superpowers", + searchTerms: [] + }, { + title: "fas fa-superscript", + searchTerms: [ "exponential" ] + }, { + title: "fab fa-supple", + searchTerms: [] + }, { + title: "fas fa-sync", + searchTerms: [ "reload", "refresh", "refresh" ] + }, { + title: "fas fa-sync-alt", + searchTerms: [ "reload", "refresh" ] + }, { + title: "fas fa-syringe", + searchTerms: [ "immunizations", "needle" ] + }, { + title: "fas fa-table", + searchTerms: [ "data", "excel", "spreadsheet" ] + }, { + title: "fas fa-table-tennis", + searchTerms: [] + }, { + title: "fas fa-tablet", + searchTerms: [ "ipad", "device" ] + }, { + title: "fas fa-tablet-alt", + searchTerms: [ "tablet" ] + }, { + title: "fas fa-tachometer-alt", + searchTerms: [ "tachometer", "dashboard" ] + }, { + title: "fas fa-tag", + searchTerms: [ "label" ] + }, { + title: "fas fa-tags", + searchTerms: [ "labels" ] + }, { + title: "fas fa-tasks", + searchTerms: [ "progress", "loading", "downloading", "downloads", "settings" ] + }, { + title: "fas fa-taxi", + searchTerms: [ "vehicle" ] + }, { + title: "fab fa-telegram", + searchTerms: [] + }, { + title: "fab fa-telegram-plane", + searchTerms: [] + }, { + title: "fab fa-tencent-weibo", + searchTerms: [] + }, { + title: "fas fa-terminal", + searchTerms: [ "command", "prompt", "code" ] + }, { + title: "fas fa-text-height", + searchTerms: [] + }, { + title: "fas fa-text-width", + searchTerms: [] + }, { + title: "fas fa-th", + searchTerms: [ "blocks", "squares", "boxes", "grid" ] + }, { + title: "fas fa-th-large", + searchTerms: [ "blocks", "squares", "boxes", "grid" ] + }, { + title: "fas fa-th-list", + searchTerms: [ "ul", "ol", "checklist", "finished", "completed", "done", "todo" ] + }, { + title: "fab fa-themeisle", + searchTerms: [] + }, { + title: "fas fa-thermometer", + searchTerms: [ "temperature", "fever" ] + }, { + title: "fas fa-thermometer-empty", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-full", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-half", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-quarter", + searchTerms: [ "status" ] + }, { + title: "fas fa-thermometer-three-quarters", + searchTerms: [ "status" ] + }, { + title: "fas fa-thumbs-down", + searchTerms: [ "dislike", "disapprove", "disagree", "hand", "thumbs-o-down" ] + }, { + title: "far fa-thumbs-down", + searchTerms: [ "dislike", "disapprove", "disagree", "hand", "thumbs-o-down" ] + }, { + title: "fas fa-thumbs-up", + searchTerms: [ "like", "favorite", "approve", "agree", "hand", "thumbs-o-up" ] + }, { + title: "far fa-thumbs-up", + searchTerms: [ "like", "favorite", "approve", "agree", "hand", "thumbs-o-up" ] + }, { + title: "fas fa-thumbtack", + searchTerms: [ "marker", "pin", "location", "coordinates", "thumb-tack" ] + }, { + title: "fas fa-ticket-alt", + searchTerms: [ "ticket" ] + }, { + title: "fas fa-times", + searchTerms: [ "close", "exit", "x", "cross" ] + }, { + title: "fas fa-times-circle", + searchTerms: [ "close", "exit", "x" ] + }, { + title: "far fa-times-circle", + searchTerms: [ "close", "exit", "x" ] + }, { + title: "fas fa-tint", + searchTerms: [ "raindrop", "waterdrop", "drop", "droplet" ] + }, { + title: "fas fa-toggle-off", + searchTerms: [ "switch" ] + }, { + title: "fas fa-toggle-on", + searchTerms: [ "switch" ] + }, { + title: "fas fa-trademark", + searchTerms: [] + }, { + title: "fas fa-train", + searchTerms: [] + }, { + title: "fas fa-transgender", + searchTerms: [ "intersex" ] + }, { + title: "fas fa-transgender-alt", + searchTerms: [] + }, { + title: "fas fa-trash", + searchTerms: [ "garbage", "delete", "remove", "hide" ] + }, { + title: "fas fa-trash-alt", + searchTerms: [ "garbage", "delete", "remove", "hide", "trash", "trash-o" ] + }, { + title: "far fa-trash-alt", + searchTerms: [ "garbage", "delete", "remove", "hide", "trash", "trash-o" ] + }, { + title: "fas fa-tree", + searchTerms: [] + }, { + title: "fab fa-trello", + searchTerms: [] + }, { + title: "fab fa-tripadvisor", + searchTerms: [] + }, { + title: "fas fa-trophy", + searchTerms: [ "award", "achievement", "cup", "winner", "game" ] + }, { + title: "fas fa-truck", + searchTerms: [ "shipping" ] + }, { + title: "fas fa-tty", + searchTerms: [] + }, { + title: "fab fa-tumblr", + searchTerms: [] + }, { + title: "fab fa-tumblr-square", + searchTerms: [] + }, { + title: "fas fa-tv", + searchTerms: [ "display", "computer", "monitor", "television" ] + }, { + title: "fab fa-twitch", + searchTerms: [] + }, { + title: "fab fa-twitter", + searchTerms: [ "tweet", "social network" ] + }, { + title: "fab fa-twitter-square", + searchTerms: [ "tweet", "social network" ] + }, { + title: "fab fa-typo3", + searchTerms: [] + }, { + title: "fab fa-uber", + searchTerms: [] + }, { + title: "fab fa-uikit", + searchTerms: [] + }, { + title: "fas fa-umbrella", + searchTerms: [] + }, { + title: "fas fa-underline", + searchTerms: [] + }, { + title: "fas fa-undo", + searchTerms: [ "back" ] + }, { + title: "fas fa-undo-alt", + searchTerms: [ "back" ] + }, { + title: "fab fa-uniregistry", + searchTerms: [] + }, { + title: "fas fa-universal-access", + searchTerms: [] + }, { + title: "fas fa-university", + searchTerms: [ "bank", "institution" ] + }, { + title: "fas fa-unlink", + searchTerms: [ "remove", "chain", "chain-broken" ] + }, { + title: "fas fa-unlock", + searchTerms: [ "protect", "admin", "password", "lock" ] + }, { + title: "fas fa-unlock-alt", + searchTerms: [ "protect", "admin", "password", "lock" ] + }, { + title: "fab fa-untappd", + searchTerms: [] + }, { + title: "fas fa-upload", + searchTerms: [ "import" ] + }, { + title: "fab fa-usb", + searchTerms: [] + }, { + title: "fas fa-user", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "far fa-user", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "fas fa-user-circle", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "far fa-user-circle", + searchTerms: [ "person", "man", "head", "profile", "account" ] + }, { + title: "fas fa-user-md", + searchTerms: [ "doctor", "profile", "medical", "nurse", "job", "occupation" ] + }, { + title: "fas fa-user-plus", + searchTerms: [ "sign up", "signup" ] + }, { + title: "fas fa-user-secret", + searchTerms: [ "whisper", "spy", "incognito", "privacy" ] + }, { + title: "fas fa-user-times", + searchTerms: [] + }, { + title: "fas fa-users", + searchTerms: [ "people", "profiles", "persons" ] + }, { + title: "fab fa-ussunnah", + searchTerms: [] + }, { + title: "fas fa-utensil-spoon", + searchTerms: [ "spoon" ] + }, { + title: "fas fa-utensils", + searchTerms: [ "food", "restaurant", "spoon", "knife", "dinner", "eat", "cutlery" ] + }, { + title: "fab fa-vaadin", + searchTerms: [] + }, { + title: "fas fa-venus", + searchTerms: [ "female" ] + }, { + title: "fas fa-venus-double", + searchTerms: [] + }, { + title: "fas fa-venus-mars", + searchTerms: [] + }, { + title: "fab fa-viacoin", + searchTerms: [] + }, { + title: "fab fa-viadeo", + searchTerms: [] + }, { + title: "fab fa-viadeo-square", + searchTerms: [] + }, { + title: "fab fa-viber", + searchTerms: [] + }, { + title: "fas fa-video", + searchTerms: [ "film", "movie", "record", "camera", "video-camera" ] + }, { + title: "fab fa-vimeo", + searchTerms: [] + }, { + title: "fab fa-vimeo-square", + searchTerms: [] + }, { + title: "fab fa-vimeo-v", + searchTerms: [ "vimeo" ] + }, { + title: "fab fa-vine", + searchTerms: [] + }, { + title: "fab fa-vk", + searchTerms: [] + }, { + title: "fab fa-vnv", + searchTerms: [] + }, { + title: "fas fa-volleyball-ball", + searchTerms: [] + }, { + title: "fas fa-volume-down", + searchTerms: [ "audio", "lower", "quieter", "sound", "music" ] + }, { + title: "fas fa-volume-off", + searchTerms: [ "audio", "mute", "sound", "music" ] + }, { + title: "fas fa-volume-up", + searchTerms: [ "audio", "higher", "louder", "sound", "music" ] + }, { + title: "fab fa-vuejs", + searchTerms: [] + }, { + title: "fas fa-warehouse", + searchTerms: [] + }, { + title: "fab fa-weibo", + searchTerms: [] + }, { + title: "fas fa-weight", + searchTerms: [ "scale" ] + }, { + title: "fab fa-weixin", + searchTerms: [] + }, { + title: "fab fa-whatsapp", + searchTerms: [] + }, { + title: "fab fa-whatsapp-square", + searchTerms: [] + }, { + title: "fas fa-wheelchair", + searchTerms: [ "handicap", "person" ] + }, { + title: "fab fa-whmcs", + searchTerms: [] + }, { + title: "fas fa-wifi", + searchTerms: [] + }, { + title: "fab fa-wikipedia-w", + searchTerms: [] + }, { + title: "fas fa-window-close", + searchTerms: [] + }, { + title: "far fa-window-close", + searchTerms: [] + }, { + title: "fas fa-window-maximize", + searchTerms: [] + }, { + title: "far fa-window-maximize", + searchTerms: [] + }, { + title: "fas fa-window-minimize", + searchTerms: [] + }, { + title: "far fa-window-minimize", + searchTerms: [] + }, { + title: "fas fa-window-restore", + searchTerms: [] + }, { + title: "far fa-window-restore", + searchTerms: [] + }, { + title: "fab fa-windows", + searchTerms: [ "microsoft" ] + }, { + title: "fas fa-won-sign", + searchTerms: [ "krw", "krw" ] + }, { + title: "fab fa-wordpress", + searchTerms: [] + }, { + title: "fab fa-wordpress-simple", + searchTerms: [] + }, { + title: "fab fa-wpbeginner", + searchTerms: [] + }, { + title: "fab fa-wpexplorer", + searchTerms: [] + }, { + title: "fab fa-wpforms", + searchTerms: [] + }, { + title: "fas fa-wrench", + searchTerms: [ "settings", "fix", "update", "spanner", "tool" ] + }, { + title: "fab fa-xbox", + searchTerms: [] + }, { + title: "fab fa-xing", + searchTerms: [] + }, { + title: "fab fa-xing-square", + searchTerms: [] + }, { + title: "fab fa-y-combinator", + searchTerms: [] + }, { + title: "fab fa-yahoo", + searchTerms: [] + }, { + title: "fab fa-yandex", + searchTerms: [] + }, { + title: "fab fa-yandex-international", + searchTerms: [] + }, { + title: "fab fa-yelp", + searchTerms: [] + }, { + title: "fas fa-yen-sign", + searchTerms: [ "jpy", "jpy" ] + }, { + title: "fab fa-yoast", + searchTerms: [] + }, { + title: "fab fa-youtube", + searchTerms: [ "video", "film", "youtube-play", "youtube-square" ] + }, { + title: "fab fa-youtube-square", + searchTerms: [] + } ] + }); +}); \ No newline at end of file diff --git a/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.css b/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.css new file mode 100644 index 00000000..e56572a3 --- /dev/null +++ b/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2016 Javi Aguilar + * Licensed under the MIT License + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + * + */.iconpicker-popover.popover{position:absolute;top:0;left:0;display:none;max-width:none;padding:1px;text-align:left;width:234px;background:#f7f7f7;z-index:9}.iconpicker-popover.popover.top,.iconpicker-popover.popover.topLeftCorner,.iconpicker-popover.popover.topLeft,.iconpicker-popover.popover.topRight,.iconpicker-popover.popover.topRightCorner{margin-top:-10px}.iconpicker-popover.popover.right,.iconpicker-popover.popover.rightTop,.iconpicker-popover.popover.rightBottom{margin-left:10px}.iconpicker-popover.popover.bottom,.iconpicker-popover.popover.bottomRightCorner,.iconpicker-popover.popover.bottomRight,.iconpicker-popover.popover.bottomLeft,.iconpicker-popover.popover.bottomLeftCorner{margin-top:10px}.iconpicker-popover.popover.left,.iconpicker-popover.popover.leftBottom,.iconpicker-popover.popover.leftTop{margin-left:-10px}.iconpicker-popover.popover.inline{margin:0 0 12px 0;position:relative;display:inline-block;opacity:1;top:auto;left:auto;bottom:auto;right:auto;max-width:100%;box-shadow:none;z-index:auto;vertical-align:top}.iconpicker-popover.popover.inline>.arrow{display:none}.dropdown-menu .iconpicker-popover.inline{margin:0;border:none}.dropdown-menu.iconpicker-container{padding:0}.iconpicker-popover.popover .popover-title{padding:12px;font-size:13px;line-height:15px;border-bottom:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px 0}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:12px}.iconpicker-popover.popover .popover-content{padding:0px;text-align:center}.iconpicker-popover .popover-footer{float:none;clear:both;padding:12px;text-align:right;margin:0;border-top:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover .popover-footer:before,.iconpicker-popover .popover-footer:after{content:" ";display:table}.iconpicker-popover .popover-footer:after{clear:both}.iconpicker-popover .popover-footer .iconpicker-btn{margin-left:10px}.iconpicker-popover .popover-footer input[type=search].iconpicker-search{margin-bottom:12px}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.top>.arrow,.iconpicker-popover.popover.topLeft>.arrow,.iconpicker-popover.popover.topRight>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.iconpicker-popover.popover.top>.arrow:after,.iconpicker-popover.popover.topLeft>.arrow:after,.iconpicker-popover.popover.topRight>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.iconpicker-popover.popover.topLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.topRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.right>.arrow,.iconpicker-popover.popover.rightTop>.arrow,.iconpicker-popover.popover.rightBottom>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.right>.arrow:after,.iconpicker-popover.popover.rightTop>.arrow:after,.iconpicker-popover.popover.rightBottom>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.iconpicker-popover.popover.rightTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker-popover.popover.rightBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.bottom>.arrow,.iconpicker-popover.popover.bottomRight>.arrow,.iconpicker-popover.popover.bottomLeft>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.iconpicker-popover.popover.bottom>.arrow:after,.iconpicker-popover.popover.bottomRight>.arrow:after,.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.iconpicker-popover.popover.bottomLeft>.arrow{left:8px;margin-left:0}.iconpicker-popover.popover.bottomRight>.arrow{left:auto;right:8px;margin-left:0}.iconpicker-popover.popover.left>.arrow,.iconpicker-popover.popover.leftBottom>.arrow,.iconpicker-popover.popover.leftTop>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.left>.arrow:after,.iconpicker-popover.popover.leftBottom>.arrow:after,.iconpicker-popover.popover.leftTop>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.iconpicker-popover.popover.leftBottom>.arrow{top:8px;margin-top:0}.iconpicker-popover.popover.leftTop>.arrow{top:auto;bottom:8px;margin-top:0}.iconpicker{position:relative;text-align:left;text-shadow:none;line-height:0;display:block;margin:0;overflow:hidden}.iconpicker *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;position:relative}.iconpicker:before,.iconpicker:after{content:" ";display:table}.iconpicker:after{clear:both}.iconpicker .iconpicker-items{position:relative;clear:both;float:none;padding:12px 0 0 12px;background:#fff;margin:0;overflow:hidden;overflow-y:auto;min-height:49px;max-height:246px}.iconpicker .iconpicker-items:before,.iconpicker .iconpicker-items:after{content:" ";display:table}.iconpicker .iconpicker-items:after{clear:both}.iconpicker .iconpicker-item{float:left;width:14px;height:14px;padding:12px;margin:0 12px 12px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:14px;box-shadow:0 0 0 1px #ddd;color:inherit}.iconpicker .iconpicker-item:hover:not(.iconpicker-selected){background-color:#eee}.iconpicker .iconpicker-item.iconpicker-selected{box-shadow:none;color:#fff;background:#000}.iconpicker-component{cursor:pointer} \ No newline at end of file diff --git a/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.js b/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.js new file mode 100644 index 00000000..2fe5d1fc --- /dev/null +++ b/public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.js @@ -0,0 +1,20 @@ +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2016 Javi Aguilar + * Licensed under the MIT License + * https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + * + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.ui=a.ui||{};a.ui.version="1.12.1";/*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ +!function(){function b(a,b,c){return[parseFloat(a[0])*(l.test(a[0])?b/100:1),parseFloat(a[1])*(l.test(a[1])?c/100:1)]}function c(b,c){return parseInt(a.css(b,c),10)||0}function d(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}var e,f=Math.max,g=Math.abs,h=/left|center|right/,i=/top|center|bottom/,j=/[\+\-]\d+(\.[\d]+)?%?/,k=/^\w+/,l=/%$/,m=a.fn.pos;a.pos={scrollbarWidth:function(){if(void 0!==e)return e;var b,c,d=a("
"),f=d.children()[0];return a("body").append(d),b=f.offsetWidth,d.css("overflow","scroll"),c=f.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),e=b-c},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:h<0?"top":d>0?"bottom":"middle"};nf(g(d),g(h))?l.important="horizontal":l.important="vertical",e.using.call(this,a,l)}),i.offset(a.extend(z,{using:h}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,g=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=g-i,k=i+c.collisionWidth-h-g;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-g,b.left+=j-d):b.left=k>0&&j<=0?g:j>k?g+h-c.collisionWidth:g:j>0?b.left+=j:k>0?b.left-=k:b.left=f(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,g=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=g-i,k=i+c.collisionHeight-h-g;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-g,b.top+=j-d):b.top=k>0&&j<=0?g:j>k?g+h-c.collisionHeight:g:j>0?b.top+=j:k>0?b.top-=k:b.top=f(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,h=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?((d=b.left+n+o+p+c.collisionWidth-i-h)<0||d0&&((e=b.left-c.collisionPosition.marginLeft+n+o+p-j)>0||g(e)0&&((d=b.top-c.collisionPosition.marginTop+o+p+q-j)>0||g(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}();a.ui.position}),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return!1===a||""===a||null===a||void 0===a},isEmptyObject:function(a){return!0===this.isEmpty(a)||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return-1!==a.inArray(b,c)},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate",{iconpickerValue:this.iconpickerValue}),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated",{iconpickerValue:this.iconpickerValue})};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'
',footer:'',buttons:' ',search:'',iconpicker:'
',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a('
'+this.options.title+"
")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),!1===b.options.mustAccept?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&!1===b.options.mustAccept&&b.hide()};for(var d in this.options.icons)if("string"==typeof this.options.icons[d].title){var e=a(this.options.templates.iconpickerItem);if(e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d].title)),e.data("iconpickerValue",this.options.icons[d].title).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d].title)),this.options.icons[d].searchTerms.length>0){for(var f="",g=0;g0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(!1!==a?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;c=a.trim(c);for(var e=!1,f=0;f'},setSourceValue:function(a){return a=this.setValue(a),!1!==a&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&!1!==b||(b=a),b},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase();e=e+" "+(b.attr("data-search-terms")?b.attr("data-search-terms").toLowerCase():"");var f=!1;try{f=new RegExp("(^|\\W)"+c,"g")}catch(a){f=!1}!1!==f&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){if(this.popover.hasClass("in"))return!1;a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow",{iconpickerValue:this.iconpickerValue}),this.updatePlacement(),this.popover.addClass("in"),setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide",{iconpickerValue:this.iconpickerValue}),this.popover.removeClass("in"),setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate",{iconpickerValue:this.iconpickerValue}),!0===b?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(!1!==a)),!1!==a&&this._updateComponents(),this._trigger("iconpickerUpdated",{iconpickerValue:this.iconpickerValue}),a},destroy:function(){this._trigger("iconpickerDestroy",{iconpickerValue:this.iconpickerValue}),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed",{iconpickerValue:this.iconpickerValue})},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions=a.extend(c.defaultOptions,{icons:[{title:"fab fa-500px",searchTerms:[]},{title:"fab fa-accessible-icon",searchTerms:["accessibility","wheelchair","handicap","person","wheelchair-alt"]},{title:"fab fa-accusoft",searchTerms:[]},{title:"fas fa-address-book",searchTerms:[]},{title:"far fa-address-book",searchTerms:[]},{title:"fas fa-address-card",searchTerms:[]},{title:"far fa-address-card",searchTerms:[]},{title:"fas fa-adjust",searchTerms:["contrast"]},{title:"fab fa-adn",searchTerms:[]},{title:"fab fa-adversal",searchTerms:[]},{title:"fab fa-affiliatetheme",searchTerms:[]},{title:"fab fa-algolia",searchTerms:[]},{title:"fas fa-align-center",searchTerms:["middle","text"]},{title:"fas fa-align-justify",searchTerms:["text"]},{title:"fas fa-align-left",searchTerms:["text"]},{title:"fas fa-align-right",searchTerms:["text"]},{title:"fab fa-amazon",searchTerms:[]},{title:"fab fa-amazon-pay",searchTerms:[]},{title:"fas fa-ambulance",searchTerms:["vehicle","support","help"]},{title:"fas fa-american-sign-language-interpreting",searchTerms:[]},{title:"fab fa-amilia",searchTerms:[]},{title:"fas fa-anchor",searchTerms:["link"]},{title:"fab fa-android",searchTerms:["robot"]},{title:"fab fa-angellist",searchTerms:[]},{title:"fas fa-angle-double-down",searchTerms:["arrows"]},{title:"fas fa-angle-double-left",searchTerms:["laquo","quote","previous","back","arrows"]},{title:"fas fa-angle-double-right",searchTerms:["raquo","quote","next","forward","arrows"]},{title:"fas fa-angle-double-up",searchTerms:["arrows"]},{title:"fas fa-angle-down",searchTerms:["arrow"]},{title:"fas fa-angle-left",searchTerms:["previous","back","arrow"]},{title:"fas fa-angle-right",searchTerms:["next","forward","arrow"]},{title:"fas fa-angle-up",searchTerms:["arrow"]},{title:"fab fa-angrycreative",searchTerms:[]},{title:"fab fa-angular",searchTerms:[]},{title:"fab fa-app-store",searchTerms:[]},{title:"fab fa-app-store-ios",searchTerms:[]},{title:"fab fa-apper",searchTerms:[]},{title:"fab fa-apple",searchTerms:["osx","food"]},{title:"fab fa-apple-pay",searchTerms:[]},{title:"fas fa-archive",searchTerms:["box","storage","package"]},{title:"fas fa-arrow-alt-circle-down",searchTerms:["download","arrow-circle-o-down"]},{title:"far fa-arrow-alt-circle-down",searchTerms:["download","arrow-circle-o-down"]},{title:"fas fa-arrow-alt-circle-left",searchTerms:["previous","back","arrow-circle-o-left"]},{title:"far fa-arrow-alt-circle-left",searchTerms:["previous","back","arrow-circle-o-left"]},{title:"fas fa-arrow-alt-circle-right",searchTerms:["next","forward","arrow-circle-o-right"]},{title:"far fa-arrow-alt-circle-right",searchTerms:["next","forward","arrow-circle-o-right"]},{title:"fas fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"far fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"fas fa-arrow-circle-down",searchTerms:["download"]},{title:"fas fa-arrow-circle-left",searchTerms:["previous","back"]},{title:"fas fa-arrow-circle-right",searchTerms:["next","forward"]},{title:"fas fa-arrow-circle-up",searchTerms:[]},{title:"fas fa-arrow-down",searchTerms:["download"]},{title:"fas fa-arrow-left",searchTerms:["previous","back"]},{title:"fas fa-arrow-right",searchTerms:["next","forward"]},{title:"fas fa-arrow-up",searchTerms:[]},{title:"fas fa-arrows-alt",searchTerms:["expand","enlarge","fullscreen","bigger","move","reorder","resize","arrow","arrows"]},{title:"fas fa-arrows-alt-h",searchTerms:["resize","arrows-h"]},{title:"fas fa-arrows-alt-v",searchTerms:["resize","arrows-v"]},{title:"fas fa-assistive-listening-systems",searchTerms:[]},{title:"fas fa-asterisk",searchTerms:["details"]},{title:"fab fa-asymmetrik",searchTerms:[]},{title:"fas fa-at",searchTerms:["email","e-mail"]},{title:"fab fa-audible",searchTerms:[]},{title:"fas fa-audio-description",searchTerms:[]},{title:"fab fa-autoprefixer",searchTerms:[]},{title:"fab fa-avianex",searchTerms:[]},{title:"fab fa-aviato",searchTerms:[]},{title:"fab fa-aws",searchTerms:[]},{title:"fas fa-backward",searchTerms:["rewind","previous"]},{title:"fas fa-balance-scale",searchTerms:[]},{title:"fas fa-ban",searchTerms:["delete","remove","trash","hide","block","stop","abort","cancel","ban","prohibit"]},{title:"fas fa-band-aid",searchTerms:["bandage","ouch","boo boo"]},{title:"fab fa-bandcamp",searchTerms:[]},{title:"fas fa-barcode",searchTerms:["scan"]},{title:"fas fa-bars",searchTerms:["menu","drag","reorder","settings","list","ul","ol","checklist","todo","list","hamburger"]},{title:"fas fa-baseball-ball",searchTerms:[]},{title:"fas fa-basketball-ball",searchTerms:[]},{title:"fas fa-bath",searchTerms:[]},{title:"fas fa-battery-empty",searchTerms:["power","status"]},{title:"fas fa-battery-full",searchTerms:["power","status"]},{title:"fas fa-battery-half",searchTerms:["power","status"]},{title:"fas fa-battery-quarter",searchTerms:["power","status"]},{title:"fas fa-battery-three-quarters",searchTerms:["power","status"]},{title:"fas fa-bed",searchTerms:["travel"]},{title:"fas fa-beer",searchTerms:["alcohol","stein","drink","mug","bar","liquor"]},{title:"fab fa-behance",searchTerms:[]},{title:"fab fa-behance-square",searchTerms:[]},{title:"fas fa-bell",searchTerms:["alert","reminder","notification"]},{title:"far fa-bell",searchTerms:["alert","reminder","notification"]},{title:"fas fa-bell-slash",searchTerms:[]},{title:"far fa-bell-slash",searchTerms:[]},{title:"fas fa-bicycle",searchTerms:["vehicle","bike","gears"]},{title:"fab fa-bimobject",searchTerms:[]},{title:"fas fa-binoculars",searchTerms:[]},{title:"fas fa-birthday-cake",searchTerms:[]},{title:"fab fa-bitbucket",searchTerms:["git","bitbucket-square"]},{title:"fab fa-bitcoin",searchTerms:[]},{title:"fab fa-bity",searchTerms:[]},{title:"fab fa-black-tie",searchTerms:[]},{title:"fab fa-blackberry",searchTerms:[]},{title:"fas fa-blind",searchTerms:[]},{title:"fab fa-blogger",searchTerms:[]},{title:"fab fa-blogger-b",searchTerms:[]},{title:"fab fa-bluetooth",searchTerms:[]},{title:"fab fa-bluetooth-b",searchTerms:[]},{title:"fas fa-bold",searchTerms:[]},{title:"fas fa-bolt",searchTerms:["lightning","weather"]},{title:"fas fa-bomb",searchTerms:[]},{title:"fas fa-book",searchTerms:["read","documentation"]},{title:"fas fa-bookmark",searchTerms:["save"]},{title:"far fa-bookmark",searchTerms:["save"]},{title:"fas fa-bowling-ball",searchTerms:[]},{title:"fas fa-box",searchTerms:[]},{title:"fas fa-boxes",searchTerms:[]},{title:"fas fa-braille",searchTerms:[]},{title:"fas fa-briefcase",searchTerms:["work","business","office","luggage","bag"]},{title:"fab fa-btc",searchTerms:[]},{title:"fas fa-bug",searchTerms:["report","insect"]},{title:"fas fa-building",searchTerms:["work","business","apartment","office","company"]},{title:"far fa-building",searchTerms:["work","business","apartment","office","company"]},{title:"fas fa-bullhorn",searchTerms:["announcement","share","broadcast","louder","megaphone"]},{title:"fas fa-bullseye",searchTerms:["target"]},{title:"fab fa-buromobelexperte",searchTerms:[]},{title:"fas fa-bus",searchTerms:["vehicle"]},{title:"fab fa-buysellads",searchTerms:[]},{title:"fas fa-calculator",searchTerms:[]},{title:"fas fa-calendar",searchTerms:["date","time","when","event","calendar-o"]},{title:"far fa-calendar",searchTerms:["date","time","when","event","calendar-o"]},{title:"fas fa-calendar-alt",searchTerms:["date","time","when","event","calendar"]},{title:"far fa-calendar-alt",searchTerms:["date","time","when","event","calendar"]},{title:"fas fa-calendar-check",searchTerms:["ok"]},{title:"far fa-calendar-check",searchTerms:["ok"]},{title:"fas fa-calendar-minus",searchTerms:[]},{title:"far fa-calendar-minus",searchTerms:[]},{title:"fas fa-calendar-plus",searchTerms:[]},{title:"far fa-calendar-plus",searchTerms:[]},{title:"fas fa-calendar-times",searchTerms:[]},{title:"far fa-calendar-times",searchTerms:[]},{title:"fas fa-camera",searchTerms:["photo","picture","record"]},{title:"fas fa-camera-retro",searchTerms:["photo","picture","record"]},{title:"fas fa-car",searchTerms:["vehicle"]},{title:"fas fa-caret-down",searchTerms:["more","dropdown","menu","triangle down","arrow"]},{title:"fas fa-caret-left",searchTerms:["previous","back","triangle left","arrow"]},{title:"fas fa-caret-right",searchTerms:["next","forward","triangle right","arrow"]},{title:"fas fa-caret-square-down",searchTerms:["more","dropdown","menu","caret-square-o-down"]},{title:"far fa-caret-square-down",searchTerms:["more","dropdown","menu","caret-square-o-down"]},{title:"fas fa-caret-square-left",searchTerms:["previous","back","caret-square-o-left"]},{title:"far fa-caret-square-left",searchTerms:["previous","back","caret-square-o-left"]},{title:"fas fa-caret-square-right",searchTerms:["next","forward","caret-square-o-right"]},{title:"far fa-caret-square-right",searchTerms:["next","forward","caret-square-o-right"]},{title:"fas fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"far fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"fas fa-caret-up",searchTerms:["triangle up","arrow"]},{title:"fas fa-cart-arrow-down",searchTerms:["shopping"]},{title:"fas fa-cart-plus",searchTerms:["add","shopping"]},{title:"fab fa-cc-amazon-pay",searchTerms:[]},{title:"fab fa-cc-amex",searchTerms:["amex"]},{title:"fab fa-cc-apple-pay",searchTerms:[]},{title:"fab fa-cc-diners-club",searchTerms:[]},{title:"fab fa-cc-discover",searchTerms:[]},{title:"fab fa-cc-jcb",searchTerms:[]},{title:"fab fa-cc-mastercard",searchTerms:[]},{title:"fab fa-cc-paypal",searchTerms:[]},{title:"fab fa-cc-stripe",searchTerms:[]},{title:"fab fa-cc-visa",searchTerms:[]},{title:"fab fa-centercode",searchTerms:[]},{title:"fas fa-certificate",searchTerms:["badge","star"]},{title:"fas fa-chart-area",searchTerms:["graph","analytics","area-chart"]},{title:"fas fa-chart-bar",searchTerms:["graph","analytics","bar-chart"]},{title:"far fa-chart-bar",searchTerms:["graph","analytics","bar-chart"]},{title:"fas fa-chart-line",searchTerms:["graph","analytics","line-chart","dashboard"]},{title:"fas fa-chart-pie",searchTerms:["graph","analytics","pie-chart"]},{title:"fas fa-check",searchTerms:["checkmark","done","todo","agree","accept","confirm","tick","ok","select"]},{title:"fas fa-check-circle",searchTerms:["todo","done","agree","accept","confirm","ok","select"]},{title:"far fa-check-circle",searchTerms:["todo","done","agree","accept","confirm","ok","select"]},{title:"fas fa-check-square",searchTerms:["checkmark","done","todo","agree","accept","confirm","ok","select"]},{title:"far fa-check-square",searchTerms:["checkmark","done","todo","agree","accept","confirm","ok","select"]},{title:"fas fa-chess",searchTerms:[]},{title:"fas fa-chess-bishop",searchTerms:[]},{title:"fas fa-chess-board",searchTerms:[]},{title:"fas fa-chess-king",searchTerms:[]},{title:"fas fa-chess-knight",searchTerms:[]},{title:"fas fa-chess-pawn",searchTerms:[]},{title:"fas fa-chess-queen",searchTerms:[]},{title:"fas fa-chess-rook",searchTerms:[]},{title:"fas fa-chevron-circle-down",searchTerms:["more","dropdown","menu","arrow"]},{title:"fas fa-chevron-circle-left",searchTerms:["previous","back","arrow"]},{title:"fas fa-chevron-circle-right",searchTerms:["next","forward","arrow"]},{title:"fas fa-chevron-circle-up",searchTerms:["arrow"]},{title:"fas fa-chevron-down",searchTerms:[]},{title:"fas fa-chevron-left",searchTerms:["bracket","previous","back"]},{title:"fas fa-chevron-right",searchTerms:["bracket","next","forward"]},{title:"fas fa-chevron-up",searchTerms:[]},{title:"fas fa-child",searchTerms:[]},{title:"fab fa-chrome",searchTerms:["browser"]},{title:"fas fa-circle",searchTerms:["dot","notification","circle-thin"]},{title:"far fa-circle",searchTerms:["dot","notification","circle-thin"]},{title:"fas fa-circle-notch",searchTerms:["circle-o-notch"]},{title:"fas fa-clipboard",searchTerms:["paste"]},{title:"far fa-clipboard",searchTerms:["paste"]},{title:"fas fa-clipboard-check",searchTerms:[]},{title:"fas fa-clipboard-list",searchTerms:[]},{title:"fas fa-clock",searchTerms:["watch","timer","late","timestamp","date"]},{title:"far fa-clock",searchTerms:["watch","timer","late","timestamp","date"]},{title:"fas fa-clone",searchTerms:["copy"]},{title:"far fa-clone",searchTerms:["copy"]},{title:"fas fa-closed-captioning",searchTerms:["cc"]},{title:"far fa-closed-captioning",searchTerms:["cc"]},{title:"fas fa-cloud",searchTerms:["save"]},{title:"fas fa-cloud-download-alt",searchTerms:["cloud-download"]},{title:"fas fa-cloud-upload-alt",searchTerms:["cloud-upload"]},{title:"fab fa-cloudscale",searchTerms:[]},{title:"fab fa-cloudsmith",searchTerms:[]},{title:"fab fa-cloudversify",searchTerms:[]},{title:"fas fa-code",searchTerms:["html","brackets"]},{title:"fas fa-code-branch",searchTerms:["git","fork","vcs","svn","github","rebase","version","branch","code-fork"]},{title:"fab fa-codepen",searchTerms:[]},{title:"fab fa-codiepie",searchTerms:[]},{title:"fas fa-coffee",searchTerms:["morning","mug","breakfast","tea","drink","cafe"]},{title:"fas fa-cog",searchTerms:["settings"]},{title:"fas fa-cogs",searchTerms:["settings","gears"]},{title:"fas fa-columns",searchTerms:["split","panes","dashboard"]},{title:"fas fa-comment",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"far fa-comment",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"fas fa-comment-alt",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation","commenting","commenting"]},{title:"far fa-comment-alt",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation","commenting","commenting"]},{title:"fas fa-comments",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"far fa-comments",searchTerms:["speech","notification","note","chat","bubble","feedback","message","texting","sms","conversation"]},{title:"fas fa-compass",searchTerms:["safari","directory","menu","location"]},{title:"far fa-compass",searchTerms:["safari","directory","menu","location"]},{title:"fas fa-compress",searchTerms:["collapse","combine","contract","merge","smaller"]},{title:"fab fa-connectdevelop",searchTerms:[]},{title:"fab fa-contao",searchTerms:[]},{title:"fas fa-copy",searchTerms:["duplicate","clone","file","files-o"]},{title:"far fa-copy",searchTerms:["duplicate","clone","file","files-o"]},{title:"fas fa-copyright",searchTerms:[]},{title:"far fa-copyright",searchTerms:[]},{title:"fab fa-cpanel",searchTerms:[]},{title:"fab fa-creative-commons",searchTerms:[]},{title:"fas fa-credit-card",searchTerms:["money","buy","debit","checkout","purchase","payment","credit-card-alt"]},{title:"far fa-credit-card",searchTerms:["money","buy","debit","checkout","purchase","payment","credit-card-alt"]},{title:"fas fa-crop",searchTerms:["design"]},{title:"fas fa-crosshairs",searchTerms:["picker","gpd"]},{title:"fab fa-css3",searchTerms:["code"]},{title:"fab fa-css3-alt",searchTerms:[]},{title:"fas fa-cube",searchTerms:["package"]},{title:"fas fa-cubes",searchTerms:["packages"]},{title:"fas fa-cut",searchTerms:["scissors","scissors"]},{title:"fab fa-cuttlefish",searchTerms:[]},{title:"fab fa-d-and-d",searchTerms:[]},{title:"fab fa-dashcube",searchTerms:[]},{title:"fas fa-database",searchTerms:[]},{title:"fas fa-deaf",searchTerms:[]},{title:"fab fa-delicious",searchTerms:[]},{title:"fab fa-deploydog",searchTerms:[]},{title:"fab fa-deskpro",searchTerms:[]},{title:"fas fa-desktop",searchTerms:["monitor","screen","desktop","computer","demo","device","pc"]},{title:"fab fa-deviantart",searchTerms:[]},{title:"fab fa-digg",searchTerms:[]},{title:"fab fa-digital-ocean",searchTerms:[]},{title:"fab fa-discord",searchTerms:[]},{title:"fab fa-discourse",searchTerms:[]},{title:"fas fa-dna",searchTerms:["double helix","helix"]},{title:"fab fa-dochub",searchTerms:[]},{title:"fab fa-docker",searchTerms:[]},{title:"fas fa-dollar-sign",searchTerms:["usd","price"]},{title:"fas fa-dolly",searchTerms:[]},{title:"fas fa-dolly-flatbed",searchTerms:[]},{title:"fas fa-dot-circle",searchTerms:["target","bullseye","notification"]},{title:"far fa-dot-circle",searchTerms:["target","bullseye","notification"]},{title:"fas fa-download",searchTerms:["import"]},{title:"fab fa-draft2digital",searchTerms:[]},{title:"fab fa-dribbble",searchTerms:[]},{title:"fab fa-dribbble-square",searchTerms:[]},{title:"fab fa-dropbox",searchTerms:[]},{title:"fab fa-drupal",searchTerms:[]},{title:"fab fa-dyalog",searchTerms:[]},{title:"fab fa-earlybirds",searchTerms:[]},{title:"fab fa-edge",searchTerms:["browser","ie"]},{title:"fas fa-edit",searchTerms:["write","edit","update","pencil","pen"]},{title:"far fa-edit",searchTerms:["write","edit","update","pencil","pen"]},{title:"fas fa-eject",searchTerms:[]},{title:"fab fa-elementor",searchTerms:[]},{title:"fas fa-ellipsis-h",searchTerms:["dots"]},{title:"fas fa-ellipsis-v",searchTerms:["dots"]},{title:"fab fa-ember",searchTerms:[]},{title:"fab fa-empire",searchTerms:[]},{title:"fas fa-envelope",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"far fa-envelope",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fas fa-envelope-open",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"far fa-envelope-open",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fas fa-envelope-square",searchTerms:["email","e-mail","letter","support","mail","message","notification"]},{title:"fab fa-envira",searchTerms:["leaf"]},{title:"fas fa-eraser",searchTerms:["remove","delete"]},{title:"fab fa-erlang",searchTerms:[]},{title:"fab fa-ethereum",searchTerms:[]},{title:"fab fa-etsy",searchTerms:[]},{title:"fas fa-euro-sign",searchTerms:["eur","eur"]},{title:"fas fa-exchange-alt",searchTerms:["transfer","arrows","arrow","exchange","swap"]},{title:"fas fa-exclamation",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-exclamation-circle",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-exclamation-triangle",searchTerms:["warning","error","problem","notification","notify","alert","danger"]},{title:"fas fa-expand",searchTerms:["enlarge","bigger","resize"]},{title:"fas fa-expand-arrows-alt",searchTerms:["enlarge","bigger","resize","move","arrows-alt"]},{title:"fab fa-expeditedssl",searchTerms:[]},{title:"fas fa-external-link-alt",searchTerms:["open","new","external-link"]},{title:"fas fa-external-link-square-alt",searchTerms:["open","new","external-link-square"]},{title:"fas fa-eye",searchTerms:["show","visible","views"]},{title:"fas fa-eye-dropper",searchTerms:["eyedropper"]},{title:"fas fa-eye-slash",searchTerms:["toggle","show","hide","visible","visiblity","views"]},{title:"far fa-eye-slash",searchTerms:["toggle","show","hide","visible","visiblity","views"]},{title:"fab fa-facebook",searchTerms:["social network","facebook-official"]},{title:"fab fa-facebook-f",searchTerms:["facebook"]},{title:"fab fa-facebook-messenger",searchTerms:[]},{title:"fab fa-facebook-square",searchTerms:["social network"]},{title:"fas fa-fast-backward",searchTerms:["rewind","previous","beginning","start","first"]},{title:"fas fa-fast-forward",searchTerms:["next","end","last"]},{title:"fas fa-fax",searchTerms:[]},{title:"fas fa-female",searchTerms:["woman","human","user","person","profile"]},{title:"fas fa-fighter-jet",searchTerms:["fly","plane","airplane","quick","fast","travel"]},{title:"fas fa-file",searchTerms:["new","page","pdf","document"]},{title:"far fa-file",searchTerms:["new","page","pdf","document"]},{title:"fas fa-file-alt",searchTerms:["new","page","pdf","document","file-text"]},{title:"far fa-file-alt",searchTerms:["new","page","pdf","document","file-text"]},{title:"fas fa-file-archive",searchTerms:[]},{title:"far fa-file-archive",searchTerms:[]},{title:"fas fa-file-audio",searchTerms:[]},{title:"far fa-file-audio",searchTerms:[]},{title:"fas fa-file-code",searchTerms:[]},{title:"far fa-file-code",searchTerms:[]},{title:"fas fa-file-excel",searchTerms:[]},{title:"far fa-file-excel",searchTerms:[]},{title:"fas fa-file-image",searchTerms:[]},{title:"far fa-file-image",searchTerms:[]},{title:"fas fa-file-pdf",searchTerms:[]},{title:"far fa-file-pdf",searchTerms:[]},{title:"fas fa-file-powerpoint",searchTerms:[]},{title:"far fa-file-powerpoint",searchTerms:[]},{title:"fas fa-file-video",searchTerms:[]},{title:"far fa-file-video",searchTerms:[]},{title:"fas fa-file-word",searchTerms:[]},{title:"far fa-file-word",searchTerms:[]},{title:"fas fa-film",searchTerms:["movie"]},{title:"fas fa-filter",searchTerms:["funnel","options"]},{title:"fas fa-fire",searchTerms:["flame","hot","popular"]},{title:"fas fa-fire-extinguisher",searchTerms:[]},{title:"fab fa-firefox",searchTerms:["browser"]},{title:"fas fa-first-aid",searchTerms:[]},{title:"fab fa-first-order",searchTerms:[]},{title:"fab fa-firstdraft",searchTerms:[]},{title:"fas fa-flag",searchTerms:["report","notification","notify"]},{title:"far fa-flag",searchTerms:["report","notification","notify"]},{title:"fas fa-flag-checkered",searchTerms:["report","notification","notify"]},{title:"fas fa-flask",searchTerms:["science","beaker","experimental","labs"]},{title:"fab fa-flickr",searchTerms:[]},{title:"fab fa-flipboard",searchTerms:[]},{title:"fab fa-fly",searchTerms:[]},{title:"fas fa-folder",searchTerms:[]},{title:"far fa-folder",searchTerms:[]},{title:"fas fa-folder-open",searchTerms:[]},{title:"far fa-folder-open",searchTerms:[]},{title:"fas fa-font",searchTerms:["text"]},{title:"fab fa-font-awesome",searchTerms:["meanpath"]},{title:"fab fa-font-awesome-alt",searchTerms:[]},{title:"fab fa-font-awesome-flag",searchTerms:[]},{title:"fab fa-fonticons",searchTerms:[]},{title:"fab fa-fonticons-fi",searchTerms:[]},{title:"fas fa-football-ball",searchTerms:[]},{title:"fab fa-fort-awesome",searchTerms:["castle"]},{title:"fab fa-fort-awesome-alt",searchTerms:["castle"]},{title:"fab fa-forumbee",searchTerms:[]},{title:"fas fa-forward",searchTerms:["forward","next"]},{title:"fab fa-foursquare",searchTerms:[]},{title:"fab fa-free-code-camp",searchTerms:[]},{title:"fab fa-freebsd",searchTerms:[]},{title:"fas fa-frown",searchTerms:["face","emoticon","sad","disapprove","rating"]},{title:"far fa-frown",searchTerms:["face","emoticon","sad","disapprove","rating"]},{title:"fas fa-futbol",searchTerms:[]},{title:"far fa-futbol",searchTerms:[]},{title:"fas fa-gamepad",searchTerms:["controller"]},{title:"fas fa-gavel",searchTerms:["judge","lawyer","opinion","hammer"]},{title:"fas fa-gem",searchTerms:["diamond"]},{title:"far fa-gem",searchTerms:["diamond"]},{title:"fas fa-genderless",searchTerms:[]},{title:"fab fa-get-pocket",searchTerms:[]},{title:"fab fa-gg",searchTerms:[]},{title:"fab fa-gg-circle",searchTerms:[]},{title:"fas fa-gift",searchTerms:["present"]},{title:"fab fa-git",searchTerms:[]},{title:"fab fa-git-square",searchTerms:[]},{title:"fab fa-github",searchTerms:["octocat"]},{title:"fab fa-github-alt",searchTerms:["octocat"]},{title:"fab fa-github-square",searchTerms:["octocat"]},{title:"fab fa-gitkraken",searchTerms:[]},{title:"fab fa-gitlab",searchTerms:["Axosoft"]},{title:"fab fa-gitter",searchTerms:[]},{title:"fas fa-glass-martini",searchTerms:["martini","drink","bar","alcohol","liquor","glass"]},{title:"fab fa-glide",searchTerms:[]},{title:"fab fa-glide-g",searchTerms:[]},{title:"fas fa-globe",searchTerms:["world","planet","map","place","travel","earth","global","translate","all","language","localize","location","coordinates","country","gps"]},{title:"fab fa-gofore",searchTerms:[]},{title:"fas fa-golf-ball",searchTerms:[]},{title:"fab fa-goodreads",searchTerms:[]},{title:"fab fa-goodreads-g",searchTerms:[]},{title:"fab fa-google",searchTerms:[]},{title:"fab fa-google-drive",searchTerms:[]},{title:"fab fa-google-play",searchTerms:[]},{title:"fab fa-google-plus",searchTerms:["google-plus-circle","google-plus-official"]},{title:"fab fa-google-plus-g",searchTerms:["social network","google-plus"]},{title:"fab fa-google-plus-square",searchTerms:["social network"]},{title:"fab fa-google-wallet",searchTerms:[]},{title:"fas fa-graduation-cap",searchTerms:["learning","school","student"]},{title:"fab fa-gratipay",searchTerms:["heart","like","favorite","love"]},{title:"fab fa-grav",searchTerms:[]},{title:"fab fa-gripfire",searchTerms:[]},{title:"fab fa-grunt",searchTerms:[]},{title:"fab fa-gulp",searchTerms:[]},{title:"fas fa-h-square",searchTerms:["hospital","hotel"]},{title:"fab fa-hacker-news",searchTerms:[]},{title:"fab fa-hacker-news-square",searchTerms:[]},{title:"fas fa-hand-lizard",searchTerms:[]},{title:"far fa-hand-lizard",searchTerms:[]},{title:"fas fa-hand-paper",searchTerms:["stop"]},{title:"far fa-hand-paper",searchTerms:["stop"]},{title:"fas fa-hand-peace",searchTerms:[]},{title:"far fa-hand-peace",searchTerms:[]},{title:"fas fa-hand-point-down",searchTerms:["point","finger","hand-o-down"]},{title:"far fa-hand-point-down",searchTerms:["point","finger","hand-o-down"]},{title:"fas fa-hand-point-left",searchTerms:["point","left","previous","back","finger","hand-o-left"]},{title:"far fa-hand-point-left",searchTerms:["point","left","previous","back","finger","hand-o-left"]},{title:"fas fa-hand-point-right",searchTerms:["point","right","next","forward","finger","hand-o-right"]},{title:"far fa-hand-point-right",searchTerms:["point","right","next","forward","finger","hand-o-right"]},{title:"fas fa-hand-point-up",searchTerms:["point","finger","hand-o-up"]},{title:"far fa-hand-point-up",searchTerms:["point","finger","hand-o-up"]},{title:"fas fa-hand-pointer",searchTerms:["select"]},{title:"far fa-hand-pointer",searchTerms:["select"]},{title:"fas fa-hand-rock",searchTerms:[]},{title:"far fa-hand-rock",searchTerms:[]},{title:"fas fa-hand-scissors",searchTerms:[]},{title:"far fa-hand-scissors",searchTerms:[]},{title:"fas fa-hand-spock",searchTerms:[]},{title:"far fa-hand-spock",searchTerms:[]},{title:"fas fa-handshake",searchTerms:[]},{title:"far fa-handshake",searchTerms:[]},{title:"fas fa-hashtag",searchTerms:[]},{title:"fas fa-hdd",searchTerms:["harddrive","hard drive","storage","save"]},{title:"far fa-hdd",searchTerms:["harddrive","hard drive","storage","save"]},{title:"fas fa-heading",searchTerms:["header","header"]},{title:"fas fa-headphones",searchTerms:["sound","listen","music","audio"]},{title:"fas fa-heart",searchTerms:["love","like","favorite"]},{title:"far fa-heart",searchTerms:["love","like","favorite"]},{title:"fas fa-heartbeat",searchTerms:["ekg","vital signs"]},{title:"fab fa-hips",searchTerms:[]},{title:"fab fa-hire-a-helper",searchTerms:[]},{title:"fas fa-history",searchTerms:[]},{title:"fas fa-hockey-puck",searchTerms:[]},{title:"fas fa-home",searchTerms:["main","house"]},{title:"fab fa-hooli",searchTerms:[]},{title:"fas fa-hospital",searchTerms:["building","medical center","emergency room"]},{title:"far fa-hospital",searchTerms:["building","medical center","emergency room"]},{title:"fas fa-hospital-symbol",searchTerms:[]},{title:"fab fa-hotjar",searchTerms:[]},{title:"fas fa-hourglass",searchTerms:[]},{title:"far fa-hourglass",searchTerms:[]},{title:"fas fa-hourglass-end",searchTerms:[]},{title:"fas fa-hourglass-half",searchTerms:[]},{title:"fas fa-hourglass-start",searchTerms:[]},{title:"fab fa-houzz",searchTerms:[]},{title:"fab fa-html5",searchTerms:[]},{title:"fab fa-hubspot",searchTerms:[]},{title:"fas fa-i-cursor",searchTerms:[]},{title:"fas fa-id-badge",searchTerms:[]},{title:"far fa-id-badge",searchTerms:[]},{title:"fas fa-id-card",searchTerms:[]},{title:"far fa-id-card",searchTerms:[]},{title:"fas fa-image",searchTerms:["photo","album","picture","picture"]},{title:"far fa-image",searchTerms:["photo","album","picture","picture"]},{title:"fas fa-images",searchTerms:["photo","album","picture"]},{title:"far fa-images",searchTerms:["photo","album","picture"]},{title:"fab fa-imdb",searchTerms:[]},{title:"fas fa-inbox",searchTerms:[]},{title:"fas fa-indent",searchTerms:[]},{title:"fas fa-industry",searchTerms:["factory"]},{title:"fas fa-info",searchTerms:["help","information","more","details"]},{title:"fas fa-info-circle",searchTerms:["help","information","more","details"]},{title:"fab fa-instagram",searchTerms:[]},{title:"fab fa-internet-explorer",searchTerms:["browser","ie"]},{title:"fab fa-ioxhost",searchTerms:[]},{title:"fas fa-italic",searchTerms:["italics"]},{title:"fab fa-itunes",searchTerms:[]},{title:"fab fa-itunes-note",searchTerms:[]},{title:"fab fa-jenkins",searchTerms:[]},{title:"fab fa-joget",searchTerms:[]},{title:"fab fa-joomla",searchTerms:[]},{title:"fab fa-js",searchTerms:[]},{title:"fab fa-js-square",searchTerms:[]},{title:"fab fa-jsfiddle",searchTerms:[]},{title:"fas fa-key",searchTerms:["unlock","password"]},{title:"fas fa-keyboard",searchTerms:["type","input"]},{title:"far fa-keyboard",searchTerms:["type","input"]},{title:"fab fa-keycdn",searchTerms:[]},{title:"fab fa-kickstarter",searchTerms:[]},{title:"fab fa-kickstarter-k",searchTerms:[]},{title:"fab fa-korvue",searchTerms:[]},{title:"fas fa-language",searchTerms:[]},{title:"fas fa-laptop",searchTerms:["demo","computer","device","pc"]},{title:"fab fa-laravel",searchTerms:[]},{title:"fab fa-lastfm",searchTerms:[]},{title:"fab fa-lastfm-square",searchTerms:[]},{title:"fas fa-leaf",searchTerms:["eco","nature","plant"]},{title:"fab fa-leanpub",searchTerms:[]},{title:"fas fa-lemon",searchTerms:["food"]},{title:"far fa-lemon",searchTerms:["food"]},{title:"fab fa-less",searchTerms:[]},{title:"fas fa-level-down-alt",searchTerms:["level-down"]},{title:"fas fa-level-up-alt",searchTerms:["level-up"]},{title:"fas fa-life-ring",searchTerms:["support"]},{title:"far fa-life-ring",searchTerms:["support"]},{title:"fas fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"far fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"fab fa-line",searchTerms:[]},{title:"fas fa-link",searchTerms:["chain"]},{title:"fab fa-linkedin",searchTerms:["linkedin-square"]},{title:"fab fa-linkedin-in",searchTerms:["linkedin"]},{title:"fab fa-linode",searchTerms:[]},{title:"fab fa-linux",searchTerms:["tux"]},{title:"fas fa-lira-sign",searchTerms:["try","turkish","try"]},{title:"fas fa-list",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fas fa-list-alt",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"far fa-list-alt",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fas fa-list-ol",searchTerms:["ul","ol","checklist","list","todo","list","numbers"]},{title:"fas fa-list-ul",searchTerms:["ul","ol","checklist","todo","list"]},{title:"fas fa-location-arrow",searchTerms:["map","coordinates","location","address","place","where","gps"]},{title:"fas fa-lock",searchTerms:["protect","admin","security"]},{title:"fas fa-lock-open",searchTerms:["protect","admin","password","lock","open"]},{title:"fas fa-long-arrow-alt-down",searchTerms:["long-arrow-down"]},{title:"fas fa-long-arrow-alt-left",searchTerms:["previous","back","long-arrow-left"]},{title:"fas fa-long-arrow-alt-right",searchTerms:["long-arrow-right"]},{title:"fas fa-long-arrow-alt-up",searchTerms:["long-arrow-up"]},{title:"fas fa-low-vision",searchTerms:[]},{title:"fab fa-lyft",searchTerms:[]},{title:"fab fa-magento",searchTerms:[]},{title:"fas fa-magic",searchTerms:["wizard","automatic","autocomplete"]},{title:"fas fa-magnet",searchTerms:[]},{title:"fas fa-male",searchTerms:["man","human","user","person","profile"]},{title:"fas fa-map",searchTerms:[]},{title:"far fa-map",searchTerms:[]},{title:"fas fa-map-marker",searchTerms:["map","pin","location","coordinates","localize","address","travel","where","place","gps"]},{title:"fas fa-map-marker-alt",searchTerms:["map-marker","gps"]},{title:"fas fa-map-pin",searchTerms:[]},{title:"fas fa-map-signs",searchTerms:[]},{title:"fas fa-mars",searchTerms:["male"]},{title:"fas fa-mars-double",searchTerms:[]},{title:"fas fa-mars-stroke",searchTerms:[]},{title:"fas fa-mars-stroke-h",searchTerms:[]},{title:"fas fa-mars-stroke-v",searchTerms:[]},{title:"fab fa-maxcdn",searchTerms:[]},{title:"fab fa-medapps",searchTerms:[]},{title:"fab fa-medium",searchTerms:[]},{title:"fab fa-medium-m",searchTerms:[]},{title:"fas fa-medkit",searchTerms:["first aid","firstaid","help","support","health"]},{title:"fab fa-medrt",searchTerms:[]},{title:"fab fa-meetup",searchTerms:[]},{title:"fas fa-meh",searchTerms:["face","emoticon","rating","neutral"]},{title:"far fa-meh",searchTerms:["face","emoticon","rating","neutral"]},{title:"fas fa-mercury",searchTerms:["transgender"]},{title:"fas fa-microchip",searchTerms:[]},{title:"fas fa-microphone",searchTerms:["record","voice","sound"]},{title:"fas fa-microphone-slash",searchTerms:["record","voice","sound","mute"]},{title:"fab fa-microsoft",searchTerms:[]},{title:"fas fa-minus",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"fas fa-minus-circle",searchTerms:["delete","remove","trash","hide"]},{title:"fas fa-minus-square",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"far fa-minus-square",searchTerms:["hide","minify","delete","remove","trash","hide","collapse"]},{title:"fab fa-mix",searchTerms:[]},{title:"fab fa-mixcloud",searchTerms:[]},{title:"fab fa-mizuni",searchTerms:[]},{title:"fas fa-mobile",searchTerms:["cell phone","cellphone","text","call","iphone","number","telephone"]},{title:"fas fa-mobile-alt",searchTerms:["mobile"]},{title:"fab fa-modx",searchTerms:[]},{title:"fab fa-monero",searchTerms:[]},{title:"fas fa-money-bill-alt",searchTerms:["cash","money","buy","checkout","purchase","payment","price"]},{title:"far fa-money-bill-alt",searchTerms:["cash","money","buy","checkout","purchase","payment","price"]},{title:"fas fa-moon",searchTerms:["night","darker","contrast"]},{title:"far fa-moon",searchTerms:["night","darker","contrast"]},{title:"fas fa-motorcycle",searchTerms:["vehicle","bike"]},{title:"fas fa-mouse-pointer",searchTerms:["select"]},{title:"fas fa-music",searchTerms:["note","sound"]},{title:"fab fa-napster",searchTerms:[]},{title:"fas fa-neuter",searchTerms:[]},{title:"fas fa-newspaper",searchTerms:["press","article"]},{title:"far fa-newspaper",searchTerms:["press","article"]},{title:"fab fa-nintendo-switch",searchTerms:[]},{title:"fab fa-node",searchTerms:[]},{title:"fab fa-node-js",searchTerms:[]},{title:"fab fa-npm",searchTerms:[]},{title:"fab fa-ns8",searchTerms:[]},{title:"fab fa-nutritionix",searchTerms:[]},{title:"fas fa-object-group",searchTerms:["design"]},{title:"far fa-object-group",searchTerms:["design"]},{title:"fas fa-object-ungroup",searchTerms:["design"]},{title:"far fa-object-ungroup",searchTerms:["design"]},{title:"fab fa-odnoklassniki",searchTerms:[]},{title:"fab fa-odnoklassniki-square",searchTerms:[]},{title:"fab fa-opencart",searchTerms:[]},{title:"fab fa-openid",searchTerms:[]},{title:"fab fa-opera",searchTerms:[]},{title:"fab fa-optin-monster",searchTerms:[]},{title:"fab fa-osi",searchTerms:[]},{title:"fas fa-outdent",searchTerms:[]},{title:"fab fa-page4",searchTerms:[]},{title:"fab fa-pagelines",searchTerms:["leaf","leaves","tree","plant","eco","nature"]},{title:"fas fa-paint-brush",searchTerms:[]},{title:"fab fa-palfed",searchTerms:[]},{title:"fas fa-pallet",searchTerms:[]},{title:"fas fa-paper-plane",searchTerms:[]},{title:"far fa-paper-plane",searchTerms:[]},{title:"fas fa-paperclip",searchTerms:["attachment"]},{title:"fas fa-paragraph",searchTerms:[]},{title:"fas fa-paste",searchTerms:["copy","clipboard"]},{title:"fab fa-patreon",searchTerms:[]},{title:"fas fa-pause",searchTerms:["wait"]},{title:"fas fa-pause-circle",searchTerms:[]},{title:"far fa-pause-circle",searchTerms:[]},{title:"fas fa-paw",searchTerms:["pet"]},{title:"fab fa-paypal",searchTerms:[]},{title:"fas fa-pen-square",searchTerms:["write","edit","update","pencil-square"]},{title:"fas fa-pencil-alt",searchTerms:["write","edit","update","pencil","design"]},{title:"fas fa-percent",searchTerms:[]},{title:"fab fa-periscope",searchTerms:[]},{title:"fab fa-phabricator",searchTerms:[]},{title:"fab fa-phoenix-framework",searchTerms:[]},{title:"fas fa-phone",searchTerms:["call","voice","number","support","earphone","telephone"]},{title:"fas fa-phone-square",searchTerms:["call","voice","number","support","telephone"]},{title:"fas fa-phone-volume",searchTerms:["telephone","volume-control-phone"]},{title:"fab fa-php",searchTerms:[]},{title:"fab fa-pied-piper",searchTerms:[]},{title:"fab fa-pied-piper-alt",searchTerms:[]},{title:"fab fa-pied-piper-pp",searchTerms:[]},{title:"fas fa-pills",searchTerms:["medicine","drugs"]},{title:"fab fa-pinterest",searchTerms:[]},{title:"fab fa-pinterest-p",searchTerms:[]},{title:"fab fa-pinterest-square",searchTerms:[]},{title:"fas fa-plane",searchTerms:["travel","trip","location","destination","airplane","fly","mode"]},{title:"fas fa-play",searchTerms:["start","playing","music","sound"]},{title:"fas fa-play-circle",searchTerms:["start","playing"]},{title:"far fa-play-circle",searchTerms:["start","playing"]},{title:"fab fa-playstation",searchTerms:[]},{title:"fas fa-plug",searchTerms:["power","connect"]},{title:"fas fa-plus",searchTerms:["add","new","create","expand"]},{title:"fas fa-plus-circle",searchTerms:["add","new","create","expand"]},{title:"fas fa-plus-square",searchTerms:["add","new","create","expand"]},{title:"far fa-plus-square",searchTerms:["add","new","create","expand"]},{title:"fas fa-podcast",searchTerms:[]},{title:"fas fa-pound-sign",searchTerms:["gbp","gbp"]},{title:"fas fa-power-off",searchTerms:["on"]},{title:"fas fa-print",searchTerms:[]},{title:"fab fa-product-hunt",searchTerms:[]},{title:"fab fa-pushed",searchTerms:[]},{title:"fas fa-puzzle-piece",searchTerms:["addon","add-on","section"]},{title:"fab fa-python",searchTerms:[]},{title:"fab fa-qq",searchTerms:[]},{title:"fas fa-qrcode",searchTerms:["scan"]},{title:"fas fa-question",searchTerms:["help","information","unknown","support"]},{title:"fas fa-question-circle",searchTerms:["help","information","unknown","support"]},{title:"far fa-question-circle",searchTerms:["help","information","unknown","support"]},{title:"fas fa-quidditch",searchTerms:[]},{title:"fab fa-quinscape",searchTerms:[]},{title:"fab fa-quora",searchTerms:[]},{title:"fas fa-quote-left",searchTerms:[]},{title:"fas fa-quote-right",searchTerms:[]},{title:"fas fa-random",searchTerms:["sort","shuffle"]},{title:"fab fa-ravelry",searchTerms:[]},{title:"fab fa-react",searchTerms:[]},{title:"fab fa-rebel",searchTerms:[]},{title:"fas fa-recycle",searchTerms:[]},{title:"fab fa-red-river",searchTerms:[]},{title:"fab fa-reddit",searchTerms:[]},{title:"fab fa-reddit-alien",searchTerms:[]},{title:"fab fa-reddit-square",searchTerms:[]},{title:"fas fa-redo",searchTerms:["forward","repeat","repeat"]},{title:"fas fa-redo-alt",searchTerms:["forward","repeat"]},{title:"fas fa-registered",searchTerms:[]},{title:"far fa-registered",searchTerms:[]},{title:"fab fa-rendact",searchTerms:[]},{title:"fab fa-renren",searchTerms:[]},{title:"fas fa-reply",searchTerms:[]},{title:"fas fa-reply-all",searchTerms:[]},{title:"fab fa-replyd",searchTerms:[]},{title:"fab fa-resolving",searchTerms:[]},{title:"fas fa-retweet",searchTerms:["refresh","reload","share","swap"]},{title:"fas fa-road",searchTerms:["street"]},{title:"fas fa-rocket",searchTerms:["app"]},{title:"fab fa-rocketchat",searchTerms:[]},{title:"fab fa-rockrms",searchTerms:[]},{title:"fas fa-rss",searchTerms:["blog"]},{title:"fas fa-rss-square",searchTerms:["feed","blog"]},{title:"fas fa-ruble-sign",searchTerms:["rub","rub"]},{title:"fas fa-rupee-sign",searchTerms:["indian","inr"]},{title:"fab fa-safari",searchTerms:["browser"]},{title:"fab fa-sass",searchTerms:[]},{title:"fas fa-save",searchTerms:["floppy","floppy-o"]},{title:"far fa-save",searchTerms:["floppy","floppy-o"]},{title:"fab fa-schlix",searchTerms:[]},{title:"fab fa-scribd",searchTerms:[]},{title:"fas fa-search",searchTerms:["magnify","zoom","enlarge","bigger"]},{title:"fas fa-search-minus",searchTerms:["magnify","minify","zoom","smaller"]},{title:"fas fa-search-plus",searchTerms:["magnify","zoom","enlarge","bigger"]},{title:"fab fa-searchengin",searchTerms:[]},{title:"fab fa-sellcast",searchTerms:["eercast"]},{title:"fab fa-sellsy",searchTerms:[]},{title:"fas fa-server",searchTerms:[]},{title:"fab fa-servicestack",searchTerms:[]},{title:"fas fa-share",searchTerms:[]},{title:"fas fa-share-alt",searchTerms:[]},{title:"fas fa-share-alt-square",searchTerms:[]},{title:"fas fa-share-square",searchTerms:["social","send"]},{title:"far fa-share-square",searchTerms:["social","send"]},{title:"fas fa-shekel-sign",searchTerms:["ils","ils"]},{title:"fas fa-shield-alt",searchTerms:["shield"]},{title:"fas fa-ship",searchTerms:["boat","sea"]},{title:"fas fa-shipping-fast",searchTerms:[]},{title:"fab fa-shirtsinbulk",searchTerms:[]},{title:"fas fa-shopping-bag",searchTerms:[]},{title:"fas fa-shopping-basket",searchTerms:[]},{title:"fas fa-shopping-cart",searchTerms:["checkout","buy","purchase","payment"]},{title:"fas fa-shower",searchTerms:[]},{title:"fas fa-sign-in-alt",searchTerms:["enter","join","log in","login","sign up","sign in","signin","signup","arrow","sign-in"]},{title:"fas fa-sign-language",searchTerms:[]},{title:"fas fa-sign-out-alt",searchTerms:["log out","logout","leave","exit","arrow","sign-out"]},{title:"fas fa-signal",searchTerms:["graph","bars","status"]},{title:"fab fa-simplybuilt",searchTerms:[]},{title:"fab fa-sistrix",searchTerms:[]},{title:"fas fa-sitemap",searchTerms:["directory","hierarchy","organization"]},{title:"fab fa-skyatlas",searchTerms:[]},{title:"fab fa-skype",searchTerms:[]},{title:"fab fa-slack",searchTerms:["hashtag","anchor","hash"]},{title:"fab fa-slack-hash",searchTerms:["hashtag","anchor","hash"]},{title:"fas fa-sliders-h",searchTerms:["settings","sliders"]},{title:"fab fa-slideshare",searchTerms:[]},{title:"fas fa-smile",searchTerms:["face","emoticon","happy","approve","satisfied","rating"]},{title:"far fa-smile",searchTerms:["face","emoticon","happy","approve","satisfied","rating"]},{title:"fab fa-snapchat",searchTerms:[]},{title:"fab fa-snapchat-ghost",searchTerms:[]},{title:"fab fa-snapchat-square",searchTerms:[]},{title:"fas fa-snowflake",searchTerms:[]},{title:"far fa-snowflake",searchTerms:[]},{title:"fas fa-sort",searchTerms:["order"]},{title:"fas fa-sort-alpha-down",searchTerms:["sort-alpha-asc"]},{title:"fas fa-sort-alpha-up",searchTerms:["sort-alpha-desc"]},{title:"fas fa-sort-amount-down",searchTerms:["sort-amount-asc"]},{title:"fas fa-sort-amount-up",searchTerms:["sort-amount-desc"]},{title:"fas fa-sort-down",searchTerms:["arrow","descending","sort-desc"]},{title:"fas fa-sort-numeric-down",searchTerms:["numbers","sort-numeric-asc"]},{title:"fas fa-sort-numeric-up",searchTerms:["numbers","sort-numeric-desc"]},{title:"fas fa-sort-up",searchTerms:["arrow","ascending","sort-asc"]},{title:"fab fa-soundcloud",searchTerms:[]},{title:"fas fa-space-shuttle",searchTerms:[]},{title:"fab fa-speakap",searchTerms:[]},{title:"fas fa-spinner",searchTerms:["loading","progress"]},{title:"fab fa-spotify",searchTerms:[]},{title:"fas fa-square",searchTerms:["block","box"]},{title:"far fa-square",searchTerms:["block","box"]},{title:"fas fa-square-full",searchTerms:[]},{title:"fab fa-stack-exchange",searchTerms:[]},{title:"fab fa-stack-overflow",searchTerms:[]},{title:"fas fa-star",searchTerms:["award","achievement","night","rating","score","favorite"]},{title:"far fa-star",searchTerms:["award","achievement","night","rating","score","favorite"]},{title:"fas fa-star-half",searchTerms:["award","achievement","rating","score","star-half-empty","star-half-full"]},{title:"far fa-star-half",searchTerms:["award","achievement","rating","score","star-half-empty","star-half-full"]},{title:"fab fa-staylinked",searchTerms:[]},{title:"fab fa-steam",searchTerms:[]},{title:"fab fa-steam-square",searchTerms:[]},{title:"fab fa-steam-symbol",searchTerms:[]},{title:"fas fa-step-backward",searchTerms:["rewind","previous","beginning","start","first"]},{title:"fas fa-step-forward",searchTerms:["next","end","last"]},{title:"fas fa-stethoscope",searchTerms:[]},{title:"fab fa-sticker-mule",searchTerms:[]},{title:"fas fa-sticky-note",searchTerms:[]},{title:"far fa-sticky-note",searchTerms:[]},{title:"fas fa-stop",searchTerms:["block","box","square"]},{title:"fas fa-stop-circle",searchTerms:[]},{title:"far fa-stop-circle",searchTerms:[]},{title:"fas fa-stopwatch",searchTerms:["time"]},{title:"fab fa-strava",searchTerms:[]},{title:"fas fa-street-view",searchTerms:["map"]},{title:"fas fa-strikethrough",searchTerms:[]},{title:"fab fa-stripe",searchTerms:[]},{title:"fab fa-stripe-s",searchTerms:[]},{title:"fab fa-studiovinari",searchTerms:[]},{title:"fab fa-stumbleupon",searchTerms:[]},{title:"fab fa-stumbleupon-circle",searchTerms:[]},{title:"fas fa-subscript",searchTerms:[]},{title:"fas fa-subway",searchTerms:[]},{title:"fas fa-suitcase",searchTerms:["trip","luggage","travel","move","baggage"]},{title:"fas fa-sun",searchTerms:["weather","contrast","lighter","brighten","day"]},{title:"far fa-sun",searchTerms:["weather","contrast","lighter","brighten","day"]},{title:"fab fa-superpowers",searchTerms:[]},{title:"fas fa-superscript",searchTerms:["exponential"]},{title:"fab fa-supple",searchTerms:[]},{title:"fas fa-sync",searchTerms:["reload","refresh","refresh"]},{title:"fas fa-sync-alt",searchTerms:["reload","refresh"]},{title:"fas fa-syringe",searchTerms:["immunizations","needle"]},{title:"fas fa-table",searchTerms:["data","excel","spreadsheet"]},{title:"fas fa-table-tennis",searchTerms:[]},{title:"fas fa-tablet",searchTerms:["ipad","device"]},{title:"fas fa-tablet-alt",searchTerms:["tablet"]},{title:"fas fa-tachometer-alt",searchTerms:["tachometer","dashboard"]},{title:"fas fa-tag",searchTerms:["label"]},{title:"fas fa-tags",searchTerms:["labels"]},{title:"fas fa-tasks",searchTerms:["progress","loading","downloading","downloads","settings"]},{title:"fas fa-taxi",searchTerms:["vehicle"]},{title:"fab fa-telegram",searchTerms:[]},{title:"fab fa-telegram-plane",searchTerms:[]},{title:"fab fa-tencent-weibo",searchTerms:[]},{title:"fas fa-terminal",searchTerms:["command","prompt","code"]},{title:"fas fa-text-height",searchTerms:[]},{title:"fas fa-text-width",searchTerms:[]},{title:"fas fa-th",searchTerms:["blocks","squares","boxes","grid"]},{title:"fas fa-th-large",searchTerms:["blocks","squares","boxes","grid"]},{title:"fas fa-th-list",searchTerms:["ul","ol","checklist","finished","completed","done","todo"]},{title:"fab fa-themeisle",searchTerms:[]},{title:"fas fa-thermometer",searchTerms:["temperature","fever"]},{title:"fas fa-thermometer-empty",searchTerms:["status"]},{title:"fas fa-thermometer-full",searchTerms:["status"]},{title:"fas fa-thermometer-half",searchTerms:["status"]},{title:"fas fa-thermometer-quarter",searchTerms:["status"]},{title:"fas fa-thermometer-three-quarters",searchTerms:["status"]},{title:"fas fa-thumbs-down",searchTerms:["dislike","disapprove","disagree","hand","thumbs-o-down"]},{title:"far fa-thumbs-down",searchTerms:["dislike","disapprove","disagree","hand","thumbs-o-down"]},{title:"fas fa-thumbs-up",searchTerms:["like","favorite","approve","agree","hand","thumbs-o-up"]},{title:"far fa-thumbs-up",searchTerms:["like","favorite","approve","agree","hand","thumbs-o-up"]},{title:"fas fa-thumbtack",searchTerms:["marker","pin","location","coordinates","thumb-tack"]},{title:"fas fa-ticket-alt",searchTerms:["ticket"]},{title:"fas fa-times",searchTerms:["close","exit","x","cross"]},{title:"fas fa-times-circle",searchTerms:["close","exit","x"]},{title:"far fa-times-circle",searchTerms:["close","exit","x"]},{title:"fas fa-tint",searchTerms:["raindrop","waterdrop","drop","droplet"]},{title:"fas fa-toggle-off",searchTerms:["switch"]},{title:"fas fa-toggle-on",searchTerms:["switch"]},{title:"fas fa-trademark",searchTerms:[]},{title:"fas fa-train",searchTerms:[]},{title:"fas fa-transgender",searchTerms:["intersex"]},{title:"fas fa-transgender-alt",searchTerms:[]},{title:"fas fa-trash",searchTerms:["garbage","delete","remove","hide"]},{title:"fas fa-trash-alt",searchTerms:["garbage","delete","remove","hide","trash","trash-o"]},{title:"far fa-trash-alt",searchTerms:["garbage","delete","remove","hide","trash","trash-o"]},{title:"fas fa-tree",searchTerms:[]},{title:"fab fa-trello",searchTerms:[]},{title:"fab fa-tripadvisor",searchTerms:[]},{title:"fas fa-trophy",searchTerms:["award","achievement","cup","winner","game"]},{title:"fas fa-truck",searchTerms:["shipping"]},{title:"fas fa-tty",searchTerms:[]},{title:"fab fa-tumblr",searchTerms:[]},{title:"fab fa-tumblr-square",searchTerms:[]},{title:"fas fa-tv",searchTerms:["display","computer","monitor","television"]},{title:"fab fa-twitch",searchTerms:[]},{title:"fab fa-twitter",searchTerms:["tweet","social network"]},{title:"fab fa-twitter-square",searchTerms:["tweet","social network"]},{title:"fab fa-typo3",searchTerms:[]},{title:"fab fa-uber",searchTerms:[]},{title:"fab fa-uikit",searchTerms:[]},{title:"fas fa-umbrella",searchTerms:[]},{title:"fas fa-underline",searchTerms:[]},{title:"fas fa-undo",searchTerms:["back"]},{title:"fas fa-undo-alt",searchTerms:["back"]},{title:"fab fa-uniregistry",searchTerms:[]},{title:"fas fa-universal-access",searchTerms:[]},{title:"fas fa-university",searchTerms:["bank","institution"]},{title:"fas fa-unlink",searchTerms:["remove","chain","chain-broken"]},{title:"fas fa-unlock",searchTerms:["protect","admin","password","lock"]},{title:"fas fa-unlock-alt",searchTerms:["protect","admin","password","lock"]},{title:"fab fa-untappd",searchTerms:[]},{title:"fas fa-upload",searchTerms:["import"]},{title:"fab fa-usb",searchTerms:[]},{title:"fas fa-user",searchTerms:["person","man","head","profile","account"]},{title:"far fa-user",searchTerms:["person","man","head","profile","account"]},{title:"fas fa-user-circle",searchTerms:["person","man","head","profile","account"]},{title:"far fa-user-circle",searchTerms:["person","man","head","profile","account"]},{title:"fas fa-user-md",searchTerms:["doctor","profile","medical","nurse","job","occupation"]},{title:"fas fa-user-plus",searchTerms:["sign up","signup"]},{title:"fas fa-user-secret",searchTerms:["whisper","spy","incognito","privacy"]},{title:"fas fa-user-times",searchTerms:[]},{title:"fas fa-users",searchTerms:["people","profiles","persons"]},{title:"fab fa-ussunnah",searchTerms:[]},{title:"fas fa-utensil-spoon",searchTerms:["spoon"]},{title:"fas fa-utensils",searchTerms:["food","restaurant","spoon","knife","dinner","eat","cutlery"]},{title:"fab fa-vaadin",searchTerms:[]},{title:"fas fa-venus",searchTerms:["female"]},{title:"fas fa-venus-double",searchTerms:[]},{title:"fas fa-venus-mars",searchTerms:[]},{title:"fab fa-viacoin",searchTerms:[]},{title:"fab fa-viadeo",searchTerms:[]},{title:"fab fa-viadeo-square",searchTerms:[]},{title:"fab fa-viber",searchTerms:[]},{title:"fas fa-video",searchTerms:["film","movie","record","camera","video-camera"]},{title:"fab fa-vimeo",searchTerms:[]},{title:"fab fa-vimeo-square",searchTerms:[]},{title:"fab fa-vimeo-v",searchTerms:["vimeo"]},{title:"fab fa-vine",searchTerms:[]},{title:"fab fa-vk",searchTerms:[]},{title:"fab fa-vnv",searchTerms:[]},{title:"fas fa-volleyball-ball",searchTerms:[]},{title:"fas fa-volume-down",searchTerms:["audio","lower","quieter","sound","music"]},{title:"fas fa-volume-off",searchTerms:["audio","mute","sound","music"]},{title:"fas fa-volume-up",searchTerms:["audio","higher","louder","sound","music"]},{title:"fab fa-vuejs",searchTerms:[]},{title:"fas fa-warehouse",searchTerms:[]},{title:"fab fa-weibo",searchTerms:[]},{title:"fas fa-weight",searchTerms:["scale"]},{title:"fab fa-weixin",searchTerms:[]},{title:"fab fa-whatsapp",searchTerms:[]},{title:"fab fa-whatsapp-square",searchTerms:[]},{title:"fas fa-wheelchair",searchTerms:["handicap","person"]},{title:"fab fa-whmcs",searchTerms:[]},{title:"fas fa-wifi",searchTerms:[]},{title:"fab fa-wikipedia-w",searchTerms:[]},{title:"fas fa-window-close",searchTerms:[]},{title:"far fa-window-close",searchTerms:[]},{title:"fas fa-window-maximize",searchTerms:[]},{title:"far fa-window-maximize",searchTerms:[]},{title:"fas fa-window-minimize",searchTerms:[]},{title:"far fa-window-minimize",searchTerms:[]},{title:"fas fa-window-restore",searchTerms:[]},{title:"far fa-window-restore",searchTerms:[]},{title:"fab fa-windows",searchTerms:["microsoft"]},{title:"fas fa-won-sign",searchTerms:["krw","krw"]},{title:"fab fa-wordpress",searchTerms:[]},{title:"fab fa-wordpress-simple",searchTerms:[]},{title:"fab fa-wpbeginner",searchTerms:[]},{title:"fab fa-wpexplorer",searchTerms:[]},{title:"fab fa-wpforms",searchTerms:[]},{title:"fas fa-wrench",searchTerms:["settings","fix","update","spanner","tool"]},{title:"fab fa-xbox",searchTerms:[]},{title:"fab fa-xing",searchTerms:[]},{title:"fab fa-xing-square",searchTerms:[]},{title:"fab fa-y-combinator",searchTerms:[]},{title:"fab fa-yahoo",searchTerms:[]},{title:"fab fa-yandex",searchTerms:[]},{title:"fab fa-yandex-international",searchTerms:[]},{title:"fab fa-yelp",searchTerms:[]},{title:"fas fa-yen-sign",searchTerms:["jpy","jpy"]},{title:"fab fa-yoast",searchTerms:[]},{title:"fab fa-youtube",searchTerms:["video","film","youtube-play","youtube-square"]},{title:"fab fa-youtube-square",searchTerms:[]}]})}); \ No newline at end of file diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js index e47df87f..c6d18b37 100644 --- a/public/js/plugins/schedule/editor.js +++ b/public/js/plugins/schedule/editor.js @@ -210,6 +210,19 @@ function loadEventType(date) var foo = $('#'+i); foo.trumbowyg('html', val); } + else if(i == "calendar_color") + { + var foo = $('#'+i); + foo.val(val); + pickr.setColor(val); + } + else if(i == "calendar_icon") + { + var foo = $('#'+i); + foo.val(val); + $('#calendar_icon_display').removeAttr('class'); + $('#calendar_icon_display').addClass(val); + } }); }, error: function () { @@ -292,4 +305,4 @@ function updatePlantext(toggle,id) $('#'+id).removeClass('text-success'); $('#'+id).html('Plan de cours non remis') } -} \ No newline at end of file +} diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 3284f7c6..5ba0ee36 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,6 +1,4 @@ { "/js/app.js": "/js/app.js", - "/css/app.css": "/css/app.css", - "/css/material-dashboard.css": "/css/material-dashboard.css", "/css/custom.css": "/css/custom.css" } diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index bf005fde..c6164e36 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -47,10 +47,10 @@ @else @foreach ($futureEvent as $event)
-
+
-

{!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!}

+

@if($event->calendar_icon == null) {!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!} @else @endif

{{$event->name}} diff --git a/resources/views/admin/schedule/editor/course.blade.php b/resources/views/admin/schedule/editor/course.blade.php index 4e7c8361..8cb62f88 100644 --- a/resources/views/admin/schedule/editor/course.blade.php +++ b/resources/views/admin/schedule/editor/course.blade.php @@ -13,14 +13,14 @@
-
@@ -71,4 +71,4 @@
-
\ No newline at end of file +
diff --git a/resources/views/admin/schedule/editor/levelHeader.blade.php b/resources/views/admin/schedule/editor/levelHeader.blade.php index 0502fe08..cbe8813d 100644 --- a/resources/views/admin/schedule/editor/levelHeader.blade.php +++ b/resources/views/admin/schedule/editor/levelHeader.blade.php @@ -9,13 +9,13 @@
-
-
\ No newline at end of file +
diff --git a/resources/views/admin/schedule/editor/periode.blade.php b/resources/views/admin/schedule/editor/periode.blade.php index 06910423..f6121710 100644 --- a/resources/views/admin/schedule/editor/periode.blade.php +++ b/resources/views/admin/schedule/editor/periode.blade.php @@ -10,12 +10,12 @@
-
@@ -40,4 +40,4 @@
-
\ No newline at end of file +
diff --git a/resources/views/admin/schedule/editor/template.blade.php b/resources/views/admin/schedule/editor/template.blade.php index b240caaa..c67d54d5 100644 --- a/resources/views/admin/schedule/editor/template.blade.php +++ b/resources/views/admin/schedule/editor/template.blade.php @@ -8,9 +8,9 @@ @include('admin.schedule.editor.levelHeader',['level_id' => $loop->index+1,'level_name' => $niveau['name']]) @endforeach
@foreach($eventType->schedule_model['periodes'] as $periode) @@ -24,8 +24,8 @@ @endforeach \ No newline at end of file +
diff --git a/resources/views/admin/schedule/event/add.blade.php b/resources/views/admin/schedule/event/add.blade.php index ca482534..27f4c538 100644 --- a/resources/views/admin/schedule/event/add.blade.php +++ b/resources/views/admin/schedule/event/add.blade.php @@ -1,15 +1,15 @@ @extends('layouts.admin.main') @section('content') -
-
-
-
-

Ajouter un événement à l'horaire

-
-
-
- @csrf + +
+ @csrf +
+
+
+

Ajouter un événement à l'horaire

+
+
@@ -106,65 +106,149 @@
- +
-
-
-
-
-

Options

-
-
-
- - Choisir le type d'activité supprimera vos modification actuel - +
+
+
+

Options

-
- - L'activité est-elle obligatoire pour tout les cadets ? -
- +
+
+ + Choisir le type d'activité supprimera vos modification actuel +
-
-
- - Inclure des messages de la semaine avec l'activité ? -
- +
+ + L'activité est-elle obligatoire pour tout les cadets ? +
+ +
-
-
- - Inclure un horaire avec l'activité ? -
- +
+ + Inclure des messages de la semaine avec l'activité ? +
+ +
+
+
+ + Inclure un horaire avec l'activité ? +
+ +
+
+
+
+ + +
+
+
+ + Icone de l'activité +
+ + +
+
+
+ + Couleur de l'activité +
+ + +
+
+
+
+
-
+ + @endsection @section('custom_scripts') + + + @@ -172,6 +256,7 @@ $(function () { console.log('Document READY loading schedule editor'); loadEventType('{{$date}}'); + }) -@endsection \ No newline at end of file +@endsection diff --git a/resources/views/ecc/booking.blade.php b/resources/views/ecc/booking.blade.php deleted file mode 100644 index 17128d75..00000000 --- a/resources/views/ecc/booking.blade.php +++ /dev/null @@ -1,86 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
- - - - - - - - - - - @foreach ($items as $item) - - - - - - - @endforeach - -
QuantitéNomDescription
{{$item->quantity}}{{$item->name}}{{$item->desc}}
{{ csrf_field() }}
-
-
-
-
-
-
- - - - - - - - - - - @foreach ($dispo_item as $item) - - - - - - @endforeach - -
NomDescriptionQuantité
{{ csrf_field() }}
{{$item->name}}{{$item->desc}} -
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/calendar.blade.php b/resources/views/ecc/calendar.blade.php deleted file mode 100644 index dc4161c6..00000000 --- a/resources/views/ecc/calendar.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/calendar_date.blade.php b/resources/views/ecc/calendar_date.blade.php deleted file mode 100644 index 4972dfb0..00000000 --- a/resources/views/ecc/calendar_date.blade.php +++ /dev/null @@ -1,273 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
- @if (count($schedules) == 0) -
-
-
- Aucune activité pour cette journée ! -
- Retour a l'horaire -
-
- @endif - @foreach ($schedules as $schedule) -
-
-
-
-
{{$schedule->data['event_name']}}
-
-
-
- @if ($schedule->data['is_event_mandatory'] == "on") - Obligatoire - @else - Non Obligatoire - @endif -
-
-
- {{$schedule->data['event_begin_time']}} à {{$schedule->data['event_end_time']}}
{{$schedule->data['event_location']}}

{!!$schedule->data['event_desc']!!}

- @if ($schedule->type == "regular") -
-
-
- Niveau -
-
- Période 1 -
-
- Période 2 -
-
-
-
- 1 -
-
-
-
-
- {{\App\User::find($schedule->data['n1_p1_instructor'])->fullname()}} -
-
- @if ($schedule->data['n1_p1_instructor'] == \Auth::User()->id) - @if ($schedule->data['n1_p1_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n1_p1_ocom']}} - {{$schedule->data['n1_p1_name']}} -
-
- {{\App\Local::find($schedule->data['n1_p1_local'])->name}} -
-
-
- @if ($schedule->data['n1_p1_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
-
-
- {{\App\User::find($schedule->data['n1_p2_instructor'])->fullname()}} -
-
- @if ($schedule->data['n1_p2_instructor'] == \Auth::User()->id) - @if ($schedule->data['n1_p2_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n1_p2_ocom']}} - {{$schedule->data['n1_p2_name']}} -
-
- {{\App\Local::find($schedule->data['n1_p2_local'])->name}} -
-
-
- @if ($schedule->data['n1_p2_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
-
-
- 2 -
-
-
-
-
- {{\App\User::find($schedule->data['n2_p1_instructor'])->fullname()}} -
-
- @if ($schedule->data['n2_p1_instructor'] == \Auth::User()->id) - @if ($schedule->data['n2_p1_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n2_p1_ocom']}} - {{$schedule->data['n2_p1_name']}} -
-
- {{\App\Local::find($schedule->data['n2_p1_local'])->name}} -
-
-
- @if ($schedule->data['n2_p1_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
-
-
- {{\App\User::find($schedule->data['n2_p2_instructor'])->fullname()}} -
-
- @if ($schedule->data['n2_p2_instructor'] == \Auth::User()->id) - @if ($schedule->data['n2_p2_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n2_p2_ocom']}} - {{$schedule->data['n2_p2_name']}} -
-
- {{\App\Local::find($schedule->data['n2_p2_local'])->name}} -
-
-
- @if ($schedule->data['n2_p2_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
-
-
- 3 -
-
-
-
-
- {{\App\User::find($schedule->data['n3_p1_instructor'])->fullname()}} -
-
- @if ($schedule->data['n3_p1_instructor'] == \Auth::User()->id) - @if ($schedule->data['n3_p1_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n3_p1_ocom']}} - {{$schedule->data['n3_p1_name']}} -
-
- {{\App\Local::find($schedule->data['n3_p1_local'])->name}} -
-
-
- @if ($schedule->data['n3_p1_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
-
-
- {{\App\User::find($schedule->data['n3_p2_instructor'])->fullname()}} -
-
- @if ($schedule->data['n3_p2_instructor'] == \Auth::User()->id) - @if ($schedule->data['n3_p2_plandone'] == "on") - Remis - @else - Non remis - @endif - @endif -
-
-
-
-
- {{$schedule->data['n3_p2_ocom']}} - {{$schedule->data['n3_p2_name']}} -
-
- {{\App\Local::find($schedule->data['n3_p2_local'])->name}} -
-
-
- @if ($schedule->data['n3_p2_instructor'] == \Auth::User()->id) - - @endif -
-
-
-
-
- @else - Autre - @endif -
-
- @endforeach -
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/dashboard.blade.php b/resources/views/ecc/dashboard.blade.php deleted file mode 100644 index 1ae9221b..00000000 --- a/resources/views/ecc/dashboard.blade.php +++ /dev/null @@ -1,240 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Cours a venir

- {{count($AlluserClasse)}} -
-
-
-
-
- @if(count($AlluserClasse) == 0) -
-
- - Aucun cours a venir -
-
- @endif - @foreach ($userClasse as $classe) -
- @if ($classe['plan_done'] == "on") -
- - Le cours {{$classe['ocom']}} - {{$classe['name']}} du {{$classe['date']}} est remis.
- @if ($classe['material'] != "") - - Vous avez réservé - @foreach (\App\Item::explodeItems($classe['material']) as $item) - @if (\App\Item::explodeItems($classe['material'])->last() == $item && \App\Item::explodeItems($classe['material'])->first() != $item) - et - @endif - {{$item->name}} - @endforeach - @else - - Aucun matériel réservé - @endif -
-
- @else -
- - Le cours {{$classe['ocom']}} - {{$classe['name']}} du {{$classe['date']}} n'est pas remis.
- @if ($classe['material'] != "") - - Vous avez réservé - @foreach (\App\Item::explodeItems($classe['material']) as $item) - @if (\App\Item::explodeItems($classe['material'])->last() == $item && \App\Item::explodeItems($classe['material'])->first() != $item) - et - @endif - {{$item->name}} - @endforeach - @else - - Aucun matériel réservé - @endif -
-
- @endif -
- @endforeach -
- -
-
-
-
-
-
-
- -
-
-
-
-

Guide pédagogique et plan de cours

-
-
-
-
-
-
-

Guide pédagogique et de qualification du niveau 1

-
-
-

Guide pédagogique et de qualification du niveau 2

-
-
-

Guide pédagogique et de qualification du niveau 3

-
-
-

Guide pédagogique et de qualification du niveau 4

-
-
-
-
-

Plan de cours vierge

- Télécharger -
-
-
-
-
-
-
-
-
-
-
-
-
- ... -

{{\Auth::User()->fullname()}}
- {{\App\Rank::find(\Auth::User()->rank)->name}} -

-
-
-
-
-
-
-
{{\Auth::User()->age}}
Âge
-
-
-
{{strtoupper(\Auth::User()->sexe)}}
Sexe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-

Activité sur le site

- {{\Auth::User()->countActivity()}} -
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-

Nombre de cours à données

- {{\Auth::User()->countClasse()}} -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-

Messages

-
-
-
-
- @foreach ($messages as $message) -
-

{{$message->title}}

par {{\App\User::find($message->user_id)->fullname()}}

-
{!! $message->body !!}
- Afficher plus -
- @endforeach -
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/files.blade.php b/resources/views/ecc/files.blade.php deleted file mode 100644 index 12e84931..00000000 --- a/resources/views/ecc/files.blade.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Fichiers

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fichier
Ordre d'opération
Mini Ordre Operation Projet Soirée Journée ViergeTélécharger
Mini Ordre Operation ViergeTélécharger
Tenues
Liste des tenuesTélécharger
Énoncé de fonction
Cadet commandantTélécharger
Cadet commandant adjointTélécharger
Chef entrainementTélécharger
Instructeur séniorTélécharger
InstructeurTélécharger
Assistant InstructeurTélécharger
Commandant de sectionTélécharger
Commandant de la gardeTélécharger
Commandant adjoint de sectionTélécharger
Commandant adjoint de gardeTélécharger
Cadet cadre de la logistiqueTélécharger
Cadet cadre de l'administrationTélécharger
Commandant adjoint de sectionTélécharger
Divers
Information NECPCTélécharger
Évaluation pratique sur la coordination d’un ordre d’opération sur le terrainTélécharger
RENCONTRE PRÉILIMINAIRE D’INSTRUCTIONTélécharger
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/guide.blade.php b/resources/views/ecc/guide.blade.php deleted file mode 100644 index 72e5ad01..00000000 --- a/resources/views/ecc/guide.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Guide pédagogique et plan de cours

-
-
-
-
-
-
-

Guide pédagogique et de qualification du niveau 1

-
-
-

Guide pédagogique et de qualification du niveau 2

-
-
-

Guide pédagogique et de qualification du niveau 3

-
-
-

Guide pédagogique et de qualification du niveau 4

-
-
-
-
-

Plan de cours vierge

- Télécharger -
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/list.blade.php b/resources/views/ecc/list.blade.php deleted file mode 100644 index da62c645..00000000 --- a/resources/views/ecc/list.blade.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Liste des cadets

-
-
-
-
-
-
-

Liste nominative des cadets

-
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/message.blade.php b/resources/views/ecc/message.blade.php deleted file mode 100644 index 0e5e781c..00000000 --- a/resources/views/ecc/message.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-

{{$message->title}}

par {{\App\User::find($message->user_id)->fullname()}}

-
{!! $message->body !!}

-
-
- -
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/messages.blade.php b/resources/views/ecc/messages.blade.php deleted file mode 100644 index d6f099f3..00000000 --- a/resources/views/ecc/messages.blade.php +++ /dev/null @@ -1,41 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Messages

-
-
-
-
- @foreach ($messages as $message) -
-

{{$message->title}}

par {{\App\User::find($message->user_id)->fullname()}}

-
{!! $message->body !!}

- Afficher plus -
- @endforeach -
-
- - -
-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/settings.blade.php b/resources/views/ecc/settings.blade.php deleted file mode 100644 index 4808feb2..00000000 --- a/resources/views/ecc/settings.blade.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Options

-
-
-
- -
-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/settings/adress.blade.php b/resources/views/ecc/settings/adress.blade.php deleted file mode 100644 index d4210cb8..00000000 --- a/resources/views/ecc/settings/adress.blade.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Options

-
-
-
-
-
Modifier mon adresse
- @if (session('status')) -
- - {{session('status')}} -
- @endif -
- @csrf -
- - -
- -
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/settings/avatar.blade.php b/resources/views/ecc/settings/avatar.blade.php deleted file mode 100644 index 198d4311..00000000 --- a/resources/views/ecc/settings/avatar.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Options

-
-
-
-
-
Modifier mon mot de passe
- @if (session('status')) -
- - {{session('status')}} -
- @endif - Votre Avatar -
- Card image cap -
-
- Cliquer sur un avatar pour mettre a jour votre avatar -
- @for ($i = 1; $i < 16; $i++) -
- Card image cap -
- @endfor -
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/settings/password.blade.php b/resources/views/ecc/settings/password.blade.php deleted file mode 100644 index 65a1dedc..00000000 --- a/resources/views/ecc/settings/password.blade.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
-
-
- -
-
-
-
-

Options

-
-
-
-
-
Modifier mon mot de passe
- @if (session('status')) -
- - Votre mot de passe a été mis a jour ! -
- @endif -
- @csrf - -
- - -
-
- - -
- -
-
-
-
-
-
-
-@endsection - -@section('active_page') - -@endsection - -@section('custom_scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/ecc/update.blade.php b/resources/views/ecc/update.blade.php deleted file mode 100644 index a8b55865..00000000 --- a/resources/views/ecc/update.blade.php +++ /dev/null @@ -1,234 +0,0 @@ -@extends('layouts.ecc.main') - -@section('content') -
-
-
-
-
Mise a jour 3.0.6
-

- Front-End -

    -
  • Ajout d'un bouton pour supprimer toute les notifications
  • -
  • Modification de l'affichage des activités a venir
  • -
  • Modification de l'affichage des cours a venir
  • -
-

-
-

- Back End & API -

    -
  • Ajout des notifications par Email.
  • -
  • Ajout des notifications pas SMS
  • -
  • Ajout de la suppression massive de notifications
  • -
  • Multiples autres ajouts
  • -
-

-
-

- Correction de bug -

-

-
-
-
-
-
-
-
Mise a jour 3.0.5
-

- Front-End -

    -
  • Ajout d'un quantité d'item dans l'inventaire.
  • -
  • Modification de l'interface de la gestion d'inventaire pour accomoder l'ajout de quantité.
  • -
  • Ajout d'un indicateur de status sur la page de connexion..
  • -
  • Le rapport de bug est maintenant publique.
  • -
  • Ajout du dashboard administrateur.
  • -
  • Ajout d'option de configuration générale.'
  • -
-

-
-

- Back End & API -

    -
  • Modification du model de réservation pour accomoder l'ajout de quantité.
  • -
  • Ajout d'une quantité d'item a l'inventaire.
  • -
  • Ajout d'un « Helper » pour connaitre le status des services.
  • -
  • Ajout d'une section « Alerte » dans le modele de page Admin.
  • -
-

-
-

- Correction de bug -

-

-
-
-
-
-
-
-
Mise a jour 3.0.4
-

- Nouveauté -

    -
  • Création de l'espace cadet cadre
  • -
      -
    • Création du tableau de bord
    • -
    • Création de la section message
    • -
    • Création de la section plan de cours
    • -
    • Création de la section guide pédagogique
    • -
    • Création de la section horaire
    • -
    • Création de la section mise a jour
    • -
    -
  • Ajout de nouveau type d'icones
  • -
- Back End & API -
    -
  • Ajout de CSS spécifique au calendrier
  • -
  • Ajout d'un controller pour l'ECC
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-
-
-
Mise a jour 3.0.3
-

- Nouveauté -

    -
  • Mise à jour de la section notification.
  • -
  • Ajout d'une option pour bloquer les notifications de l'horaire lors de ça construction initiale.
  • -
- Back End & API -
    -
  • A Mise à jours du nom de l'adresse d'envois de Email
  • -
  • Mise à jours de l'adresse d'envois de Email
  • -
  • Ajout de la suppression de notification
  • -
  • Ajout de notification Email et Alert lors de l'ajout d'evenement a l'horaire
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-
-
-
Mise a jour 3.0.2
-

- Nouveauté -

    -
  • Amélioration générale de l'horaire
  • -
  • Ajout de la section message
  • -
  • Ajout de la section statistique
  • -
  • Ajout de la section utilisateur
  • -
  • Ajout de la section configuration
  • -
  • Ajout de modèle de poste
  • -
  • Ajout de modèle de grade
  • -
  • Ajout de notification par Email
  • -
  • Ajout de notification par SMS
  • -
  • Ajout de notification interne
  • -
- Back End & API -
    -
  • Ajout d'une liste de locaux dynamique
  • -
  • Ajout d'une liste de poste dynamique
  • -
  • Ajout d'une liste de grade dynamique
  • -
  • Ajout d'une authentification par token pour les requetes API
  • -
  • Ajout d'un "Middleware" pour les staffs
  • -
  • Ajout d'un "Middleware" pour les admins
  • -
  • Ajout du plugin DataTable
  • -
  • Modification de la table de données des permissions de "Boolean" a "String"
  • -
  • Ajout de page d'erreur personnalisé
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-
-
-
Mise a jour 3.0.1e
-

- Nouveauté -

    -
  • Amélioration générale de l'horaire
  • -
  • Ajout du model d'activité
  • -
  • Ajout de la migration d'activité
  • -
  • Ajout du CSS du calendrier
  • -
  • Ajout d'un préloader
  • -
  • Ajout de photos sur la page publique
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-
-
-
Mise a jour 3.0.1d
-

- Nouveauté -

    -
  • Ajout du prototype de l'horaire
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-
-
-
Mise a jour 3.0.1c
-

- Nouveauté -

    -
  • Ajout du systeme de logs
  • -
- Correction de bug -
    -
  • Correction de multiple bug
  • -
-

-
-
-
-
-@endsection - -@section('active_page') - -@endsection \ No newline at end of file diff --git a/resources/views/layouts/admin/head.blade.php b/resources/views/layouts/admin/head.blade.php index 0a0a4b71..708a5fad 100644 --- a/resources/views/layouts/admin/head.blade.php +++ b/resources/views/layouts/admin/head.blade.php @@ -25,8 +25,10 @@ - + + + - \ No newline at end of file + diff --git a/resources/views/layouts/admin/scripts.blade.php b/resources/views/layouts/admin/scripts.blade.php index 1d24bd8a..e21c6505 100644 --- a/resources/views/layouts/admin/scripts.blade.php +++ b/resources/views/layouts/admin/scripts.blade.php @@ -6,6 +6,7 @@ + @@ -25,8 +26,6 @@ - - diff --git a/resources/views/layouts/ecc/footer.blade.php b/resources/views/layouts/ecc/footer.blade.php deleted file mode 100644 index 5c412393..00000000 --- a/resources/views/layouts/ecc/footer.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/resources/views/layouts/ecc/head.blade.php b/resources/views/layouts/ecc/head.blade.php deleted file mode 100644 index ceaa3bb6..00000000 --- a/resources/views/layouts/ecc/head.blade.php +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - Espace Cadet Cadre - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/views/layouts/ecc/header.blade.php b/resources/views/layouts/ecc/header.blade.php deleted file mode 100644 index 88e41cde..00000000 --- a/resources/views/layouts/ecc/header.blade.php +++ /dev/null @@ -1,49 +0,0 @@ -unreadNotifications as $notification) { - $nbOfNotification = $nbOfNotification + 1; -} -?> - \ No newline at end of file diff --git a/resources/views/layouts/ecc/main.blade.php b/resources/views/layouts/ecc/main.blade.php deleted file mode 100644 index b12959d8..00000000 --- a/resources/views/layouts/ecc/main.blade.php +++ /dev/null @@ -1,33 +0,0 @@ - - - - @include('layouts.ecc.head') - - -
- - @include('layouts.ecc.sidebar') - -
- - @include('layouts.ecc.header') - -
-
- - @yield('content') - -
-
- - @include('layouts.ecc.footer') - -
-
- - -@include('layouts.ecc.scripts') - -@yield('custom_scripts') - - diff --git a/resources/views/layouts/ecc/scripts.blade.php b/resources/views/layouts/ecc/scripts.blade.php deleted file mode 100644 index ce3b7582..00000000 --- a/resources/views/layouts/ecc/scripts.blade.php +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/views/layouts/ecc/sidebar.blade.php b/resources/views/layouts/ecc/sidebar.blade.php deleted file mode 100644 index 495c0035..00000000 --- a/resources/views/layouts/ecc/sidebar.blade.php +++ /dev/null @@ -1,69 +0,0 @@ - \ No newline at end of file diff --git a/tests/Browser/LoginTest.php b/tests/Browser/LoginTest.php index bba8bf85..435a9f73 100644 --- a/tests/Browser/LoginTest.php +++ b/tests/Browser/LoginTest.php @@ -6,7 +6,7 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Laravel\Dusk\Browser; use Tests\DuskTestCase; -class LoginTest extends DuskTestCase +class xLoginTest extends DuskTestCase { public function testLogin() { From baef9a1df0fcd4c156bb42030ba8f4b9a25b4090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lagac=C3=A9=20Mathieu?= Date: Sat, 1 Feb 2020 13:17:32 -0500 Subject: [PATCH 12/42] 3.2.5 --- app/Config.php | 5 + app/Course.php | 5 + app/Event.php | 70 + app/GoogleDriveFile.php | 39 + app/Http/Controllers/AdminController.php | 6 + app/Http/Controllers/ConfigController.php | 28 +- app/Http/Controllers/EventController.php | 31 +- .../Controllers/GoogleDriveController.php | 117 ++ app/Permission.php | 30 + app/Providers/GoogleDriveServiceProvider.php | 44 + composer.json | 1 + composer.lock | 1254 ++++++++++++----- config/app.php | 1 + config/filesystems.php | 9 + database/seeds/ConfigsTableSeeder.php | 20 + public/android-chrome-192x192.png | Bin 0 -> 4042 bytes public/android-chrome-512x512.png | Bin 0 -> 7241 bytes public/apple-touch-icon.png | Bin 0 -> 3564 bytes public/css/custom.css | 26 +- public/favicon-16x16.png | Bin 0 -> 290 bytes public/favicon-32x32.png | Bin 0 -> 532 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/js/plugins/schedule/editor.js | 21 +- resources/assets/fullcalendar/core/main.d.ts | 2 +- resources/custom.css | 26 +- .../admin/calendar/calendar_display.blade.php | 21 +- resources/views/admin/configs/file.blade.php | 73 +- resources/views/admin/dashboard.blade.php | 19 +- .../admin/files/Google Drive/index.blade.php | 68 + .../admin/schedule/editor/course.blade.php | 1 + .../views/admin/schedule/event/add.blade.php | 56 +- resources/views/admin/status/index.blade.php | 93 ++ resources/views/layouts/admin/head.blade.php | 9 +- .../views/layouts/admin/header.blade.php | 7 +- .../views/layouts/admin/scripts.blade.php | 8 +- .../views/layouts/admin/sidebar.blade.php | 68 +- routes/web.php | 5 +- 37 files changed, 1662 insertions(+), 501 deletions(-) create mode 100644 app/GoogleDriveFile.php create mode 100644 app/Http/Controllers/GoogleDriveController.php create mode 100644 app/Providers/GoogleDriveServiceProvider.php create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 resources/views/admin/files/Google Drive/index.blade.php create mode 100644 resources/views/admin/status/index.blade.php diff --git a/app/Config.php b/app/Config.php index ae98428e..6a5096a2 100644 --- a/app/Config.php +++ b/app/Config.php @@ -24,4 +24,9 @@ class Config extends Model { return $this->morphMany('App\Log', 'logable'); } + + public static function find($name) + { + return Config::where('name',$name)->first(); + } } diff --git a/app/Course.php b/app/Course.php index d0c7493b..9222c2eb 100644 --- a/app/Course.php +++ b/app/Course.php @@ -25,4 +25,9 @@ class Course extends Model { return $this->morphMany('App\Log', 'logable'); } + + public function use_course() + { + return $this->name == "" && $this->ocom == ""; + } } diff --git a/app/Event.php b/app/Event.php index ce14abe5..37952ed7 100644 --- a/app/Event.php +++ b/app/Event.php @@ -59,4 +59,74 @@ class Event extends Model } return $events; } + + public static function checkForError() + { + $events = Event::all(); + + $warning = []; + $danger = []; + + foreach ($events as $event) + { + if($event->date_begin == null) + { + array_push($warning,'Évènement ID:'.$event->id.' - "date_begin", Incorrect'); + } + if($event->date_end == null) + { + array_push($warning,'Évènement ID:'.$event->id.' - "date_end", Incorrect'); + } + if($event->type == null || $event->type == "" || !\App\EventType::all()->has($event->type)) + { + $event->type = 1; + //$event->save(); + array_push($warning,'Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->is_mandatory == null && $event->is_mandatory != 0) + { + array_push($warning,'Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->use_weekly_msg == null && $event->use_weekly_msg != 0) + { + array_push($warning,'Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->use_schedule == null && $event->use_schedule != 0) + { + array_push($warning,'Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->schedule == null) + { + $event->schedule = '{"periodes":[{"name":"Periode 1","begin_time":"19:00","end_time":"20:10"},{"name":"Periode 2","begin_time":"20:30","end_time":"21:20"}],"niveaux":[{"name":"Niveau 1"},{"name":"Niveau 2"},{"name":"Niveau 3"}]}'; + $event->save(); + array_push($warning,'Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->location == null || $event->location == "") + { + array_push($warning,'Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->calendar_color == null || $event->calendar_color == "") + { + $event->calendar_color = '#A4A4A4'; + $event->save(); + array_push($warning,'Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut'); + } + if($event->calendar_icon == null || $event->calendar_icon == "") + { + $event->calendar_icon = 'fas fa-book'; + $event->save(); + array_push($warning,'Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut'); + clog('error','danger','Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut'); + } + } + + return [$warning,$danger]; + } } diff --git a/app/GoogleDriveFile.php b/app/GoogleDriveFile.php new file mode 100644 index 00000000..4b31fc48 --- /dev/null +++ b/app/GoogleDriveFile.php @@ -0,0 +1,39 @@ + $alerts]); + } + } diff --git a/app/Http/Controllers/ConfigController.php b/app/Http/Controllers/ConfigController.php index 01c4a54a..af29cc44 100644 --- a/app/Http/Controllers/ConfigController.php +++ b/app/Http/Controllers/ConfigController.php @@ -137,13 +137,33 @@ class ConfigController extends Controller public function editfilesConfig() { - $config = \App\Config::all()->where('name','cadet_list')->first(); + $configList = [ + 'cadet_list' + ]; - $config->data = [\request('cadet_list')]; + $configListEncrypt = [ + 'GOOGLE_DRIVE_CLIENT_ID', + 'GOOGLE_DRIVE_CLIENT_SECRET', + 'GOOGLE_DRIVE_REFRESH_TOKEN', + 'GOOGLE_DRIVE_FOLDER_ID' + ]; - $config->save(); - clog('edit','success','a modifié la configuration'); + foreach ($configList as $configName) + { + $config = \App\Config::find($configName); + $config->data = [\request($configName)]; + $config->save(); + } + + foreach ($configListEncrypt as $configName) + { + $config = \App\Config::find($configName); + $config->data = [\Crypt::encryptString(\request($configName))]; + $config->save(); + } + + clog('edit','success','a modifié la configuration des fichiers'); return redirect('/admin/config/files')->with('success','Modification sauvegarder avec succès !'); } } diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 09aa5c1d..aec86a6b 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -38,6 +38,8 @@ class EventController extends Controller { $event = new Event(); + + $event->name = request('name'); $event->date_begin = request('begin_time'); $event->date_end = request('end_time'); @@ -51,7 +53,7 @@ class EventController extends Controller $event->is_mandatory = 0; } - $event->desc = ''; + $event->desc = \request('admin_desc'); if(\request("use_weekly_msg")) { @@ -95,10 +97,10 @@ class EventController extends Controller ]); $nbPeriode++; } - $event->schedule = [ 'periodes' => $periodes, - 'niveaux' => $niveaux + 'niveaux' => $niveaux, + 'courses' => [] ]; $event->save(); @@ -106,7 +108,7 @@ class EventController extends Controller if ($event->use_schedule) { for ($l=1; $l < $nbLevel; $l++) { for ($p=1; $p < $nbPeriode; $p++) { - + $course = new \App\Course(); $users = \App\User::all(); @@ -119,16 +121,26 @@ class EventController extends Controller } } - $course->name = request('name_n'.$l.'_p'.$p); $course->user_id = $instructor; - $course->ocom = request('ocom_n'.$l.'_p'.$p); $course->location = request('location_n'.$l.'_p'.$p); $course->periode = $p; $course->level = $l; - $course->comment = ""; $course->event_id = $event->id; + if(\request("use_course_n".$l."_p".$p) == 'on') + { + $course->name = request('name_n'.$l.'_p'.$p); + $course->ocom = request('ocom_n'.$l.'_p'.$p); + $course->comment = ""; + } + else + { + $course->name = ""; + $course->ocom = ""; + $course->comment = request('desc_n'.$l.'_p'.$p); + } + $course->save(); } } @@ -253,4 +265,9 @@ class EventController extends Controller { // } + + public function checkEvent() + { + // + } } diff --git a/app/Http/Controllers/GoogleDriveController.php b/app/Http/Controllers/GoogleDriveController.php new file mode 100644 index 00000000..411b321b --- /dev/null +++ b/app/Http/Controllers/GoogleDriveController.php @@ -0,0 +1,117 @@ +listContents($dir, $recursive)); + + return $contents->where('type', '=', 'file'); // files + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return bool + */ + public function store(Request $request) + { + $path = Storage::cloud()->makeDirectory('Test Dir'); + dd($path); + } + + /** + * Display the specified resource. + * + * @param $filename + * @return \Illuminate\Http\Response + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + */ + public function show() + { + $filename = \request('file'); + $recursive = false; // Get subdirectories also? + $contents = collect(Storage::cloud()->listContents('/1nEe35-GvLX598RketTI-UoaOxIMNxfka', true)); + + $file = $contents + ->where('type', '=', 'file') + ->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME)) + ->where('extension', '=', pathinfo($filename, PATHINFO_EXTENSION)) + ->first(); // there can be duplicate file names! + + //return $file; // array with file info + + $rawData = Storage::cloud()->get($file['path']); + + return response($rawData, 200) + ->header('ContentType', $file['mimetype']) + ->header('Content-Disposition', "attachment; filename='$filename'"); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } + + public function list() + { + $dir = '/'; + $recursive = false; // Get subdirectories also? + $contents = collect(Storage::cloud()->listContents($dir, $recursive)); + + return view('admin.files.Google Drive.index',['directories' => $contents->where('type', '=', 'dir'), 'files' => $contents->where('type', '=', 'file')]); + //return $contents->where('type', '=', 'file'); // files + } +} diff --git a/app/Permission.php b/app/Permission.php index 9f60eee4..9fcf3cb7 100644 --- a/app/Permission.php +++ b/app/Permission.php @@ -272,6 +272,36 @@ class Permission extends Model 'icon' => 'fa-eye', 'valeur' => 0 ], + ], + 'file' => [ + 'file_see' => [ + 'ckey' => 'file_see', + 'communName' => 'Voir les fichiers', + 'desc' => 'L\'utilisateur peut-il consulter les fichiers', + 'icon' => 'fa-eye', + 'valeur' => 0 + ], + 'file_add' => [ + 'ckey' => 'file_add', + 'communName' => 'Ajouter un fichier', + 'desc' => 'L\'utilisateur peut-il ajouter un fichier', + 'icon' => 'fa-eye', + 'valeur' => 0 + ], + 'file_edit' => [ + 'ckey' => 'file_edit', + 'communName' => 'Modifier un fichier', + 'desc' => 'L\'utilisateur peut-il modifier un fichier', + 'icon' => 'fa-eye', + 'valeur' => 0 + ], + 'file_delete' => [ + 'ckey' => 'file_delete', + 'communName' => 'Supprimer un fichier', + 'desc' => 'L\'utilisateur peut-il supprimer un fichier', + 'icon' => 'fa-eye', + 'valeur' => 0 + ] ] ]; diff --git a/app/Providers/GoogleDriveServiceProvider.php b/app/Providers/GoogleDriveServiceProvider.php new file mode 100644 index 00000000..3afc03d1 --- /dev/null +++ b/app/Providers/GoogleDriveServiceProvider.php @@ -0,0 +1,44 @@ +setClientId(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_ID'))); + $client->setClientSecret(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_SECRET'))); + $client->refreshToken(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_REFRESH_TOKEN'))); + $service = new \Google_Service_Drive($client); + + $options = []; + if(isset($config['teamDriveId'])) { + $options['teamDriveId'] = $config['teamDriveId']; + } + + $adapter = new GoogleDriveAdapter($service, \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_FOLDER_ID')), $options); + + return new \League\Flysystem\Filesystem($adapter); + }); + } +} diff --git a/composer.json b/composer.json index 9168163f..fef011c9 100644 --- a/composer.json +++ b/composer.json @@ -14,6 +14,7 @@ "laravel/helpers": "^1.1", "laravel/nexmo-notification-channel": "^2.2", "laravel/tinker": "^1.0", + "nao-pon/flysystem-google-drive": "^1.1", "nexmo/client": "^2.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index bcb3ec1f..fef88117 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "eb2e0f9a332c6bc503c5535d872c50e7", + "content-hash": "57f87b1252c823a7d2a41bf3f850e726", "packages": [ { "name": "barryvdh/laravel-dompdf", @@ -184,16 +184,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.5", + "version": "1.2.6", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149" + "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/62e8fc2dc550e5d6d8c9360c7721662670f58149", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e", + "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e", "shasum": "" }, "require": { @@ -236,20 +236,20 @@ "ssl", "tls" ], - "time": "2019-12-11T14:44:42+00:00" + "time": "2020-01-13T10:02:55+00:00" }, { "name": "composer/composer", - "version": "1.9.1", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f" + "reference": "7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/bb01f2180df87ce7992b8331a68904f80439dd2f", - "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f", + "url": "https://api.github.com/repos/composer/composer/zipball/7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb", + "reference": "7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb", "shasum": "" }, "require": { @@ -316,28 +316,27 @@ "dependency", "package" ], - "time": "2019-11-01T16:20:17+00:00" + "time": "2020-01-14T15:30:32+00:00" }, { "name": "composer/semver", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "type": "library", "extra": { @@ -378,7 +377,7 @@ "validation", "versioning" ], - "time": "2019-03-19T17:25:45+00:00" + "time": "2020-01-13T12:06:48+00:00" }, { "name": "composer/spdx-licenses", @@ -601,16 +600,16 @@ }, { "name": "doctrine/dbal", - "version": "v2.10.0", + "version": "v2.10.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934" + "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934", - "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", + "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", "shasum": "" }, "require": { @@ -689,7 +688,7 @@ "sqlserver", "sqlsrv" ], - "time": "2019-11-03T16:50:43+00:00" + "time": "2020-01-04T12:56:21+00:00" }, { "name": "doctrine/event-manager", @@ -898,28 +897,28 @@ }, { "name": "dompdf/dompdf", - "version": "v0.8.3", + "version": "v0.8.4", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "75f13c700009be21a1965dc2c5b68a8708c22ba2" + "reference": "8f49b3b01693f51037dd50da81090beba1b5c005" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/75f13c700009be21a1965dc2c5b68a8708c22ba2", - "reference": "75f13c700009be21a1965dc2c5b68a8708c22ba2", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/8f49b3b01693f51037dd50da81090beba1b5c005", + "reference": "8f49b3b01693f51037dd50da81090beba1b5c005", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "phenx/php-font-lib": "0.5.*", - "phenx/php-svg-lib": "0.3.*", - "php": ">=5.4.0" + "phenx/php-font-lib": "^0.5.1", + "phenx/php-svg-lib": "^0.3.3", + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.5|^6.5", - "squizlabs/php_codesniffer": "2.*" + "phpunit/phpunit": "^7.5", + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { "ext-gd": "Needed to process images", @@ -960,7 +959,7 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2018-12-14T02:40:31+00:00" + "time": "2020-01-20T17:00:46+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1018,27 +1017,27 @@ }, { "name": "egulias/email-validator", - "version": "2.1.11", + "version": "2.1.15", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" + "reference": "e834eea5306d85d67de5a05db5882911d5b29357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", - "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e834eea5306d85d67de5a05db5882911d5b29357", + "reference": "e834eea5306d85d67de5a05db5882911d5b29357", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1", - "symfony/phpunit-bridge": "^4.4@dev" + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1072,66 +1071,20 @@ "validation", "validator" ], - "time": "2019-08-13T17:33:27+00:00" - }, - { - "name": "erusev/parsedown", - "version": "1.7.3", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7", - "reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "time": "2019-03-17T18:48:37+00:00" + "time": "2020-01-20T21:40:59+00:00" }, { "name": "fideloper/proxy", - "version": "4.2.1", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a" + "reference": "790194d5d3da89a713478875d2e2d05855a90a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a", - "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/790194d5d3da89a713478875d2e2d05855a90a81", + "reference": "790194d5d3da89a713478875d2e2d05855a90a81", "shasum": "" }, "require": { @@ -1172,20 +1125,215 @@ "proxy", "trusted proxy" ], - "time": "2019-09-03T16:45:42+00:00" + "time": "2019-12-20T13:11:11+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.5.0", + "name": "firebase/php-jwt", + "version": "v5.0.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5" + "url": "https://github.com/firebase/php-jwt.git", + "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", + "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": " 4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "time": "2017-06-27T22:17:23+00:00" + }, + { + "name": "google/apiclient", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client.git", + "reference": "cd3c37998020d91ae4eafca4f26a92da4dabba83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/cd3c37998020d91ae4eafca4f26a92da4dabba83", + "reference": "cd3c37998020d91ae4eafca4f26a92da4dabba83", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "~2.0||~3.0||~4.0||~5.0", + "google/apiclient-services": "~0.13", + "google/auth": "^1.0", + "guzzlehttp/guzzle": "~5.3.1||~6.0", + "guzzlehttp/psr7": "^1.2", + "monolog/monolog": "^1.17|^2.0", + "php": ">=5.4", + "phpseclib/phpseclib": "~0.3.10||~2.0" + }, + "require-dev": { + "cache/filesystem-adapter": "^0.3.2", + "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0", + "phpcompatibility/php-compatibility": "^9.2", + "phpunit/phpunit": "~4.8.36", + "squizlabs/php_codesniffer": "~2.3", + "symfony/css-selector": "~2.1", + "symfony/dom-crawler": "~2.1" + }, + "suggest": { + "cache/filesystem-adapter": "For caching certs and tokens (using Google_Client::setCache)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Google_": "src/" + }, + "classmap": [ + "src/Google/Service/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "time": "2019-09-11T17:38:10+00:00" + }, + { + "name": "google/apiclient-services", + "version": "v0.123", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client-services.git", + "reference": "a8c3c7563729ecb98a9ed66f675366527bcbad4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a8c3c7563729ecb98a9ed66f675366527bcbad4d", + "reference": "a8c3c7563729ecb98a9ed66f675366527bcbad4d", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5" + }, + "type": "library", + "autoload": { + "psr-0": { + "Google_Service_": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "time": "2020-01-19T00:24:13+00:00" + }, + { + "name": "google/auth", + "version": "v1.6.1", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-auth-library-php.git", + "reference": "45635ac69d0b95f38885531d4ebcdfcb2ebb6f36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/45635ac69d0b95f38885531d4ebcdfcb2ebb6f36", + "reference": "45635ac69d0b95f38885531d4ebcdfcb2ebb6f36", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0", + "guzzlehttp/guzzle": "~5.3.1|~6.0", + "guzzlehttp/psr7": "^1.2", + "php": ">=5.4", + "psr/cache": "^1.0", + "psr/http-message": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^1.11", + "guzzlehttp/promises": "0.1.1|^1.3", + "phpseclib/phpseclib": "^2", + "phpunit/phpunit": "^4.8.36|^5.7", + "sebastian/comparator": ">=1.2.3" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Auth Library for PHP", + "homepage": "http://github.com/google/google-auth-library-php", + "keywords": [ + "Authentication", + "google", + "oauth2" + ], + "time": "2019-10-29T20:13:04+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", "shasum": "" }, "require": { @@ -1239,7 +1387,7 @@ "rest", "web service" ], - "time": "2019-12-07T18:20:45+00:00" + "time": "2019-12-23T11:57:10+00:00" }, { "name": "guzzlehttp/promises", @@ -1519,26 +1667,27 @@ }, { "name": "laravel/framework", - "version": "v6.7.0", + "version": "v6.12.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "ba4204f3a8b9672b6116398c165bd9c0c6eac077" + "reference": "8e189a8dee7ff76bf50acb7e80aa1a36afaf54d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/ba4204f3a8b9672b6116398c165bd9c0c6eac077", - "reference": "ba4204f3a8b9672b6116398c165bd9c0c6eac077", + "url": "https://api.github.com/repos/laravel/framework/zipball/8e189a8dee7ff76bf50acb7e80aa1a36afaf54d4", + "reference": "8e189a8dee7ff76bf50acb7e80aa1a36afaf54d4", "shasum": "" }, "require": { "doctrine/inflector": "^1.1", "dragonmantank/cron-expression": "^2.0", "egulias/email-validator": "^2.1.10", - "erusev/parsedown": "^1.7", "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", + "league/commonmark": "^1.1", + "league/commonmark-ext-table": "^2.1", "league/flysystem": "^1.0.8", "monolog/monolog": "^1.12|^2.0", "nesbot/carbon": "^2.0", @@ -1598,14 +1747,13 @@ "filp/whoops": "^2.4", "guzzlehttp/guzzle": "^6.3", "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.2.3", + "mockery/mockery": "^1.3.1", "moontoast/math": "^1.1", "orchestra/testbench-core": "^4.0", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.3", + "phpunit/phpunit": "^7.5.15|^8.4|^9.0", "predis/predis": "^1.1.1", - "symfony/cache": "^4.3", - "true/punycode": "^2.1" + "symfony/cache": "^4.3.4" }, "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).", @@ -1623,6 +1771,7 @@ "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", "moontoast/math": "Required to use ordered UUIDs (^1.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).", @@ -1661,7 +1810,7 @@ "framework", "laravel" ], - "time": "2019-12-10T16:01:57+00:00" + "time": "2020-01-21T15:10:03+00:00" }, { "name": "laravel/helpers", @@ -1892,17 +2041,153 @@ "time": "2019-05-24T18:30:49+00:00" }, { - "name": "league/flysystem", - "version": "1.0.61", + "name": "league/commonmark", + "version": "1.2.2", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9" + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "34cf4ddb3892c715ae785c880e6691d839cff88d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fb13c01784a6c9f165a351e996871488ca2d8c9", - "reference": "4fb13c01784a6c9f165a351e996871488ca2d8c9", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/34cf4ddb3892c715ae785c880e6691d839cff88d", + "reference": "34cf4ddb3892c715ae785c880e6691d839cff88d", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1" + }, + "replace": { + "colinodell/commonmark-php": "*" + }, + "require-dev": { + "cebe/markdown": "~1.0", + "commonmark/commonmark.js": "0.29.1", + "erusev/parsedown": "~1.0", + "ext-json": "*", + "michelf/php-markdown": "~1.4", + "mikehaertl/php-shellcommand": "^1.4", + "phpstan/phpstan-shim": "^0.11.5", + "phpunit/phpunit": "^7.5", + "scrutinizer/ocular": "^1.5", + "symfony/finder": "^4.2" + }, + "suggest": { + "league/commonmark-extras": "Library of useful extensions including smart punctuation" + }, + "bin": [ + "bin/commonmark" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "PHP Markdown parser based on the CommonMark spec", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "markdown", + "parser" + ], + "time": "2020-01-16T01:18:13+00:00" + }, + { + "name": "league/commonmark-ext-table", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark-ext-table.git", + "reference": "3228888ea69636e855efcf6636ff8e6316933fe7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark-ext-table/zipball/3228888ea69636e855efcf6636ff8e6316933fe7", + "reference": "3228888ea69636e855efcf6636ff8e6316933fe7", + "shasum": "" + }, + "require": { + "league/commonmark": "~0.19.3|^1.0", + "php": "^7.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpstan/phpstan": "~0.11", + "phpunit/phpunit": "^7.0|^8.0", + "symfony/var-dumper": "^4.0", + "vimeo/psalm": "^3.0" + }, + "type": "commonmark-extension", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\Ext\\Table\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Martin Hasoň", + "email": "martin.hason@gmail.com" + }, + { + "name": "Webuni s.r.o.", + "homepage": "https://www.webuni.cz" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Table extension for league/commonmark", + "homepage": "https://github.com/thephpleague/commonmark-ext-table", + "keywords": [ + "commonmark", + "extension", + "markdown", + "table" + ], + "time": "2019-09-26T13:28:33+00:00" + }, + { + "name": "league/flysystem", + "version": "1.0.63", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "8132daec326565036bc8e8d1876f77ec183a7bd6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8132daec326565036bc8e8d1876f77ec183a7bd6", + "reference": "8132daec326565036bc8e8d1876f77ec183a7bd6", "shasum": "" }, "require": { @@ -1973,20 +2258,67 @@ "sftp", "storage" ], - "time": "2019-12-08T21:46:50+00:00" + "time": "2020-01-04T16:30:31+00:00" }, { - "name": "monolog/monolog", - "version": "2.0.1", + "name": "league/flysystem-cached-adapter", + "version": "1.0.9", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "f9d56fd2f5533322caccdfcddbb56aedd622ef1c" + "url": "https://github.com/thephpleague/flysystem-cached-adapter.git", + "reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9d56fd2f5533322caccdfcddbb56aedd622ef1c", - "reference": "f9d56fd2f5533322caccdfcddbb56aedd622ef1c", + "url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/08ef74e9be88100807a3b92cc9048a312bf01d6f", + "reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0", + "psr/cache": "^1.0.0" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0", + "tedivm/stash": "~0.12" + }, + "suggest": { + "ext-phpredis": "Pure C implemented extension for PHP" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Cached\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "frankdejonge", + "email": "info@frenky.net" + } + ], + "description": "An adapter decorator to enable meta-data caching.", + "time": "2018-07-09T20:51:04+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c861fcba2ca29404dc9e617eedd9eff4616986b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c861fcba2ca29404dc9e617eedd9eff4616986b8", + "reference": "c861fcba2ca29404dc9e617eedd9eff4616986b8", "shasum": "" }, "require": { @@ -2054,20 +2386,110 @@ "logging", "psr-3" ], - "time": "2019-11-13T10:27:43+00:00" + "time": "2019-12-20T14:22:59+00:00" }, { - "name": "nesbot/carbon", - "version": "2.27.0", + "name": "nao-pon/flysystem-cached-extra", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "13b8485a8690f103bf19cba64879c218b102b726" + "url": "https://github.com/nao-pon/flysystem-cached-extra.git", + "reference": "189abdafa0a86d92781e148ee8740ef80f4c5859" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/13b8485a8690f103bf19cba64879c218b102b726", - "reference": "13b8485a8690f103bf19cba64879c218b102b726", + "url": "https://api.github.com/repos/nao-pon/flysystem-cached-extra/zipball/189abdafa0a86d92781e148ee8740ef80f4c5859", + "reference": "189abdafa0a86d92781e148ee8740ef80f4c5859", + "shasum": "" + }, + "require": { + "league/flysystem-cached-adapter": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Hypweb\\Flysystem\\Cached\\Extra\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Naoki Sawada", + "email": "hypweb@gmail.com" + } + ], + "description": "Extra traits for Flysystem cached adapter", + "time": "2018-02-16T01:44:38+00:00" + }, + { + "name": "nao-pon/flysystem-google-drive", + "version": "1.1.11", + "source": { + "type": "git", + "url": "https://github.com/nao-pon/flysystem-google-drive.git", + "reference": "b99f4f8c1a344937984082a00f5bb33075c8410d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nao-pon/flysystem-google-drive/zipball/b99f4f8c1a344937984082a00f5bb33075c8410d", + "reference": "b99f4f8c1a344937984082a00f5bb33075c8410d", + "shasum": "" + }, + "require": { + "google/apiclient": "^2.0", + "league/flysystem": "~1.0", + "nao-pon/flysystem-cached-extra": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-api_v2": "1.0.x-dev", + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hypweb\\Flysystem\\GoogleDrive\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Naoki Sawada", + "email": "hypweb@gmail.com" + } + ], + "description": "Flysystem adapter for Google Drive", + "time": "2019-05-03T07:49:07+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.29.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e509be5bf2d703390e69e14496d9a1168452b0a2", + "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2", "shasum": "" }, "require": { @@ -2078,7 +2500,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^1.1", - "phpmd/phpmd": "dev-php-7.1-compatibility", + "phpmd/phpmd": "^2.8", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" @@ -2124,7 +2546,7 @@ "datetime", "time" ], - "time": "2019-11-20T06:59:06+00:00" + "time": "2020-01-21T09:36:43+00:00" }, { "name": "nexmo/client", @@ -2651,16 +3073,16 @@ }, { "name": "php-http/httplug", - "version": "v2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/php-http/httplug.git", - "reference": "b3842537338c949f2469557ef4ad4bdc47b58603" + "reference": "72d2b129a48f0490d55b7f89be0d6aa0597ffb06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/b3842537338c949f2469557ef4ad4bdc47b58603", - "reference": "b3842537338c949f2469557ef4ad4bdc47b58603", + "url": "https://api.github.com/repos/php-http/httplug/zipball/72d2b129a48f0490d55b7f89be0d6aa0597ffb06", + "reference": "72d2b129a48f0490d55b7f89be0d6aa0597ffb06", "shasum": "" }, "require": { @@ -2670,13 +3092,13 @@ "psr/http-message": "^1.0" }, "require-dev": { - "henrikbjorn/phpspec-code-coverage": "^1.0", - "phpspec/phpspec": "^2.4" + "friends-of-phpspec/phpspec-code-coverage": "^4.1", + "phpspec/phpspec": "^4.3.4|^5.0|^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -2704,7 +3126,7 @@ "client", "http" ], - "time": "2018-10-31T09:14:44+00:00" + "time": "2019-12-27T10:07:11+00:00" }, { "name": "php-http/promise", @@ -2758,28 +3180,29 @@ }, { "name": "phpoption/phpoption", - "version": "1.6.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "a8593bf5176bf3d3f2966942c530be19b44ec87c" + "reference": "77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/a8593bf5176bf3d3f2966942c530be19b44ec87c", - "reference": "a8593bf5176bf3d3f2966942c530be19b44ec87c", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959", + "reference": "77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959", "shasum": "" }, "require": { "php": "^5.5.9 || ^7.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.3", "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -2808,7 +3231,145 @@ "php", "type" ], - "time": "2019-12-11T13:45:14+00:00" + "time": "2019-12-15T19:35:24+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.23", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "sami/sami": "~2.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "time": "2019-09-17T03:41:22+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" }, { "name": "psr/container", @@ -3221,22 +3782,22 @@ }, { "name": "ramsey/uuid", - "version": "3.9.1", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5ac2740e0c8c599d2bbe7f113a939f2b5b216c67" + "reference": "7779489a47d443f845271badbdcedfe4df8e06fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5ac2740e0c8c599d2bbe7f113a939f2b5b216c67", - "reference": "5ac2740e0c8c599d2bbe7f113a939f2b5b216c67", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7779489a47d443f845271badbdcedfe4df8e06fb", + "reference": "7779489a47d443f845271badbdcedfe4df8e06fb", "shasum": "" }, "require": { "ext-json": "*", "paragonie/random_compat": "^1 | ^2 | 9.99.99", - "php": "^5.4 | ^7", + "php": "^5.4 | ^7 | ^8", "symfony/polyfill-ctype": "^1.8" }, "replace": { @@ -3246,13 +3807,13 @@ "codeception/aspect-mock": "^1 | ^2", "doctrine/annotations": "^1.2", "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1", - "jakub-onderka/php-parallel-lint": "^0.9.0", - "mockery/mockery": "^0.9.9", + "jakub-onderka/php-parallel-lint": "^1", + "mockery/mockery": "^0.9.11 | ^1", "moontoast/math": "^1.1", "paragonie/random-lib": "^2", "php-mock/php-mock-phpunit": "^0.3 | ^1.1", "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5", - "squizlabs/php_codesniffer": "^2.3" + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { "ext-ctype": "Provides support for PHP Ctype functions", @@ -3304,7 +3865,7 @@ "identifier", "uuid" ], - "time": "2019-12-01T04:55:27+00:00" + "time": "2019-12-17T08:18:51+00:00" }, { "name": "sabberworm/php-css-parser", @@ -3402,16 +3963,16 @@ }, { "name": "seld/phar-utils", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + "reference": "84715761c35808076b00908a20317a3a8a67d17e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/84715761c35808076b00908a20317a3a8a67d17e", + "reference": "84715761c35808076b00908a20317a3a8a67d17e", "shasum": "" }, "require": { @@ -3442,7 +4003,7 @@ "keywords": [ "phra" ], - "time": "2015-10-13T18:44:15+00:00" + "time": "2020-01-13T10:41:09+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -3508,16 +4069,16 @@ }, { "name": "symfony/console", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" + "reference": "e9ee09d087e2c88eaf6e5fc0f5c574f64d100e4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "url": "https://api.github.com/repos/symfony/console/zipball/e9ee09d087e2c88eaf6e5fc0f5c574f64d100e4f", + "reference": "e9ee09d087e2c88eaf6e5fc0f5c574f64d100e4f", "shasum": "" }, "require": { @@ -3580,20 +4141,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:06:17+00:00" + "time": "2020-01-10T21:54:01+00:00" }, { "name": "symfony/css-selector", - "version": "v5.0.1", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837" + "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/19d29e7098b7b2c3313cb03902ca30f100dcb837", - "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ff60c90cb7950b592ebc84ad1289d0345bf24f9f", + "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f", "shasum": "" }, "require": { @@ -3633,20 +4194,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/debug", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e" + "reference": "89c3fd5c299b940333bc6fe9f1b8db1b0912c759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b8600a1d7d20b0e80906398bb1f50612fa074a8e", - "reference": "b8600a1d7d20b0e80906398bb1f50612fa074a8e", + "url": "https://api.github.com/repos/symfony/debug/zipball/89c3fd5c299b940333bc6fe9f1b8db1b0912c759", + "reference": "89c3fd5c299b940333bc6fe9f1b8db1b0912c759", "shasum": "" }, "require": { @@ -3689,20 +4250,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b" + "reference": "a59789092e40ad08465dc2cdc55651be503d0d5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", - "reference": "a1ad02d62789efed1d2b2796f1c15e0c6a00fc3b", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/a59789092e40ad08465dc2cdc55651be503d0d5a", + "reference": "a59789092e40ad08465dc2cdc55651be503d0d5a", "shasum": "" }, "require": { @@ -3745,20 +4306,20 @@ ], "description": "Symfony ErrorHandler Component", "homepage": "https://symfony.com", - "time": "2019-12-01T08:46:01+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f" + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f", - "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", "shasum": "" }, "require": { @@ -3815,7 +4376,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-01-10T21:54:01+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3877,16 +4438,16 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "40c2606131d56eff6f193b6e2ceb92414653b591" + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/40c2606131d56eff6f193b6e2ceb92414653b591", - "reference": "40c2606131d56eff6f193b6e2ceb92414653b591", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", "shasum": "" }, "require": { @@ -3923,20 +4484,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-11-26T23:16:41+00:00" + "time": "2020-01-21T08:20:44+00:00" }, { "name": "symfony/finder", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" + "reference": "3a50be43515590faf812fbd7708200aabc327ec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", + "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", + "reference": "3a50be43515590faf812fbd7708200aabc327ec3", "shasum": "" }, "require": { @@ -3972,20 +4533,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-17T21:56:56+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5" + "reference": "c33998709f3fe9b8e27e0277535b07fbf6fde37a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8bccc59e61b41963d14c3dbdb23181e5c932a1d5", - "reference": "8bccc59e61b41963d14c3dbdb23181e5c932a1d5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c33998709f3fe9b8e27e0277535b07fbf6fde37a", + "reference": "c33998709f3fe9b8e27e0277535b07fbf6fde37a", "shasum": "" }, "require": { @@ -4027,20 +4588,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88" + "reference": "16f2aa3c54b08483fba5375938f60b1ff83b6bd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e4187780ed26129ee86d5234afbebf085e144f88", - "reference": "e4187780ed26129ee86d5234afbebf085e144f88", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/16f2aa3c54b08483fba5375938f60b1ff83b6bd2", + "reference": "16f2aa3c54b08483fba5375938f60b1ff83b6bd2", "shasum": "" }, "require": { @@ -4117,20 +4678,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-12-01T14:06:38+00:00" + "time": "2020-01-21T13:23:17+00:00" }, { "name": "symfony/mime", - "version": "v5.0.1", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79" + "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79", - "reference": "0e6a4ced216e49d457eddcefb61132173a876d79", + "url": "https://api.github.com/repos/symfony/mime/zipball/2a3c7fee1f1a0961fa9cf360d5da553d05095e59", + "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59", "shasum": "" }, "require": { @@ -4179,7 +4740,7 @@ "mime", "mime-type" ], - "time": "2019-11-30T14:12:50+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4534,16 +5095,16 @@ }, { "name": "symfony/process", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", + "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", "shasum": "" }, "require": { @@ -4579,20 +5140,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-01-09T09:50:08+00:00" }, { "name": "symfony/routing", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273" + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/51f3f20ad29329a0bdf5c0e2f722d3764b065273", - "reference": "51f3f20ad29329a0bdf5c0e2f722d3764b065273", + "url": "https://api.github.com/repos/symfony/routing/zipball/7bf4e38573728e317b926ca4482ad30470d0e86a", + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a", "shasum": "" }, "require": { @@ -4655,7 +5216,7 @@ "uri", "url" ], - "time": "2019-12-01T08:39:58+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/service-contracts", @@ -4717,16 +5278,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40" + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/897fb68ee7933372517b551d6f08c6d4bb0b8c40", - "reference": "897fb68ee7933372517b551d6f08c6d4bb0b8c40", + "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", "shasum": "" }, "require": { @@ -4789,7 +5350,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-11-12T17:18:47+00:00" + "time": "2020-01-15T13:29:06+00:00" }, { "name": "symfony/translation-contracts", @@ -4850,16 +5411,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.1", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0a89a1dbbedd9fb2cfb2336556dec8305273c19a" + "reference": "7cfa470bc3b1887a7b2a47c0a702a84ad614fa92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0a89a1dbbedd9fb2cfb2336556dec8305273c19a", - "reference": "0a89a1dbbedd9fb2cfb2336556dec8305273c19a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7cfa470bc3b1887a7b2a47c0a702a84ad614fa92", + "reference": "7cfa470bc3b1887a7b2a47c0a702a84ad614fa92", "shasum": "" }, "require": { @@ -4922,7 +5483,7 @@ "debug", "dump" ], - "time": "2019-11-28T13:33:56+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -5095,6 +5656,7 @@ "psr", "psr-7" ], + "abandoned": "laminas/laminas-diactoros", "time": "2019-11-13T19:16:13+00:00" } ], @@ -5155,78 +5717,18 @@ ], "time": "2019-10-21T16:45:58+00:00" }, - { - "name": "facebook/webdriver", - "version": "1.7.1", - "source": { - "type": "git", - "url": "https://github.com/facebook/php-webdriver.git", - "reference": "e43de70f3c7166169d0f14a374505392734160e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", - "reference": "e43de70f3c7166169d0f14a374505392734160e5", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-zip": "*", - "php": "^5.6 || ~7.0", - "symfony/process": "^2.8 || ^3.1 || ^4.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "php-coveralls/php-coveralls": "^2.0", - "php-mock/php-mock-phpunit": "^1.1", - "phpunit/phpunit": "^5.7", - "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", - "squizlabs/php_codesniffer": "^2.6", - "symfony/var-dumper": "^3.3 || ^4.0" - }, - "suggest": { - "ext-SimpleXML": "For Firefox profile creation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-community": "1.5-dev" - } - }, - "autoload": { - "psr-4": { - "Facebook\\WebDriver\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "description": "A PHP client for Selenium WebDriver", - "homepage": "https://github.com/facebook/php-webdriver", - "keywords": [ - "facebook", - "php", - "selenium", - "webdriver" - ], - "time": "2019-06-13T08:02:18+00:00" - }, { "name": "filp/whoops", - "version": "2.5.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96" + "reference": "fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96", - "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96", + "url": "https://api.github.com/repos/filp/whoops/zipball/fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130", + "reference": "fff6f1e4f36be0e0d0b84d66b413d9dcb0c49130", "shasum": "" }, "require": { @@ -5235,8 +5737,8 @@ }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -5245,7 +5747,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.6-dev" } }, "autoload": { @@ -5260,8 +5762,8 @@ "authors": [ { "name": "Filipe Dobreira", - "role": "Developer", - "homepage": "https://github.com/filp" + "homepage": "https://github.com/filp", + "role": "Developer" } ], "description": "php error handling for cool kids", @@ -5274,20 +5776,20 @@ "throwable", "whoops" ], - "time": "2019-08-07T09:00:00+00:00" + "time": "2020-01-15T10:00:00+00:00" }, { "name": "fzaninotto/faker", - "version": "v1.9.0", + "version": "v1.9.1", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "27a216cbe72327b2d6369fab721a5843be71e57d" + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/27a216cbe72327b2d6369fab721a5843be71e57d", - "reference": "27a216cbe72327b2d6369fab721a5843be71e57d", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", "shasum": "" }, "require": { @@ -5300,7 +5802,9 @@ }, "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "1.9-dev" + } }, "autoload": { "psr-4": { @@ -5322,7 +5826,7 @@ "faker", "fixtures" ], - "time": "2019-11-14T13:13:06+00:00" + "time": "2019-12-12T13:22:17+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -5374,26 +5878,26 @@ }, { "name": "laravel/dusk", - "version": "v5.6.3", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "c342e3e802607d0ca081b6b8021811e218b5fe5d" + "reference": "c95d70b5fff000c54a9186c2011b236592fcf948" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/c342e3e802607d0ca081b6b8021811e218b5fe5d", - "reference": "c342e3e802607d0ca081b6b8021811e218b5fe5d", + "url": "https://api.github.com/repos/laravel/dusk/zipball/c95d70b5fff000c54a9186c2011b236592fcf948", + "reference": "c95d70b5fff000c54a9186c2011b236592fcf948", "shasum": "" }, "require": { "ext-json": "*", "ext-zip": "*", - "facebook/webdriver": "^1.7", "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0", "illuminate/support": "~5.7.0|~5.8.0|^6.0|^7.0", "nesbot/carbon": "^1.20|^2.0", "php": ">=7.1.0", + "php-webdriver/webdriver": "^1.7", "symfony/console": "^4.0|^5.0", "symfony/finder": "^4.0|^5.0", "symfony/process": "^4.0|^5.0", @@ -5438,27 +5942,26 @@ "testing", "webdriver" ], - "time": "2019-12-03T21:07:05+00:00" + "time": "2020-01-21T20:57:39+00:00" }, { "name": "mockery/mockery", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66" + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/5571962a4f733fbb57bede39778f71647fae8e66", - "reference": "5571962a4f733fbb57bede39778f71647fae8e66", + "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.6.0", - "sebastian/comparator": "^1.2.4|^3.0" + "php": ">=5.6.0" }, "require-dev": { "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" @@ -5466,7 +5969,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -5504,20 +6007,20 @@ "test double", "testing" ], - "time": "2019-11-24T07:54:50+00:00" + "time": "2019-12-26T09:49:15+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { @@ -5552,7 +6055,7 @@ "object", "object graph" ], - "time": "2019-08-09T12:45:53+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "nunomaduro/collision", @@ -5720,6 +6223,66 @@ "description": "Library for handling version information and constraints", "time": "2018-07-08T19:19:57+00:00" }, + { + "name": "php-webdriver/webdriver", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/php-webdriver/php-webdriver.git", + "reference": "e43de70f3c7166169d0f14a374505392734160e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", + "reference": "e43de70f3c7166169d0f14a374505392734160e5", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-zip": "*", + "php": "^5.6 || ~7.0", + "symfony/process": "^2.8 || ^3.1 || ^4.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "php-coveralls/php-coveralls": "^2.0", + "php-mock/php-mock-phpunit": "^1.1", + "phpunit/phpunit": "^5.7", + "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", + "squizlabs/php_codesniffer": "^2.6", + "symfony/var-dumper": "^3.3 || ^4.0" + }, + "suggest": { + "ext-SimpleXML": "For Firefox profile creation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-community": "1.5-dev" + } + }, + "autoload": { + "psr-4": { + "Facebook\\WebDriver\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "A PHP client for Selenium WebDriver", + "homepage": "https://github.com/facebook/php-webdriver", + "keywords": [ + "facebook", + "php", + "selenium", + "webdriver" + ], + "time": "2019-06-13T08:02:18+00:00" + }, { "name": "phpdocumentor/reflection-common", "version": "2.0.0", @@ -5774,16 +6337,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.2", + "version": "4.3.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", "shasum": "" }, "require": { @@ -5795,6 +6358,7 @@ "require-dev": { "doctrine/instantiator": "^1.0.5", "mockery/mockery": "^1.0", + "phpdocumentor/type-resolver": "0.4.*", "phpunit/phpunit": "^6.4" }, "type": "library", @@ -5821,7 +6385,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-09-12T14:27:41+00:00" + "time": "2019-12-28T18:55:12+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -5872,33 +6436,33 @@ }, { "name": "phpspec/prophecy", - "version": "1.9.0", + "version": "v1.10.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { @@ -5931,7 +6495,7 @@ "spy", "stub" ], - "time": "2019-10-03T11:07:50+00:00" + "time": "2020-01-20T15:57:02+00:00" }, { "name": "phpunit/php-code-coverage", @@ -6187,16 +6751,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.18", + "version": "7.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fcf6c4bfafaadc07785528b06385cce88935474d", - "reference": "fcf6c4bfafaadc07785528b06385cce88935474d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { @@ -6267,7 +6831,7 @@ "testing", "xunit" ], - "time": "2019-12-06T05:14:37+00:00" + "time": "2020-01-08T08:45:45+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", diff --git a/config/app.php b/config/app.php index 5bc7a0ae..2df0d0a4 100644 --- a/config/app.php +++ b/config/app.php @@ -173,6 +173,7 @@ return [ // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, + App\Providers\GoogleDriveServiceProvider::class, ], diff --git a/config/filesystems.php b/config/filesystems.php index 77fa5ded..0c492a36 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -64,6 +64,15 @@ return [ 'url' => env('AWS_URL'), ], + 'google' => [ + 'driver' => 'google', + 'clientId' => '', + 'clientSecret' => '', + 'refreshToken' => '', + 'folderId' => '', + // 'teamDriveId' => env('GOOGLE_DRIVE_TEAM_DRIVE_ID'), + ], + ], ]; diff --git a/database/seeds/ConfigsTableSeeder.php b/database/seeds/ConfigsTableSeeder.php index 1c0292b0..091dfc38 100644 --- a/database/seeds/ConfigsTableSeeder.php +++ b/database/seeds/ConfigsTableSeeder.php @@ -231,6 +231,26 @@ class ConfigsTableSeeder extends Seeder 'name' => 'cadet_list', 'state' => 0, 'data' => '["#"]' + ], + [ + 'name' => 'GOOGLE_DRIVE_CLIENT_ID', + 'state' => 0, + 'data' => '["'.\Crypt::encryptString('').'"]' + ], + [ + 'name' => 'GOOGLE_DRIVE_CLIENT_SECRET', + 'state' => 0, + 'data' => '["'.\Crypt::encryptString('').'"]' + ], + [ + 'name' => 'GOOGLE_DRIVE_REFRESH_TOKEN', + 'state' => 0, + 'data' => '["'.\Crypt::encryptString('').'"]' + ], + [ + 'name' => 'GOOGLE_DRIVE_FOLDER_ID', + 'state' => 0, + 'data' => '["'.\Crypt::encryptString('null').'"]' ] ]; diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8daed8b79ea08d11cf8fad9e9d8b26b2d4d548 GIT binary patch literal 4042 zcmY*cX*iT^{~p}K46+tdF_uX7Y?Cd6A+j%pu}o#(TQrs|-ST)+iONzDT5MyTFc^dT zkt|u0Wtxn69%TzdgvT=e`oG8f;r(zezw=57%*=_Z;jj5AjO!!eFpNR_D!~ z4$k)93&DM`JADo1fx!ebt;{hl(RoYxaWy`!QC;U`GDJ)wyyZ<${8%0#Q?a@*q0DIbm`11fbMwHe8Cw;ELwZtL`4h3xZtho;KJtl^(8fJkR|(NdSVG%Em}= zHp%qtZFlJtmIr;7r#B7SZVY^xC5#2k>`YN-7pWT_v*bZqTs0gc1h~qfJ!{$s24FiJ z@&g~mlI0MmEj4^robLd9RJtgTCA(!lvn#UepuwChMwJ4PCK#s5QDa;4nc{_U&$9!zqvpPBcIy1pxP{^kYDZ?ADGzo)0()+9QkO$Y&9}n8>HhVF4}^unXQ5OEy5n zD(o!ARN^hgIZ#krEZGPVYZ3V;-YjRJS_OaQno6l2s6G?P7T&Y2sU}E+C~?p^Hjjkw@e2X8^BybFp8$8R>tl#rY8$fa}p3ggvSi1Lr+$fg+6mb zXU`hP*%iN_?i>N0$kJCD>hZHV`1{N##vUJt6uw;r%;tph%=d#_EjtpxRavxE!^5Hn zuneYqr$rMA3nZepW<~N7%{P(7F`Ig&N+8zH5c{rV-%XL)JJflyZXW?%!}{o*=cn~9 z=tI|`3eM`C$+QFeJ_rG&(#ace>4B;kKjCqH5sOH-`*KuN@0kDiR|T|Q^&wDFCc3Kg*&pynh$``xGhOup;uYm+*wgxd1#i@CcB{-? zYVeA9!gQVVRxgzSaUUW}FVjBHIfKuGry=7GVFwYM^klhk$d4KGUz-&Wb# zQ3@M(Q*rxyaaY6;h4!kk$L*wxc`7xwb^N&9^2HJHHKU(Sh?g<1b*wTKAx1uY(TJqgO{X*toMcRkxZDjT&v+rx5!TNajMOmLZrzG_1CEjl*v!l- zD@1X3F)t%MCoOzc>Pg`hU-dupTY1(g?BO^=Fim*(9&;YZQ-|j-7)fC|5q24GPpsZD zjxZ{j0LE>63k0YqhH%MX4CAUWx=>q;)KYJ%(GjP@$>Yms$q<;U3^{U-{QMqs5jZ~N zOaWNGq*B{6fxIE-7x3y;spNKH=#gloxw?^RblIi^kd6pH-!4pDFD37B1ppCtzwfpY zJ3Is3B$;S~S2=3G8WNcg@GqN*Q=|52TJ5%$8mLAsj(`eJMuVV;Ne!8)5D{>5Xz6!_ zxdlrgaN4=QHC_taEHnew;1O!8+q31(b$^u2sauo2yFenH+?0QWTI@DndGuc5gMvuO z-x&uF#Ik%pifZ9nn;-np6M=MSg+_8{S9k&H&gN9&<0Mvk^EiC{&39R2U)aRc1}qYEb%R9uZdK% zZ`UM#>T<d^;TH}n81y!)koicKmotH{iC4J0$UuoEip=r#`v z;=|n?H-l6_b$gB6O{BNeQ2dNMGtV`Uh_}M%zEIy{A(!jzR$j?2kGcVE`QL&zq~Q!A zGRR4n&rZ4h;s~%`c<&<=emKwb{Y0bei&VjG@AJwA#){EqsmZZK{66P0;VP$qN5fco z>J`+p{9>fq0@K^T_1eI2pJhNd<3d`@VCGWR(Zjnh7WwDne5VF3RC=pznWiQ;J6|-d zn{HuGf2~HU|8;I**n$iE(cC!IR{Fk~i)xVv(m)&578c#oa4uV5x)R5Lw!fS z)nX-N>8xw3H=NCRdjI$};jSaA3ni#yyUBu}n6cUC62(0k=XBG|^Lo z&LsjKFRy+T?|u265yr9*kD?FS@oQdMSp)RPA2#p~IOFyzthQr{651XFpPOejA79fu zmG9&*8F+b9%D73hn6LG@$!zm*&0NKaxhAR75`KEXcPVpH1rErVVo%D@z3czDK)Rn-W#CkLy0C|J< zp~+ZMvL5wo&NkAa&_s^$W>pd{9fhf1q@K%3*}h?HB`G4cgdJfd=#gDxM6q9Ga5(>sJxc7UbX z9&r-f7x$Dwze03P`CN2blj(F(bdg>X*)?4Wf*fOxCz@n)*GdaqNPS)@L;JgOK-9k{ zSgq2gaJ9%m*yALcNcXwZ;Tti*cqo_>JKRC)z)fEI@N_h|*->*}aMa!mq&MH%)&!ZI zr1INQL=lnTs+U=+Lt>ZSdSBG|n*r#H^V+`A0dKf`&<&yu46>9TUrG5iqDDLVtAmfQ z+kl#|kGzL>=FAsJk;lO(R*{iq15+Y^oS)h>74@xB5uSMRQROf=?Mr-bAgWG0-SH(Whd-AMffZuX`1yBiufT1>Uv@Cmro8lV6rbZmv9n4;jq13TOr^TUu>9< zYP4%`9;CMyY3s;uDZb5EDOd5u5#=&3mU`LqGGwX^&$-GFZCc$N{my8Y7a;6@ZS?nM zQjd3urOgDN*FBcYTDq@>C`K|)PUN=Z@0O4HyWgv9VkFF^;iaK6a1_aJT`CzSl6Nw9 zW+|};l`GeX%VrJ7C7FH?EWzh9fr!KlA`t(9ILBE@2M94j;P zbt$H`-VS>4ZnpdH-Q~fP;IA|-?y`{Ap>#IzbMqm- zKj2d~_!_g+sZVdkgRgXK3EN6T{X%oC_6G~@pn5ssnHiPp1mj|fAc%E
p^j#o9pN_uYzTbiDMHf*o$ejjQN8pheVr?tQTH6fKQJ8}6QuB_A`|o+R0~Ck58;iD{l_h zRB(@pd$8HpAwgfh+ad6_Y*q8Hf#rFx`%AHqON4Zw3djN3D_{TF1rU(jerIjZDYz+Y z6*6tXku$bvRiVD#<0X4i%JAyEZ;9dvHkvZ{Sfwxe&J6-*v_j~Hkg)1f zLKgFhdqMWcgse1ub8UII+;IWSqwX_;4|H-nz%a@D?27TZI^TzjWkzTE(X_Iq%B4x! zE$39-K4H%{!}DX4s<&dTUyoD<=&*18SaT&Cz}=QJD7dp#FPKYuo^l{Dhb^2jD1F+fQ2HyK}^Z%@nCSnM*B8kKZ2$%6iX*Edto^`)D3?jt0SjIJ$5(gowgn96 zH`B0P`S-wQX7_3Ol<r7S~b{u4yYKA8laY!7Agt`@KxCf509DvK`>U!Ly$*#SQ8V_RH?@Y z5=4+!K$0MVK$HXoj6iKcs~FrNfFOylf;$Lk*$@dP+#U3s@4NTA{iFPm{aZ6@)~s2q zwPwxCnO%W9mwdYNQvd*#fPUL|1Ar+CO@U7qpdaMNZXE!uS_*F8viHZL(ZTcwExqBr zZ?z5T8ve|qTzmHV=gU1=e(kO%rs==(A*GOT04K>uUt$f)++&Vk9X!EvUVYtx%5dzf0> zvF4aTHsU$FZ@6f%vE^tLs?6M9hBAiitX~YY{<04MXzN5m0!0@JWXzWcV*?`qsjG;g$f0HCjlGHDjv3`m6O*{lr!%|2?CfrYL#Oes_)spglG2a8$X0<`ZeKQ`Ch ze>NK(49PzQ{10U<%HWy;troA7-!;zzS{F!!Bj$~$q*#R<3#@w8dPf~(0?fAF z=Kz3GNhZ;47GY+i)&IWfg^BvrWt-o})d z6j-|fAu=pB#b-W{VJ8*(WP3j_fBijt-7G_?dAizY{gB;N^jO_epBqO79ZLa91>5Y2 z(PW@Va{_rr_?J1q<8y#g&SnqHwZditsAVjAgx+hIA@WN;*m*z{{IqoHgCN~6h%F)6 zm6)|2NI?ble-va1Wln6Bxe|JSuJc%I zUY_~0#NLWwbgteulU1$+3?RNnnS75t8vyrnOBMkk{uoSx2Y=WUuy`aikaS(6)%%0w z3xNkUY_o=DDA^RKJ4`m`nGXa`besUbRR~qZtke9I#ICe3di-TbsOlHGRB+8!kNs+! zcvKfUbjh36yNiBd2zk}kGOeB0_n3@5nZ@VEVBtHdcHwy?6_rxq(eo*fO!^*g%52*S z$v5O;u|3L5B~_IYp*CKRGr0f>BhuT--jpG3*5zb^2lHA@wJTBncs*4)zV8hy!QW?% zuO(HvCvEd`)fHCHwv@!uni`}Cca=PN{lyGnjlLQf?3>8A>8QWee3&J6htc)6okX!Jy^_>i16m_?mH0hw^A9pwZ?lbIFx}VsB@eM{*a@f3)Rmawz zu_+0wWH%lk_-Q7(o@(Rt^6GpX8%yvxiM37+YpmYTbIduYn|S|_XwJP4-|gx8KO#i=@vBYx;!N* z{pH0pJr~7cLT)53QhH>?TVOa1D!L>CJDnu&19}90k@1D>6+Mp6A=B9SH+Ub4^gs!dS(HlRw`X77UAs~a#0ks>If{w1PJmc!@wd6o_+ z)Yw){s`v_tk!y$qHrUFpkY+Cb6)Gdk2(mH~11Ui~%)~2jaT=&*Fy9aXY(SS8-d~9{ zn2OiJD3bmkB+?Ya=fnHUw7iyoW(35L<*#VTc`lj>h5FOhp%if=Y520?TVTUlStH3Z z_kSZaw-u|N@{^k!^yh&%G#jxng||{D>0cX3iV-Uz^@3Ib-{Tlu{eO^D$bhV5DY;{$ zbSt2+M`+lKDU_u&SqfT~WORhel<=?a16Tj_Oqfq4dd;Pge+YrcZtvM|F|B4jA6 zZl~NpJWSU8M41eLm+bd^)L`s7kRpajqTE@nx%e6)a7DMSFkm^6uE?`?)H?%-`-%xfzcOsoS%na*bp3Vhw)(hrMT<5FqWIi| zwYXKLD(CvdkG9Bj<6`#^_#2-J zvyPW)9@lDvTrhbEzT^8MH)0}ry?xhutKJ;Gx!L((dZ)ZC-*-4JBIvUBV)qDii1bYR zA26)V=sZm3-Z()Bt!g4LS4UqP3#gr5D_u65#63uASrpgvYhmAvV%&|7#m--{n=T4M zo#j9rZGL3m14FE?SitfAhkGC__0FZFR$V{w&uDT(r=(0TMVbR_nO{a1L9xtFMVi>i zmE32Bx|i#kuXsr1fi3FmQ0B?@wX&WprO?I7Cgiii{%NXmrvk%1{fbBz*~E^mC$`wc zp+;Rqii?M}n<| zA<5NO0^&X3J6i_OX7lfhdddj~ZA49w&;3UaL-FH8pMjNVjS`pA4BBA(S@1WkpSwb) zt1`Tz$w!aGhzR#e&JMLya2q^Cntyl3qrYW{Nm)Qc6Zg=9j>D5JPMf5ZNw=AE2Xx0A z9tm$x+&zUHgpc|W6X>v3y|aoQLBAz|Z?BcLYqPCukr@Z6u-AGMtAVFJ@U@#$O?ok_ zg3t4LE@j?@uS031+EFI2sg z+kFbH&!RoS)L6!+F0H{8YW;HD@m7asSAuo(D_W7{5fsa?6lqG3jiMtD9-^T^U!=!U zbb}5`VZ5K~ugjRh^v!9?wvghnPI!Hz-^AIBf{L+p6ERtzh1pdW1dlW;4knjSCY^ETvg>=*ezl_$5@Et9?OaVy zCfY--(j|+ycMKrEBgz8aLMW|ui-?-y-@D%Ehj~$cJ~u)!jHV_qE2#EhukiL4dPD5W z+Q$-M3)i}DA$@A=!CaO+Tr*X>H+9{He$=m-B}gCgHA|!kg|$VcqlP*ycEM52n9Z?s z0+zOt*Rf;3Q6`Xctn*$juNP)js4KPWHAH%%rDlwh3TIrOX5co@*jvOg-Y3M6_H_T@ z3Z$)b$wancZjX3*{y6oxkbXXePi8t1TFX@Qhxx~EvWEw{uO7*IKT-VdX0%(XR({57 zdCtL^bdjdOO*Lxi`Qz>FTq+&sT*KbdvzXtjjDg>Fr4eiYP(Uxr*7rPig4osTEfVQY zl42-!numl$pG)0Ph^&r1x1-1!bEE>Hvi#|*+}k}1(UKwxf78tjqMhBXiraJwVSB%jZU8hYkQ}9A3vum-4tduztO)>Eat1j9bIpxwGi}U z)M`0NRF{uk5PpAhM^AoFNc3Qu-bVXK*Bi2r-X;Ap$h`V`I@HF9l{p&YE;j)$eR1J50LNB;>R<8-YIJI`QOxgMjq(8AB4C3 zx^jey$tk7vF$>LOnJTy$hU(xd%^%s!o zKG{!|B8RS3MSOpxGSfaH(>0(aOBeIIR7yvy48^jmHM(18dX!6Wx6bwqEV8F&atGU* zuW{`|gA1WH-nH6zvEWkt$!}iyjFmg2ye{bHA-rq%OQHhSKH;zFQFr1tw|I`^6OPnT zm9dItPA)lC`VG4hIsg~KnO{5&K-NaWN%&P7%Xpebn+&Yyz^_h_eK zw|d4L&bjOz7HmrZIrxBZU0nDn%A_NFhJ%m!C2~5e_{eTdjvWZ$`SNZu7<3sOnd`kL z*p3j2a+7ub;b=NvOE`cMU6ulQw-Tm7cn~d?LYs&%n1hG=peXn&sgN5GRD=h2BC&8? ziqtcIGswYy#XMa@rT>X?OOO>!hv9oDcNY}(N+=at@*H+?cxJjGw1bZGzlsMLx!ztL zwggnG(J*r1#_5w5*2Xd@Ol2LML(3v(oc{$pn5^wbt_+|K zP>;3W#^Lc93A)7>UeTV~ftstxmCenR)ByTLl(=~xuA}c3X@0=4zXBm@(=&-=B+w&d$Rv{uvLJrykLCY0ok_ z_&=Imk`~@9XItjsW4gU1@1CVU|2&b2F@Ps* zG-D&Phl`dN{cQlqkw{tY%=Z1)rVD3LPYfO6zQ+mKCOP;RC13t0TPjosnU~-}$Jb@Z z3YLU2`5SIA4-dw|g^DOG&vW@MkkjPCq{!_FVh(oRAHv}&&QH%t-cI6lQ>U|M(d>N(2J`Ss22m4ltfox< z8*7n)kGW+C*DYQZG2!r&9e6)&6LTtQD`wGFj^r&Ag^P+N+XT8|LCC(@gV~;Rf-;$l zbNUAerRnOC$L-dhA?rB2+&u658+Xy4`Eh!}bcI6lGqFD&pt*EeL(VbY~8AU7<{Nc!lJ1c+)x^61uI!Go+NmJ450+S8u165jg@! zra=6)ND~0>a70s$mm+GRqf%HiPBS5Krp9Anx1W~0qS=x-X->>Y@p^c^GuU(!32pmU zDjWx0<3Wf#lLxzt^SOz^ezn?fYh77TNdb=+wz@UeA5)9DnV!g`H7WoPr8Q_BdZwQ*I?evd`P5*Us!)6y*q|sqF z%mWXm9Hh(50%6+0i;`y$V^!h>%48xv=b}UgF|5RF)M1fG+ZeY&j!Kb1NEIjfQIlZ8 z;*DGBX4#U55W{jE>Yu)Jw`@s)cebi7W1&d-l=rsUh?PQw#Lo zkLO_p>MyBsGUiK#9u*!q@U4oYI-8L}No`~=@!KsJQ81P+?P>cKAJYaguwB{6X?)BT zh_R%rj50~1Cv)7x3{0QIdhCX^pxY%?SjIp7683Tg&aw)?5iRAvk{tjGsuTRi*S7vU zMH~Yblp+zP=xv3r1ZlT}U$Iup@&L!~wjn$CXNd8McsJZhf|B^!r8GWNn8$lT9Jg&H zN`+pKRX&eBvmYkR3#p_`ntS#AipTY!nxP{^nkBfn?>N|zdc@kadM^g$Tr)R}@8Jq| zJ}b1XhRxb)B1agIO#v?&=nl_09ZCJkuO)rf6K%aomrk`(JhbGk#7^_FG2784iZg+06ruWJ> z-l-#q$a*!lo%Kpk5={FZD(q@!1T$XFezud^u4=!#iVd}m}GoYAoL*uFQ_Q8v+ zA@o`?&pq#_I{KFcA74L=)vl|vgTmY25T-~2$>&&K=x>n@lU?J;MT(x`$DT}a_ zqdIOsh8|m^t8^OV=2W!&`f;l67(-z_&Hp`1az6ZX=*6e=HaA`Q&7+ji)Iw&GtD0O0 zX|a;w5OqFFC5<8Hg()p1Li3b2qSp#0dP!{2)7GARLw%U6Mhl;StoxMFO*T2Rb=!qh zC7&`GMOB7*z8mrmr|-)+<$Sa4mW<2{)-iWB3>PuC=#K5|5k~Y_Pw&`k3DBq_P3N*B z)-8{O5!oyom-^vbV@NROUJNI?%G*LbD>5`B>|`vDbb(g*;p z8O9O5M)uWzgU!FH>9J9kLKrcGietx+Ym<#CN`(85e)wveP~kMHvSUu8%vFZ0sn}KACsa6AaxiYj#6PQ08DiWOFY`< zKP4%~O@P;BWaf)`mKk|`wHeU2txETBp$kwO*n&P7WKt#*9Bu-)Z1vVat2I^W8kA^q zlkkyXFWU#GvRUQ;&3xG^0~*!wIs%YE@J}&$NBa-D=`qJ_-vk{0`aej5FaUsIbezBQ ze@2ZX{oqTfgaAs!P(?A3W<&1B@(*yq94q+-XHhgv(G+j?|XjSyVkj9Wns*Z5JMa|aDd7^(YU{mn?9^`k20a`r2dhgJr zHpuLaeJHH%dO6-U_T|2eSz-~Gy}>wsn!4lK-496C~(jpwhxt|jqXS>Bw9pjBa@^9kqcWomwTC(KVi)m-f21nU@EshCywj=%>2?lp!Vk!+hR492uke?K~b9 z8lqeSDDu`5L?=nmHJFZ~IL8&N?78&u?osGHs(kf*>&49;P!!3c+=%q8;)96uTdEf2)gH~}6P0j>_B>)|V*82r?UlL_jM zg<^sY-;Jp7GGkKp1<%yR#3YgpAl*R-#j}RnL?9=mh=QUy&y_%oJMa`CWI(FF(1&Um zGiqs@V@69Jtnp-Y*Qtl-;&gEewO>NIn`yrOQ+Fngt?K++=iQ({DM(fZWO$p>pqJZn zQ^1pF>5 z>(v09sN>Opjg<9vw{(~$eq$0Ike-Zix$#JE@0a8|sGGdWemq8L-=IbLP0_Mp!%PSu$M$bHl11`i2t& zdm3P^FCq%W(YT_(*lsuThLv`*k#=lZrf>h`uOLcTtq)Hu{GB`P!r$!cii3GDi<1bszI#3EzFwxI(U$1+=TLy8u=7#A9!X(mJ1sk+<|d!o1CRu4CL zB`;^ZwQuKKzcDBZc4a(om>Sq{&GcO#u557!m)JC4 zM0oJq8MvqRL>Rz`b^68tOItk({NFD)1nB`w>Q6XMp@FOVor#i6qgv;n(AygRB6^KY zl#oN4haVEj{;N&umUE*G(OBWhGWY`m-MH^<^;IBvtLNXaWoMJcO88eZdg_kG%bR*b z!K2s9NL`wd@hP9PpNKilt55d9-OQeHcC|J$if7U5%Mt9;z23PKE&pFa7TvO{n?75B z+1ckS%Gc&V9Y<7v&QxJqd`egLnLKJ>*I`BrW!_%BO zDok_#Sqd{f5%h2>0vzh?e4u3?TTsCt>j2!VFD?Z+-+tkWQY24|M`7FjsUutd>M{^3tRh1_+taINo8O>fiBGlJ{?(1EOE}!s z+uaPinJDRFtF+1>(MR|Sa<;;ervuKEd10HipZ4>O-ZL)AUH%MX?n`U_$Fxibu;29^ zF-&VLj~Hrf+OAewNk^UzJd^dETPf6yU5AmqRqmjvSVBu6zn4~(wtXsw>gmQ$ZOPv` z3znZJGi&^?dsn$}!S?v0vc}ZVEY97~{QIo1wqprpaHH>6r)b~;d@Oy~Q9?7=R;eGu z8e}_d&Ig@Y|MjyTRGErui?%YuR06w{q01L7eZx=PU!IYk3i|HcOt1| z!UeV7#$_ALafHr8X-53omlsWexID9dRmZTc%7=MT#!Tt}?a;Yg)77{M@$vu-Q!{Pn zpoAfMCZl{~D}gj#*6Hjva|zH%krcJP#&N2PXs~BKe}iU~4cw4@wA`l^LTLFFUezX1 zbE&Up*KElreTHJU>N)!gcG4)VsyxR@dVSVCud^#(BT-ow1)?|%YMKS=1ibNb7?R*XF<0TBdvO7`nE z53=(Df|0g>8ID1Rk5tw1sPy-`F~g};>YCq`sT=ZR*kOP)^UOsN?uVyhSb?rV>l9jh>eG-WPRlpHs1U(+Sjoms+{LeLNblNk7tj96fmo!Kz*&eyQ$+i6bH&+WE2-BCoKN3$tTz5`X!UI3IwVAkMIB?V&g`Od1Z;g9bgQDgbqsHl!kODMg>dQC zzL!FXkMOx7S!7aL0i)mI5q40aHn7+@sCwkoEKR1<&haGAJYp`RUXKy>k6y@|9K2;= z`5Ozt3W*^Z{{(0Jsth_uH=`F_H^eUOMOMhXG-c@E**tR|qcVdkwI>mAq`yWmKRuCV zevixTgP58>%3WRB)Y6 zL0kP#zOCr<=sjdU&C7MCa5%+au?Eg(r8-(^F~}_<9>Oiwb?@x~L)&Mw@98^8KZWQw z7;LQ8%FgxUA^t7;mNC|K=l22Fiq6?U`wn-9jwrQ-edW>q*N~+_n`XMF4Hu)_9z??e z;Vzb{mh%ZejzfX4R-P2|6>caG)xt)03g;7-10VDLa#0@eZQn>l&1Zgz_IxVw1><18 z7}1jPrNE4B1|@?TKn5TPE6Ucg_lkxZ)V>~<40rI^Tnbl#aairacFMm*pnu!zQnR$o z!@P=xRTvQV1IMAx!U)$h>G7vR4*EP1cZwcCIJey-wNX61#0_5)%Fmq&ez8-qHvCQH zGW{UPb4l8-e1x^;2hl@@>(3&cAMO+#5=`#Y7_-4E3MI8K4c!K|Wg=4r&CJOmxg+=9 z)(GxCyH5-3zz(EHZ5q5*&CRg|@=gyqRAr3>i!=j=@U4hlzSjm-_J9(_fo~L(BcdtY?2TZmczw{)HAhHfUsa7KsjTW$ zzUA|;l>yJLx+bXO#pmvc4#^(#@}^tm(3179Qq>Xh`w8$+XSdN+ff)PU?S))g@|r;q zb?c32gcT|NzaVnB$v9kzfN zKvf?)0+FEIJu`vR)EnJ={>Kig)LP5#Ini)<@%UmYE%1m$-qjK#oL%OpTajprA2nT! zIToC`g&z(+VzhmV1w6Mg{xskHT-1n67HN>#FL)$Iz5L(E^1mKVg+IEr=gI|s-pkTrA7?{#rqdv;v=c4Sc}oFpZNnvP)pywvcdjj!O;Z|;LS>f@;n?2x@F?tqD*g#kmK G1pXhBHOFiK literal 0 HcmV?d00001 diff --git a/public/css/custom.css b/public/css/custom.css index c85e0091..4a9e28b0 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -1,3 +1,27 @@ +.text-excel { + color: #0f9d58; +} + +.text-word { + color: #4b87e4; +} + +.text-image { + color: #d93025; +} + +.text-pdf { + color: #ea4335; +} + +.text-powerpoint { + color: #fd7541; +} + +.text-code { + color: #e16156; +} + .word-wrap { white-space: normal; word-break: break-word; @@ -1724,4 +1748,4 @@ td{ } h2 { text-transform: capitalize !important; -} \ No newline at end of file +} diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..105533388187f76ddac2724ba56068de42ba48f5 GIT binary patch literal 290 zcmV+-0p0$IP){14=z;J$+=hW%x z@jMQ9UEOteeZO6QZfZ_g3!S>0I(Rg^gsWk}k#H0aLP9U>hW%kA_XRu{XTJegiuRE9^F{^1ViI-2{(^&9EG%!$z^@PFM}y#?Mp| ou7{bSppu{)X8$AD3iEY2-!SCtyE`y01poj507*qoM6N<$f>Pgo7ytkO literal 0 HcmV?d00001 diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c83c79999f09ec793550448106d92d52de2de391 GIT binary patch literal 532 zcmV+v0_**WP)S z*;yz`tds>MAqyFg#dp-{YreVnn=|*`TW4|Zeb4(mz4yKEg@jAkEv!h%kpk}!UJHX& z3G@pJzl8N=!@Gn}K|o=oXy9VuoUknH>k(XGM%W&nZ4gctA@N4|EDVRT+qB*Z_l4hu z^o1}w3$)ehD?;FW8v+{_0=QII6z%usgntui(YfXG6*w;3j`k~szc~b+MrT$DuY}cE zurtD4VL;d!KC{V?upY&I$RTh&s^E)ouU}Xz>=!PF+*@LStnvf zg^pNYiST2N12e)U;bjhio5I74n6cSj!$cchp1Mx8>VvWb)-}Vo36Dz@xGJpq5APD5 zmk8I!=Uk5~&>5Pi4ET4Ux79p2D*P-E{#MwWHI%jr?+bvBn|CbR7`syo1pXsj%mr?e zs0mkW459hLzX&~T!<$5=69i7D!fV3E1c5uL0-JmFyy<$7nauWpAHRzc889IdO_WxBRo&>lnU}Qyv9xPW?^YVFUVbxxMi)*^^{$f zuR}VL|5g#X96a(Aylt|2%mLV36kj%|n|y{$25Jj^P`OVXg-Ep*<=dgc#9L{8Tgt=#iCZju!Rx=U% z{@N0Uzt%kFwq)&_Jb|luvb^1+@h4YlV4bC1v>0L9l&4 zl|1a2fsoD#^(|FjWSq)EKTq=u(cM1QHt3k+^PNvx_e;*La)YnCPhj00o00H85SH0B zS?5h5yFvc!h)f4;alVr6!o0XCJx7`?Lhh1%6xjbAIrgp~lv;BGzEZJV6{GF}hHj;_ zm0vDTmtp^u^7WUJkT2=SrO*^;T|O51hP-DXy-UC^tYxt0qX-jno&MnTEllc2m{&_0wmpz#G+Qe9w<0{ari;q+9)EC^2T59AkUT0xdn7nlKH z{|TC$YM2GVnSH?i19WFWmQ)w$9gX^>^@?9QgI#?W?w9H@$d2Hj58&kex2nBHXO!SSA?Jh2bp!#zAwooNjSN&xL?NZ|Ip?dV#xFezV z=L~H2ss%!~4qXrREnfaf2EXl-kI~&5YT?FEX|COi9s&E>1hM;LQW~(KcWql$ing(w z^}|?W5^eX$e6rsotOh^#bZ9ATRqb>EGytx~*=4zRJKm8;fxO3Z1 z{-zESAnvPkgWlyD_C7r?<;tb%H)F!Sr{I4D!TM0QlJB@XO%?XYcrxG9&Vzy)kkf5J_@k9V)+OiJ`TO> zvfuM=%-XTzWGZ@TYk3J`UElN$uROh?==sh1uQ=^HHScY*6KURf)d$zQnUf(OpWX+W zEkk*80sL#j@_?^YY|rhTB6`5Ish#v3lY!KyX$x&nnbvU_#C=}5-)3rk>|N}n(4MBW z{p|N=LR@b9uR!LY9DRMT(*RAT%qO%<*VY8}dx~*tM><&zN($!SqMp z(A?bWf4h8FyJqP)F0<_|KjT=x-F5|+Ef-(4d9n)_mQ{#f>-;EG!*Nn>ee8Xlzh+d@ z2ljohW4Tsq$8W|~(e^qA8j$Z+J3QrT((fwl`EC{Q0%!?%iu8xwvlqg*2-5v(J=CvU ztF_~|??dV{jRsF=XauyB-#WHkG@JY$5NnM6R_<%k=hhBSIhu6dnZe-DvnP9;2Kzk< z`=$%K_3>EWgP?1S&VT*JFipYs!^)gG=$M+ACX~gom@8;o9pC;K(s!_G{?}F9TJ1~q z8_?jJMmuh<vU>yn0L7yZl!5hI%vJ|4$42 E3rxZMZU6uP literal 0 HcmV?d00001 diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js index c6d18b37..7bf39432 100644 --- a/public/js/plugins/schedule/editor.js +++ b/public/js/plugins/schedule/editor.js @@ -36,7 +36,24 @@ function initScheduleEditor(id, eventType) } }); $('.richeditor').trumbowyg({ - lang: 'fr' + lang: 'fr', + btns: [ + ['viewHTML'], + ['emoji'], + ['undo', 'redo'], // Only supported in Blink browsers + ['strong', 'em', 'del'], + ['superscript', 'subscript'], + ['fontfamily'], + ['fontsize'], + ['foreColor', 'backColor'], + ['link'], + ['insertImage'], + ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], + ['unorderedList', 'orderedList'], + ['horizontalRule'], + ['removeformat'], + ['fullscreen'] + ] }); $('select').selectpicker(); @@ -264,6 +281,7 @@ function selectCourseMode(mode, niveau, periode) $('#nameContainer'+niveau+'-'+periode).removeClass('d-none'); $('#modeSwitchC'+niveau+'-'+periode).addClass('active'); $('#modeSwitchO'+niveau+'-'+periode).removeClass('active'); + $('#use_course_n'+niveau+'_p'+periode).prop("checked", true); } else { @@ -274,6 +292,7 @@ function selectCourseMode(mode, niveau, periode) $('#nameContainer'+niveau+'-'+periode).addClass('d-none'); $('#modeSwitchC'+niveau+'-'+periode).removeClass('active'); $('#modeSwitchO'+niveau+'-'+periode).addClass('active'); + $('#use_course_n'+niveau+'_p'+periode).prop("checked", false); } } diff --git a/resources/assets/fullcalendar/core/main.d.ts b/resources/assets/fullcalendar/core/main.d.ts index cfd23435..8defc99e 100644 --- a/resources/assets/fullcalendar/core/main.d.ts +++ b/resources/assets/fullcalendar/core/main.d.ts @@ -2630,7 +2630,7 @@ declare module '@fullcalendar/core/structs/view-config' { class?: ViewClass; [optionName: string]: any; } - export type ViewConfigInput = ViewClass | ViewConfigObjectInput; + export type ViewConfigInput = ViewClass | ViewConfigObjectInput; export type ViewConfigInputHash = { [viewType: string]: ViewConfigInput; }; diff --git a/resources/custom.css b/resources/custom.css index c85e0091..4a9e28b0 100644 --- a/resources/custom.css +++ b/resources/custom.css @@ -1,3 +1,27 @@ +.text-excel { + color: #0f9d58; +} + +.text-word { + color: #4b87e4; +} + +.text-image { + color: #d93025; +} + +.text-pdf { + color: #ea4335; +} + +.text-powerpoint { + color: #fd7541; +} + +.text-code { + color: #e16156; +} + .word-wrap { white-space: normal; word-break: break-word; @@ -1724,4 +1748,4 @@ td{ } h2 { text-transform: capitalize !important; -} \ No newline at end of file +} diff --git a/resources/views/admin/calendar/calendar_display.blade.php b/resources/views/admin/calendar/calendar_display.blade.php index 037f47e7..c6e1cf60 100644 --- a/resources/views/admin/calendar/calendar_display.blade.php +++ b/resources/views/admin/calendar/calendar_display.blade.php @@ -33,24 +33,7 @@ @endsection @section('breadcrumb') - + Horaire @endsection @section('custom_scripts') @@ -80,4 +63,4 @@
-@endsection \ No newline at end of file +@endsection diff --git a/resources/views/admin/configs/file.blade.php b/resources/views/admin/configs/file.blade.php index ed5ff7d5..e7f9eab4 100644 --- a/resources/views/admin/configs/file.blade.php +++ b/resources/views/admin/configs/file.blade.php @@ -4,12 +4,47 @@
-

Configuration Générale

+

Configuration du système de fichier

@csrf
+

Configuration Google Drive

+
+ +
+
+
+ + + ID de client Google Drive +
+
+
+
+ + + ID secret du disque Google Drive +
+
+
+
+ + + Token de rafraichissement du disque Google Drive +
+
+
+
+ + + ID du dossier Google Drive, "null" pour la racine +
+
+

Configuration de la liste nominale

@@ -28,42 +63,8 @@ @endsection @section('breadcrumb') - +Configuration du système de fichier @endsection @section('custom_scripts') - @endsection diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index c6164e36..d08fb4c1 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -143,24 +143,7 @@ @endsection @section('breadcrumb') - + Dashboard @endsection @section('scripts') diff --git a/resources/views/admin/files/Google Drive/index.blade.php b/resources/views/admin/files/Google Drive/index.blade.php new file mode 100644 index 00000000..66df72f4 --- /dev/null +++ b/resources/views/admin/files/Google Drive/index.blade.php @@ -0,0 +1,68 @@ +@extends('layouts.admin.main') + +@section('content') +
+
+

Full header coloured

+

Category subtitle

+
+
+ + + + + + + + + + + + + + @foreach($directories as $directory) + + + + + + @endforeach + @foreach($files as $file) + + + + + + @endforeach + +
#Nom
..
{{$directory['name']}} + + + +
{{$file['name']}} + + + +
+
+
+@endsection + +@section('breadcrumb') + Fichier / Google Drive +@endsection + +@section('scripts') +@endsection diff --git a/resources/views/admin/schedule/editor/course.blade.php b/resources/views/admin/schedule/editor/course.blade.php index 8cb62f88..ec3bf608 100644 --- a/resources/views/admin/schedule/editor/course.blade.php +++ b/resources/views/admin/schedule/editor/course.blade.php @@ -1,3 +1,4 @@ +
diff --git a/resources/views/admin/schedule/event/add.blade.php b/resources/views/admin/schedule/event/add.blade.php index 27f4c538..a96e71de 100644 --- a/resources/views/admin/schedule/event/add.blade.php +++ b/resources/views/admin/schedule/event/add.blade.php @@ -49,6 +49,34 @@ Veuillez entrer le lieu de l'événement
+
+
+
+
+ + +
+
+
+
+ +
+
+ +
+ + Remove + + Select file + Change + + + +
+
+
+
+
@@ -58,34 +86,6 @@
-
- -
-
-
-
-
- - -
-
-
- -
- -
-
-
-
-
-
+ @yield('breadcrumb')
- \ No newline at end of file + diff --git a/resources/views/layouts/admin/scripts.blade.php b/resources/views/layouts/admin/scripts.blade.php index e21c6505..ddbe095d 100644 --- a/resources/views/layouts/admin/scripts.blade.php +++ b/resources/views/layouts/admin/scripts.blade.php @@ -19,6 +19,8 @@ + + @@ -26,8 +28,12 @@ - + + + + + diff --git a/resources/views/layouts/admin/sidebar.blade.php b/resources/views/layouts/admin/sidebar.blade.php index 97420d7e..8e1728bc 100644 --- a/resources/views/layouts/admin/sidebar.blade.php +++ b/resources/views/layouts/admin/sidebar.blade.php @@ -26,14 +26,14 @@
- +
@method('PUT') @csrf
-

Coller l'index de chacun des guides pédagogiques de niveau dans la zone de texte. Générer

+

Sélectionner un fichier .cvs contenant l'index des cours a importer.

-
- - +
+ +
+
+ +
+ + Supprimer + + Parcourir + Changer + + + +
- +
diff --git a/resources/views/admin/update.blade.php b/resources/views/admin/update.blade.php index 5b315dcc..d2a843d7 100644 --- a/resources/views/admin/update.blade.php +++ b/resources/views/admin/update.blade.php @@ -41,6 +41,16 @@
+
  • +
    +
    + +
    +
    + Ajout d'un lien avec Google Drive +
    +
    +
  • @@ -81,6 +91,16 @@
  • +
  • +
    +
    + +
    +
    + Déplacement des plugins JS sur le serveur +
    +
    +
  • @@ -94,7 +114,37 @@
    - Correction de multiples bugs + Correction de multiples bugs +
    +
    + +
  • +
    +
    + +
    +
    + Correction d'un bug d'affichage des icones +
    +
    +
  • +
  • +
    +
    + +
    +
    + Correction de multiples bugs dans la gestion des grades +
    +
    +
  • +
  • +
    +
    + +
    +
    + Correction de multiples bugs dans la gestion des postes
  • diff --git a/resources/views/admin/user/profil.blade.php b/resources/views/admin/user/profil.blade.php index 3a1a6c23..6dd3b0c4 100644 --- a/resources/views/admin/user/profil.blade.php +++ b/resources/views/admin/user/profil.blade.php @@ -10,7 +10,7 @@
    Card image cap
    {{\Auth::User()->fullname()}}
    -
    {{\Auth::User()->rank->name}}
    +
    {{\Auth::User()->rank->name}}
    diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php index 39ff71a7..41c83ff0 100644 --- a/resources/views/errors/layout.blade.php +++ b/resources/views/errors/layout.blade.php @@ -175,7 +175,6 @@
    - {{ Breadcrumbs::render() }}

    Oops! @yield('title')

    diff --git a/resources/views/layouts/admin/head.blade.php b/resources/views/layouts/admin/head.blade.php index 13b97462..8184ce7c 100644 --- a/resources/views/layouts/admin/head.blade.php +++ b/resources/views/layouts/admin/head.blade.php @@ -4,7 +4,7 @@ ?> -C-CMS - Espace Administration +{{ ($breadcrumb = Breadcrumbs::current()) ? $breadcrumb->title : 'Espace Administration' }} - C-CMS @@ -26,12 +26,12 @@ - - + + - + diff --git a/resources/views/layouts/admin/sidebar.blade.php b/resources/views/layouts/admin/sidebar.blade.php index 0e2f95f2..6d82a36e 100644 --- a/resources/views/layouts/admin/sidebar.blade.php +++ b/resources/views/layouts/admin/sidebar.blade.php @@ -94,6 +94,14 @@ @endif + @if(\Auth::user()->p('schedule_see') == 1) + + @endif @if(\Auth::user()->p('article_see') == 1) +
  • +
    +
    + +
    +
    + Ajout d'une section "Mes cours" +
    +
    +
  • +
  • +
    +
    + +
    +
    + Ajout d'une section "Mes fichiers" +
    +
    +
  • +
  • +
    +
    + +
    +
    + Ajout d'une liste des cours pour l'instruction +
    +
    +
  • +
  • +
    +
    + +
    +
    + Ajout de statistique pour l'instruction +
    +
    +
  • @@ -91,6 +131,26 @@
  • +
  • +
    +
    + +
    +
    + Mise à jour de la section "Guide pédagogique et Norme de qualification" +
    +
    +
  • +
  • +
    +
    + +
    +
    + Mise à jour de la section "Fichier" de l'instruction +
    +
    +
  • diff --git a/resources/views/admin/user/profil/courses.blade.php b/resources/views/admin/user/profil/courses.blade.php new file mode 100644 index 00000000..a4088665 --- /dev/null +++ b/resources/views/admin/user/profil/courses.blade.php @@ -0,0 +1,84 @@ +@extends('layouts.admin.main') + +@section('content') +
    +
    +
    +

    Mes cours

    +
    +
    +
    +
    +
    +

    Liste de mes cours dans l'horaire

    + +
    +
    + + + + + + + + + + + + + + + @foreach($courses as $course) + + + + + + + + + + + @endforeach + +
    OCOMNomInstructeurDateNiveauPériodePlan de cours
    {{$course->ocom}}{{$course->name}}{{$course->instructor()}}{{$course->event->date_begin}}{{$course->level}}{{$course->periode}} + @if($course->lessonPlan) + @if($course->lessonPlan->approved == 1) + + @else + + @endif + @else + + @endif + + + add + +
    +
    +
    +
    +
    +@endsection + +@section('custom_scripts') + + +@endsection diff --git a/resources/views/layouts/admin/head.blade.php b/resources/views/layouts/admin/head.blade.php index 8184ce7c..4a96b0dd 100644 --- a/resources/views/layouts/admin/head.blade.php +++ b/resources/views/layouts/admin/head.blade.php @@ -29,6 +29,7 @@ + diff --git a/resources/views/layouts/admin/header.blade.php b/resources/views/layouts/admin/header.blade.php index 0b4bb47b..6d15ce17 100644 --- a/resources/views/layouts/admin/header.blade.php +++ b/resources/views/layouts/admin/header.blade.php @@ -67,7 +67,8 @@ foreach (Auth::user()->unreadNotifications as $notification) {

  • "};r.prototype={asyncSupport:!0,_pipeAccordingToValidationResult:function(){function t(){var t=h.Deferred();return!0!==e.validationResult&&t.reject(),t.resolve().promise()}var e=this;return[t,t]},actualizeOptions:function(){return d.attr(this.element,this.options.namespace,this.domOptions),this.parent&&this.parent.actualizeOptions&&this.parent.actualizeOptions(),this},_resetOptions:function(t){for(var e in this.domOptions=d.objectCreate(this.parent.options),this.options=d.objectCreate(this.domOptions),t)t.hasOwnProperty(e)&&(this.options[e]=t[e]);this.actualizeOptions()},_listeners:null,on:function(t,e){return this._listeners=this._listeners||{},(this._listeners[t]=this._listeners[t]||[]).push(e),this},subscribe:function(t,e){h.listenTo(this,t.toLowerCase(),e)},off:function(t,e){var i=this._listeners&&this._listeners[t];if(i)if(e)for(var r=i.length;r--;)i[r]===e&&i.splice(r,1);else delete this._listeners[t];return this},unsubscribe:function(t){h.unsubscribeTo(this,t.toLowerCase())},trigger:function(t,e,i){e=e||this;var r,n=this._listeners&&this._listeners[t];if(n)for(var s=n.length;s--;)if(!1===(r=n[s].call(e,e,i)))return r;return!this.parent||this.parent.trigger(t,e,i)},asyncIsValid:function(t,e){return d.warnOnce("asyncIsValid is deprecated; please use whenValid instead"),this.whenValid({group:t,force:e})},_findRelated:function(){return this.options.multiple?h(this.parent.element.querySelectorAll("[".concat(this.options.namespace,'multiple="').concat(this.options.multiple,'"]'))):this.$element}};function c(t){h.extend(!0,this,t)}c.prototype={validate:function(t,e){if(this.fn)return 3d)return!1;var h=function(t){return Math.round(t*Math.pow(10,d))};if((h(u)-h(o))%h(s)!=0)return!1}return!0},requirementType:{"":"string",step:"string",base:"number"},priority:256},pattern:{validateString:function(t,e){return!t||e.test(t)},requirementType:"regexp",priority:64},minlength:{validateString:function(t,e){return!t||t.length>=e},requirementType:"integer",priority:30},maxlength:{validateString:function(t,e){return t.length<=e},requirementType:"integer",priority:30},length:{validateString:function(t,e,i){return!t||t.length>=e&&t.length<=i},requirementType:["integer","integer"],priority:30},mincheck:{validateMultiple:function(t,e){return t.length>=e},requirementType:"integer",priority:30},maxcheck:{validateMultiple:function(t,e){return t.length<=e},requirementType:"integer",priority:30},check:{validateMultiple:function(t,e,i){return t.length>=e&&t.length<=i},requirementType:["integer","integer"],priority:30},min:g(function(t,e){return e<=t}),max:g(function(t,e){return t<=e}),range:g(function(t,e,i){return e<=t&&t<=i}),equalto:{validateString:function(t,e){if(!t)return!0;var i=h(e);return i.length?t===i.val():t===e},priority:256},euvatin:{validateString:function(t){if(!t)return!0;return/^[A-Z][A-Z][A-Za-z0-9 -]{2,}$/.test(t)},priority:30}}};var v={};v.Form={_actualizeTriggers:function(){var e=this;this.$element.on("submit.Parsley",function(t){e.onSubmitValidate(t)}),this.$element.on("click.Parsley",d._SubmitSelector,function(t){e.onSubmitButton(t)}),!1!==this.options.uiEnabled&&this.element.setAttribute("novalidate","")},focus:function(){if(!(this._focusedField=null)===this.validationResult||"none"===this.options.focus)return null;for(var t=0;t').appendTo(this.$element)),e.attr({name:t.getAttribute("name"),value:t.getAttribute("value")})}this.$element.trigger(l(h.Event("submit"),{parsley:!0}))}},validate:function(t){if(1<=arguments.length&&!h.isPlainObject(t)){d.warnOnce("Calling validate on a parsley form without passing arguments as an object is deprecated.");var e=Array.prototype.slice.call(arguments);t={group:e[0],force:e[1],event:e[2]}}return _[this.whenValidate(t).state()]},whenValidate:function(t){var e,i=this,r=0 tr { .overflow-auto { overflow: auto; +} + +.parsley-errors-list { + list-style: none; + padding: 0px; + color: #f44336; +} + +.form-control { + padding-top: 15px; +} + +.bootstrap-select { + margin-top: -12px; } \ No newline at end of file diff --git a/resources/views/admin/update.blade.php b/resources/views/admin/update.blade.php index 688b9a3b..12f73261 100644 --- a/resources/views/admin/update.blade.php +++ b/resources/views/admin/update.blade.php @@ -16,6 +16,9 @@
    +

    @@ -41,16 +44,6 @@

    -
  • -
    -
    - -
    -
    - Ajout d'un lien avec Google Drive -
    -
    -
  • diff --git a/resources/views/admin/user/add.blade.php b/resources/views/admin/user/add.blade.php index e248c72d..db266d80 100644 --- a/resources/views/admin/user/add.blade.php +++ b/resources/views/admin/user/add.blade.php @@ -1,140 +1,144 @@ @extends('layouts.admin.main') @section('content') -
    -
    -
    - Ajouter un utilisateur - -
    -
    -
    - @csrf -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    - -
    -
    -
    - - - Requis +
    +
    +
    + Ajouter un utilisateur + +
    +
    + + @csrf +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    - - - Requis + +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    -
    -
    - - - +
    +
    +
    + + + +
    +
    +
    +
    + + +
    -
    -
    - - - Si vous souhaiter recevoir des notifications par SMS +
    +
    +
    + + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    -
    -
    - - - Requis + +
    +
    +
    + + +
    +
    +
    +
    + + +
    -
    -
    - - - -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    - - + + +
    -
    -@endsection - -@section('breadcrumb') - Utilisateur / Ajouter @endsection @section('custom_scripts') - + @endsection diff --git a/resources/views/admin/user/edit.blade.php b/resources/views/admin/user/edit.blade.php index bb153d63..31ee2fca 100644 --- a/resources/views/admin/user/edit.blade.php +++ b/resources/views/admin/user/edit.blade.php @@ -14,125 +14,112 @@
    - firstname}}> - Requis -
    + +
    - lastname}}> - Requis -
    + +
    -
    - email}}> - Requis +
    - email}}> - Requis +
    - - adress}}> - + + +
    - - telephone}}> - Si vous souhaiter recevoir des notifications par SMS + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - age}}> - -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    - - - Requis -
    -
    -
    -
    -
    - - - Requis + +
    - - - Requis + +
    @@ -143,10 +130,8 @@
    @endsection -@section('breadcrumb') - Utilisateur / Modifier -@endsection - @section('custom_scripts') - + @endsection diff --git a/resources/views/admin/user/profil/setup.blade.php b/resources/views/admin/user/profil/setup.blade.php new file mode 100644 index 00000000..ac0ba86b --- /dev/null +++ b/resources/views/admin/user/profil/setup.blade.php @@ -0,0 +1,103 @@ +@extends('layouts.admin.main') + +@section('content') +
    + +
    +
    +
    +
    +

    + Bienvenue {{ Auth::user()->fullname() }}, +

    +
    Avant de pouvoir continer vous devez répondre a quelques + questions
    +
    +
    +
    Renseignement personnel
    + @csrf +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    Sécurité
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    + * Champ requis +
    +
    +
    + +
    +
    +
    +
    +@endsection + +@section('breadcrumb') + Dashboard +@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/layouts/admin/scripts.blade.php b/resources/views/layouts/admin/scripts.blade.php index ef95422a..3c346539 100644 --- a/resources/views/layouts/admin/scripts.blade.php +++ b/resources/views/layouts/admin/scripts.blade.php @@ -29,6 +29,9 @@ + + + diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 3451aa8c..a97a4334 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -13,6 +13,12 @@ Breadcrumbs::for('admin.dashboard', function ($trail) { $trail->push('Dashboard', route('admin.dashboard')); }); +// Admin > Setup +Breadcrumbs::for('admin.setup', function ($trail) { + $trail->parent('admin.dashboard'); + $trail->push('Configuration initiale', route('admin.setup')); +}); + // Admin > Update Breadcrumbs::for('admin.update', function ($trail) { $trail->parent('admin.dashboard'); @@ -64,7 +70,7 @@ Breadcrumbs::for('admin.user', function ($trail, $id) { // Admin > User > Add Breadcrumbs::for('admin.user.add', function ($trail) { - $trail->parent('admin.user'); + $trail->parent('admin.users'); $trail->push('Ajouter un utilisateur', route('admin.user.add')); }); diff --git a/routes/web.php b/routes/web.php index 4509141b..9e19820b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,9 @@ name('logout'); -Route::get('/ocom/create','OCOMController@updateOCOMDB'); - +Route::get('/ocom/create', 'OCOMController@updateOCOMDB'); /** Public Route */ @@ -29,187 +30,191 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show'); Route::get('/picture/{id}', 'PictureController@show'); Route::get('/pictures', 'PictureController@index'); -Route::get('/file/get','GoogleDriveController@getFile')->middleware('fileperm:file,r'); -@ -Route::middleware(['auth'])->name('admin.')->group(function () { +Route::get('/file/get', 'GoogleDriveController@getFile')->middleware('fileperm:file,r'); + +/** Setup */ +Route::get('/admin/setup', 'AdminController@setup')->middleware('auth')->name('admin.setup'); +Route::post('/admin/setup', 'AdminController@saveSetup')->middleware('auth'); + +Route::middleware(['auth', 'firstlogin'])->name('admin.')->group(function () { /* Espace Administration Route */ - /** Dashboard & General */ - Route::get('/admin', 'AdminController@index')->name('dashboard'); - Route::get('/admin/update', 'AdminController@update')->name('update'); - Route::get('/admin/status','AdminController@status')->name('status'); + /** Dashboard & General */ + Route::get('/admin', 'AdminController@index')->name('dashboard'); + Route::get('/admin/update', 'AdminController@update')->name('update'); + Route::get('/admin/status', 'AdminController@status')->name('status'); - /** Schedule */ - Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule'); - Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf'); - Route::get('/admin/schedule/add/{date}','ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add'); - Route::get('/admin/schedule/edit/{id}','EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit'); - Route::post('/admin/schedule/event/add','EventController@Store')->middleware('perm:schedule_add'); - Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit'); - /** Statistique */ - Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see')->name('stats.log'); - Route::get('/admin/stats/instruction' , 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction'); + /** Schedule */ + Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule'); + Route::get('/admin/schedule/pdf/event/{id}', 'ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf'); + Route::get('/admin/schedule/add/{date}', 'ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add'); + Route::get('/admin/schedule/edit/{id}', 'EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit'); + Route::post('/admin/schedule/event/add', 'EventController@Store')->middleware('perm:schedule_add'); + Route::post('/admin/schedule/event/edit/{id}', 'EventController@update')->middleware('perm:schedule_edit'); - /** Message */ - Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see')->name('message'); - Route::get('/admin/message/add' , 'MessageController@create')->middleware('perm:msg_add')->name('message.add'); - Route::post('/admin/message/add' , 'MessageController@store')->middleware('perm:msg_add'); - Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see')->name('message.show'); + /** Statistique */ + Route::get('/admin/stats/log', 'LogController@index')->middleware('perm:stats_see')->name('stats.log'); + Route::get('/admin/stats/instruction', 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction'); - /** User */ - Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see')->name('users'); - Route::get('/admin/user/{id}' , 'UserController@show')->middleware('perm:user_see')->name('user'); - Route::get('/admin/user/{id}/course','UserController@showCourses')->name('user.courses'); - Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add')->name('user.add'); - Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add'); - Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit')->name('user.edit'); - Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit'); + /** Message */ + Route::get('/admin/message', 'MessageController@index')->middleware('perm:msg_see')->name('message'); + Route::get('/admin/message/add', 'MessageController@create')->middleware('perm:msg_add')->name('message.add'); + Route::post('/admin/message/add', 'MessageController@store')->middleware('perm:msg_add'); + Route::get('/admin/message/{id}', ['uses' => 'MessageController@show'])->middleware('perm:msg_see')->name('message.show'); - /** Config */ - Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule'); - Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit')->name('config.schedule.event_type.create'); - Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type'); - Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit'); - Route::patch('/admin/config/instruction' , 'ScheduleController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity'); - Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add'); - Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit'); - Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit'); - Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit')->name('config.general'); - Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation'); - Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit'); + /** User */ + Route::get('/admin/user', 'UserController@index')->middleware('perm:user_see')->name('users'); + Route::get('/admin/user/add', 'UserController@create')->middleware('perm:user_add')->name('user.add'); + Route::post('/admin/user/add', 'UserController@store')->middleware('perm:user_add'); + Route::get('/admin/user/{id}', 'UserController@show')->middleware('perm:user_see')->name('user'); + Route::get('/admin/user/{id}/course', 'UserController@showCourses')->name('user.courses'); + Route::get('/admin/user/edit/{id}', 'UserController@edit')->middleware('perm:user_edit')->name('user.edit'); + Route::post('/admin/user/edit/{id}', 'UserController@update')->middleware('perm:user_edit'); - Route::get('/admin/config/ranks','RankController@index')->middleware('perm:config_edit')->name('config.rank'); - Route::get('/admin/config/ranks/add','RankController@create')->middleware('perm:config_edit')->name('config.rank.add'); - Route::post('/admin/config/ranks/add','RankController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/ranks/{id}','RankController@show')->middleware('perm:config_edit')->name('config.rank.edit'); - Route::post('/admin/config/ranks/{id}','RankController@update')->middleware('perm:config_edit'); - Route::get('/admin/config/jobs','JobController@index')->middleware('perm:config_edit')->name('config.jobs'); - Route::get('/admin/config/jobs/add','JobController@create')->middleware('perm:config_edit')->name('config.jobs.add'); - Route::post('/admin/config/jobs/add','JobController@store')->middleware('perm:config_edit'); - Route::get('/admin/config/jobs/{id}','JobController@edit')->middleware('perm:config_edit')->name('config.jobs.edit'); - Route::post('/admin/config/jobs/{id}','JobController@update')->middleware('perm:config_edit'); + /** Config */ + Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule'); + Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit')->name('config.schedule.event_type.create'); + Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type'); + Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit'); + Route::patch('/admin/config/instruction', 'ScheduleController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/activity', 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity'); + Route::get('/admin/config/activity/add', 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add'); + Route::post('/admin/config/activity/add', 'ComplementaryActivityController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit'); + Route::post('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@update')->middleware('perm:config_edit'); + Route::post('/admin/config/general/edit', 'ConfigController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/', 'ConfigController@index')->middleware('perm:config_edit')->name('config.general'); + Route::get('/admin/config/customisation', 'ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation'); + Route::post('/admin/config/customisation', 'ConfigController@customisationUpdate')->middleware('perm:config_edit'); - Route::get('/admin/config/files' , 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files'); - Route::post('/admin/config/files' , 'ConfigController@editfilesConfig')->middleware('perm:config_edit'); + Route::get('/admin/config/ranks', 'RankController@index')->middleware('perm:config_edit')->name('config.rank'); + Route::get('/admin/config/ranks/add', 'RankController@create')->middleware('perm:config_edit')->name('config.rank.add'); + Route::post('/admin/config/ranks/add', 'RankController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/ranks/{id}', 'RankController@show')->middleware('perm:config_edit')->name('config.rank.edit'); + Route::post('/admin/config/ranks/{id}', 'RankController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/jobs', 'JobController@index')->middleware('perm:config_edit')->name('config.jobs'); + Route::get('/admin/config/jobs/add', 'JobController@create')->middleware('perm:config_edit')->name('config.jobs.add'); + Route::post('/admin/config/jobs/add', 'JobController@store')->middleware('perm:config_edit'); + Route::get('/admin/config/jobs/{id}', 'JobController@edit')->middleware('perm:config_edit')->name('config.jobs.edit'); + Route::post('/admin/config/jobs/{id}', 'JobController@update')->middleware('perm:config_edit'); - /** Public page */ - Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit'); - Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit'); + Route::get('/admin/config/files', 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files'); + Route::post('/admin/config/files', 'ConfigController@editfilesConfig')->middleware('perm:config_edit'); - /** Picture */ - Route::get('/admin/picture','PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture'); - Route::get('/admin/picture/add','PictureController@create')->middleware('perm:picture_add')->name('picture.add'); - Route::post('/admin/picture/add','PictureController@store')->middleware('perm:picture_add'); - Route::get('/admin/picture/edit/{id}','PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit'); - Route::post('/admin/picture/edit/{id}','PictureController@update')->middleware('perm:picture_edit'); + /** Public page */ + Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit'); + Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit'); - /** Inventory */ - Route::get('/admin/inventory' , 'InventoryController@index')->middleware('perm:inventory_see')->name('inv'); - Route::get('/admin/inventory/management','InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management'); + /** Picture */ + Route::get('/admin/picture', 'PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture'); + Route::get('/admin/picture/add', 'PictureController@create')->middleware('perm:picture_add')->name('picture.add'); + Route::post('/admin/picture/add', 'PictureController@store')->middleware('perm:picture_add'); + Route::get('/admin/picture/edit/{id}', 'PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit'); + Route::post('/admin/picture/edit/{id}', 'PictureController@update')->middleware('perm:picture_edit'); - /** Item Category */ - Route::get('/admin/inventory/management/category','ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category'); - Route::get('/admin/inventory/management/category/add','ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add'); - Route::post('/admin/inventory/management/category/add','ItemCategoryController@store')->middleware('perm:inventory_add'); - Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit'); - Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update')->middleware('perm:inventory_edit'); + /** Inventory */ + Route::get('/admin/inventory', 'InventoryController@index')->middleware('perm:inventory_see')->name('inv'); + Route::get('/admin/inventory/management', 'InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management'); - /** News */ - Route::get('/admin/news','NewsController@indexAdmin')->middleware('perm:news_see')->name('news'); - Route::get('/admin/news/add','NewsController@create')->middleware('perm:news_add')->name('news.add'); - Route::post('/admin/news/add','NewsController@store')->middleware('perm:news_add'); - Route::get('/admin/news/edit/{id}','NewsController@edit')->middleware('perm:news_edit')->name('news.edit'); - Route::post('/admin/news/edit/{id}','NewsController@update')->middleware('perm:news_edit'); + /** Item Category */ + Route::get('/admin/inventory/management/category', 'ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category'); + Route::get('/admin/inventory/management/category/add', 'ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add'); + Route::post('/admin/inventory/management/category/add', 'ItemCategoryController@store')->middleware('perm:inventory_add'); + Route::get('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit'); + Route::post('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@update')->middleware('perm:inventory_edit'); - /** Articles */ - Route::get('/admin/article','ArticleController@index')->middleware('perm:article_see')->name('article'); - Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit'); - Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity')->middleware('perm:article_edit'); - Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity')->middleware('perm:article_edit'); - Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate')->middleware('perm:article_edit'); - Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore')->middleware('perm:article_edit'); + /** News */ + Route::get('/admin/news', 'NewsController@indexAdmin')->middleware('perm:news_see')->name('news'); + Route::get('/admin/news/add', 'NewsController@create')->middleware('perm:news_add')->name('news.add'); + Route::post('/admin/news/add', 'NewsController@store')->middleware('perm:news_add'); + Route::get('/admin/news/edit/{id}', 'NewsController@edit')->middleware('perm:news_edit')->name('news.edit'); + Route::post('/admin/news/edit/{id}', 'NewsController@update')->middleware('perm:news_edit'); - /** Booking */ - Route::get('/admin/booking','BookingController@index')->middleware('perm:booking_see'); - Route::get('/admin/booking/{id}','BookingController@show')->middleware('perm:booking_see'); - Route::get('/admin/booking/{type}/{id}','BookingController@index')->middleware('perm:booking_see'); - Route::get('/admin/booking/{type}/{id}/add','BookingController@create')->middleware('perm:booking_add'); - Route::post('/admin/booking/{type}/{id}/add','BookingController@store')->middleware('perm:booking_add'); - Route::get('/admin/inventory/booking' , 'InventoryController@booking')->middleware('perm:inventory_see'); - Route::post('/admin/booking/edit','BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit'); + /** Articles */ + Route::get('/admin/article', 'ArticleController@index')->middleware('perm:article_see')->name('article'); + Route::get('/admin/article/activity/edit/{id}', 'ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit'); + Route::post('/admin/article/activity/edit/{id}', 'ArticleController@updateActivity')->middleware('perm:article_edit'); + Route::get('/admin/article/activity/picture/{id}', 'ArticleController@pictureActivity')->middleware('perm:article_edit'); + Route::get('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityCreate')->middleware('perm:article_edit'); + Route::post('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityStore')->middleware('perm:article_edit'); - /** Item */ - Route::get('/admin/item/add' , 'ItemController@create')->middleware('perm:inventory_add'); - Route::get('/admin/item/edit/{id}' , 'ItemController@edit')->middleware('perm:inventory_edit'); - Route::post('/admin/item/add' , 'ItemController@store')->middleware('perm:inventory_add'); - Route::post('/admin/item/edit/{id}' , 'ItemController@update')->middleware('perm:inventory_edit'); + /** Booking */ + Route::get('/admin/booking', 'BookingController@index')->middleware('perm:booking_see'); + Route::get('/admin/booking/{id}', 'BookingController@show')->middleware('perm:booking_see'); + Route::get('/admin/booking/{type}/{id}', 'BookingController@index')->middleware('perm:booking_see'); + Route::get('/admin/booking/{type}/{id}/add', 'BookingController@create')->middleware('perm:booking_add'); + Route::post('/admin/booking/{type}/{id}/add', 'BookingController@store')->middleware('perm:booking_add'); + Route::get('/admin/inventory/booking', 'InventoryController@booking')->middleware('perm:inventory_see'); + Route::post('/admin/booking/edit', 'BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit'); - /** Notification */ - Route::get('/admin/notication/mark','UserController@notificationmarkALL'); - Route::post('/admin/notication/mark/{id}','UserController@notificationmark'); + /** Item */ + Route::get('/admin/item/add', 'ItemController@create')->middleware('perm:inventory_add'); + Route::get('/admin/item/edit/{id}', 'ItemController@edit')->middleware('perm:inventory_edit'); + Route::post('/admin/item/add', 'ItemController@store')->middleware('perm:inventory_add'); + Route::post('/admin/item/edit/{id}', 'ItemController@update')->middleware('perm:inventory_edit'); - /** Profil */ - Route::get('/admin/profil/courses' , 'ProfilController@courses')->name('profil.courses'); - Route::get('/admin/profil/avatar' , 'UserController@UserAvatar')->name('profil.avatar'); - Route::get('/admin/profil/password' , 'UserController@UserPassword')->name('profil.psw'); - Route::get('/admin/profil/adress' , 'UserController@UserAdress')->name('profil.adress'); - Route::get('/admin/profil/notifications','UserController@userNotification')->name('profil.notifications'); - Route::post('/admin/profil/edit/adress' , 'UserController@editUserAdress'); - Route::post('/admin/profil/edit/password' , 'UserController@editUserPassword'); - Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar'); - Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil')->name('profil'); + /** Notification */ + Route::get('/admin/notication/mark', 'UserController@notificationmarkALL'); + Route::post('/admin/notication/mark/{id}', 'UserController@notificationmark'); - /** Instruction */ - Route::get('/admin/instruction','AdminController@instruction')->name('instruction'); - Route::get('/admin/instruction/guide','FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide'); - Route::get('/admin/instruction/files','FilesController@instruction')->middleware('perm:file_see')->name('instruction.files'); + /** Profil */ + Route::get('/admin/profil/courses', 'ProfilController@courses')->name('profil.courses'); + Route::get('/admin/profil/avatar', 'UserController@UserAvatar')->name('profil.avatar'); + Route::get('/admin/profil/password', 'UserController@UserPassword')->name('profil.psw'); + Route::get('/admin/profil/adress', 'UserController@UserAdress')->name('profil.adress'); + Route::get('/admin/profil/notifications', 'UserController@userNotification')->name('profil.notifications'); + Route::post('/admin/profil/edit/adress', 'UserController@editUserAdress'); + Route::post('/admin/profil/edit/password', 'UserController@editUserPassword'); + Route::get('/admin/profil/edit/avatar/{id}', 'UserController@editUserAvatar'); + Route::get('/admin/profil/{id?}', 'UserController@showUserProfil')->name('profil'); - /** Courses */ - Route::get('/admin/course','CourseController@index')->name('course'); - Route::get('/admin/course/{id}','CourseController@show')->name('course.show')->middleware('courseperm:see'); - Route::patch('/admin/course/{id}/commentOfficer','CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer'); - Route::patch('/admin/course/{id}/comment','CourseController@updateComment')->middleware('courseperm:edit'); - Route::patch('/admin/course/{id}/plan/commentOfficer','CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer'); - Route::patch('/admin/course/{id}/plan/comment','CourseController@updateCommentPlan')->middleware('courseperm:edit'); - Route::post('/admin/course/{id}/lessonPlan','CourseController@updateLessonPlan')->middleware('courseperm:edit'); + /** Instruction */ + Route::get('/admin/instruction', 'AdminController@instruction')->name('instruction'); + Route::get('/admin/instruction/guide', 'FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide'); + Route::get('/admin/instruction/files', 'FilesController@instruction')->middleware('perm:file_see')->name('instruction.files'); + + /** Courses */ + Route::get('/admin/course', 'CourseController@index')->name('course'); + Route::get('/admin/course/{id}', 'CourseController@show')->name('course.show')->middleware('courseperm:see'); + Route::patch('/admin/course/{id}/commentOfficer', 'CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer'); + Route::patch('/admin/course/{id}/comment', 'CourseController@updateComment')->middleware('courseperm:edit'); + Route::patch('/admin/course/{id}/plan/commentOfficer', 'CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer'); + Route::patch('/admin/course/{id}/plan/comment', 'CourseController@updateCommentPlan')->middleware('courseperm:edit'); + Route::post('/admin/course/{id}/lessonPlan', 'CourseController@updateLessonPlan')->middleware('courseperm:edit'); /** Files */ - Route::post('/file/create','GoogleDriveController@createFile')->middleware('fileperm:folder,w'); - Route::post('/file/upload','GoogleDriveController@uploadFile')->middleware('fileperm:folder,w'); - Route::post('/folder/create','GoogleDriveController@createFolder')->middleware('fileperm:folder,w'); - Route::get('/file/delete','GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); - Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); - Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files'); - Route::get('/admin/files/cadet','FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r'); - Route::get('/admin/files/staff','FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r'); - Route::get('/admin/files/etamas','FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r'); - Route::get('/admin/files/officier','FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r'); - Route::get('/admin/files/publique','FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r'); - - Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r','perm:drive_see')->name('drive'); - Route::get('/admin/folder/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive'); - Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission'); - Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@patchPermission')->middleware('perm:file_see','fileperm:folder,p'); - Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}','GoogleDriveController@deletePermission')->middleware('perm:file_see','fileperm:folder,p'); - Route::patch('/admin/drive/{folder}/addpermission/{subject}','GoogleDriveController@addPermission')->middleware('perm:file_see','fileperm:folder,p'); + Route::post('/file/create', 'GoogleDriveController@createFile')->middleware('fileperm:folder,w'); + Route::post('/file/upload', 'GoogleDriveController@uploadFile')->middleware('fileperm:folder,w'); + Route::post('/folder/create', 'GoogleDriveController@createFolder')->middleware('fileperm:folder,w'); + Route::get('/file/delete', 'GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); + Route::get('/folder/delete', 'GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w'); + Route::get('/admin/files', 'FilesController@index')->middleware('perm:file_see')->name('files'); + Route::get('/admin/files/cadet', 'FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r'); + Route::get('/admin/files/staff', 'FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r'); + Route::get('/admin/files/etamas', 'FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r'); + Route::get('/admin/files/officier', 'FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r'); + Route::get('/admin/files/publique', 'FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r'); + Route::get('/admin/drive/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r', 'perm:drive_see')->name('drive'); + Route::get('/admin/folder/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive'); + Route::get('/admin/drive/{folder}/permission', 'GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission'); + Route::patch('/admin/drive/{folder}/permission/{subject}/{id}', 'GoogleDriveController@patchPermission')->middleware('perm:file_see', 'fileperm:folder,p'); + Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}', 'GoogleDriveController@deletePermission')->middleware('perm:file_see', 'fileperm:folder,p'); + Route::patch('/admin/drive/{folder}/addpermission/{subject}', 'GoogleDriveController@addPermission')->middleware('perm:file_see', 'fileperm:folder,p'); /** OCOM */ - Route::get('/admin/ocom','OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see'); - Route::get('/admin/ocom/generate','OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit'); - Route::put('/admin/ocom/generate','OCOMController@generate')->middleware('perm:instruction_db_ocom_edit'); - Route::get('/admin/ocom/add','OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add'); - Route::put('/admin/ocom/add','OCOMController@store')->middleware('perm:instruction_db_ocom_add'); - Route::get('/admin/ocom/{id}/edit','OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit'); - Route::patch('/admin/ocom/{id}/edit','OCOMController@update')->middleware('perm:instruction_db_ocom_edit'); - Route::get('/admin/ocom/{id}','OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see'); + Route::get('/admin/ocom', 'OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see'); + Route::get('/admin/ocom/generate', 'OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit'); + Route::put('/admin/ocom/generate', 'OCOMController@generate')->middleware('perm:instruction_db_ocom_edit'); + Route::get('/admin/ocom/add', 'OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add'); + Route::put('/admin/ocom/add', 'OCOMController@store')->middleware('perm:instruction_db_ocom_add'); + Route::get('/admin/ocom/{id}/edit', 'OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit'); + Route::patch('/admin/ocom/{id}/edit', 'OCOMController@update')->middleware('perm:instruction_db_ocom_edit'); + Route::get('/admin/ocom/{id}', 'OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see'); }); From d8e36b847966f5bb32586ccdfb2e0587276ef116 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Fri, 31 Jul 2020 17:36:46 -0400 Subject: [PATCH 41/42] fix bug in news when user is delete --- config/version.yml | 2 +- resources/views/admin/news/index.blade.php | 2 +- resources/views/layouts/public/news.blade.php | 2 +- resources/views/public/allnews.blade.php | 2 +- resources/views/public/news.blade.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/version.yml b/config/version.yml index 233416bd..48ffa03a 100644 --- a/config/version.yml +++ b/config/version.yml @@ -5,7 +5,7 @@ current: major: 3 minor: 2 patch: 5 - prerelease: 11-g4c5d635d + prerelease: 14-g039b09b6 buildmetadata: '' commit: 41845 timestamp: diff --git a/resources/views/admin/news/index.blade.php b/resources/views/admin/news/index.blade.php index a665e588..1bee8bdf 100644 --- a/resources/views/admin/news/index.blade.php +++ b/resources/views/admin/news/index.blade.php @@ -25,7 +25,7 @@

    {{$n->title}}

    -

    {{$n->user->fullname()}} - {{$n->created_at}} +

    @if($n->user){{$n->user->fullname()}} -@endif {{$n->created_at}}

    @if($n->tags != []) @foreach($n->tags as $tag) diff --git a/resources/views/layouts/public/news.blade.php b/resources/views/layouts/public/news.blade.php index 7c7c0996..c162f48c 100644 --- a/resources/views/layouts/public/news.blade.php +++ b/resources/views/layouts/public/news.blade.php @@ -11,7 +11,7 @@

    {{ $new->title }}

    {!! $new->body !!}
    - {{ \App\User::find($new->user_id)->fullname()}}, {{$new->created_at}} + @if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{$new->created_at}}
    @if($new->tags != []) @foreach($new->tags as $tag) diff --git a/resources/views/public/allnews.blade.php b/resources/views/public/allnews.blade.php index 7033869c..432e06c8 100644 --- a/resources/views/public/allnews.blade.php +++ b/resources/views/public/allnews.blade.php @@ -26,7 +26,7 @@
    {!! $new->body !!}
    - {{ \App\User::find($new->user_id)->fullname()}}, {{ $new->created_at }} + @if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{ $new->created_at }}
    @if($new->tags != []) @foreach($new->tags as $tag) diff --git a/resources/views/public/news.blade.php b/resources/views/public/news.blade.php index 3f657f3a..83065f15 100644 --- a/resources/views/public/news.blade.php +++ b/resources/views/public/news.blade.php @@ -27,7 +27,7 @@

    {!! $new->body !!}

    - {{ \App\User::find($new->user_id)->fullname()}}, {{ $new->created_at }} + @if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{ $new->created_at }}
    @if($new->tags != []) @foreach($new->tags as $tag) From ec7a6c57f571d5486bc578d5d6762b5dc783ba30 Mon Sep 17 00:00:00 2001 From: Mathieu Lagace Date: Fri, 31 Jul 2020 21:59:54 +0000 Subject: [PATCH 42/42] Update Envoy.blade.php --- Envoy.blade.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Envoy.blade.php b/Envoy.blade.php index 13f3bcad..176b11af 100644 --- a/Envoy.blade.php +++ b/Envoy.blade.php @@ -68,6 +68,8 @@ echo "Starting deployment ({{ $release }})" cd {{ $new_release_dir_697 }} composer install --prefer-dist --no-scripts -q -o --no-dev + npm install + npm run production @endtask @task('update_symlinks_697') @@ -103,6 +105,8 @@ echo "Starting deployment ({{ $release }})" cd {{ $new_release_dir_736 }} composer install --prefer-dist --no-scripts -q -o --no-dev + npm install + npm run production @endtask @task('update_symlinks_736') @@ -138,6 +142,8 @@ echo "Starting deployment ({{ $release }})" cd {{ $new_release_dir_dev }} composer install --prefer-dist --no-scripts -q -o --no-dev + npm install + npm run production @endtask @task('update_symlinks_dev') @@ -178,6 +184,8 @@ git reset --hard {{ $commit }} echo "Starting deployment ({{ $release }})" cd {{ $new_release_dir_227 }} composer install --prefer-dist --no-scripts -q -o --no-dev +npm install +npm run production @endtask @task('update_symlinks_227') @@ -213,6 +221,8 @@ git reset --hard {{ $commit }} echo "Starting deployment ({{ $release }})" cd {{ $new_release_dir_117 }} composer install --prefer-dist --no-scripts -q -o --no-dev +npm install +npm run production @endtask @task('update_symlinks_117')