Add image size to lenses

This commit is contained in:
Timothy Warren 2018-02-14 15:08:03 -05:00
parent 46d5310ce5
commit f21c629640
45 changed files with 1648 additions and 1477 deletions

View File

@ -5,25 +5,18 @@ root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
# Tab indentation (no size specified)
[Makefile]
indent_style = tab
[*.{js,css,php,html}]
charset = utf-8
indent_style = tab
indent_size = 4
# Indentation override
[*.{html,js}]
[*.{html,twig,js}]
indent_size = 2
# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
[*.{yml,yaml}]
indent_style = space
indent_size = 2

374
composer.lock generated
View File

@ -536,20 +536,20 @@
},
{
"name": "doctrine/inflector",
"version": "v1.2.0",
"version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462"
"reference": "5527a48b7313d15261292c149e55e26eae771b0a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462",
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
"reference": "5527a48b7313d15261292c149e55e26eae771b0a",
"shasum": ""
},
"require": {
"php": "^7.0"
"php": "^7.1"
},
"require-dev": {
"phpunit/phpunit": "^6.2"
@ -557,7 +557,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
"dev-master": "1.3.x-dev"
}
},
"autoload": {
@ -599,7 +599,7 @@
"singularize",
"string"
],
"time": "2017-07-22T12:18:28+00:00"
"time": "2018-01-09T20:05:19+00:00"
},
{
"name": "doctrine/instantiator",
@ -793,16 +793,16 @@
},
{
"name": "easycorp/easy-log-handler",
"version": "v1.0.3",
"version": "v1.0.4",
"source": {
"type": "git",
"url": "https://github.com/EasyCorp/easy-log-handler.git",
"reference": "79104f113f562ab6c677d482457d4474204d34a5"
"reference": "1a617a37ab9389eac4e2e1d14cb70ee0087d724d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/EasyCorp/easy-log-handler/zipball/79104f113f562ab6c677d482457d4474204d34a5",
"reference": "79104f113f562ab6c677d482457d4474204d34a5",
"url": "https://api.github.com/repos/EasyCorp/easy-log-handler/zipball/1a617a37ab9389eac4e2e1d14cb70ee0087d724d",
"reference": "1a617a37ab9389eac4e2e1d14cb70ee0087d724d",
"shasum": ""
},
"require": {
@ -839,7 +839,7 @@
"monolog",
"productivity"
],
"time": "2017-10-20T08:47:57+00:00"
"time": "2018-01-10T08:34:20+00:00"
},
{
"name": "jdorn/sql-formatter",
@ -1161,16 +1161,16 @@
},
{
"name": "sensio/framework-extra-bundle",
"version": "v5.1.3",
"version": "v5.1.6",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "0696496cb3e2d23add645d424699e5c723238aad"
"reference": "bf4940572e43af679aaa13be98f3446a1c237bd8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/0696496cb3e2d23add645d424699e5c723238aad",
"reference": "0696496cb3e2d23add645d424699e5c723238aad",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bf4940572e43af679aaa13be98f3446a1c237bd8",
"reference": "bf4940572e43af679aaa13be98f3446a1c237bd8",
"shasum": ""
},
"require": {
@ -1226,20 +1226,20 @@
"annotations",
"controllers"
],
"time": "2017-12-04T18:33:55+00:00"
"time": "2018-02-14T08:40:54+00:00"
},
{
"name": "symfony/cache",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "d00351f230ca037ca13f6fec3411e002043f7421"
"reference": "e901ff335ef5e8ef57ee9b8e098bd54a1d39a857"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/d00351f230ca037ca13f6fec3411e002043f7421",
"reference": "d00351f230ca037ca13f6fec3411e002043f7421",
"url": "https://api.github.com/repos/symfony/cache/zipball/e901ff335ef5e8ef57ee9b8e098bd54a1d39a857",
"reference": "e901ff335ef5e8ef57ee9b8e098bd54a1d39a857",
"shasum": ""
},
"require": {
@ -1295,20 +1295,20 @@
"caching",
"psr6"
],
"time": "2017-12-08T16:11:45+00:00"
"time": "2018-01-18T22:19:33+00:00"
},
{
"name": "symfony/config",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
"reference": "0356e6d5298e9e72212c0bad65c2f1b49e42d622"
"reference": "ecd917899167922086ddb3247aa43eb1c418fcb2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/0356e6d5298e9e72212c0bad65c2f1b49e42d622",
"reference": "0356e6d5298e9e72212c0bad65c2f1b49e42d622",
"url": "https://api.github.com/repos/symfony/config/zipball/ecd917899167922086ddb3247aa43eb1c418fcb2",
"reference": "ecd917899167922086ddb3247aa43eb1c418fcb2",
"shasum": ""
},
"require": {
@ -1355,20 +1355,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-21T19:06:11+00:00"
},
{
"name": "symfony/console",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "de8cf039eacdec59d83f7def67e3b8ff5ed46714"
"reference": "36d5b41e7d4e1ccf0370f6babe966c08ef0a1488"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/de8cf039eacdec59d83f7def67e3b8ff5ed46714",
"reference": "de8cf039eacdec59d83f7def67e3b8ff5ed46714",
"url": "https://api.github.com/repos/symfony/console/zipball/36d5b41e7d4e1ccf0370f6babe966c08ef0a1488",
"reference": "36d5b41e7d4e1ccf0370f6babe966c08ef0a1488",
"shasum": ""
},
"require": {
@ -1423,20 +1423,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/debug",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "8c3e709209ce3b952a31c0f4a31ac7703c3d0226"
"reference": "c77bb31d0f6310a2ac11e657475d396a92e5dc54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/8c3e709209ce3b952a31c0f4a31ac7703c3d0226",
"reference": "8c3e709209ce3b952a31c0f4a31ac7703c3d0226",
"url": "https://api.github.com/repos/symfony/debug/zipball/c77bb31d0f6310a2ac11e657475d396a92e5dc54",
"reference": "c77bb31d0f6310a2ac11e657475d396a92e5dc54",
"shasum": ""
},
"require": {
@ -1479,20 +1479,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-18T22:19:33+00:00"
},
{
"name": "symfony/debug-bundle",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
"reference": "81eac72b030c08c9dcd85f60e873fc356f21f436"
"reference": "3188f67995b0b54ca0600c68dac86ae822229a97"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug-bundle/zipball/81eac72b030c08c9dcd85f60e873fc356f21f436",
"reference": "81eac72b030c08c9dcd85f60e873fc356f21f436",
"url": "https://api.github.com/repos/symfony/debug-bundle/zipball/3188f67995b0b54ca0600c68dac86ae822229a97",
"reference": "3188f67995b0b54ca0600c68dac86ae822229a97",
"shasum": ""
},
"require": {
@ -1544,7 +1544,7 @@
],
"description": "Symfony DebugBundle",
"homepage": "https://symfony.com",
"time": "2017-11-24T14:34:08+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/debug-pack",
@ -1579,16 +1579,16 @@
},
{
"name": "symfony/dependency-injection",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "d2fa088b5fd7d429974a36bf1a9846b912d9d124"
"reference": "f78ca49c6360c710ca8e316511e71a23b10e3bf2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d2fa088b5fd7d429974a36bf1a9846b912d9d124",
"reference": "d2fa088b5fd7d429974a36bf1a9846b912d9d124",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f78ca49c6360c710ca8e316511e71a23b10e3bf2",
"reference": "f78ca49c6360c710ca8e316511e71a23b10e3bf2",
"shasum": ""
},
"require": {
@ -1646,20 +1646,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-29T09:29:16+00:00"
},
{
"name": "symfony/doctrine-bridge",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
"reference": "d14c17af9290634eb1588b75ed64a64ee286ba3e"
"reference": "85d54596a1fe1089536ce03979a1992bf71b7e04"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/d14c17af9290634eb1588b75ed64a64ee286ba3e",
"reference": "d14c17af9290634eb1588b75ed64a64ee286ba3e",
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/85d54596a1fe1089536ce03979a1992bf71b7e04",
"reference": "85d54596a1fe1089536ce03979a1992bf71b7e04",
"shasum": ""
},
"require": {
@ -1725,20 +1725,20 @@
],
"description": "Symfony Doctrine Bridge",
"homepage": "https://symfony.com",
"time": "2017-12-09T12:13:31+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/event-dispatcher",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "d4face19ed8002eec8280bc1c5ec18130472bf43"
"reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d4face19ed8002eec8280bc1c5ec18130472bf43",
"reference": "d4face19ed8002eec8280bc1c5ec18130472bf43",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/74d33aac36208c4d6757807d9f598f0133a3a4eb",
"reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb",
"shasum": ""
},
"require": {
@ -1788,20 +1788,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/filesystem",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "8c2868641d0c4885eee9c12a89c2b695eb1985cd"
"reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/8c2868641d0c4885eee9c12a89c2b695eb1985cd",
"reference": "8c2868641d0c4885eee9c12a89c2b695eb1985cd",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
"reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
"shasum": ""
},
"require": {
@ -1837,20 +1837,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/finder",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "c9cdda4dc4a3182d8d6daeebce4a25fef078ea4c"
"reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/c9cdda4dc4a3182d8d6daeebce4a25fef078ea4c",
"reference": "c9cdda4dc4a3182d8d6daeebce4a25fef078ea4c",
"url": "https://api.github.com/repos/symfony/finder/zipball/8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
"reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
"shasum": ""
},
"require": {
@ -1886,20 +1886,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2017-11-07T14:45:01+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/form",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
"reference": "8c8cf3d9981a5ceb841ecef65570a422f3ecff71"
"reference": "46ff2f07ea787a500a9a7000389744c1445fb40e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/form/zipball/8c8cf3d9981a5ceb841ecef65570a422f3ecff71",
"reference": "8c8cf3d9981a5ceb841ecef65570a422f3ecff71",
"url": "https://api.github.com/repos/symfony/form/zipball/46ff2f07ea787a500a9a7000389744c1445fb40e",
"reference": "46ff2f07ea787a500a9a7000389744c1445fb40e",
"shasum": ""
},
"require": {
@ -1966,20 +1966,20 @@
],
"description": "Symfony Form Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/framework-bundle",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
"reference": "82e45a486a2cbdab5d43512bea10af1681dcd8e2"
"reference": "3766b9b88e9918f68560b58a404340b41112b861"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/82e45a486a2cbdab5d43512bea10af1681dcd8e2",
"reference": "82e45a486a2cbdab5d43512bea10af1681dcd8e2",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3766b9b88e9918f68560b58a404340b41112b861",
"reference": "3766b9b88e9918f68560b58a404340b41112b861",
"shasum": ""
},
"require": {
@ -1987,7 +1987,7 @@
"php": "^7.1.3",
"symfony/cache": "~3.4|~4.0",
"symfony/config": "~3.4|~4.0",
"symfony/dependency-injection": "~3.4|~4.0",
"symfony/dependency-injection": "^3.4.3|^4.0.3",
"symfony/event-dispatcher": "~3.4|~4.0",
"symfony/filesystem": "~3.4|~4.0",
"symfony/finder": "~3.4|~4.0",
@ -2080,20 +2080,20 @@
],
"description": "Symfony FrameworkBundle",
"homepage": "https://symfony.com",
"time": "2017-12-15T01:44:28+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/http-foundation",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "aba96bd07be7796c81ca0ceafa7d48a6fef036c8"
"reference": "82a3ee2c6662d08ca1adf99e1ef2e31ab48196d4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/aba96bd07be7796c81ca0ceafa7d48a6fef036c8",
"reference": "aba96bd07be7796c81ca0ceafa7d48a6fef036c8",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/82a3ee2c6662d08ca1adf99e1ef2e31ab48196d4",
"reference": "82a3ee2c6662d08ca1adf99e1ef2e31ab48196d4",
"shasum": ""
},
"require": {
@ -2133,20 +2133,20 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "f2ea7461cdcad837b8bc6022b59d5eb8c9618aa5"
"reference": "194bd224ec27952eac6d4fea6264b22990834eca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/f2ea7461cdcad837b8bc6022b59d5eb8c9618aa5",
"reference": "f2ea7461cdcad837b8bc6022b59d5eb8c9618aa5",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/194bd224ec27952eac6d4fea6264b22990834eca",
"reference": "194bd224ec27952eac6d4fea6264b22990834eca",
"shasum": ""
},
"require": {
@ -2154,7 +2154,7 @@
"psr/log": "~1.0",
"symfony/debug": "~3.4|~4.0",
"symfony/event-dispatcher": "~3.4|~4.0",
"symfony/http-foundation": "~3.4|~4.0"
"symfony/http-foundation": "~3.4.4|~4.0.4"
},
"conflict": {
"symfony/config": "<3.4",
@ -2219,20 +2219,20 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
"time": "2017-12-15T03:06:17+00:00"
"time": "2018-01-29T13:27:08+00:00"
},
{
"name": "symfony/inflector",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/inflector.git",
"reference": "8740990f67ec9f89bfa116d11bad2990dd510ece"
"reference": "da634a9968162f7c5c94f8d6949a4ede86085304"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/inflector/zipball/8740990f67ec9f89bfa116d11bad2990dd510ece",
"reference": "8740990f67ec9f89bfa116d11bad2990dd510ece",
"url": "https://api.github.com/repos/symfony/inflector/zipball/da634a9968162f7c5c94f8d6949a4ede86085304",
"reference": "da634a9968162f7c5c94f8d6949a4ede86085304",
"shasum": ""
},
"require": {
@ -2276,20 +2276,20 @@
"symfony",
"words"
],
"time": "2017-08-31T20:46:21+00:00"
"time": "2018-01-03T17:15:19+00:00"
},
{
"name": "symfony/intl",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/intl.git",
"reference": "9ee9ded0b3902239172811c2b2526cb81165a74f"
"reference": "e67537d88dd27c7ae9ca1ff05c51ebb8eb59c391"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/intl/zipball/9ee9ded0b3902239172811c2b2526cb81165a74f",
"reference": "9ee9ded0b3902239172811c2b2526cb81165a74f",
"url": "https://api.github.com/repos/symfony/intl/zipball/e67537d88dd27c7ae9ca1ff05c51ebb8eb59c391",
"reference": "e67537d88dd27c7ae9ca1ff05c51ebb8eb59c391",
"shasum": ""
},
"require": {
@ -2351,20 +2351,20 @@
"l10n",
"localization"
],
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/monolog-bridge",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
"reference": "da8c15357bcf114a319105524648940faf03fd77"
"reference": "1b4fb2313312ec6cfae8ce45fccb2a88ec99d892"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/da8c15357bcf114a319105524648940faf03fd77",
"reference": "da8c15357bcf114a319105524648940faf03fd77",
"url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/1b4fb2313312ec6cfae8ce45fccb2a88ec99d892",
"reference": "1b4fb2313312ec6cfae8ce45fccb2a88ec99d892",
"shasum": ""
},
"require": {
@ -2417,7 +2417,7 @@
],
"description": "Symfony Monolog Bridge",
"homepage": "https://symfony.com",
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/monolog-bundle",
@ -2484,16 +2484,16 @@
},
{
"name": "symfony/options-resolver",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
"reference": "75fdda335eb0adbd464089e8a0184c61097808e0"
"reference": "371532a2cfe932f7a3766dd4c45364566def1dd0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/75fdda335eb0adbd464089e8a0184c61097808e0",
"reference": "75fdda335eb0adbd464089e8a0184c61097808e0",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/371532a2cfe932f7a3766dd4c45364566def1dd0",
"reference": "371532a2cfe932f7a3766dd4c45364566def1dd0",
"shasum": ""
},
"require": {
@ -2534,20 +2534,20 @@
"configuration",
"options"
],
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-18T22:19:33+00:00"
},
{
"name": "symfony/phpunit-bridge",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "61c84ebdce0d4c289413a222ee545f0114e60120"
"reference": "c12fc01946942723ee824b5f09d241f5de15c037"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/61c84ebdce0d4c289413a222ee545f0114e60120",
"reference": "61c84ebdce0d4c289413a222ee545f0114e60120",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c12fc01946942723ee824b5f09d241f5de15c037",
"reference": "c12fc01946942723ee824b5f09d241f5de15c037",
"shasum": ""
},
"require": {
@ -2567,6 +2567,10 @@
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
},
"thanks": {
"name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit"
}
},
"autoload": {
@ -2596,20 +2600,20 @@
],
"description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com",
"time": "2017-12-14T19:48:22+00:00"
"time": "2018-01-21T19:06:11+00:00"
},
{
"name": "symfony/polyfill-intl-icu",
"version": "v1.6.0",
"version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "d2bb2ef00dd8605d6fbd4db53ed4af1395953497"
"reference": "254919c03761d46c29291616576ed003f10e91c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d2bb2ef00dd8605d6fbd4db53ed4af1395953497",
"reference": "d2bb2ef00dd8605d6fbd4db53ed4af1395953497",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/254919c03761d46c29291616576ed003f10e91c1",
"reference": "254919c03761d46c29291616576ed003f10e91c1",
"shasum": ""
},
"require": {
@ -2622,7 +2626,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
"dev-master": "1.7-dev"
}
},
"autoload": {
@ -2654,20 +2658,20 @@
"portable",
"shim"
],
"time": "2017-10-11T12:05:26+00:00"
"time": "2018-01-30T19:27:44+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.6.0",
"version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"shasum": ""
},
"require": {
@ -2679,7 +2683,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
"dev-master": "1.7-dev"
}
},
"autoload": {
@ -2713,20 +2717,20 @@
"portable",
"shim"
],
"time": "2017-10-11T12:05:26+00:00"
"time": "2018-01-30T19:27:44+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.6.0",
"version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254"
"reference": "8eca20c8a369e069d4f4c2ac9895144112867422"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/6de4f4884b97abbbed9f0a84a95ff2ff77254254",
"reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/8eca20c8a369e069d4f4c2ac9895144112867422",
"reference": "8eca20c8a369e069d4f4c2ac9895144112867422",
"shasum": ""
},
"require": {
@ -2735,7 +2739,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
"dev-master": "1.7-dev"
}
},
"autoload": {
@ -2768,7 +2772,7 @@
"portable",
"shim"
],
"time": "2017-10-11T12:05:26+00:00"
"time": "2018-01-31T17:43:24+00:00"
},
{
"name": "symfony/profiler-pack",
@ -2800,16 +2804,16 @@
},
{
"name": "symfony/property-access",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
"reference": "8dc059852b7bdd8b871eb3ca95b8d70be3b39488"
"reference": "e0fef10eb7e11cae9421d8d89024dfeae0acffb7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/property-access/zipball/8dc059852b7bdd8b871eb3ca95b8d70be3b39488",
"reference": "8dc059852b7bdd8b871eb3ca95b8d70be3b39488",
"url": "https://api.github.com/repos/symfony/property-access/zipball/e0fef10eb7e11cae9421d8d89024dfeae0acffb7",
"reference": "e0fef10eb7e11cae9421d8d89024dfeae0acffb7",
"shasum": ""
},
"require": {
@ -2863,20 +2867,20 @@
"property path",
"reflection"
],
"time": "2017-12-14T00:19:09+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/routing",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "972810def5cae044d19195045f7eb418141bf37b"
"reference": "a69bd948700b672e036147762f46749bcae33796"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/972810def5cae044d19195045f7eb418141bf37b",
"reference": "972810def5cae044d19195045f7eb418141bf37b",
"url": "https://api.github.com/repos/symfony/routing/zipball/a69bd948700b672e036147762f46749bcae33796",
"reference": "a69bd948700b672e036147762f46749bcae33796",
"shasum": ""
},
"require": {
@ -2941,20 +2945,20 @@
"uri",
"url"
],
"time": "2017-12-14T22:39:22+00:00"
"time": "2018-01-16T18:04:12+00:00"
},
{
"name": "symfony/stopwatch",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
"reference": "ac0e49150555c703fef6b696d8eaba1db7a3ca03"
"reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/ac0e49150555c703fef6b696d8eaba1db7a3ca03",
"reference": "ac0e49150555c703fef6b696d8eaba1db7a3ca03",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/d52321f0e2b596bd03b5d1dd6eebe71caa925704",
"reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704",
"shasum": ""
},
"require": {
@ -2990,20 +2994,20 @@
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
"time": "2017-11-09T12:45:29+00:00"
"time": "2018-01-03T07:38:00+00:00"
},
{
"name": "symfony/twig-bridge",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
"reference": "aeb221936ad39c579b7e002dfd4e7544a5d666f6"
"reference": "81260f5539bdd7a4b5c39c55e197dae6daecc33f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/aeb221936ad39c579b7e002dfd4e7544a5d666f6",
"reference": "aeb221936ad39c579b7e002dfd4e7544a5d666f6",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/81260f5539bdd7a4b5c39c55e197dae6daecc33f",
"reference": "81260f5539bdd7a4b5c39c55e197dae6daecc33f",
"shasum": ""
},
"require": {
@ -3080,20 +3084,20 @@
],
"description": "Symfony Twig Bridge",
"homepage": "https://symfony.com",
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-18T22:19:33+00:00"
},
{
"name": "symfony/twig-bundle",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
"reference": "77381f8b99b319dc83e609c66942eb3a0a5b066d"
"reference": "854b3ae1e761cf9443241119675c64e263ff21a7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/77381f8b99b319dc83e609c66942eb3a0a5b066d",
"reference": "77381f8b99b319dc83e609c66942eb3a0a5b066d",
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/854b3ae1e761cf9443241119675c64e263ff21a7",
"reference": "854b3ae1e761cf9443241119675c64e263ff21a7",
"shasum": ""
},
"require": {
@ -3101,7 +3105,7 @@
"symfony/config": "~3.4|~4.0",
"symfony/http-foundation": "~3.4|~4.0",
"symfony/http-kernel": "~3.4|~4.0",
"symfony/twig-bridge": "~3.4|~4.0",
"symfony/twig-bridge": "^3.4.3|^4.0.3",
"twig/twig": "~1.34|~2.4"
},
"conflict": {
@ -3153,20 +3157,20 @@
],
"description": "Symfony TwigBundle",
"homepage": "https://symfony.com",
"time": "2017-12-04T12:31:58+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "0991597a40f062bab7203efc2cc6cee9b3d44ed6"
"reference": "6d63cc74f3e2d4961411ccb77389a00332653104"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0991597a40f062bab7203efc2cc6cee9b3d44ed6",
"reference": "0991597a40f062bab7203efc2cc6cee9b3d44ed6",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/6d63cc74f3e2d4961411ccb77389a00332653104",
"reference": "6d63cc74f3e2d4961411ccb77389a00332653104",
"shasum": ""
},
"require": {
@ -3222,20 +3226,20 @@
"debug",
"dump"
],
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-29T09:06:29+00:00"
},
{
"name": "symfony/web-profiler-bundle",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
"reference": "81e20cbc7b998918a413fbf84a6f2cc770837e10"
"reference": "2074348dba4b49ea86d7ee7eaf1b4fcacc887120"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/81e20cbc7b998918a413fbf84a6f2cc770837e10",
"reference": "81e20cbc7b998918a413fbf84a6f2cc770837e10",
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/2074348dba4b49ea86d7ee7eaf1b4fcacc887120",
"reference": "2074348dba4b49ea86d7ee7eaf1b4fcacc887120",
"shasum": ""
},
"require": {
@ -3288,20 +3292,20 @@
],
"description": "Symfony WebProfilerBundle",
"homepage": "https://symfony.com",
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-10T11:36:17+00:00"
},
{
"name": "symfony/yaml",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "a5ee52d155f06ad23b19eb63c31228ff56ad1116"
"reference": "ffc60bda1d4a00ec0b32eeabf39dc017bf480028"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/a5ee52d155f06ad23b19eb63c31228ff56ad1116",
"reference": "a5ee52d155f06ad23b19eb63c31228ff56ad1116",
"url": "https://api.github.com/repos/symfony/yaml/zipball/ffc60bda1d4a00ec0b32eeabf39dc017bf480028",
"reference": "ffc60bda1d4a00ec0b32eeabf39dc017bf480028",
"shasum": ""
},
"require": {
@ -3346,7 +3350,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2017-12-12T08:41:51+00:00"
"time": "2018-01-21T19:06:11+00:00"
},
{
"name": "twig/twig",
@ -3418,16 +3422,16 @@
"packages-dev": [
{
"name": "symfony/dotenv",
"version": "v4.0.2",
"version": "v4.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
"reference": "ffcaeab01e42b0c40669add2aa8e77f79ddb9389"
"reference": "afb6923923e22874dac20bd042167ccb8df1d158"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dotenv/zipball/ffcaeab01e42b0c40669add2aa8e77f79ddb9389",
"reference": "ffcaeab01e42b0c40669add2aa8e77f79ddb9389",
"url": "https://api.github.com/repos/symfony/dotenv/zipball/afb6923923e22874dac20bd042167ccb8df1d158",
"reference": "afb6923923e22874dac20bd042167ccb8df1d158",
"shasum": ""
},
"require": {
@ -3471,28 +3475,28 @@
"env",
"environment"
],
"time": "2017-12-08T15:46:13+00:00"
"time": "2018-01-03T17:15:19+00:00"
},
{
"name": "symfony/flex",
"version": "v1.0.53",
"version": "v1.0.68",
"source": {
"type": "git",
"url": "https://github.com/symfony/flex.git",
"reference": "cc4b1bac464597ce220d4f8208c38c75195e80c2"
"reference": "0241b2acbb58df29e633b03fb56eb349a207613f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/flex/zipball/cc4b1bac464597ce220d4f8208c38c75195e80c2",
"reference": "cc4b1bac464597ce220d4f8208c38c75195e80c2",
"url": "https://api.github.com/repos/symfony/flex/zipball/0241b2acbb58df29e633b03fb56eb349a207613f",
"reference": "0241b2acbb58df29e633b03fb56eb349a207613f",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.1",
"composer-plugin-api": "^1.0",
"php": "^7.0"
},
"require-dev": {
"composer/composer": "^1.4",
"composer/composer": "^1.0.2",
"symfony/phpunit-bridge": "^3.2.8"
},
"type": "composer-plugin",
@ -3517,7 +3521,7 @@
"email": "fabien.potencier@gmail.com"
}
],
"time": "2017-12-27T16:06:01+00:00"
"time": "2018-01-31T19:34:57+00:00"
}
],
"aliases": [],

