diff --git a/composer.json b/composer.json index 7bed4a18a..86b0a5f1b 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "require": { "php": ">=7.1", "laravel/framework": "5.7.*", - "luracast/restler": "^3.0", + "luracast/restler": "3.0", "bshaffer/oauth2-server-php": "v1.0", "colosa/pmui": "release/3.5.0-dev", "colosa/michelangelofe": "release/3.5.0-dev", diff --git a/composer.lock b/composer.lock index 865999403..dfa2973b7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dfa09f203f7f454deac5cd0bcb07c8dc", + "content-hash": "5fee2ceaf7f4d761c96852141e566de9", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.154.5", + "version": "3.158.6", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "50b1ef32d51d80f35a691e13c34f67b920765c18" + "reference": "4e912c1ae4d4b3538ada36ac1478f980f9bdf329" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/50b1ef32d51d80f35a691e13c34f67b920765c18", - "reference": "50b1ef32d51d80f35a691e13c34f67b920765c18", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4e912c1ae4d4b3538ada36ac1478f980f9bdf329", + "reference": "4e912c1ae4d4b3538ada36ac1478f980f9bdf329", "shasum": "" }, "require": { @@ -89,7 +89,7 @@ "s3", "sdk" ], - "time": "2020-09-17T18:22:25+00:00" + "time": "2020-10-09T18:11:48+00:00" }, { "name": "bshaffer/oauth2-server-php", @@ -474,20 +474,20 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v2.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27" + "reference": "69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27", - "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00", + "reference": "69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.1|^8.0" }, "require-dev": { "phpunit/phpunit": "^6.4|^7.0" @@ -524,20 +524,26 @@ "cron", "schedule" ], - "time": "2019-03-31T00:38:28+00:00" + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2020-10-12T18:35:36+00:00" }, { "name": "egulias/email-validator", - "version": "2.1.20", + "version": "2.1.22", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "f46887bc48db66c7f38f668eb7d6ae54583617ff" + "reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f46887bc48db66c7f38f668eb7d6ae54583617ff", - "reference": "f46887bc48db66c7f38f668eb7d6ae54583617ff", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5", + "reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5", "shasum": "" }, "require": { @@ -582,7 +588,7 @@ "validation", "validator" ], - "time": "2020-09-06T13:44:32+00:00" + "time": "2020-09-26T15:48:38+00:00" }, { "name": "erusev/parsedown", @@ -752,7 +758,7 @@ "src/" ] }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "http://packagist.org/downloads/", "license": [ "Apache-2.0" ], @@ -832,23 +838,23 @@ }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "60d379c243457e073cff02bc323a2a86cb355631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", "extra": { @@ -879,20 +885,20 @@ "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "time": "2020-09-30T07:37:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", "shasum": "" }, "require": { @@ -905,15 +911,15 @@ }, "require-dev": { "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -950,7 +956,7 @@ "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "time": "2020-09-30T07:37:11+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -1709,7 +1715,7 @@ ], "authors": [ { - "name": "Jean-Marc Trémeaux", + "name": "Jean-Marc Tr??meaux", "homepage": "http://naku.dohcrew.com/", "role": "Developer" }, @@ -1731,45 +1737,47 @@ }, { "name": "luracast/restler", - "version": "3.1.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/Luracast/Restler.git", - "reference": "fd6eefabf4f12b9649657d3ab07378649e22044b" + "reference": "e82d5622f5a1798c3c208867184a469fb4fd445c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Luracast/Restler/zipball/fd6eefabf4f12b9649657d3ab07378649e22044b", - "reference": "fd6eefabf4f12b9649657d3ab07378649e22044b", + "url": "https://api.github.com/repos/Luracast/Restler/zipball/e82d5622f5a1798c3c208867184a469fb4fd445c", + "reference": "e82d5622f5a1798c3c208867184a469fb4fd445c", "shasum": "" }, "require": { - "ext-json": "*", - "php": ">=5.4" + "php": ">=5.3.0" }, "conflict": { "restler/framework": "3.*" }, "require-dev": { - "behat/behat": "^3.8@dev", - "bshaffer/oauth2-server-php": "dev-master", - "ext-libxml": "*", - "guzzlehttp/guzzle": "^7.0@dev", - "illuminate/view": "^8", + "behat/behat": "2.5.*@stable", + "bshaffer/oauth2-server-php": "v1.0", + "guzzle/guzzle": "~3.1.1", + "illuminate/view": "4.2.*", + "luracast/explorer": "*", "mustache/mustache": "dev-master", - "rize/uri-template": "dev-master", - "twig/twig": "^3" + "rodneyrehm/plist": "dev-master", + "symfony/yaml": "*", + "twig/twig": "v1.13.0", + "zendframework/zendamf": "dev-master" }, "suggest": { "behat/behat": "Behaviour driven development testing framework (see require-dev for details)", - "bshaffer/oauth2-server-php": "If you want to use OAuth2 for authentication", + "bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)", "guzzle/guzzle": "RESTful api HTTP client framework (see require-dev for details)", - "illuminate/view": "If you want to use laravel blade templates with Html format", - "mustache/mustache": "If you want to use mustache/handlebar templates with Html format", - "rodneyrehm/plist": "If you need Apple plist binary/xml format", - "symfony/yaml": "If you need YAML format", - "twig/twig": "If you want to use twig templates with Html format", - "zendframework/zendamf": "If you need AMF format" + "illuminate/view": "Restler can render HtmlView using laravel blade templates (see require-dev for details)", + "luracast/explorer": "Restler's very own api explorer (see require-dev for details)", + "mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)", + "rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)", + "symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)", + "twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)", + "zendframework/zendamf": "Support for the amf document format (see require-dev for details)" }, "type": "library", "extra": { @@ -1778,8 +1786,8 @@ } }, "autoload": { - "psr-4": { - "Luracast\\Restler\\": "vendor/Luracast/Restler" + "psr-0": { + "Luracast\\Restler": "vendor/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1790,6 +1798,10 @@ { "name": "Luracast", "email": "arul@luracast.com" + }, + { + "name": "Nick nickl- Lombard", + "email": "github@jigsoft.co.za" } ], "description": "Restler is a simple and effective multi-format Web API Server framework written in PHP. Just deal with your business logic in php, Restler will take care of the REST!", @@ -1800,7 +1812,7 @@ "rest", "server" ], - "time": "2020-07-07T13:28:35+00:00" + "time": "2020-02-13T18:25:17+00:00" }, { "name": "monolog/monolog", @@ -2144,29 +2156,29 @@ }, { "name": "opis/closure", - "version": "3.5.7", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "4531e53afe2fc660403e76fb7644e95998bff7bf" + "reference": "c547f8262a5fa9ff507bd06cc394067b83a75085" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/4531e53afe2fc660403e76fb7644e95998bff7bf", - "reference": "4531e53afe2fc660403e76fb7644e95998bff7bf", + "url": "https://api.github.com/repos/opis/closure/zipball/c547f8262a5fa9ff507bd06cc394067b83a75085", + "reference": "c547f8262a5fa9ff507bd06cc394067b83a75085", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0" + "php": "^5.4 || ^7.0 || ^8.0" }, "require-dev": { "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.5.x-dev" + "dev-master": "3.6.x-dev" } }, "autoload": { @@ -2201,7 +2213,7 @@ "serialization", "serialize" ], - "time": "2020-09-06T17:02:15+00:00" + "time": "2020-10-11T21:42:15+00:00" }, { "name": "paragonie/random_compat", @@ -2293,6 +2305,12 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" + } + ], "time": "2020-06-20T10:53:13+00:00" }, { @@ -2814,16 +2832,16 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.3.1", + "version": "5.4.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "11457e9bbedc182b48c04db3a2621d17b58b0808" + "reference": "6c597821433d9dfbc796f105149614f802a25a4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/11457e9bbedc182b48c04db3a2621d17b58b0808", - "reference": "11457e9bbedc182b48c04db3a2621d17b58b0808", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/6c597821433d9dfbc796f105149614f802a25a4e", + "reference": "6c597821433d9dfbc796f105149614f802a25a4e", "shasum": "" }, "require": { @@ -2834,11 +2852,11 @@ "phpmyadmin/motranslator": "<3.0" }, "require-dev": { - "phpmyadmin/coding-standard": "^1.0", + "phpmyadmin/coding-standard": "^2.0", "phpmyadmin/motranslator": "^4.0 || ^5.0", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.3", - "phpstan/phpstan-phpunit": "^0.12.1", + "phpstan/phpstan": "^0.12.40", + "phpstan/phpstan-phpunit": "^0.12.16", "phpunit/php-code-coverage": "*", "phpunit/phpunit": "^7.4 || ^8 || ^9" }, @@ -2876,7 +2894,7 @@ "parser", "sql" ], - "time": "2020-03-21T00:25:34+00:00" + "time": "2020-10-08T19:21:19+00:00" }, { "name": "predis/predis", @@ -3481,16 +3499,16 @@ }, { "name": "symfony/config", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "043bf8652c307ebc23ce44047d215eec889d8850" + "reference": "7c5a1002178a612787c291a4f515f87b19176b61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/043bf8652c307ebc23ce44047d215eec889d8850", - "reference": "043bf8652c307ebc23ce44047d215eec889d8850", + "url": "https://api.github.com/repos/symfony/config/zipball/7c5a1002178a612787c291a4f515f87b19176b61", + "reference": "7c5a1002178a612787c291a4f515f87b19176b61", "shasum": "" }, "require": { @@ -3555,20 +3573,20 @@ "type": "tidelift" } ], - "time": "2020-08-10T07:27:51+00:00" + "time": "2020-10-02T07:34:48+00:00" }, { "name": "symfony/console", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727" + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/b39fd99b9297b67fb7633b7d8083957a97e1e727", - "reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727", + "url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124", + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124", "shasum": "" }, "require": { @@ -3646,11 +3664,11 @@ "type": "tidelift" } ], - "time": "2020-09-02T07:07:21+00:00" + "time": "2020-09-15T07:58:55+00:00" }, { "name": "symfony/css-selector", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -3717,16 +3735,16 @@ }, { "name": "symfony/debug", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e" + "reference": "726b85e69342e767d60e3853b98559a68ff74183" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e", - "reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e", + "url": "https://api.github.com/repos/symfony/debug/zipball/726b85e69342e767d60e3853b98559a68ff74183", + "reference": "726b85e69342e767d60e3853b98559a68ff74183", "shasum": "" }, "require": { @@ -3784,20 +3802,20 @@ "type": "tidelift" } ], - "time": "2020-08-10T07:47:39+00:00" + "time": "2020-09-09T05:20:36+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "384c2601e5a6228d60b041911d63f010e0885ffb" + "reference": "89274c8847dff2ed703e481843eb9159ca25cc6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/384c2601e5a6228d60b041911d63f010e0885ffb", - "reference": "384c2601e5a6228d60b041911d63f010e0885ffb", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/89274c8847dff2ed703e481843eb9159ca25cc6e", + "reference": "89274c8847dff2ed703e481843eb9159ca25cc6e", "shasum": "" }, "require": { @@ -3871,20 +3889,20 @@ "type": "tidelift" } ], - "time": "2020-09-01T17:42:15+00:00" + "time": "2020-09-10T10:08:39+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "2434fb32851f252e4f27691eee0b77c16198db62" + "reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/2434fb32851f252e4f27691eee0b77c16198db62", - "reference": "2434fb32851f252e4f27691eee0b77c16198db62", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c8be4a5c70af70fec82e762dd93e3bbcf95c035f", + "reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f", "shasum": "" }, "require": { @@ -3942,20 +3960,20 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2020-10-01T16:21:20+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030" + "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3e8ea5ccddd00556b86d69d42f99f1061a704030", - "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e17bb5e0663dc725f7cdcafc932132735b4725cd", + "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd", "shasum": "" }, "require": { @@ -3973,6 +3991,7 @@ "psr/log": "~1.0", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", "symfony/expression-language": "^3.4|^4.0|^5.0", "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/service-contracts": "^1.1|^2", @@ -4026,7 +4045,7 @@ "type": "tidelift" } ], - "time": "2020-08-13T14:18:44+00:00" + "time": "2020-09-18T14:07:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4106,16 +4125,16 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "27575bcbc68db1f6d06218891296572c9b845704" + "reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/27575bcbc68db1f6d06218891296572c9b845704", - "reference": "27575bcbc68db1f6d06218891296572c9b845704", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/ebc51494739d3b081ea543ed7c462fa73a4f74db", + "reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db", "shasum": "" }, "require": { @@ -4166,20 +4185,20 @@ "type": "tidelift" } ], - "time": "2020-08-21T17:19:37+00:00" + "time": "2020-09-27T13:54:16+00:00" }, { "name": "symfony/finder", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7" + "reference": "60d08560f9aa72997c44077c40d47aa28a963230" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2a78590b2c7e3de5c429628457c47541c58db9c7", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230", + "reference": "60d08560f9aa72997c44077c40d47aa28a963230", "shasum": "" }, "require": { @@ -4229,20 +4248,95 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2020-10-02T07:34:48+00:00" }, { - "name": "symfony/http-foundation", - "version": "v4.4.13", + "name": "symfony/http-client-contracts", + "version": "v1.1.10", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "e3e5a62a6631a461954d471e7206e3750dbe8ee1" + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "7e86f903f9720d0caa7688f5c29a2de2d77cbb89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e3e5a62a6631a461954d471e7206e3750dbe8ee1", - "reference": "e3e5a62a6631a461954d471e7206e3750dbe8ee1", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e86f903f9720d0caa7688f5c29a2de2d77cbb89", + "reference": "7e86f903f9720d0caa7688f5c29a2de2d77cbb89", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "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 HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "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": "2020-08-17T09:35:39+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "10683b407c3b6087c64619ebc97a87e36ea62c92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/10683b407c3b6087c64619ebc97a87e36ea62c92", + "reference": "10683b407c3b6087c64619ebc97a87e36ea62c92", "shasum": "" }, "require": { @@ -4298,20 +4392,20 @@ "type": "tidelift" } ], - "time": "2020-08-17T07:39:58+00:00" + "time": "2020-09-27T14:14:06+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188" + "reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bb7b90ecdc79813c0bf237b7ff20e79062b5188", - "reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6544745997b06c7dcecf0d4a70f09e5de1db7ca8", + "reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8", "shasum": "" }, "require": { @@ -4319,6 +4413,7 @@ "psr/log": "~1.0", "symfony/error-handler": "^4.4", "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", "symfony/http-foundation": "^4.4|^5.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", @@ -4403,20 +4498,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T08:09:29+00:00" + "time": "2020-10-04T07:48:13+00:00" }, { "name": "symfony/mime", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "50ad671306d3d3ffb888d95b4fb1859496831e3a" + "reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/50ad671306d3d3ffb888d95b4fb1859496831e3a", - "reference": "50ad671306d3d3ffb888d95b4fb1859496831e3a", + "url": "https://api.github.com/repos/symfony/mime/zipball/42df2507eb8e6cd9795f51c99dd52bab543a918f", + "reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f", "shasum": "" }, "require": { @@ -4479,7 +4574,7 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2020-09-02T16:08:58+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5185,16 +5280,16 @@ }, { "name": "symfony/process", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479" + "reference": "9b887acc522935f77555ae8813495958c7771ba7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/65e70bab62f3da7089a8d4591fb23fbacacb3479", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479", + "url": "https://api.github.com/repos/symfony/process/zipball/9b887acc522935f77555ae8813495958c7771ba7", + "reference": "9b887acc522935f77555ae8813495958c7771ba7", "shasum": "" }, "require": { @@ -5244,20 +5339,20 @@ "type": "tidelift" } ], - "time": "2020-07-23T08:31:43+00:00" + "time": "2020-09-02T16:08:58+00:00" }, { "name": "symfony/routing", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e3387963565da9bae51d1d3ab8041646cc93bd04" + "reference": "006b2d06672b8650998f328fc603eb6f3feb979f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e3387963565da9bae51d1d3ab8041646cc93bd04", - "reference": "e3387963565da9bae51d1d3ab8041646cc93bd04", + "url": "https://api.github.com/repos/symfony/routing/zipball/006b2d06672b8650998f328fc603eb6f3feb979f", + "reference": "006b2d06672b8650998f328fc603eb6f3feb979f", "shasum": "" }, "require": { @@ -5334,7 +5429,7 @@ "type": "tidelift" } ], - "time": "2020-08-10T07:27:51+00:00" + "time": "2020-10-01T16:25:17+00:00" }, { "name": "symfony/service-contracts", @@ -5414,16 +5509,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "700e6e50174b0cdcf0fa232773bec5c314680575" + "reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/700e6e50174b0cdcf0fa232773bec5c314680575", - "reference": "700e6e50174b0cdcf0fa232773bec5c314680575", + "url": "https://api.github.com/repos/symfony/translation/zipball/8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd", + "reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd", "shasum": "" }, "require": { @@ -5500,7 +5595,7 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2020-10-02T07:34:48+00:00" }, { "name": "symfony/translation-contracts", @@ -5579,16 +5674,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "1bef32329f3166486ab7cb88599cae4875632b99" + "reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1bef32329f3166486ab7cb88599cae4875632b99", - "reference": "1bef32329f3166486ab7cb88599cae4875632b99", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0dc22bdf9d1197467bb04d505355180b6f20bcca", + "reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca", "shasum": "" }, "require": { @@ -5666,7 +5761,7 @@ "type": "tidelift" } ], - "time": "2020-08-17T07:31:35+00:00" + "time": "2020-09-18T08:35:10+00:00" }, { "name": "tecnickcom/tcpdf", @@ -6972,6 +7067,7 @@ "keywords": [ "tokenizer" ], + "abandoned": true, "time": "2017-11-27T05:48:46+00:00" }, { @@ -7682,16 +7778,16 @@ }, { "name": "symfony/yaml", - "version": "v4.4.13", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e2a69525b11a33be51cb00b8d6d13a9258a296b1" + "reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e2a69525b11a33be51cb00b8d6d13a9258a296b1", - "reference": "e2a69525b11a33be51cb00b8d6d13a9258a296b1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c7885964b1eceb70b0981556d0a9b01d2d97c8d1", + "reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1", "shasum": "" }, "require": { @@ -7751,7 +7847,7 @@ "type": "tidelift" } ], - "time": "2020-08-26T08:30:46+00:00" + "time": "2020-09-27T03:36:23+00:00" }, { "name": "webmozart/assert", diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php index 4cafc2681..41ec094cb 100644 --- a/workflow/engine/classes/model/ListUnassigned.php +++ b/workflow/engine/classes/model/ListUnassigned.php @@ -2,6 +2,8 @@ require_once 'classes/model/om/BaseListUnassigned.php'; +use ProcessMaker\Model\Delegation; + /** * Skeleton subclass for representing a row from the 'LIST_UNASSIGNED' table. @@ -232,19 +234,86 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface /** * This function get the information in the corresponding cases list - * @param string $usr_uid, must be show cases related to this user + * + * @param string $usrUid, must be show cases related to this user * @param array $filters for apply in the result * @param callable $callbackRecord * @return array $data - * @throws PropelException */ - public function loadList($usr_uid, $filters = array(), callable $callbackRecord = null) + public function loadList($usrUid, $filters = [], callable $callbackRecord = null) { + // Get criteria base and the additional columns $pmTable = new PmTable(); $criteria = $pmTable->addPMFieldsToList('unassigned'); $this->setAdditionalClassName($pmTable->tableClassName); $additionalColumns = $criteria->getSelectColumns(); + // Check if exists the custom cases list configured for the unassigned list, if NOT exists we're using the new improved query + if (empty($additionalColumns)) { + // Initialize required parameters + $selectedColumns = [ + // APP_DELEGATION table + 'APP_DELEGATION.APP_NUMBER', + 'APP_DELEGATION.DEL_INDEX', + 'APP_DELEGATION.APP_UID', + 'APP_DELEGATION.TAS_UID', + 'APP_DELEGATION.PRO_UID', + 'APP_DELEGATION.DEL_DELEGATE_DATE', + 'APP_DELEGATION.DEL_TASK_DUE_DATE', + 'APP_DELEGATION.DEL_PRIORITY', + 'APP_DELEGATION.DEL_PREVIOUS', + // TASK table + 'TASK.TAS_TITLE', + // APPLICATION table + 'APPLICATION.APP_TITLE', + 'APPLICATION.APP_UPDATE_DATE', + // PROCESS table + 'PROCESS.PRO_TITLE' + ]; + $sortMap = [ + 'APP_NUMBER' => 'APP_NUMBER', + 'DEL_DUE_DATE' => 'DEL_TASK_DUE_DATE', + 'DEL_DELEGATE_DATE' => 'DEL_DELEGATE_DATE', + 'APP_TITLE' => 'APP_TITLE', + 'APP_PRO_TITLE' => 'PRO_TITLE', + 'APP_TAS_TITLE' => 'TAS_TITLE', + 'DEL_PREVIOUS_USR_UID' => 'USR_ID' + ]; + $categoryUid = $filters['category'] ?? null; + $processUid = $filters['process'] ?? null; + $textToSearch = $filters['search'] ?? null; + $sort = $sortMap[$filters['sort']] ?? null; + $dir = $filters['dir'] ?? null; + $offset = $filters['start'] ?? null; + $limit = $filters['limit'] ?? null; + + // Get data + $data = Delegation::getSelfService($usrUid, $selectedColumns, $categoryUid, $processUid, $textToSearch, $sort, $dir, $offset, $limit); + + // Transform and complete the data + foreach ($data as &$row) { + $row = is_null($callbackRecord) ? $row : $callbackRecord($row); + } + } else { + // Use the old Propel query that is compatible with the custom cases list + $data = $this->loadListWithAdditionalColumns($criteria, $usrUid, $filters, $additionalColumns, $callbackRecord); + } + + return $data; + } + + /** + * Get the data for unassigned list with the information of additional columns + * + * @param object $criteria + * @param string $usr_uid + * @param array $filters + * @param array $additionalColumns + * @param callable $callbackRecord + * @return array + */ + private function loadListWithAdditionalColumns($criteria, $usr_uid, $filters, $additionalColumns, callable $callbackRecord) + { $criteria->addSelectColumn(ListUnassignedPeer::APP_UID); $criteria->addSelectColumn(ListUnassignedPeer::DEL_INDEX); $criteria->addSelectColumn(ListUnassignedPeer::TAS_UID); @@ -460,17 +529,20 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface /** * Returns the number of cases of a user * - * @param string $userUid + * @param string $usrUid * @param array $filters * * @return int $total */ - public function getCountList($userUid, $filters = array()) + public function getCountList($usrUid, $filters = []) { - $criteria = new Criteria('workflow'); - $this->getCriteriaWhereSelfService($criteria, $userUid); - $total = ListUnassignedPeer::doCount($criteria); - return (int)$total; + // Initialize required parameters + $categoryUid = $filters['category'] ?? null; + $processUid = $filters['process'] ?? null; + $textToSearch = $filters['search'] ?? null; + + // Get counter + return Delegation::countSelfService($usrUid, $categoryUid, $processUid, $textToSearch); } /** diff --git a/workflow/engine/methods/cases/proxyNewCasesList.php b/workflow/engine/methods/cases/proxyNewCasesList.php index fb8221c01..aa236282a 100644 --- a/workflow/engine/methods/cases/proxyNewCasesList.php +++ b/workflow/engine/methods/cases/proxyNewCasesList.php @@ -1,5 +1,7 @@ error = G::LoadTranslation('ID_LOGIN_AGAIN'); @@ -156,6 +158,12 @@ try { $record["PREVIOUS_USR_USERNAME"] = $record["DEL_PREVIOUS_USR_USERNAME"]; $record["PREVIOUS_USR_FIRSTNAME"] = $record["DEL_PREVIOUS_USR_FIRSTNAME"]; $record["PREVIOUS_USR_LASTNAME"] = $record["DEL_PREVIOUS_USR_LASTNAME"]; + } elseif (!empty($record["USR_ID"])) { + $user = User::where("USR_ID", $record["USR_ID"])->first(); + $record["PREVIOUS_USR_UID"] = $record["DEL_PREVIOUS_USR_UID"] = $user->USR_UID; + $record["PREVIOUS_USR_USERNAME"] = $record["DEL_PREVIOUS_USR_USERNAME"] = $user->USR_USERNAME; + $record["PREVIOUS_USR_FIRSTNAME"] = $record["DEL_PREVIOUS_USR_FIRSTNAME"] = $user->USR_FIRSTNAME; + $record["PREVIOUS_USR_LASTNAME"] = $record["DEL_PREVIOUS_USR_LASTNAME"] = $user->USR_LASTNAME; } if (isset($record["DEL_DUE_DATE"])) { @@ -175,12 +183,18 @@ try { if (isset($record['DEL_CURRENT_TAS_TITLE']) && $record['DEL_CURRENT_TAS_TITLE'] != '') { $record['APP_TAS_TITLE'] = $record['DEL_CURRENT_TAS_TITLE']; + } elseif (!empty($record["TAS_TITLE"]) && empty($record["APP_TAS_TITLE"])) { + $record["APP_TAS_TITLE"] = $record["TAS_TITLE"]; } if (isset($record["APP_STATUS"])) { $record["APP_STATUS_LABEL"] = G::LoadTranslation("ID_" . $record["APP_STATUS"]); } + if (!empty($record["PRO_TITLE"]) && empty($record["APP_PRO_TITLE"])) { + $record["APP_PRO_TITLE"] = $record["PRO_TITLE"]; + } + return $record; } catch (Exception $e) { throw $e; diff --git a/workflow/engine/src/ProcessMaker/Model/Delegation.php b/workflow/engine/src/ProcessMaker/Model/Delegation.php index 9457679c7..d5a892e9b 100644 --- a/workflow/engine/src/ProcessMaker/Model/Delegation.php +++ b/workflow/engine/src/ProcessMaker/Model/Delegation.php @@ -72,7 +72,7 @@ class Delegation extends Model */ public function scopeIsThreadOpen($query) { - return $query->where('DEL_THREAD_STATUS', '=', 'OPEN'); + return $query->where('APP_DELEGATION.DEL_THREAD_STATUS', '=', 'OPEN'); } /** @@ -83,7 +83,7 @@ class Delegation extends Model */ public function scopeNoUserInThread($query) { - return $query->where('USR_ID', '=', 0); + return $query->where('APP_DELEGATION.USR_ID', '=', 0); } /** @@ -487,10 +487,17 @@ class Delegation extends Model * * @param string $usrUid * @param bool $count + * @param array $selectedColumns + * @param string $categoryUid + * @param string $processUid + * @param string $textToSearch + * @param string $sort + * @param string $dir * * @return \Illuminate\Database\Query\Builder | string */ - public static function getSelfServiceQuery($usrUid, $count = false) + public static function getSelfServiceQuery($usrUid, $count = false, $selectedColumns = ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'], + $categoryUid = null, $processUid = null, $textToSearch = null, $sort = null, $dir = null) { // Set the 'usrUid' property to preserve Delegation::$usrUid = $usrUid; @@ -507,10 +514,23 @@ class Delegation extends Model // Set the 'groups' property to preserve Delegation::$groups = $groups; - // Start the first query - $query1 = Delegation::query()->select(['APP_NUMBER', 'DEL_INDEX']); + // Add an extra column with alias if is needed to join with the previous delegation + if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) { + $selectedColumns[] = 'ADP.USR_ID'; + } - // Add the join clause + // Start the first query + $query1 = Delegation::query()->select($selectedColumns); + + // Add join clause with the previous APP_DELEGATION record if required + if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) { + $query1->join('APP_DELEGATION AS ADP', function ($join) { + $join->on('APP_DELEGATION.APP_NUMBER', '=', 'ADP.APP_NUMBER'); + $join->on('APP_DELEGATION.DEL_PREVIOUS', '=', 'ADP.DEL_INDEX'); + }); + } + + // Add the join clause with TASK table $query1->join('TASK', function ($join) { // Build partial plain query for a complex Join, because Eloquent doesn't support this type of Join $complexJoin = " @@ -540,6 +560,33 @@ class Delegation extends Model whereRaw($complexJoin); }); + // Add join clause with APPLICATION table if required + if (array_search('APPLICATION.APP_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'APP_TITLE') { + $query1->join('APPLICATION', function ($join) { + $join->on('APP_DELEGATION.APP_NUMBER', '=', 'APPLICATION.APP_NUMBER'); + }); + } + + // Add join clause with PROCESS table if required + if (array_search('PROCESS.PRO_TITLE', $selectedColumns) !== false || !empty($categoryUid) || !empty($processUid) || !empty($textToSearch) || $sort == 'PRO_TITLE') { + $query1->join('PROCESS', function ($join) use ($categoryUid, $processUid) { + $join->on('APP_DELEGATION.PRO_ID', '=', 'PROCESS.PRO_ID'); + if (!empty($categoryUid)) { + $join->where('PROCESS.PRO_CATEGORY', $categoryUid); + } + if (!empty($processUid)) { + $join->where('PROCESS.PRO_UID', $processUid); + } + }); + } + + // Build where clause for the text to search + if (!empty($textToSearch)) { + $query1->where('APPLICATION.APP_TITLE', 'LIKE', "%$textToSearch%") + ->orWhere('TASK.TAS_TITLE', 'LIKE', "%$textToSearch%") + ->orWhere('PROCESS.PRO_TITLE', 'LIKE', "%$textToSearch%"); + } + // Clean static properties Delegation::$usrUid = ''; Delegation::$groups = []; @@ -549,17 +596,63 @@ class Delegation extends Model if (!empty($selfServiceTasks)) { // Start the second query - $query2 = Delegation::query()->select(['APP_NUMBER', 'DEL_INDEX']); + $query2 = Delegation::query()->select($selectedColumns); $query2->tasksIn($selfServiceTasks); $query2->isThreadOpen(); $query2->noUserInThread(); + // Add join clause with the previous APP_DELEGATION record if required + if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) { + $query2->join('APP_DELEGATION AS ADP', function ($join) { + $join->on('APP_DELEGATION.APP_NUMBER', '=', 'ADP.APP_NUMBER'); + $join->on('APP_DELEGATION.DEL_PREVIOUS', '=', 'ADP.DEL_INDEX'); + }); + } + + // Add the join clause with TASK table if required + if (array_search('TASK.TAS_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'TAS_TITLE') { + $query2->join('TASK', function ($join) { + $join->on('APP_DELEGATION.TAS_ID', '=', 'TASK.TAS_ID'); + }); + + } + // Add join clause with APPLICATION table if required + if (array_search('APPLICATION.APP_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'APP_TITLE') { + $query2->join('APPLICATION', function ($join) { + $join->on('APP_DELEGATION.APP_NUMBER', '=', 'APPLICATION.APP_NUMBER'); + }); + } + + // Add join clause with PROCESS table if required + if (array_search('PROCESS.PRO_TITLE', $selectedColumns) !== false || !empty($categoryUid) || !empty($processUid) || !empty($textToSearch) || $sort == 'PRO_TITLE') { + $query2->join('PROCESS', function ($join) use ($categoryUid, $processUid) { + $join->on('APP_DELEGATION.PRO_ID', '=', 'PROCESS.PRO_ID'); + if (!empty($categoryUid)) { + $join->where('PROCESS.PRO_CATEGORY', $categoryUid); + } + if (!empty($processUid)) { + $join->where('PROCESS.PRO_UID', $processUid); + } + }); + } + + // Build where clause for the text to search + if (!empty($textToSearch)) { + $query2->where('APPLICATION.APP_TITLE', 'LIKE', "%$textToSearch%") + ->orWhere('TASK.TAS_TITLE', 'LIKE', "%$textToSearch%") + ->orWhere('PROCESS.PRO_TITLE', 'LIKE', "%$textToSearch%"); + } + // Build the complex query that uses "UNION DISTINCT" clause - $query = sprintf('select ' . ($count ? 'count(*) as aggregate' : 'APP_NUMBER') . - ' from ((%s) union distinct (%s)) self_service_cases', toSqlWithBindings($query1), toSqlWithBindings($query2)); + $query = sprintf('select ' . ($count ? 'count(*) as aggregate' : '*') . + ' from ((%s) union distinct (%s)) self_service_cases' . (!empty($sort) && !empty($dir) ? ' ORDER BY %s %s' : ''), + toSqlWithBindings($query1), toSqlWithBindings($query2), $sort, $dir); return $query; } else { + if (!empty($sort) && !empty($dir)) { + $query1->orderBy($sort, $dir); + } return $query1; } } @@ -568,24 +661,41 @@ class Delegation extends Model * Get the self-services cases by user * * @param string $usrUid - * + * @param array $selectedColumns + * @param string $categoryUid + * @param string $processUid + * @param string $textToSearch + * @param string $sort + * @param string $dir + * @param int $offset + * @param int $limit * @return array */ - public static function getSelfService($usrUid) + public static function getSelfService($usrUid, $selectedColumns = ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'], + $categoryUid = null, $processUid = null, $textToSearch = null, $sort = null, $dir = null, $offset = null, $limit = null) { // Initializing the variable to return $data = []; // Get the query - $query = self::getSelfServiceQuery($usrUid); + $query = self::getSelfServiceQuery($usrUid, false, $selectedColumns, $categoryUid, $processUid, $textToSearch, $sort, $dir); // Get data if (!is_string($query)) { + // Set offset and limit if were sent + if (!is_null($offset) && !is_null($limit)) { + $query->offset($offset); + $query->limit($limit); + } $items = $query->get(); $items->each(function ($item) use (&$data) { $data[] = get_object_vars($item); }); } else { + // Set offset and limit if were sent + if (!is_null($offset) && !is_null($limit)) { + $query .= " LIMIT {$offset}, {$limit}"; + } $items = DB::select($query); foreach ($items as $item) { $data[] = get_object_vars($item); @@ -600,13 +710,17 @@ class Delegation extends Model * Count the self-services cases by user * * @param string $usrUid + * @param string $categoryUid + * @param string $processUid + * @param string $textToSearch * * @return integer */ - public static function countSelfService($usrUid) + public static function countSelfService($usrUid, $categoryUid = null, $processUid = null, $textToSearch = null) { // Get the query - $query = self::getSelfServiceQuery($usrUid, true); + $query = self::getSelfServiceQuery($usrUid, true, ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'], + $categoryUid, $processUid, $textToSearch); // Get count value if (!is_string($query)) { diff --git a/workflow/engine/src/ProcessMaker/Model/Task.php b/workflow/engine/src/ProcessMaker/Model/Task.php index 40f9c5a4d..4d8a1820f 100644 --- a/workflow/engine/src/ProcessMaker/Model/Task.php +++ b/workflow/engine/src/ProcessMaker/Model/Task.php @@ -13,14 +13,15 @@ class Task extends Model public $timestamps = false; // The following types will execute without user and run automatically public static $typesRunAutomatically = [ - "WEBENTRYEVENT", "END-MESSAGE-EVENT", - "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT", + "INTERMEDIATE-CATCH-TIMER-EVENT", "SCRIPT-TASK", + "SERVICE-TASK", + "START-MESSAGE-EVENT", "START-TIMER-EVENT", - "INTERMEDIATE-CATCH-TIMER-EVENT" + "WEBENTRYEVENT", ]; public function process()