diff --git a/composer.json b/composer.json index fa403f4a3949246f859854d190442eaadae4eb3a..1babd387ed25d70dea6ff0606de6a57076bcaf6a 100755 --- a/composer.json +++ b/composer.json @@ -11,10 +11,10 @@ "unicaen/unicaen-app": "dev-trunk", "unicaen/unicaen-auth": "dev-trunk", "unicaen/unicaen-ldap": "dev-trunk", - "zendframework/zend-code": "2.2.6" + "zendframework/zend-code": ">=2.3" }, "require-dev": { - "zendframework/zend-test": "2.2.6", + "zendframework/zend-test": ">=2.3", "phpunit/PHPUnit": ">=3.7" } } \ No newline at end of file diff --git a/composer.lock b/composer.lock index d564ae324235466b5c2fc4a7797543ed8b079ff2..2f35c1c4fb72d126c3caeef55da210357ee4fd21 100644 --- a/composer.lock +++ b/composer.lock @@ -3,7 +3,7 @@ "This file locks the dependencies of your project to a known state", "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" ], - "hash": "2342a379f33392f4144db609c0df708b", + "hash": "c4b1706ae7945df7afa01fe214591cda", "packages": [ { "name": "bjyoungblood/bjy-authorize", @@ -701,7 +701,7 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com", - "homepage": "http://jmsyst.com", + "homepage": "https://github.com/schmittjoh", "role": "Developer of wrapped JMSSerializerBundle" } ], @@ -1072,32 +1072,32 @@ "source": { "type": "svn", "url": "https://svn.unicaen.fr/svn/UnicaenApp", - "reference": "/trunk/@438" + "reference": "/trunk/@441" }, "require": { "doctrine/doctrine-orm-module": ">=0.7", "php": ">=5.3.3", "rwoverdijk/assetmanager": ">=1.3", - "zendframework/zend-config": "2.2.*", - "zendframework/zend-console": "2.2.*", - "zendframework/zend-eventmanager": "2.2.*", - "zendframework/zend-i18n": "2.2.*", - "zendframework/zend-json": "2.2.*", - "zendframework/zend-ldap": "2.2.*", - "zendframework/zend-log": "2.2.*", - "zendframework/zend-mail": "2.2.*", - "zendframework/zend-mvc": "2.2.*", - "zendframework/zend-navigation": "2.2.*", - "zendframework/zend-serializer": "2.2.*", - "zendframework/zend-servicemanager": "2.2.*", - "zendframework/zend-session": "2.2.*", - "zendframework/zend-version": "2.2.*", - "zendframework/zend-view": "2.2.*" + "zendframework/zend-config": "2.3.*", + "zendframework/zend-console": "2.3.*", + "zendframework/zend-eventmanager": "2.3.*", + "zendframework/zend-i18n": "2.3.*", + "zendframework/zend-json": "2.3.*", + "zendframework/zend-ldap": "2.3.*", + "zendframework/zend-log": "2.3.*", + "zendframework/zend-mail": "2.3.*", + "zendframework/zend-mvc": "2.3.*", + "zendframework/zend-navigation": "2.3.*", + "zendframework/zend-serializer": "2.3.*", + "zendframework/zend-servicemanager": "2.3.*", + "zendframework/zend-session": "2.3.*", + "zendframework/zend-version": "2.3.*", + "zendframework/zend-view": "2.3.*" }, "require-dev": { "mpdf/mpdf": "v5.7.1", "phpunit/phpunit": ">=3.7", - "zendframework/zend-test": "2.2.*" + "zendframework/zend-test": "2.3.*" }, "bin": [ "bin/deploy.sh", @@ -1170,28 +1170,40 @@ }, { "name": "zendframework/zend-authentication", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Authentication", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendAuthentication.git", - "reference": "6151c1d70ed4bb364c113a2df60a7f711031e04a" + "reference": "13771a1738ebed55b9e9ed3f4c3871576a37d847" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendAuthentication/zipball/6151c1d70ed4bb364c113a2df60a7f711031e04a", - "reference": "6151c1d70ed4bb364c113a2df60a7f711031e04a", + "url": "https://api.github.com/repos/zendframework/Component_ZendAuthentication/zipball/13771a1738ebed55b9e9ed3f4c3871576a37d847", + "reference": "13771a1738ebed55b9e9ed3f4c3871576a37d847", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-crypt": "self.version", + "zendframework/zend-db": "self.version", + "zendframework/zend-http": "self.version", + "zendframework/zend-ldap": "self.version", + "zendframework/zend-session": "self.version", + "zendframework/zend-uri": "self.version", + "zendframework/zend-validator": "self.version" + }, "suggest": { "zendframework/zend-crypt": "Zend\\Crypt component", "zendframework/zend-db": "Zend\\Db component", + "zendframework/zend-http": "Zend\\Http component", + "zendframework/zend-ldap": "Zend\\Ldap component", "zendframework/zend-session": "Zend\\Session component", - "zendframework/zend-uri": "Zend\\Uri component" + "zendframework/zend-uri": "Zend\\Uri component", + "zendframework/zend-validator": "Zend\\Validator component" }, "type": "library", "extra": { @@ -1214,31 +1226,32 @@ "Authentication", "zf2" ], - "time": "2014-01-04 13:00:06" + "time": "2014-03-14 16:20:28" }, { "name": "zendframework/zend-cache", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Cache", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendCache.git", - "reference": "560355160f06cdc3ef549a7eef843af3bead7e39" + "reference": "00ab70f3bcbc9d9d2a925a1221410de8a941f3e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendCache/zipball/560355160f06cdc3ef549a7eef843af3bead7e39", - "reference": "560355160f06cdc3ef549a7eef843af3bead7e39", + "url": "https://api.github.com/repos/zendframework/Component_ZendCache/zipball/00ab70f3bcbc9d9d2a925a1221410de8a941f3e8", + "reference": "00ab70f3bcbc9d9d2a925a1221410de8a941f3e8", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "zendframework/zend-serializer": "self.version" + "zendframework/zend-serializer": "self.version", + "zendframework/zend-session": "self.version" }, "suggest": { "ext-apc": "APC >= 3.1.6 to use the APC storage adapter", @@ -1269,32 +1282,34 @@ "cache", "zf2" ], - "time": "2014-03-03 23:00:17" + "time": "2014-03-14 16:20:37" }, { "name": "zendframework/zend-code", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Code", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendCode.git", - "reference": "aaf820f205881563cc3c6708149e17364d1bb823" + "reference": "7eb108341ff6c9ec240764a11270f2d12934b733" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendCode/zipball/aaf820f205881563cc3c6708149e17364d1bb823", - "reference": "aaf820f205881563cc3c6708149e17364d1bb823", + "url": "https://api.github.com/repos/zendframework/Component_ZendCode/zipball/7eb108341ff6c9ec240764a11270f2d12934b733", + "reference": "7eb108341ff6c9ec240764a11270f2d12934b733", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-eventmanager": "self.version" }, "require-dev": { - "doctrine/common": ">=2.1" + "doctrine/common": ">=2.1", + "zendframework/zend-stdlib": "self.version" }, "suggest": { - "doctrine/common": "Doctrine\\Common >=2.1 for annotation features" + "doctrine/common": "Doctrine\\Common >=2.1 for annotation features", + "zendframework/zend-stdlib": "Zend\\Stdlib component" }, "type": "library", "extra": { @@ -1317,28 +1332,36 @@ "code", "zf2" ], - "time": "2014-02-15 15:00:07" + "time": "2014-03-14 16:20:47" }, { "name": "zendframework/zend-config", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Config", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendConfig.git", - "reference": "a31c3980cf7ec88418a931e9cf4ba21079f47a08" + "reference": "98ce618c4db60de1101cba39e9a1c2ef2c24f40f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendConfig/zipball/a31c3980cf7ec88418a931e9cf4ba21079f47a08", - "reference": "a31c3980cf7ec88418a931e9cf4ba21079f47a08", + "url": "https://api.github.com/repos/zendframework/Component_ZendConfig/zipball/98ce618c4db60de1101cba39e9a1c2ef2c24f40f", + "reference": "98ce618c4db60de1101cba39e9a1c2ef2c24f40f", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-filter": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-servicemanager": "self.version" + }, "suggest": { + "zendframework/zend-filter": "Zend\\Filter component", + "zendframework/zend-i18n": "Zend\\I18n component", "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes", "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances" }, @@ -1363,25 +1386,25 @@ "config", "zf2" ], - "time": "2014-01-02 18:00:10" + "time": "2014-03-14 16:20:50" }, { "name": "zendframework/zend-console", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Console", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendConsole.git", - "reference": "63a60ec11930c6b1c6bab1b85cc1fb7aa9cf0ac8" + "reference": "4660d3efc0ac39c2f571d0971bc8545f404f38ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendConsole/zipball/63a60ec11930c6b1c6bab1b85cc1fb7aa9cf0ac8", - "reference": "63a60ec11930c6b1c6bab1b85cc1fb7aa9cf0ac8", + "url": "https://api.github.com/repos/zendframework/Component_ZendConsole/zipball/4660d3efc0ac39c2f571d0971bc8545f404f38ad", + "reference": "4660d3efc0ac39c2f571d0971bc8545f404f38ad", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, "type": "library", @@ -1404,25 +1427,25 @@ "console", "zf2" ], - "time": "2014-01-02 18:00:10" + "time": "2014-03-12 17:04:32" }, { "name": "zendframework/zend-crypt", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Crypt", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendCrypt.git", - "reference": "72cbd425ff6f8f452f9ed1ca403a5bd66ba4a0b6" + "reference": "ba5becb5adcbcf66c95480f179536b96878133d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendCrypt/zipball/72cbd425ff6f8f452f9ed1ca403a5bd66ba4a0b6", - "reference": "72cbd425ff6f8f452f9ed1ca403a5bd66ba4a0b6", + "url": "https://api.github.com/repos/zendframework/Component_ZendCrypt/zipball/ba5becb5adcbcf66c95480f179536b96878133d5", + "reference": "ba5becb5adcbcf66c95480f179536b96878133d5", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-math": "self.version", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" @@ -1447,7 +1470,7 @@ "crypt", "zf2" ], - "time": "2014-03-03 19:00:05" + "time": "2014-03-12 17:04:21" }, { "name": "zendframework/zend-db", @@ -1501,21 +1524,21 @@ }, { "name": "zendframework/zend-escaper", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Escaper", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendEscaper.git", - "reference": "80abc4bc1f48b9fe8ed603aaa9eebd6e6f30fd0f" + "reference": "ec2614db2ea860c5765a0adba687eacb365ad355" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/80abc4bc1f48b9fe8ed603aaa9eebd6e6f30fd0f", - "reference": "80abc4bc1f48b9fe8ed603aaa9eebd6e6f30fd0f", + "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/ec2614db2ea860c5765a0adba687eacb365ad355", + "reference": "ec2614db2ea860c5765a0adba687eacb365ad355", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23" }, "type": "library", "extra": { @@ -1537,25 +1560,25 @@ "escaper", "zf2" ], - "time": "2014-01-04 13:00:13" + "time": "2014-03-14 16:21:02" }, { "name": "zendframework/zend-eventmanager", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/EventManager", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendEventManager.git", - "reference": "89368704bb37303fba64c3ddd6bce0506aa7187c" + "reference": "048164ee81854942667ffdda3030ce06caa79bb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendEventManager/zipball/89368704bb37303fba64c3ddd6bce0506aa7187c", - "reference": "89368704bb37303fba64c3ddd6bce0506aa7187c", + "url": "https://api.github.com/repos/zendframework/Component_ZendEventManager/zipball/048164ee81854942667ffdda3030ce06caa79bb5", + "reference": "048164ee81854942667ffdda3030ce06caa79bb5", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, "type": "library", @@ -1578,35 +1601,37 @@ "eventmanager", "zf2" ], - "time": "2014-01-04 13:00:14" + "time": "2014-03-14 16:21:05" }, { "name": "zendframework/zend-filter", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Filter", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendFilter.git", - "reference": "8ceece474b29d079e86976dbd3efffe6064b3d72" + "reference": "95e05d19a6941f93546103af1964995213994a8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendFilter/zipball/8ceece474b29d079e86976dbd3efffe6064b3d72", - "reference": "8ceece474b29d079e86976dbd3efffe6064b3d72", + "url": "https://api.github.com/repos/zendframework/Component_ZendFilter/zipball/95e05d19a6941f93546103af1964995213994a8b", + "reference": "95e05d19a6941f93546103af1964995213994a8b", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "zendframework/zend-crypt": "self.version" + "zendframework/zend-crypt": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-uri": "self.version" }, "suggest": { "zendframework/zend-crypt": "Zend\\Crypt component", "zendframework/zend-i18n": "Zend\\I18n component", - "zendframework/zend-uri": "Zend\\Uri component for UriNormalize filter", - "zendframework/zend-validator": "Zend\\Validator component" + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", + "zendframework/zend-uri": "Zend\\Uri component for UriNormalize filter" }, "type": "library", "extra": { @@ -1629,32 +1654,48 @@ "filter", "zf2" ], - "time": "2014-03-03 21:00:06" + "time": "2014-03-14 16:21:18" }, { "name": "zendframework/zend-form", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Form", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendForm.git", - "reference": "52fb1b8172b59a460b5d38467477179df188af11" + "reference": "d54d13514b645d415fac470ed38388a236928663" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendForm/zipball/52fb1b8172b59a460b5d38467477179df188af11", - "reference": "52fb1b8172b59a460b5d38467477179df188af11", + "url": "https://api.github.com/repos/zendframework/Component_ZendForm/zipball/d54d13514b645d415fac470ed38388a236928663", + "reference": "d54d13514b645d415fac470ed38388a236928663", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-inputfilter": "self.version", "zendframework/zend-stdlib": "self.version" }, "require-dev": { + "zendframework/zend-captcha": "self.version", + "zendframework/zend-code": "self.version", + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-validator": "self.version", + "zendframework/zend-view": "self.version", "zendframework/zendservice-recaptcha": "*" }, "suggest": { + "zendframework/zend-captcha": "Zend\\Captcha component", + "zendframework/zend-code": "Zend\\Code component", + "zendframework/zend-eventmanager": "Zend\\EventManager component", + "zendframework/zend-filter": "Zend\\Filter component", + "zendframework/zend-i18n": "Zend\\I18n component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", + "zendframework/zend-validator": "Zend\\Validator component", + "zendframework/zend-view": "Zend\\View component", "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha component" }, "type": "library", @@ -1677,25 +1718,25 @@ "form", "zf2" ], - "time": "2014-03-05 16:00:08" + "time": "2014-03-12 17:04:13" }, { "name": "zendframework/zend-http", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Http", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendHttp.git", - "reference": "b91bea1d5972da19169dc2d546a45a8208df00b3" + "reference": "6d4314b1e3309071f3ab958186911296d70fe5fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendHttp/zipball/b91bea1d5972da19169dc2d546a45a8208df00b3", - "reference": "b91bea1d5972da19169dc2d546a45a8208df00b3", + "url": "https://api.github.com/repos/zendframework/Component_ZendHttp/zipball/6d4314b1e3309071f3ab958186911296d70fe5fe", + "reference": "6d4314b1e3309071f3ab958186911296d70fe5fe", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-loader": "self.version", "zendframework/zend-stdlib": "self.version", "zendframework/zend-uri": "self.version", @@ -1722,32 +1763,44 @@ "http", "zf2" ], - "time": "2014-03-05 21:00:05" + "time": "2014-03-14 16:21:21" }, { "name": "zendframework/zend-i18n", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/I18n", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendI18n.git", - "reference": "10f56e0869761d62699782e4dd04eb77262cc353" + "reference": "d90492e9771917392404ac0d53f09582d6462ec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendI18n/zipball/10f56e0869761d62699782e4dd04eb77262cc353", - "reference": "10f56e0869761d62699782e4dd04eb77262cc353", + "url": "https://api.github.com/repos/zendframework/Component_ZendI18n/zipball/d90492e9771917392404ac0d53f09582d6462ec3", + "reference": "d90492e9771917392404ac0d53f09582d6462ec3", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-cache": "self.version", + "zendframework/zend-config": "self.version", + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-validator": "self.version", + "zendframework/zend-view": "self.version" + }, "suggest": { "ext-intl": "Required for most features of Zend\\I18n; included in default builds of PHP", + "zendframework/zend-cache": "Zend\\Cache component", + "zendframework/zend-config": "Zend\\Config component", "zendframework/zend-eventmanager": "You should install this package to use the events in the translator", "zendframework/zend-filter": "You should install this package to use the provided filters", "zendframework/zend-resources": "Translation resources", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", "zendframework/zend-validator": "You should install this package to use the provided validators", "zendframework/zend-view": "You should install this package to use the provided view helpers" }, @@ -1771,29 +1824,32 @@ "i18n", "zf2" ], - "time": "2014-01-04 13:00:19" + "time": "2014-03-14 16:21:23" }, { "name": "zendframework/zend-inputfilter", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/InputFilter", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendInputFilter.git", - "reference": "b6825ee38a013dd0f19da770d96c020489a19bff" + "reference": "34a778412b77828830489e2d7c9efab44bbcedea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendInputFilter/zipball/b6825ee38a013dd0f19da770d96c020489a19bff", - "reference": "b6825ee38a013dd0f19da770d96c020489a19bff", + "url": "https://api.github.com/repos/zendframework/Component_ZendInputFilter/zipball/34a778412b77828830489e2d7c9efab44bbcedea", + "reference": "34a778412b77828830489e2d7c9efab44bbcedea", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-filter": "self.version", "zendframework/zend-stdlib": "self.version", "zendframework/zend-validator": "self.version" }, + "require-dev": { + "zendframework/zend-servicemanager": "self.version" + }, "suggest": { "zendframework/zend-servicemanager": "To support plugin manager support" }, @@ -1817,28 +1873,33 @@ "inputfilter", "zf2" ], - "time": "2014-03-04 15:00:12" + "time": "2014-03-14 16:21:25" }, { "name": "zendframework/zend-json", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Json", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendJson.git", - "reference": "dd8a8239a7c08c7449a6ea219da3e2369bd90d92" + "reference": "eedf099fb5cfc0a5735ee4e3a2fbed9fadedca6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendJson/zipball/dd8a8239a7c08c7449a6ea219da3e2369bd90d92", - "reference": "dd8a8239a7c08c7449a6ea219da3e2369bd90d92", + "url": "https://api.github.com/repos/zendframework/Component_ZendJson/zipball/eedf099fb5cfc0a5735ee4e3a2fbed9fadedca6e", + "reference": "eedf099fb5cfc0a5735ee4e3a2fbed9fadedca6e", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-http": "self.version", + "zendframework/zend-server": "self.version" + }, "suggest": { + "zendframework/zend-http": "Zend\\Http component", "zendframework/zend-server": "Zend\\Server component" }, "type": "library", @@ -1862,27 +1923,33 @@ "json", "zf2" ], - "time": "2014-03-06 18:00:05" + "time": "2014-03-12 17:04:14" }, { "name": "zendframework/zend-ldap", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Ldap", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendLdap.git", - "reference": "62d38b5e72ab4c528a40254112c8f47bb4864546" + "reference": "348cee27fa952bdfbb186727355f5b29cf7bec6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendLdap/zipball/62d38b5e72ab4c528a40254112c8f47bb4864546", - "reference": "62d38b5e72ab4c528a40254112c8f47bb4864546", + "url": "https://api.github.com/repos/zendframework/Component_ZendLdap/zipball/348cee27fa952bdfbb186727355f5b29cf7bec6d", + "reference": "348cee27fa952bdfbb186727355f5b29cf7bec6d", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-eventmanager": "self.version" + }, + "suggest": { + "zendframework/zend-eventmanager": "Zend\\EventManager component" + }, "type": "library", "extra": { "branch-alias": { @@ -1904,25 +1971,25 @@ "ldap", "zf2" ], - "time": "2014-01-04 13:00:21" + "time": "2014-03-14 16:21:28" }, { "name": "zendframework/zend-loader", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Loader", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendLoader.git", - "reference": "27a9f770630839e36cd5705f3661b5ef9abf8793" + "reference": "517f39de5c547d438556e86c270b384c9dee5b18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendLoader/zipball/27a9f770630839e36cd5705f3661b5ef9abf8793", - "reference": "27a9f770630839e36cd5705f3661b5ef9abf8793", + "url": "https://api.github.com/repos/zendframework/Component_ZendLoader/zipball/517f39de5c547d438556e86c270b384c9dee5b18", + "reference": "517f39de5c547d438556e86c270b384c9dee5b18", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23" }, "type": "library", "extra": { @@ -1944,30 +2011,38 @@ "loader", "zf2" ], - "time": "2014-03-06 18:00:07" + "time": "2014-03-14 16:21:32" }, { "name": "zendframework/zend-log", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Log", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendLog.git", - "reference": "e419a2d9b9c89a6dd2009b1cfe86de4da65cc7b0" + "reference": "a7fe7d3a171d9d60397452eb80a93a1f450e409a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendLog/zipball/e419a2d9b9c89a6dd2009b1cfe86de4da65cc7b0", - "reference": "e419a2d9b9c89a6dd2009b1cfe86de4da65cc7b0", + "url": "https://api.github.com/repos/zendframework/Component_ZendLog/zipball/a7fe7d3a171d9d60397452eb80a93a1f450e409a", + "reference": "a7fe7d3a171d9d60397452eb80a93a1f450e409a", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-console": "self.version", + "zendframework/zend-db": "self.version", + "zendframework/zend-escaper": "self.version", + "zendframework/zend-mail": "self.version", + "zendframework/zend-validator": "self.version" + }, "suggest": { "ext-mongo": "*", + "zendframework/zend-console": "Zend\\Console component", "zendframework/zend-db": "Zend\\Db component", "zendframework/zend-escaper": "Zend\\Escaper component, for use in the XML formatter", "zendframework/zend-mail": "Zend\\Mail component", @@ -1995,30 +2070,34 @@ "logging", "zf2" ], - "time": "2014-03-04 15:00:10" + "time": "2014-03-14 16:21:36" }, { "name": "zendframework/zend-mail", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Mail", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendMail.git", - "reference": "80c8bccb70bad79b1a4f3f8b42a96bd90f065290" + "reference": "91373a2c7d3db5055467ac88f1981dea74cf3d34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendMail/zipball/80c8bccb70bad79b1a4f3f8b42a96bd90f065290", - "reference": "80c8bccb70bad79b1a4f3f8b42a96bd90f065290", + "url": "https://api.github.com/repos/zendframework/Component_ZendMail/zipball/91373a2c7d3db5055467ac88f1981dea74cf3d34", + "reference": "91373a2c7d3db5055467ac88f1981dea74cf3d34", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-crypt": "self.version", "zendframework/zend-loader": "self.version", "zendframework/zend-mime": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-validator": "self.version" + }, "suggest": { "zendframework/zend-servicemanager": "Zend\\ServiceManager component", "zendframework/zend-validator": "Zend\\Validator component" @@ -2044,25 +2123,25 @@ "mail", "zf2" ], - "time": "2014-01-02 19:00:03" + "time": "2014-03-14 16:21:39" }, { "name": "zendframework/zend-math", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Math", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendMath.git", - "reference": "b982ee2edafd4075b22372596ab2e2fdd0f6424e" + "reference": "156c107436b43c9bc8679adf6b7af08cf6bd10ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendMath/zipball/b982ee2edafd4075b22372596ab2e2fdd0f6424e", - "reference": "b982ee2edafd4075b22372596ab2e2fdd0f6424e", + "url": "https://api.github.com/repos/zendframework/Component_ZendMath/zipball/156c107436b43c9bc8679adf6b7af08cf6bd10ce", + "reference": "156c107436b43c9bc8679adf6b7af08cf6bd10ce", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23" }, "suggest": { "ext-bcmath": "If using the bcmath functionality", @@ -2090,27 +2169,33 @@ "math", "zf2" ], - "time": "2014-03-05 18:00:06" + "time": "2014-03-14 16:21:41" }, { "name": "zendframework/zend-mime", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Mime", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendMime.git", - "reference": "35ae58792d036828122a168f2e3fc5bd9f3f38c2" + "reference": "0b1827dfb281b718bcbcf9b3d13db13855983740" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendMime/zipball/35ae58792d036828122a168f2e3fc5bd9f3f38c2", - "reference": "35ae58792d036828122a168f2e3fc5bd9f3f38c2", + "url": "https://api.github.com/repos/zendframework/Component_ZendMime/zipball/0b1827dfb281b718bcbcf9b3d13db13855983740", + "reference": "0b1827dfb281b718bcbcf9b3d13db13855983740", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-mail": "self.version" + }, + "suggest": { + "zendframework/zend-mail": "Zend\\Mail component" + }, "type": "library", "extra": { "branch-alias": { @@ -2131,31 +2216,40 @@ "mime", "zf2" ], - "time": "2014-03-03 23:00:16" + "time": "2014-03-14 16:21:47" }, { "name": "zendframework/zend-modulemanager", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/ModuleManager", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendModuleManager.git", - "reference": "cae3f622f476428ddfaf7eb1a74e413b2faa7c9c" + "reference": "954012707a639eb91f32b89173f5c1c413623072" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendModuleManager/zipball/cae3f622f476428ddfaf7eb1a74e413b2faa7c9c", - "reference": "cae3f622f476428ddfaf7eb1a74e413b2faa7c9c", + "url": "https://api.github.com/repos/zendframework/Component_ZendModuleManager/zipball/954012707a639eb91f32b89173f5c1c413623072", + "reference": "954012707a639eb91f32b89173f5c1c413623072", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-config": "self.version", + "zendframework/zend-console": "self.version", + "zendframework/zend-loader": "self.version", + "zendframework/zend-mvc": "self.version", + "zendframework/zend-servicemanager": "self.version" + }, "suggest": { "zendframework/zend-config": "Zend\\Config component", + "zendframework/zend-console": "Zend\\Console component", "zendframework/zend-loader": "Zend\\Loader component", + "zendframework/zend-mvc": "Zend\\Mvc component", "zendframework/zend-servicemanager": "Zend\\ServiceManager component" }, "type": "library", @@ -2178,29 +2272,48 @@ "modulemanager", "zf2" ], - "time": "2014-01-02 18:00:23" + "time": "2014-03-12 17:04:28" }, { "name": "zendframework/zend-mvc", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Mvc", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendMvc.git", - "reference": "4e46a074b10c3eccae7b5a9ba14aa9b9e57c1635" + "reference": "9171841f8b2cdb914dba972878ec78b9885352d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendMvc/zipball/4e46a074b10c3eccae7b5a9ba14aa9b9e57c1635", - "reference": "4e46a074b10c3eccae7b5a9ba14aa9b9e57c1635", + "url": "https://api.github.com/repos/zendframework/Component_ZendMvc/zipball/9171841f8b2cdb914dba972878ec78b9885352d0", + "reference": "9171841f8b2cdb914dba972878ec78b9885352d0", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-authentication": "self.version", + "zendframework/zend-console": "self.version", + "zendframework/zend-di": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-form": "self.version", + "zendframework/zend-http": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-inputfilter": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-modulemanager": "self.version", + "zendframework/zend-serializer": "self.version", + "zendframework/zend-session": "self.version", + "zendframework/zend-text": "self.version", + "zendframework/zend-uri": "self.version", + "zendframework/zend-validator": "self.version", + "zendframework/zend-version": "self.version", + "zendframework/zend-view": "self.version" + }, "suggest": { "zendframework/zend-authentication": "Zend\\Authentication component for Identity plugin", "zendframework/zend-config": "Zend\\Config component", @@ -2211,6 +2324,7 @@ "zendframework/zend-http": "Zend\\Http component", "zendframework/zend-i18n": "Zend\\I18n component for translatable segments", "zendframework/zend-inputfilter": "Zend\\Inputfilter component", + "zendframework/zend-json": "Zend\\Json component", "zendframework/zend-modulemanager": "Zend\\ModuleManager component", "zendframework/zend-serializer": "Zend\\Serializer component", "zendframework/zend-session": "Zend\\Session component for FlashMessenger, PRG, and FPRG plugins", @@ -2218,6 +2332,7 @@ "zendframework/zend-text": "Zend\\Text component", "zendframework/zend-uri": "Zend\\Uri component", "zendframework/zend-validator": "Zend\\Validator component", + "zendframework/zend-version": "Zend\\Version component", "zendframework/zend-view": "Zend\\View component" }, "type": "library", @@ -2240,30 +2355,39 @@ "mvc", "zf2" ], - "time": "2014-03-04 00:00:04" + "time": "2014-03-12 17:04:30" }, { "name": "zendframework/zend-navigation", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Navigation", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendNavigation.git", - "reference": "e97819185f0fa07a2b42df2e2976f8c7e05e02de" + "reference": "cdd96824ec6e611d077950369827f605d2241db2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendNavigation/zipball/e97819185f0fa07a2b42df2e2976f8c7e05e02de", - "reference": "e97819185f0fa07a2b42df2e2976f8c7e05e02de", + "url": "https://api.github.com/repos/zendframework/Component_ZendNavigation/zipball/cdd96824ec6e611d077950369827f605d2241db2", + "reference": "cdd96824ec6e611d077950369827f605d2241db2", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-config": "self.version", + "zendframework/zend-mvc": "self.version", + "zendframework/zend-permissions-acl": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-view": "self.version" + }, "suggest": { "zendframework/zend-config": "Zend\\Config component", "zendframework/zend-mvc": "Zend\\Mvc component", + "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", "zendframework/zend-view": "Zend\\View component" }, "type": "library", @@ -2287,29 +2411,42 @@ "navigation", "zf2" ], - "time": "2014-01-02 18:00:24" + "time": "2014-03-14 16:21:49" }, { "name": "zendframework/zend-paginator", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Paginator", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendPaginator.git", - "reference": "7ff21d9e4ffd83c6f1d66f08c8ab5960883f3eb8" + "reference": "aec346c8de27300024c7b3b43b6a3e9bc0aeccb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendPaginator/zipball/7ff21d9e4ffd83c6f1d66f08c8ab5960883f3eb8", - "reference": "7ff21d9e4ffd83c6f1d66f08c8ab5960883f3eb8", + "url": "https://api.github.com/repos/zendframework/Component_ZendPaginator/zipball/aec346c8de27300024c7b3b43b6a3e9bc0aeccb0", + "reference": "aec346c8de27300024c7b3b43b6a3e9bc0aeccb0", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-cache": "self.version", + "zendframework/zend-db": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-view": "self.version" + }, "suggest": { - "zendframework/zend-cache": "To support cache feature" + "zendframework/zend-cache": "Zend\\Cache component to support cache features", + "zendframework/zend-db": "Zend\\Db component", + "zendframework/zend-filter": "Zend\\Filter component", + "zendframework/zend-json": "Zend\\Json component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", + "zendframework/zend-view": "Zend\\View component" }, "type": "library", "extra": { @@ -2331,7 +2468,7 @@ "paginator", "zf2" ], - "time": "2014-01-04 13:00:24" + "time": "2014-03-14 16:21:52" }, { "name": "zendframework/zend-permissions-acl", @@ -2376,25 +2513,28 @@ }, { "name": "zendframework/zend-serializer", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Serializer", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendSerializer.git", - "reference": "d76b931d3ffa842a496c9fa319bbe285b5ddfade" + "reference": "e858221feb705396b47b60123661df3e9fb9e1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendSerializer/zipball/d76b931d3ffa842a496c9fa319bbe285b5ddfade", - "reference": "d76b931d3ffa842a496c9fa319bbe285b5ddfade", + "url": "https://api.github.com/repos/zendframework/Component_ZendSerializer/zipball/e858221feb705396b47b60123661df3e9fb9e1d4", + "reference": "e858221feb705396b47b60123661df3e9fb9e1d4", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-json": "self.version", "zendframework/zend-math": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-servicemanager": "self.version" + }, "suggest": { "zendframework/zend-servicemanager": "To support plugin manager support" }, @@ -2419,25 +2559,28 @@ "serializer", "zf2" ], - "time": "2014-01-02 18:00:26" + "time": "2014-03-14 16:22:09" }, { "name": "zendframework/zend-servicemanager", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/ServiceManager", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendServiceManager.git", - "reference": "de182a20dfdcf978c49570514103c7477ef16e4f" + "reference": "310187f89fe830ed4484499f78338631f29d25c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendServiceManager/zipball/de182a20dfdcf978c49570514103c7477ef16e4f", - "reference": "de182a20dfdcf978c49570514103c7477ef16e4f", + "url": "https://api.github.com/repos/zendframework/Component_ZendServiceManager/zipball/310187f89fe830ed4484499f78338631f29d25c7", + "reference": "310187f89fe830ed4484499f78338631f29d25c7", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23" + }, + "require-dev": { + "zendframework/zend-di": "self.version" }, "suggest": { "zendframework/zend-di": "Zend\\Di component" @@ -2462,29 +2605,40 @@ "servicemanager", "zf2" ], - "time": "2014-03-03 21:00:04" + "time": "2014-03-14 16:22:14" }, { "name": "zendframework/zend-session", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Session", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendSession.git", - "reference": "39fbad1f3b72f9ba86a218bc7b6e04dc72d800bf" + "reference": "6a1866b3ef74e4db2008adb5b3d7e2cb2e618d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendSession/zipball/39fbad1f3b72f9ba86a218bc7b6e04dc72d800bf", - "reference": "39fbad1f3b72f9ba86a218bc7b6e04dc72d800bf", + "url": "https://api.github.com/repos/zendframework/Component_ZendSession/zipball/6a1866b3ef74e4db2008adb5b3d7e2cb2e618d3b", + "reference": "6a1866b3ef74e4db2008adb5b3d7e2cb2e618d3b", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-cache": "self.version", + "zendframework/zend-db": "self.version", + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-http": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-validator": "self.version" + }, "suggest": { + "zendframework/zend-cache": "Zend\\Cache component", + "zendframework/zend-db": "Zend\\Db component", "zendframework/zend-eventmanager": "Zend\\EventManager component", + "zendframework/zend-http": "Zend\\Http component", "zendframework/zend-servicemanager": "Zend\\ServiceManager component", "zendframework/zend-validator": "Zend\\Validator component" }, @@ -2509,28 +2663,34 @@ "session", "zf2" ], - "time": "2014-01-04 13:00:26" + "time": "2014-03-14 16:22:16" }, { "name": "zendframework/zend-stdlib", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Stdlib", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendStdlib.git", - "reference": "e646729f2274f4552b6a92e38d8e458efe08ebc5" + "reference": "d1c481b8a43f2f079b16d3567960ba539e9dacaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/e646729f2274f4552b6a92e38d8e458efe08ebc5", - "reference": "e646729f2274f4552b6a92e38d8e458efe08ebc5", + "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/d1c481b8a43f2f079b16d3567960ba539e9dacaa", + "reference": "d1c481b8a43f2f079b16d3567960ba539e9dacaa", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23" + }, + "require-dev": { + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-serializer": "self.version", + "zendframework/zend-servicemanager": "self.version" }, "suggest": { "zendframework/zend-eventmanager": "To support aggregate hydrator usage", + "zendframework/zend-serializer": "Zend\\Serializer component", "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" }, "type": "library", @@ -2553,25 +2713,25 @@ "stdlib", "zf2" ], - "time": "2014-01-04 13:00:28" + "time": "2014-03-14 16:22:22" }, { "name": "zendframework/zend-uri", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Uri", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendUri.git", - "reference": "34bedeea8e58aab8c047df1bbe71a39949ad3813" + "reference": "83e617b6273625eeb771c8fb3e886a728fd9dfa4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendUri/zipball/34bedeea8e58aab8c047df1bbe71a39949ad3813", - "reference": "34bedeea8e58aab8c047df1bbe71a39949ad3813", + "url": "https://api.github.com/repos/zendframework/Component_ZendUri/zipball/83e617b6273625eeb771c8fb3e886a728fd9dfa4", + "reference": "83e617b6273625eeb771c8fb3e886a728fd9dfa4", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-escaper": "self.version", "zendframework/zend-validator": "self.version" }, @@ -2596,32 +2756,35 @@ "uri", "zf2" ], - "time": "2014-03-04 08:00:05" + "time": "2014-03-14 16:22:34" }, { "name": "zendframework/zend-validator", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Validator", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendValidator.git", - "reference": "45ba4e595ec15f4b80b04a04db2feb7e22bfda32" + "reference": "1d4526a1f7db36d725a3a526d8951c1a6d0d69b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendValidator/zipball/45ba4e595ec15f4b80b04a04db2feb7e22bfda32", - "reference": "45ba4e595ec15f4b80b04a04db2feb7e22bfda32", + "url": "https://api.github.com/repos/zendframework/Component_ZendValidator/zipball/1d4526a1f7db36d725a3a526d8951c1a6d0d69b3", + "reference": "1d4526a1f7db36d725a3a526d8951c1a6d0d69b3", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, "require-dev": { + "zendframework/zend-db": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-i18n": "self.version", "zendframework/zend-math": "self.version", - "zendframework/zend-servicemanager": "self.version" + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-session": "self.version", + "zendframework/zend-uri": "self.version" }, "suggest": { "zendframework/zend-db": "Zend\\Db component", @@ -2630,6 +2793,7 @@ "zendframework/zend-math": "Zend\\Math component", "zendframework/zend-resources": "Translations of validator messages", "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", + "zendframework/zend-session": "Zend\\Session component", "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" }, "type": "library", @@ -2653,25 +2817,26 @@ "validator", "zf2" ], - "time": "2014-03-03 23:00:13" + "time": "2014-03-14 16:22:37" }, { "name": "zendframework/zend-version", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Version", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendVersion.git", - "reference": "b214e6a0d5f8c76b3c31017fd69105bcc11af418" + "reference": "3c399cc44790e52234a4966e1b5a82af978549e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendVersion/zipball/b214e6a0d5f8c76b3c31017fd69105bcc11af418", - "reference": "b214e6a0d5f8c76b3c31017fd69105bcc11af418", + "url": "https://api.github.com/repos/zendframework/Component_ZendVersion/zipball/3c399cc44790e52234a4966e1b5a82af978549e7", + "reference": "3c399cc44790e52234a4966e1b5a82af978549e7", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.23", + "zendframework/zend-json": "self.version" }, "suggest": { "zendframework/zend-json": "To check latest version hosted in GitHub" @@ -2696,32 +2861,58 @@ "version", "zf2" ], - "time": "2014-03-06 18:00:08" + "time": "2014-03-12 17:04:32" }, { "name": "zendframework/zend-view", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/View", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendView.git", - "reference": "3d5977f5e253c830e2b7291e5fece5baed951fd9" + "reference": "470468485d3dda6db131905f4e3fcce8f6361ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendView/zipball/3d5977f5e253c830e2b7291e5fece5baed951fd9", - "reference": "3d5977f5e253c830e2b7291e5fece5baed951fd9", + "url": "https://api.github.com/repos/zendframework/Component_ZendView/zipball/470468485d3dda6db131905f4e3fcce8f6361ac1", + "reference": "470468485d3dda6db131905f4e3fcce8f6361ac1", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-loader": "self.version", "zendframework/zend-stdlib": "self.version" }, + "require-dev": { + "zendframework/zend-authentication": "self.version", + "zendframework/zend-escaper": "self.version", + "zendframework/zend-feed": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-http": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-mvc": "self.version", + "zendframework/zend-navigation": "self.version", + "zendframework/zend-paginator": "self.version", + "zendframework/zend-permissions-acl": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-uri": "self.version" + }, "suggest": { + "zendframework/zend-authentication": "Zend\\Authentication component", + "zendframework/zend-escaper": "Zend\\Escaper component", + "zendframework/zend-feed": "Zend\\Feed component", "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-servicemanager": "2.2.6" + "zendframework/zend-http": "Zend\\Http component", + "zendframework/zend-i18n": "Zend\\I18n component", + "zendframework/zend-json": "Zend\\Json component", + "zendframework/zend-mvc": "Zend\\Mvc component", + "zendframework/zend-navigation": "Zend\\Navigation component", + "zendframework/zend-paginator": "Zend\\Paginator component", + "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", + "zendframework/zend-uri": "Zend\\Uri component" }, "type": "library", "extra": { @@ -2744,7 +2935,7 @@ "view", "zf2" ], - "time": "2014-01-04 13:00:31" + "time": "2014-03-14 16:22:39" }, { "name": "zf-commons/zfc-base", @@ -3328,22 +3519,21 @@ }, { "name": "zendframework/zend-dom", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Dom", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendDom.git", - "reference": "cc21e09cf61264a554b7c118e0891054def51201" + "reference": "91b6afe87aeb8a67e4294e82d453e0b00c98552e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendDom/zipball/cc21e09cf61264a554b7c118e0891054def51201", - "reference": "cc21e09cf61264a554b7c118e0891054def51201", + "url": "https://api.github.com/repos/zendframework/Component_ZendDom/zipball/91b6afe87aeb8a67e4294e82d453e0b00c98552e", + "reference": "91b6afe87aeb8a67e4294e82d453e0b00c98552e", "shasum": "" }, "require": { - "php": ">=5.3.3", - "zendframework/zend-stdlib": "self.version" + "php": ">=5.3.23" }, "type": "library", "extra": { @@ -3366,25 +3556,25 @@ "dom", "zf2" ], - "time": "2014-01-02 18:00:13" + "time": "2014-03-14 16:20:59" }, { "name": "zendframework/zend-test", - "version": "2.2.6", + "version": "2.3.0", "target-dir": "Zend/Test", "source": { "type": "git", "url": "https://github.com/zendframework/Component_ZendTest.git", - "reference": "29f184943bed4f822130f470c8e19fea0830916d" + "reference": "46ef619ba9858e3431ecb3e718980afea3cc4d55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/Component_ZendTest/zipball/29f184943bed4f822130f470c8e19fea0830916d", - "reference": "29f184943bed4f822130f470c8e19fea0830916d", + "url": "https://api.github.com/repos/zendframework/Component_ZendTest/zipball/46ef619ba9858e3431ecb3e718980afea3cc4d55", + "reference": "46ef619ba9858e3431ecb3e718980afea3cc4d55", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.23", "phpunit/phpunit": "3.7.*", "zendframework/zend-console": "self.version", "zendframework/zend-dom": "self.version", @@ -3396,6 +3586,12 @@ "zendframework/zend-uri": "self.version", "zendframework/zend-view": "self.version" }, + "require-dev": { + "zendframework/zend-console": "self.version" + }, + "suggest": { + "zendframework/zend-console": "Zend\\Console component" + }, "type": "library", "extra": { "branch-alias": { @@ -3416,7 +3612,7 @@ "test", "zf2" ], - "time": "2014-03-04 09:00:04" + "time": "2014-03-14 16:22:30" } ], "aliases": [ diff --git a/module/Application/config/volume_horaire.config.php b/module/Application/config/volume_horaire.config.php index 94d2259ee76a3b561d25f2e2fbffb6fa5a08f456..9cf00ed9ad30359cf51936cf2fda07b6129d3302 100644 --- a/module/Application/config/volume_horaire.config.php +++ b/module/Application/config/volume_horaire.config.php @@ -93,11 +93,9 @@ return array( ) ), 'view_helpers' => array( - 'factories' => array( - 'volumeHoraireListe' => 'Application\View\Helper\VolumeHoraire\ListeFactory', - ), 'invokables' => array( 'volumeHoraireDl' => 'Application\View\Helper\VolumeHoraire\Dl', + 'volumeHoraireListe' => 'Application\View\Helper\VolumeHoraire\Liste', 'volumeHoraireLigne' => 'Application\View\Helper\VolumeHoraire\Ligne', ), ), diff --git a/module/Application/src/Application/Controller/ServiceController.php b/module/Application/src/Application/Controller/ServiceController.php index 1f7ec20c7be0c309a85167b53a6453da66773084..8ce0687ce6b392f844cfb536a9dce1959574ad42 100644 --- a/module/Application/src/Application/Controller/ServiceController.php +++ b/module/Application/src/Application/Controller/ServiceController.php @@ -7,6 +7,7 @@ use Common\Exception\RuntimeException; use Common\Exception\LogicException; use Application\Form\Service\Saisie; use Application\Entity\Db\Service; +use Application\Exception\DbException; /** @@ -49,22 +50,39 @@ class ServiceController extends AbstractActionController return compact('service'); } + public function voirLigneAction() + { + $id = (int)$this->params()->fromRoute('id',0); + $details = 1 == (int)$this->params()->fromQuery('details',0); + $onlyContent = 1 == (int)$this->params()->fromQuery('only-content',0); + $service = $this->getServiceService(); + $entity = $service->getRepo()->find($id); + $context = $service->getGlobalContext(); + $details = false; + + return compact('entity', 'context', 'details', 'onlyContent'); + } + public function suppressionAction() { $id = (int)$this->params()->fromRoute('id',0); $service = $this->getServiceService(); $entity = $service->getRepo()->find($id); - $entity->setHistoDestruction(new \DateTime); - $this->em()->flush(); + $errors = array(); - //$url = $this->url()->fromRoute('service/default', array('action' => 'index')); - //return $this->redirect()->toUrl($url); + try{ + $entity->setHistoDestruction(new \DateTime); + $this->em()->flush(); + }catch(\Exception $e){ + $e = DbException::translate($e); + $errors[] = $e->getMessage(); + } $terminal = $this->getRequest()->isXmlHttpRequest(); $viewModel = new \Zend\View\Model\ViewModel(); $viewModel ->setTemplate('application/service/suppression') - ->setVariables(compact('form', 'context','errors')); + ->setVariables(compact('entity', 'context','errors')); if ($terminal) { return $this->modalInnerViewModel($viewModel, "Suppression de service", false); } @@ -84,7 +102,9 @@ class ServiceController extends AbstractActionController /* Initialisation des valeurs */ $entity = $service->getRepo()->find($id); /* @var $entity \Application\Entity\Db\Service */ - + + $form->get('id')->setValue( $entity->getId() ); + if (! isset($context['intervenant'])){ $form->get('intervenant')->setValue(array( 'id' => $entity->getIntervenant()->getId(), @@ -92,9 +112,9 @@ class ServiceController extends AbstractActionController )); } if ($entity->getElementPedagogique()){ - $form->get('elementPedagogique')->setValue(array( + $form->get('elementPedagogique')->get('element')->setValue(array( 'id' => $entity->getElementPedagogique()->getId(), - 'label' => $entity->getElementPedagogique()->getLibelle() + //'label' => $entity->getElementPedagogique()->getLibelle() )); } $form->get('etablissement')->setValue(array( @@ -109,7 +129,7 @@ class ServiceController extends AbstractActionController if (null == $post->etablissement['id']){ $post->etablissement = array( 'id' => $context['etablissement']->getId(), 'label' => (string)$context['etablissement'] ); }elseif( (int)$post->etablissement['id'] != $context['etablissement']->getId() ){ - $post->elementPedagogique = ''; // pas d'élément si un autre établissement a été sélectionné + $post->elementPedagogique['element'] = ''; // pas d'élément si un autre établissement a été sélectionné } $form->setData($post); @@ -128,8 +148,8 @@ class ServiceController extends AbstractActionController if (isset($context['elementPedagogique'])){ $elementPedagogique = $context['elementPedagogique']; - }elseif(isset($post->elementPedagogique['id']) && 0 != (int)$post->elementPedagogique['id']){ - $elementPedagogique = $this->em()->getRepository('Application\\Entity\\Db\\ElementPedagogique')->find($post->elementPedagogique['id']); + }elseif(isset($post->elementPedagogique['element']['id']) && 0 != (int)$post->elementPedagogique['element']['id']){ + $elementPedagogique = $this->em()->getRepository('Application\\Entity\\Db\\ElementPedagogique')->find($post->elementPedagogique['element']['id']); }else{ $elementPedagogique = null; } @@ -149,8 +169,14 @@ class ServiceController extends AbstractActionController $entity->setElementPedagogique( $elementPedagogique ); $entity->setEtablissement( $etablissement ); - $this->em()->persist($entity); - $this->em()->flush(); + try{ + $this->em()->persist($entity); + $this->em()->flush(); + $form->get('id')->setValue( $entity->getId() ); // transmet le nouvel ID + }catch(\Exception $e){ + $e = DbException::translate($e); + $errors[] = $e->getMessage(); + } }else{ $errors[] = 'La validation du formulaire a échoué. L\'enregistrement des données n\'a donc pas été fait.'; } diff --git a/module/Application/src/Application/Exception/DbException.php b/module/Application/src/Application/Exception/DbException.php new file mode 100644 index 0000000000000000000000000000000000000000..c42d6265208a56350149681966481ffc25233620 --- /dev/null +++ b/module/Application/src/Application/Exception/DbException.php @@ -0,0 +1,59 @@ +<?php + +namespace Application\Exception; + +use Common\Exception\RuntimeException; + +/** + * + * + * @author Laurent Lécluse <laurent.lecluse at unicaen.fr> + */ +class DbException extends RuntimeException { + + /** + * Errors + * + * @var array + */ + protected static $messages = array( + 'unique constraint (OSE.SERVICE__UN) violated' => + 'Vous ne pouvez pas enregistrer ce service car il en existe déjà un de similaire.', + + ); + + + + /** + * Se charge de traduire les exceptions en provanance de la base de données + * + * @param \Exception $exception + * @param string $tableName + * + * @return self + */ + public static function translate(\Exception $exception) + { + if (! $exception->getPrevious() instanceof \Doctrine\DBAL\Driver\OCI8\OCI8Exception){ + // Non gérée donc on retourne l'original' + return $exception; + } + + $msg = $exception->getPrevious()->getMessage(); + + foreach( self::$messages as $key => $newMsg ){ + if (false !== strpos( $msg, $key)){ + $msg = $newMsg; + break; + } + } + + if (false !== strpos($msg, '20101')){ // erreur décrite manuellement dans Oracle (depuis un trigger par exemple) + $msg = substr( $msg, 0, strpos($msg, "\n")); // Chaque erreur comporte 3 lignes. On ne récupère que la première + $msg = str_replace( 'ORA-20101: ', '', $msg ); // On retire le code erreur (20101 par convention pour les erreurs perso OSE) + } + + return new self($msg, 0, $exception); + } + +} \ No newline at end of file diff --git a/module/Application/src/Application/Form/OffreFormation/ElementPedagogiqueRechercheFieldset.php b/module/Application/src/Application/Form/OffreFormation/ElementPedagogiqueRechercheFieldset.php index 91c4d1b9f0ba87110820161819ecb400284dc74c..962293c47357e60ab8c1853365dcf95af507759f 100644 --- a/module/Application/src/Application/Form/OffreFormation/ElementPedagogiqueRechercheFieldset.php +++ b/module/Application/src/Application/Form/OffreFormation/ElementPedagogiqueRechercheFieldset.php @@ -9,7 +9,7 @@ use Zend\Form\Fieldset; * * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr> */ -class ElementPedagogiqueRechercheFieldset extends Fieldset implements \Zend\Form\ElementPrepareAwareInterface +class ElementPedagogiqueRechercheFieldset extends Fieldset implements \Zend\InputFilter\InputFilterProviderInterface { public function __construct($name = null, $options = array()) { @@ -198,4 +198,28 @@ class ElementPedagogiqueRechercheFieldset extends Fieldset implements \Zend\Form $this->structures = $structures; return $this; } + + /** + * Should return an array specification compatible with + * {@link Zend\InputFilter\Factory::createInputFilter()}. + * + * @return array + */ + public function getInputFilterSpecification(){ + return array( + 'structure' => array( + 'required' => false + ), + 'niveau' => array( + 'required' => false + ), + 'etape' => array( + 'required' => false + ), + 'element' => array( + 'required' => false + ) + ); + } + } \ No newline at end of file diff --git a/module/Application/src/Application/Form/Service/Saisie.php b/module/Application/src/Application/Form/Service/Saisie.php index 0774ea12a960cf5b7646ffa995d992d01f17ae0c..97d864ce953af3c064c45b5185889b368645a90f 100644 --- a/module/Application/src/Application/Form/Service/Saisie.php +++ b/module/Application/src/Application/Form/Service/Saisie.php @@ -15,7 +15,7 @@ use Zend\Mvc\Controller\Plugin\Url; * * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> */ -class Saisie extends Form +class Saisie extends Form implements \Zend\InputFilter\InputFilterProviderInterface { public function __construct( Url $url, array $context=array() ) @@ -43,13 +43,41 @@ class Saisie extends Form $this->add($intervenant); } - $elementPedagogique = new SearchAndSelect('elementPedagogique'); + $interneExterne = new \Zend\Form\Element\Radio; + $interneExterne->setLabel('Service effectué : '); + $interneExterne->setName('interne-externe'); + $interneExterne->setValueOptions(array( + 'service-interne' => 'en interne', + 'service-externe' => 'dans un autre établissement', + )); + $this->add($interneExterne); + + /*$elementPedagogique = new SearchAndSelect('elementPedagogique'); $elementPedagogique->setLabel("Elément pédagogique :") ->setAttributes(array('title' => "Saisissez 2 lettres au moins")) ->setAutocompleteSource( $url->fromRoute('of/default', array('action' => 'search-element') ) ); - $this->add($elementPedagogique); + $this->add($elementPedagogique);*/ + + $queryTemplate = array('structure' => '__structure__', 'niveau' => '__niveau__', 'etape' => '__etape__'); + $urlStructures = $url->fromRoute('of/default', array('action' => 'search-structures'), array('query' => $queryTemplate)); + $urlNiveaux = $url->fromRoute('of/default', array('action' => 'search-niveaux'), array('query' => $queryTemplate)); + $urlEtapes = $url->fromRoute('of/default', array('action' => 'search-etapes'), array('query' => $queryTemplate)); + $urlElements = $url->fromRoute('of/default', array('action' => 'search-element'), array('query' => $queryTemplate)); + + $fs = new \Application\Form\OffreFormation\ElementPedagogiqueRechercheFieldset('elementPedagogique'); + $fs + ->setStructuresSourceUrl($urlStructures) + ->setNiveauxSourceUrl($urlNiveaux) + ->setEtapesSourceUrl($urlEtapes) + ->setElementsSourceUrl($urlElements) + ->setStructureEnabled(false) +// ->setNiveauEnabled(false) + ->setEtapeEnabled(false) + ; +// $fs->get('element')->setName('elementPedagogique'); + $this->add($fs); $etablissement = new SearchAndSelect('etablissement'); $etablissement ->setRequired(true) @@ -95,4 +123,18 @@ class Saisie extends Form { return parent::bind($object, $flags); } + + /** + * Should return an array specification compatible with + * {@link Zend\InputFilter\Factory::createInputFilter()}. + * + * @return array + */ + public function getInputFilterSpecification(){ + return array( + 'interne-externe' => array( + 'required' => false + ) + ); + } } \ No newline at end of file diff --git a/module/Application/src/Application/Service/AbstractService.php b/module/Application/src/Application/Service/AbstractService.php index a513d74fc9eb1b718e6095abb14148deed70f0ad..015be1e700815b8e353055f334fe8ece70b18aa2 100644 --- a/module/Application/src/Application/Service/AbstractService.php +++ b/module/Application/src/Application/Service/AbstractService.php @@ -5,6 +5,7 @@ namespace Application\Service; use Doctrine\ORM\EntityManager; use Zend\ServiceManager\ServiceLocatorInterface; use Zend\ServiceManager\ServiceLocatorAwareInterface; +use Zend\ServiceManager\ServiceLocatorAwareTrait; /** * Service abstrait @@ -15,10 +16,7 @@ use Zend\ServiceManager\ServiceLocatorAwareInterface; */ class AbstractService implements ServiceLocatorAwareInterface { - /** - * @var ServiceLocatorInterface - */ - protected $serviceLocator; + use ServiceLocatorAwareTrait; /** * @var EntityManager @@ -40,27 +38,4 @@ class AbstractService implements ServiceLocatorAwareInterface { $this->entityManager = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default'); return $this->entityManager; } - - /** - * Get service locator - * - * @return ServiceLocator - */ - public function getServiceLocator() - { - return $this->serviceLocator; - } - - /** - * Set service locator - * - * @param ServiceLocatorInterface $serviceLocator - * @return self - */ - public function setServiceLocator(ServiceLocatorInterface $serviceLocator) - { - $this->serviceLocator = $serviceLocator; - return $this; - } - } \ No newline at end of file diff --git a/module/Application/src/Application/Service/Service.php b/module/Application/src/Application/Service/Service.php index 4739cfe9dd726fbb1d891c1a4f6808e5a5abc03d..be3a4844b860f30851bc9f86247daaa1c68d79e7 100644 --- a/module/Application/src/Application/Service/Service.php +++ b/module/Application/src/Application/Service/Service.php @@ -7,6 +7,7 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; use Application\Entity\Db\Intervenant; use Application\Entity\Db\Annee; +use Application\Entity\Db\Service as ServiceEntity; /** @@ -75,4 +76,34 @@ class Service extends AbstractService } return $this->repo; } + + /** + * Retourne, par ID du type d'intervention, la liste des heures saisies pour le service donné + * + * @param integer|ServiceEntity|null $service + * @return array + */ + public function getTotalHeures($service) + { + if ($service instanceof ServiceEntity) $service = $service->getId(); + + $sql = 'SELECT * FROM V_SERVICE_HEURES'; + if ($service) $sql .= ' WHERE service_id = '.(int)$service; + + $stmt = $this->getEntityManager()->getConnection()->executeQuery($sql); + + $result = array(); + while($r = $stmt->fetch()){ + $result[(int)$r['SERVICE_ID']][(int)$r['TYPE_INTERVENTION_ID']] = (float)$r['HEURES']; + } + + if ($service){ + if (array_key_exists( $service, $result)){ + return $result[$service]; + }else{ + return array(); + } + } + return $result; + } } \ No newline at end of file diff --git a/module/Application/src/Application/Service/TypeIntervention.php b/module/Application/src/Application/Service/TypeIntervention.php index 0950e7c3228eea4d67829ac43878c1cd147b427d..a6948699338cc0aa879d9b7cf46b464904a739e8 100644 --- a/module/Application/src/Application/Service/TypeIntervention.php +++ b/module/Application/src/Application/Service/TypeIntervention.php @@ -5,7 +5,7 @@ namespace Application\Service; use Application\Service\AbstractService; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; - +use Application\Entity\Db\TypeIntervention as Entity; /** * Description of TypeIntervention @@ -22,6 +22,12 @@ class TypeIntervention extends AbstractService */ protected $repo; + /** + * Liste des types d'intervention + * + * @var Entity[] + */ + protected $typesIntervention; @@ -53,4 +59,22 @@ class TypeIntervention extends AbstractService } return $this->repo; } + + /** + * Liste des types d'intervention + * + * @return Entity[] + */ + public function getTypesIntervention() + { + if (! $this->typesIntervention){ + $til = $this->finderByAll()->getQuery()->execute(); + + $this->typesIntervention = array(); + foreach( $til as $ti ){ + $this->typesIntervention[$ti->getId()] = $ti; + } + } + return $this->typesIntervention; + } } \ No newline at end of file diff --git a/module/Application/src/Application/View/Helper/Service/Ligne.php b/module/Application/src/Application/View/Helper/Service/Ligne.php index 02a7b49f573ec502e16f6e47a9336f040cfa0aa8..9e3576efc2820815f645f790240a8f67ff8d9df4 100644 --- a/module/Application/src/Application/View/Helper/Service/Ligne.php +++ b/module/Application/src/Application/View/Helper/Service/Ligne.php @@ -4,15 +4,19 @@ namespace Application\View\Helper\Service; use Zend\View\Helper\AbstractHelper; use Application\Entity\Db\Service; +use Zend\ServiceManager\ServiceLocatorAwareInterface; +use Zend\ServiceManager\ServiceLocatorAwareTrait; /** * Aide de vue permettant d'afficher une ligne de service * * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> */ -class Ligne extends AbstractHelper +class Ligne extends AbstractHelper implements ServiceLocatorAwareInterface { + use ServiceLocatorAwareTrait; + /** * @var Service */ @@ -55,12 +59,16 @@ class Ligne extends AbstractHelper /** * Génère le code HTML. * + * @param boolean $details * @return string */ - protected function render(){ - $out = '<tr>'; + public function render( $details=false ){ + $typesIntervention = $this->getServiceLocator()->getServiceLocator()->get('ApplicationTypeIntervention')->getTypesIntervention(); + $heures = $this->getServiceLocator()->getServiceLocator()->get('ApplicationService')->getTotalHeures($this->service); + + $sid = $this->service->getId(); - $out .= '<td>'.$this->renderId($this->service->getId())."</td>\n"; + $out = ''; if (empty($this->context['intervenant'])){ $out .= '<td>'.$this->service->getIntervenant()->getNomComplet(true); $out .= $this->renderStructure( $this->service->getStructureAff() )."</td>\n"; @@ -74,17 +82,13 @@ class Ligne extends AbstractHelper if (empty($this->context['annee'])){ $out .= '<td>'.$this->renderAnnee( $this->service->getAnnee() )."</td>\n"; } + foreach( $typesIntervention as $ti ){ + $out .= $this->renderTypeIntervention( $ti, $heures ); + } + $out .= $this->renderModifier(); $out .= $this->renderSupprimer(); - $out .= $this->renderDetails(); - - $out .= '</tr>'; - return $out; - } - - protected function renderId($id) - { - $out = '<a href="#">N° <span class="badge">'.(string)$id.'</span></a>'."\n"; + $out .= $this->renderDetails( $details ); return $out; } @@ -93,7 +97,8 @@ class Ligne extends AbstractHelper if (! $structure) return ''; $url = $this->getView()->url('structure/default', array('action' => 'voir', 'id' => $structure->getId())); - $out = '<a href="'.$url.'" class="modal-action">'.$structure->getLibelleCourt().'</a>'; + $pourl = $this->getView()->url('structure/default', array('action' => 'apercevoir', 'id' => $structure->getId())); + $out = '<a data-poload="/ose/test" href="'.$url.'" data-po-href="'.$pourl.'" class="modal-action">'.$structure->getLibelleCourt().'</a>'; return $out; } @@ -102,7 +107,8 @@ class Ligne extends AbstractHelper { if (! $element) return ''; $url = $this->getView()->url('of/default', array('action' => 'voir-element'), array('query' => array('id' => $element->getId()))); - $out = '<a href="'.$url.'" class="modal-action">'.$element->getLibelle().' ('.$element->getSourceCode().')</a>'; + $pourl = $this->getView()->url('of/default', array('action' => 'apercevoir-element'), array('query' => array('id' => $element->getId()))); + $out = '<a href="'.$url.'" data-po-href="'.$pourl.'" class="modal-action">'.$element->getSourceCode().' - '.$element->getLibelle().'</a>'; return $out; } @@ -117,30 +123,42 @@ class Ligne extends AbstractHelper { if ($etablissement != $this->context['etablissement']){ $url = $this->getView()->url('etablissement/default', array('action' => 'voir', 'id' => $etablissement->getId())); - $out = '<a href="'.$url.'" class="modal-action">'.$etablissement->getLibelle().'</a>'; + $pourl = $this->getView()->url('etablissement/default', array('action' => 'voir', 'id' => $etablissement->getId())); + $out = '<a href="'.$url.'" data-po-href="'.$pourl.'" class="modal-action">'.$etablissement->getLibelle().'</a>'; }else{ $out = ''; } return $out; } + protected function renderTypeIntervention( \Application\Entity\Db\TypeIntervention $typeIntervention, $heures ) + { + $out = '<td id="service-'.$this->service->getId().'-ti-'.$typeIntervention->getId().'">' + .(array_key_exists($typeIntervention->getId(),$heures) + ? \UnicaenApp\Util::formattedFloat($heures[$typeIntervention->getId()], \NumberFormatter::DECIMAL, -1) + : '' + ) + ."</td>\n"; + return $out; + } + protected function renderModifier() { $url = $this->getView()->url('service/default', array('action' => 'saisie', 'id' => $this->service->getId())); - return '<td><a class="modal-action event_save-message" href="'.$url.'" title="Modifier le service"><span class="glyphicon glyphicon-edit"></span></a></td>'; + return '<td><a class="modal-action event_service-modify-message" href="'.$url.'" title="Modifier le service"><span class="glyphicon glyphicon-edit"></span></a></td>'; } protected function renderSupprimer() { - $url = $this->getView()->url('service/default', array('action' => 'suppression', 'id' => $this->service->getId())); - return '<td><a class="modal-action event_save-message" href="'.$url.'" title="Supprimer le service"><span class="glyphicon glyphicon-remove"></span></a></td>'; + $url = $this->getView()->url('service/default', array('action' => 'suppression', 'id' => $this->service->getId()));//onclick="return Service.get('.$this->service->getId().').delete(this)" + return '<td><a class="service-delete" data-id="'.$this->service->getId().'" href="'.$url.'" title="Supprimer le service"><span class="glyphicon glyphicon-remove"></span></a></td>'; } - protected function renderDetails() + protected function renderDetails( $details=false ) { $out = '<td>' - .'<a data-service-id="'.$this->service->getId().'" title="Détail des services" onclick="serviceShowHideDetails(this)">' - .'<span class="glyphicon glyphicon-chevron-down"></span>' + .'<a class="service-details-button" title="Détail des heures" onclick="Service.get('.$this->service->getId().').showHideDetails(this)">' + .'<span class="glyphicon glyphicon-chevron-'.($details ? 'up' : 'down').'"></span>' .'</a>' ."</td>\n"; return $out; diff --git a/module/Application/src/Application/View/Helper/Service/Liste.php b/module/Application/src/Application/View/Helper/Service/Liste.php index 24308e709564b305124dfeb812191f83550433a4..435baae4119971e2496d6faf06108e98cd1bc04a 100644 --- a/module/Application/src/Application/View/Helper/Service/Liste.php +++ b/module/Application/src/Application/View/Helper/Service/Liste.php @@ -4,15 +4,20 @@ namespace Application\View\Helper\Service; use Zend\View\Helper\AbstractHelper; use Application\Entity\Db\Service; +use Zend\ServiceManager\ServiceLocatorAwareInterface; +use Zend\ServiceManager\ServiceLocatorAwareTrait; /** * Aide de vue permettant d'afficher une liste de services * * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> */ -class Liste extends AbstractHelper +class Liste extends AbstractHelper implements ServiceLocatorAwareInterface { + use ServiceLocatorAwareTrait; + + /** * Helper entry point. * @@ -42,39 +47,66 @@ class Liste extends AbstractHelper * * @return string */ - protected function render(){ - if (empty($this->services)) return 'Aucun service n\'est renseigné'; + public function render( $details = false ){ + $typesIntervention = $this->getServiceLocator()->getServiceLocator()->get('ApplicationTypeIntervention')->getTypesIntervention(); - $colspan = 5; + if (empty($this->services)){ + $out = 'Aucun service n\'est renseigné'; + }else{ + $colspan = 4; + $out = $this->renderShowHide(); + $out .= '<table id="services" class="table service">'; + $out .= '<tr>'; - $out = '<table class="table service">'; - $out .= '<tr>'; + if (empty($this->context['intervenant'])){ + $out .= "<th colspan=\"2\">Intervenant</th>\n"; + $colspan += 2; + } + $out .= "<th>Structure</th>\n"; + $out .= "<th>Enseignement ou responsabilité</th>\n"; + if (empty($this->context['annee'])){ + $out .= "<th>Année univ.</th>\n"; + $colspan += 1; + } + foreach( $typesIntervention as $ti ){ + $colspan++; + $out .= "<th style=\"width:8%\" title=\"".$ti->getLibelle()."\">".$ti->getCode()."</th>\n"; + } + $out .= "<th> </th>\n"; + $out .= "<th> </th>\n"; + $out .= "</tr>\n"; + foreach( $this->services as $service ){ + $out .= '<tr id="service-'.$service->getId().'-ligne">'; + $out .= $this->getView()->serviceLigne( $service, $this->context )->render($details); + $out .= '</tr>'; + $out .= '<tr class="volume-horaire" id="service-'.$service->getId().'-volume-horaire-tr"'.($details ? '' : ' style="display:none"').'>' + .'<td class="volume-horaire" id="service-'.$service->getId().'-volume-horaire-td" colspan="'.$colspan.'">' + .$this->getView()->volumeHoraireListe( $service->getVolumeHoraire(), array('service' => $service ) )->render() + .'</td>' + .'</tr>'; + } + $out .= '</table>'."\n"; + $out .= $this->renderShowHide(); - $out .= "<th>Numéro</th>\n"; - if (empty($this->context['intervenant'])){ - $out .= "<th colspan=\"2\">Intervenant</th>\n"; - $colspan += 2; - } - $out .= "<th>Structure</th>\n"; - $out .= "<th>Elément pédagogique</th>\n"; - if (empty($this->context['annee'])){ - $out .= "<th>Année univ.</th>\n"; - $colspan += 1; - } - $out .= "<th> </th>\n"; - $out .= "<th> </th>\n"; - $out .= "</tr>\n"; - foreach( $this->services as $service ){ - $out .= $this->getView()->serviceLigne( $service, $this->context ); - $out .= '<tr class="volume-horaire" id="service-'.$service->getId().'-details"><td class="volume-horaire" colspan="'.$colspan.'">'.$this->getView()->volumeHoraireListe( $service->getVolumeHoraire(), array('service' => $service ) ).'</td></tr>'; } - $out .= '</table>'."\n"; $url = $this->getView()->url('service/default', array('action' => 'saisie')); - $out .= '<a class="modal-action event_save-message btn btn-primary" href="'.$url.'" title="Ajouter un service"><span class="glyphicon glyphicon-plus"></span> Saisir un nouveau service</a>'; - + $out .= '<br /><a class="modal-action event_service-add-message btn btn-primary" href="'.$url.'" title="Ajouter un service"><span class="glyphicon glyphicon-plus"></span> Saisir un nouveau service</a>'; + $out .= $this->getView()->modalAjaxDialog('service-div'); + $out .= '<script type="text/javascript">'; + $out .= '$(function() { Service.init("'.$this->getView()->url('service/default', array('action' => 'voirLigne') ).'"); });'; + $out .= '</script>'; return $out; } + public function renderShowHide() + { + return + '<div class="service-show-hide-buttons">' + .'<button type="button" class="btn btn-default btn-xs service-show-all-details"><span class="glyphicon glyphicon-chevron-down"></span> Tout déplier</button> ' + .'<button type="button" class="btn btn-default btn-xs service-hide-all-details"><span class="glyphicon glyphicon-chevron-up"></span> Tout replier</button>' + .'</div>'; + } + /** * * @return Service[] diff --git a/module/Application/src/Application/View/Helper/VolumeHoraire/Liste.php b/module/Application/src/Application/View/Helper/VolumeHoraire/Liste.php index 549c889ca6fa8324abdae6c67d7565effaf6e825..6923398f7a1449edf71d30a02d3c9d328f0ce073 100644 --- a/module/Application/src/Application/View/Helper/VolumeHoraire/Liste.php +++ b/module/Application/src/Application/View/Helper/VolumeHoraire/Liste.php @@ -5,15 +5,20 @@ namespace Application\View\Helper\VolumeHoraire; use Zend\View\Helper\AbstractHelper; use Application\Entity\Db\VolumeHoraire; use Doctrine\ORM\PersistentCollection; +use Zend\ServiceManager\ServiceLocatorAwareInterface; +use Zend\ServiceManager\ServiceLocatorAwareTrait; + /** * Aide de vue permettant d'afficher une liste de volumes horaires * * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> */ -class Liste extends AbstractHelper +class Liste extends AbstractHelper implements ServiceLocatorAwareInterface { + use ServiceLocatorAwareTrait; + /** * Données formattées * @@ -59,7 +64,9 @@ class Liste extends AbstractHelper * * @return string */ - protected function render(){ + public function render(){ + $typesIntervention = $this->getServiceLocator()->getServiceLocator()->get('ApplicationTypeIntervention')->getTypesIntervention(); + $out = '<table class="table volume-horaire">'; $out .= '<tr>'; @@ -67,7 +74,7 @@ class Liste extends AbstractHelper $out .= "<th style=\"width:15%\">Service</th>\n"; } $out .= "<th style=\"width:10%\">Période</th>\n"; - foreach( self::$typesIntervention as $ti ){ + foreach( $typesIntervention as $ti ){ $out .= "<th style=\"width:8%\" title=\"".$ti->getLibelle()."\">".$ti->getCode()."</th>\n"; } $out .= "<th style=\"width:25%\">Motif de non paiement</th>\n"; @@ -79,7 +86,7 @@ class Liste extends AbstractHelper $out .= "<td>".$this->renderService($default->getService())."</td>\n"; } $out .= "<td>".$this->renderPeriode($default->getPeriode())."</td>\n"; - foreach( self::$typesIntervention as $ti ){ + foreach( $typesIntervention as $ti ){ if (isset($gvh[$ti->getId()])){ $out .= "<td>".$this->renderHeures($gvh[$ti->getId()]->getHeures())."</td>\n"; }else{ @@ -107,13 +114,7 @@ class Liste extends AbstractHelper protected function renderHeures($heures) { - $h = floor($heures); - $m = ($heures - floor($heures)) * 60; - if (0 == $m){ - return $h.'h'; - }else{ - return $h.'h'.sprintf('%02s', $m); - } + return \UnicaenApp\Util::formattedFloat($heures, \NumberFormatter::DECIMAL, -1); } protected function renderMotifNonPaiement($motifNonPaiement) diff --git a/module/Application/src/Application/View/Helper/VolumeHoraire/ListeFactory.php b/module/Application/src/Application/View/Helper/VolumeHoraire/ListeFactory.php deleted file mode 100644 index 629bbf0d687684eee2006cbce04c47c6ce912be9..0000000000000000000000000000000000000000 --- a/module/Application/src/Application/View/Helper/VolumeHoraire/ListeFactory.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -namespace Application\View\Helper\VolumeHoraire; - -use Zend\ServiceManager\FactoryInterface; -use Zend\ServiceManager\ServiceLocatorInterface; - -/** - * Description of ListeFactory - * - * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> - */ -class ListeFactory implements FactoryInterface -{ - /** - * Create service - * - * @param ServiceLocatorInterface $serviceLocator - * @return mixed - */ - public function createService(ServiceLocatorInterface $serviceLocator) - { - if (empty(Liste::$typesIntervention)){ - $tis = $serviceLocator->getServiceLocator()->get('ApplicationTypeIntervention'); - - $til = $tis->finderByAll()->getQuery()->execute(); - - Liste::$typesIntervention = array(); - foreach( $til as $ti ){ - Liste::$typesIntervention[$ti->getId()] = $ti; - } - } - return new Liste(); - } -} \ No newline at end of file diff --git a/module/Application/view/application/demo/index.phtml b/module/Application/view/application/demo/index.phtml index d1d30756a9b85f6e7ab0265bb2be47abf2497a37..6fb493df2884e6b4b3bc3065ad7da58ef8209049 100755 --- a/module/Application/view/application/demo/index.phtml +++ b/module/Application/view/application/demo/index.phtml @@ -3,4 +3,4 @@ <h2>Organisation des Services d'Enseignement</h2> </div> -<?php echo $this->fieldsetElementPedagogiqueRecherche($fs); ?> \ No newline at end of file +<?php echo $this->fieldsetElementPedagogiqueRecherche($fs); ?> diff --git a/module/Application/view/application/etablissement/voir.phtml b/module/Application/view/application/etablissement/voir.phtml index 8b51a00163829ccd62f13cddca2134dcc8e04333..bb4b9c20e74d109b17ed4114d88f3a27d7eb860e 100644 --- a/module/Application/view/application/etablissement/voir.phtml +++ b/module/Application/view/application/etablissement/voir.phtml @@ -4,4 +4,4 @@ <br /><?php foreach( $changements as $changement ) { echo $this->differentielLigne( $changement ); } ?> -<?php echo $this->navigation('navigation')->menuContextuel()->withTarget($etablissement->getId()) ?> +<?php //echo $this->navigation('navigation')->menuContextuel()->withTarget($etablissement->getId()) ?> diff --git a/module/Application/view/application/service/index.phtml b/module/Application/view/application/service/index.phtml index a9a3649c2d20762039492a5e3afa3f36e180ccc1..9521e280168311cd418e849f2faef7cb13cf9a24 100644 --- a/module/Application/view/application/service/index.phtml +++ b/module/Application/view/application/service/index.phtml @@ -1,13 +1,4 @@ -<h1>Année universitaire <?php echo $annee; ?></h1> +<h1>Services</h1> +<h2>Année universitaire <?php echo $annee; ?></h2> -<?php echo $this->serviceListe( $services, $context ); ?> -<?php echo $this->modalAjaxDialog('service-div'); ?> - -<script> - $(function() { - $("body").on("save-message", function(event, data) { - event.dialog.modal('hide'); // ferme la fenêtre modale - location.reload(); - }); - }); -</script> \ No newline at end of file +<?php echo $this->serviceListe( $services, $context )->render(); ?> \ No newline at end of file diff --git a/module/Application/view/application/service/saisie.phtml b/module/Application/view/application/service/saisie.phtml index 39e86a121b201db124b50e4f9b94305e62daf289..e39c8b65a7db38b7aaee5a0f7d70aee6ca4a24ff 100644 --- a/module/Application/view/application/service/saisie.phtml +++ b/module/Application/view/application/service/saisie.phtml @@ -13,45 +13,22 @@ if (null == $etablissementValue || $etablissementValue == $etablissementParam){ $interne = false; } -/*$interneExterne = new \Zend\Form\Element\Radio; -$interneExterne->setLabel('Service effectué : '); -$interneExterne->setName('interne-externe'); -$interneExterne->setCheckedValue('service-interne'); -$interneExterne->setValueOptions(array( - 'service-interne' => 'en interne', - 'service-externe' => 'dans un autre établissement', - )); -$interneExterne->setLabelAttributes( array('class' => 'btn btn-primary'));*/ +$form->get('interne-externe')->setValue($interne ? 'service-interne' : 'service-externe'); -//$form->setAttribute('action', $this->url('album', array('action' => 'add'))); - - $form->prepare(); - echo $this->form()->openTag($form); - if (! isset($context['intervenant'])){ - echo $this->formControlGroup($form->get('intervenant')); - } - - ?><div class="form-group"> - <label class="control-label" for="service-interne">Service effectué : </label> - <br /> - <div class="btn-group" data-toggle="buttons"> - <label class="btn btn-default <?php echo ($interne) ? 'active' : '' ?>"> - <input type="radio" name="interne-externe" id="service-interne" onchange="serviceShowInterneExterne(this.id)"> en interne - </label> - <label class="btn btn-default <?php echo ($interne) ? '' : 'active' ?>"> - <input type="radio" name="interne-externe" id="service-externe" onchange="serviceShowInterneExterne(this.id)"> dans un autre établissement - </label> - </div> -</div> -<?php - echo '<div id="element-interne" '.(($interne) ? '' : 'style="display:none"').'>'.$this->formControlGroup($form->get('elementPedagogique')).'</div>'; - echo '<div id="element-externe" '.(($interne) ? 'style="display:none"' : '').'>'.$this->formControlGroup($form->get('etablissement')).'</div>'; - echo $this->formRow($form->get('submit')); - echo $this->formHidden($form->get('security')); - echo $this->formHidden($form->get('id')); - echo $this->form()->closeTag(); - echo $this->formErrors( $form ); - - if ($errors) echo $this->messenger()->setMessages(array(UnicaenApp\View\Helper\Messenger::ERROR => array($errors))); -?> +$form->prepare(); +echo $this->form()->openTag($form); +if (! isset($context['intervenant'])){ + echo $this->formControlGroup($form->get('intervenant')); +} +echo $this->formControlGroup($form->get('interne-externe'), 'formButtonGroup'); +echo '<div id="element-interne" '.(($interne) ? '' : 'style="display:none"').'>'.$this->fieldsetElementPedagogiqueRecherche($form->get('elementPedagogique')).'</div>'; +//echo '<div id="element-interne" '.(($interne) ? '' : 'style="display:none"').'>'.$this->formControlGroup($form->get('elementPedagogique')).'</div>'; +echo '<div id="element-externe" '.(($interne) ? 'style="display:none"' : '').'>'.$this->formControlGroup($form->get('etablissement')).'</div>'; +echo $this->formRow($form->get('submit')); +echo $this->formHidden($form->get('security')); +echo $this->formHidden($form->get('id')); +echo $this->form()->closeTag().'<br />'; + +echo $this->formErrors( $form ); +if ($errors) echo $this->messenger()->setMessages(array(UnicaenApp\View\Helper\Messenger::ERROR => array($errors))); \ No newline at end of file diff --git a/module/Application/view/application/service/suppression.phtml b/module/Application/view/application/service/suppression.phtml index aaf6a129480267864bed14335682d2c072ff45a6..b347181c904e61780ac8e164d67d6c59a7a1b960 100644 --- a/module/Application/view/application/service/suppression.phtml +++ b/module/Application/view/application/service/suppression.phtml @@ -1 +1,7 @@ -Service supprimé. \ No newline at end of file +<input type="hidden" id="service-deleted-id" value="<?php echo $entity->getId() ?>" /> +<?php + + if ($errors) + echo $this->messenger()->setMessages(array(UnicaenApp\View\Helper\Messenger::ERROR => array($errors))); + else + echo 'Le service a été supprimé.'; \ No newline at end of file diff --git a/module/Application/view/application/service/voir-ligne.phtml b/module/Application/view/application/service/voir-ligne.phtml new file mode 100644 index 0000000000000000000000000000000000000000..29573dab39dc885f1c0deaf101d24ef5b6d8c6ef --- /dev/null +++ b/module/Application/view/application/service/voir-ligne.phtml @@ -0,0 +1,10 @@ +<?php if (! $onlyContent): ?><tr id="service-<?php echo $entity->getId() ?>-ligne"><?php endif; ?> +<?php echo $this->serviceLigne( $entity, $context )->render($details); ?> +<?php if (! $onlyContent): ?> +</tr> +<tr class="volume-horaire" id="service-<?php echo $entity->getId() ?>-volume-horaire-tr"<?php echo ($details ? '' : ' style="display:none"') ?>> + <td class="volume-horaire" id="service-<?php echo $entity->getId() ?>-volume-horaire-td" colspan="999"> + <?php echo $this->volumeHoraireListe( $entity->getVolumeHoraire(), array('service' => $entity ) )->render(); ?> + </td> +</tr> +<?php endif; ?> diff --git a/module/Common/Module.php b/module/Common/Module.php index 66975861b4c4c5400fe906b4b549c33f594e4f1f..4e2eab8611a1062c4522cf9eb174ad99e4ff4d2e 100755 --- a/module/Common/Module.php +++ b/module/Common/Module.php @@ -64,6 +64,7 @@ class Module 'factories' => array( ), 'invokables' => array( + 'formButtonGroup' => 'Common\Form\View\Helper\FormButtonGroup', ), ); } diff --git a/module/Common/src/Common/Form/View/Helper/FormButtonGroup.php b/module/Common/src/Common/Form/View/Helper/FormButtonGroup.php new file mode 100644 index 0000000000000000000000000000000000000000..9aaf5364ce3ecbabdbcd0cb62e262170f611a23b --- /dev/null +++ b/module/Common/src/Common/Form/View/Helper/FormButtonGroup.php @@ -0,0 +1,84 @@ +<?php +namespace Common\Form\View\Helper; + +use Zend\Form\View\Helper\FormRadio; +use Zend\Form\Element\Radio as RadioElement; +use Zend\Form\LabelAwareInterface; + + +/** + * + * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr> + */ +class FormButtonGroup extends FormRadio +{ + + /** + * Render options + * + * @param RadioElement $element + * @param array $options + * @param array $selectedOptions + * @param array $attributes + * @return string + */ + protected function renderOptions(RadioElement $element, array $options, array $selectedOptions, + array $attributes) + { + $escapeHtmlHelper = $this->getEscapeHtmlHelper(); + $labelHelper = $this->getLabelHelper(); + + if ($element instanceof LabelAwareInterface) { + $globalLabelAttributes = $element->getLabelAttributes(); + } + + if (empty($globalLabelAttributes)) { + $globalLabelAttributes = $this->labelAttributes; + } + + $out = '<div class="btn-group" data-toggle="buttons">'; + foreach ($options as $key => $optionSpec) { + $value = $key; + $label = $optionSpec; + + if (isset($optionSpec['value'])) { + $value = $optionSpec['value']; + } + if (isset($optionSpec['label'])) { + $label = $optionSpec['label']; + } + if (isset($optionSpec['selected'])) { + $selected = $optionSpec['selected']; + }else{ + $selected = in_array($value, $selectedOptions); + } + + $inputAttributes = $attributes; + $inputAttributes['type'] = 'radio'; + $inputAttributes['value'] = $value; + + $labelAttributes = array( + 'class' => 'btn btn-default' + ); + if ($selected) $labelAttributes['class'] .= ' active'; + + if (null !== ($translator = $this->getTranslator())) { + $label = $translator->translate( + $label, $this->getTranslatorTextDomain() + ); + } + + if (! $element instanceof LabelAwareInterface || ! $element->getLabelOption('disable_html_escape')) { + $label = $escapeHtmlHelper($label); + } + + $out .= $labelHelper->openTag($labelAttributes); + $out .= '<input '.$this->createAttributesString($inputAttributes).$this->getInlineClosingBracket().' '.$label; + $out .= $labelHelper->closeTag(); + + } + $out .= '</div>'; + + return $out; + } +} \ No newline at end of file diff --git a/public/css/app.css b/public/css/app.css index 191562b3382e81f6f8a22650cb9bc281ac28a113..b0cc4ccb7eb84d557497289ba6aca973adea3602 100755 --- a/public/css/app.css +++ b/public/css/app.css @@ -1,14 +1,33 @@ - +/* Services */ table.service td.volume-horaire { padding-left:10em; } -table.service tr.volume-horaire { - display: none; +div.service-show-hide-buttons { + padding-bottom:3px; + padding-top:3px; + text-align:right; } + + + /* recherche d'élément */ +.ui-autocomplete { + max-height: 300px; + overflow-y: auto; + /* prevent horizontal scrollbar */ + overflow-x: hidden; +} + +/* IE 6 doesn't support max-height +* we use height instead, but this forces the menu to always be this tall +*/ +/* * html .ui-autocomplete { + height: 300px; +}*/ + span.etape, span.periode, span.element { @@ -24,4 +43,12 @@ span.periode { span.sas-highlight { font-weight: bold; +} + + +/* Gestion des popovers */ +div.popover { + + max-width:600px; + } \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js index 99f47402e388c4c8877e58dfd3b962db92703867..032f5687078cf8642e17012b6947f642453c808a 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,24 +1,156 @@ -function serviceShowHideDetails(serviceA){ - var serviceId = serviceA.dataset.serviceId; - var tr = $('#service-' + serviceId + '-details'); - if ('none' == tr.css('display')){ - $(serviceA).html('<span class="glyphicon glyphicon-chevron-up"></span>'); - tr.show(200); - }else{ - $(serviceA).html('<span class="glyphicon glyphicon-chevron-down"></span>'); - tr.hide(200); +/* Propre à l'affichage des services */ + +function Service( id ) { + + this.id = id; + + this.delete = function( url ){ + ok = window.confirm('Voulez-vous vraiment supprimer ce service ?'); + if (ok){ + $('#service-div').modal({remote: url}); + } + return false; + } + + this.showHideDetails = function( serviceA ){ + + var state = $.data(serviceA,'state'); + var tr = $('#service-' + this.id + '-volume-horaire-tr'); + + if (('show' == state || 'none' == tr.css('display')) && 'hide' != state ){ + $(serviceA).html('<span class="glyphicon glyphicon-chevron-up"></span>'); + tr.show(200); + }else{ + $(serviceA).html('<span class="glyphicon glyphicon-chevron-down"></span>'); + tr.hide(200); + } + } + + this.showInterneExterne = function(){ + if ('service-interne' == this.id){ + $('#element-interne').show(); + $('#element-externe').hide(); + $("input[name='etablissement\\[label\\]']").val(''); + $("input[name='etablissement\\[id\\]']").val(''); + }else{ + $('#element-interne').hide(); + $("input[name='elementPedagogique\\[label\\]']").val(''); + $("input[name='elementPedagogique\\[id\\]']").val(''); + $('#element-externe').show(); + } } -} -function serviceShowInterneExterne( id ){ - if ('service-interne' == id){ - $('#element-interne').show(); - $('#element-externe').hide(); - }else{ - $('#element-interne').hide(); - $('#element-externe').show(); + this.onAfterAdd = function(){ + $.get( Service.voirLigneUrl+"/"+this.id+'?only-content=0', function( data ) { + $( "#service-"+this.id+"-ligne" ).load( Service.voirLigneUrl ); + $('#services > tbody:last').append(data); + }); } -} \ No newline at end of file + + this.onAfterModify = function(){ + var details = $('#service-'+this.id+'-volume-horaire-tr').css('display') == 'none' ? '0' : '1'; + $( "#service-"+this.id+"-ligne" ).load( Service.voirLigneUrl + "/"+this.id+'?only-content=1&details='+details ); + } + + this.onAfterDelete = function(){ + $('#service-'+this.id+'-volume-horaire-tr').remove(); + $( "#service-"+this.id+"-ligne" ).remove(); + } + +} + +Service.get = function( id ){ + if (null == Service.services) Service.services = new Array(); + if (null == Service.services[id]) Service.services[id] = new Service(id); + return Service.services[id]; +} + +Service.init = function( voirLigneUrl ){ + Service.voirLigneUrl = voirLigneUrl; + + $("body").on("service-modify-message", function(event, data) { + var id = null; + if ($("div .messenger, div .alert").length ? false : true){ + event.dialog.modal('hide'); // ferme la fenêtre modale + for( i in data ){ + if (data[i].name == 'id'){ + id = data[i].value; + } + } + + if (id){ + Service.get(id).onAfterModify(); + } + } + }); + + $('#service-div').on('loaded.bs.modal', function (e) { + if (id = $('#service-deleted-id').val()){ + Service.get(id).onAfterDelete(); + } + }); + + $("body").on("service-add-message", function(event, data) { + var id = null; + if ($("div .messenger, div .alert").length ? false : true){ + event.dialog.modal('hide'); // ferme la fenêtre modale + for( i in data ){ + if (data[i].name == 'id'){ + id = data[i].value; + } + } + + if (id){ + Service.get(id).onAfterAdd(); + } + } + }); + + $("body").on('change', 'form#service input[name="interne-externe"]', function(){ + Service.get(this.value).showInterneExterne( $( this ).val() ); + }); + + $(".service-show-all-details").on('click', function(){ Service.showAllDetails(); }); + $(".service-hide-all-details").on('click', function(){ Service.hideAllDetails(); }); + $('body').on('click', '.service-delete', function(){ + Service.get( $(this).data('id') ).delete( $(this).attr('href') ); + return false; + }) +} + +Service.showAllDetails = function(){ + $('.service-details-button').data('state', 'show'); + $('.service-details-button').click(); + $('.service-details-button').data('state', ''); +} + +Service.hideAllDetails = function(){ + $('.service-details-button').data('state', 'hide'); + $('.service-details-button').click(); + $('.service-details-button').data('state', ''); +} + + + + + +/* Initialisation des popovers ajax de liens "a" (utilisés dans les services) */ +$(document).ready(function() { + + $("*[data-po-href]").popover({ + html: true, + trigger: 'hover', + content: function(e){ + return $.ajax({ + type: "GET", + url: $($(this).context).data('po-href'), + async: false + }).responseText; + }, + delay: {show:1000, hide:100} + }); + +}); \ No newline at end of file