View File

@ -6,9 +6,9 @@ framework:
#trusted_hosts: ~
# uncomment this entire section to enable sessions
#session:
# # With this config, PHP's native session handling is used
# handler_id: ~
session:
# With this config, PHP's native session handling is used
handler_id: ~
#esi: ~
#fragments: ~

View File

@ -4,6 +4,8 @@ namespace CameraBundle\Controller;
use CameraBundle\Entity\Camera;
use CameraBundle\Form\CameraType;
use Doctrine\ORM\OptimisticLockException;
use Doctrine\ORM\ORMInvalidArgumentException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
@ -138,9 +140,12 @@ class CameraController extends Controller
* @Method("POST")
* @param Request $request
* @param Camera $camera
* @throws \LogicException
* @throws OptimisticLockException
* @throws ORMInvalidArgumentException
* @return RedirectResponse
*/
public function deacquireAction(Request $request, Camera $camera)
public function deacquireAction(Request $request, Camera $camera): RedirectResponse
{
$form = $this->createDeacquireForm($camera);
$form->handleRequest($request);

View File

@ -140,11 +140,9 @@ class LensesController extends Controller
$form = $this->createDeleteForm($lens);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->remove($lens);
$em->flush();
}
$em = $this->getDoctrine()->getManager();
$em->remove($lens);
$em->flush();
return $this->redirectToRoute('lens_index');
}
@ -159,7 +157,9 @@ class LensesController extends Controller
private function createDeleteForm(Lenses $lens): FormInterface
{
return $this->createFormBuilder()
->setAction($this->generateUrl('lens_delete', array('id' => $lens->getId())))
->setAction(
$this->generateUrl('lens_delete', ['id' => $lens->getId()])
)
->setMethod('DELETE')
->getForm();
}

