From ee351b44b1ecc708f0166a9b3163ee0ababc7126 Mon Sep 17 00:00:00 2001 From: "nico.stoerzbach" Date: Sun, 16 Jan 2022 20:10:06 +0100 Subject: [PATCH] update with latest changes and DE translations --- classes/EventEntity.php | 15 + classes/GoogleCalendarService.php | 2 +- components/Upcoming.php | 1 + composer.lock | 779 +++++++++++++++--- formwidgets/ClearCacheButton.php | 35 + formwidgets/OAuth.php | 2 +- .../partials/_clearcachebutton.htm | 5 + lang/de/lang.php | 153 +++- lang/en/lang.php | 51 +- models/settings/fields.yaml | 35 +- 10 files changed, 928 insertions(+), 150 deletions(-) create mode 100644 formwidgets/ClearCacheButton.php create mode 100644 formwidgets/clearcachebutton/partials/_clearcachebutton.htm diff --git a/classes/EventEntity.php b/classes/EventEntity.php index aa5cd87..5870e3a 100644 --- a/classes/EventEntity.php +++ b/classes/EventEntity.php @@ -3,6 +3,7 @@ class EventEntity { var $calendar_name; + var $calendar_description; var $event_name; var $location; var $description; @@ -23,6 +24,20 @@ class EventEntity { public function setCalendarName($calendar_name) { $this->calendar_name = $calendar_name; } + + /** + * @return mixed + */ + public function getCalendarDescription() { + return $this->calendar_description; + } + + /** + * @param mixed $calendar_description + */ + public function setCalendarDescription($calendar_description) { + $this->calendar_description = $calendar_description; + } /** * @return mixed diff --git a/classes/GoogleCalendarService.php b/classes/GoogleCalendarService.php index c1b6cfc..5da252a 100644 --- a/classes/GoogleCalendarService.php +++ b/classes/GoogleCalendarService.php @@ -35,7 +35,7 @@ class GoogleCalendarService { ); try { - Log::debug('G-Calendar: Call google with #getCalendar.'); + Log::debug('G-Calendar: Call google with #getCalendar for calendar with id: ' . $calendarId); $response = $this->service->events->listEvents($calendarId, $params); Cache::put($this->cacheKeyCalendarGet.$calendarId, $response, $cacheTime); diff --git a/components/Upcoming.php b/components/Upcoming.php index 148ff38..79dc869 100644 --- a/components/Upcoming.php +++ b/components/Upcoming.php @@ -71,6 +71,7 @@ class Upcoming extends ComponentBase { $eventObject = new EventEntity(); $eventObject->setCalendarName($calendarEvent->summary); $eventObject->setEventName($event->summary); + $eventObject->setCalendarDescription($calendarEvent->description); $eventObject->setLocation($event->location); $eventObject->setDescription($event->description); $eventObject->setStartTime($event->start->dateTime); diff --git a/composer.lock b/composer.lock index a94de03..8ac3e55 100644 --- a/composer.lock +++ b/composer.lock @@ -1,30 +1,33 @@ { "_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#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "725a5349d31866f61eb3e259a11c452a", + "content-hash": "899ceb6f2bf0bccca2cbd67b9fce0533", "packages": [ { "name": "firebase/php-jwt", - "version": "v5.0.0", + "version": "v5.5.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e" + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", - "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6", + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": " 4.8.35" + "phpunit/phpunit": ">=4.8 <=9" + }, + "suggest": { + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" }, "type": "library", "autoload": { @@ -50,56 +53,70 @@ ], "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" + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v5.5.1" + }, + "time": "2021-11-08T20:18:51+00:00" }, { "name": "google/apiclient", - "version": "v2.4.0", + "version": "v2.12.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client.git", - "reference": "cd3c37998020d91ae4eafca4f26a92da4dabba83" + "reference": "1530583a711f4414407112c4068464bcbace1c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/cd3c37998020d91ae4eafca4f26a92da4dabba83", - "reference": "cd3c37998020d91ae4eafca4f26a92da4dabba83", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/1530583a711f4414407112c4068464bcbace1c71", + "reference": "1530583a711f4414407112c4068464bcbace1c71", "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" + "google/apiclient-services": "~0.200", + "google/auth": "^1.10", + "guzzlehttp/guzzle": "~5.3.3||~6.0||~7.0", + "guzzlehttp/psr7": "^1.7||^2.0.0", + "monolog/monolog": "^1.17||^2.0", + "php": "^5.6|^7.0|^8.0", + "phpseclib/phpseclib": "~2.0||^3.0.2" }, "require-dev": { - "cache/filesystem-adapter": "^0.3.2", - "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0", + "cache/filesystem-adapter": "^0.3.2|^1.1", + "composer/composer": "^1.10.22", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7", "phpcompatibility/php-compatibility": "^9.2", - "phpunit/phpunit": "~4.8.36", + "phpspec/prophecy-phpunit": "^1.1||^2.0", + "phpunit/phpunit": "^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0", "squizlabs/php_codesniffer": "~2.3", "symfony/css-selector": "~2.1", - "symfony/dom-crawler": "~2.1" + "symfony/dom-crawler": "~2.1", + "yoast/phpunit-polyfills": "^1.0" }, "suggest": { - "cache/filesystem-adapter": "For caching certs and tokens (using Google_Client::setCache)" + "cache/filesystem-adapter": "For caching certs and tokens (using Google\\Client::setCache)" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { - "psr-0": { - "Google_": "src/" + "psr-4": { + "Google\\": "src/" }, + "files": [ + "src/aliases.php" + ], "classmap": [ - "src/Google/Service/" + "src/aliases.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -111,33 +128,40 @@ "keywords": [ "google" ], - "time": "2019-09-11T17:38:10+00:00" + "support": { + "issues": "https://github.com/googleapis/google-api-php-client/issues", + "source": "https://github.com/googleapis/google-api-php-client/tree/v2.12.1" + }, + "time": "2021-12-02T03:34:25+00:00" }, { "name": "google/apiclient-services", - "version": "v0.118", + "version": "v0.228.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "3db3c3097dcfb2e2cd578053f28be20fe4ad8e01" + "reference": "ec64bbf1d6af9475bee7b1ce4fc0ed8a0a8d8889" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/3db3c3097dcfb2e2cd578053f28be20fe4ad8e01", - "reference": "3db3c3097dcfb2e2cd578053f28be20fe4ad8e01", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/ec64bbf1d6af9475bee7b1ce4fc0ed8a0a8d8889", + "reference": "ec64bbf1d6af9475bee7b1ce4fc0ed8a0a8d8889", "shasum": "" }, "require": { - "php": ">=5.4" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^5.7||^8.5.13" }, "type": "library", "autoload": { - "psr-0": { - "Google_Service_": "src" - } + "psr-4": { + "Google\\Service\\": "src" + }, + "files": [ + "autoload.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -148,34 +172,38 @@ "keywords": [ "google" ], - "time": "2019-10-14T00:24:06+00:00" + "support": { + "issues": "https://github.com/googleapis/google-api-php-client-services/issues", + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.228.0" + }, + "time": "2021-12-21T12:26:12+00:00" }, { "name": "google/auth", - "version": "v1.6.0", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "6d5455b4c0f4a58b1f1b4bdf2ba49221123698b3" + "reference": "21dd478e77b0634ed9e3a68613f74ed250ca9347" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/6d5455b4c0f4a58b1f1b4bdf2ba49221123698b3", - "reference": "6d5455b4c0f4a58b1f1b4bdf2ba49221123698b3", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/21dd478e77b0634ed9e3a68613f74ed250ca9347", + "reference": "21dd478e77b0634ed9e3a68613f74ed250ca9347", "shasum": "" }, "require": { "firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0", - "guzzlehttp/guzzle": "~5.3.1|~6.0", - "guzzlehttp/psr7": "^1.2", + "guzzlehttp/guzzle": "^5.3.1|^6.2.1|^7.0", + "guzzlehttp/psr7": "^1.7|^2.0", "php": ">=5.4", - "psr/cache": "^1.0", + "psr/cache": "^1.0|^2.0", "psr/http-message": "^1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^1.11", "guzzlehttp/promises": "0.1.1|^1.3", - "phpseclib/phpseclib": "^2", + "kelvinmo/simplejwt": "^0.2.5|^0.5.1", + "phpseclib/phpseclib": "^2.0.31", "phpunit/phpunit": "^4.8.36|^5.7", "sebastian/comparator": ">=1.2.3" }, @@ -199,97 +227,161 @@ "google", "oauth2" ], - "time": "2019-10-01T18:35:05+00:00" + "support": { + "docs": "https://googleapis.github.io/google-auth-library-php/master/", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.18.0" + }, + "time": "2021-08-24T18:03:18+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "version": "7.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "7.4-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], - "time": "2018-04-22T15:46:56+00:00" + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.4.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2021-12-06T18:43:05+00:00" }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -305,74 +397,133 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "bamarni/composer-bin-plugin": "^1.4.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.8 || ^9.3.10" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -386,20 +537,38 @@ "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-06T17:43:30+00:00" }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.34", + "version": "2.8.37", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b" + "reference": "9841e3c46f5bd0739b53aed8ac677fa712943df7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", - "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/9841e3c46f5bd0739b53aed8ac677fa712943df7", + "reference": "9841e3c46f5bd0739b53aed8ac677fa712943df7", "shasum": "" }, "require": { @@ -438,42 +607,53 @@ "mobile detector", "php mobile detect" ], - "time": "2019-09-18T18:44:20+00:00" + "support": { + "issues": "https://github.com/serbanghita/Mobile-Detect/issues", + "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.37" + }, + "funding": [ + { + "url": "https://github.com/serbanghita", + "type": "github" + } + ], + "time": "2021-02-19T21:22:57+00:00" }, { "name": "monolog/monolog", - "version": "2.0.0", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "68545165e19249013afd1d6f7485aecff07a2d22" + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/68545165e19249013afd1d6f7485aecff07a2d22", - "reference": "68545165e19249013afd1d6f7485aecff07a2d22", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", "shasum": "" }, "require": { - "php": "^7.2", - "psr/log": "^1.0.1" + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^6.0", + "elasticsearch/elasticsearch": "^7", "graylog2/gelf-php": "^1.4.2", - "jakub-onderka/php-parallel-lint": "^0.9", - "php-amqplib/php-amqplib": "~2.4", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.3", "phpspec/prophecy": "^1.6.1", - "phpunit/phpunit": "^8.3", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5", "predis/predis": "^1.1", "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90 <3.0", + "ruflin/elastica": ">=0.90@dev", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { @@ -481,8 +661,11 @@ "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-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", "ext-mbstring": "Allow to work properly with unicode symbols", "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "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", @@ -493,7 +676,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -509,39 +692,171 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", "psr-3" ], - "time": "2019-08-30T09:56:44+00:00" + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2021-10-01T21:08:31+00:00" }, { - "name": "phpseclib/phpseclib", - "version": "2.0.23", + "name": "paragonie/constant_time_encoding", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2020-12-06T15:14:20+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.12", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" }, "require-dev": { "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", - "sami/sami": "~2.0", + "phpunit/phpunit": "^5.7|^6.0|^9.4", "squizlabs/php_codesniffer": "~2.0" }, "suggest": { @@ -556,7 +871,7 @@ "phpseclib/bootstrap.php" ], "psr-4": { - "phpseclib\\": "phpseclib/" + "phpseclib3\\": "phpseclib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -611,7 +926,25 @@ "x.509", "x509" ], - "time": "2019-09-17T03:41:22+00:00" + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.12" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2021-11-28T23:46:03+00:00" }, { "name": "psr/cache", @@ -657,8 +990,118 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.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" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -707,20 +1150,23 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "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/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -729,7 +1175,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -744,7 +1190,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -754,7 +1200,10 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" }, { "name": "ralouphie/getallheaders", @@ -794,7 +1243,78 @@ } ], "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-12T14:48:14+00:00" } ], "packages-dev": [], @@ -806,5 +1326,6 @@ "platform": { "php": ">=7.0" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.0.0" } diff --git a/formwidgets/ClearCacheButton.php b/formwidgets/ClearCacheButton.php new file mode 100644 index 0000000..2ae1a54 --- /dev/null +++ b/formwidgets/ClearCacheButton.php @@ -0,0 +1,35 @@ +makePartial('clearCacheButton'); + } + + // Clear cache for all saved calendars + public function onClearCache() { + $calendarSelectors = Settings::get('calendar_selector', []); + + foreach ($calendarSelectors as &$selector) { + Cache::forget($this->cacheKeyCalendarGet.$selector['id']); + } + Cache::forget($this->cacheKeyCalendarList); + + Log::info('G-Calendar: Cache cleared!'); + Flash::success(Lang::get('nicost.gcalendar::lang.widget.clearCacheButton.success')); + } + +} \ No newline at end of file diff --git a/formwidgets/OAuth.php b/formwidgets/OAuth.php index 67eee8b..104ea58 100644 --- a/formwidgets/OAuth.php +++ b/formwidgets/OAuth.php @@ -38,7 +38,7 @@ class OAuth extends FormWidgetBase { $this->vars['auth_url'] = $authUrl; - return $this->makePartial('gaccess'); + return $this->makePartial('gaccess'); } Log::info('G-Calendar: Access token not expired.'); diff --git a/formwidgets/clearcachebutton/partials/_clearcachebutton.htm b/formwidgets/clearcachebutton/partials/_clearcachebutton.htm new file mode 100644 index 0000000..1240d1f --- /dev/null +++ b/formwidgets/clearcachebutton/partials/_clearcachebutton.htm @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/lang/de/lang.php b/lang/de/lang.php index ef47226..d736d52 100644 --- a/lang/de/lang.php +++ b/lang/de/lang.php @@ -3,8 +3,159 @@ 'name' => 'G-Calendar', 'description' => 'Kalender Plugin basierend auf der Google API.', ], + + 'component' => [ + 'upcoming' => [ + 'name' => 'Bevorstehende Termine', + 'description' => 'Listet alle bevorstehenden Termine.' + ], + 'embeddedCalendar' => [ + 'name' => 'Eingebetteter Kalender', + 'description' => 'Eingebetteter Google Kalender.', + 'groups' => [ + 'calendars' => 'Kalender', + 'toggleElements' => 'Toggle Elements' + ], + 'properties' => [ + 'calendarTitle' => [ + 'title' => 'Kalender Title' + ], + 'width' => [ + 'title' => 'Breite', + 'validationMessage' => 'Die Breite muss Numerisch sein und darf nicht mehr als vier Ziffern umfassen.' + ], + 'height' => [ + 'title' => 'Höhe', + 'validationMessage' => 'Die Höhe muss Numerisch sein und darf nicht mehr als vier Ziffern umfassen.' + ], + 'timezone' => [ + 'title' => 'Zeitzone' + ], + 'language' => [ + 'title' => 'Sprache' + ], + 'viewMode' => [ + 'title' => 'Anzeigemodus', + 'placeholder' => 'Wähle einen Anzeigemodus', + 'description' => 'Wähle "Dynamisch" um die "Agenda Ansicht" für Mobile Geräte und die "Monatsansicht" für Desktop zu nutzen.', + 'month' => 'Monatsansicht', + 'week' => 'Wochenansicht', + 'agenda' => 'Agenda Ansicht', + 'dynamic' => 'Dynamisch' + ], + 'weekStart' => [ + 'title' => 'Woche starte am:', + 'sat' => 'Samstag', + 'sun' => 'Sonntag', + 'mon' => 'Montag' + ], + 'bgcolor' => [ + 'title' => 'Hintergrundfarbe', + 'description' => 'Definiert die Hintergrundfarbe des Kopfbereichs.', + 'validationMessage' => 'Hintergrundfarbe muss als Hexadecimal Code angegeben werden.' + ], + 'showTitle' => [ + 'title' => 'Titel Anzeigen' + ], + 'showPrint' => [ + 'title' => 'Drucker Optionen Anzeigen' + ], + 'showTimezone' => [ + 'title' => 'Zeitzone Anzeigen' + ], + 'showNav' => [ + 'title' => 'Navigation Anzeigen' + ], + 'showDate' => [ + 'title' => 'Datum Anzeigen' + ], + 'showTabs' => [ + 'title' => 'Tabs Anzeigen' + ], + 'showCalendarList' => [ + 'title' => 'Kalender Liste Anzeigen' + ], + + ] + ] + ], + + 'widget' => [ + 'clearCacheButton' => [ + 'buttonText' => 'Cache löschen', + 'success' => 'Cache wurde gelöscht!' + ] + ], + 'settings' => [ 'label' => 'G-Calendar', - 'description' => 'Einstellungen für das G-Kalender Plugin' + 'description' => 'Einstellungen für das G-Calendar Plugin.', + + 'tab' => [ + 'client' => 'Client Konfiguration', + 'calendars' => 'Kalender', + 'settings' => 'Einstellungen' + ], + 'fields' => [ + 'applicationName' => [ + 'label' => 'Anzeigename', + 'comment' => 'Optional.' + ], + 'clientId' => [ + 'label' => 'Client ID', + 'comment' => 'Die "Client ID" steht in den "OAuth Credentials". (https://console.cloud.google.com/apis/credentials)' + ], + 'clientSecret' => [ + 'label' => 'Client Secret', + 'comment' => 'Der "Client Secret" code steht in den "OAuth Credentials". (https://console.cloud.google.com/apis/credentials)' + ], + 'accessToken' => [ + 'label' => 'Access Token', + 'comment' => 'Wird automatisch beim Speichern der "Client ID" und "Client Secret" generiert.' + ], + 'cacheTime' => [ + 'label' => 'Google Calendar API Cache.', + 'comment' => 'Anfragen an die Google Calendar API werden zwischengespeichert um die Anzahl der Anfragen zu reduzieren. (\'0\') um den Cache zu deaktivieren. (Angabe in Minuten)' + ], + 'section' => [ + 'accessToken' => 'Access Token', + 'cacheControl' => 'Cache Einstellungen', + 'notification' => 'Benachrichtigung' + ], + 'notification' => [ + 'switch' => [ + 'label' => 'Benachrichtigung Einblenden', + 'on' => 'An', + 'off' => 'Aus' + ], + 'text' => [ + 'label' => 'Nachricht' + ] + ] + ], + + 'button' => [ + 'requestToken' => 'Access Token Anfragen', + 'clearToken' => 'Access Token Löschen' + ], + 'calendarList' => [ + 'emptyList' => 'Kein Kalender gefunden. Verbinde G-Calendar mit deinem Google Account um deine Kalender hier anzuzeigen.', + 'columnName' => 'Name', + 'columnRole' => 'Rolle', + 'columnId' => 'ID' + ], + 'gaccess' => [ + 'text' => 'Klicke auf den unten stehenden Link um G-Calendar zugriff auch deine Kalender zu gewähren.', + 'button' => 'Zugriff Gewähren.' + ], + 'oauth' => [ + 'tokenNotValid' => 'Access Token ungültig.', + 'tokenValid' => 'Access Token gültig.' + ] ], + + 'message' => [ + 'accessTokenNotExpired' => 'Access Token nicht abgelaufen.', + 'accessTokenRemoved' => 'Access Token erfolgreich entfernt.' + ] ]; \ No newline at end of file diff --git a/lang/en/lang.php b/lang/en/lang.php index cd32e00..1a9ab54 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -1,7 +1,7 @@ [ 'name' => 'G-Calendar', - 'description' => 'Calendar plugin which uses the google API.', + 'description' => 'Calendar plugin which uses the google API.' ], 'component' => [ @@ -18,21 +18,21 @@ ], 'properties' => [ 'calendarTitle' => [ - 'title' => 'Calendar Title', + 'title' => 'Calendar Title' ], 'width' => [ 'title' => 'Width', - 'validationMessage' => 'The width must be numeric and not longer than 4 characters.', + 'validationMessage' => 'The width must be numeric and not longer than 4 characters.' ], 'height' => [ 'title' => 'Height', - 'validationMessage' => 'The height must be numeric and not longer than 4 characters.', + 'validationMessage' => 'The height must be numeric and not longer than 4 characters.' ], 'timezone' => [ - 'title' => 'Timezone', + 'title' => 'Timezone' ], 'language' => [ - 'title' => 'Language Code', + 'title' => 'Language Code' ], 'viewMode' => [ 'title' => 'View Mode', @@ -55,31 +55,38 @@ 'validationMessage' => 'Background color must be a hexadecimal color code.' ], 'showTitle' => [ - 'title' => 'Show Title', + 'title' => 'Show Title' ], 'showPrint' => [ - 'title' => 'Show Print Option', + 'title' => 'Show Print Option' ], 'showTimezone' => [ - 'title' => 'Show Timezone', + 'title' => 'Show Timezone' ], 'showNav' => [ - 'title' => 'Show Navigation', + 'title' => 'Show Navigation' ], 'showDate' => [ - 'title' => 'Show Date', + 'title' => 'Show Date' ], 'showTabs' => [ - 'title' => 'Show Tabs', + 'title' => 'Show Tabs' ], 'showCalendarList' => [ - 'title' => 'Show Calendar List', + 'title' => 'Show Calendar List' ], ] ] ], + 'widget' => [ + 'clearCacheButton' => [ + 'buttonText' => 'Clear Cache', + 'success' => 'Cache cleared!' + ] + ], + 'settings' => [ 'label' => 'G-Calendar', 'description' => 'Settings for G-Calendar plugin', @@ -96,11 +103,11 @@ ], 'clientId' => [ 'label' => 'Client ID', - 'comment' => 'The Client ID can be found in the OAuth Credentials under Service Account.' + 'comment' => 'The Client ID can be found in the OAuth Credentials under Service Account. (https://console.cloud.google.com/apis/credentials)' ], 'clientSecret' => [ 'label' => 'Client Secret', - 'comment' => 'The Client Secret key can be found in the OAuth Credentials.' + 'comment' => 'The Client Secret can be found in the OAuth Credentials. (https://console.cloud.google.com/apis/credentials)' ], 'accessToken' => [ 'label' => 'Access Token', @@ -111,8 +118,20 @@ 'comment' => 'Cache Google Calendar API requests in minutes. Enter \'0\' to disable caching.' ], 'section' => [ - 'accessToken' => 'Access Token' + 'accessToken' => 'Access Token', + 'cacheControl' => 'Cache control', + 'notification' => 'Notification' ], + 'notification' => [ + 'switch' => [ + 'label' => 'Display Notification', + 'on' => 'On', + 'off' => 'Off' + ], + 'text' => [ + 'label' => 'Notification Content' + ] + ] ], 'button' => [ diff --git a/models/settings/fields.yaml b/models/settings/fields.yaml index cbfe838..be295ed 100644 --- a/models/settings/fields.yaml +++ b/models/settings/fields.yaml @@ -1,7 +1,7 @@ tabs: fields: - # Tab: Google Client + # Tab: Client Configuration application_name: label: 'nicost.gcalendar::lang.settings.fields.applicationName.label' tab: 'nicost.gcalendar::lang.settings.tab.client' @@ -14,12 +14,14 @@ tabs: type: text comment: 'nicost.gcalendar::lang.settings.fields.clientId.comment' span: left + required: true client_secret: label: 'nicost.gcalendar::lang.settings.fields.clientSecret.label' tab: 'nicost.gcalendar::lang.settings.tab.client' type: text comment: 'nicost.gcalendar::lang.settings.fields.clientSecret.comment' span: left + required: true google_oauth: label: 'nicost.gcalendar::lang.settings.fields.section.accessToken' tab: 'nicost.gcalendar::lang.settings.tab.client' @@ -28,14 +30,43 @@ tabs: tab: 'nicost.gcalendar::lang.settings.tab.client' type: NicoSt\GCalendar\FormWidgets\OAuth + # Tab: Calendars calendar_selector: tab: 'nicost.gcalendar::lang.settings.tab.calendars' type: NicoSt\GCalendar\FormWidgets\CalendarSelector + # Tab: Settings + cache_control: + label: 'nicost.gcalendar::lang.settings.fields.section.cacheControl' + tab: 'nicost.gcalendar::lang.settings.tab.settings' + type: section cache_time: label: 'nicost.gcalendar::lang.settings.fields.cacheTime.label' tab: 'nicost.gcalendar::lang.settings.tab.settings' comment: 'nicost.gcalendar::lang.settings.fields.cacheTime.comment' type: number span: left - default: 15 \ No newline at end of file + default: 15 + clear_cache: + tab: 'nicost.gcalendar::lang.settings.tab.settings' + type: NicoSt\GCalendar\FormWidgets\ClearCacheButton + notification: + label: 'nicost.gcalendar::lang.settings.fields.section.notification' + tab: 'nicost.gcalendar::lang.settings.tab.settings' + type: section + notification_show: + label: 'nicost.gcalendar::lang.settings.fields.notification.switch.label' + tab: 'nicost.gcalendar::lang.settings.tab.settings' + type: switch + on: nicost.gcalendar::lang.settings.fields.notification.switch.on + off: nicost.gcalendar::lang.settings.fields.notification.switch.off + notification_text: + label: 'nicost.gcalendar::lang.settings.fields.notification.text.label' + tab: 'nicost.gcalendar::lang.settings.tab.settings' + type: richeditor + size: huge + toolbarButtons: bold|italic|underline||insertLink||undo|redo||html + trigger: + action: show + field: notification_show + condition: checked \ No newline at end of file