diff --git a/appinfo/routes.php b/appinfo/routes.php index a14b912e..e58f75ba 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -15,6 +15,7 @@ ['name' => 'metadata#page', 'url' => '/metadata', 'verb' => 'GET'], ['name' => 'publications#page', 'url' => '/publications', 'verb' => 'GET'], ['name' => 'publications#attachments', 'url' => '/api/publications/{id}/attachments', 'verb' => 'GET', 'requirements' => ['id' => '.+']], + ['name' => 'publications#download', 'url' => '/api/publications/{id}/download', 'verb' => 'GET', 'requirements' => ['id' => '.+']], ['name' => 'catalogi#page', 'url' => '/catalogi', 'verb' => 'GET'], ['name' => 'search#index', 'url' => '/search', 'verb' => 'GET'], ['name' => 'search#index', 'url' => '/api/search', 'verb' => 'GET'], diff --git a/composer.json b/composer.json index b24de24d..2a4dc0fa 100644 --- a/composer.json +++ b/composer.json @@ -40,11 +40,13 @@ }, "require": { "php": "^8.1", + "ext-zip": "*", "adbario/php-dot-notation": "^3.3.0", "bamarni/composer-bin-plugin": "^1.8", "elasticsearch/elasticsearch": "^v8.14.0", - "adbario/php-dot-notation": "^3.3.0", "guzzlehttp/guzzle": "^7.0", + "mpdf/mpdf": "^8.2", + "symfony/twig-bundle": "^6.4", "symfony/uid": "^6.4" }, "require-dev": { diff --git a/composer.lock b/composer.lock index d995fb24..7284d015 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": "c36605d341f3e840f8189a55ad611884", + "content-hash": "93ceb09bbb9b85fb7d77d68d6d6eefe1", "packages": [ { "name": "adbario/php-dot-notation", @@ -555,6 +555,289 @@ ], "time": "2023-12-03T20:05:35+00:00" }, + { + "name": "mpdf/mpdf", + "version": "v8.2.4", + "source": { + "type": "git", + "url": "https://github.com/mpdf/mpdf.git", + "reference": "9e3ff91606fed11cd58a130eabaaf60e56fdda88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/9e3ff91606fed11cd58a130eabaaf60e56fdda88", + "reference": "9e3ff91606fed11cd58a130eabaaf60e56fdda88", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "ext-mbstring": "*", + "mpdf/psr-http-message-shim": "^1.0 || ^2.0", + "mpdf/psr-log-aware-trait": "^2.0 || ^3.0", + "myclabs/deep-copy": "^1.7", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "setasign/fpdi": "^2.1" + }, + "require-dev": { + "mockery/mockery": "^1.3.0", + "mpdf/qrcode": "^1.1.0", + "squizlabs/php_codesniffer": "^3.5.0", + "tracy/tracy": "~2.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-bcmath": "Needed for generation of some types of barcodes", + "ext-xml": "Needed mainly for SVG manipulation", + "ext-zlib": "Needed for compression of embedded resources, such as fonts" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Mpdf\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-only" + ], + "authors": [ + { + "name": "Matěj Humpál", + "role": "Developer, maintainer" + }, + { + "name": "Ian Back", + "role": "Developer (retired)" + } + ], + "description": "PHP library generating PDF files from UTF-8 encoded HTML", + "homepage": "https://mpdf.github.io", + "keywords": [ + "pdf", + "php", + "utf-8" + ], + "support": { + "docs": "http://mpdf.github.io", + "issues": "https://github.com/mpdf/mpdf/issues", + "source": "https://github.com/mpdf/mpdf" + }, + "funding": [ + { + "url": "https://www.paypal.me/mpdf", + "type": "custom" + } + ], + "time": "2024-06-14T16:06:41+00:00" + }, + { + "name": "mpdf/psr-http-message-shim", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/mpdf/psr-http-message-shim.git", + "reference": "f25a0153d645e234f9db42e5433b16d9b113920f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/psr-http-message-shim/zipball/f25a0153d645e234f9db42e5433b16d9b113920f", + "reference": "f25a0153d645e234f9db42e5433b16d9b113920f", + "shasum": "" + }, + "require": { + "psr/http-message": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Mpdf\\PsrHttpMessageShim\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Dorison", + "email": "mark@chromatichq.com" + }, + { + "name": "Kristofer Widholm", + "email": "kristofer@chromatichq.com" + }, + { + "name": "Nigel Cunningham", + "email": "nigel.cunningham@technocrat.com.au" + } + ], + "description": "Shim to allow support of different psr/message versions.", + "support": { + "issues": "https://github.com/mpdf/psr-http-message-shim/issues", + "source": "https://github.com/mpdf/psr-http-message-shim/tree/v2.0.1" + }, + "time": "2023-10-02T14:34:03+00:00" + }, + { + "name": "mpdf/psr-log-aware-trait", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/mpdf/psr-log-aware-trait.git", + "reference": "7a077416e8f39eb626dee4246e0af99dd9ace275" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/psr-log-aware-trait/zipball/7a077416e8f39eb626dee4246e0af99dd9ace275", + "reference": "7a077416e8f39eb626dee4246e0af99dd9ace275", + "shasum": "" + }, + "require": { + "psr/log": "^1.0 || ^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Mpdf\\PsrLogAwareTrait\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Dorison", + "email": "mark@chromatichq.com" + }, + { + "name": "Kristofer Widholm", + "email": "kristofer@chromatichq.com" + } + ], + "description": "Trait to allow support of different psr/log versions.", + "support": { + "issues": "https://github.com/mpdf/psr-log-aware-trait/issues", + "source": "https://github.com/mpdf/psr-log-aware-trait/tree/v2.0.0" + }, + "time": "2023-05-03T06:18:28+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2024-06-12T14:39:25+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": "php-http/discovery", "version": "1.19.4", @@ -744,32 +1027,31 @@ "time": "2024-03-15T13:55:21+00:00" }, { - "name": "psr/http-client", - "version": "1.0.3", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Client\\": "src/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -782,36 +1064,37 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "http", - "http-client", - "psr", - "psr-18" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "source": "https://github.com/php-fig/http-client" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2023-09-23T14:17:50+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "psr/http-factory", - "version": "1.1.0", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" + "php": ">=7.2.0" }, "type": "library", "extra": { @@ -821,7 +1104,7 @@ }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -831,51 +1114,48 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], - "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "description": "Standard interfaces for event handling.", "keywords": [ - "factory", - "http", - "message", + "events", "psr", - "psr-17", - "psr-7", - "request", - "response" + "psr-14" ], "support": { - "source": "https://github.com/php-fig/http-factory" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2024-04-15T12:06:14+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "psr/http-message", - "version": "2.0", + "name": "psr/http-client", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -888,7 +1168,113 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interface for HTTP messages", + "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" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.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": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: 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" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", "homepage": "https://github.com/php-fig/http-message", "keywords": [ "http", @@ -998,36 +1384,41 @@ "time": "2019-03-08T08:55:37+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "name": "setasign/fpdi", + "version": "v2.6.0", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "url": "https://github.com/Setasign/FPDI.git", + "reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6db878129ec6c7e141316ee71872923e7f1b7ad", + "reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad", "shasum": "" }, "require": { - "php": ">=8.1" + "ext-zlib": "*", + "php": "^5.6 || ^7.0 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } + "conflict": { + "setasign/tfpdf": "<1.31" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "setasign/fpdf": "~1.8.6", + "setasign/tfpdf": "~1.33", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "~6.2" + }, + "suggest": { + "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." }, + "type": "library", "autoload": { - "files": [ - "function.php" - ] + "psr-4": { + "setasign\\Fpdi\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1035,72 +1426,74 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Jan Slabon", + "email": "jan.slabon@setasign.com", + "homepage": "https://www.setasign.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Maximilian Kresse", + "email": "maximilian.kresse@setasign.com", + "homepage": "https://www.setasign.com" } ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", + "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", + "homepage": "https://www.setasign.com/fpdi", + "keywords": [ + "fpdf", + "fpdi", + "pdf" + ], "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "issues": "https://github.com/Setasign/FPDI/issues", + "source": "https://github.com/Setasign/FPDI/tree/v2.6.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", + "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2023-12-11T16:03:32+00:00" }, { - "name": "symfony/polyfill-uuid", - "version": "v1.30.0", + "name": "symfony/config", + "version": "v6.4.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9" + "url": "https://github.com/symfony/config.git", + "reference": "12e7e52515ce37191b193cf3365903c4f3951e35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9", + "url": "https://api.github.com/repos/symfony/config/zipball/12e7e52515ce37191b193cf3365903c4f3951e35", + "reference": "12e7e52515ce37191b193cf3365903c4f3951e35", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/polyfill-ctype": "~1.8" }, - "provide": { - "ext-uuid": "*" + "conflict": { + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" }, - "suggest": { - "ext-uuid": "For best performance" + "require-dev": { + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Uuid\\": "" - } + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1108,24 +1501,18 @@ ], "authors": [ { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for uuid functions", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "uuid" - ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.0" + "source": "https://github.com/symfony/config/tree/v6.4.8" }, "funding": [ { @@ -1141,33 +1528,49 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { - "name": "symfony/uid", - "version": "v6.4.8", + "name": "symfony/dependency-injection", + "version": "v6.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/uid.git", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/polyfill-uuid": "^1.15" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.2.10|^7.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.1", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<6.3", + "symfony/yaml": "<5.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" + "symfony/config": "^6.1|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Uid\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1179,27 +1582,18 @@ ], "authors": [ { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an object-oriented API to generate and represent UIDs", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "keywords": [ - "UID", - "ulid", - "uuid" - ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.8" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.10" }, "funding": [ { @@ -1215,76 +1609,1506 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" - } - ], - "packages-dev": [ + "time": "2024-07-26T07:32:07+00:00" + }, { - "name": "nextcloud/ocp", - "version": "dev-stable29", + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", "source": { "type": "git", - "url": "https://github.com/nextcloud-deps/ocp.git", - "reference": "65b6744fca5d4b3c366754295e5cb0680a580c51" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/65b6744fca5d4b3c366754295e5cb0680a580c51", - "reference": "65b6744fca5d4b3c366754295e5cb0680a580c51", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { - "php": "~8.0 || ~8.1 || ~8.2 || ~8.3", - "psr/clock": "^1.0", - "psr/container": "^2.0.2", - "psr/event-dispatcher": "^1.0", - "psr/log": "^1.1.4" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-stable29": "29.0.0-dev" + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, + "autoload": { + "files": [ + "function.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "AGPL-3.0-or-later" + "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/v3.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": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "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": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + }, + "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": "2024-07-26T12:30:32+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "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": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" + }, + "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": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "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": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.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": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "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": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + }, + "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": "2024-06-28T09:49:33+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "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": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" + }, + "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": "2024-07-26T12:36:27+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "147e0daf618d7575b5007055340d09aece5cf068" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/147e0daf618d7575b5007055340d09aece5cf068", + "reference": "147e0daf618d7575b5007055340d09aece5cf068", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "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": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.4.10" + }, + "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": "2024-07-26T14:52:04+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.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": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "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": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.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": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.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": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.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": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.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": "2024-06-19T12:35:24+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9", + "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.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": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.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": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.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": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "9bcb26445b9d4ef1087c389234bf33fb00e10ea6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9bcb26445b9d4ef1087c389234bf33fb00e10ea6", + "reference": "9bcb26445b9d4ef1087c389234bf33fb00e10ea6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/translation-contracts": "^2.5|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<5.4", + "symfony/form": "<6.3", + "symfony/http-foundation": "<5.4", + "symfony/http-kernel": "<6.4", + "symfony/mime": "<6.2", + "symfony/serializer": "<6.4", + "symfony/translation": "<5.4", + "symfony/workflow": "<5.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.4|^6.0|^7.0", + "symfony/asset-mapper": "^6.3|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/html-sanitizer": "^6.1|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^5.4|^6.0|^7.0", + "symfony/security-csrf": "^5.4|^6.0|^7.0", + "symfony/security-http": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^6.1|^7.0", + "symfony/web-link": "^5.4|^6.0|^7.0", + "symfony/workflow": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "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": "Provides integration for Twig with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.9" + }, + "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": "2024-06-21T16:04:15+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "ef17bc8fc2cb2376b235cd1b98f0275a78c5ba65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/ef17bc8fc2cb2376b235cd1b98f0275a78c5ba65", + "reference": "ef17bc8fc2cb2376b235cd1b98f0275a78c5ba65", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "php": ">=8.1", + "symfony/config": "^6.1|^7.0", + "symfony/dependency-injection": "^6.1|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.2", + "symfony/twig-bridge": "^6.4", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/framework-bundle": "<5.4", + "symfony/translation": "<5.4" + }, + "require-dev": { + "symfony/asset": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/form": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/web-link": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "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": "Provides a tight integration of Twig into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bundle/tree/v6.4.8" + }, + "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": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" ], "authors": [ { - "name": "Christoph Wurst", - "email": "christoph@winzerhof-wurst.at" + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Composer package containing Nextcloud's public API (classes, interfaces)", + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], "support": { - "issues": "https://github.com/nextcloud-deps/ocp/issues", - "source": "https://github.com/nextcloud-deps/ocp/tree/stable29" + "source": "https://github.com/symfony/uid/tree/v6.4.8" }, - "time": "2024-07-11T00:37:34+00:00" + "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": "2024-05-31T14:49:08+00:00" }, { - "name": "psr/clock", - "version": "1.0.0", + "name": "symfony/var-dumper", + "version": "v6.4.10", "source": { "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a71cc3374f5fb9759da1961d28c452373b343dd4", + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", "autoload": { + "files": [ + "Resources/functions/dump.php" + ], "psr-4": { - "Psr\\Clock\\": "src/" - } + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1292,104 +3116,263 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" + "debug", + "dump" ], "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.10" }, - "time": "2022-11-25T14:36:26+00:00" + "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": "2024-07-26T12:30:32+00:00" }, { - "name": "psr/container", - "version": "2.0.2", + "name": "symfony/var-exporter", + "version": "v6.4.9", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + "url": "https://github.com/symfony/var-exporter.git", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "require-dev": { + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" + }, + "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": "2024-06-24T15:53:56+00:00" + }, + { + "name": "twig/twig", + "version": "v3.11.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", + "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", + "shasum": "" }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22", + "symfony/polyfill-php81": "^1.29" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" + }, + "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { - "Psr\\Container\\": "src/" + "Twig\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "templating" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.11.0" }, - "time": "2021-11-05T16:47:00+00:00" - }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2024-08-08T16:15:16+00:00" + } + ], + "packages-dev": [ { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "name": "nextcloud/ocp", + "version": "dev-stable29", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/nextcloud-deps/ocp.git", + "reference": "65b6744fca5d4b3c366754295e5cb0680a580c51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/65b6744fca5d4b3c366754295e5cb0680a580c51", + "reference": "65b6744fca5d4b3c366754295e5cb0680a580c51", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": "~8.0 || ~8.1 || ~8.2 || ~8.3", + "psr/clock": "^1.0", + "psr/container": "^2.0.2", + "psr/event-dispatcher": "^1.0", + "psr/log": "^1.1.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-stable29": "29.0.0-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "AGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Christoph Wurst", + "email": "christoph@winzerhof-wurst.at" } + ], + "description": "Composer package containing Nextcloud's public API (classes, interfaces)", + "support": { + "issues": "https://github.com/nextcloud-deps/ocp/issues", + "source": "https://github.com/nextcloud-deps/ocp/tree/stable29" + }, + "time": "2024-07-11T00:37:34+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "Psr\\Clock\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1399,20 +3382,23 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], - "description": "Standard interfaces for event handling.", + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", "keywords": [ - "events", + "clock", + "now", "psr", - "psr-14" + "psr-20", + "time" ], "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" }, - "time": "2019-01-08T18:20:26+00:00" + "time": "2022-11-25T14:36:26+00:00" }, { "name": "roave/security-advisories", @@ -2234,7 +4220,8 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.1" + "php": "^8.1", + "ext-zip": "*" }, "platform-dev": [], "platform-overrides": { diff --git a/css/main.css b/css/main.css index 43c4a467..9a25a17a 100644 --- a/css/main.css +++ b/css/main.css @@ -122,3 +122,34 @@ color: var(--color-error); } + +/* File drag and drop */ + +.filesListDragDropNotice{ + display: flex; + align-items: center; + justify-content: center; + width: 100%; + min-height: 113px; + margin: 0; + user-select: none; + color: var(--color-text-maxcontrast); + background-color: var(--color-main-background); + border-color: #000; +} + +.filesListDragDropNoticeWrapper{ + display: flex; + align-items: center; + justify-content: center; + height: 15vh; + max-height: 70%; + padding: 0 5vw; + border: 2px var(--color-border-dark) dashed; + border-radius: var(--border-radius-large); +} + +.filesListDragDropNoticeTitle{ + margin-left: 16px; + color: inherit; +} diff --git a/docs/.gitbook/assets/Metadata_modal.png b/docs/.gitbook/assets/Metadata_modal.png new file mode 100644 index 00000000..15e00a34 Binary files /dev/null and b/docs/.gitbook/assets/Metadata_modal.png differ diff --git a/docs/.gitbook/assets/Screenshot 2024-08-08 113242.png b/docs/.gitbook/assets/Screenshot 2024-08-08 113242.png new file mode 100644 index 00000000..73388011 Binary files /dev/null and b/docs/.gitbook/assets/Screenshot 2024-08-08 113242.png differ diff --git a/docs/.gitbook/assets/Screenshot 2024-08-08 142036.png b/docs/.gitbook/assets/Screenshot 2024-08-08 142036.png new file mode 100644 index 00000000..03ba470a Binary files /dev/null and b/docs/.gitbook/assets/Screenshot 2024-08-08 142036.png differ diff --git a/docs/.gitbook/assets/bijlage_toevoegen.png b/docs/.gitbook/assets/bijlage_toevoegen.png new file mode 100644 index 00000000..dd356668 Binary files /dev/null and b/docs/.gitbook/assets/bijlage_toevoegen.png differ diff --git a/docs/.gitbook/assets/bijlage_toevoegen_actieknop.png b/docs/.gitbook/assets/bijlage_toevoegen_actieknop.png new file mode 100644 index 00000000..c697705c Binary files /dev/null and b/docs/.gitbook/assets/bijlage_toevoegen_actieknop.png differ diff --git a/docs/.gitbook/assets/bijlage_toevoegen_drie_bolletjes.png b/docs/.gitbook/assets/bijlage_toevoegen_drie_bolletjes.png new file mode 100644 index 00000000..a33e4c50 Binary files /dev/null and b/docs/.gitbook/assets/bijlage_toevoegen_drie_bolletjes.png differ diff --git a/docs/.gitbook/assets/bijlage_toevoegen_modal.png b/docs/.gitbook/assets/bijlage_toevoegen_modal.png new file mode 100644 index 00000000..d734b54f Binary files /dev/null and b/docs/.gitbook/assets/bijlage_toevoegen_modal.png differ diff --git a/docs/.gitbook/assets/image (1).png b/docs/.gitbook/assets/image (1).png new file mode 100644 index 00000000..cce857e5 Binary files /dev/null and b/docs/.gitbook/assets/image (1).png differ diff --git a/docs/.gitbook/assets/image (2).png b/docs/.gitbook/assets/image (2).png new file mode 100644 index 00000000..e811a485 Binary files /dev/null and b/docs/.gitbook/assets/image (2).png differ diff --git a/docs/.gitbook/assets/image.png b/docs/.gitbook/assets/image.png new file mode 100644 index 00000000..0b00a48c Binary files /dev/null and b/docs/.gitbook/assets/image.png differ diff --git a/docs/.gitbook/assets/metadata-settings.png b/docs/.gitbook/assets/metadata-settings.png new file mode 100644 index 00000000..6aff7d44 Binary files /dev/null and b/docs/.gitbook/assets/metadata-settings.png differ diff --git a/docs/.gitbook/assets/publicatie_modal.png b/docs/.gitbook/assets/publicatie_modal.png new file mode 100644 index 00000000..b675d97a Binary files /dev/null and b/docs/.gitbook/assets/publicatie_modal.png differ diff --git a/docs/.gitbook/assets/publicatie_mogelijkheden.png b/docs/.gitbook/assets/publicatie_mogelijkheden.png new file mode 100644 index 00000000..0b412c2d Binary files /dev/null and b/docs/.gitbook/assets/publicatie_mogelijkheden.png differ diff --git a/docs/.gitbook/assets/publicatie_toevoegen_modal.png b/docs/.gitbook/assets/publicatie_toevoegen_modal.png new file mode 100644 index 00000000..d45b2acc Binary files /dev/null and b/docs/.gitbook/assets/publicatie_toevoegen_modal.png differ diff --git a/docs/README.md b/docs/README.md index 0efb6c7f..14317ca5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,23 +3,24 @@ description: >- Welkom bij de gebruikersdocumentatie voor de OpenCatalogi Nextcloud App. Veel succes met het gebruik van de app. -coverY: 0 ---------- +---------------------------------- # Welkom +*** + Deze documentatie richt zich op het gebruik van onze beheerapplicatie, speciaal ontworpen voor het beheren van publicaties en catalogi binnen het federatief netwerk. De OpenCatalogi Nextcloud App is een eenvoudig te installeren: -* [**Quickstart**](installatie/instructies.md)voor een test/demo-omgeving +* [**Quickstart**](installatie/instructies.md) voor een test/demo-omgeving * [**Quickstart** ](developers/installatie-van-nextcloud-development-omgeving.md)voor een development-omgeving Onze app ondersteunt de Common Ground-aanpak, waardoor je snel toegang hebt tot bestaande IT-oplossingen die je kunt hergebruiken om de ontwikkeltijd te verkorten en de kosten te verlagen. In deze gids vind je stapsgewijze instructies, nuttige tips en best practices om je te helpen bij het optimaal beheren van je federatief netwerk, zoals publicaties of softwarecomponenten. Deze documentatie is bedoeld voor diverse doelgroepen: -* **Gebruikers:** iedereen die wilt delen binnen het netwerk. +* **Gebruikers:** iedereen die wil delen binnen het netwerk. * **Developers:** Ontwikkelaars die bijdragen aan de OpenCatalogi-projecten en behoefte hebben aan gedetailleerde technische informatie en API-documentatie. -* **Beheerders:** Professionals die verantwoordelijk zijn voor het beheren en onderhouden van het federatief netwerk voor publicaites en componenten. +* **Beheerders:** Professionals die verantwoordelijk zijn voor het beheren en onderhouden van het federatief netwerk voor publicaties en componenten. Voor meer informatie over OpenCatalogi en onze gemeenschappelijke inspanningen, bezoek onze [documentatie-pagina](https://documentatie.opencatalogi.nl) of de officiële website op [OpenCatalogi.nl](https://opencatalogi.nl). diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 33c123b8..13d66e28 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -24,4 +24,4 @@ * [SAAS en Dashboarding](installatie/saas.md) * [On-Prem server](installatie/on-prem-server.md) * [Systeemeisen voor Nextcloud](installatie/systeemeisen-voor-nextcloud.md) -* [Veel gestelde vragen](f-a-g.md) +* [Veel gestelde vragen](veel-gestelde-vragen.md) diff --git a/docs/assets/Opencatalogi CRUD.postman_collection.json b/docs/assets/Opencatalogi CRUD.postman_collection.json new file mode 100644 index 00000000..b843d3f5 --- /dev/null +++ b/docs/assets/Opencatalogi CRUD.postman_collection.json @@ -0,0 +1,553 @@ +{ + "info": { + "_postman_id": "f1d14358-ccc2-4650-9851-e46e2fb666e5", + "name": "Opencatalogi CRUD", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "9365542", + "_collection_link": "https://conduction.postman.co/workspace/Gateway~7f74e723-2263-4ee5-855f-a2ea9cce0681/collection/9365542-f1d14358-ccc2-4650-9851-e46e2fb666e5?action=share&source=collection_link&creator=9365542" + }, + "item": [ + { + "name": "Search", + "item": [ + { + "name": "General Search", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/search", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "search" + ], + "query": [ + { + "key": "_search", + "value": "bijzondere bijstand", + "description": "General search query", + "disabled": true + }, + { + "key": "_queries[]", + "value": "data.status", + "description": "Define fields that should be returned with the facets (example field to be replaced)", + "disabled": true + }, + { + "key": "title", + "value": "Kubus bijzondere bijstand", + "description": "Filter on specific fields.", + "disabled": true + } + ] + } + }, + "response": [] + }, + { + "name": "Get specific object", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/search/fa393c4e-3fc2-4787-ab43-fd58ce190fb4", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "search", + "fa393c4e-3fc2-4787-ab43-fd58ce190fb4" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Directory", + "item": [ + { + "name": "List directory", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/directory", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "directory" + ] + } + }, + "response": [] + }, + { + "name": "Create Directory", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Test\",\r\n \"summary\": \"Test directory for federation\",\r\n \"description\": \"Test directory for federation\",\r\n \"search\": \"https://api.common-gateway.commonground.nu/api/search\",\r\n \"directory\": \"https://eo9d4l3y6q4y2vt.m.pipedream.net\",\r\n \"metadata\": [\r\n \"http://example.com\"\r\n ],\r\n \"status\": \"200\",\r\n \"lastSync\": \"2019-08-24T14:15:22Z\",\r\n \"default\": false,\r\n \"available\": true,\r\n \"_schema\": \"directory\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/directory", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "directory" + ] + } + }, + "response": [] + }, + { + "name": "Get Directory", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/directory/96e12db1-897b-41e1-a08d-acb4e2be040b", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "directory", + "96e12db1-897b-41e1-a08d-acb4e2be040b" + ] + } + }, + "response": [] + }, + { + "name": "Delete Directory", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{environment}}/api/directory/96e12db1-897b-41e1-a08d-acb4e2be040b", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "directory", + "96e12db1-897b-41e1-a08d-acb4e2be040b" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Publication", + "item": [ + { + "name": "List publications", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/publications", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications" + ] + } + }, + "response": [] + }, + { + "name": "Create Publication", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Woningoppervlaktes\",\r\n \"reference\": \"test1234\",\r\n \"description\": \"Woningoppervlaktes geeft het gebruiksoppervlakte aan woningen per gebied, geclassificeerd ten behoeve van het bepalen van de benodigde parkeercapaciteit.\",\r\n \"summary\": \"Woningoppervlaktes geeft het gebruiksoppervlakte aan woningen per gebied, geclassificeerd ten behoeve van het bepalen van de benodigde parkeercapaciteit.\",\r\n \"catalogi\": \"7a048bfd-210f-4e93-a1e8-5aa9261740b7\",\r\n \"metaData\": \"468f440f-7af0-453a-8d5f-ffe644ab0673\",\r\n \"organization\": null,\r\n \"data\": {\r\n \"id\": \"33f88aa9-6ac0-4f6c-967e-ecf787fd6a3d\",\r\n \"reference\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"title\": \"Input voor OpenCatalogi\",\r\n \"summary\": \"Dit is een selectie van high-value datasets in DCAT-AP 2.0 standaard x\",\r\n \"category\": \"Dataset\",\r\n \"portal\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"published\": \"2020-04-07\",\r\n \"modified\": \"2020-12-29\",\r\n \"featured\": false,\r\n \"schema\": \"https:\\/\\/openwoo.app\\/schemas\\/metadata.dcat_catalog.schema.json\",\r\n \"status\": \"published\",\r\n \"license\": \"CC0 1.0\",\r\n \"attachments\": [\r\n {\r\n \"id\": \"ba9e5f64-f6ee-4c62-99bd-e9176372f4c2\",\r\n \"title\": \"woningoppervlaktes feature layer\",\r\n \"description\": \"ESRI feature layer met woningoppervlaktes per TIR-buurt en per TIR-blok.\",\r\n \"license\": \"notspecified\",\r\n \"type\": \"API\",\r\n \"published\": \"24-12-2020\",\r\n \"modified\": \"30 december 2020, 11:55 (UTC+01:00)\",\r\n \"accessURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\",\r\n \"downloadURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\"\r\n }\r\n ],\r\n \"attachmentCount\": 1,\r\n \"themes\": [\r\n \"SODA\",\r\n \"kennisloods\",\r\n \"mobiliteit\",\r\n \"oppervlakte\",\r\n \"oppervlaktes\",\r\n \"parkeercapaciteit\",\r\n \"parkeren\",\r\n \"soda verblijfsobject\",\r\n \"verblijfsobjecten\",\r\n \"woning\",\r\n \"woningen\",\r\n \"woningoppervlakte\",\r\n \"woningoppervlaktes\"\r\n ],\r\n \"data\": {\r\n \"spatial\": \"[55500,428647,101033,447000]\",\r\n \"contactPoint\": {\r\n \"name\": \"gemeente Rotterdam, Stadsontwikkeling, SODA\",\r\n \"email\": \"dataSO@rotterdam.nl\"\r\n },\r\n \"qualifiedAttribution\": {\r\n \"responsible\": {\r\n \"name\": \"gemeente Rotterdam, Stadsontwikkeling, SODA\",\r\n \"email\": \"dataSO@rotterdam.nl\"\r\n },\r\n \"role\": {\r\n \"name\": \"beheerder\"\r\n }\r\n },\r\n \"accrualPeriodicity\": \"onregelmatig\"\r\n },\r\n \"anonymization\": {\r\n \"anonymized\": true\r\n },\r\n \"language\": {\r\n \"code\": \"nl-nl\",\r\n \"level\": \"A1\"\r\n }\r\n },\r\n \"attachments\": [\r\n {\r\n \"id\": \"ba9e5f64-f6ee-4c62-99bd-e9176372f4c2\",\r\n \"title\": \"woningoppervlaktes feature layer\",\r\n \"description\": \"ESRI feature layer met woningoppervlaktes per TIR-buurt en per TIR-blok.\",\r\n \"license\": \"notspecified\",\r\n \"type\": \"API\",\r\n \"published\": \"24-12-2020\",\r\n \"modified\": \"30 december 2020, 11:55 (UTC+01:00)\",\r\n \"accessURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\",\r\n \"downloadURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\"\r\n }\r\n ],\r\n \"attachmentCount\": 1,\r\n \"license\": \"notspecified\",\r\n \"modified\": \"2020-12-29\",\r\n \"publicationDate\": \"2020-04-07\",\r\n \"status\": \"published\",\r\n \"featured\": false,\r\n \"portal\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"category\": \"Dataset\",\r\n \"image\": \"https:\\/\\/dev.opencatalogi.nl\\/static\\/logo_OpenCatalogi-8b1b0a001c3f37dae4d3f69b5964ec72.png\",\r\n \"schema\": \"publications\",\r\n \"themes\": null,\r\n \"anonymization\": null,\r\n \"languageObject\": null\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/publications", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications" + ] + } + }, + "response": [] + }, + { + "name": "Get Publication", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Update Publication", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Test woningoppervlakte\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Delete Directory", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{environment}}/api/publications/3", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "3" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Attachment", + "item": [ + { + "name": "List publications", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/publications", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications" + ] + } + }, + "response": [] + }, + { + "name": "Create Publication", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Woningoppervlaktes\",\r\n \"reference\": \"test1234\",\r\n \"description\": \"Woningoppervlaktes geeft het gebruiksoppervlakte aan woningen per gebied, geclassificeerd ten behoeve van het bepalen van de benodigde parkeercapaciteit.\",\r\n \"summary\": \"Woningoppervlaktes geeft het gebruiksoppervlakte aan woningen per gebied, geclassificeerd ten behoeve van het bepalen van de benodigde parkeercapaciteit.\",\r\n \"catalogi\": \"7a048bfd-210f-4e93-a1e8-5aa9261740b7\",\r\n \"metaData\": \"468f440f-7af0-453a-8d5f-ffe644ab0673\",\r\n \"organization\": null,\r\n \"data\": {\r\n \"id\": \"33f88aa9-6ac0-4f6c-967e-ecf787fd6a3d\",\r\n \"reference\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"title\": \"Input voor OpenCatalogi\",\r\n \"summary\": \"Dit is een selectie van high-value datasets in DCAT-AP 2.0 standaard x\",\r\n \"category\": \"Dataset\",\r\n \"portal\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"published\": \"2020-04-07\",\r\n \"modified\": \"2020-12-29\",\r\n \"featured\": false,\r\n \"schema\": \"https:\\/\\/openwoo.app\\/schemas\\/metadata.dcat_catalog.schema.json\",\r\n \"status\": \"published\",\r\n \"license\": \"CC0 1.0\",\r\n \"attachments\": [\r\n {\r\n \"id\": \"ba9e5f64-f6ee-4c62-99bd-e9176372f4c2\",\r\n \"title\": \"woningoppervlaktes feature layer\",\r\n \"description\": \"ESRI feature layer met woningoppervlaktes per TIR-buurt en per TIR-blok.\",\r\n \"license\": \"notspecified\",\r\n \"type\": \"API\",\r\n \"published\": \"24-12-2020\",\r\n \"modified\": \"30 december 2020, 11:55 (UTC+01:00)\",\r\n \"accessURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\",\r\n \"downloadURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\"\r\n }\r\n ],\r\n \"attachmentCount\": 1,\r\n \"themes\": [\r\n \"SODA\",\r\n \"kennisloods\",\r\n \"mobiliteit\",\r\n \"oppervlakte\",\r\n \"oppervlaktes\",\r\n \"parkeercapaciteit\",\r\n \"parkeren\",\r\n \"soda verblijfsobject\",\r\n \"verblijfsobjecten\",\r\n \"woning\",\r\n \"woningen\",\r\n \"woningoppervlakte\",\r\n \"woningoppervlaktes\"\r\n ],\r\n \"data\": {\r\n \"spatial\": \"[55500,428647,101033,447000]\",\r\n \"contactPoint\": {\r\n \"name\": \"gemeente Rotterdam, Stadsontwikkeling, SODA\",\r\n \"email\": \"dataSO@rotterdam.nl\"\r\n },\r\n \"qualifiedAttribution\": {\r\n \"responsible\": {\r\n \"name\": \"gemeente Rotterdam, Stadsontwikkeling, SODA\",\r\n \"email\": \"dataSO@rotterdam.nl\"\r\n },\r\n \"role\": {\r\n \"name\": \"beheerder\"\r\n }\r\n },\r\n \"accrualPeriodicity\": \"onregelmatig\"\r\n },\r\n \"anonymization\": {\r\n \"anonymized\": true\r\n },\r\n \"language\": {\r\n \"code\": \"nl-nl\",\r\n \"level\": \"A1\"\r\n }\r\n },\r\n \"attachments\": [\r\n {\r\n \"id\": \"ba9e5f64-f6ee-4c62-99bd-e9176372f4c2\",\r\n \"title\": \"woningoppervlaktes feature layer\",\r\n \"description\": \"ESRI feature layer met woningoppervlaktes per TIR-buurt en per TIR-blok.\",\r\n \"license\": \"notspecified\",\r\n \"type\": \"API\",\r\n \"published\": \"24-12-2020\",\r\n \"modified\": \"30 december 2020, 11:55 (UTC+01:00)\",\r\n \"accessURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\",\r\n \"downloadURL\": \"https:\\/\\/services.arcgis.com\\/zP1tGdLpGvt2qNJ6\\/arcgis\\/rest\\/services\\/Woningoppervlaktes\\/FeatureServer\"\r\n }\r\n ],\r\n \"attachmentCount\": 1,\r\n \"license\": \"notspecified\",\r\n \"modified\": \"2020-12-29\",\r\n \"publicationDate\": \"2020-04-07\",\r\n \"status\": \"published\",\r\n \"featured\": false,\r\n \"portal\": \"https:\\/\\/catalogus-rotterdam.dataplatform.nl\\/dataset\\/voorlopige-energielabels-met-bag-kenmerken\",\r\n \"category\": \"Dataset\",\r\n \"image\": \"https:\\/\\/dev.opencatalogi.nl\\/static\\/logo_OpenCatalogi-8b1b0a001c3f37dae4d3f69b5964ec72.png\",\r\n \"schema\": \"publications\",\r\n \"themes\": null,\r\n \"anonymization\": null,\r\n \"languageObject\": null\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/publications", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications" + ] + } + }, + "response": [] + }, + { + "name": "Get Publication", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Update Publication", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Test woningoppervlakte\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Delete Directory", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{environment}}/api/publications/3", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "3" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Catalogi", + "item": [ + { + "name": "List Catalogi", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/catalogi", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "catalogi" + ] + } + }, + "response": [] + }, + { + "name": "Create Catalogi", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"DCAT\",\r\n \"reference\": \"test1234\",\r\n \"description\": \"Test voor DCAT objecten.\",\r\n \"summary\": \"Test voor DCAT objecten.\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/catalogi", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "catalogi" + ] + } + }, + "response": [] + }, + { + "name": "Get Publication", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Update Publication", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Test woningoppervlakte\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{environment}}/api/publications/1", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "publications", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Delete Catalog", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{environment}}/api/directory/96e12db1-897b-41e1-a08d-acb4e2be040b", + "host": [ + "{{environment}}" + ], + "path": [ + "api", + "directory", + "96e12db1-897b-41e1-a08d-acb4e2be040b" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "admin", + "type": "string" + }, + { + "key": "username", + "value": "admin", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "environment", + "value": "http://nextcloud.local/index.php/apps/opencatalogi", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/docs/beheerders/README.md b/docs/beheerders/README.md index 2f76a5ce..6afccf02 100644 --- a/docs/beheerders/README.md +++ b/docs/beheerders/README.md @@ -1 +1,13 @@ -# beheerders +*** + +description: >- +De rol van een "Beheerder" binnen het platform is gericht op het beheren van +de publicaties, catalogi en metadata, evenals de autorisatie van gebruikers. +De verantwoordelijkheden van de beheerder: +------------------------------------------ + +# Beheerders + +* **Beheer van Publicaties:** Beheerders hebben toegang tot een overzicht van alle (concept-)publicaties, het bewerken van publicatie, verwijderen en (de)publiceren. +* **Metadata en Thema's Beheren:** Beheerders kunnen het metadatamodel configureren, extra informatiecategorieën en thema's toevoegen en beheren. Ze kunnen deze koppelen aan publicaties voor beter beheer en toegang. +* **Logging en Monitoring:** diff --git a/docs/beheerders/catalogi.md b/docs/beheerders/catalogi.md index 0d82a73b..44751e22 100644 --- a/docs/beheerders/catalogi.md +++ b/docs/beheerders/catalogi.md @@ -12,7 +12,7 @@ De organisatie-eigen catalogi (waartoe een gebruiker toegang heeft) zijn opgenom ## Catalogi beheren -Catalogi kunnen worden beheerd via het menu-item Instellingen -> Catalogi. +Catalogi kunnen worden beheerd via het menu-item Instellingen -> Catalogi en dan de drie bolletjes te selecten voor de opties. * **Configuratie**: Onder de configuratie van een catalogus kan worden aangegeven * Of deze actief is (anders wordt de catalogus niet getoond in het navigatiemenu en de zoekresultaten) diff --git a/docs/developers/README.md b/docs/developers/README.md index 4296a157..6130c59a 100644 --- a/docs/developers/README.md +++ b/docs/developers/README.md @@ -1 +1,11 @@ -# developers +*** + +description: >- +De rol van een "Developer" binnen het publicatieplatform is voornamelijk +gericht om bij te dragen aan de ontwikkeling aan de codebase of om +aanpassingen te kunnen testen of demonstreren. +---------------------------------------------- + +# Developers + +In dit hoofdstuk worden de verschillende manieren gegeven om een test- of demo-omgevingen op te starten. diff --git a/docs/developers/aan-de-slag-met-development.md b/docs/developers/aan-de-slag-met-development.md index 78d61f16..841aa293 100644 --- a/docs/developers/aan-de-slag-met-development.md +++ b/docs/developers/aan-de-slag-met-development.md @@ -89,7 +89,11 @@ Als onderdeel van de CI/CD-straat voeren we een aantal tests uit, hiermee handha ### Voor de kwaliteit van de code maken we gebruik van linters -Voor frontend is dat: +Voorzowel de frontend als de backend geldt dat het aantal acceptabele errors 0 is. + +#### Frontend + +Voor frontend gebruiken we ESLint, de installatiehandleiding is [hier](https://www.npmjs.com/package/eslint) te vinden. Het commando om ESLint uit te voeren. ESLint is voornamelijk een linter, met enige format-functionaliteit. ```cli npm run lint @@ -97,19 +101,22 @@ npm run lint ![alt text](npm_lint.png) -Voor de backend is dat: +#### Backend + +Voor de backend gebruiken we PHP Code Sniffer. [Zie hier](https://dev.to/xxzeroxx/phpcs-php-code-sniffer-59f4) de handleiding voor de installatiemogelijkheden. PHP-code sniffer bestaat uit een linter ( `phpcs)` en een formatter(`phpcbf`). De formatter werkt hetzelfde als de linter en kan soms aardig wat errors wegwerken. De regels voor zowel de linter als de formatter zijn te vinden in `phpcs.xml` in de root van de applicatie. ```cli phpcs [filename] +phpcbf [filename] ``` -Hiervoor moet php code sniffer geïnstalleerd zijn. [Zie hier](https://dev.to/xxzeroxx/phpcs-php-code-sniffer-59f4) de handleiding ervoor +## Voor stabiliteit gebruiken we unit tests -Voor beide geldt dat het aantal acceptabele errors 0 is. +Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele errors 0. -## Voor stabilliteit gebruiken we unit tests +#### Frontend -Voor frontend is dat: +Voor het uitvoeren van de unit tests gebruiken we aan de frontend Jest. Indien je deze nog moet installeren of meer erover wilt weten, kijk dat [hier](https://www.npmjs.com/package/jest). Het uit te voeren commando is: ```cli npm run test-coverage @@ -117,14 +124,14 @@ npm run test-coverage ![alt text](npm_test.png) -Voor de backend is dat: +#### Backend: + +Voor het uitvoeren van de unit tests gebruiken we aan de backend PHPunit. Indien je deze nog moet installeren of meer erover wilt weten, kijk dan [hier](https://docs.phpunit.de/en/11.3/). Het uit te voeren commando is: ```cli phpunit ``` -Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele errors 0. - > **NOTE 1** We volgen de Nextcloud wijze voor unit testing, zie hier voor [de details](https://docs.nextcloud.com/server/latest/developer_manual/server/unit-testing.html), maar dit komt neer op [phpunit](https://docs.phpunit.de/en/11.3/index.html) en de juist configuratie van `phpunit.xml`en de `bootstrap.php`. Een voorbeeld van deze files zijn te vinden in de `root` van de applicatie (`phpunit.xml`) en de `/tests/unit`(`bootstrap.php`). Er zijn veel mogelijkheden om het jezelf makkelijk te maken, zoals een percentageoverzicht in de terminal. Het commando dat wij gebruiken is : `XDEBUG_MODE=coverage phpunit --bootstrap ./tests/bootstrap.php --configuration phpunit.xml --coverage-html ./coverage --coverage-text | tee coverage.txt` @@ -133,7 +140,7 @@ Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele er ## Voor veiligheid gebruiken we dependency scanning -Voor frontend is dat: +#### Frontend: ```cli npm audit @@ -141,7 +148,7 @@ npm audit ![alt text](npm_audit.png) -Voor de backend is dat: +#### Backend ```cli composer audit @@ -150,3 +157,44 @@ composer audit ![alt text](composer_audit.png) Voor beide geldt dat het aantal acceptabele critical vulnerabilities in *production packadges* 0 is. + +### Gebruikersdocumentatie + +We gebruiken Gitbook voor de gebruikersdocumentatie. Features binnen de app zouden zo veel mogelijk direct moeten doorverwijzen naar deze documentatie. + +Ook voor de documentatie wordt een linter gebruikt namelijk [remarklint](https://github.com/remarkjs/remark-lint). + +De commando's om deze linter in de CLI te gebruiken zijn [hier te vinden](https://github.com/remarkjs/remark-lint?tab=readme-ov-file#what-is-this) voor een uitgebreide output in de terminal. + +## API Development + +De ontwikkeling van de API wordt bijgehouden met de documentatietool [Stoplight.io](https://stoplight.io/), die automatisch een [OpenAPI Specificatie (OAS)](https://www.noraonline.nl/wiki/FS:Openapi-specification) genereert uit de documentatie. De Stoplight voor OpenCatalogi is [hier](https://conduction.stoplight.io/docs/open-catalogi/6yuj08rgf7w44-open-catalogi-api) te vinden. + +## Frontend Development + +### Storage en Typing + +Om gegevens deelbaar te maken tussen de verschillende Vue-componenten maken we gebruik van [statemanagement](https://vuejs.org/guide/scaling-up/state-management) waarbij we het Action, State, View patroon van Vue zelf volgen. Omdat de applicatie ingewikkeld begint te worden stappen we daarbij over van [simple state management](https://vuejs.org/guide/scaling-up/state-management#simple-state-management-with-reactivity-api) naar [Pinia](https://pinia.vuejs.org/), de door Vue zelf geadviseerde opvolger van [Vuex](https://vuejs.org/guide/scaling-up/state-management#pinia). + +Daarnaast gebruiken we Typescript voor het definiëren van entities. + +### Modals + +* Er mag altijd slechts één modal actief zijn. +* Modals moeten abstract en overal bereikbaar zijn. +* Modals moeten geplaatst worden in de map src/modals. +* Modals moeten getriggerd worden via de state (zodat knoppen die modal openen overal plaatsbaar zijn). +* Modals moeten geïmporteerd worden via `/src/modals/Modals.vue`. + +### Views + +* Views moeten dezelfde bestandsnaam hebben als de geëxporteerde naam en een correlatie hebben met de map waarin het bestand zich bevindt. +* Bijvoorbeeld, als het bestand een detailpagina is en het zich in de map `publications` bevindt, moet het bestand de naam `PublicationDetail.vue` hebben. + +## Documentatie + +Het is goed om bij development kennnis te nemen/hebben van de volgende gebruikte Nextcloud onderdelen: + +* [Icons](https://pictogrammers.com/library/mdi/) +* [Layout](https://docs.nextcloud.com/server/latest/developer_manual/design/layout.html)- +* [Componenten](https://nextcloud-vue-components.netlify.app/) diff --git a/docs/developers/feature_flow.puml b/docs/developers/feature_flow.puml index 82ef4e57..e900e630 100644 --- a/docs/developers/feature_flow.puml +++ b/docs/developers/feature_flow.puml @@ -23,7 +23,7 @@ alt Feature-aanvraag goedgekeurd end note Ontwikkelingspartij -> Ontwikkelingspartij: Forkt de codebase - Ontwikkelingspartij -> Ontwikkelingspartij: Bouwt de feature + Ontwikkelingspartij -> Ontwikkelingspartij: Bouwt de feature op de fork Ontwikkelingspartij -> Beheerderspartij: Maakt PR met verwijzing naar het issue-nummer note right of Beheerderspartij Code wordt bij voorkeur terug geleverd aan de centrale codebase diff --git a/docs/gebruikers/README.md b/docs/gebruikers/README.md index def29e73..8544890f 100644 --- a/docs/gebruikers/README.md +++ b/docs/gebruikers/README.md @@ -1 +1,13 @@ +*** + +description: >- +Een "Gebruiker" binnen het Publicatieplatform heeft de primaire taak om +publicaties te creëren en te bewerken. De rol van de gebruiker omvat de +volgende verantwoordelijkheden en mogelijkheden: +------------------------------------------------ + # Gebruikers + +* **Creëren van Publicaties:** Gebruikers kunnen nieuwe publicaties aanmaken, afhankelijk van hun autorisaties. Ze kunnen kiezen namens welke organisatie of onderdeel ze publiceren en de juiste informatiecategorieën selecteren. Documenten kunnen worden geüpload en metadata ingevuld. +* **Bewerken van Publicaties:** Gebruikers hebben toegang tot een overzicht van hun eigen (concept-)publicaties. Ze kunnen deze filteren, sorteren en wijzigen. Gebruikers kunnen concept-publicaties definitief maken en gepubliceerde documenten intrekken naar concept-status. +* **Downloaden van Publicaties:** Gebruikers kunnen gepubliceerde documenten en bijbehorende metadata downloaden. diff --git a/docs/gebruikers/dashboard.md b/docs/gebruikers/dashboard.md index 7bbe2df1..f7594bf7 100644 --- a/docs/gebruikers/dashboard.md +++ b/docs/gebruikers/dashboard.md @@ -2,14 +2,18 @@ description: >- Deze handleiding gaat ervan uit dat de gebruiker beschikt tot een werkende -OpenCatalogi-Nextcloud app. ---------------------------- +OpenCatalogi-Nextcloud app +-------------------------- # Dashboard +*** + +## Dashboard + Op het dashboard van OpenCatalogi vindt u handige informatie die je meteen verder helpt en in staat stelt de juiste keuzes te maken. Aan de linkerkant tref je een aantal overzichtsstatistieken en aan de rechterkant een sidebar met daarin de mogelijkheid om direct actie te ondernemen. -## Statistieken +### Statistieken 1. **Zoekverkeer** Het aantal zoekvragen dat er afgelopen maand aan jouw index (geheel van catalogi) is gesteld. 2. **Metadata** De verdeling over metadata-types van jouw publicaties @@ -18,7 +22,7 @@ Op het dashboard van OpenCatalogi vindt u handige informatie die je meteen verde ![app menu](../assets/oc_dashboard.png) -## Sidebar +### Sidebar Vanuit de sidebar heb je toegang tot 3 tabbladen diff --git a/docs/gebruikers/publicaties.md b/docs/gebruikers/publicaties.md index 341ed986..1c621746 100644 --- a/docs/gebruikers/publicaties.md +++ b/docs/gebruikers/publicaties.md @@ -1,6 +1,6 @@ # Publicaties -> Publicaties zijn onderdeel van de (Open Catalogi Standaard)\[] en gebaseerd op het [publication object](https://conduction.stoplight.io/docs/open-catalogi/9bebd6bf4fe35-publication). Publicaties kennen eigenschappen zo als gedefineerd in een publicaite type en kunnen worden gekopeld aan bijlagen +Publicaties zijn onderdeel van de [Open Catalogi Standaard](https://github.com/OpenCatalogi/.github/blob/main/docs/Standaard.md) en gebaseerd op het [publication object](https://conduction.stoplight.io/docs/open-catalogi/9bebd6bf4fe35-publication). Publicaties kennen eigenschappen zoals gedefinieerd in een publicatietype en kunnen worden gekoppeld aan bijlagen Een publicatie representeerd iets wat je wilt publiceren, het beschrijft de handeling van publiceren en de spelregels waaronder iets gepubliceerd wordt.het is een soort "verpakking" of "omhulsel" dat zowel de kerngegevens (data) als aanvullende informatie over die gegevens (metadata) bevat. @@ -14,29 +14,27 @@ Publicaties zijn altijd onderdeel van een collectie in de vorm van een [catalogu Publicaties kunnen worden toegevoegd via: -* De publicatie toeveogen knop boven aan het hoofd menu (links) -* Een catalogus geselecteerd in het hoofd menu (via het hamburger menu achter de zoekbalk) -* Een catalogus detail pagina +* De publicatie toevoegen knop boven aan het hoofd menu (links) +* Een catalogus geselecteerd in het hoofdmenu (via het hamburgermenu achter de zoekbalk) +* Een catalogus detailpagina -Een publicatie leeft altijd binnen één catalogus en word gedefineerd door één publicatie type. Omdat catalogi bepalen welke publicatie typen beschickbaar zijn voor die catalogi moet er eerst een catalogus worden gekozen voordat er een metadata type kan worden gekozen. Daarmee word de volgorde bij het aanmaken van een publicatie: +Een publicatie leeft altijd binnen één catalogus en wordt gedefinieerd door één publicatietype. Omdat catalogi bepalen welke publicatietypen beschikbaar zijn voor die catalogi moet er eerst een catalogus worden gekozen voordat er een metadatatype kan worden gekozen. Daarmee wordt de volgorde bij het aanmaken van een publicatie: 1. Catalogus kiezen (indien niet opgestart vanuit een specifieke catalogus) 2. Publicatietype kiezen -3. Publicatie detalis aanvullen +3. Publicatiedetails aanvullen -Eigenschapen en bijlagen kunnen worden toegevoegd nadat de publicatie is toegevoegd. +Eigenschappen en bijlagen kunnen worden toegevoegd nadat de publicatie is toegevoegd. ## Publicaties beheren -De gebruikersbeheerinterface werkt intuïtief. Aan de linkerkant van de pagina bevindt zich een overzicht van catalogi. Met de blauwe knop bovenaan kun je een publicatie aanmaken. Dit opent een modal genaamd "Publicatie toevoegen". +De gebruikersbeheerinterface werkt intuïtief. Aan de linkerkant van de pagina bevindt zich een overzicht van catalogi. Met de blauwe knop bovenaan kun je een publicatie aanmaken. Dit opent een modal genaamd "Publicatie toevoegen". Er wordt eerst gevraagd aan welke catalogus deze behoort en welke publicatietype het heeft (metadata) Hieronder is een voorbeeld van een ingevulde modal voor het aanmaken van een Woo-publicatie. -
Titel: | +{{ publication.catalogi.title }} | +
Samenvatting: | +{{ publication.catalogi.summary }} | +
Beschrijving: | +{{ publication.catalogi.description }} | +
Organisatie: | #} +{#{{ publication.catalogi.organisation }} | #} +{#
Titel: | +{{ publication.metaData.title }} | +
Versie: | +{{ publication.metaData.version }} | +
Beschrijving: | +{{ publication.metaData.description }} | +
Vereisten: | #} +{#{{ publication.metaData.required }} | #} +{#
Referentie: | +{{ publication.reference }} | +
Samenvatting: | +{{ publication.summary }} | +
Beschrijving: | +{{ publication.description }} | +
Categorie: | +{{ publication.category }} | +
Portal: | +{{ publication.portal }} | +
Foto: | +{{ publication.image }} | +
Thema's: | #} +{#{{ publication.themes }} | #} +{#
Uitgelicht: | +{% if publication.featured == true %}Ja{% else %}Nee{% endif %} | +
Licentie: | +{{ publication.license }} | +
Status: | +{{ publication.status }} | +
Gepubliceerd: | +{{ publication.published | date("d-m-Y H:i") }} | +
Gewijzigd: | +{{ publication.modified | date("d-m-Y H:i") }} | +
Naam | +Data | +
---|---|
{{ key }} | +{{ value }} | +
Bijlage succesvol toegevoegd
-Er is iets fout gegaan bij het toevoegen van bijlage
-{{ error }}
-Bijlage succesvol toegevoegd
+Er is iets fout gegaan bij het toevoegen van bijlage
+{{ error }}
+Publicatie succesvol toegevoegd
-Er is iets fout gegaan bij het toevoegen van Publicatie
-{{ error }}
-Publicatie datum
-Publicatie succesvol aangemaakt
+Er is iets fout gegaan bij het aanmaken van Publicatie
+{{ error }}
+Publicaties horen in een catalogus, aan welke catlogus wilt u deze publicatie toevoegen?
+Publicaties worden gedefineerd door publicatie typen, van welk publicatie type wit u een publicatie aanmaken?
+Publicatie datum
+Publicatie succesvol bewerkt
-Er is iets fout gegaan bij het bewerken van Publicatie
-{{ error }}
-Publicatie datum
-Publicatie succesvol bewerkt
+Er is iets fout gegaan bij het bewerken van Publicatie
+{{ error }}
+Publicatie datum
+Er zijn op dit moment geen publicaties die aan uw zoekopdracht voldoen
+