View File

@ -4,10 +4,10 @@ namespace CameraBundle\Controller;
use CameraBundle\Entity\PreviouslyOwnedCamera;
use CameraBundle\Form\PreviouslyOwnedCameraType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\{Method, Route};
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\{RedirectResponse, Request};
/**
* Previouslyownedcamera controller.
@ -63,6 +63,8 @@ class PreviouslyOwnedCameraController extends Controller
$editForm = $this->createForm(PreviouslyOwnedCameraType::class, $previouslyOwnedCamera);
$editForm->handleRequest($request);
$reacquireForm = $this->createReacquireForm($previouslyOwnedCamera);
if ($editForm->isSubmitted() && $editForm->isValid()) {
$this->getDoctrine()->getManager()->flush();
@ -72,6 +74,45 @@ class PreviouslyOwnedCameraController extends Controller
return $this->render('previouslyownedcamera/edit.html.twig', array(
'previouslyOwnedCamera' => $previouslyOwnedCamera,
'edit_form' => $editForm->createView(),
'reacquire_form' => $reacquireForm->createView()
));
}
/**
* Moves a camera to the previouslyOwned table
*
* @Route("/{id}/reacquire", name="previously-owned-camera_reacquire")
* @Method("POST")
* @param Request $request
* @param PreviouslyOwnedCamera $camera
* @throws \LogicException
* @throws \Doctrine\ORM\ORMInvalidArgumentException
* @return RedirectResponse
*/
public function reacquireAction(Request $request, PreviouslyOwnedCamera $camera): RedirectResponse
{
$form = $this->createReacquireForm($camera);
$form->handleRequest($request);
$repository = $this->getDoctrine()->getRepository(PreviouslyOwnedCamera::class);
$repository->reacquire($camera);
return $this->redirectToRoute('previously-owned-camera_index');
}
/**
* Creates a form to move
*
* @param PreviouslyOwnedCamera $camera The camera entity
*
* @return FormInterface
*/
private function createReacquireForm(PreviouslyOwnedCamera $camera): FormInterface
{
return $this->createFormBuilder()
->setAction($this->generateUrl('previously-owned-camera_reacquire', ['id' => $camera->getId()]))
->setMethod('POST')
->getForm();
}
}

View File

@ -22,7 +22,7 @@ class Camera
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\SequenceGenerator(sequenceName="camera_id_seq", allocationSize=1, initialValue=1)
* @ORM\SequenceGenerator(sequenceName="camera__id_seq", allocationSize=1, initialValue=1)
*/
private $id;

View File

@ -1,13 +1,20 @@
<?php
<?php declare(strict_types=1);
namespace CameraBundle\Entity;
/**
* Trait CameraTrait
*
* Shared columns for camera, and previously_owned_camera tables
*
* @package CameraBundle\Entity
*/
trait CameraTrait
{
use PurchasePriceTrait;
/**
* @var \CameraType
* @var CameraType
*
* @ORM\ManyToOne(targetEntity="CameraType")
* @ORM\JoinColumns({
@ -112,7 +119,7 @@ trait CameraTrait
*
* @return integer
*/
public function getId()
public function getId(): int
{
return $this->id;
}
@ -120,11 +127,11 @@ trait CameraTrait
/**
* Set type
*
* @param \CameraBundle\Entity\CameraType $type
* @param CameraType $type
*
* @return Camera
* @return self
*/
public function setType(\CameraBundle\Entity\CameraType $type = null)
public function setType(CameraType $type = null): self
{
$this->type = $type;
@ -134,9 +141,9 @@ trait CameraTrait
/**
* Get type
*
* @return \CameraBundle\Entity\CameraType
* @return CameraType
*/
public function getType()
public function getType(): ?CameraType
{
return $this->type;
}
@ -146,9 +153,9 @@ trait CameraTrait
*
* @param string $brand
*
* @return Camera
* @return self
*/
public function setBrand($brand)
public function setBrand($brand): self
{
$this->brand = $brand;
@ -160,7 +167,7 @@ trait CameraTrait
*
* @return string
*/
public function getBrand()
public function getBrand(): ?string
{
return $this->brand;
}
@ -170,9 +177,9 @@ trait CameraTrait
*
* @param string $mount
*
* @return Camera
* @return self
*/
public function setMount($mount)
public function setMount($mount): self
{
$this->mount = $mount;
@ -184,7 +191,7 @@ trait CameraTrait
*
* @return string
*/
public function getMount()
public function getMount(): ?string
{
return $this->mount;
}
@ -194,9 +201,9 @@ trait CameraTrait
*
* @param string $model
*
* @return Camera
* @return self
*/
public function setModel($model)
public function setModel($model): self
{
$this->model = $model;
@ -208,7 +215,7 @@ trait CameraTrait
*
* @return string
*/
public function getModel()
public function getModel(): ?string
{
return $this->model;
}
@ -218,9 +225,9 @@ trait CameraTrait
*
* @param boolean $isDigital
*
* @return Camera
* @return self
*/
public function setIsDigital($isDigital)
public function setIsDigital($isDigital): self
{
$this->isDigital = $isDigital;
@ -232,7 +239,7 @@ trait CameraTrait
*
* @return boolean
*/
public function getIsDigital()
public function getIsDigital(): ?bool
{
return $this->isDigital;
}
@ -242,9 +249,9 @@ trait CameraTrait
*
* @param string $cropFactor
*
* @return Camera
* @return self
*/
public function setCropFactor($cropFactor)
public function setCropFactor($cropFactor): self
{
$this->cropFactor = $cropFactor;
@ -256,7 +263,7 @@ trait CameraTrait
*
* @return string
*/
public function getCropFactor()
public function getCropFactor(): string
{
return $this->cropFactor;
}
@ -266,9 +273,9 @@ trait CameraTrait
*
* @param boolean $isWorking
*
* @return Camera
* @return self
*/
public function setIsWorking($isWorking)
public function setIsWorking($isWorking): self
{
$this->isWorking = $isWorking;
@ -280,7 +287,7 @@ trait CameraTrait
*
* @return boolean
*/
public function getIsWorking()
public function getIsWorking(): ?bool
{
return $this->isWorking;
}
@ -290,9 +297,9 @@ trait CameraTrait
*
* @param string $notes
*
* @return Camera
* @return self
*/
public function setNotes($notes)
public function setNotes($notes): self
{
$this->notes = $notes;
@ -304,7 +311,7 @@ trait CameraTrait
*
* @return string
*/
public function getNotes()
public function getNotes(): ?string
{
return $this->notes;
}
@ -314,9 +321,9 @@ trait CameraTrait
*
* @param string $serial
*
* @return Camera
* @return self
*/
public function setSerial($serial)
public function setSerial($serial): self
{
$this->serial = $serial;
@ -328,7 +335,7 @@ trait CameraTrait
*
* @return string
*/
public function getSerial()
public function getSerial(): ?string
{
return $this->serial;
}
@ -338,9 +345,9 @@ trait CameraTrait
*
* @param boolean $formerlyOwned
*
* @return Camera
* @return self
*/
public function setFormerlyOwned($formerlyOwned)
public function setFormerlyOwned($formerlyOwned): self
{
$this->formerlyOwned = $formerlyOwned;
@ -352,7 +359,7 @@ trait CameraTrait
*
* @return boolean
*/
public function getFormerlyOwned()
public function getFormerlyOwned(): ?bool
{
return $this->formerlyOwned;
}
@ -362,9 +369,9 @@ trait CameraTrait
*
* @param string $batteryType
*
* @return Camera
* @return self
*/
public function setBatteryType($batteryType)
public function setBatteryType($batteryType): self
{
$this->batteryType = $batteryType;
@ -376,7 +383,7 @@ trait CameraTrait
*
* @return string
*/
public function getBatteryType()
public function getBatteryType(): ?string
{
return $this->batteryType;
}
@ -386,9 +393,9 @@ trait CameraTrait
*
* @param string $filmFormat
*
* @return Camera
* @return self
*/
public function setFilmFormat($filmFormat)
public function setFilmFormat($filmFormat): self
{
$this->filmFormat = $filmFormat;
@ -400,7 +407,7 @@ trait CameraTrait
*
* @return string
*/
public function getFilmFormat()
public function getFilmFormat(): string
{
return $this->filmFormat;
}
@ -410,9 +417,9 @@ trait CameraTrait
*
* @param boolean $received
*
* @return Camera
* @return self
*/
public function setReceived($received)
public function setReceived($received): self
{
$this->received = $received;
@ -424,7 +431,7 @@ trait CameraTrait
*
* @return boolean
*/
public function getReceived()
public function getReceived(): bool
{
return $this->received;
}

View File

@ -83,6 +83,13 @@ trait LensTrait
*/
private $notes;
/**
* @var string
*
* @ORM\Column(name="image_size", type="string", nullable=false, options={"default"="35mm"})
*/
private $imageSize = '35mm';
/**
* @var string
*
@ -138,7 +145,7 @@ trait LensTrait
*
* @return integer
*/
public function getId()
public function getId(): int
{
return $this->id;
}
@ -148,9 +155,9 @@ trait LensTrait
*
* @param string $brand
*
* @return Lenses
* @return self
*/
public function setBrand($brand)
public function setBrand($brand): self
{
$this->brand = $brand;
@ -172,9 +179,9 @@ trait LensTrait
*
* @param string $coatings
*
* @return Lenses
* @return self
*/
public function setCoatings($coatings)
public function setCoatings($coatings): self
{
$this->coatings = $coatings;
@ -196,9 +203,9 @@ trait LensTrait
*
* @param string $productLine
*
* @return Lenses
* @return self
*/
public function setProductLine($productLine)
public function setProductLine($productLine): self
{
$this->productLine = $productLine;
@ -220,9 +227,9 @@ trait LensTrait
*
* @param string $model
*
* @return Lenses
* @return self
*/
public function setModel($model)
public function setModel($model): self
{
$this->model = $model;
@ -244,9 +251,9 @@ trait LensTrait
*
* @param string $minFStop
*
* @return Lenses
* @return self
*/
public function setMinFStop($minFStop)
public function setMinFStop($minFStop): self
{
$this->minFStop = $minFStop;
@ -268,9 +275,9 @@ trait LensTrait
*
* @param float $maxFStop
*
* @return Lenses
* @return self
*/
public function setMaxFStop($maxFStop)
public function setMaxFStop($maxFStop): self
{
$this->maxFStop = $maxFStop;
@ -292,9 +299,9 @@ trait LensTrait
*
* @param integer $minFocalLength
*
* @return Lenses
* @return self
*/
public function setMinFocalLength($minFocalLength)
public function setMinFocalLength($minFocalLength): self
{
$this->minFocalLength = $minFocalLength;
@ -316,9 +323,9 @@ trait LensTrait
*
* @param integer $maxFocalLength
*
* @return Lenses
* @return self
*/
public function setMaxFocalLength($maxFocalLength)
public function setMaxFocalLength($maxFocalLength): self
{
$this->maxFocalLength = $maxFocalLength;
@ -340,9 +347,9 @@ trait LensTrait
*
* @param string $serial
*
* @return Lenses
* @return self
*/
public function setSerial($serial)
public function setSerial($serial): self
{
$this->serial = $serial;
@ -364,9 +371,9 @@ trait LensTrait
*
* @param string $notes
*
* @return Lenses
* @return self
*/
public function setNotes($notes)
public function setNotes(string $notes): self
{
$this->notes = $notes;
@ -378,19 +385,41 @@ trait LensTrait
*
* @return string
*/
public function getNotes()
public function getNotes(): ?string
{
return $this->notes;
}
/**
* Get image size
*
* @return string
*/
public function getImageSize(): string
{
return $this->imageSize;
}
/**
* Set image size
*
* @param string $imageSize
* @return self
*/
public function setImageSize(string $imageSize): self
{
$this->imageSize = $imageSize;
return $this;
}
/**
* Set mount
*
* @param string $mount
*
* @return Lenses
* @return self
*/
public function setMount($mount)
public function setMount($mount): self
{
$this->mount = $mount;
@ -412,9 +441,9 @@ trait LensTrait
*
* @param boolean $received
*
* @return Lenses
* @return self
*/
public function setReceived($received)
public function setReceived($received): self
{
$this->received = $received;
@ -436,9 +465,9 @@ trait LensTrait
*
* @param boolean $formerlyOwned
*
* @return Lenses
* @return self
*/
public function setFormerlyOwned($formerlyOwned)
public function setFormerlyOwned($formerlyOwned): self
{
$this->formerlyOwned = $formerlyOwned;
@ -460,9 +489,9 @@ trait LensTrait
*
* @param string $frontFilterSize
*
* @return Lenses
* @return self
*/
public function setFrontFilterSize($frontFilterSize)
public function setFrontFilterSize($frontFilterSize): self
{
$this->frontFilterSize = $frontFilterSize;
@ -484,9 +513,9 @@ trait LensTrait
*
* @param string $rearFilterSize
*
* @return Lenses
* @return self
*/
public function setRearFilterSize($rearFilterSize)
public function setRearFilterSize($rearFilterSize): self
{
$this->rearFilterSize = $rearFilterSize;
@ -508,9 +537,9 @@ trait LensTrait
*
* @param boolean $isTeleconverter
*
* @return Lenses
* @return self
*/
public function setIsTeleconverter($isTeleconverter)
public function setIsTeleconverter($isTeleconverter): self
{
$this->isTeleconverter = $isTeleconverter;
@ -532,9 +561,9 @@ trait LensTrait
*
* @param integer $designElements
*
* @return Lenses
* @return self
*/
public function setDesignElements($designElements)
public function setDesignElements($designElements): self
{
$this->designElements = $designElements;
@ -556,9 +585,9 @@ trait LensTrait
*
* @param integer $designGroups
*
* @return Lenses
* @return self
*/
public function setDesignGroups($designGroups)
public function setDesignGroups($designGroups): self
{
$this->designGroups = $designGroups;
@ -580,9 +609,9 @@ trait LensTrait
*
* @param integer $apertureBlades
*
* @return Lenses
* @return self
*/
public function setApertureBlades($apertureBlades)
public function setApertureBlades($apertureBlades): self
{
$this->apertureBlades = $apertureBlades;
@ -594,7 +623,7 @@ trait LensTrait
*
* @return integer
*/
public function getApertureBlades()
public function getApertureBlades(): ?int
{
return $this->apertureBlades;
}

View File

@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
* Camera.previouslyOwnedCamera
*
* @ORM\Table(name="previously_owned_camera", schema="camera", indexes={@ORM\Index(name="IDX_6EF94C6BC54C8C93", columns={"type_id"})})
* @ORM\Entity
* @ORM\Entity(repositoryClass="CameraBundle\Repository\CameraRepository")
*/
class PreviouslyOwnedCamera
{
@ -20,6 +20,7 @@ class PreviouslyOwnedCamera
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\SequenceGenerator(sequenceName="prevously_owned_camera_id_seq", allocationSize=1, initialValue=1)
*/
private $id;
}

View File

@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
* Camera.previouslyOwnedLenses
*
* @ORM\Table(name="previously_owned_lenses", schema="camera")
* @ORM\Entity
* @ORM\Entity(repositoryClass="CameraBundle\Repository\LensesRepository")
*/
class PreviouslyOwnedLenses
{

View File

@ -20,6 +20,7 @@ class LensesType extends AbstractType
->add('productLine')
->add('model')
->add('mount')
->add('imageSize')
->add('minFStop')
->add('maxFStop')
->add('minFocalLength')

View File

@ -27,6 +27,7 @@ class PreviouslyOwnedLensesType extends AbstractType
->add('purchasePrice')
->add('notes')
->add('mount')
->add('imageSize')
->add('received')
->add('formerlyOwned')
->add('frontFilterSize')

View File

@ -0,0 +1,42 @@
<?php declare(strict_types=1);
namespace CameraBundle\Repository;
trait AcquireTrait {
/**
* Move a record from the table represented by $currentRecord
* into the table represented by $newRecord
*
* @param mixed $currentRecord
* @param mixed $newRecord
*/
protected function moveRecord($currentRecord, $newRecord): void
{
$em = $this->getEntityManager();
$old = new \ReflectionObject($currentRecord);
$new = new \ReflectionObject($newRecord);
foreach ($old->getProperties() as $property) {
$propertyName = $property->getName();
if ($new->hasProperty($propertyName)) {
$newProperty = $new->getProperty($propertyName);
$newProperty->setAccessible(true);
$property->setAccessible(true);
$newProperty->setValue($newRecord, $property->getValue($currentRecord));
}
}
try
{
$em->persist($newRecord);
$em->remove($currentRecord);
$em->flush();
}
catch (\Throwable $e)
{
dump($newRecord);
}
}
}

View File

@ -1,41 +1,36 @@
<?php
<?php declare(strict_types=1);
namespace CameraBundle\Repository;
use CameraBundle\Entity\{Camera, PreviouslyOwnedCamera};
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\{
EntityRepository, ORMInvalidArgumentException
};
class CameraRepository extends EntityRepository {
use AcquireTrait;
class CameraRepository extends EntityRepository
{
/**
* @param Camera $currentRecord
* @throws \Doctrine\ORM\OptimisticLockException
* @throws ORMInvalidArgumentException
*/
public function deacquire(Camera $currentRecord)
{
$em = $this->getEntityManager();
$currentRecord->setFormerlyOwned(true)
->setReceived(true);
$currentRecord->setFormerlyOwned(true);
$this->moveRecord($currentRecord, new PreviouslyOwnedCamera());
}
$newRecord = new PreviouslyOwnedCamera();
/**
* @param PreviouslyOwnedCamera $currentRecord
* @throws ORMInvalidArgumentException
*/
public function reacquire(PreviouslyOwnedCamera $currentRecord)
{
$currentRecord->setFormerlyOwned(false);
$old = new \ReflectionObject($currentRecord);
$new = new \ReflectionObject($newRecord);
foreach ($old->getProperties() as $property) {
$propertyName = $property->getName();
if ($new->hasProperty($propertyName)) {
$newProperty = $new->getProperty($propertyName);
$newProperty->setAccessible(true);
$property->setAccessible(true);
$newProperty->setValue($newRecord, $property->getValue($currentRecord));
}
}
// dump($newRecord);
$em->persist($newRecord);
//$em->remove($currentRecord);
$em->flush();
$this->moveRecord($currentRecord, new Camera());
}
}

View File

@ -0,0 +1,36 @@
<?php declare(strict_types=1);
namespace CameraBundle\Repository;
use CameraBundle\Entity\{Flash, PreviouslyOwnedFlash};
use Doctrine\ORM\{
EntityRepository, ORMInvalidArgumentException
};
class FlashRepository extends EntityRepository {
use AcquireTrait;
/**
* @param Flash $currentRecord
* @throws ORMInvalidArgumentException
*/
public function deacquire(Flash $currentRecord)
{
$currentRecord->setFormerlyOwned(true)
->setReceived(true);
$this->moveRecord($currentRecord, new PreviouslyOwnedFlash());
}
/**
* @param PreviouslyOwnedFlash $currentRecord
* @throws ORMInvalidArgumentException
*/
public function reacquire(PreviouslyOwnedFlash $currentRecord)
{
$currentRecord->setFormerlyOwned(false);
$this->moveRecord($currentRecord, new Flash());
}
}

View File

@ -7,35 +7,26 @@ use Doctrine\ORM\EntityRepository;
class LensesRepository extends EntityRepository
{
use AcquireTrait;
/**
* @param Lenses $currentRecord
* @throws \Doctrine\ORM\OptimisticLockException
*/
public function deacquire(Lenses $currentRecord)
{
$em = $this->getEntityManager();
$currentRecord->setFormerlyOwned(true)
->setReceived(true);
$currentRecord->setFormerlyOwned(true);
$this->moveRecord($currentRecord, new PreviouslyOwnedLenses());
}
$newRecord = new PreviouslyOwnedLenses();
/**
* @param PreviouslyOwnedLenses $currentRecord
*/
public function reacquire(PreviouslyOwnedLenses $currentRecord)
{
$currentRecord->setFormerlyOwned(false);
$old = new \ReflectionObject($currentRecord);
$new = new \ReflectionObject($newRecord);
foreach ($old->getProperties() as $property) {
$propertyName = $property->getName();
if ($new->hasProperty($propertyName)) {
$newProperty = $new->getProperty($propertyName);
$newProperty->setAccessible(true);
$property->setAccessible(true);
$newProperty->setValue($newRecord, $property->getValue($currentRecord));
}
}
// dump($newRecord);
$em->persist($newRecord);
//$em->remove($currentRecord);
$em->flush();
$this->moveRecord($currentRecord, new Lenses());
}
}

View File

@ -9,7 +9,7 @@ use CameraBundle\ValueObject\Money;
class MoneyType extends Type {
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform): string
{
return 'MONEY';
}
@ -19,13 +19,8 @@ class MoneyType extends Type {
return new Money($value);
}
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
return $value;
}
public function getName()
public function getName(): string
{
return 'money';
}
}
}

View File

@ -1,100 +1,4 @@
{
"symfony/flex": {
"version": "1.0",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.0",
"ref": "e921bdbfe20cdefa3b82f379d1cd36df1bc8d115"
}
},
"psr/log": {
"version": "1.0.2"
},
"symfony/debug": {
"version": "v3.3.13"
},
"symfony/polyfill-mbstring": {
"version": "v1.6.0"
},
"symfony/console": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "9f94d3ea453cd8a3b95db7f82592d7344fe3a76a"
}
},
"symfony/routing": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "a249484db698d1a847a30291c8f732414ac47e25"
}
},
"symfony/http-foundation": {
"version": "v3.3.13"
},
"symfony/event-dispatcher": {
"version": "v3.3.13"
},
"symfony/http-kernel": {
"version": "v3.3.13"
},
"symfony/finder": {
"version": "v3.3.13"
},
"symfony/filesystem": {
"version": "v3.3.13"
},
"psr/container": {
"version": "1.0.0"
},
"symfony/dependency-injection": {
"version": "v3.3.13"
},
"symfony/config": {
"version": "v3.3.13"
},
"psr/simple-cache": {
"version": "1.0.0"
},
"psr/cache": {
"version": "1.0.1"
},
"symfony/cache": {
"version": "v3.3.13"
},
"symfony/framework-bundle": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "305b268e55e75059f20ec9827a8fd09a35c59866"
}
},
"symfony/yaml": {
"version": "v3.3.13"
},
"symfony/dotenv": {
"version": "v3.3.13"
},
"doctrine/cache": {
"version": "v1.7.1"
},
"doctrine/inflector": {
"version": "v1.2.0"
},
"doctrine/lexer": {
"version": "v1.0.1"
},
"doctrine/collections": {
"version": "v1.5.0"
},
"doctrine/annotations": {
"version": "1.0",
"recipe": {
@ -104,18 +8,15 @@
"ref": "b9cde490c337f6c496d5f403fa6f827cf8b4706d"
}
},
"doctrine/cache": {
"version": "v1.7.1"
},
"doctrine/collections": {
"version": "v1.5.0"
},
"doctrine/common": {
"version": "v2.8.1"
},
"symfony/doctrine-bridge": {
"version": "v4.0.0"
},
"doctrine/doctrine-cache-bundle": {
"version": "1.3.2"
},
"jdorn/sql-formatter": {
"version": "v1.2.17"
},
"doctrine/dbal": {
"version": "v2.6.3"
},
@ -128,18 +29,132 @@
"ref": "44d3aa7752dd46f77ba11af2297a25e1dedfb4d0"
}
},
"doctrine/doctrine-cache-bundle": {
"version": "1.3.2"
},
"doctrine/inflector": {
"version": "v1.2.0"
},
"doctrine/instantiator": {
"version": "1.1.0"
},
"doctrine/lexer": {
"version": "v1.0.1"
},
"doctrine/orm": {
"version": "v2.5.13"
},
"twig/twig": {
"version": "v2.4.4"
"easycorp/easy-log-handler": {
"version": "1.0",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.0",
"ref": "70062abc2cd58794d2a90274502f81b55cd9951b"
}
},
"jdorn/sql-formatter": {
"version": "v1.2.17"
},
"monolog/monolog": {
"version": "1.23.0"
},
"psr/cache": {
"version": "1.0.1"
},
"psr/container": {
"version": "1.0.0"
},
"psr/log": {
"version": "1.0.2"
},
"psr/simple-cache": {
"version": "1.0.0"
},
"sensio/framework-extra-bundle": {
"version": "v3.0.28"
},
"symfony/cache": {
"version": "v3.3.13"
},
"symfony/config": {
"version": "v3.3.13"
},
"symfony/console": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "9f94d3ea453cd8a3b95db7f82592d7344fe3a76a"
}
},
"symfony/debug": {
"version": "v3.3.13"
},
"symfony/debug-bundle": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "de31e687f3964939abd1f66817bd96ed34bc2eee"
}
},
"symfony/debug-pack": {
"version": "v1.0.3"
},
"symfony/dependency-injection": {
"version": "v3.3.13"
},
"symfony/doctrine-bridge": {
"version": "v4.0.0"
},
"symfony/dotenv": {
"version": "v3.3.13"
},
"symfony/event-dispatcher": {
"version": "v3.3.13"
},
"symfony/filesystem": {
"version": "v3.3.13"
},
"symfony/finder": {
"version": "v3.3.13"
},
"symfony/flex": {
"version": "1.0",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.0",
"ref": "e921bdbfe20cdefa3b82f379d1cd36df1bc8d115"
}
},
"symfony/form": {
"version": "v4.0.0"
},
"symfony/framework-bundle": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "305b268e55e75059f20ec9827a8fd09a35c59866"
}
},
"symfony/http-foundation": {
"version": "v3.3.13"
},
"symfony/http-kernel": {
"version": "v3.3.13"
},
"symfony/inflector": {
"version": "v4.0.0"
},
"symfony/intl": {
"version": "v4.0.0"
},
"symfony/monolog-bridge": {
"version": "v4.0.0"
},
@ -152,8 +167,44 @@
"ref": "c24944bd87dacf0bb8fa218dc21e4a70fff56882"
}
},
"sensio/framework-extra-bundle": {
"version": "v3.0.28"
"symfony/options-resolver": {
"version": "v4.0.0"
},
"symfony/phpunit-bridge": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "55a81726745b54cc6f8d845f1a094ed7d9ed2e32"
}
},
"symfony/polyfill-intl-icu": {
"version": "v1.6.0"
},
"symfony/polyfill-mbstring": {
"version": "v1.6.0"
},
"symfony/polyfill-php72": {
"version": "v1.6.0"
},
"symfony/profiler-pack": {
"version": "v1.0.2"
},
"symfony/property-access": {
"version": "v4.0.0"
},
"symfony/routing": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "a249484db698d1a847a30291c8f732414ac47e25"
}
},
"symfony/stopwatch": {
"version": "v4.0.0"
},
"symfony/twig-bridge": {
"version": "v4.0.0"
@ -167,39 +218,9 @@
"ref": "f75ac166398e107796ca94cc57fa1edaa06ec47f"
}
},
"symfony/inflector": {
"version": "v4.0.0"
},
"symfony/property-access": {
"version": "v4.0.0"
},
"symfony/options-resolver": {
"version": "v4.0.0"
},
"symfony/intl": {
"version": "v4.0.0"
},
"symfony/polyfill-intl-icu": {
"version": "v1.6.0"
},
"symfony/form": {
"version": "v4.0.0"
},
"symfony/polyfill-php72": {
"version": "v1.6.0"
},
"symfony/var-dumper": {
"version": "v4.0.0"
},
"symfony/phpunit-bridge": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "55a81726745b54cc6f8d845f1a094ed7d9ed2e32"
}
},
"symfony/web-profiler-bundle": {
"version": "3.3",
"recipe": {
@ -209,31 +230,10 @@
"ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6"
}
},
"symfony/stopwatch": {
"version": "v4.0.0"
"symfony/yaml": {
"version": "v3.3.13"
},
"symfony/profiler-pack": {
"version": "v1.0.2"
},
"easycorp/easy-log-handler": {
"version": "1.0",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.0",
"ref": "70062abc2cd58794d2a90274502f81b55cd9951b"
}
},
"symfony/debug-bundle": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "de31e687f3964939abd1f66817bd96ed34bc2eee"
}
},
"symfony/debug-pack": {
"version": "v1.0.3"
"twig/twig": {
"version": "v2.4.4"
}
}

View File

@ -1,26 +1,26 @@
{% set route = app.request.get('_route') %}
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Welcome!{% endblock %}</title>
<link rel="stylesheet" href="/css/foundation.min.css" />
<link rel="stylesheet" href="/css/app.css" />
{% block stylesheets %}{% endblock %}
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
</head>
<body>
<main class="page-pad">
<title>{% block title %}Welcome!{% endblock %}</title>
<link rel="stylesheet" href="/css/foundation.min.css" />
<link rel="stylesheet" href="/css/app.css" />
{% block stylesheets %}{% endblock %}
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
</head>
<body>
<main class="page-pad">
{% include 'header.html.twig' %}
{% block body %}{% endblock %}
</main>
<script src="/js/vendor/jquery.js"></script>
<script src="/js/vendor/what-input.js"></script>
<script src="/js/vendor/foundation.min.js"></script>
<script src="/js/table-sort.js"></script>
<script src="/js/app.js"></script>
{% block javascripts %}{% endblock %}
</body>
</main>
<script src="/js/vendor/jquery.js"></script>
<script src="/js/vendor/what-input.js"></script>
<script src="/js/vendor/foundation.min.js"></script>
<script src="/js/table-sort.js"></script>
<script src="/js/app.js"></script>
{% block javascripts %}{% endblock %}
</body>
</html>

View File

@ -1,23 +1,23 @@
{% extends 'form.html.twig' %}
{% block form %}
<h1>Edit Camera</h1>
<h1>Edit Camera</h1>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
</li>
</ul>
</div>
</ul>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
<hr />
<hr />
{{ form_start(deacquire_form) }}
{{ form_widget(deacquire_form) }}
@ -26,8 +26,8 @@
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete</button>
{{ form_end(delete_form) }}
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete</button>
{{ form_end(delete_form) }}
</div>
{% endblock %}

View File

@ -1,65 +1,65 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Cameras</h2>
<h2>Cameras</h2>
<div class="small callout primary">
<ul>
<div class="small callout primary">
<ul>
<li>
<a href="{{ path('camera_new') }}">Add a Camera</a>
<a href="{{ path('camera_new') }}">Add a Camera</a>
</li>
</ul>
</div>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Formerly Owned?</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for camera in cameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera_show', { 'id': camera.id }) }}">{{ camera.id }}</a></td>
<td>{{ camera.brand }}</td>
<td>{{ camera.mount }}</td>
<td>{{ camera.model }}</td>
<td>{% if camera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.cropFactor }}</td>
<td>{% if camera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.notes }}</td>
<td>{{ camera.serial }}</td>
<td>{% if camera.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>${{ camera.purchasePrice }}</td>
<td>{{ camera.batteryType }}</td>
<td>{{ camera.filmFormat }}</td>
<td>{% if camera.received %}Yes{% else %}No{% endif %}</td>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Formerly Owned?</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for camera in cameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera_show', { 'id': camera.id }) }}">{{ camera.id }}</a></td>
<td>{{ camera.brand }}</td>
<td>{{ camera.mount }}</td>
<td>{{ camera.model }}</td>
<td>{% if camera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.cropFactor }}</td>
<td>{% if camera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.notes }}</td>
<td>{{ camera.serial }}</td>
<td>{% if camera.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>${{ camera.purchasePrice }}</td>
<td>{{ camera.batteryType }}</td>
<td>{{ camera.filmFormat }}</td>
<td>{% if camera.received %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,21 +1,21 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Add a Camera</h2>
<h2>Add a Camera</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
</li>
</ul>
</div>
</div>
<div class="large primary callout">
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
</div>

View File

@ -1,89 +1,89 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Camera</h2>
<h2>Camera</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">Edit</a>
</li>
</ul>
<ul>
<li>
<a href="{{ path('camera_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">Edit</a>
</li>
</ul>
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Camera</button>
{{ form_end(delete_form) }}
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Camera</button>
{{ form_end(delete_form) }}
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ camera.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ camera.brand }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ camera.mount }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ camera.model }}</td>
</tr>
<tr>
<th>Is Digital?</th>
<td>{% if camera.isDigital %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Crop Factor</th>
<td>{{ camera.cropFactor }}</td>
</tr>
<tr>
<th>Is Working?</th>
<td>{% if camera.isWorking %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ camera.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ camera.serial }}</td>
</tr>
<tr>
<th>Formerly Owned?</th>
<td>{% if camera.formerlyOwned %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ camera.purchasePrice }}</td>
</tr>
<tr>
<th>Battery Type</th>
<td>{{ camera.batteryType }}</td>
</tr>
<tr>
<th>Film Format</th>
<td>{{ camera.filmFormat }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if camera.received %}Yes{% else %}No{% endif %}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ camera.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ camera.brand }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ camera.mount }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ camera.model }}</td>
</tr>
<tr>
<th>Is Digital?</th>
<td>{% if camera.isDigital %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Crop Factor</th>
<td>{{ camera.cropFactor }}</td>
</tr>
<tr>
<th>Is Working?</th>
<td>{% if camera.isWorking %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ camera.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ camera.serial }}</td>
</tr>
<tr>
<th>Formerly Owned?</th>
<td>{% if camera.formerlyOwned %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ camera.purchasePrice }}</td>
</tr>
<tr>
<th>Battery Type</th>
<td>{{ camera.batteryType }}</td>
</tr>
<tr>
<th>Film Format</th>
<td>{{ camera.filmFormat }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if camera.received %}Yes{% else %}No{% endif %}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -1,26 +1,26 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Edit Camera Type</h2>
<h2>Edit Camera Type</h2>
<div class="small callout">
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera-type_index') }}">Back to the list</a>
</li>
</ul>
<li>
<a href="{{ path('camera-type_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large callout primary">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Save</button>
{{ form_end(edit_form) }}
<div class="large callout primary">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Save</button>
{{ form_end(edit_form) }}
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete</button>
{{ form_end(delete_form) }}
</div>
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete</button>
{{ form_end(delete_form) }}
</div>
{% endblock %}

View File

@ -1,40 +1,40 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Camera Types</h2>
<h2>Camera Types</h2>
<div class="small primary callout">
<ul>
<li>
<a href="{{ path('camera-type_new') }}">Add a Camera Type</a>
</li>
</ul>
<ul>
<li>
<a href="{{ path('camera-type_new') }}">Add a Camera Type</a>
</li>
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for cameraType in cameraTypes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera-type_edit', { 'id': cameraType.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">{{ cameraType.id }}</a></td>
<td>{{ cameraType.type }}</td>
<td>{{ cameraType.description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for cameraType in cameraTypes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera-type_edit', { 'id': cameraType.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">{{ cameraType.id }}</a></td>
<td>{{ cameraType.type }}</td>
<td>{{ cameraType.description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,20 +1,20 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Add a Camera Type</h2>
<h2>Add a Camera Type</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera-type_index') }}">Back to the list</a>
</li>
</ul>
<div class="small callout">
<ul>
<li>
<a href="{{ path('camera-type_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -1,26 +1,26 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Flash edit</h2>
<h2>Flash edit</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
<div class="small callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
</li>
</ul>
</div>
</ul>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
<hr />
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Flash</button>
{{ form_end(delete_form) }}
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Flash</button>
{{ form_end(delete_form) }}
</div>
{% endblock %}

View File

@ -1,64 +1,64 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Flashes list</h2>
<h2>Flashes list</h2>
<div class="small primary callout">
<ul>
<li>
<a href="{{ path('flash_new') }}">Add a Flash</a>
</li>
</ul>
</div>
<div class="small primary callout">
<ul>
<li>
<a href="{{ path('flash_new') }}">Add a Flash</a>
</li>
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL?</th>
<th>TTL Type</th>
<th>Is P-TTL?</th>
<th>P-TTL type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Received</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for flash in flashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('flash_show', { 'id': flash.id }) }}">{{ flash.id }}</a></td>
<td>{{ flash.brand }}</td>
<td>{{ flash.model }}</td>
<td>{% if flash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if flash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.ttlType }}</td>
<td>{% if flash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.pTtlType }}</td>
<td>{{ flash.guideNumber }}</td>
<td>${{ flash.purchasePrice }}</td>
<td>{% if flash.received %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.batteries }}</td>
<td>{{ flash.notes }}</td>
<td>{{ flash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL?</th>
<th>TTL Type</th>
<th>Is P-TTL?</th>
<th>P-TTL type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Received</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for flash in flashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('flash_show', { 'id': flash.id }) }}">{{ flash.id }}</a></td>
<td>{{ flash.brand }}</td>
<td>{{ flash.model }}</td>
<td>{% if flash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if flash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.ttlType }}</td>
<td>{% if flash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.pTtlType }}</td>
<td>{{ flash.guideNumber }}</td>
<td>${{ flash.purchasePrice }}</td>
<td>{% if flash.received %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.batteries }}</td>
<td>{{ flash.notes }}</td>
<td>{{ flash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,21 +1,21 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Add a Flash</h2>
<h2>Add a Flash</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
</li>
</ul>
<div class="small callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
</div>

View File

@ -1,83 +1,83 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Flash</h2>
<h2>Flash</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">Edit</a>
</li>
</ul>
<div class="callout">
<ul>
<li>
<a href="{{ path('flash_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">Edit</a>
</li>
</ul>
<hr />
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Flash</button>
{{ form_end(delete_form) }}
</div>
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Flash</button>
{{ form_end(delete_form) }}
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ flash.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ flash.brand }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ flash.model }}</td>
</tr>
<tr>
<th>Is Auto Flash?</th>
<td>{% if flash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Is TTL?</th>
<td>{% if flash.isTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>TTL Type</th>
<td>{{ flash.ttlType }}</td>
</tr>
<tr>
<th>Is P-TTL?</th>
<td>{% if flash.isPTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>P-TTL Type</th>
<td>{{ flash.pTtlType }}</td>
</tr>
<tr>
<th>Guide Number</th>
<td>{{ flash.guideNumber }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ flash.purchasePrice }}</td>
</tr>
<tr>
<th>Batteries</th>
<td>{{ flash.batteries }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ flash.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ flash.serial }}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ flash.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ flash.brand }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ flash.model }}</td>
</tr>
<tr>
<th>Is Auto Flash?</th>
<td>{% if flash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Is TTL?</th>
<td>{% if flash.isTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>TTL Type</th>
<td>{{ flash.ttlType }}</td>
</tr>
<tr>
<th>Is P-TTL?</th>
<td>{% if flash.isPTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>P-TTL Type</th>
<td>{{ flash.pTtlType }}</td>
</tr>
<tr>
<th>Guide Number</th>
<td>{{ flash.guideNumber }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ flash.purchasePrice }}</td>
</tr>
<tr>
<th>Batteries</th>
<td>{{ flash.batteries }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ flash.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ flash.serial }}</td>
</tr>
</tbody>
</table>
</div>
{% endblock %}

View File

@ -28,4 +28,16 @@
</li>
</ul>
</div>
</div>
</div>
{% for message in app.flashes('notice') %}
<div class="small callout flash-notice">
{{ message }}
</div>
{% endfor %}
{% for message in app.flashes('error') %}
<div class="small callout alert flash-error">
{{ message }}
</div>
{% endfor %}

View File

@ -1,35 +1,34 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Edit Lens</h2>
<h2>Edit Lens</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
<div class="small callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
</ul>
</div>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
<hr />
{{ form_start(deacquire_form) }}
{{ form_widget(deacquire_form) }}
<button type="submit" class="button">De-acquire</button>
{{ form_end(deacquire_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Lens</button>
{{ form_end(delete_form) }}
{{ form_start(deacquire_form) }}
{{ form_widget(deacquire_form) }}
<button type="submit" class="button">De-acquire</button>
{{ form_end(deacquire_form) }}
<hr />
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Lens</button>
{{ form_end(delete_form) }}
</div>
{% endblock %}

View File

@ -1,68 +1,70 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Lenses</h2>
<h2>Lenses</h2>
<div class="small primary callout">
<ul>
<li>
<a href="{{ path('lens_new') }}">Add a Lens</a>
</li>
</ul>
</div>
<div class="small primary callout">
<ul>
<li>
<a href="{{ path('lens_new') }}">Add a Lens</a>
</li>
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Description</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Received</th>
<th>Formerly Owned</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements / Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for lense in lenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('lens_edit', { 'id': lense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('lens_show', { 'id': lense.id }) }}">{{ lense.id }}</a></td>
<td>{{ lense.brand }}</td>
<td>{{ lense.coatings }} {{ lense.productLine }} {{ lense.model }}</td>
<td>{{ lense.minFStop }} &mdash; {{ lense.maxFStop }}</td>
<td>{{ lense.minFocalLength }} &mdash; {{ lense.maxFocalLength }}</td>
<td>{{ lense.serial }}</td>
<td>${{ lense.purchasePrice }}</td>
<td>{{ lense.notes }}</td>
<td>{{ lense.mount }}</td>
<td>{% if lense.received %}Yes{% else %}No{% endif %}</td>
<td>{% if lense.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.frontFilterSize }}</td>
<td>{{ lense.rearFilterSize }}</td>
<td>{% if lense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.designElements }} / {{ lense.designGroups }}</td>
<td>{{ lense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Description</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Image Size</th>
<th>Received</th>
<th>Formerly Owned</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements / Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for lense in lenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('lens_edit', { 'id': lense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('lens_show', { 'id': lense.id }) }}">{{ lense.id }}</a></td>
<td>{{ lense.brand }}</td>
<td>{{ lense.coatings }} {{ lense.productLine }} {{ lense.model }}</td>
<td>{{ lense.minFStop }} &mdash; {{ lense.maxFStop }}</td>
<td>{{ lense.minFocalLength }} &mdash; {{ lense.maxFocalLength }}</td>
<td>{{ lense.serial }}</td>
<td>${{ lense.purchasePrice }}</td>
<td>{{ lense.notes }}</td>
<td>{{ lense.mount }}</td>
<td>{{ lense.imageSize }}</td>
<td>{% if lense.received %}Yes{% else %}No{% endif %}</td>
<td>{% if lense.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.frontFilterSize }}</td>
<td>{{ lense.rearFilterSize }}</td>
<td>{% if lense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.designElements }} / {{ lense.designGroups }}</td>
<td>{{ lense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,20 +1,20 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Add a Lens</h2>
<h2>Add a Lens</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
</ul>
<div class="small callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="success button">Add</button>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -1,102 +1,106 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Lens</h2>
<h2>Lens</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('lens_edit', { 'id': lense.id }) }}">Edit</a>
</li>
</ul>
<div class="callout">
<ul>
<li>
<a href="{{ path('lens_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('lens_edit', { 'id': lense.id }) }}">Edit</a>
</li>
</ul>
<hr>
<hr>
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Lens</button>
{{ form_end(delete_form) }}
</div>
{{ form_start(delete_form) }}
<button type="submit" class="alert button">Delete Lens</button>
{{ form_end(delete_form) }}
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ lense.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ lense.brand }}</td>
</tr>
<tr>
<th>Coatings</th>
<td>{{ lense.coatings }}</td>
</tr>
<tr>
<th>Product Line</th>
<td>{{ lense.productLine }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ lense.model }}</td>
</tr>
<tr>
<th>Aperture Range</th>
<td>ƒ {{ lense.minFStop }} &mdash; {{ lense.maxFStop }}</td>
</tr>
<tr>
<th>Focal Range</th>
<td>{{ lense.minFocalLength }} &mdash; {{ lense.maxFocalLength }}mm</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ lense.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ lense.purchasePrice }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ lense.notes }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ lense.mount }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if lense.received %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Formerly Owned?</th>
<td>{% if lense.formerlyOwned %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Front Filter Size</th>
<td>{{ lense.frontFilterSize }}mm</td>
</tr>
<tr>
<th>Rear Filter Size</th>
<td>{{ lense.rearFilterSize }}</td>
</tr>
<tr>
<th>Is Teleconverter?</th>
<td>{% if lense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Design Elements / Groups</th>
<td>{{ lense.designElements }} / {{ lense.designGroups }}</td>
</tr>
<tr>
<th>Aperture Blades</th>
<td>{{ lense.apertureBlades }}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ lense.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ lense.brand }}</td>
</tr>
<tr>
<th>Coatings</th>
<td>{{ lense.coatings }}</td>
</tr>
<tr>
<th>Product Line</th>
<td>{{ lense.productLine }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ lense.model }}</td>
</tr>
<tr>
<th>Aperture Range</th>
<td>ƒ {{ lense.minFStop }} &mdash; {{ lense.maxFStop }}</td>
</tr>
<tr>
<th>Focal Range</th>
<td>{{ lense.minFocalLength }} &mdash; {{ lense.maxFocalLength }}mm</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ lense.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ lense.purchasePrice }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ lense.notes }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ lense.mount }}</td>
</tr>
<tr>
<th>Image Size</th>
<td>{{ lense.imageSize }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if lense.received %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Formerly Owned?</th>
<td>{% if lense.formerlyOwned %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Front Filter Size</th>
<td>{{ lense.frontFilterSize }}mm</td>
</tr>
<tr>
<th>Rear Filter Size</th>
<td>{{ lense.rearFilterSize }}</td>
</tr>
<tr>
<th>Is Teleconverter?</th>
<td>{% if lense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Design Elements / Groups</th>
<td>{{ lense.designElements }} / {{ lense.designGroups }}</td>
</tr>
<tr>
<th>Aperture Blades</th>
<td>{{ lense.apertureBlades }}</td>
</tr>
</tbody>
</table>
</div>
{% endblock %}

View File

@ -1,20 +1,27 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Edit Camera</h2>
<h2>Edit Camera</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-camera_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-camera_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
<hr />
{{ form_start(reacquire_form) }}
{{ form_widget(reacquire_form) }}
<button type="submit" class="button">Reacquire</button>
{{ form_end(reacquire_form) }}
</div>
{% endblock %}

View File

@ -1,52 +1,52 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Previously Owned Cameras</h2>
<h2>Previously Owned Cameras</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedCamera in previouslyOwnedCameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-camera_show', { 'id': previouslyOwnedCamera.id }) }}">{{ previouslyOwnedCamera.id }}</a></td>
<td>{{ previouslyOwnedCamera.brand }}</td>
<td>{{ previouslyOwnedCamera.mount }}</td>
<td>{{ previouslyOwnedCamera.model }}</td>
<td>{% if previouslyOwnedCamera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
<td>{% if previouslyOwnedCamera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.notes }}</td>
<td>{{ previouslyOwnedCamera.serial }}</td>
<td>${{ previouslyOwnedCamera.purchasePrice }}</td>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
<td>{% if previouslyOwnedCamera.received %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedCamera in previouslyOwnedCameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-camera_show', { 'id': previouslyOwnedCamera.id }) }}">{{ previouslyOwnedCamera.id }}</a></td>
<td>{{ previouslyOwnedCamera.brand }}</td>
<td>{{ previouslyOwnedCamera.mount }}</td>
<td>{{ previouslyOwnedCamera.model }}</td>
<td>{% if previouslyOwnedCamera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
<td>{% if previouslyOwnedCamera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.notes }}</td>
<td>{{ previouslyOwnedCamera.serial }}</td>
<td>${{ previouslyOwnedCamera.purchasePrice }}</td>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
<td>{% if previouslyOwnedCamera.received %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,75 +1,75 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Previously Owned Camera</h2>
<h2>Previously Owned Camera</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-camera_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-camera_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedCamera.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedCamera.brand }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ previouslyOwnedCamera.mount }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedCamera.model }}</td>
</tr>
<tr>
<th>Is Digital?</th>
<td>{% if previouslyOwnedCamera.isDigital %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Crop Factor</th>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
</tr>
<tr>
<th>Is Working?</th>
<td>{% if previouslyOwnedCamera.isWorking %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedCamera.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedCamera.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ previouslyOwnedCamera.purchasePrice }}</td>
</tr>
<tr>
<th>Battery Type</th>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
</tr>
<tr>
<th>Film Format</th>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if previouslyOwnedCamera.received %}Yes{% else %}No{% endif %}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedCamera.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedCamera.brand }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ previouslyOwnedCamera.mount }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedCamera.model }}</td>
</tr>
<tr>
<th>Is Digital?</th>
<td>{% if previouslyOwnedCamera.isDigital %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Crop Factor</th>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
</tr>
<tr>
<th>Is Working?</th>
<td>{% if previouslyOwnedCamera.isWorking %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedCamera.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedCamera.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ previouslyOwnedCamera.purchasePrice }}</td>
</tr>
<tr>
<th>Battery Type</th>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
</tr>
<tr>
<th>Film Format</th>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
</tr>
<tr>
<th>Received</th>
<td>{% if previouslyOwnedCamera.received %}Yes{% else %}No{% endif %}</td>
</tr>
</tbody>
</table>
</div>
{% endblock %}

View File

@ -1,21 +1,21 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Edit Previously Owned Flash</h2>
<h2>Edit Previously Owned Flash</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-flash_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-flash_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Edit</button>
{{ form_end(edit_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Edit</button>
{{ form_end(edit_form) }}
</div>

View File

@ -1,52 +1,52 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Previously Owned Flashes</h2>
<h2>Previously Owned Flashes</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL</th>
<th>TTL Type</th>
<th>Is P-TTL</th>
<th>P-TTL Type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedFlash in previouslyOwnedFlashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-flash_show', { 'id': previouslyOwnedFlash.id }) }}">{{ previouslyOwnedFlash.id }}</a></td>
<td>{{ previouslyOwnedFlash.brand }}</td>
<td>{{ previouslyOwnedFlash.model }}</td>
<td>{% if previouslyOwnedFlash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if previouslyOwnedFlash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
<td>{% if previouslyOwnedFlash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
<td>${{ previouslyOwnedFlash.purchasePrice }}</td>
<td>{{ previouslyOwnedFlash.batteries }}</td>
<td>{{ previouslyOwnedFlash.notes }}</td>
<td>{{ previouslyOwnedFlash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL</th>
<th>TTL Type</th>
<th>Is P-TTL</th>
<th>P-TTL Type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedFlash in previouslyOwnedFlashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-flash_show', { 'id': previouslyOwnedFlash.id }) }}">{{ previouslyOwnedFlash.id }}</a></td>
<td>{{ previouslyOwnedFlash.brand }}</td>
<td>{{ previouslyOwnedFlash.model }}</td>
<td>{% if previouslyOwnedFlash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if previouslyOwnedFlash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
<td>{% if previouslyOwnedFlash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
<td>${{ previouslyOwnedFlash.purchasePrice }}</td>
<td>{{ previouslyOwnedFlash.batteries }}</td>
<td>{{ previouslyOwnedFlash.notes }}</td>
<td>{{ previouslyOwnedFlash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,76 +1,76 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Previously Owned Flash</h2>
<h2>Previously Owned Flash</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-flash_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-flash_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedFlash.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedFlash.brand }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedFlash.model }}</td>
</tr>
<tr>
<th>Is Auto Flash?</th>
<td>{% if previouslyOwnedFlash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Is TTL?</th>
<td>{% if previouslyOwnedFlash.isTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>TTL Type?</th>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
</tr>
<tr>
<th>Is P-TTL?</th>
<td>{% if previouslyOwnedFlash.isPTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>P-TTL Type</th>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
</tr>
<tr>
<th>Guide Number</th>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ previouslyOwnedFlash.purchasePrice }}</td>
</tr>
<tr>
<th>Batteries</th>
<td>{{ previouslyOwnedFlash.batteries }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedFlash.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedFlash.serial }}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedFlash.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedFlash.brand }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedFlash.model }}</td>
</tr>
<tr>
<th>Is Auto Flash?</th>
<td>{% if previouslyOwnedFlash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Is TTL?</th>
<td>{% if previouslyOwnedFlash.isTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>TTL Type?</th>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
</tr>
<tr>
<th>Is P-TTL?</th>
<td>{% if previouslyOwnedFlash.isPTtl %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>P-TTL Type</th>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
</tr>
<tr>
<th>Guide Number</th>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>{{ previouslyOwnedFlash.purchasePrice }}</td>
</tr>
<tr>
<th>Batteries</th>
<td>{{ previouslyOwnedFlash.batteries }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedFlash.notes }}</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedFlash.serial }}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -1,20 +1,20 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Edit Lens</h2>
<h2>Edit Lens</h2>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-lens_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="small callout">
<ul>
<li>
<a href="{{ path('previously-owned-lens_index') }}">Back to the list</a>
</li>
</ul>
</div>
<div class="large primary callout">
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<button type="submit" class="success button">Update</button>
{{ form_end(edit_form) }}
</div>
{% endblock %}

View File

@ -1,58 +1,60 @@
{% extends 'base.html.twig' %}
{% block body %}
<h2>Previously Owned Lenses</h2>
<h2>Previously Owned Lenses</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Coatings</th>
<th>Product Line</th>
<th>Model</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements/Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedLense in previouslyOwnedLenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-lens_show', { 'id': previouslyOwnedLense.id }) }}">{{ previouslyOwnedLense.id }}</a></td>
<td>{{ previouslyOwnedLense.brand }}</td>
<td>{{ previouslyOwnedLense.coatings }}</td>
<td>{{ previouslyOwnedLense.productLine }}</td>
<td>{{ previouslyOwnedLense.model }}</td>
<td>{{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}</td>
<td>{{ previouslyOwnedLense.serial }}</td>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
<td>{{ previouslyOwnedLense.notes }}</td>
<td>{{ previouslyOwnedLense.mount }}</td>
<td>{{ previouslyOwnedLense.frontFilterSize }}</td>
<td>{{ previouslyOwnedLense.rearFilterSize }}</td>
<td>{% if previouslyOwnedLense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedLense.designElements }}/{{ previouslyOwnedLense.designGroups }}</td>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Coatings</th>
<th>Product Line</th>
<th>Model</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Image Size</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements/Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedLense in previouslyOwnedLenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-lens_show', { 'id': previouslyOwnedLense.id }) }}">{{ previouslyOwnedLense.id }}</a></td>
<td>{{ previouslyOwnedLense.brand }}</td>
<td>{{ previouslyOwnedLense.coatings }}</td>
<td>{{ previouslyOwnedLense.productLine }}</td>
<td>{{ previouslyOwnedLense.model }}</td>
<td>{{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}</td>
<td>{{ previouslyOwnedLense.serial }}</td>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
<td>{{ previouslyOwnedLense.notes }}</td>
<td>{{ previouslyOwnedLense.mount }}</td>
<td>{{ previouslyOwnedLense.imageSize }}</td>
<td>{{ previouslyOwnedLense.frontFilterSize }}</td>
<td>{{ previouslyOwnedLense.rearFilterSize }}</td>
<td>{% if previouslyOwnedLense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedLense.designElements }}/{{ previouslyOwnedLense.designGroups }}</td>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@ -1,88 +1,92 @@
{% extends 'form.html.twig' %}
{% block form %}
<h2>Previously Owned Lens</h2>
<h2>Previously Owned Lens</h2>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-lens_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="callout">
<ul>
<li>
<a href="{{ path('previously-owned-lens_index') }}">Back to the list</a>
</li>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">Edit</a>
</li>
</ul>
</div>
<div class="large primary callout">
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedLense.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedLense.brand }}</td>
</tr>
<tr>
<th>Coatings</th>
<td>{{ previouslyOwnedLense.coatings }}</td>
</tr>
<tr>
<th>Product Line</th>
<td>{{ previouslyOwnedLense.productLine }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedLense.model }}</td>
</tr>
<tr>
<th>Aperture Range</th>
<td>ƒ {{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
</tr>
<tr>
<th>Focal Range</th>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}mm</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedLense.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedLense.notes }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ previouslyOwnedLense.mount }}</td>
</tr>
<tr>
<th>Front Filter Size</th>
<td>{{ previouslyOwnedLense.frontFilterSize }}</td>
</tr>
<tr>
<th>Rear Filter Size</th>
<td>{{ previouslyOwnedLense.rearFilterSize }}</td>
</tr>
<tr>
<th>Is Teleconverter</th>
<td>{% if previouslyOwnedLense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Design Elements / Groups</th>
<td>{{ previouslyOwnedLense.designElements }} / {{ previouslyOwnedLense.designGroups }}</td>
</tr>
<tr>
<th>Aperture Blades</th>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th>Id</th>
<td>{{ previouslyOwnedLense.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>{{ previouslyOwnedLense.brand }}</td>
</tr>
<tr>
<th>Coatings</th>
<td>{{ previouslyOwnedLense.coatings }}</td>
</tr>
<tr>
<th>Product Line</th>
<td>{{ previouslyOwnedLense.productLine }}</td>
</tr>
<tr>
<th>Model</th>
<td>{{ previouslyOwnedLense.model }}</td>
</tr>
<tr>
<th>Aperture Range</th>
<td>ƒ {{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
</tr>
<tr>
<th>Focal Range</th>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}mm</td>
</tr>
<tr>
<th>Serial</th>
<td>{{ previouslyOwnedLense.serial }}</td>
</tr>
<tr>
<th>Purchase Price</th>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
</tr>
<tr>
<th>Notes</th>
<td>{{ previouslyOwnedLense.notes }}</td>
</tr>
<tr>
<th>Mount</th>
<td>{{ previouslyOwnedLense.mount }}</td>
</tr>
<tr>
<th>Image Size</th>
<td>{{ previouslyOwnedLense.imageSize }}</td>
</tr>
<tr>
<th>Front Filter Size</th>
<td>{{ previouslyOwnedLense.frontFilterSize }}</td>
</tr>
<tr>
<th>Rear Filter Size</th>
<td>{{ previouslyOwnedLense.rearFilterSize }}</td>
</tr>
<tr>
<th>Is Teleconverter</th>
<td>{% if previouslyOwnedLense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
</tr>
<tr>
<th>Design Elements / Groups</th>
<td>{{ previouslyOwnedLense.designElements }} / {{ previouslyOwnedLense.designGroups }}</td>
</tr>
<tr>
<th>Aperture Blades</th>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
</tr>
</tbody>
</table>
</div>