diff --git a/.docker/images/php/base/Dockerfile b/.docker/images/php/base/Dockerfile index 404bdff1e..9edde9ea1 100644 --- a/.docker/images/php/base/Dockerfile +++ b/.docker/images/php/base/Dockerfile @@ -76,6 +76,8 @@ RUN pecl install mcrypt \ RUN docker-php-ext-install -j$(nproc) curl # Install Zip RUN docker-php-ext-install zip +# Install exif +RUN docker-php-ext-install exif # Install gd RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd diff --git a/.php-cs-fixer.cache b/.php-cs-fixer.cache index 42baa676d..1b3a097ee 100644 --- a/.php-cs-fixer.cache +++ b/.php-cs-fixer.cache @@ -1 +1 @@ -{"php":"8.1.2-1ubuntu2.18","version":"3.59.3","indent":" ","lineEnding":"\n","rules":{"binary_operator_spaces":{"default":"at_least_single_space"},"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"blank_lines_before_namespace":true,"braces_position":{"allow_single_line_empty_anonymous_classes":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_parentheses":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"imports_order":["class","function","const"],"sort_algorithm":"none"},"return_type_declaration":true,"short_scalar_cast":true,"single_import_per_statement":{"group_to_single_imports":false},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"unary_operator_spaces":{"only_dec_inc":true},"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"control_structure_braces":true,"control_structure_continuation_position":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"attribute_placement":"ignore","on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_multiple_statements_per_line":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"spaces_inside_parentheses":true,"statement_indentation":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true},"hashes":{"src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_922907_show.phtml":"8eaf3a3b1c64f979fed55c45b24bc728","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_842889_show.phtml":"2d6efcbaf6b17623bc12cb0f5d612c91","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_234736_show.phtml":"6d653835bdb0da53e0841e75f6d6cc6e","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_941560_show.phtml":"8818f37b43247067d8ae3b5a14b4643e","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_686848_show.phtml":"def4ab19aaa9d7fbfdb614ac6dca48e6","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_455965_show.phtml":"22a834a40efb89217e4d14382a03336b","src\/old\/application\/design\/vorlagen\/tailwindcss\/templates\/article\/.null-ls_356816_show.phtml":"0e9ab99b4f92f52eaadd52aa71722b40","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_669370_Position.php":"bf8a5708a285af970ae6794de6056f6e","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_327960_Position.php":"60b274fedea96037fec284095084a188","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_648625_Position.php":"60b274fedea96037fec284095084a188"}} \ No newline at end of file +{"php":"8.1.2-1ubuntu2.18","version":"3.64.0","indent":" ","lineEnding":"\n","rules":{"binary_operator_spaces":{"default":"at_least_single_space"},"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"blank_lines_before_namespace":true,"braces_position":{"allow_single_line_empty_anonymous_classes":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_parentheses":true,"no_blank_lines_after_class_opening":true,"no_extra_blank_lines":{"tokens":["use"]},"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"imports_order":["class","function","const"],"sort_algorithm":"none"},"return_type_declaration":true,"short_scalar_cast":true,"single_import_per_statement":{"group_to_single_imports":false},"single_space_around_construct":{"constructs_followed_by_a_single_space":["abstract","as","case","catch","class","const_import","do","else","elseif","final","finally","for","foreach","function","function_import","if","insteadof","interface","namespace","new","private","protected","public","static","switch","trait","try","use","use_lambda","while"],"constructs_preceded_by_a_single_space":["as","else","elseif","use_lambda"]},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"unary_operator_spaces":{"only_dec_inc":true},"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"control_structure_braces":true,"control_structure_continuation_position":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"attribute_placement":"ignore","on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_multiple_statements_per_line":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"spaces_inside_parentheses":true,"statement_indentation":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true},"hashes":{"src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_468923_Media.php":"92f751ad5ecc6f5b8bb2ca9f0b9f7ac8","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_523611_Media.php":"fba2d7deb3a272f3d46f4efeb1fc364c","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_563690_Media.php":"250dc3d3495031c6ef40824b93cfa6eb","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_763257_FileHandler.php":"4ffdfca49423eccd42d8ea9e31665b91","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_805861_FileHandler.php":"3208506cf231a6a156dad9dcb592d94c","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_785113_FileHandler.php":"6e21d2750e67ca447c04b193b498e3e0","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_302113_FileHandler.php":"c7a426cab27a26724930c5a558a29f65","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_765656_FileHandler.php":"46936ecb521c0f4b4932a6dcca2c0ae3","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_464092_Image.php":"3467f4c9105568b45bce8770f8dd3e15","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_715870_ImageType.php":"33af641653fa906c38f59bc1e34b858c","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_571057_ImageType.php":"79ce39ca6e1ac3c1f1b4e3b6ad8c36b4","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_499759_ImageType.php":"fd2c67b5af2b239e1268ad703a302518","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_173035_ImageType.php":"f27e4d8c34ca9d495cda48b477795887","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_978901_ImageType.php":"2499c1ad67b7eebd0bc677144096da13","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_561878_FileHandler.php":"7c6618a2b1740dbab361f3a33727cc2f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_929556_FileHandler.php":"2fa0b34227ca6201b7de42d94f97dd44","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_830667_FileHandler.php":"cc057593863f1feb73171ac8b79cb497","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_373108_FileHandler.php":"7c6618a2b1740dbab361f3a33727cc2f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_506437_FileHandler.php":"2d6a1446bd4dcfca37b65272f62ee42a","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_776745_FileHandler.php":"ca2228b801c5b097c1a051802ae97bc4","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Form\/.null-ls_611677_ImageType.php":"f411c023e686238d74a452c1ac04098f","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_487511_Image.php":"e9a0f297dacb8fbf7f5cd2d9d8ada8cc","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_783785_Image.php":"eff6774fead3066cfea49e4bd6b80b69","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_998079_Image.php":"c1b84dc401f54dcf61845a621c62cfcb","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_427257_Image.php":"23ef7ee9bc8d352cf6039d309fdd5a8b","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_343336_ContactAddressType.php":"32e0ea42f118906f6eb042c6282d07e1","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_639494_ContactAddressType.php":"caf69cdfb0f628adbdb7d1c51e47f17a","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_747570_ContactAddressType.php":"5af853dd0ee3b444201e5b4b25090cef","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_762886_ContactAddressType.php":"caf69cdfb0f628adbdb7d1c51e47f17a","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_723693_ContactAddressType.php":"caf69cdfb0f628adbdb7d1c51e47f17a","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_859426_Contact.php":"26758fd28b56d2121d95aeeab0447dd0","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_748580_Contact.php":"2e47d9548e2728f8a1fb606362d39e6d","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_637143_ContactType.php":"c999c9516af05a46f3d41b0c6d5b3407","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_993000_ContactType.php":"4f585ab60ab967cacf23b5be95e3a6e5","src\/new\/src\/PSC\/Shop\/ContactBundle\/Form\/Backend\/General\/.null-ls_582360_ContactType.php":"57c8f507acaa3b5272cda9b4b1dbae34","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_528143_Contact.php":"2d8fdfd17516485a87c45cd22a4baf82","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_981049_Contact.php":"1b5f95bc43a1be50f3c8b6f09b28fb86","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_616328_UploadVariant.php":"830e2cc2ed5ed1af5797f2ca3193cec8","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_956310_ElementBinding.php":"500b9b2d7e416e6cb5d6ea64a001a2c4","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_220270_ElementBinding.php":"a546ee2513d2066d870f623e671d37fe","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_249603_ElementBinding.php":"378be009ec825ed3fd5575f51259f670","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_936017_ElementBinding.php":"335a79f9fe899945cd504b310c1b6d20","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_242806_Form.php":"b7a72b469f8425c913e6a58a8cf44e9a","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_377996_Preview.php":"1633f21149fa2f887f1394e4254fbb26","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_545525_Preview.php":"44737e3296a136541a599037e3f7022f","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Helper\/.null-ls_911482_SaveContact.php":"5d326573a192d1af94c0468189a53448","src\/new\/src\/PSC\/Shop\/ContactBundle\/Model\/Contact\/.null-ls_586141_LayouterData.php":"ce80254b5285cad010a53f7c623bb504","src\/new\/src\/PSC\/Shop\/ContactBundle\/Model\/Contact\/.null-ls_709601_LayouterData.php":"7c30b5f458a390b6204706ff89e81a01","src\/new\/src\/PSC\/Shop\/ContactBundle\/Model\/Contact\/.null-ls_950305_LayouterData.php":"6776031cb703f8ca16694b1d8d312ac4","src\/new\/src\/PSC\/Shop\/ContactBundle\/Model\/Contact\/.null-ls_735419_LayouterData.php":"6776031cb703f8ca16694b1d8d312ac4","src\/new\/src\/PSC\/Shop\/ContactBundle\/Model\/Contact\/.null-ls_850056_LayouterData.php":"8452b81eae75e12a46b02f36d5c56274","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_863377_Contact.php":"6372a6bb1758f79420e85e2f81b073fb","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_218547_Contact.php":"a85d4f9461f66f323e4f6a9c832a29cb","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_789120_UploadVariant.php":"bccda1f6fff0cc27412ddc05d91a2344","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_407891_UploadVariant.php":"523eb7e12550ae18500d31957d24e555","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_386275_UploadVariant.php":"f9c643d8ecf952726f30419654103cea","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_275070_Variant.php":"c0497e5f4a843f7a93532471b7b2f440","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_263031_Variant.php":"b5a7ba12ba82052a8663f7ed1e5e2496","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_311329_Media.php":"fbe4f6a28dcffbcde7c32f584b30628b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_322254_UploadTest.php":"0fe8b147fc38be31dd384e866ef3f3cc","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_284726_UploadTest.php":"4b08136e45f1eec184ee7248a3b3f4ce","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_933323_UploadTest.php":"77e78a7d889d62045aed706b3782d802","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_337372_UploadTest.php":"8790a52efaa6267df1d1c7698a62e45a","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_192450_UploadTest.php":"bcd1845f62e45ddc18aebc96076e02b6","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_882125_UploadVariant.php":"a113e0c8d757409eb1a05fa5e868f1df","src\/new\/src\/PSC\/Shop\/OrderBundle\/Transformer\/Order\/.null-ls_629431_Position.php":"6223384127261ceea1f401ba8524abce","src\/new\/src\/PSC\/Shop\/OrderBundle\/Transformer\/Order\/.null-ls_789712_Position.php":"0c5cb47b6f6074ef5cb9f188dcb81c76","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_616935_Position.php":"3bdbca203d4df1f90c660043e4ca77d4","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_972724_Position.php":"3f4b45e0aed80316d71493109dc4d541","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_390423_Position.php":"0d92eef9157c2f16d0b21de0ca880a9f","src\/new\/var\/plugins\/System\/PSC\/XmlCalc\/Transformer\/.null-ls_104329_Position.php":"897a6d36c65b3070e1613c4b678a67cf","src\/new\/tests\/.null-ls_249799_bootstrap.php":"037d51731afae6c57daad62a476e3cf6","src\/new\/tests\/.null-ls_440827_bootstrap.php":"965095f14963658b4d22abfb44f72bae","src\/new\/tests\/.null-ls_792722_bootstrap.php":"2b85faba698c9679a8531836d81d2b93","src\/new\/tests\/.null-ls_698315_bootstrap.php":"5613363842b9be149ca8b8adaa0e1ae5","src\/new\/tests\/.null-ls_303042_bootstrap.php":"78c30e5bfbd3184e218983c57957e123","src\/new\/tests\/.null-ls_545816_bootstrap.php":"2ac9e718ccb45741d705a99ae609d768","src\/new\/tests\/.null-ls_994103_bootstrap.php":"0d97ec52fc7b07201f37ca1f721f2be7","src\/new\/tests\/PSC\/Shop\/Entity\/.null-ls_278702_OrdersTest.php":"b5953c94fcfdb18a3720c94fba3ee981","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_186081_UploadTest.php":"74f5ba94cf3c2b4b6f7f4ba509ba6689","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_683492_UploadTest.php":"a7122449e19fc702c5c63d50efcffb8e","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_466149_UploadTest.php":"5519c80fd4eb977e8a6fd24586c60d95","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_576424_UploadTest.php":"1a89d0fa41ee5deefe21344cb6d8e2ef","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_334479_UploadTest.php":"734c49ae9b885691a2f3c43e37db2319","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_401830_UploadTest.php":"a32807259b675cac97b339fcd4cb324b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_336163_UploadTest.php":"73a097dc0bae00d67fba5ff76f50cbfe","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_404292_UploadTest.php":"101a5254eaf178074802f664f877d4be","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_736892_UploadTest.php":"70bd6e68035df22a0a6adc391d508099","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_992707_UploadTest.php":"3f2bd0bb4c81b3062961f7b7cda7b3f7","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_139513_UploadTest.php":"0e31ea219c7b41525feefc359e3febf9","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_939871_UploadTest.php":"3c2fc9e4c3dbdf6997237d03da1e9578","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_167027_UploadTest.php":"6c971d1d43acfcbec0776ce7d1dec6a8","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_514469_UploadTest.php":"27d484354a0143b40fac644f820bef83","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_183526_UploadTest.php":"df2c738db185b683c33e709970004b36","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_459876_UploadTest.php":"20c799e466fe099206751465f747c928","src\/new\/src\/PSC\/System\/SettingsBundle\/Service\/.null-ls_919562_Shop.php":"705f24f4eafd6197ac6b0ae3faaaf02d","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_141213_UploadTest.php":"107d60dd6d586063da05314d1fa40fa4","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_527403_UploadTest.php":"20c799e466fe099206751465f747c928","src\/new\/src\/PSC\/System\/SettingsBundle\/Service\/.null-ls_683743_Shop.php":"140174f070ddcbe17b8d87af8c3557d5","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_500161_UploadTest.php":"4c79a2ffd5d229bee8ee9e9a253d0282","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_994205_UploadTest.php":"c7d9f666fff1b40dad7ab445efac2c93","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_200424_UploadTest.php":"7aea08fc4b28e87e7e86e0a590ea1e26","src\/new\/src\/PSC\/System\/SettingsBundle\/Service\/.null-ls_728350_Shop.php":"a242dcabac5870f4fe70908c343818b4","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_651891_UploadTest.php":"1f1710c90cdce22701dd935ceae2db3c","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_227453_UploadTest.php":"1f1710c90cdce22701dd935ceae2db3c","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_753187_UploadTest.php":"05a74c6e0861e6400db7aa2cba24df4b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_234538_UploadTest.php":"11f08292e54b4dc8759093e5a1e9f6c2","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_539167_UploadVariantTest.php":"924d6898de426fbb84cb7fdc64b1717b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_871352_UploadVariantTest.php":"e0df6c4ddac585248d70f54b36ae581f","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_542049_UploadVariantTest.php":"2ff03832dd7172493316c8eb429dcf0b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_574791_UploadVariantTest.php":"c799138e39a9d2158d2bec1eee77c857","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_866990_UploadVariantTest.php":"dea0c092026f32aebca519c22e4ff382","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_143506_UploadVariantTest.php":"d5a8d4a3ad64e28e22055d7f3a69fa24","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_844598_UploadVariantTest.php":"a37646f683fd2b49a2d23cfae25ebe4f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_334286_UploadVariant.php":"c7a43769e906f48136744b21efe5bb2e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_904574_UploadVariant.php":"25a593ff0da71e2f989283457b076334","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_784833_UploadVariant.php":"daf7b0ec46f1f277cb464c2c5f9def23","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_612515_UploadVariant.php":"7170a3c32cf031a71d4121ba19d1e897","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_721532_UploadVariant.php":"a3a306c388421e1efb151cc03216f1df","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_364932_UploadVariant.php":"f0e16e5a3fdb7683c776c398228b14d6","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_290785_UploadVariant.php":"6a03208ec0adf9b54f3880ed11a25d38","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_565279_Media.php":"358df213c977cad9d6db8df91e1c0fd3","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_310863_Media.php":"87584738cf116d7b030159aceb859379","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_365101_Media.php":"250dc3d3495031c6ef40824b93cfa6eb","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_334403_Variant.php":"b5a7ba12ba82052a8663f7ed1e5e2496","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_973354_Variant.php":"f1707a4814a48c0210309a3922db1998","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_318624_Variant.php":"fd34cddb1cb41eb59f560b14131ec932","src\/new\/src\/PSC\/Shop\/MediaBundle\/Transformer\/.null-ls_238305_Media.php":"e4d6ae54c51affd8e3b63a7a76ff9ff9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_821765_UploadVariant.php":"72b01d64e82716c0bd38ae55cdf5d249","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_490736_UploadVariant.php":"7c005446975e42c691efcdf521256cb6","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_524594_UploadVariant.php":"164ed1346934ed01008d9b4d5ad91b2b","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_477857_UploadVariant.php":"a4d7daf64e26f80eef77651b83999210","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_635840_UploadVariant.php":"f7983641f81c66487dd3d97b83dda4e3","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_925581_Variant.php":"9f258cefdc3b70081f1b6c283a78084e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_723507_Variant.php":"affdd96e6be1d5e5fbe54bebecbde6fa","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_480804_UploadVariant.php":"f8628ba931fc834d02ec55ad31d74dbf","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_690879_Variant.php":"be9a9c7a9a02c714e18e58e9d0c7fd53","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_774156_Variant.php":"0d4b3098a1b9750facbd297c70040fa6","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_846820_Media.php":"3323f24f4ed79d8c18f04020238f7b50","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_485602_Media.php":"1b9eb9c340a70d9e95e07e67c8609d7c","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_213012_Media.php":"2044cf36b21dc57e978930f64773ca9c","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_757788_Media.php":"4201f1d529db3c6531d0cca697a4d895","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_973087_Media.php":"f47f13f83b3026e63ab8fb295f7023f9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_217033_Media.php":"1987512510589aa73ec56f3381d74ac0","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_119054_Media.php":"9c9ddea8e6783351fd65aa20a961606e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_593723_UploadVariant.php":"a9fb228dadef40fe3cd58c440dde5e7d","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_902175_UploadVariant.php":"d81eb3f7b6cf4787dfc65b37382dd5f0","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_359800_UploadVariant.php":"236727f91f181990a17f2c114ca5a720","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_643436_UploadVariant.php":"98a8a059148916f267ebdabd9460e4c9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_230410_UploadVariant.php":"f0e349be8c12f497c03c8bf05f703b9b","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_926697_Variant.php":"9efd5cc08ba7a6cd5e6ad132e04afa2f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_125697_Variant.php":"9efd5cc08ba7a6cd5e6ad132e04afa2f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_915191_Variant.php":"50eb6866479cd859baff7d98b1ccf2c2","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_938956_Variant.php":"8653f62de4ab6867b61d5a73b8a7f43b","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_696363_Variant.php":"70cfdad1942319cf5dc308595646a422","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/Embed\/.null-ls_600382_Variant.php":"e5c405aa83d66eb5a5de70c3442406da","src\/new\/tests\/.null-ls_921257_RefreshDatabaseTrait.php":"6bdb3917e201b6e4d0fe3d451b96b320","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_490078_UploadVariant.php":"a562eca233b8825ddae85b2e91d33798","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_634744_UploadVariant.php":"43326929403dbda59c979d8156b10a96","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_648375_UploadVariant.php":"a4457230e90abc8d0940964c3a00851f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Transformer\/.null-ls_282986_Media.php":"fad1a630379f0e1f5d3ed8f6877b5d5e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_965351_UploadVariant.php":"a5f1de56b45c49dc37f4d883777033ed","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_806720_UploadVariant.php":"f5452cea37d5769010e809a4e99bbb1f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_532427_UploadVariant.php":"6e7a27acea67a6b853a2790442f99766","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_759603_UploadVariant.php":"0e7fd86820d68b54b46e1c1c4fdbc6f4","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_604087_Media.php":"6bf74798c2e3d0990f033501377421c4","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_998710_UploadVariantTest.php":"823d3fd6336d7e92fcdd3b65b29503d0","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_379051_UploadVariantTest.php":"71aaa40e8ba4ca63a3896dd9c4c32ea4","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_246613_UploadVariantTest.php":"0b06e24e8786666a7c67c424904b865b","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_485327_UploadVariantTest.php":"123af36bd9257c76a0587e4b3e2b6b7c","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_643297_UploadVariantTest.php":"3c3976315c32f0d1db3e9dc85daa9464","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_696330_UploadVariantTest.php":"b1c64489ca74e73902212e2b18e8d158","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_941414_UploadVariantTest.php":"338b6da7d41fafb275111751c580bd79","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_556220_UploadVariantTest.php":"eac28e4e15490cd0c44179a5adcaa9e8","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_412029_UploadVariantTest.php":"7a72d2b646a6e4ee3702789a7f658318","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_269891_UploadVariantTest.php":"523f72a258ae68be7e2f0a1171ee9e31","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_980840_UploadVariantTest.php":"523f72a258ae68be7e2f0a1171ee9e31","src\/new\/src\/PSC\/Shop\/MediaBundle\/Transformer\/.null-ls_512351_Media.php":"9a63cde8c7b97a4b8e6137ee7c10578e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_651899_Variant.php":"d9804d5aebd468b9fe12b6e771e0e192","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_254935_Variant.php":"9d325daad391bc124e5cb6c98030ecef","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_469325_UploadVariantTest.php":"ceff48d8fc744da47c115e2ffe4c6406","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_944574_UploadVariantTest.php":"28eea987673e29cc70ca8d73425605e4","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_188162_UploadVariantTest.php":"473426a1a0c6cad5441ca40d58a18fb6","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_374937_UploadVariantTest.php":"fcabc508020f765d12a7a78f5b1c8a0e","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_165159_UploadVariantTest.php":"6939edc54636a4bae855861b70aa7edf","src\/new\/tests\/PSC\/Shop\/Media\/Api\/.null-ls_394212_UploadVariantTest.php":"b9a73367b0c72a1c6f675e6469e19cde","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_532665_Media.php":"32a2fe021e5877e07c02fa0c7992c081","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_329580_Media.php":"89c5f7cc4dfdde2442442c71ab7bd50e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_721137_Media.php":"0e49b5f8b0907f9063dfbf99ea6e417d","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_982870_Media.php":"8c6443532c7ccfdcdc9ad9c1a758a577","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_893152_Media.php":"51fd7c45a1182289f2afaebd39d4bd84","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_590248_Media.php":"8016604b9dea3aac375e41cdf1832914","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_330836_Media.php":"2902479aecd4ea873a686a465bb87404","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_355172_Media.php":"0acdf09f57ce8a19012f0034d88f7cb6","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_114883_Media.php":"523442004f9e444fbf24e178eb0a8af1","src\/new\/src\/PSC\/Shop\/MediaBundle\/Document\/.null-ls_841631_Media.php":"1b93fedf96034193e210fb2db199c3f2","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_780797_UploadVariant.php":"2fb2ae8ce9b1c38ccdc2d581c064c0ba","src\/new\/src\/PSC\/Shop\/MediaBundle\/Api\/.null-ls_955286_UploadVariant.php":"0e7fd86820d68b54b46e1c1c4fdbc6f4","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_278483_Image.php":"0b7c7c639daab240533c0f18e12704aa","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_912329_Element.php":"753496769610521c0bea4e95f254e070","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_674885_Element.php":"bcb5efcf9a6a1ec8c4738304a34b4187","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_126305_Element.php":"753496769610521c0bea4e95f254e070","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_383688_Contact.php":"f09352d72492e4e8c3f94d2e06c49e24","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_394588_Contact.php":"b5f6282e6c680e58ccee7bba41cdf52e","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_546491_Contact.php":"8e8dd1e043777676c11356238666089b","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_358862_Contact.php":"d9af52c839d2260a701384433428aac5","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_952520_Preview.php":"3dc3e4d54c01b65da5531d7e83961bd5","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_727536_Preview.php":"a31cfcf813394f745335c46c2d2d392b","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_338385_Preview.php":"fc857fb2922b6c18feb44f3d1d95f84a","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_869012_Preview.php":"4bb840a9db743cda1d894051979a8e45","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_799445_Preview.php":"6271f18aa43b43d45e0e3c1a7fc7ee80","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_922439_Preview.php":"9ca99ec240a8da98eb870841dc4d4b6d","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_156331_Preview.php":"093567830fa60dbdc859fd4c48b1f638","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_520387_Preview.php":"acd214d8fc089b54322eed31c044a7b3","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_503756_Preview.php":"91250452067a59fd29436c77b8a0fb22","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_133915_Preview.php":"d17fc28331315a7a140fcb0c871b5278","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_650088_Preview.php":"430877ecc9f9d5e3b1f357e0ff8db9a9","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_938427_Preview.php":"0380aaa8ab6200184079342e66d5586b","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_206952_Preview.php":"bb4b8e535e6ffbfa2a465b127512be20","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_866015_Preview.php":"f0b5f884d2780d7355519cb0729f254d","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_501297_Preview.php":"712d06044c32014ac1152eba404d6da7","src\/new\/src\/PSC\/Shop\/MediaBundle\/Service\/.null-ls_497656_MediaManager.php":"341776b9731d058ce0658e53c07f8c4c","src\/new\/src\/PSC\/Shop\/MediaBundle\/Service\/.null-ls_749713_MediaManager.php":"f00f6a328718aa8321b294ff2488e525","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_531873_Media.php":"cc887021d7a8fdbe04da8fa5166b13f2","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_657405_Media.php":"1318b623c3e3ab454b6f2fc01ef519d9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_951952_Media.php":"87268afd2d3329b8c2d6857afea52fbc","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_583378_Preview.php":"058e49479607a2950a1a976ae295cf62","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_135669_Preview.php":"c453203a1f16d0fa23a4a65b7467d578","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_595368_Preview.php":"f2c1ff32aa12a53a9717b6414ea3c640","src\/new\/src\/PSC\/Shop\/MediaBundle\/Twig\/Extension\/.null-ls_893916_MediaExtension.php":"869c2aaed848c66be5f41a1e23a50b96","src\/new\/src\/PSC\/Shop\/MediaBundle\/Twig\/Extension\/.null-ls_391427_MediaExtension.php":"b781816704d6e81afc56db16ebfb223b","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_535140_SVGMeltedLogo.php":"ce407ff5715c837d02b1aba7975bf512","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_856416_SVGMeltedLogo.php":"0508bdbc85c11943686cbacc9ce12672","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_406932_QRSvgWithLogo.php":"d237800288af98e26b2e8891687e264a","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_527785_SVGWithLogoOptions.php":"967c324948a0667428e2b017b2bb8a53","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_289421_SVGWithLogoOptions.php":"0a3f52331e74f257ca4653ecc70fec34","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_803451_SVGWithLogoOptions.php":"56442c8e576d9c76987ddaea613d816f","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_343176_SVGWithLogoOptions.php":"a5de23de8aac77c14865232ab3bfd6ee","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_842923_SVGWithLogoOptions.php":"ef87a5a045c503c150d9b118e4ac980b","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_491366_SVGWithLogoOptions.php":"a8e44d050356d56d5f6ab72a189d3968","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_178146_SVGWithLogoOptions.php":"8a54018cd0730b089904e145c50abc59","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_698086_SVGWithLogoOptions.php":"1d612fd2debe975dde4f7d7bbb127b49","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_580355_QRSvgWithLogo.php":"29534f27b3e0cfe16b902d944b43e881","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_641132_QRSvgWithLogo.php":"156011009c3f2f7037b69c7f82019025","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_172013_QRSvgWithLogo.php":"c0477856b7729caf81c7a3714cc74069","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_884766_QRSvgWithLogo.php":"1d3ef39240c60b4d8ef922559d741323","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_100090_Barcode.php":"49f84b804f140695f075dd6f71c778a5","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_745730_Barcode.php":"116a42fd85eab3ea0de7f3a20785aca3","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_785681_Barcode.php":"706614683d9e0cbbe938da2e0ac252c3","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_335874_Barcode.php":"ecc32aca36f1caa5a01b1da5968ff7e6","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_751455_QRSvgWithLogo.php":"d7f84691cd665eee03f886f6855749c1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_886447_QRSvgWithLogo.php":"d7f84691cd665eee03f886f6855749c1","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_578992_Barcode.php":"5f79e1c6b4dc80e97bfa434ba258d47d","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_979099_Barcode.php":"da98f95243041d4850a6aa115176bf80","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_800801_Barcode.php":"8d69bccc0074242073b256d3e2b9fb52","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_806294_Barcode.php":"febdaa2eb6d7a416cc89da8fa0ab2d52","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_405355_Barcode.php":"b470e8665f8dfe0af15ed0921516a9d0","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_828990_Barcode.php":"c591aed0554ac09e4e08b9a3f64b229a","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_818117_Barcode.php":"22b0a183b363bff2549b65b12f61628a","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_840462_Barcode.php":"6d7509d7371d45bbecfb9f4560a05e13","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_995340_Barcode.php":"15d0f303f97869bfe32d29f391b9d133","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_851193_SVGWithLogoOptions.php":"b09137b2cf83fb2edfbab402329c6d17","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_490456_SVGWithLogoOptions.php":"ad1daf98685608ee495b4fd48a401e83","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_169941_QRSvgWithLogo.php":"caaf21e25ddbf3b31defcfb5b1bf8429","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_401342_QRSvgWithLogo.php":"f7e6eb363ad5e26fb55c1f5275bd072b","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_418791_Barcode.php":"a139b8c32aaa9a0700a411f89e0f7a09","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_882773_Barcode.php":"a3b0024cd5edd2fcfed190a8fe27f468","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_975421_Barcode.php":"e013d7c7937b98a885fd4db8936d9ee8","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_407995_Barcode.php":"4342acb3f6cc2eeb631f159a6f3f25f0","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_892405_Barcode.php":"6a0e5dc22cbf9c3c9c62dd04fd121895","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_305665_Barcode.php":"8bf5165d1074fbb2c3120f32df29fde9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/File\/.null-ls_981141_FileHandler.php":"b3613b9debb62090073298b11f9a52c2","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_867453_Barcode.php":"c57636cbde56620a223f738ec38e3554","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_565066_SVGWithLogoOptions.php":"0b28f4795e05e71d9022bc94cffcc6b2","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_149065_QRSvgWithLogo.php":"6ba80bdc6c272b2a5c42f2929277fdc1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_373721_QRSvgWithLogo.php":"8a10335d3f51ecaf95d0ccab1791433f","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_509531_QRSvgWithLogo.php":"91eaa90a4fd95bf431c86f025bc667b1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_626827_QRSvgWithLogo.php":"702b9d95bcaaa4f58a2b0a3dece49d30","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_954120_QRSvgWithLogo.php":"d55f59366610a34c3b823cf6de8c4752","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_254582_QRSvgWithLogo.php":"a5e9b5e4a30c2f4f802b1bb3dc677bd9","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_835406_QRSvgWithLogo.php":"eb0b15ced8c4b3093e499704fd52a17a","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_335760_QRSvgWithLogo.php":"03214687c0227e0eb31c9ae5d16bd668","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_666805_QRSvgWithLogo.php":"688c02ba58562117d2c116dba386c2ea","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_536971_QRSvgWithLogo.php":"4c4094ba251aa33f4ec8e3af48d947a1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_852809_QRSvgWithLogo.php":"54ec4806792de39e27393d5cd3d6bd34","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_614559_QRSvgWithLogo.php":"360e64cbad769b3c8a2790d64ffa761a","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_826904_QRSvgWithLogo.php":"4f78afdccb9ff4a5a479731255709e47","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_718449_QRSvgWithLogo.php":"4d5477d0ce8eb45e3a533f9c2627fafd","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_634758_QRSvgWithLogo.php":"4f78afdccb9ff4a5a479731255709e47","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_245368_QRSvgWithLogo.php":"275b0f2bff713228b4fe9962c0ec1e55","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_215878_QRSvgWithLogo.php":"37b73acb7084b5ddb3404904f6fa8f07","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_866776_QRSvgWithLogo.php":"51e8973eb86b7f764a4d12207f056cc2","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_538894_ImageHandler.php":"7d6531e52e3783f1b5be826b71f10a73","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_688057_ImageHandler.php":"03130371bab081942f64a6205e8a4221","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_880010_ImageHandler.php":"03130371bab081942f64a6205e8a4221","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_226701_ImageHandler.php":"5c5d71e37ecc7ffabe95a381802c1c06","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_704182_ImageHandler.php":"6173f7467f0ce8f1a99b75cca14e7e4e","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_785741_ImageHandler.php":"a16b84e52b0e36073c70d9250ac80926","src\/new\/src\/PSC\/Shop\/MediaBundle\/Helper\/Image\/.null-ls_413019_ImageHandler.php":"6a73176bdc203431553f34f887b3799c","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_255983_QRSvgWithLogo.php":"51e8973eb86b7f764a4d12207f056cc2","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_301617_Barcode.php":"30ed182533c917f28191fd126e8bbf7c","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_335623_Barcode.php":"16ced1d433f9b09afdcdb558e4838bea","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_659447_Barcode.php":"4d2b0b83ddda79f11874a6667a41a58e","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_151891_Barcode.php":"ef741bdca640bcafbc65107db4c6f988","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_875549_Barcode.php":"23594a93e23e34c03ae67b771b84bc5d","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_286348_QRSvgWithLogo.php":"100f0b0b9ff6818fc2e4bd9d76125e8d","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_958966_QRSvgWithLogo.php":"da75cc1a6b0e4abc887af9f891790ca1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_373493_QRSvgWithLogo.php":"4dcc31916771bd43fa94087dce7142e6","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_888216_QRSvgWithLogo.php":"afa88bb1f471d03f9b0e4da08b910dcf","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_684648_QRSvgWithLogo.php":"275d74e86cfffb6de994bedfe312d319","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_990900_QRSvgWithLogo.php":"5697950eed2c395c7e96b1b8c813beda","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_630568_Barcode.php":"b7aa6b8521fc76e7e4a43e1df3ab1c65","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_564351_Barcode.php":"0dc1eb6631634fe67662ad020916a0a1","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_892554_Barcode.php":"92b9a64cfc778f004ac2f62f9f8d7ef5","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_327000_Barcode.php":"92b9a64cfc778f004ac2f62f9f8d7ef5","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_888308_Barcode.php":"0f7f5e421f439efb9e25482ef7a8799c","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_470836_Barcode.php":"2d09c229db4212573762774b0301199a","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_229175_DesignerController.php":"19067b52e611a47736b37a2ff8dbb3ea","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_272950_DesignerController.php":"25d38bf0499e5f12fb8666ca35bda528","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_524866_DesignerController.php":"af9e3d20de28300fec81aa17104116bd","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_650439_DesignerController.php":"af9e3d20de28300fec81aa17104116bd","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_245319_QRSvgWithLogo.php":"e0c2c71400aa2a7accbbf777d9e8a21c","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_524930_QRSvgWithLogo.php":"b514138872290bada3b7dec2236d6eaa","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_880234_QRSvgWithLogo.php":"b514138872290bada3b7dec2236d6eaa","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_656769_QRSvgWithLogo.php":"b514138872290bada3b7dec2236d6eaa","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_134321_QRSvgWithLogo.php":"ea50082e9b946ebb7519e80a278992c4","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_107080_QRSvgWithLogo.php":"b36b4b3ab80390d3f077818982294927","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_613437_QRSvgWithLogo.php":"efc35c11e6419fba83308ebeba24173c","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_688851_QRSvgWithLogo.php":"b3e0f6f5369249a375c9fe46f75426ba","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_817586_QRSvgWithLogo.php":"2d35792ea4be6f0b0cf2d9cd36c2e223","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_649099_Barcode.php":"2721a7587ae76fba1e9f84e448aff262","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_817938_Barcode.php":"2d09c229db4212573762774b0301199a","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_961615_QRGdRounded.php":"16a4726a6715007268caadba5e5215ec","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_933318_QRGdRounded.php":"452228db42e5503adaf99fa8ff195061","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_946651_QRGdRounded.php":"36d5b14f3e32965b03484a3ff109d907","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_654561_Barcode.php":"7807dbd13aa59bb01e4a48119337c0b2","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_738035_Barcode.php":"a3263424c1f9f362bf2d095aae6dfa41","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_646311_Barcode.php":"8857af6548be0598148f35b63c260a88","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_155103_Barcode.php":"7178c06caa785405d421c4ff33a7ff42","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_749109_Barcode.php":"fd565db2a21db57735d3f1a855283dcb","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_365425_Barcode.php":"3a84e9e0468548856eb089b9ba17cfe6","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_935686_Barcode.php":"c583b5d1ab76bb99dc366447c62fcc67","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_763287_Barcode.php":"357f02c5f5cd3675ae9ec33ba34c72c8","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_204200_Barcode.php":"3d0cb05c63fd87315813de8ad329c255","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_410337_Barcode.php":"31ae639dd11390ecbe8a4a1b0ba2444b","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_920705_Barcode.php":"3190ad593543df454171b842399dd05a","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_575791_Barcode.php":"2bbcfa16556933c486434161df256ccf","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_920472_QRGdRounded.php":"5bf88acec5ac09539a4a61619753d4a9","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_170331_QRGdRounded.php":"36d5b14f3e32965b03484a3ff109d907","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_500161_Barcode.php":"ba5987340311964493a8f6a4a8062b7f","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_218615_Barcode.php":"165db0eb7c37aafe16da61a7bcb4931f","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_773277_Barcode.php":"21b34784604d19af155aef2e39e8bc4c","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_118846_Barcode.php":"33700591ce42a335481c50154e634a9b","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_341892_Barcode.php":"18f750282e6522a2608e896885b8766f","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_851038_Barcode.php":"4aa8ed9649f2d02fbf77f1c5a424f8bb","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_239800_Barcode.php":"e8f13009e3970d77e4322654a4f14e39","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_962506_Barcode.php":"e8f13009e3970d77e4322654a4f14e39","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_968203_Barcode.php":"df8bec5e0a8e16f5592bacca3437bd70","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_304889_Barcode.php":"3695bf5479e12f6662605ca08beacca8","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_691892_Barcode.php":"28ff6817de496b8d02792f2db6bbca87","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_280319_Barcode.php":"5498013c7483b8eded17f387e85f4b63","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_367312_Barcode.php":"4073b7fea6ee02c28a5310bf9d7fd5fa","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_538161_Barcode.php":"457eeb412656cf5f5127c90b1da591c6","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_380569_Barcode.php":"63abbe672ce9259e2d233e741d37753f","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_424427_Barcode.php":"f37497ced89b303b54d7794a5fd0499e","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_771811_Barcode.php":"8f5a3e65105e8e112e5a534cf341776a","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_739926_Barcode.php":"0f39723cad9ec9174672dfc53aa0f9dc","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_849568_Barcode.php":"65c9cd9a66f3aa0209bc88b87eda2e0d","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_317808_Barcode.php":"41bf4d63aea93b2f3c010fa3d7a1c76c","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_166128_Barcode.php":"5bfd5f90537b48380e97856f5d51182b","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_230948_QRGdWithLogoOptions.php":"ba2c861a0da4386164d235b97873a18b","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_561721_QRGdWithLogoOptions.php":"10b005fee16865266c33d4e70696a9dd","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_421279_QRGdWithLogoOptions.php":"f9439c89eacd4e445eff563dcb8b1bf6","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_543905_Barcode.php":"0ad6b2ecfcf723c119475a2deb919fc1","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_664430_Barcode.php":"d6f11ceac570256a4d71e3a502bf48bc","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_691394_Barcode.php":"a58204f8002182ad7b4291ec6bd7ff71","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_589085_Barcode.php":"17911623576e80e4276515e6ce410d85","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_874435_Barcode.php":"1a9d2ab42258085ab8ef3af40608fe94","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_392591_QRGdRounded.php":"19809fda33bbe42268bfc3408e14846e","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_663697_QRGdRounded.php":"3f7c06cf7b90e403d73994d29e6c4825","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_246751_QRGdRounded.php":"2b2246537e9e4882c1e533875273c1af","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_620701_QRGdRounded.php":"d9f9cb64f17188b7cc992e8e423337d2","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_529680_QRGdRounded.php":"70fbd8248a42c4e18216d3e354a3efa0","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_238352_QRGdRounded.php":"88be3b450e151ec5ba8bdf21ada20a71","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_991625_QRGdRounded.php":"8902e9dad11c82fac0d0fbff758cf40d","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_288792_Barcode.php":"a1387ae98f18a7f661d1e496c7a09205","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_502415_Barcode.php":"fac4552d47d966ac7ceffb24262639c5","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_626193_QRGdRounded.php":"aacc2c854635a90499e4fdfe243eced0","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_662418_QRGdRounded.php":"354e5dd4bc765ecc45a0ebabf1cf28be","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_881262_QRGdRounded.php":"057a404c5d0f20df68d02136df1220d4","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_937986_QRGdRounded.php":"f388d0117cafad55dd2a091a8354b005","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_355472_QRGdRounded.php":"47f1d401487631d03d390c16fdc0889a","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_971271_QRGdRounded.php":"ccdc9c1c2c9821117212623020197795","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_150774_QRGdRounded.php":"914f1bcfdefb4dd8406c348aa949c7c8","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_914312_QRGdRounded.php":"24d62040c5b8af0a35882fbd42a0a529","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_178510_QRGdRounded.php":"1842b376e7ef8084585c36db50a7705b","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_893229_QRGdRounded.php":"f4b411e0894c17282b4fea571a9f5166","src\/new\/src\/PSC\/Shop\/ContactBundle\/Transformer\/Model\/.null-ls_689634_Contact.php":"d60107be92fb103ba4163702f96ea90e","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_139797_Contact.php":"dafce40e8efd2f631c74c192c73b7027","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_221255_Contact.php":"fe12c723a891126df298099a5e4317fe","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_202176_Contact.php":"d8f1c12bf510f50fec5985701d44267f","src\/new\/src\/PSC\/Shop\/EntityBundle\/Entity\/.null-ls_422664_Contact.php":"d8f1c12bf510f50fec5985701d44267f","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_464402_Image.php":"8a93e7715dfd0bd6b8ec8d900398b034","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_566614_Element.php":"a6edc3dc03e1e3080eb0fa5d3a9fa983","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_911312_Element.php":"5c4a54c85e9379ae44a9418c20c19b6d","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_471971_Element.php":"a6543e9987c99c5fa18e5ca8ca2883f2","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_580368_Media.php":"6e3e3a4ca4f6576dd4246ba429c32af9","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_184325_Media.php":"542e4d18aa398b7ae5d7e82cc632c82f","src\/new\/src\/PSC\/Shop\/MediaBundle\/Model\/.null-ls_118081_Media.php":"6e3e3a4ca4f6576dd4246ba429c32af9","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_425334_Form.php":"07e888cfa9a3efc83757db71a3fe5f39","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_883657_Element.php":"4735263be9624db80206f3ea7ea994be","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_658240_Element.php":"1d09f1829a9bd1f586def10b1d0775b8","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_452110_Element.php":"2a656147dfa007f88bab575e66f695fc","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_201328_Element.php":"2a656147dfa007f88bab575e66f695fc","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_948733_Element.php":"84ef006cfa236a7d79b7b6eed98252ac","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_877022_Element.php":"2a656147dfa007f88bab575e66f695fc","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_935667_Form.php":"c6903cb7a52113ccbbe84add4bb25ab2","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_590875_Form.php":"07e888cfa9a3efc83757db71a3fe5f39","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_802583_Element.php":"36a5f2847038c205ce3ca95c53151151","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_685836_Element.php":"36a5f2847038c205ce3ca95c53151151","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_178871_Element.php":"410fe7fccb23b5dc8070a4859f568f79","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Model\/.null-ls_919935_Element.php":"238fc2d41fd1bd7dd9c56f0d74064359","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_182336_Barcode.php":"d5b3e3d0866e3190652da6e48b3e0fc5","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_817325_Barcode.php":"315095ddd4712a5bfff2e4a728bbddf4","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_761685_DesignerController.php":"6d35af94a89be6c764786396f147bbe2","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_574764_DesignerController.php":"c681850a892f4b069e006cefa77a6c05","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_267206_DesignerController.php":"51ae7cadf1160b446ed74c37a256000a","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_514659_DesignerController.php":"fe1185ab564b8dc1bdb989a544bb27b8","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Controller\/Frontend\/.null-ls_954079_DesignerController.php":"fe1185ab564b8dc1bdb989a544bb27b8","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Helper\/.null-ls_703881_SaveFiles.php":"7631153a0c7c4695140d5217f13ec8f9","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Helper\/.null-ls_648401_SaveFiles.php":"706b1f995ef7d8cda30e3ff4184bb84f","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_677969_Save.php":"871e3dd226fe6e4c03899ac66730929e","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_509018_Save.php":"b3546c48e2d6a12ecbb8e828bd356695","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_237262_Save.php":"aca19166ea184e7ca75cd59840d1b12b","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_912688_Save.php":"8dd30baca5dc52c12f2d68cca8c84d41","src\/old\/application\/articles\/Market\/.null-ls_711261_Article.php":"1cd66cba9e41e5b89d21e4869dc1db10","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_531504_Update.php":"02e019127c9ac0872e66a4008d8d1c99","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_595470_Update.php":"ef49bdc7a1d2c3726d5e205f77eae7f2","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_434365_Update.php":"ef49bdc7a1d2c3726d5e205f77eae7f2","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_297541_Update.php":"008a908038eb5adde2745b5686187629","src\/new\/var\/plugins\/Custom\/PSC\/CollectLayouter\/Api\/.null-ls_483499_Save.php":"1e583f5420f725d3ae581f528c1883ab","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_577326_Barcode.php":"9b69d685ae2684ec7fb72ab0b2e7cd7d","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_428394_Barcode.php":"1d0612a9d23ca52ed0984278f5cc3998","src\/new\/src\/PSC\/System\/SettingsBundle\/Twig\/Node\/.null-ls_385261_Barcode.php":"7ff69f7c8facb2befda30850b24ce3c2","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_744652_QRGdRounded.php":"dc1eece8aaa2cfd4d8c0622e63f39f7e","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_327028_QRGdRounded.php":"cebd405a27e263a4b65568867cdaaed1","src\/new\/src\/PSC\/System\/SettingsBundle\/Barcode\/.null-ls_259210_QRGdRounded.php":"b6e6eea2c71da1e0e28726e9b03d1dcb"}} \ No newline at end of file diff --git a/src/new/.env.test b/src/new/.env.test index 6056355a6..ab11fad84 100755 --- a/src/new/.env.test +++ b/src/new/.env.test @@ -4,4 +4,5 @@ PDFLIB_LIC=L900202-010091-135115-PPD3D2-EHE432 CORS_ALLOW_ORIGIN=* DATABASE_URL=sqlite:///%kernel.project_dir%/var/test.sqlite MONGODB_DB=psc_test +DATABASE_URL=mysql://root:Wichtig1@mysql:3306/psc_test diff --git a/src/new/assets/backend/dashboard/dashboard.js b/src/new/assets/backend/dashboard/dashboard.js index 79134c427..5527ad5cd 100755 --- a/src/new/assets/backend/dashboard/dashboard.js +++ b/src/new/assets/backend/dashboard/dashboard.js @@ -9,7 +9,7 @@ require('./js/tether.min'); require('./js/dropzone'); global.Raphael = require('raphael/raphael.min'); require('morris.js/morris.min'); -require('summernote/dist/summernote-bs4'); +require('summernote/dist/summernote-lite'); require('./js/summernote/mediabundle.plugin'); require('multiselect-two-sides/dist/js/multiselect'); require('bootstrap-toggle/js/bootstrap-toggle.min'); @@ -39,6 +39,6 @@ import './js/tools/mediaChooser'; import 'bootstrap/scss/bootstrap.scss'; import './css/tools/cargobay.toogle.min.css'; import './less/base.less'; -import 'summernote/dist/summernote-bs4.min.css'; +import 'summernote/dist/summernote-lite.min.css'; //import 'multiselect/css/multi-select.css'; import 'bootstrap-toggle/css/bootstrap-toggle.min.css'; diff --git a/src/new/assets/backend/dashboard/js/app.js b/src/new/assets/backend/dashboard/js/app.js index fa8c55ce4..09c51a7f4 100755 --- a/src/new/assets/backend/dashboard/js/app.js +++ b/src/new/assets/backend/dashboard/js/app.js @@ -89,7 +89,7 @@ $(function() { toolbar: [ ['style', ['style']], ['font', ['bold', 'italic', 'underline', 'clear']], - ['fontname', ['fontname']], + ['fontsize', ['fontsize']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['height', ['height']], @@ -100,4 +100,4 @@ $(function() { ['media', ['media']] ] }); -}); \ No newline at end of file +}); diff --git a/src/new/assets/controllers.json b/src/new/assets/controllers.json index 12ca7b282..6a133182a 100755 --- a/src/new/assets/controllers.json +++ b/src/new/assets/controllers.json @@ -11,6 +11,12 @@ } } }, + "@symfony/ux-chartjs": { + "chart": { + "enabled": true, + "fetch": "eager" + } + }, "@symfony/ux-live-component": { "live": { "enabled": true, diff --git a/src/new/composer.json b/src/new/composer.json index 099f89e9e..5bb581353 100755 --- a/src/new/composer.json +++ b/src/new/composer.json @@ -53,11 +53,11 @@ "paypal/rest-api-sdk-php": "dev-master", "php-http/guzzle6-adapter": "^1.1", "phpoffice/phpspreadsheet": "^1.28", + "picqer/sendcloud-php-client": "v2.8.1", "portphp/csv": ">=1.1.0", "portphp/excel": ">=1.1.0", "portphp/steps": ">=1.3", "psc/calc": "dev-master", - "psc/sendcloud-api": "dev-master", "ramsey/uuid": "4.5.1", "sauladam/shipment-tracker": "dev-master", "scssphp/scssphp": "v1.11.1", @@ -87,6 +87,7 @@ "symfony/translation": "*", "symfony/twig-bundle": "*", "symfony/ux-autocomplete": "^2.14", + "symfony/ux-chartjs": "^2.19", "symfony/ux-live-component": "^2.12", "symfony/ux-twig-component": "^2.12", "symfony/validator": "*", @@ -158,23 +159,6 @@ } } } - }, - { - "type": "package", - "package": { - "name": "psc/sendcloud-api", - "version": "dev-master", - "source": { - "url": "https://gitlab.com/printshopcreator/sendcloud-api.git", - "type": "git", - "reference": "main" - }, - "autoload": { - "psr-4": { - "Picqer\\Carriers\\SendCloud\\": "src/Picqer/Carriers/SendCloud" - } - } - } } ], "replace": { diff --git a/src/new/composer.lock b/src/new/composer.lock index 0c53199b7..764613014 100755 --- a/src/new/composer.lock +++ b/src/new/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "cab306080cc5d2db46248d66db3650cc", + "content-hash": "e1ac41f466682124a37c71ab6b4f0668", "packages": [ { "name": "azuyalabs/yasumi", @@ -420,16 +420,16 @@ }, { "name": "chillerlan/php-settings-container", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/chillerlan/php-settings-container.git", - "reference": "8f93648fac8e6bacac8e00a8d325eba4950295e6" + "reference": "95ed3e9676a1d47cab2e3174d19b43f5dbf52681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/8f93648fac8e6bacac8e00a8d325eba4950295e6", - "reference": "8f93648fac8e6bacac8e00a8d325eba4950295e6", + "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/95ed3e9676a1d47cab2e3174d19b43f5dbf52681", + "reference": "95ed3e9676a1d47cab2e3174d19b43f5dbf52681", "shasum": "" }, "require": { @@ -437,15 +437,16 @@ "php": "^8.1" }, "require-dev": { - "phan/phan": "^5.4", "phpmd/phpmd": "^2.15", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-deprecation-rules": "^1.2", "phpunit/phpunit": "^10.5", - "squizlabs/php_codesniffer": "^3.9" + "squizlabs/php_codesniffer": "^3.10" }, "type": "library", "autoload": { "psr-4": { - "chillerlan\\Settings\\": "src/" + "chillerlan\\Settings\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -481,7 +482,7 @@ "type": "ko_fi" } ], - "time": "2024-03-02T20:07:15+00:00" + "time": "2024-07-16T11:13:48+00:00" }, { "name": "cocur/slugify", @@ -981,16 +982,16 @@ }, { "name": "doctrine/dbal", - "version": "3.8.5", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0e3536ba088a749985c8801105b6b3ac6c1280b6" + "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0e3536ba088a749985c8801105b6b3ac6c1280b6", - "reference": "0e3536ba088a749985c8801105b6b3ac6c1280b6", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/d8f68ea6cc00912e5313237130b8c8decf4d28c6", + "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6", "shasum": "" }, "require": { @@ -1006,12 +1007,12 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.11.1", + "phpstan/phpstan": "1.11.7", "phpstan/phpstan-strict-rules": "^1.6", - "phpunit/phpunit": "9.6.19", + "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.9.2", + "squizlabs/php_codesniffer": "3.10.2", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" @@ -1074,7 +1075,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.8.5" + "source": "https://github.com/doctrine/dbal/tree/3.9.0" }, "funding": [ { @@ -1090,7 +1091,7 @@ "type": "tidelift" } ], - "time": "2024-06-08T17:49:56+00:00" + "time": "2024-08-15T07:34:42+00:00" }, { "name": "doctrine/deprecations", @@ -1585,16 +1586,16 @@ }, { "name": "doctrine/mongodb-odm", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/mongodb-odm.git", - "reference": "8c7fa3f31c0018571f9c841b9212811df44ded96" + "reference": "98e2e1b87565609bf562635809ac71a9796d6582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/8c7fa3f31c0018571f9c841b9212811df44ded96", - "reference": "8c7fa3f31c0018571f9c841b9212811df44ded96", + "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/98e2e1b87565609bf562635809ac71a9796d6582", + "reference": "98e2e1b87565609bf562635809ac71a9796d6582", "shasum": "" }, "require": { @@ -1603,10 +1604,10 @@ "doctrine/event-manager": "^1.0 || ^2.0", "doctrine/instantiator": "^1.1 || ^2", "doctrine/persistence": "^3.2", - "ext-mongodb": "^1.11", + "ext-mongodb": "^1.17", "friendsofphp/proxy-manager-lts": "^1.0", "jean85/pretty-package-versions": "^1.3.0 || ^2.0.1", - "mongodb/mongodb": "^1.10.0", + "mongodb/mongodb": "^1.17.0", "php": "^8.1", "psr/cache": "^1.0 || ^2.0 || ^3.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", @@ -1622,12 +1623,12 @@ "ext-bcmath": "*", "jmikola/geojson": "^1.0", "phpbench/phpbench": "^1.0.0", - "phpstan/phpstan": "^1.10.11", + "phpstan/phpstan": "~1.10.67", "phpstan/phpstan-phpunit": "^1.0", "phpunit/phpunit": "^10.4", "squizlabs/php_codesniffer": "^3.5", "symfony/cache": "^5.4 || ^6.0 || ^7.0", - "vimeo/psalm": "^5.9.0" + "vimeo/psalm": "~5.24.0" }, "suggest": { "doctrine/annotations": "For annotation mapping support", @@ -1678,7 +1679,7 @@ ], "support": { "issues": "https://github.com/doctrine/mongodb-odm/issues", - "source": "https://github.com/doctrine/mongodb-odm/tree/2.7.0" + "source": "https://github.com/doctrine/mongodb-odm/tree/2.8.0" }, "funding": [ { @@ -1694,7 +1695,7 @@ "type": "tidelift" } ], - "time": "2024-03-06T14:24:19+00:00" + "time": "2024-06-17T07:52:21+00:00" }, { "name": "doctrine/mongodb-odm-bundle", @@ -1789,16 +1790,16 @@ }, { "name": "doctrine/orm", - "version": "2.19.5", + "version": "2.19.6", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "94986af28452da42a46a4489d1c958a2e5d710e5" + "reference": "c1bb2ccf4b19c845f91ff7c4c01dc7cbba7f4073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/94986af28452da42a46a4489d1c958a2e5d710e5", - "reference": "94986af28452da42a46a4489d1c958a2e5d710e5", + "url": "https://api.github.com/repos/doctrine/orm/zipball/c1bb2ccf4b19c845f91ff7c4c01dc7cbba7f4073", + "reference": "c1bb2ccf4b19c845f91ff7c4c01dc7cbba7f4073", "shasum": "" }, "require": { @@ -1827,14 +1828,14 @@ "doctrine/annotations": "^1.13 || ^2", "doctrine/coding-standard": "^9.0.2 || ^12.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.10.59", + "phpstan/phpstan": "~1.4.10 || 1.11.1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.2", "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0", - "vimeo/psalm": "4.30.0 || 5.22.2" + "vimeo/psalm": "4.30.0 || 5.24.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -1884,22 +1885,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.19.5" + "source": "https://github.com/doctrine/orm/tree/2.19.6" }, - "time": "2024-04-30T06:49:54+00:00" + "time": "2024-06-26T17:24:40+00:00" }, { "name": "doctrine/persistence", - "version": "3.3.2", + "version": "3.3.3", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "477da35bd0255e032826f440b94b3e37f2d56f42" + "reference": "b337726451f5d530df338fc7f68dee8781b49779" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42", - "reference": "477da35bd0255e032826f440b94b3e37f2d56f42", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/b337726451f5d530df338fc7f68dee8781b49779", + "reference": "b337726451f5d530df338fc7f68dee8781b49779", "shasum": "" }, "require": { @@ -1911,15 +1912,14 @@ "doctrine/common": "<2.10" }, "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^12", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.9.4", + "phpstan/phpstan": "1.11.1", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8.5 || ^9.5", "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.3.0" + "vimeo/psalm": "4.30.0 || 5.24.0" }, "type": "library", "autoload": { @@ -1968,7 +1968,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.3.2" + "source": "https://github.com/doctrine/persistence/tree/3.3.3" }, "funding": [ { @@ -1984,20 +1984,20 @@ "type": "tidelift" } ], - "time": "2024-03-12T14:54:36+00:00" + "time": "2024-06-20T10:14:30+00:00" }, { "name": "doctrine/sql-formatter", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "d1ac84aef745c69ea034929eb6d65a6908b675cc" + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/d1ac84aef745c69ea034929eb6d65a6908b675cc", - "reference": "d1ac84aef745c69ea034929eb6d65a6908b675cc", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", "shasum": "" }, "require": { @@ -2037,9 +2037,9 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.4.0" + "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" }, - "time": "2024-05-08T08:12:09+00:00" + "time": "2024-08-05T20:32:22+00:00" }, { "name": "egulias/email-validator", @@ -2929,16 +2929,16 @@ }, { "name": "horstoeko/zugferd", - "version": "v1.0.54", + "version": "v1.0.57", "source": { "type": "git", "url": "https://github.com/horstoeko/zugferd.git", - "reference": "91547c8aee9d8da22568b90d7cedfaba15373ebe" + "reference": "272e9baf94156496e0d7119616a9449b71f329d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/91547c8aee9d8da22568b90d7cedfaba15373ebe", - "reference": "91547c8aee9d8da22568b90d7cedfaba15373ebe", + "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/272e9baf94156496e0d7119616a9449b71f329d6", + "reference": "272e9baf94156496e0d7119616a9449b71f329d6", "shasum": "" }, "require": { @@ -2998,9 +2998,9 @@ ], "support": { "issues": "https://github.com/horstoeko/zugferd/issues", - "source": "https://github.com/horstoeko/zugferd/tree/v1.0.54" + "source": "https://github.com/horstoeko/zugferd/tree/v1.0.57" }, - "time": "2024-06-07T07:47:18+00:00" + "time": "2024-07-10T03:39:20+00:00" }, { "name": "imagine/imagine", @@ -3862,16 +3862,16 @@ }, { "name": "laminas/laminas-code", - "version": "4.13.0", + "version": "4.14.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "7353d4099ad5388e84737dd16994316a04f48dbf" + "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/7353d4099ad5388e84737dd16994316a04f48dbf", - "reference": "7353d4099ad5388e84737dd16994316a04f48dbf", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/562e02b7d85cb9142b5116cc76c4c7c162a11a1c", + "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c", "shasum": "" }, "require": { @@ -3883,7 +3883,7 @@ "laminas/laminas-coding-standard": "^2.5.0", "laminas/laminas-stdlib": "^3.17.0", "phpunit/phpunit": "^10.3.3", - "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-phpunit": "^0.19.0", "vimeo/psalm": "^5.15.0" }, "suggest": { @@ -3921,7 +3921,7 @@ "type": "community_bridge" } ], - "time": "2023-10-18T10:00:55+00:00" + "time": "2024-06-17T08:50:25+00:00" }, { "name": "lcobucci/clock", @@ -5280,16 +5280,16 @@ }, { "name": "nelmio/cors-bundle", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/nelmio/NelmioCorsBundle.git", - "reference": "78fcdb91f76b080a1008133def9c7f613833933d" + "reference": "3a526fe025cd20e04a6a11370cf5ab28dbb5a544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/NelmioCorsBundle/zipball/78fcdb91f76b080a1008133def9c7f613833933d", - "reference": "78fcdb91f76b080a1008133def9c7f613833933d", + "url": "https://api.github.com/repos/nelmio/NelmioCorsBundle/zipball/3a526fe025cd20e04a6a11370cf5ab28dbb5a544", + "reference": "3a526fe025cd20e04a6a11370cf5ab28dbb5a544", "shasum": "" }, "require": { @@ -5336,22 +5336,22 @@ ], "support": { "issues": "https://github.com/nelmio/NelmioCorsBundle/issues", - "source": "https://github.com/nelmio/NelmioCorsBundle/tree/2.4.0" + "source": "https://github.com/nelmio/NelmioCorsBundle/tree/2.5.0" }, - "time": "2023-11-30T16:41:19+00:00" + "time": "2024-06-24T21:25:28+00:00" }, { "name": "nesbot/carbon", - "version": "3.5.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "415782b7e48223342f1a616c16c45a95b15b2318" + "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/415782b7e48223342f1a616c16c45a95b15b2318", - "reference": "415782b7e48223342f1a616c16c45a95b15b2318", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cb4374784c87d0a0294e8513a52eb63c0aff3139", + "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139", "shasum": "" }, "require": { @@ -5444,7 +5444,7 @@ "type": "tidelift" } ], - "time": "2024-06-03T17:25:54+00:00" + "time": "2024-07-16T22:29:20+00:00" }, { "name": "nicolab/php-ftp-client", @@ -6437,6 +6437,57 @@ }, "time": "2024-05-31T08:52:43+00:00" }, + { + "name": "picqer/sendcloud-php-client", + "version": "v2.8.1", + "source": { + "type": "git", + "url": "https://github.com/picqer/sendcloud-php-client.git", + "reference": "4a8e063266c03a19add3f6ed670d7fca69bb35d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/picqer/sendcloud-php-client/zipball/4a8e063266c03a19add3f6ed670d7fca69bb35d0", + "reference": "4a8e063266c03a19add3f6ed670d7fca69bb35d0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/guzzle": "~6.0|~7.0", + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Picqer\\Carriers\\SendCloud\\": "src/Picqer/Carriers/SendCloud" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephan Groen", + "email": "info@picqer.com" + } + ], + "description": "A PHP Client for the SendCloud API", + "homepage": "https://github.com/picqer/sendcloud-php-client", + "keywords": [ + "api", + "client", + "parcels", + "php", + "sendcloud", + "shipments" + ], + "support": { + "issues": "https://github.com/picqer/sendcloud-php-client/issues", + "source": "https://github.com/picqer/sendcloud-php-client/tree/v2.8.1" + }, + "time": "2024-07-08T09:59:10+00:00" + }, { "name": "portphp/csv", "version": "2.0.1", @@ -6719,21 +6770,6 @@ } } }, - { - "name": "psc/sendcloud-api", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://gitlab.com/printshopcreator/sendcloud-api.git", - "reference": "main" - }, - "type": "library", - "autoload": { - "psr-4": { - "Picqer\\Carriers\\SendCloud\\": "src/Picqer/Carriers/SendCloud" - } - } - }, { "name": "psr/cache", "version": "3.0.0", @@ -8041,16 +8077,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "287142df5579ce223c485b3872df3efae8390984" + "reference": "6702d2d777260e6ff3451fee2d7d78ab5f715cdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/287142df5579ce223c485b3872df3efae8390984", - "reference": "287142df5579ce223c485b3872df3efae8390984", + "url": "https://api.github.com/repos/symfony/cache/zipball/6702d2d777260e6ff3451fee2d7d78ab5f715cdc", + "reference": "6702d2d777260e6ff3451fee2d7d78ab5f715cdc", "shasum": "" }, "require": { @@ -8117,7 +8153,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.8" + "source": "https://github.com/symfony/cache/tree/v6.4.10" }, "funding": [ { @@ -8133,7 +8169,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-17T06:05:49+00:00" }, { "name": "symfony/cache-contracts", @@ -8362,16 +8398,16 @@ }, { "name": "symfony/console", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91" + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91", - "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91", + "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", "shasum": "" }, "require": { @@ -8436,7 +8472,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.8" + "source": "https://github.com/symfony/console/tree/v6.4.10" }, "funding": [ { @@ -8452,20 +8488,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c" + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d3b618176e8c3a9e5772151c51eba0c52a0c771c", - "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", "shasum": "" }, "require": { @@ -8517,7 +8553,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.8" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.10" }, "funding": [ { @@ -8533,7 +8569,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T07:32:07+00:00" }, { "name": "symfony/deprecation-contracts", @@ -8604,16 +8640,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "afbf291ccaf595c8ff6f4ed3943aa0ea479e4d04" + "reference": "0de9662441bce4670506d0c371cc819a9d0a7607" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/afbf291ccaf595c8ff6f4ed3943aa0ea479e4d04", - "reference": "afbf291ccaf595c8ff6f4ed3943aa0ea479e4d04", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/0de9662441bce4670506d0c371cc819a9d0a7607", + "reference": "0de9662441bce4670506d0c371cc819a9d0a7607", "shasum": "" }, "require": { @@ -8692,7 +8728,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.8" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.10" }, "funding": [ { @@ -8708,20 +8744,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/dotenv", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "55aefa0029adff89ecffdb560820e945c7983f06" + "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/55aefa0029adff89ecffdb560820e945c7983f06", - "reference": "55aefa0029adff89ecffdb560820e945c7983f06", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/2ae0c84cc9be0dc1eeb86016970b63c764d8472e", + "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e", "shasum": "" }, "require": { @@ -8766,7 +8802,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.4.8" + "source": "https://github.com/symfony/dotenv/tree/v6.4.10" }, "funding": [ { @@ -8782,20 +8818,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-09T18:29:35+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc" + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", - "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", "shasum": "" }, "require": { @@ -8841,7 +8877,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.8" + "source": "https://github.com/symfony/error-handler/tree/v6.4.10" }, "funding": [ { @@ -8857,7 +8893,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/event-dispatcher", @@ -9081,16 +9117,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3" + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d37529150e7081c51b3c5d5718c55a04a9503f3", - "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", "shasum": "" }, "require": { @@ -9127,7 +9163,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.8" + "source": "https://github.com/symfony/filesystem/tree/v6.4.9" }, "funding": [ { @@ -9143,20 +9179,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-28T09:49:33+00:00" }, { "name": "symfony/finder", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" + "reference": "af29198d87112bebdd397bd7735fbd115997824c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", + "url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c", + "reference": "af29198d87112bebdd397bd7735fbd115997824c", "shasum": "" }, "require": { @@ -9191,7 +9227,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.8" + "source": "https://github.com/symfony/finder/tree/v6.4.10" }, "funding": [ { @@ -9207,20 +9243,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-24T07:06:38+00:00" }, { "name": "symfony/flex", - "version": "v1.21.6", + "version": "v1.21.7", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "06b58a5e5b4c6528fb12e0fac5fea0db3f1e7ae8" + "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/06b58a5e5b4c6528fb12e0fac5fea0db3f1e7ae8", - "reference": "06b58a5e5b4c6528fb12e0fac5fea0db3f1e7ae8", + "url": "https://api.github.com/repos/symfony/flex/zipball/33ce7c1c0fe78f8c3a106f193b6c0a7d82384462", + "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462", "shasum": "" }, "require": { @@ -9256,7 +9292,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.21.6" + "source": "https://github.com/symfony/flex/tree/v1.21.7" }, "funding": [ { @@ -9272,20 +9308,20 @@ "type": "tidelift" } ], - "time": "2024-03-02T08:16:37+00:00" + "time": "2024-04-27T10:20:37+00:00" }, { "name": "symfony/form", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "196ebc738e59bec2bbf1f49c24cc221b47f77f5d" + "reference": "67dd6a3fd986cae9a90a8c2c526464c06f525863" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/196ebc738e59bec2bbf1f49c24cc221b47f77f5d", - "reference": "196ebc738e59bec2bbf1f49c24cc221b47f77f5d", + "url": "https://api.github.com/repos/symfony/form/zipball/67dd6a3fd986cae9a90a8c2c526464c06f525863", + "reference": "67dd6a3fd986cae9a90a8c2c526464c06f525863", "shasum": "" }, "require": { @@ -9353,7 +9389,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.4.8" + "source": "https://github.com/symfony/form/tree/v6.4.10" }, "funding": [ { @@ -9369,20 +9405,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-19T08:21:35+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "7c7739f87f1a8be1c2f5e7d28addfe763a917acb" + "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/7c7739f87f1a8be1c2f5e7d28addfe763a917acb", - "reference": "7c7739f87f1a8be1c2f5e7d28addfe763a917acb", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/6cbdb0cc3ddbb63499262cd3036882b08ee2690b", + "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b", "shasum": "" }, "require": { @@ -9501,7 +9537,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.8" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.10" }, "funding": [ { @@ -9517,20 +9553,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T13:24:20+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05" + "reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05", - "reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05", + "url": "https://api.github.com/repos/symfony/http-client/zipball/b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded", + "reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded", "shasum": "" }, "require": { @@ -9594,7 +9630,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.8" + "source": "https://github.com/symfony/http-client/tree/v6.4.10" }, "funding": [ { @@ -9610,7 +9646,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-15T09:26:24+00:00" }, { "name": "symfony/http-client-contracts", @@ -9692,16 +9728,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947" + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", "shasum": "" }, "require": { @@ -9749,7 +9785,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" }, "funding": [ { @@ -9765,20 +9801,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:36:27+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1" + "reference": "147e0daf618d7575b5007055340d09aece5cf068" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", - "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/147e0daf618d7575b5007055340d09aece5cf068", + "reference": "147e0daf618d7575b5007055340d09aece5cf068", "shasum": "" }, "require": { @@ -9863,7 +9899,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.8" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.10" }, "funding": [ { @@ -9879,7 +9915,7 @@ "type": "tidelift" } ], - "time": "2024-06-02T16:06:25+00:00" + "time": "2024-07-26T14:52:04+00:00" }, { "name": "symfony/intl", @@ -9966,16 +10002,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "76326421d44c07f7824b19487cfbf87870b37efc" + "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/76326421d44c07f7824b19487cfbf87870b37efc", - "reference": "76326421d44c07f7824b19487cfbf87870b37efc", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", "shasum": "" }, "require": { @@ -10026,7 +10062,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.8" + "source": "https://github.com/symfony/mailer/tree/v6.4.9" }, "funding": [ { @@ -10042,20 +10078,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-28T07:59:05+00:00" }, { "name": "symfony/mime", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33" + "reference": "7d048964877324debdcb4e0549becfa064a20d43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/618597ab8b78ac86d1c75a9d0b35540cda074f33", - "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33", + "url": "https://api.github.com/repos/symfony/mime/zipball/7d048964877324debdcb4e0549becfa064a20d43", + "reference": "7d048964877324debdcb4e0549becfa064a20d43", "shasum": "" }, "require": { @@ -10069,7 +10105,7 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<6.3.2" + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", @@ -10079,7 +10115,7 @@ "symfony/process": "^5.4|^6.4|^7.0", "symfony/property-access": "^5.4|^6.0|^7.0", "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.3.2|^7.0" + "symfony/serializer": "^6.4.3|^7.0.3" }, "type": "library", "autoload": { @@ -10111,7 +10147,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.8" + "source": "https://github.com/symfony/mime/tree/v6.4.9" }, "funding": [ { @@ -10127,7 +10163,7 @@ "type": "tidelift" } ], - "time": "2024-06-01T07:50:16+00:00" + "time": "2024-06-28T09:49:33+00:00" }, { "name": "symfony/monolog-bridge", @@ -10291,16 +10327,16 @@ }, { "name": "symfony/notifier", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/notifier.git", - "reference": "8def5812a0c180f0d6e0de2b36102bdb5571496e" + "reference": "878a25dad9678b750ad8e431911e3324b21e4927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/notifier/zipball/8def5812a0c180f0d6e0de2b36102bdb5571496e", - "reference": "8def5812a0c180f0d6e0de2b36102bdb5571496e", + "url": "https://api.github.com/repos/symfony/notifier/zipball/878a25dad9678b750ad8e431911e3324b21e4927", + "reference": "878a25dad9678b750ad8e431911e3324b21e4927", "shasum": "" }, "require": { @@ -10349,7 +10385,7 @@ "notifier" ], "support": { - "source": "https://github.com/symfony/notifier/tree/v6.4.8" + "source": "https://github.com/symfony/notifier/tree/v6.4.9" }, "funding": [ { @@ -10365,7 +10401,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-28T07:59:05+00:00" }, { "name": "symfony/options-resolver", @@ -10508,16 +10544,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "shasum": "" }, "require": { @@ -10566,7 +10602,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" }, "funding": [ { @@ -10582,20 +10618,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1" + "reference": "e76343c631b453088e2260ac41dfebe21954de81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1", - "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e76343c631b453088e2260ac41dfebe21954de81", + "reference": "e76343c631b453088e2260ac41dfebe21954de81", "shasum": "" }, "require": { @@ -10650,7 +10686,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.30.0" }, "funding": [ { @@ -10666,20 +10702,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:12:16+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", + "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", "shasum": "" }, "require": { @@ -10734,7 +10770,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0" }, "funding": [ { @@ -10750,20 +10786,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "shasum": "" }, "require": { @@ -10815,7 +10851,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" }, "funding": [ { @@ -10831,20 +10867,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "shasum": "" }, "require": { @@ -10895,7 +10931,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" }, "funding": [ { @@ -10911,20 +10947,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + "reference": "10112722600777e02d2745716b70c5db4ca70442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", + "reference": "10112722600777e02d2745716b70c5db4ca70442", "shasum": "" }, "require": { @@ -10968,7 +11004,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" }, "funding": [ { @@ -10984,20 +11020,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "shasum": "" }, "require": { @@ -11048,7 +11084,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" }, "funding": [ { @@ -11064,20 +11100,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", "shasum": "" }, "require": { @@ -11124,7 +11160,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" }, "funding": [ { @@ -11140,25 +11176,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" + "php": ">=7.1" }, "type": "library", "extra": { @@ -11201,7 +11236,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" }, "funding": [ { @@ -11217,7 +11252,7 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:35:24+00:00" }, { "name": "symfony/process", @@ -11359,16 +11394,16 @@ }, { "name": "symfony/property-info", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "7f544bc6ceb1a6a2283c7af8e8621262c43b7ede" + "reference": "edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/7f544bc6ceb1a6a2283c7af8e8621262c43b7ede", - "reference": "7f544bc6ceb1a6a2283c7af8e8621262c43b7ede", + "url": "https://api.github.com/repos/symfony/property-info/zipball/edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77", + "reference": "edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77", "shasum": "" }, "require": { @@ -11422,7 +11457,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.8" + "source": "https://github.com/symfony/property-info/tree/v6.4.10" }, "funding": [ { @@ -11438,7 +11473,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T07:32:07+00:00" }, { "name": "symfony/proxy-manager-bridge", @@ -11509,16 +11544,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" + "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "url": "https://api.github.com/repos/symfony/routing/zipball/aad19fe10753ba842f0d653a8db819c4b3affa87", + "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87", "shasum": "" }, "require": { @@ -11572,7 +11607,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.8" + "source": "https://github.com/symfony/routing/tree/v6.4.10" }, "funding": [ { @@ -11588,7 +11623,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-15T09:26:24+00:00" }, { "name": "symfony/runtime", @@ -11671,16 +11706,16 @@ }, { "name": "symfony/security-bundle", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "dfb286069b0332e1f1c21962133d17c0fbc1e5e7" + "reference": "50007f4f76632741b62fa9604c5f65807f268b72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/dfb286069b0332e1f1c21962133d17c0fbc1e5e7", - "reference": "dfb286069b0332e1f1c21962133d17c0fbc1e5e7", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/50007f4f76632741b62fa9604c5f65807f268b72", + "reference": "50007f4f76632741b62fa9604c5f65807f268b72", "shasum": "" }, "require": { @@ -11763,7 +11798,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.4.8" + "source": "https://github.com/symfony/security-bundle/tree/v6.4.10" }, "funding": [ { @@ -11779,20 +11814,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-17T10:49:44+00:00" }, { "name": "symfony/security-core", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "5fc7850ada5e8e03d78c1739c82c64d5e2f7d495" + "reference": "432dec55da108c471adcf58c351af01372a52164" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/5fc7850ada5e8e03d78c1739c82c64d5e2f7d495", - "reference": "5fc7850ada5e8e03d78c1739c82c64d5e2f7d495", + "url": "https://api.github.com/repos/symfony/security-core/zipball/432dec55da108c471adcf58c351af01372a52164", + "reference": "432dec55da108c471adcf58c351af01372a52164", "shasum": "" }, "require": { @@ -11849,7 +11884,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.8" + "source": "https://github.com/symfony/security-core/tree/v6.4.10" }, "funding": [ { @@ -11865,7 +11900,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/security-csrf", @@ -11937,16 +11972,16 @@ }, { "name": "symfony/security-http", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "fb82ddec887dc67f3bcf4d6df3cb8efd529be104" + "reference": "8e70f39626ada36c5492c3aff9369c85d2840948" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/fb82ddec887dc67f3bcf4d6df3cb8efd529be104", - "reference": "fb82ddec887dc67f3bcf4d6df3cb8efd529be104", + "url": "https://api.github.com/repos/symfony/security-http/zipball/8e70f39626ada36c5492c3aff9369c85d2840948", + "reference": "8e70f39626ada36c5492c3aff9369c85d2840948", "shasum": "" }, "require": { @@ -12005,7 +12040,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.8" + "source": "https://github.com/symfony/security-http/tree/v6.4.9" }, "funding": [ { @@ -12021,20 +12056,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-21T16:04:15+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c" + "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c", - "reference": "d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c", + "url": "https://api.github.com/repos/symfony/serializer/zipball/9a67fcf320561e96f94d62bbe0e169ac534a5718", + "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718", "shasum": "" }, "require": { @@ -12103,7 +12138,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.8" + "source": "https://github.com/symfony/serializer/tree/v6.4.10" }, "funding": [ { @@ -12119,7 +12154,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T13:13:26+00:00" }, { "name": "symfony/service-contracts", @@ -12205,17 +12240,86 @@ "time": "2024-04-18T09:32:20+00:00" }, { - "name": "symfony/string", - "version": "v6.4.8", + "name": "symfony/stimulus-bundle", + "version": "v2.19.0", "source": { "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d" + "url": "https://github.com/symfony/stimulus-bundle.git", + "reference": "5e2e1aff3e7cff2875e2f901437543fda9ca9910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/a147c0f826c4a1f3afb763ab8e009e37c877a44d", - "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d", + "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/5e2e1aff3e7cff2875e2f901437543fda9ca9910", + "reference": "5e2e1aff3e7cff2875e2f901437543fda9ca9910", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/deprecation-contracts": "^2.0|^3.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "twig/twig": "^2.15.3|^3.8" + }, + "require-dev": { + "symfony/asset-mapper": "^6.3|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "zenstruck/browser": "^1.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\UX\\StimulusBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Integration with your Symfony app & Stimulus!", + "keywords": [ + "symfony-ux" + ], + "support": { + "source": "https://github.com/symfony/stimulus-bundle/tree/v2.19.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-07-30T19:26:23+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "ccf9b30251719567bfd46494138327522b9a9446" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446", + "reference": "ccf9b30251719567bfd46494138327522b9a9446", "shasum": "" }, "require": { @@ -12272,7 +12376,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.8" + "source": "https://github.com/symfony/string/tree/v6.4.10" }, "funding": [ { @@ -12288,7 +12392,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-22T10:21:14+00:00" }, { "name": "symfony/templating", @@ -12358,16 +12462,16 @@ }, { "name": "symfony/translation", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" + "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", + "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9", + "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9", "shasum": "" }, "require": { @@ -12433,7 +12537,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.8" + "source": "https://github.com/symfony/translation/tree/v6.4.10" }, "funding": [ { @@ -12449,7 +12553,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/translation-contracts", @@ -12531,16 +12635,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "57de1b7d7499053a2c5beb9344751e8bfd332649" + "reference": "9bcb26445b9d4ef1087c389234bf33fb00e10ea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/57de1b7d7499053a2c5beb9344751e8bfd332649", - "reference": "57de1b7d7499053a2c5beb9344751e8bfd332649", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9bcb26445b9d4ef1087c389234bf33fb00e10ea6", + "reference": "9bcb26445b9d4ef1087c389234bf33fb00e10ea6", "shasum": "" }, "require": { @@ -12620,7 +12724,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.8" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.9" }, "funding": [ { @@ -12636,7 +12740,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-21T16:04:15+00:00" }, { "name": "symfony/twig-bundle", @@ -12724,16 +12828,16 @@ }, { "name": "symfony/ux-autocomplete", - "version": "v2.18.0", + "version": "v2.19.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-autocomplete.git", - "reference": "aa2e5b1a335f29f1fbd840b1cf52e1c3d3dafc0d" + "reference": "ef15862c55e15a2225587e8b226df21561d36c7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-autocomplete/zipball/aa2e5b1a335f29f1fbd840b1cf52e1c3d3dafc0d", - "reference": "aa2e5b1a335f29f1fbd840b1cf52e1c3d3dafc0d", + "url": "https://api.github.com/repos/symfony/ux-autocomplete/zipball/ef15862c55e15a2225587e8b226df21561d36c7c", + "reference": "ef15862c55e15a2225587e8b226df21561d36c7c", "shasum": "" }, "require": { @@ -12796,7 +12900,7 @@ "symfony-ux" ], "support": { - "source": "https://github.com/symfony/ux-autocomplete/tree/v2.18.0" + "source": "https://github.com/symfony/ux-autocomplete/tree/v2.19.2" }, "funding": [ { @@ -12812,25 +12916,106 @@ "type": "tidelift" } ], - "time": "2024-06-01T17:50:20+00:00" + "time": "2024-08-13T14:54:57+00:00" }, { - "name": "symfony/ux-live-component", - "version": "v2.18.1", + "name": "symfony/ux-chartjs", + "version": "v2.19.3", "source": { "type": "git", - "url": "https://github.com/symfony/ux-live-component.git", - "reference": "29c479836bb8f8efe4902ab6c1c5a22ae708394a" + "url": "https://github.com/symfony/ux-chartjs.git", + "reference": "a16c8272e8e9d362c0f3b4d70742747e26d66147" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/29c479836bb8f8efe4902ab6c1c5a22ae708394a", - "reference": "29c479836bb8f8efe4902ab6c1c5a22ae708394a", + "url": "https://api.github.com/repos/symfony/ux-chartjs/zipball/a16c8272e8e9d362c0f3b4d70742747e26d66147", + "reference": "a16c8272e8e9d362c0f3b4d70742747e26d66147", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/stimulus-bundle": "^2.9.1" + }, + "conflict": { + "symfony/flex": "<1.13" + }, + "require-dev": { + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "symfony-bundle", + "extra": { + "thanks": { + "name": "symfony/ux", + "url": "https://github.com/symfony/ux" + } + }, + "autoload": { + "psr-4": { + "Symfony\\UX\\Chartjs\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Chart.js integration for Symfony", + "homepage": "https://symfony.com", + "keywords": [ + "symfony-ux" + ], + "support": { + "source": "https://github.com/symfony/ux-chartjs/tree/v2.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-14T04:55:38+00:00" + }, + { + "name": "symfony/ux-live-component", + "version": "v2.19.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/ux-live-component.git", + "reference": "9b292543eed8ae0d760d7f5e5397e91e632f2cf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/9b292543eed8ae0d760d7f5e5397e91e632f2cf5", + "reference": "9b292543eed8ae0d760d7f5e5397e91e632f2cf5", "shasum": "" }, "require": { "php": ">=8.1", "symfony/property-access": "^5.4.5|^6.0|^7.0", + "symfony/stimulus-bundle": "^2.9", "symfony/ux-twig-component": "^2.8", "twig/twig": "^3.8.0" }, @@ -12888,7 +13073,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-live-component/tree/v2.18.1" + "source": "https://github.com/symfony/ux-live-component/tree/v2.19.2" }, "funding": [ { @@ -12904,20 +13089,20 @@ "type": "tidelift" } ], - "time": "2024-06-10T12:16:19+00:00" + "time": "2024-08-11T12:24:16+00:00" }, { "name": "symfony/ux-twig-component", - "version": "v2.18.1", + "version": "v2.19.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-twig-component.git", - "reference": "c5ba36dc0f55b75d4c6d7dc546dfdbe4002f82e7" + "reference": "7f8d4891e8e3a3303de11bfc7224b176a23a2c1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/c5ba36dc0f55b75d4c6d7dc546dfdbe4002f82e7", - "reference": "c5ba36dc0f55b75d4c6d7dc546dfdbe4002f82e7", + "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/7f8d4891e8e3a3303de11bfc7224b176a23a2c1c", + "reference": "7f8d4891e8e3a3303de11bfc7224b176a23a2c1c", "shasum": "" }, "require": { @@ -12972,7 +13157,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-twig-component/tree/v2.18.1" + "source": "https://github.com/symfony/ux-twig-component/tree/v2.19.2" }, "funding": [ { @@ -12988,20 +13173,20 @@ "type": "tidelift" } ], - "time": "2024-06-11T18:51:33+00:00" + "time": "2024-08-13T03:00:01+00:00" }, { "name": "symfony/validator", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "dab2781371d54c86f6b25623ab16abb2dde2870c" + "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/dab2781371d54c86f6b25623ab16abb2dde2870c", - "reference": "dab2781371d54c86f6b25623ab16abb2dde2870c", + "url": "https://api.github.com/repos/symfony/validator/zipball/bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", + "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", "shasum": "" }, "require": { @@ -13069,7 +13254,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.8" + "source": "https://github.com/symfony/validator/tree/v6.4.10" }, "funding": [ { @@ -13085,20 +13270,20 @@ "type": "tidelift" } ], - "time": "2024-06-02T15:48:50+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25" + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ad23ca4312395f0a8a8633c831ef4c4ee542ed25", - "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a71cc3374f5fb9759da1961d28c452373b343dd4", + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4", "shasum": "" }, "require": { @@ -13154,7 +13339,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.8" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.10" }, "funding": [ { @@ -13170,20 +13355,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.8", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "792ca836f99b340f2e9ca9497c7953948c49a504" + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/792ca836f99b340f2e9ca9497c7953948c49a504", - "reference": "792ca836f99b340f2e9ca9497c7953948c49a504", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", "shasum": "" }, "require": { @@ -13231,7 +13416,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.8" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" }, "funding": [ { @@ -13247,7 +13432,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-06-24T15:53:56+00:00" }, { "name": "symfony/web-link", @@ -13578,16 +13763,16 @@ }, { "name": "twig/extra-bundle", - "version": "v3.10.0", + "version": "v3.11.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "cdc6e23aeb7f4953c1039568c3439aab60c56454" + "reference": "bf8a304eac15838d7724fdf64c345bdefbb75f03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/cdc6e23aeb7f4953c1039568c3439aab60c56454", - "reference": "cdc6e23aeb7f4953c1039568c3439aab60c56454", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/bf8a304eac15838d7724fdf64c345bdefbb75f03", + "reference": "bf8a304eac15838d7724fdf64c345bdefbb75f03", "shasum": "" }, "require": { @@ -13636,7 +13821,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.10.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.11.0" }, "funding": [ { @@ -13648,20 +13833,20 @@ "type": "tidelift" } ], - "time": "2024-05-11T07:35:57+00:00" + "time": "2024-06-21T06:25:01+00:00" }, { "name": "twig/intl-extra", - "version": "v3.10.0", + "version": "v3.11.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "693f6beb8ca91fc6323e01b3addf983812f65c93" + "reference": "e9cadd61342e71e45b2f4f0558122433fd7e4566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/693f6beb8ca91fc6323e01b3addf983812f65c93", - "reference": "693f6beb8ca91fc6323e01b3addf983812f65c93", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/e9cadd61342e71e45b2f4f0558122433fd7e4566", + "reference": "e9cadd61342e71e45b2f4f0558122433fd7e4566", "shasum": "" }, "require": { @@ -13700,7 +13885,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.10.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.11.0" }, "funding": [ { @@ -13712,20 +13897,20 @@ "type": "tidelift" } ], - "time": "2024-05-11T07:35:57+00:00" + "time": "2024-06-21T06:25:01+00:00" }, { "name": "twig/string-extra", - "version": "v3.10.0", + "version": "v3.11.0", "source": { "type": "git", "url": "https://github.com/twigphp/string-extra.git", - "reference": "cd76ed8ae081bcd4fddf549e92e20c5df76c358a" + "reference": "d25c61baf38705a72ebb5a92d2e9ecb7c473b8ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/string-extra/zipball/cd76ed8ae081bcd4fddf549e92e20c5df76c358a", - "reference": "cd76ed8ae081bcd4fddf549e92e20c5df76c358a", + "url": "https://api.github.com/repos/twigphp/string-extra/zipball/d25c61baf38705a72ebb5a92d2e9ecb7c473b8ac", + "reference": "d25c61baf38705a72ebb5a92d2e9ecb7c473b8ac", "shasum": "" }, "require": { @@ -13767,7 +13952,7 @@ "unicode" ], "support": { - "source": "https://github.com/twigphp/string-extra/tree/v3.10.0" + "source": "https://github.com/twigphp/string-extra/tree/v3.11.0" }, "funding": [ { @@ -13779,20 +13964,20 @@ "type": "tidelift" } ], - "time": "2024-05-11T07:35:57+00:00" + "time": "2024-08-07T17:34:09+00:00" }, { "name": "twig/twig", - "version": "v3.10.3", + "version": "v3.11.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572" + "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", + "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", "shasum": "" }, "require": { @@ -13800,7 +13985,8 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php80": "^1.22", + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", @@ -13846,7 +14032,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.10.3" + "source": "https://github.com/twigphp/Twig/tree/v3.11.0" }, "funding": [ { @@ -13858,7 +14044,7 @@ "type": "tidelift" } ], - "time": "2024-05-16T10:04:27+00:00" + "time": "2024-08-08T16:15:16+00:00" }, { "name": "webmozart/assert", @@ -13952,16 +14138,16 @@ }, { "name": "zircote/swagger-php", - "version": "4.10.0", + "version": "4.10.6", "source": { "type": "git", "url": "https://github.com/zircote/swagger-php.git", - "reference": "2d983ce67b9eb7e18403ae7bc5e765f8ce7b8d56" + "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zircote/swagger-php/zipball/2d983ce67b9eb7e18403ae7bc5e765f8ce7b8d56", - "reference": "2d983ce67b9eb7e18403ae7bc5e765f8ce7b8d56", + "url": "https://api.github.com/repos/zircote/swagger-php/zipball/e462ff5269ea0ec91070edd5d51dc7215bdea3b6", + "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6", "shasum": "" }, "require": { @@ -14027,9 +14213,9 @@ ], "support": { "issues": "https://github.com/zircote/swagger-php/issues", - "source": "https://github.com/zircote/swagger-php/tree/4.10.0" + "source": "https://github.com/zircote/swagger-php/tree/4.10.6" }, - "time": "2024-06-06T22:42:02+00:00" + "time": "2024-07-26T03:04:43+00:00" } ], "packages-dev": [ @@ -14536,16 +14722,16 @@ }, { "name": "nelmio/alice", - "version": "3.13.5", + "version": "3.13.6", "source": { "type": "git", "url": "https://github.com/nelmio/alice.git", - "reference": "f05bd9740f8513da8a9ca78df6a08451a1dea787" + "reference": "76caab8675c68956d56a2dd03f66384251e0aa7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/alice/zipball/f05bd9740f8513da8a9ca78df6a08451a1dea787", - "reference": "f05bd9740f8513da8a9ca78df6a08451a1dea787", + "url": "https://api.github.com/repos/nelmio/alice/zipball/76caab8675c68956d56a2dd03f66384251e0aa7c", + "reference": "76caab8675c68956d56a2dd03f66384251e0aa7c", "shasum": "" }, "require": { @@ -14619,7 +14805,7 @@ ], "support": { "issues": "https://github.com/nelmio/alice/issues", - "source": "https://github.com/nelmio/alice/tree/3.13.5" + "source": "https://github.com/nelmio/alice/tree/3.13.6" }, "funding": [ { @@ -14627,7 +14813,7 @@ "type": "github" } ], - "time": "2024-04-02T09:07:42+00:00" + "time": "2024-07-03T17:54:12+00:00" }, { "name": "nikic/php-parser", @@ -14871,16 +15057,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.4", + "version": "1.11.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "9100a76ce8015b9aa7125b9171ae3a76887b6c82" + "reference": "640410b32995914bde3eed26fa89552f9c2c082f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9100a76ce8015b9aa7125b9171ae3a76887b6c82", - "reference": "9100a76ce8015b9aa7125b9171ae3a76887b6c82", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/640410b32995914bde3eed26fa89552f9c2c082f", + "reference": "640410b32995914bde3eed26fa89552f9c2c082f", "shasum": "" }, "require": { @@ -14925,7 +15111,7 @@ "type": "github" } ], - "time": "2024-06-06T12:19:22+00:00" + "time": "2024-08-08T09:02:50+00:00" }, { "name": "phpunit/php-code-coverage", @@ -16369,16 +16555,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.1", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877" + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", "shasum": "" }, "require": { @@ -16445,7 +16631,7 @@ "type": "open_collective" } ], - "time": "2024-05-22T21:24:41+00:00" + "time": "2024-07-21T23:26:44+00:00" }, { "name": "symfony/browser-kit", @@ -16868,16 +17054,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "bcc806d1360991de3bf78ac5ca0202db85de9bfc" + "reference": "370c9f1e3567cd4670d44311838e37d16182c3a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/bcc806d1360991de3bf78ac5ca0202db85de9bfc", - "reference": "bcc806d1360991de3bf78ac5ca0202db85de9bfc", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/370c9f1e3567cd4670d44311838e37d16182c3a7", + "reference": "370c9f1e3567cd4670d44311838e37d16182c3a7", "shasum": "" }, "require": { @@ -16930,7 +17116,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.8" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.10" }, "funding": [ { @@ -16946,7 +17132,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-19T07:26:48+00:00" }, { "name": "symplify/config-transformer", @@ -17259,7 +17445,6 @@ "paypal/paypal-checkout-sdk": 20, "paypal/rest-api-sdk-php": 20, "psc/calc": 20, - "psc/sendcloud-api": 20, "sauladam/shipment-tracker": 20, "zfb/zfb-vm": 20, "php-parallel-lint/php-parallel-lint": 20, diff --git a/src/new/config/bundles.php b/src/new/config/bundles.php index b551fbcbd..d1be13060 100755 --- a/src/new/config/bundles.php +++ b/src/new/config/bundles.php @@ -59,4 +59,6 @@ return [ Symfony\UX\TwigComponent\TwigComponentBundle::class => ['all' => true], Symfony\UX\LiveComponent\LiveComponentBundle::class => ['all' => true], Symfony\UX\Autocomplete\AutocompleteBundle::class => ['all' => true], + Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true], + Symfony\UX\Chartjs\ChartjsBundle::class => ['all' => true], ]; diff --git a/src/new/config/packages/doctrine.php b/src/new/config/packages/doctrine.php index f0f411739..17aed5bb0 100755 --- a/src/new/config/packages/doctrine.php +++ b/src/new/config/packages/doctrine.php @@ -2,8 +2,27 @@ declare(strict_types=1); +use PSC\Libraries\DoctrineBundle\ORM\Query\AST\Functions\SimpleFunction; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->extension('doctrine', ['dbal' => ['url' => '%env(resolve:DATABASE_URL)%', 'charset' => 'utf8mb4', 'default_table_options' => ['collate' => 'utf8mb4_unicode_ci']], 'orm' => ['auto_generate_proxy_classes' => true, 'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware', 'auto_mapping' => true]]); + $containerConfigurator->extension( + 'doctrine', + [ + 'dbal' => [ + 'url' => '%env(resolve:DATABASE_URL)%', + 'charset' => 'utf8mb4', + 'default_table_options' => ['collate' => 'utf8mb4_unicode_ci']], + 'orm' => [ + 'auto_generate_proxy_classes' => true, + 'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware', + 'auto_mapping' => true, + 'dql' => [ + 'numeric_functions' => [ + 'month' => SimpleFunction::class + ] + ] + ] + ] + ); }; diff --git a/src/new/fixtures/domain.yml b/src/new/fixtures/domain.yml new file mode 100644 index 000000000..6236df4bf --- /dev/null +++ b/src/new/fixtures/domain.yml @@ -0,0 +1,8 @@ +PSC\Shop\EntityBundle\Entity\Domain: + domain_1: + __construct: ['@shop_1'] + host: "pc" + domain_2: + __construct: ['@shop_2'] + host: "bvh" + diff --git a/src/new/package-lock.json b/src/new/package-lock.json index e682c05e1..f85e605ae 100755 --- a/src/new/package-lock.json +++ b/src/new/package-lock.json @@ -20,15 +20,17 @@ "multiselect": "^0.9.12", "multiselect-two-sides": "^2.5.7", "raphael": "^2.3.0", - "summernote": "^0.8.18" + "summernote": "^0.8.20" }, "devDependencies": { "@hotwired/stimulus": "^3.2.2", "@symfony/stimulus-bridge": "^3.2.2", "@symfony/ux-autocomplete": "file:vendor/symfony/ux-autocomplete/assets", + "@symfony/ux-chartjs": "file:vendor/symfony/ux-chartjs/assets", "@symfony/ux-live-component": "file:vendor/symfony/ux-live-component/assets", "@symfony/webpack-encore": "4.2.0", "@types/node": "^18.7.6", + "chart.js": "^3.4.1 || ^4.0", "core-js": "^3.0.0", "regenerator-runtime": "^0.13.2", "sass": "^1.38.0", @@ -2177,6 +2179,13 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true, + "license": "MIT" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -2505,6 +2514,10 @@ "resolved": "vendor/symfony/ux-autocomplete/assets", "link": true }, + "node_modules/@symfony/ux-chartjs": { + "resolved": "vendor/symfony/ux-chartjs/assets", + "link": true + }, "node_modules/@symfony/ux-live-component": { "resolved": "vendor/symfony/ux-live-component/assets", "link": true @@ -4296,6 +4309,19 @@ "node": ">=4" } }, + "node_modules/chart.js": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", + "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, "node_modules/check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -4947,6 +4973,13 @@ "node": ">=4" } }, + "node_modules/cssfontparser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", + "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==", + "dev": true, + "license": "MIT" + }, "node_modules/cssnano": { "version": "5.1.14", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", @@ -6746,6 +6779,17 @@ "optional": true, "peer": true }, + "node_modules/jest-canvas-mock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz", + "integrity": "sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssfontparser": "^1.2.1", + "moo-color": "^1.0.2" + } + }, "node_modules/jest-util": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", @@ -7524,6 +7568,23 @@ "ufo": "^1.3.2" } }, + "node_modules/moo-color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", + "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.1.4" + } + }, + "node_modules/moo-color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/morris.js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/morris.js/-/morris.js-0.5.0.tgz", @@ -9513,6 +9574,13 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -10471,9 +10539,11 @@ } }, "node_modules/summernote": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/summernote/-/summernote-0.8.18.tgz", - "integrity": "sha512-VlwBaNm9vSYMYXvO2f3UCUmY0Gm8jxLcBn+D08aX3pKs4x2vAoyQ4DcDQ6D+PchQiLrf86AGQVfVu56F4aP3ug==" + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/summernote/-/summernote-0.8.20.tgz", + "integrity": "sha512-W9RhjQjsn+b1s9xiJQgJbCiYGJaDAc9CdEqXo+D13WuStG8lCdtKaO5AiNiSSMJsQJN2EfGSwbBQt+SFE2B8Kw==", + "hasInstallScript": true, + "license": "MIT" }, "node_modules/supports-color": { "version": "5.5.0", @@ -11290,6 +11360,19 @@ } } }, + "node_modules/vitest-canvas-mock": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/vitest-canvas-mock/-/vitest-canvas-mock-0.3.3.tgz", + "integrity": "sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-canvas-mock": "~2.5.2" + }, + "peerDependencies": { + "vitest": "*" + } + }, "node_modules/vitest-fetch-mock": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/vitest-fetch-mock/-/vitest-fetch-mock-0.2.2.tgz", @@ -12038,6 +12121,22 @@ "tom-select": "^2.2.2" } }, + "vendor/symfony/ux-chartjs/assets": { + "name": "@symfony/ux-chartjs", + "version": "1.1.0", + "dev": true, + "license": "MIT", + "devDependencies": { + "@hotwired/stimulus": "^3.0.0", + "chart.js": "^3.4.1 || ^4.0", + "resize-observer-polyfill": "^1.5.1", + "vitest-canvas-mock": "^0.3.3" + }, + "peerDependencies": { + "@hotwired/stimulus": "^3.0.0", + "chart.js": "^3.4.1 || ^4.0" + } + }, "vendor/symfony/ux-live-component/assets": { "name": "@symfony/ux-live-component", "version": "1.0.0", @@ -13459,6 +13558,12 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true + }, "@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -13681,6 +13786,15 @@ "vitest-fetch-mock": "^0.2.2" } }, + "@symfony/ux-chartjs": { + "version": "file:vendor/symfony/ux-chartjs/assets", + "requires": { + "@hotwired/stimulus": "^3.0.0", + "chart.js": "^3.4.1 || ^4.0", + "resize-observer-polyfill": "^1.5.1", + "vitest-canvas-mock": "^0.3.3" + } + }, "@symfony/ux-live-component": { "version": "file:vendor/symfony/ux-live-component/assets", "requires": { @@ -15042,6 +15156,15 @@ "supports-color": "^5.3.0" } }, + "chart.js": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", + "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", + "dev": true, + "requires": { + "@kurkle/color": "^0.3.0" + } + }, "check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -15525,6 +15648,12 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "cssfontparser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", + "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==", + "dev": true + }, "cssnano": { "version": "5.1.14", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", @@ -16905,6 +17034,16 @@ "optional": true, "peer": true }, + "jest-canvas-mock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz", + "integrity": "sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==", + "dev": true, + "requires": { + "cssfontparser": "^1.2.1", + "moo-color": "^1.0.2" + } + }, "jest-util": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", @@ -17515,6 +17654,23 @@ "ufo": "^1.3.2" } }, + "moo-color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", + "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", + "dev": true, + "requires": { + "color-name": "^1.1.4" + }, + "dependencies": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, "morris.js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/morris.js/-/morris.js-0.5.0.tgz", @@ -19014,6 +19170,12 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true + }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -19785,9 +19947,9 @@ } }, "summernote": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/summernote/-/summernote-0.8.18.tgz", - "integrity": "sha512-VlwBaNm9vSYMYXvO2f3UCUmY0Gm8jxLcBn+D08aX3pKs4x2vAoyQ4DcDQ6D+PchQiLrf86AGQVfVu56F4aP3ug==" + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/summernote/-/summernote-0.8.20.tgz", + "integrity": "sha512-W9RhjQjsn+b1s9xiJQgJbCiYGJaDAc9CdEqXo+D13WuStG8lCdtKaO5AiNiSSMJsQJN2EfGSwbBQt+SFE2B8Kw==" }, "supports-color": { "version": "5.5.0", @@ -20416,6 +20578,15 @@ } } }, + "vitest-canvas-mock": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/vitest-canvas-mock/-/vitest-canvas-mock-0.3.3.tgz", + "integrity": "sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==", + "dev": true, + "requires": { + "jest-canvas-mock": "~2.5.2" + } + }, "vitest-fetch-mock": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/vitest-fetch-mock/-/vitest-fetch-mock-0.2.2.tgz", diff --git a/src/new/package.json b/src/new/package.json index 8b20eec0d..ef938aa52 100755 --- a/src/new/package.json +++ b/src/new/package.json @@ -3,9 +3,11 @@ "@hotwired/stimulus": "^3.2.2", "@symfony/stimulus-bridge": "^3.2.2", "@symfony/ux-autocomplete": "file:vendor/symfony/ux-autocomplete/assets", + "@symfony/ux-chartjs": "file:vendor/symfony/ux-chartjs/assets", "@symfony/ux-live-component": "file:vendor/symfony/ux-live-component/assets", "@symfony/webpack-encore": "4.2.0", "@types/node": "^18.7.6", + "chart.js": "^3.4.1 || ^4.0", "core-js": "^3.0.0", "regenerator-runtime": "^0.13.2", "sass": "^1.38.0", @@ -36,6 +38,6 @@ "multiselect": "^0.9.12", "multiselect-two-sides": "^2.5.7", "raphael": "^2.3.0", - "summernote": "^0.8.18" + "summernote": "^0.8.20" } } diff --git a/src/new/src/PSC/Backend/DashboardBundle/Controller/DashboardController.php b/src/new/src/PSC/Backend/DashboardBundle/Controller/DashboardController.php index db5e10c57..18aa1e3c4 100755 --- a/src/new/src/PSC/Backend/DashboardBundle/Controller/DashboardController.php +++ b/src/new/src/PSC/Backend/DashboardBundle/Controller/DashboardController.php @@ -23,6 +23,8 @@ use Symfony\Component\Intl\NumberFormatter\NumberFormatter; use Symfony\Component\Routing\Annotation\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; +use Symfony\UX\Chartjs\Builder\ChartBuilderInterface; +use Symfony\UX\Chartjs\Model\Chart; /** * DashboardController fürs ProductionBundle @@ -46,17 +48,69 @@ class DashboardController extends AbstractController #[Security("is_granted('ROLE_SHOP')")] #[Route(path: '/dashboard', name: 'psc_backend_dashboard_index')] #[Template] - public function indexAction(Migration $migration, Shop $shop, EntityManagerInterface $entityManager, Manager $queueService, Instance $instanceService) + public function indexAction(Migration $migration, Shop $shop, EntityManagerInterface $entityManager, Manager $queueService, Instance $instanceService, ChartBuilderInterface $chartBuilder) { /** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shop->getSelectedShop(); - $tempSales = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order')->getIncomeByShop($selectedShop->getUid()); + $year1 = date("Y"); + $year2 = date("Y") - 1; + $year3 = date("Y") - 2; + $tempSales1 = array_column($entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order')->getIncomeByShop($selectedShop->getUid(), $year1), 'brutto', 'monat'); + $tempSales2 = array_column($entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order')->getIncomeByShop($selectedShop->getUid(), $year2), 'brutto', 'monat'); + $tempSales3 = array_column($entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order')->getIncomeByShop($selectedShop->getUid(), $year3), 'brutto', 'monat'); $fmt = new \NumberFormatter(locale_get_default(), \NumberFormatter::CURRENCY); - $sales = array(); - foreach ($tempSales as $sale) { - $sales[] = array('month' => $sale['month'], 'brutto' => round($sale['brutto'])); + $sales1 = array(); + $sales2 = array(); + $sales3 = array(); + for ($i = 1; $i <= 12; $i++) { + if(isset($tempSales1[$i])) { + $sales1[] = round($tempSales1[$i]); + } else { + $sales1[] = 0; + } + if(isset($tempSales2[$i])) { + $sales2[] = round($tempSales2[$i]); + } else { + $sales2[] = 0; + } + if(isset($tempSales3[$i])) { + $sales3[] = round($tempSales3[$i]); + } else { + $sales3[] = 0; + } } + $chart = $chartBuilder->createChart(Chart::TYPE_LINE); + $chart->setData([ + 'labels' => ['Januar', 'Februar', 'März', 'April', 'May', 'Juli', 'Juni', 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'datasets' => [ + [ + 'label' => $year1, + 'backgroundColor' => 'rgb(255, 99, 132, .4)', + 'borderColor' => 'rgb(255, 99, 132)', + 'data' => $sales1, + 'tension' => 0.4, + ], + [ + 'label' => $year2, + 'backgroundColor' => 'rgb(100, 20, 132, .4)', + 'borderColor' => 'rgb(100, 20, 132)', + 'data' => $sales2, + 'tension' => 0.4, + ], + [ + 'label' => $year3, + 'backgroundColor' => 'rgba(45, 220, 126, .4)', + 'borderColor' => 'rgba(45, 220, 126)', + 'data' => $sales3, + 'tension' => 0.4, + ], + ], + ]); + $chart->setOptions([ + 'maintainAspectRatio' => false, + ]); + if ($migration->checkIfMigrationMustRun()) { return $this->redirectToRoute('psc_system_update_migration_do'); @@ -67,7 +121,7 @@ class DashboardController extends AbstractController 'shop' => $selectedShop, 'queueErrorCount' => $queueService->getErrorJobCount(), 'instance' => $instanceService->getInstance(), - 'sales' => json_encode($sales) + 'chart' => $chart ); } } diff --git a/src/new/src/PSC/Backend/DashboardBundle/Resources/views/dashboard/index.html.twig b/src/new/src/PSC/Backend/DashboardBundle/Resources/views/dashboard/index.html.twig index 127b7b549..a2f9ba460 100755 --- a/src/new/src/PSC/Backend/DashboardBundle/Resources/views/dashboard/index.html.twig +++ b/src/new/src/PSC/Backend/DashboardBundle/Resources/views/dashboard/index.html.twig @@ -54,7 +54,7 @@

Sales Graph

-
+ {{ render_chart(chart) }}
@@ -63,26 +63,4 @@ {% endif %} {% endblock %} -{% block javascripts %} - {{ parent() }} - -{% endblock %} \ No newline at end of file diff --git a/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/FunctionFactory.php b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/FunctionFactory.php new file mode 100644 index 000000000..4c5567693 --- /dev/null +++ b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/FunctionFactory.php @@ -0,0 +1,61 @@ +getConnection()->getDatabasePlatform(), + $this->name, + $this->parameters + ); + return $function->getSql($sqlWalker); + } +} diff --git a/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Functions/SimpleFunction.php b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Functions/SimpleFunction.php new file mode 100644 index 000000000..7619c7cdd --- /dev/null +++ b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Functions/SimpleFunction.php @@ -0,0 +1,24 @@ +match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); + $this->parameters[self::PARAMETER_KEY] = $parser->ArithmeticPrimary(); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); + } +} diff --git a/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/Mysql/Month.php b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/Mysql/Month.php new file mode 100644 index 000000000..0973d7f8b --- /dev/null +++ b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/Mysql/Month.php @@ -0,0 +1,20 @@ +parameters[SimpleFunction::PARAMETER_KEY]; + return 'MONTH(' . $this->getExpressionValue($expression, $sqlWalker) . ')'; + } +} diff --git a/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/PlatformFunctionNode.php b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/PlatformFunctionNode.php new file mode 100644 index 000000000..1580db074 --- /dev/null +++ b/src/new/src/PSC/Libraries/DoctrineBundle/ORM/Query/AST/Platform/Functions/PlatformFunctionNode.php @@ -0,0 +1,35 @@ +parameters = $parameters; + } + + abstract public function getSql(SqlWalker $sqlWalker): string; + + /** + * Get expression value string. + * + * @param string|Node $expression + */ + protected function getExpressionValue($expression, SqlWalker $sqlWalker): string + { + if ($expression instanceof Node) { + $expression = $expression->dispatch($sqlWalker); + } + + return $expression; + } +} diff --git a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactAddressType.php b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactAddressType.php index f5e52d50b..1299762ea 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactAddressType.php +++ b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactAddressType.php @@ -16,6 +16,7 @@ namespace PSC\Shop\ContactBundle\Form\Backend\General; use Doctrine\ORM\EntityRepository; use PSC\Shop\EntityBundle\Entity\Shop; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\CountryType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; @@ -47,7 +48,7 @@ class ContactAddressType extends AbstractType ->add('email', TextType::class, ['required' => false, 'label' => 'Email']) ->add('company', TextType::class, ['required' => false, 'label' => 'Company']) ->add('company2', TextType::class, ['required' => false, 'label' => 'Company2']) - ->add('country', TextType::class, ['required' => false, 'label' => 'country']) + ->add('country', CountryType::class, ['preferred_choices' => ['DE', 'CH', 'AT'], 'required' => false, 'label' => 'country']) ->add('fax', TextType::class, ['required' => false, 'label' => 'faxnumber']) ->add('ustid', TextType::class, ['required' => false, 'label' => 'vatid']) ->add('zusatz1', TextType::class, ['required' => false, 'label' => 'additiveone']) diff --git a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php index d7cd72adc..6dc4cc4a9 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php +++ b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php @@ -48,7 +48,7 @@ class ContactType extends AbstractType { /** @var Field */ protected $fields; -/** @var General */ + /** @var General */ protected $shop = null; protected $statusService = null; protected $formFactory; @@ -107,7 +107,7 @@ class ContactType extends AbstractType ->add('uuid', TextType::class, [ 'disabled' => true, 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.uuid }}' ] ]) @@ -225,55 +225,56 @@ class ContactType extends AbstractType 'multiple' => true )) ->add('bankKtoName', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'accountowner', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankKtoName }}' ] ]) ->add('bankKTO', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'accountnumber', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankKTO }}' ] ]) ->add('bankBLZ', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'bankcode', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankBLZ }}' ] ]) ->add('bankIban', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Iban', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankIban }}' ] ]) ->add('bankBic', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'BIC', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankBic }}' ] ]) ->add('bankName', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'bankname', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.bankName }}' ] ]) - + ->add('image', MediaType::class, ['required' => false, 'label' => 'pic']) + ->add('image2', MediaType::class, ['required' => false, 'label' => 'pic']) ->add('information', TextareaType::class, ['required' => false, 'label' => 'information']) ->add('vonwo', TextType::class, ['required' => false, 'label' => 'Fromwhere']) ->add('newsletter', CheckboxType::class, ['required' => false, 'label' => 'newsletter']) @@ -301,99 +302,100 @@ class ContactType extends AbstractType ->add('calcValue2', TextType::class, ['required' => false, 'label' => 'value2']) ->add('company', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Company', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.company }}' ] ]) ->add('company2', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Companyaddition', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.company2 }}' ] ]) ->add('salutation', ChoiceType::class, [ - 'label' => 'salutations', - 'choices' => $this->general->getSalutation(), + 'label' => 'salutations', + 'choices' => $this->general->getSalutation(), 'required' => false, 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.salutation }}' ] ]) ->add('firstname', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'firstname', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.firstname }}' ] ]) ->add('lastname', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'lastname', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.lastname }}' ] ]) ->add('street', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'street', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.street }}' ] ]) ->add('houseNumber', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'housenumber', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.houseNumber }}' ] ]) ->add('zip', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'zip', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.zip }}' ] ]) ->add('city', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'city', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.city }}' ] ]) ->add('destrict', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'destrict', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.destrict }}' ] ]) ->add('state', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'state', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.state }}' ] ]) ->add('country', TextType::class, [ - 'required' => false, + 'required' => false, + 'disabled' => true, 'label' => 'country', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.country }}' ] ]) @@ -410,157 +412,157 @@ class ContactType extends AbstractType ->add('layouterEmail', TextType::class, ['required' => false, 'label' => 'email', 'label_attr' => [ 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.getlayouterdata().email }}']]) ->add('homepage', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'homepage', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.homepage }}' ] ]) - + ->add('phoneAreaCode', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Countrycode', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.phoneAreaCode }}' ] ]) ->add('phonePrefix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'prefix', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.phonePrefix }}' ] ]) ->add('phone', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'number', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.phone }}' ] ]) ->add('phoneAppendix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'extension', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.phoneAppendix }}' ] ]) - + ->add('mobileAreaCode', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Countrycode', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.mobileAreaCode }}' ] ]) ->add('mobilePrefix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'prefix', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.mobilePrefix }}' ] ]) ->add('mobile', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'number', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.mobile }}' ] ]) ->add('mobileAppendix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'extension', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.mobileAppendix }}' ] ]) ->add('faxAreaCode', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Countrycode', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.faxAreaCode }}' ] ]) ->add('faxPrefix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'prefix', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.faxPrefix }}' ] ]) ->add('fax', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'number', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.fax }}' ] ]) ->add('faxAppendix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'extension', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.faxAppendix }}' ] ]) ->add('alternativAreaCode', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Countrycode', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.alternativAreaCode }}' ] ]) ->add('alternativType', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'Typ', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.alternativType }}' ] ]) ->add('alternativ', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'number', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.alternativ }}' ] ]) ->add('alternativAppendix', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'extension', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.alternativAppendix }}' ] ]) - + ->add('birthday', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'birthday', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.birthday }}' ] ]) ->add('kostenstellung', TextType::class, [ - 'required' => false, + 'required' => false, 'label' => 'kostenstellung', 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.kostenstellung }}' ] ]) @@ -599,197 +601,197 @@ class ContactType extends AbstractType } )) ->add('custom1', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName1()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName1() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom1 }}' ] ]) ->add('custom2', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName2()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName2() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom2 }}' ] ]) ->add('custom3', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName3()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName3() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom3 }}' ] ]) ->add('custom4', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName4()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName4() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom4 }}' ] ]) ->add('custom5', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName5()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName5() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom5 }}' ] ]) ->add('custom6', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName6()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName6() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom6 }}' ] ]) ->add('custom7', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName7()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName7() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom7 }}' ] ]) ->add('custom8', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName8()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName8() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom8 }}' ] ]) ->add('custom9', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName9()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName9() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom9 }}' ] ]) ->add('custom10', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName10()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName10() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom10 }}' ] ]) ->add('custom11', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName11()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName11() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom11 }}' ] ]) ->add('custom12', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName12()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName12() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom12 }}' ] ]) ->add('custom13', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName13()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName13() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom13 }}' ] ]) ->add('custom14', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName14()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName14() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom14 }}' ] ]) ->add('custom15', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName15()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName15() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom15 }}' ] ]) ->add('custom16', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName16()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName16() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom16 }}' ] ]) ->add('custom17', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName17()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName17() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom17 }}' ] ]) ->add('custom18', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName18()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName18() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom18 }}' ] ]) ->add('custom19', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName19()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName19() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom19 }}' ] ]) ->add('custom20', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName20()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName20() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom20 }}' ] ]) ->add('custom21', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName21()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName21() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom21 }}' ] ]) ->add('custom22', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName22()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName22() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom22 }}' ] ]) ->add('custom23', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName23()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName23() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom23 }}' ] ]) ->add('custom24', TextType::class, [ - 'required' => false, - 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName24()?? " ", + 'required' => false, + 'label' => $this->shop->getMongoSelectedShop()->getCustomerFieldName24() ?? " ", 'label_attr' => [ - 'data-bs-toggle' => "tooltip", + 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.custom24 }}' ] - ]) + ]) ->add('kundenNr', TextType::class, ['required' => false, 'label' => 'Customernumber', 'label_attr' => [ 'data-bs-toggle' => "tooltip", 'data-bs-html' => '{{ contact.kundenNr }}']]) ->add('password', PasswordType::class, array('required' => false, 'disabled' => false, 'label' => 'password')) @@ -799,7 +801,7 @@ class ContactType extends AbstractType 'choices' => $this->statusService->getOrderStatusAsArray(), 'translation_domain' => 'status' )); -/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ + /** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Contact) as $field) { $builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup(), FormType::class, null, ['mapped' => false]), $options)); } diff --git a/src/new/src/PSC/Shop/ContactBundle/Model/Contact/LayouterData.php b/src/new/src/PSC/Shop/ContactBundle/Model/Contact/LayouterData.php index 0876c5bf3..162a35466 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Model/Contact/LayouterData.php +++ b/src/new/src/PSC/Shop/ContactBundle/Model/Contact/LayouterData.php @@ -3,6 +3,8 @@ namespace PSC\Shop\ContactBundle\Model\Contact; use OpenApi\Attributes as OA; +use PSC\Shop\MediaBundle\Model\Media; +use Nelmio\ApiDocBundle\Annotation\Model; class LayouterData { @@ -105,13 +107,19 @@ class LayouterData #[OA\Property(type: 'string')] private string $district = ""; + #[OA\Property(ref: new Model(type: Media::class))] + private ?Media $image1 = null; + + #[OA\Property(ref: new Model(type: Media::class))] + private ?Media $image2 = null; + #[OA\Property(type: 'string')] private string $state = ""; #[OA\Schema(schema: "StringList", properties: [new OA\Property(property: "value", type:"array", items: new OA\Items(anyOf: [new OA\Schema(type: 'string')]))])] #[OA\Schema(schema: "String", properties: [new OA\Property(property: "value", type:"string")])] #[OA\Schema(schema: "Object", properties: [new OA\Property(property: "value", type:"object")])] - #[OA\Property(type: 'array', items: new OA\Items(oneOf: [new OA\Schema(ref: "#StringList"),new OA\Schema(ref: "#String"),new OA\Schema(ref: "#Object")]))] + #[OA\Property(type: 'array', items: new OA\Items(oneOf: [new OA\Schema(ref: "#StringList"),new OA\Schema(ref: "#String"),new OA\Schema(ref: "#Object")]))] private array $settings = []; public function getKst(): string @@ -401,7 +409,7 @@ class LayouterData public function getSettingForLayouter($layouter): array { - return $this->settings[$layouter]?? []; + return $this->settings[$layouter] ?? []; } public function getFax(): string @@ -474,4 +482,23 @@ class LayouterData $this->email = $email; } + public function getImage1(): Media|string|null + { + return $this->image1; + } + + public function setImage1(Media|string|null $image1): void + { + $this->image1 = $image1; + } + + public function getImage2(): Media|string|null + { + return $this->image2; + } + + public function setImage2(Media|string|null $image2): void + { + $this->image2 = $image2; + } } diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/create.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/create.html.twig index 2498fcdb8..179af1a29 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/create.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/create.html.twig @@ -26,14 +26,6 @@ {{ form_start(form, { 'attr': {'class': 'smart-form'}}) }} {{ form_errors(form) }} - - -
-
@@ -46,18 +38,7 @@ {{ form_errors(form.type) }}
-
-
- -
- {{ form_widget(form.pos) }} -
- {{ form_errors(form.pos) }} -
-
-
+
+
+
+
+ +
+ {{ form_widget(form.homepage) }} +
+ {{ form_errors(form.homepage) }} +
+
+
+
+ +
+ {{ form_widget(form.pos) }} +
+ {{ form_errors(form.pos) }} +
+
+
@@ -169,10 +174,10 @@
{{ form_widget(form.zip) }}
-
+
{{ form_widget(form.city) }}
-
+
{{ form_widget(form.country) }}
{{ form_errors(form.zip) }} @@ -257,23 +262,8 @@
-
-
-
- -
- {{ form_widget(form.homepage) }} -
- {{ form_errors(form.homepage) }} -
-
-
-
-
-
+
{{ form_widget(form.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/edit.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/edit.html.twig index e870d0aba..077237e58 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/edit.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/address_detail/edit.html.twig @@ -26,14 +26,6 @@ {{ form_start(form, { 'attr': {'class': 'smart-form'}}) }} {{ form_errors(form) }} - - -
-
@@ -46,18 +38,7 @@ {{ form_errors(form.type) }}
-
-
- -
- {{ form_widget(form.pos) }} -
- {{ form_errors(form.pos) }} -
-
-
+
+
+
+
+ +
+ {{ form_widget(form.homepage) }} +
+ {{ form_errors(form.homepage) }} +
+
+
+
+ +
+ {{ form_widget(form.pos) }} +
+ {{ form_errors(form.pos) }} +
+
+
+
@@ -169,10 +175,10 @@
{{ form_widget(form.zip) }}
-
+
{{ form_widget(form.city) }}
-
+
{{ form_widget(form.country) }}
{{ form_errors(form.zip) }} @@ -255,23 +261,8 @@
-
-
-
- -
- {{ form_widget(form.homepage) }} -
- {{ form_errors(form.homepage) }} -
-
-
-
-
-
+
{{ form_widget(form.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig index b5d0b3c9e..0c574f5ab 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig @@ -32,9 +32,6 @@
{{ contact.username }}
-
- -
@@ -276,19 +273,6 @@
-
-
-
{{ form_label(form.image) }}
-
-
-
- {{ form_widget(form.image) }} -
- {{ form_errors(form.image) }} -
-
-
-
{{ form_label(form.country) }}
@@ -904,6 +888,21 @@
+
+
{{ form_label(form.image) }}
+
+
+
+ {{ form_widget(form.image) }} + {{ form_errors(form.image) }} +
+
+ {{ form_widget(form.image2) }} + {{ form_errors(form.image2) }} +
+
+
+
@@ -1594,4 +1593,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig index 824cb12ac..99c133a27 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig @@ -31,9 +31,6 @@ {{ form_start(form) }}
-
- -
{{ contact.username }} ( {{ contact.uid }})
@@ -260,19 +257,6 @@
-
-
-
{{ form_label(form.image) }}
-
-
-
- {{ form_widget(form.image) }} -
- {{ form_errors(form.image) }} -
-
-
-
{{ form_label(form.country) }}
@@ -888,6 +872,21 @@
+
+
{{ form_label(form.image) }}
+
+
+
+ {{ form_widget(form.image) }} + {{ form_errors(form.image) }} +
+
+ {{ form_widget(form.image2) }} + {{ form_errors(form.image2) }} +
+
+
+
@@ -1723,4 +1722,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php b/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php index 6ad980ecc..8129ecb97 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php +++ b/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php @@ -6,43 +6,45 @@ use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ORM\EntityManagerInterface; use PSC\Shop\ContactBundle\Model\Role; use PSC\Shop\ContactBundle\Repository\ContactRepository; +use PSC\Shop\MediaBundle\Model\Media; +use PSC\Shop\MediaBundle\Service\MediaManager; +use PSC\Shop\MediaBundle\Transformer\Media as PSCMedia; use PSC\System\SettingsBundle\Service\Shop; class Contact { - - public function __construct(private readonly ContactRepository $contactRepository, private readonly Shop $shopService, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager) + public function __construct(private readonly MediaManager $mediaManager, private readonly ContactRepository $contactRepository, private readonly Shop $shopService, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager, private readonly PSCMedia $mediaTransformer) { } public function toDb(\PSC\Shop\ContactBundle\Model\Contact $contact): void { - if($contact->getUuid() !== "") { + if ($contact->getUuid() !== "") { /** @var \PSC\Shop\EntityBundle\Entity\Contact $contactEntity */ $contactEntity = $this->contactRepository->findOneBy(['uuid' => $contact->getUuid()]); $contactDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Contact::class)->findOneBy(['uid' => $contactEntity->getUid()]); - }else{ - if($contact->getUid() !== 0) { + } else { + if ($contact->getUid() !== 0) { $contactEntity = $this->contactRepository->findOneBy(['uid' => $contact->getUuid()]); $contactDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Contact::class)->findOneBy(['uid' => $contactEntity->getUid()]); - }else{ + } else { $contactEntity = new \PSC\Shop\EntityBundle\Entity\Contact(); $contactDoc = new \PSC\Shop\EntityBundle\Document\Contact(); } } - if(!$contactDoc) { + if (!$contactDoc) { $contactDoc = new \PSC\Shop\EntityBundle\Document\Contact(); } $shops = []; - foreach($contact->getShops() as $shop) { + foreach ($contact->getShops() as $shop) { $shops[] = $this->shopService->getShopByUid($shop->getUuid()); } - if(count($shops) > 0) { + if (count($shops) > 0) { $contactEntity->setShops($shops); } - if($contact->getEmail() != "") { + if ($contact->getEmail() != "") { $contactEntity->setEmail($contact->getEmail()); } $contactEntity->setEnable(true); @@ -56,6 +58,13 @@ class Contact $contactEntity->setHouseNumber((string)$contact->getLayouterData()->getHouseNumber()); $contactEntity->setHomepage((string)$contact->getLayouterData()->getHomepage()); + if ($contact->getLayouterData()->getImage1() != null) { + $contactEntity->setImage((string)$contact->getLayouterData()->getImage1()->getUuid()); + } + if ($contact->getLayouterData()->getImage2() != null) { + $contactEntity->setImage2((string)$contact->getLayouterData()->getImage2()->getUuid()); + } + $contactEntity->setBirthday((string)$contact->getLayouterData()->getBirthday()); $contactEntity->setKostenstellung((string)$contact->getLayouterData()->getKst()); $contactEntity->setState((string)$contact->getLayouterData()->getState()); @@ -103,7 +112,7 @@ class Contact } } - if(count($contact->getRoles()) > 0) { + if (count($contact->getRoles()) > 0) { $roles = []; /** @var Role $role */ foreach ($contact->getRoles() as $role) { @@ -125,7 +134,7 @@ class Contact public function fromDb(\PSC\Shop\ContactBundle\Model\Contact $contact, \PSC\Shop\EntityBundle\Entity\Contact $contactEntity): void { $contactDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Contact::class)->findOneBy(['uid' => $contactEntity->getUid()]); - if(!$contactDoc) { + if (!$contactDoc) { $contactDoc = new \PSC\Shop\EntityBundle\Document\Contact(); $contactDoc->setUid($contactEntity->getUid()); } @@ -209,5 +218,22 @@ class Contact $contact->getLayouterData()->setState((string)$contactEntity->getState()); $contact->getLayouterData()->setEmail((string)$contactDoc->getLayouterEmail()); + + if ($contactEntity->getImage() != "") { + $media = $this->mediaManager->getMedia($contactEntity->getImage()); + if ($media) { + $mediaModel = new Media(); + $this->mediaTransformer->fromDb($mediaModel, $media); + $contact->getLayouterData()->setImage1($mediaModel); + } + } + if ($contactEntity->getImage2() != "") { + $media = $this->mediaManager->getMedia($contactEntity->getImage2()); + if ($media) { + $mediaModel = new Media(); + $this->mediaTransformer->fromDb($mediaModel, $media); + $contact->getLayouterData()->setImage2($mediaModel); + } + } } } diff --git a/src/new/src/PSC/Shop/EntityBundle/Document/Shop.php b/src/new/src/PSC/Shop/EntityBundle/Document/Shop.php index c676336fa..dcba946c0 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Document/Shop.php +++ b/src/new/src/PSC/Shop/EntityBundle/Document/Shop.php @@ -56,63 +56,63 @@ class Shop public $browsericon; public $sitemap; public $robots; -/** - * @var string $id - */ + /** + * @var string $id + */ #[Id] protected $id; -/** - * @var string $uid - */ + /** + * @var string $uid + */ #[Field(type: 'string')] protected $uid; -/** - * @var string $apiKey; - */ + /** + * @var string $apiKey; + */ #[Field(type: 'string')] protected $apiKey; -#[Field(type: 'string')] + #[Field(type: 'string')] protected string $defaultCurrency = "EUR"; -#[Field(type: 'string')] + #[Field(type: 'string')] protected string $defaultLocale = "de_DE"; -/** - * @var string $numberPattern; - */ + /** + * @var string $numberPattern; + */ #[Field(type: 'string')] protected $numberPattern; -/** - * @var int $numberStart; - */ + /** + * @var int $numberStart; + */ #[Field(type: 'int')] protected $numberStart; -/** - * @var boolean $ownNumber - */ + /** + * @var boolean $ownNumber + */ #[Field(type: 'bool')] protected $ownNumber; -/** - * @var boolean - */ + /** + * @var boolean + */ #[Field(type: 'bool')] protected $guestEnable; -/** - * @var string $contactNumberPattern; - */ + /** + * @var string $contactNumberPattern; + */ #[Field(type: 'string')] protected $contactNumberPattern; -/** - * @var int $contactNumberStart; - */ + /** + * @var int $contactNumberStart; + */ #[Field(type: 'int')] protected $contactNumberStart; -/** - * @var float $priceFactor; - */ + /** + * @var float $priceFactor; + */ #[Field(type: 'float')] protected $priceFactor; -/** - * @var boolean $contactOwnNumber - */ + /** + * @var boolean $contactOwnNumber + */ #[Field(type: 'bool')] protected $contactOwnNumber; @@ -172,367 +172,379 @@ class Shop #[Field(type: 'string')] protected $docInvoiceJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docInvoicePosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPPJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPPPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOrderJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOrderPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docLabelJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docLabelPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docDeliveryJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docDeliveryPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docStornoJasperXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docStornoPosition; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $redirectAfterBuy; -/** - * @var boolean $redirectToSSL - */ + /** + * @var boolean $redirectToSSL + */ #[Field(type: 'bool')] protected $redirectToSSL; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $theme; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $layouterTheme; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $betreiberFax; -/** - * @var boolean $createPackageAfterBuy - */ + /** + * @var boolean $createPackageAfterBuy + */ #[Field(type: 'bool')] protected $createPackageAfterBuy; -/** - * @var boolean $tpSaveUserData - */ + /** + * @var boolean $tpSaveUserData + */ #[Field(type: 'bool')] protected $tpSaveUserData; -/** - * @var string $productFieldName1; - */ + /** + * @var string $productFieldName1; + */ #[Field(type: 'string')] protected $productFieldName1; -/** - * @var string $productFieldName2; - */ + /** + * @var string $productFieldName2; + */ #[Field(type: 'string')] protected $productFieldName2; -/** - * @var string $productFieldName3; - */ + /** + * @var string $productFieldName3; + */ #[Field(type: 'string')] protected $productFieldName3; -/** - * @var string $productFieldName4; - */ + /** + * @var string $productFieldName4; + */ #[Field(type: 'string')] protected $productFieldName4; -/** - * @var string $productFieldName5; - */ + /** + * @var string $productFieldName5; + */ #[Field(type: 'string')] protected $productFieldName5; -/** - * @var string $productFieldName6; - */ + /** + * @var string $productFieldName6; + */ #[Field(type: 'string')] protected $productFieldName6; -/** - * @var string $productFieldName7; - */ + /** + * @var string $productFieldName7; + */ #[Field(type: 'string')] protected $productFieldName7; -/** - * @var string $productFieldName8; - */ + /** + * @var string $productFieldName8; + */ #[Field(type: 'string')] protected $productFieldName8; -/** - * @var string $productFieldName9; - */ + /** + * @var string $productFieldName9; + */ #[Field(type: 'string')] protected $productFieldName9; -/** - * @var string $productFieldName10; - */ + /** + * @var string $productFieldName10; + */ #[Field(type: 'string')] protected $productFieldName10; -/** - * @var string $productFieldName12; - */ + /** + * @var string $productFieldName12; + */ #[Field(type: 'string')] protected $productFieldName11; -/** - * @var string $productFieldName12; - */ + /** + * @var string $productFieldName12; + */ #[Field(type: 'string')] protected $productFieldName12; -/** - * @var string $customerFieldName1; - */ + /** + * @var string $customerFieldName1; + */ #[Field(type: 'string')] protected $customerFieldName1; -/** - * @var string $customerFieldName2; - */ + /** + * @var string $customerFieldName2; + */ #[Field(type: 'string')] protected $customerFieldName2; -/** - * @var string $customerFieldName3; - */ + /** + * @var string $customerFieldName3; + */ #[Field(type: 'string')] protected $customerFieldName3; -/** - * @var string $customerFieldName4; - */ + /** + * @var string $customerFieldName4; + */ #[Field(type: 'string')] protected $customerFieldName4; -/** - * @var string $customerFieldName5; - */ + /** + * @var string $customerFieldName5; + */ #[Field(type: 'string')] protected $customerFieldName5; -/** - * @var string $customerFieldName6; - */ + /** + * @var string $customerFieldName6; + */ #[Field(type: 'string')] protected $customerFieldName6; -/** - * @var string $customerFieldName7; - */ + /** + * @var string $customerFieldName7; + */ #[Field(type: 'string')] protected $customerFieldName7; -/** - * @var string $customerFieldName8; - */ + /** + * @var string $customerFieldName8; + */ #[Field(type: 'string')] protected $customerFieldName8; -/** - * @var string $customerFieldName9; - */ + /** + * @var string $customerFieldName9; + */ #[Field(type: 'string')] protected $customerFieldName9; -/** - * @var string $customerFieldName10; - */ + /** + * @var string $customerFieldName10; + */ #[Field(type: 'string')] protected $customerFieldName10; -/** - * @var string $customerFieldName12; - */ + /** + * @var string $customerFieldName12; + */ #[Field(type: 'string')] protected $customerFieldName11; -/** - * @var string $customerFieldName12; - */ + /** + * @var string $customerFieldName12; + */ #[Field(type: 'string')] protected $customerFieldName12; -/** - * @var string $customerFieldName13; - */ + /** + * @var string $customerFieldName13; + */ #[Field(type: 'string')] protected $customerFieldName13; -/** - * @var string $customerFieldName14; - */ + /** + * @var string $customerFieldName14; + */ #[Field(type: 'string')] protected $customerFieldName14; -/** - * @var string $customerFieldName15; - */ + /** + * @var string $customerFieldName15; + */ #[Field(type: 'string')] protected $customerFieldName15; -/** - * @var string $customerFieldName16; - */ + /** + * @var string $customerFieldName16; + */ #[Field(type: 'string')] protected $customerFieldName16; -/** - * @var string $customerFieldName17; - */ + /** + * @var string $customerFieldName17; + */ #[Field(type: 'string')] protected $customerFieldName17; -/** - * @var string $customerFieldName18; - */ + /** + * @var string $customerFieldName18; + */ #[Field(type: 'string')] protected $customerFieldName18; -/** - * @var string $customerFieldName19; - */ + /** + * @var string $customerFieldName19; + */ #[Field(type: 'string')] protected $customerFieldName19; -/** - * @var string $customerFieldName20; - */ + /** + * @var string $customerFieldName20; + */ #[Field(type: 'string')] protected $customerFieldName20; -/** - * @var string $customerFieldName21; - */ + /** + * @var string $customerFieldName21; + */ #[Field(type: 'string')] protected $customerFieldName21; -/** - * @var string $customerFieldName22; - */ + /** + * @var string $customerFieldName22; + */ #[Field(type: 'string')] protected $customerFieldName22; -/** - * @var string $customerFieldName23; - */ + /** + * @var string $customerFieldName23; + */ #[Field(type: 'string')] protected $customerFieldName23; -/** - * @var string $customerFieldName24; - */ + /** + * @var string $customerFieldName24; + */ #[Field(type: 'string')] protected $customerFieldName24; -/** - * @var string $mailOrderCustomerSubjectTemplate; - */ + /** + * @var string $mailOrderCustomerSubjectTemplate; + */ #[Field(type: 'string')] protected $mailOrderCustomerSubjectTemplate; -/** - * @var string $mailOrderCustomerTextTemplate; - */ + /** + * @var string $mailOrderCustomerTextTemplate; + */ #[Field(type: 'string')] protected $mailOrderCustomerTextTemplate; -/** - * @var string $imprintText; - */ + /** + * @var string $imprintText; + */ #[Field(type: 'string')] protected $imprintText; -/** - * @var string $privacyPolicyText; - */ + /** + * @var string $privacyPolicyText; + */ #[Field(type: 'string')] protected $privacyPolicyText; -/** - * @var string $cancellationTermsText; - */ + /** + * @var string $cancellationTermsText; + */ #[Field(type: 'string')] protected $cancellationTermsText; -/** - * @var string $conditionsText; - */ + /** + * @var string $conditionsText; + */ #[Field(type: 'string')] protected $conditionsText; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPPBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPPPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOrderBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOrderPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docInvoiceBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docInvoiceFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docStornoFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docJobticketPPFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOrderFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docDeliveryFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docLabelFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docInvoicePositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docLabelBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docLabelPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docDeliveryBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docDeliveryPositionBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docStornoBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docStornoPositionBg; -#[Field(type: 'hash')] + #[Field(type: 'hash')] protected $pluginSettings = []; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferProductBg; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferProductXml; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $docOfferProductFileName; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderCompany; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderFirstname; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderLastname; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderStreet; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderHouseNumber; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderZip; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderCity; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderCountry; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderTel; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderFax; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderMobile; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $senderEmail; -/** - * @var string $extraSettings; - */ + #[Field(type: 'bool')] + protected bool $docInvoiceXML = false; + #[Field(type: 'bool')] + protected bool $docOrderXML = false; + #[Field(type: 'bool')] + protected bool $docDeliveryXML = false; + #[Field(type: 'bool')] + protected bool $docOfferXML = false; + #[Field(type: 'bool')] + protected bool $docStornoXML = false; + #[Field(type: 'bool')] + protected bool $docJobticketXML = false; + /** + * @var string $extraSettings; + */ #[Field(type: 'string')] protected $extraSettings; -#[Field(type: 'string')] + #[Field(type: 'string')] protected string $routingConfigCMS = ''; -#[Field(type: 'string')] + #[Field(type: 'string')] protected string $routingConfigProduct = ''; -#[Field(type: 'string')] + #[Field(type: 'string')] protected string $routingConfigProductGroup = ''; public bool $noVerify; #[Field(type: 'bool')] protected bool $disableOldCalc = false; -/** - * @return mixed - */ + /** + * @return mixed + */ public function getId() { return $this->id; @@ -3119,4 +3131,65 @@ class Shop { $this->disableOldCalc = $disableOldCalc; } + + public function isDocInvoiceXML(): bool + { + return (bool)$this->docInvoiceXML; + } + + public function setDocInvoiceXML(bool $value): void + { + $this->docInvoiceXML = $value; + } + public function isDocDeliveryXML(): bool + { + return (bool)$this->docDeliveryXML; + } + + public function setDocDeliveryXML(bool $value): void + { + $this->docDeliveryXML = $value; + } + + public function isDocOrderXML(): bool + { + return (bool)$this->docOrderXML; + } + + public function setDocOrderXML(bool $value): void + { + $this->docOrderXML = $value; + } + + public function isDocJobticketXML(): bool + { + return (bool)$this->docJobticketXML; + } + + public function setDocJobticketXML(bool $value): void + { + $this->docJobticketXML = $value; + } + + public function isDocStornoXML(): bool + { + return (bool)$this->docStornoXML; + } + + public function setDocStornoXML(bool $value): void + { + $this->docStornoXML = $value; + } + + public function isDocOfferXML(): bool + { + return (bool)$this->docOfferXML; + } + + public function setDocOfferXML(bool $value): void + { + $this->docOfferXML = $value; + } + + } diff --git a/src/new/src/PSC/Shop/EntityBundle/Entity/Contact.php b/src/new/src/PSC/Shop/EntityBundle/Entity/Contact.php index 2836bbd79..086ae8a23 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Entity/Contact.php +++ b/src/new/src/PSC/Shop/EntityBundle/Entity/Contact.php @@ -191,9 +191,9 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser $this->createdAt = new \DateTime(); $this->updatedAt = new \DateTime(); $this->uuid = Uuid::uuid4(); - if($email == "") { + if ($email == "") { $this->setEmail($this->uuid); - }else{ + } else { $this->setEmail($email); } $this->enable = true; @@ -262,7 +262,7 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser */ public function setPassword($password) { - if($password != "") { + if ($password != "") { $this->password = $password; } } @@ -505,11 +505,11 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser #[ORM\Column(name: 'self_web', type: 'string', length: 255, nullable: true)] private $homepage; - /** - * @var string - */ #[ORM\Column(name: 'self_foto', type: 'string', length: 255, nullable: true)] private $image; + # + #[ORM\Column(name: 'foto', type: 'string', length: 255, nullable: true)] + private $image2; /** * @var string @@ -1087,6 +1087,8 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser $this->setName('anonym@anonym.de'); $this->setEnable(false); $this->setPassword('anonym'); + $this->setImage(""); + $this->setImage2(""); } /** @@ -1860,6 +1862,32 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser $this->image = $image; } + public function getImage1() + { + return $this->image; + } + + /** + * @param string $image + */ + public function setImage1($image1) + { + $this->image = $image1; + } + + public function getImage2() + { + return $this->image2; + } + + /** + * @param string $image + */ + public function setImage2($image2) + { + $this->image2 = $image2; + } + /** * @return string */ @@ -2333,7 +2361,7 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser if ($row->getLevel() == 50) { $temp[] = "ROLE_SYSTEM_ADMIN"; } - if(!in_array($row->getLevel(), [10,20,25,30,35,40,50,0])) { + if (!in_array($row->getLevel(), [10,20,25,30,35,40,50,0])) { $temp[] = $row->getTitle(); } } diff --git a/src/new/src/PSC/Shop/EntityBundle/Repository/OrderRepository.php b/src/new/src/PSC/Shop/EntityBundle/Repository/OrderRepository.php index 7956f60dd..0d1cf92ef 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Repository/OrderRepository.php +++ b/src/new/src/PSC/Shop/EntityBundle/Repository/OrderRepository.php @@ -34,19 +34,17 @@ class OrderRepository extends ServiceEntityRepository parent::__construct($registry, Order::class); } - public function getIncomeByShop($shopUuId) + public function getIncomeByShop($shopUuId, $year) { - $fromDate = new DateTime(); - $fromDate->modify("-12month"); $query = $this->getEntityManager() ->createQuery(' - SELECT sum(o.brutto) as brutto, SUBSTRING(o.created, 1, 7) as month FROM PSCEntityBundle:Order o + SELECT sum(o.brutto) as brutto, MONTH(o.created) as monat FROM PSCEntityBundle:Order o JOIN o.shop s - WHERE o.status <> 170 AND s.uid = :shop_uuid AND o.type = 1 AND o.created > \'' . $fromDate->format('Y-m-d H:i:s') . '\' - GROUP BY month ORDER BY o.created DESC') + WHERE o.status <> 170 AND s.uid = :shop_uuid AND o.type = 1 AND o.created >= \'' . $year . '-01-01\' AND o.created <= \'' . $year . '-12-31\' + GROUP BY monat ORDER BY o.created ASC') ->setParameter('shop_uuid', $shopUuId); try { - return $query->execute(); + return $query->getArrayResult(); } catch (\Doctrine\ORM\NoResultException $e) { return null; } diff --git a/src/new/src/PSC/Shop/MediaBundle/Api/Upload.php b/src/new/src/PSC/Shop/MediaBundle/Api/Upload.php new file mode 100644 index 000000000..e3020ff1e --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Api/Upload.php @@ -0,0 +1,79 @@ +getShopByDomain(); + $selectedFolder = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->findOneBy(array('id' => $req->get('folder'))); + $handler = $mediaManager->getHandlerForType('pdf'); + $media = new Media(); + $helper = $handler->getFormHelper($media); + $media->setContent($req->files->get('file')); + $handler->prepareMedia($media); + $media->setFolder($selectedFolder); + $media->setShop($selectedShop->getUid()); + $documentManager->persist($media); + $documentManager->flush(); + + $mediaModel = new MediaModel(); + $mediaModel->setUuid($media->getId()); + $mediaModel->setUrl($media->getUrl()); + $mediaModel->setTitle($media->getTitle()); + return $this->json($mediaModel); + } + +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Api/UploadVariant.php b/src/new/src/PSC/Shop/MediaBundle/Api/UploadVariant.php new file mode 100644 index 000000000..f493e4af4 --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Api/UploadVariant.php @@ -0,0 +1,83 @@ +getMedia($req->get('uuid')); + $handler = $mediaManager->getHandlerForType('pdf'); + $helper = $handler->getFormHelper($mediaVariant); + $mediaVariant->setContent($req->files->get('file')); + $mediaVariant->setSettings($req->get('settings')); + $handler->prepareMedia($mediaVariant); + $media->addVariant($mediaVariant); + $documentManager->persist($media); + $documentManager->flush(); + + $mediaModel = new MediaModel(); + $mediaTransformer->fromDb($mediaModel, $media); + return $this->json($mediaModel); + } + +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/FolderController.php b/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/FolderController.php index 47ab44f4f..3647a4d6f 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/FolderController.php +++ b/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/FolderController.php @@ -29,6 +29,7 @@ use PSC\Shop\EntityBundle\Entity\Shop; use PSC\Shop\MediaBundle\Document\Folder; use PSC\Shop\MediaBundle\Form\Backend\FolderType; use PSC\Shop\MediaBundle\Form\Backend\SearchType; +use PSC\Shop\MediaBundle\Form\Backend\SubFolderType; use PSC\Shop\MediaBundle\Helper\Media\AbstractMediaHandler; use PSC\Shop\MediaBundle\Service\MediaManager; use PSC\System\SettingsBundle\Form\Backend\DeleteType; @@ -84,18 +85,18 @@ class FolderController extends AbstractController } $type = $request->get('type'); -/** @var AbstractMediaHandler $handler */ + /** @var AbstractMediaHandler $handler */ $handler = null; if ($type) { $handler = $mediaManager->getHandlerForType($type); } + $searchForm->handleRequest($request); /** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); $cat = new Folder(); $folderForm = $this->createForm(FolderType::class, $cat); $folderForm->handleRequest($request); - $searchForm->handleRequest($request); if ($folderForm->isSubmitted() && $folderForm->isValid()) { $cat->setIcon($request->get('icon', 'fa-file')); $documentManager->persist($cat); @@ -104,31 +105,69 @@ class FolderController extends AbstractController $uuid = $cat->getId(); } + $subCat = new Folder(); + $subFolderForm = $this->createForm(SubFolderType::class, $subCat); + $subFolderForm->handleRequest($request); /** @var CachingIterator $folders */ $folders = $documentManager ->getRepository('PSC\Shop\MediaBundle\Document\Folder') ->createQueryBuilder('folder') + ->field('parent_id')->exists(false) ->sort('title', 'ASC')->getQuery()->execute(); if (count($folders->toArray()) == 0) { $this->createDefaultFolder($documentManager); - /** @var Folder[] $folders */ + /** @var Folder[] $folders */ $folders = $documentManager ->getRepository('PSC\Shop\MediaBundle\Document\Folder') ->createQueryBuilder('folder') + ->field('parent_id')->exists(false) ->sort('title', 'ASC')->getQuery()->execute(); } + $level = 1; - $tempFolders = array(); foreach ($folders as $cat) { + $subFolders = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->createQueryBuilder('folder') + ->field('parent_id')->equals($cat->getId()) + ->sort('title', 'ASC')->getQuery()->execute(); $count = $documentManager ->getRepository('PSC\Shop\MediaBundle\Document\Media') ->createQueryBuilder('media') ->field('folder.$id')->equals(new ObjectId($cat->getId()))->count() ->getQuery()->execute(); $cat->setMedia($count); - $tempFolders[] = $cat; + foreach($subFolders as $subFolder) { + $count = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Media') + ->createQueryBuilder('media') + ->field('folder.$id')->equals(new ObjectId($subFolder->getId()))->count() + ->getQuery()->execute(); + $subFolder->setMedia($count); + $cat->addSubFolder($subFolder); + $subSubFolders = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->createQueryBuilder('folder') + ->field('parent_id')->equals($subFolder->getId()) + ->sort('title', 'ASC')->getQuery()->execute(); + if($uuid == $subFolder->getId()) { + $level = 2; + } + foreach($subSubFolders as $subSubFolder) { + $count = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Media') + ->createQueryBuilder('media') + ->field('folder.$id')->equals(new ObjectId($subSubFolder->getId()))->count() + ->getQuery()->execute(); + $subSubFolder->setMedia($count); + $subFolder->addSubFolder($subSubFolder); + if($uuid == $subSubFolder->getId()) { + $level = 3; + } + } + } } if (!$uuid) { @@ -146,6 +185,18 @@ class FolderController extends AbstractController ->findOneBy([]); } + if ($subFolderForm->isSubmitted() && $subFolderForm->isValid()) { + $subCat->setIcon($request->get('icon', 'fa-file')); + $subCat->setParentId($selectedFolder->getId()); + $documentManager->persist($subCat); + $documentManager->flush(); + $session->set('media-folder-uuid', $subCat->getId()); + $uuid = $subCat->getId(); + $selectedFolder = $documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->findOneBy(array('id' => $uuid)); + return $this->redirectToRoute('psc_shop_media_backend_folder_show', ['uuid' => $uuid, 'htmlId' => $htmlId, 'modal' => $modal]); + } $searchTerm = $request->query->get('term', ''); $page = $request->query->getInt('page', 1); if ($searchForm->isSubmitted() && $searchForm->isValid()) { @@ -175,9 +226,11 @@ class FolderController extends AbstractController return array( 'pagination' => $pagination, 'mediamanager' => $mediaManager, - 'folders' => $tempFolders, + 'level' => $level, + 'folders' => $folders, 'selectedFolder' => $selectedFolder, 'folderForm' => $folderForm->createView(), + 'subFolderForm' => $subFolderForm->createView(), 'modal' => $modal, 'handler' => $handler, 'htmlId' => $htmlId, @@ -185,20 +238,6 @@ class FolderController extends AbstractController ); } - /** - * Default Seite - * - * - * @param Request $request - * @param \PSC\System\SettingsBundle\Service\Shop $shopService - * @param DocumentManager $documentManager - * @param $uuid - * @param $modal - * @param $htmlId - * @return array - * @throws \Doctrine\ODM\MongoDB\MongoDBException - * @throws \Doctrine\ORM\ORMException - */ #[Route(path: '/list/folder/delete/{uuid}/{modal}/{htmlId}', defaults: ['uuid' => false, 'modal' => false, 'htmlId' => false], name: 'psc_shop_media_backend_folder_delete')] #[Template] public function deleteAction(Request $request, \PSC\System\SettingsBundle\Service\Shop $shopService, DocumentManager $documentManager, $uuid, $modal, $htmlId) diff --git a/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/UploadController.php b/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/UploadController.php index 68c10891b..243be5e4b 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/UploadController.php +++ b/src/new/src/PSC/Shop/MediaBundle/Controller/Backend/UploadController.php @@ -95,7 +95,7 @@ class UploadController extends AbstractController $form = $this->createForm($handler->getFormType(), $helper); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - //$media = $helper->getMedia(); + //$media = $helper->getMedia(); $documentManager->detach($media); $documentManager->persist($media); $documentManager->flush(); diff --git a/src/new/src/PSC/Shop/MediaBundle/Document/Embed/Variant.php b/src/new/src/PSC/Shop/MediaBundle/Document/Embed/Variant.php new file mode 100644 index 000000000..e10253c8e --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Document/Embed/Variant.php @@ -0,0 +1,659 @@ +setCreatedAt(new \DateTime()); + $this->setUpdatedAt(new \DateTime()); + $this->deleted = false; + } + + /** + * @return string + */ + public function getFileSize() + { + $size = $this->filesize; + if ($size < 1024) { + return $size . "b"; + } else { + $help = $size / 1024; + if ($help < 1024) { + return round($help, 1) . "kb"; + } else { + return round(($help / 1024), 1) . "mb"; + } + } + } + + public function setSettings(string $settings): void + { + $this->settings = $settings; + } + + public function getSettings(): string + { + return $this->settings; + } + /** + * @return int + */ + public function getFileSizeBytes() + { + return $this->filesize; + } + + /** + * @param int $filesize + * + * @return Media + */ + public function setFileSize($filesize) + { + $this->filesize = $filesize; + return $this; + } + + /** + * Set location + * + * @param string $location + * + * @return Media + */ + public function setLocation($location) + { + $this->location = $location; + return $this; + } + + /** + * Get location + * + * @return string + */ + public function getLocation() + { + return $this->location; + } + + /** + * Set contentType + * + * @param string $contentType + * + * @return Media + */ + public function setContentType($contentType) + { + $this->contentType = $contentType; + return $this; + } + + /** + * Get contentType + * + * @return string + */ + public function getContentType() + { + return $this->contentType; + } + + /** + * Get contentType + * + * @return string + */ + public function getContentTypeShort() + { + $contentType = $this->contentType; + $array = explode("/", $contentType); + $contentType = end($array); + return $contentType; + } + + /** + * Set metadata + * + * @param array $metadata + * + * @return Media + */ + public function setMetadata($metadata) + { + $this->metadata = $metadata; + return $this; + } + + /** + * Get metadata + * + * @return array + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * Set the specified metadata value + * + * @param string $name + * @param mixed $value + * + * @return Media + */ + public function setMetadataValue($name, $value) + { + $metadata = $this->getProviderMetadata(); + $metadata[$name] = $value; + $this->setProviderMetadata($metadata); + } + + /** + * {@inheritdoc} + */ + public function getMetadataValue($name, $default = null) + { + $metadata = $this->getProviderMetadata(); + return isset($metadata[$name]) ? $metadata[$name] : $default; + } + + /** + * {@inheritdoc} + */ + public function unsetMetadataValue($name) + { + $metadata = $this->getProviderMetadata(); + unset($metadata[$name]); + $this->setProviderMetadata($metadata); + } + + /** + * {@inheritdoc} + */ + public function setCreatedAt(\DateTime $createdAt = null) + { + $this->createdAt = $createdAt; + } + + /** + * Get createdAt + * + * @return \DateTime + */ + public function getCreatedAt() + { + return $this->createdAt; + } + + /** + * {@inheritdoc} + */ + public function setUpdatedAt(\DateTime $updatedAt = null) + { + $this->updatedAt = $updatedAt; + } + + /** + * Get updatedAt + * + * @return \DateTime + */ + public function getUpdatedAt() + { + return $this->updatedAt; + } + + /** + * Set content + * + * @param mixed $content + * + * @return Media + */ + public function setContent($content) + { + $this->content = $content; + $this->setUpdatedAt(new \DateTime()); + return $this; + } + + /** + * Get content + * + * @return mixed + */ + public function getContent() + { + return $this->content; + } + + /** + * @return bool + */ + public function isDeleted() + { + return $this->deleted; + } + + /** + * @param bool $deleted + * + * @return Media + */ + public function setDeleted($deleted) + { + $this->deleted = $deleted; + return $this; + } + + /** + * @return string + */ + public function getUrl() + { + return $this->url; + } + + /** + * @param string $url + * + * @return Media + */ + public function setUrl($url) + { + $this->url = $url; + return $this; + } + + /** + * @param string $originalFilename + * + * @return Media + */ + public function setOriginalFilename($originalFilename) + { + $this->originalFilename = $originalFilename; + return $this; + } + + /** + * @return string + */ + public function getOriginalFilename() + { + return $this->originalFilename; + } + + /** + * @inheritDoc + */ + public function setBinaryContent($binaryContent) + { + // TODO: Implement setBinaryContent() method. + } + + /** + * @inheritDoc + */ + public function getBinaryContent() + { + // TODO: Implement getBinaryContent() method. + } + + /** + * @inheritDoc + */ + public function resetBinaryContent() + { + // TODO: Implement resetBinaryContent() method. + } + + /** + * @inheritDoc + */ + public function setName($name) + { + // TODO: Implement setName() method. + } + + /** + * @inheritDoc + */ + public function getName() + { + // TODO: Implement getName() method. + } + + /** + * @inheritDoc + */ + public function setEnabled($enabled) + { + // TODO: Implement setEnabled() method. + } + + /** + * @inheritDoc + */ + public function getEnabled() + { + // TODO: Implement getEnabled() method. + } + + /** + * {@inheritdoc} + */ + public function setProviderName($providerName) + { + $this->providerName = $providerName; + } + + /** + * {@inheritdoc} + */ + public function getProviderName() + { + if ($this->providerName === null) { + return 'psc.shop.media.provider.image'; + } + return $this->providerName; + } + + /** + * {@inheritdoc} + */ + public function setProviderStatus($providerStatus) + { + $this->providerStatus = $providerStatus; + } + + /** + * {@inheritdoc} + */ + public function getProviderStatus() + { + if ($this->providerStatus === null) { + return MediaInterface::STATUS_OK; + } + return $this->providerStatus; + } + + /** + * {@inheritdoc} + */ + public function setProviderReference($providerReference) + { + $this->providerReference = $providerReference; + } + + /** + * {@inheritdoc} + */ + public function getProviderReference() + { + return $this->providerReference; + } + + /** + * {@inheritdoc} + */ + public function setProviderMetadata(array $providerMetadata = []) + { + $this->providerMetadata = $providerMetadata; + } + + /** + * {@inheritdoc} + */ + public function getProviderMetadata() + { + return $this->providerMetadata; + } + + /** + * @inheritDoc + */ + public function setWidth($width) + { + // TODO: Implement setWidth() method. + } + + /** + * @inheritDoc + */ + public function getWidth() + { + // TODO: Implement getWidth() method. + } + + /** + * @inheritDoc + */ + public function setHeight($height) + { + // TODO: Implement setHeight() method. + } + + /** + * @inheritDoc + */ + public function getHeight() + { + // TODO: Implement getHeight() method. + } + + /** + * @inheritDoc + */ + public function setLength($length) + { + // TODO: Implement setLength() method. + } + + /** + * @inheritDoc + */ + public function getLength() + { + // TODO: Implement getLength() method. + } + + /** + * @inheritDoc + */ + public function setAuthorName($authorName) + { + // TODO: Implement setAuthorName() method. + } + + /** + * @inheritDoc + */ + public function getAuthorName() + { + // TODO: Implement getAuthorName() method. + } + + /** + * @inheritDoc + */ + public function setContext($context) + { + // TODO: Implement setContext() method. + } + + /** + * @inheritDoc + */ + public function getContext() + { + // TODO: Implement getContext() method. + } + + /** + * @inheritDoc + */ + public function setCdnIsFlushable($cdnIsFlushable) + { + // TODO: Implement setCdnIsFlushable() method. + } + + /** + * @inheritDoc + */ + public function getCdnIsFlushable() + { + // TODO: Implement getCdnIsFlushable() method. + } + + /** + * @inheritDoc + */ + public function setCdnFlushIdentifier($cdnFlushIdentifier) + { + // TODO: Implement setCdnFlushIdentifier() method. + } + + /** + * @inheritDoc + */ + public function getCdnFlushIdentifier() + { + // TODO: Implement getCdnFlushIdentifier() method. + } + + /** + * @inheritDoc + */ + public function setCdnFlushAt(\DateTime $cdnFlushAt = null) + { + // TODO: Implement setCdnFlushAt() method. + } + + /** + * @inheritDoc + */ + public function getCdnFlushAt() + { + // TODO: Implement getCdnFlushAt() method. + } + + /** + * @inheritDoc + */ + public function getExtension() + { + $providerReference = $this->getProviderReference(); + if (!$providerReference) { + return null; + } + + // strips off query strings or hashes, which are common in URIs remote references + return preg_replace('{(\?|#).*}', '', pathinfo($providerReference, PATHINFO_EXTENSION)); + } + + /** + * @inheritDoc + */ + public function setSize($size) + { + // TODO: Implement setSize() method. + } + + /** + * @inheritDoc + */ + public function getSize() + { + // TODO: Implement getSize() method. + } + + /** + * @inheritDoc + */ + public function setCdnStatus($cdnStatus) + { + // TODO: Implement setCdnStatus() method. + } + + /** + * @inheritDoc + */ + public function getCdnStatus() + { + // TODO: Implement getCdnStatus() method. + } + + /** + * @inheritDoc + */ + public function getBox() + { + // TODO: Implement getBox() method. + } + + /** + * @inheritDoc + */ + public function setGalleryHasMedias($galleryHasMedias) + { + // TODO: Implement setGalleryHasMedias() method. + } + + /** + * @inheritDoc + */ + public function getGalleryHasMedias() + { + // TODO: Implement getGalleryHasMedias() method. + } + + /** + * @inheritDoc + */ + public function getPreviousProviderReference() + { + // TODO: Implement getPreviousProviderReference() method. + } +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Document/Folder.php b/src/new/src/PSC/Shop/MediaBundle/Document/Folder.php index 2085cf784..4a637c313 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Document/Folder.php +++ b/src/new/src/PSC/Shop/MediaBundle/Document/Folder.php @@ -18,38 +18,41 @@ use Doctrine\ODM\MongoDB\Mapping\Annotations\Id; use Doctrine\ODM\MongoDB\Mapping\Annotations\Document; use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbeddedDocument; use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbedOne; +use Doctrine\ODM\MongoDB\Mapping\Annotations\Index; use Doctrine\ODM\MongoDB\Mapping\Annotations\ReferenceMany; +use Doctrine\ODM\MongoDB\Mapping\Annotations\ReferenceOne; #[Document(collection: 'Media_Folder')] class Folder { #[Id] protected $id; -/** - * @var \DateTime $created; - */ + /** + * @var \DateTime $created; + */ #[Field(type: 'date')] protected $created; -/** - * @var \DateTime $updated; - */ + /** + * @var \DateTime $updated; + */ #[Field(type: 'date')] protected $updated; -/** - * @var string $title - */ + /** + * @var string $title + */ #[Field(type: 'string')] protected $title; -/** - * @var string $icon - */ + /** + * @var string $icon + */ #[Field(type: 'string')] protected $icon; -/** - * @var string $parent - */ + #[Field(type: 'string')] - protected $parent; + protected $parent_id; + + private $subFolders = []; + private $media = 0; public function __construct() { @@ -153,19 +156,23 @@ class Folder $this->media = $media; } - /** - * @return string - */ - public function getParent() + public function getParentId() { - return $this->parent; + return $this->parent_id; } - /** - * @param string $parent - */ - public function setParent($parent) + public function setParentId($parent_id) { - $this->parent = $parent; + $this->parent_id = $parent_id; + } + + public function getSubFolders(): array + { + return $this->subFolders; + } + + public function addSubFolder(Folder $folder): void + { + $this->subFolders[] = $folder; } } diff --git a/src/new/src/PSC/Shop/MediaBundle/Document/Media.php b/src/new/src/PSC/Shop/MediaBundle/Document/Media.php index 3e796d0b4..bd31cbb8a 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Document/Media.php +++ b/src/new/src/PSC/Shop/MediaBundle/Document/Media.php @@ -13,13 +13,14 @@ namespace PSC\Shop\MediaBundle\Document; +use Doctrine\Common\Collections\ArrayCollection; +use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbedMany; use Doctrine\ODM\MongoDB\Mapping\Annotations\Field; use Doctrine\ODM\MongoDB\Mapping\Annotations\Id; use Doctrine\ODM\MongoDB\Mapping\Annotations\Document; -use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbeddedDocument; -use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbedOne; use Doctrine\ODM\MongoDB\Mapping\Annotations\ReferenceOne; -use Imagine\Image\Box; +use Doctrine\ODM\MongoDB\PersistentCollection; +use PSC\Shop\MediaBundle\Document\Embed\Variant; use PSC\Shop\MediaBundle\Model\MediaInterface; #[Document] @@ -27,92 +28,95 @@ class Media implements MediaInterface { #[Id] protected $id; -/** - * @var string $shop - */ + #[Field(type: 'string')] protected $shop; -/** - * @var string - */ + + #[Field(type: 'string')] + protected $contact; + + #[EmbedMany(targetDocument: Variant::class)] + protected $variants; + #[Field(type: 'string')] protected $title; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $description; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $copyright; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $location; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $contentType; -/** - * @var array - */ + /** + * @var array + */ #[Field(type: 'hash')] protected $metadata = array(); -/** - * @var \DateTime - */ + /** + * @var \DateTime + */ #[Field(type: 'date')] protected $createdAt; -/** - * @var \DateTime - */ + /** + * @var \DateTime + */ #[Field(type: 'date')] protected $updatedAt; -/** - * @var Folder - */ + /** + * @var Folder + */ #[ReferenceOne(targetDocument: 'PSC\Shop\MediaBundle\Document\Folder')] protected $folder; -/** - * @var mixed - */ + /** + * @var mixed + */ protected $content; -/** - * @var int - */ + /** + * @var int + */ #[Field(type: 'int')] protected $filesize; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $url; -/** - * @var string - */ + /** + * @var string + */ #[Field(type: 'string')] protected $originalFilename; -/** - * @var bool - */ + /** + * @var bool + */ #[Field(type: 'bool')] protected $deleted; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $providerName; -#[Field(type: 'int')] + #[Field(type: 'int')] protected $providerStatus; -#[Field(type: 'string')] + #[Field(type: 'string')] protected $providerReference; -#[Field(type: 'hash')] + #[Field(type: 'hash')] protected $providerMetadata = []; public function __construct() { $this->setCreatedAt(new \DateTime()); $this->setUpdatedAt(new \DateTime()); + $this->variants = new ArrayCollection(); $this->deleted = false; } @@ -818,4 +822,29 @@ class Media implements MediaInterface { // TODO: Implement getPreviousProviderReference() method. } + + public function addVariant(Variant $variant): void + { + $tmp = []; + $found = false; + foreach ($this->variants as $var) { + if ($var->getSettings() == $variant->getSettings()) { + $tmp[] = $variant; + $found = true; + } else { + $tmp[] = $var; + } + } + + if (!$found) { + $tmp[] = $variant; + } + + $this->variants = $tmp; + } + + public function getVariants(): PersistentCollection + { + return $this->variants; + } } diff --git a/src/new/src/PSC/Shop/MediaBundle/Form/Backend/SubFolderType.php b/src/new/src/PSC/Shop/MediaBundle/Form/Backend/SubFolderType.php new file mode 100644 index 000000000..d9881b11a --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Form/Backend/SubFolderType.php @@ -0,0 +1,40 @@ + + * @copyright 2012-2013 PrintshopCreator GmbH + * @license Private + * @link http://www.printshopcreator.de + */ + +namespace PSC\Shop\MediaBundle\Form\Backend; + +use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; + +class SubFolderType extends AbstractType +{ + public function buildForm(FormBuilderInterface $builder, array $options) + { + $builder + ->add('title', TextType::class, array('attr' => array('placeholder' => 'Folder'))); + } + + public function getName() + { + return 'subFolder'; + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults(array( + 'data_class' => 'PSC\Shop\MediaBundle\Document\Folder', + )); + } +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Helper/File/FileHandler.php b/src/new/src/PSC/Shop/MediaBundle/Helper/File/FileHandler.php index 57026e23f..8e6c0a7dc 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Helper/File/FileHandler.php +++ b/src/new/src/PSC/Shop/MediaBundle/Helper/File/FileHandler.php @@ -22,12 +22,12 @@ class FileHandler extends AbstractMediaHandler /** * @var string */ - const TYPE = 'file'; + public const TYPE = 'file'; /** * @var string */ - const MEDIA_PATH = '/uploads/media/'; + public const MEDIA_PATH = '/uploads/media/'; /** * @var Filesystem @@ -168,6 +168,7 @@ class FileHandler extends AbstractMediaHandler $media->setContent($file); } if ($content instanceof UploadedFile) { + $this->checkExif($content->getPathname()); $pathInfo = pathinfo($content->getClientOriginalName()); $media->setOriginalFilename($this->slugifier->slugify($pathInfo['filename']) . '.' . $pathInfo['extension']); $name = $media->getTitle(); @@ -184,6 +185,35 @@ class FileHandler extends AbstractMediaHandler $media->setLocation('local'); } + private function checkExif($filename) + { + if (function_exists('exif_read_data')) { + if (exif_imagetype($filename) != IMAGETYPE_JPEG) { + return; + } + $exif = exif_read_data($filename); + if ($exif && isset($exif['Orientation'])) { + $orientation = $exif['Orientation']; + if ($exif['Orientation'] == 3 or $exif['Orientation'] == 6 or $exif['Orientation'] == 8) { + $imageResource = imagecreatefromjpeg($filename); + switch ($exif['Orientation']) { + case 3: + $image = imagerotate($imageResource, 180, 0); + break; + case 6: + $image = imagerotate($imageResource, -90, 0); + break; + case 8: + $image = imagerotate($imageResource, 90, 0); + break; + } + imagejpeg($image, $filename); + imagedestroy($imageResource); + imagedestroy($image); + } + } + } + } /** * @param Media $media */ diff --git a/src/new/src/PSC/Shop/MediaBundle/Helper/Image/ImageHandler.php b/src/new/src/PSC/Shop/MediaBundle/Helper/Image/ImageHandler.php index 62b8880db..c3c81c8a6 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Helper/Image/ImageHandler.php +++ b/src/new/src/PSC/Shop/MediaBundle/Helper/Image/ImageHandler.php @@ -88,12 +88,14 @@ class ImageHandler extends FileHandler parent::prepareMedia($media); if ($media->getContent()) { - $imageInfo = getimagesize($media->getContent()); - $width = $imageInfo[0]; - $height = $imageInfo[1]; + if ('image/svg+xml' !== mime_content_type($media->getContent()->getPathname())) { + $imageInfo = getimagesize($media->getContent()); + $width = $imageInfo[0]; + $height = $imageInfo[1]; - $media->setMetadataValue('original_width', $width); - $media->setMetadataValue('original_height', $height); + $media->setMetadataValue('original_width', $width); + $media->setMetadataValue('original_height', $height); + } } } } diff --git a/src/new/src/PSC/Shop/MediaBundle/Model/Media.php b/src/new/src/PSC/Shop/MediaBundle/Model/Media.php index 977bcf088..51c615f34 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Model/Media.php +++ b/src/new/src/PSC/Shop/MediaBundle/Model/Media.php @@ -16,6 +16,9 @@ class Media #[OA\Property(type: 'string')] private string $uuid = ""; + #[OA\Property(type: 'array', items: new OA\Items(ref: new Model(type: Variant::class)))] + private array $variants = []; + /** * @return string */ @@ -63,4 +66,43 @@ class Media { $this->uuid = $uuid; } -} \ No newline at end of file + + public function __toString(): string + { + return $this->uuid; + } + + public function getArray(): array + { + return [ + 'uuid' => $this->uuid, + 'url' => $this->url, + 'title' => $this->title + ]; + } + + public function getVariants(): array + { + return $this->variants; + } + + public function getVariant(string $settings): Media|Variant + { + foreach ($this->variants as $variant) { + if ($settings == $variant->getSettings()) { + return $variant; + } + } + return $this; + } + + public function addVariant(Variant $variant): void + { + $this->variants[] = $variant; + } + + public function clearVariants(): void + { + $this->variants = []; + } +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Model/Upload.php b/src/new/src/PSC/Shop/MediaBundle/Model/Upload.php new file mode 100644 index 000000000..32b38060a --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Model/Upload.php @@ -0,0 +1,16 @@ +title; + } + + public function setTitle(string $title): void + { + $this->title = $title; + } + public function getUrl(): string + { + return $this->url; + } + + public function setUrl(string $url): void + { + $this->url = $url; + } + + public function getContact(): string + { + return $this->contact; + } + + public function setContact(string $contact): void + { + $this->contact = $contact; + } + + public function getSettings(): string + { + return $this->settings; + } + + public function setSettings(string $settings): void + { + $this->settings = $settings; + } + + public function getUuid(): string + { + return $this->uuid; + } + + public function setUuid(string $uuid): void + { + $this->uuid = $uuid; + } +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/config/routing.yml b/src/new/src/PSC/Shop/MediaBundle/Resources/config/routing.yml index f318e1c11..717405ce2 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/config/routing.yml +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/config/routing.yml @@ -3,3 +3,7 @@ psc_shop_media_backend: type: annotation prefix: /backend/media +psc_shop_media_api: + resource: "@PSCShopMediaBundle/Api" + prefix: /api/media + type: annotation diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/show.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/show.html.twig index 64f7cc784..c3d5b5ee3 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/show.html.twig +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/show.html.twig @@ -45,6 +45,27 @@ {% endfor %} @@ -55,7 +76,7 @@

-
{% if selectedFolder %} Dateien hinzufügen (Einzelupload){% if pagination|length == 0 %} Ordner löschen{% endif %}{% endif %}
+
{% if selectedFolder %} Dateien hinzufügen (Einzelupload) {% if pagination|length == 0 %} Ordner löschen{% endif %}{% endif %}
{{ form_start(searchForm, { 'attr': {'class': ''}}) }}
@@ -67,7 +88,22 @@ {{ form_end(searchForm) }}
+ {% if level < 3 %} + {{ form_start(subFolderForm, { 'attr': {'class': ''}}) }} +
+
+ +
+ {{ form_widget(subFolderForm.title, {attr: {'class': 'form-control'}}) }} + + + +
+
+
+ {{ form_end(subFolderForm) }} + {% endif %}
@@ -165,4 +201,4 @@ }); -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/media/detail.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/media/detail.html.twig index 4950661f9..8dc734a29 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/media/detail.html.twig +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/media/detail.html.twig @@ -48,7 +48,7 @@ {% set isImage = false %} {% endif %} {% if imageurlorg %} - {{ media.title }} + {{ media.title }} {% else %} {% endif %} @@ -68,6 +68,26 @@ +
+
+
Varianten
+
+
+
+ + + + + + + + {% for variant in media.variants %} + + {% endfor %} + +
SettingUrl
{{ variant.settings }}
+
+
Referenzen
@@ -137,4 +157,4 @@
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/Shop/MediaBundle/Service/Folder.php b/src/new/src/PSC/Shop/MediaBundle/Service/Folder.php new file mode 100644 index 000000000..30ca988ab --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Service/Folder.php @@ -0,0 +1,45 @@ +documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->createQueryBuilder('folder') + ->field('parent_id')->exists(false) + ->sort('title', 'ASC')->getQuery()->execute(); + + $temp = []; + foreach($folders as $folder) { + $temp[$folder->getTitle()] = $folder->getId(); + $subFolders = $this->documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->createQueryBuilder('folder') + ->field('parent_id')->equals($folder->getId()) + ->sort('title', 'ASC')->getQuery()->execute(); + foreach($subFolders as $subFolder) { + $temp['--' . $subFolder->getTitle()] = $subFolder->getId(); + $subSubFolders = $this->documentManager + ->getRepository('PSC\Shop\MediaBundle\Document\Folder') + ->createQueryBuilder('folder') + ->field('parent_id')->equals($subFolder->getId()) + ->sort('title', 'ASC')->getQuery()->execute(); + foreach($subSubFolders as $subSubFolder) { + $temp['----' . $subSubFolder->getTitle()] = $subSubFolder->getId(); + } + } + } + return $temp; + } +} diff --git a/src/new/src/PSC/Shop/MediaBundle/Service/MediaManager.php b/src/new/src/PSC/Shop/MediaBundle/Service/MediaManager.php index 9144089d7..a3085155f 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Service/MediaManager.php +++ b/src/new/src/PSC/Shop/MediaBundle/Service/MediaManager.php @@ -5,27 +5,14 @@ namespace PSC\Shop\MediaBundle\Service; use Doctrine\ODM\MongoDB\DocumentManager; use Liip\ImagineBundle\Imagine\Cache\CacheManager; use PSC\Shop\MediaBundle\Document\Media; -use PSC\Shop\MediaBundle\Helper\Media\AbstractMediaHandler; -use Symfony\Component\HttpFoundation\File\File; use MongoDB\BSON\ObjectId; +use PSC\Shop\MediaBundle\Model\Media as AliasedMedia; +use PSC\Shop\MediaBundle\Transformer\Media as PSCMedia; -/** - * MediaManager - */ class MediaManager { - /** @var DocumentManager */ - private $mongoDb; - - private $cacheManager; - - /** - * @var DocumentManager $repository - */ - public function __construct(DocumentManager $mongoDb, CacheManager $cacheManager) + public function __construct(private readonly DocumentManager $mongoDb, private readonly CacheManager $cacheManager, private readonly PSCMedia $mediaTransformer) { - $this->mongoDb = $mongoDb; - $this->cacheManager = $cacheManager; } public function getMedia($id) @@ -37,6 +24,14 @@ class MediaManager return $media; } + public function getModelByUuid(string $id): AliasedMedia + { + $mediaModel = new AliasedMedia(); + $this->mediaTransformer->fromDb($mediaModel, $this->getMedia($id)); + + return $mediaModel; + } + public function retrieveThumbnailPath(Media $media, $mode = 'psc_backend_portal_image') { /** @var string */ diff --git a/src/new/src/PSC/Shop/MediaBundle/Transformer/Media.php b/src/new/src/PSC/Shop/MediaBundle/Transformer/Media.php index 4e0099935..4ca718fd6 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Transformer/Media.php +++ b/src/new/src/PSC/Shop/MediaBundle/Transformer/Media.php @@ -1,8 +1,11 @@ setTitle($mediaDoc->getTitle()); $media->setUrl($mediaDoc->getUrl()); $media->setUuid($mediaDoc->getId()); + + foreach ($mediaDoc->getVariants() as $variant) { + $variantModel = new Variant(); + $variantModel->setUrl($variant->getUrl()); + $variantModel->setTitle($variant->getTitle()); + $variantModel->setSettings($variant->getSettings()); + $media->addVariant($variantModel); + } + } public function toDb(\PSC\Shop\MediaBundle\Model\Media $media, \PSC\Shop\MediaBundle\Document\Media $mediaDoc) diff --git a/src/new/src/PSC/Shop/MediaBundle/Twig/Extension/MediaExtension.php b/src/new/src/PSC/Shop/MediaBundle/Twig/Extension/MediaExtension.php index b42db8d99..f68b63a96 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Twig/Extension/MediaExtension.php +++ b/src/new/src/PSC/Shop/MediaBundle/Twig/Extension/MediaExtension.php @@ -7,7 +7,9 @@ use Doctrine\ODM\MongoDB\Mapping\Annotations\Document; use MongoDB\BSON\ObjectId; use PSC\Shop\MediaBundle\Document\Media; use PSC\Shop\MediaBundle\Helper\MediaManager; +use PSC\Shop\MediaBundle\Model\Media as PSCMedia; use PSC\Shop\MediaBundle\Model\MediaInterface; +use PSC\Shop\MediaBundle\Model\Variant; use PSC\Shop\MediaBundle\Service\Pool; use PSC\Shop\MediaBundle\Twig\TokenParser\MediaTokenParser; use PSC\Shop\MediaBundle\Twig\TokenParser\PathTokenParser; @@ -22,25 +24,25 @@ class MediaExtension extends \Twig\Extension\AbstractExtension * @var Pool */ protected $mediaService; -/** - * @var array - */ + /** + * @var array + */ protected $resources = array(); -/** - * @var ManagerInterface - */ + /** + * @var ManagerInterface + */ protected $mediaManager; protected $mongoManager; -/** - * @var \Twig_Environment - */ + /** + * @var \Twig_Environment + */ protected $environment; -/** - * @param Pool $mediaService - * @param MediaManager $mediaManager - * @param DocumentManager $mongoManager - * @param Environment $environment - */ + /** + * @param Pool $mediaService + * @param MediaManager $mediaManager + * @param DocumentManager $mongoManager + * @param Environment $environment + */ public function __construct(Pool $mediaService, MediaManager $mediaManager, DocumentManager $mongoManager, Environment $environment) { $this->mediaService = $mediaService; @@ -57,7 +59,11 @@ class MediaExtension extends \Twig\Extension\AbstractExtension ); } - public function file($media): string { + public function file(string|PSCMedia|Variant $media): string + { + if ($media instanceof PSCMedia || $media instanceof Variant) { + return '/data/www/new/web'.$media->getUrl(); + } $media = $this->getMedia($media); if (!$media) { return ''; @@ -66,7 +72,8 @@ class MediaExtension extends \Twig\Extension\AbstractExtension return '/data/www/new/web'.$media->getUrl(); } - public function fileWeb($media): string { + public function fileWeb($media): string + { $media = $this->getMedia($media); if (!$media) { return ''; @@ -122,7 +129,7 @@ class MediaExtension extends \Twig\Extension\AbstractExtension ->getProvider($media->getProviderName()); $format = $provider->getFormatName($media, $format); $format_definition = $provider->getFormat($format); -// build option + // build option $defaultOptions = array( 'title' => $media->getName(), 'alt' => $media->getName(), @@ -167,7 +174,7 @@ class MediaExtension extends \Twig\Extension\AbstractExtension ->getProvider($media->getProviderName()); $format = $provider->getFormatName($media, $format); $format_definition = $provider->getFormat($format); -// build option + // build option $defaultOptions = array( 'title' => $media->getName(), 'alt' => $media->getName(), diff --git a/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/DetailController.php b/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/DetailController.php index 83049f558..bd40d100e 100755 --- a/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/DetailController.php +++ b/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/DetailController.php @@ -33,6 +33,7 @@ use PSC\Shop\OrderBundle\Form\Backend\ProdType; use PSC\Shop\OrderBundle\Form\Backend\ProdinfoType; use PSC\Shop\OrderBundle\Form\Backend\Upload\DeleteType; use PSC\Shop\OrderBundle\PSCShopOrderBundle; +use PSC\Shop\OrderBundle\Service\Order as PSCOrder; use PSC\Shop\QueueBundle\Event\Order\Create; use PSC\Shop\QueueBundle\Event\Order\Updated; use PSC\Shop\QueueBundle\Event\Position\Printpartner\Notify; @@ -70,26 +71,6 @@ class DetailController extends AbstractController { } - /** - * Detail Seite - * - * @param Request $request - * @param Field $fieldService - * @param Section $sectionService - * @param Shop $shopService - * @param DocumentManager $mongoService - * @param EntityManagerInterface $entityManager - * @param Manager $eventManagerService - * @param Status $statusService - * @param PaperDB $paperService - * @param SessionInterface $session - * @param string $uuid - * @param boolean $enableDelivery - * - * @return array - * @throws \Doctrine\ODM\MongoDB\MongoDBException - * @throws \Doctrine\ORM\ORMException - */ #[Route(path: '/detail/show/{uuid}/{enableDelivery}', defaults: ['enableDelivery' => 0], name: 'psc_shop_order_backend_detail_show')] #[Template] public function showAction( @@ -104,15 +85,17 @@ class DetailController extends AbstractController PaperDB $paperService, SessionInterface $session, FormFactoryInterface $formFactory, + PSCOrder $orderService, $uuid = "", $enableDelivery = false ) { $customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Order); $customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Order); $customSections = $sectionService->get(\PSC\System\PluginBundle\Form\Interfaces\Section::Order); + $customPositionDetailSections = $sectionService->get(\PSC\System\PluginBundle\Form\Interfaces\Section::OrderPositionDetail); $selectedShop = $shopService->getSelectedShop(); /** - * @var \PSC\Shop\EntityBundle\Document\Shop $shop + * @var \PSC\Shop\EntityBundle\Document\Shop $shop */ $shop = $mongoService ->getRepository('PSC\Shop\EntityBundle\Document\Shop') @@ -123,13 +106,13 @@ class DetailController extends AbstractController } /** - * @var Order $order + * @var Order $order */ $order = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->findOneBy(array('shop' => $selectedShop, 'uuid' => $uuid)); /** - * @var \PSC\Shop\EntityBundle\Document\Order $orderObj + * @var \PSC\Shop\EntityBundle\Document\Order $orderObj */ $orderObj = $mongoService ->getRepository('PSC\Shop\EntityBundle\Document\Order') @@ -154,7 +137,7 @@ class DetailController extends AbstractController $order->setStatus($data['status']); $eventManagerService->addJob($notify); $this->logService->createLogEntry($selectedShop, $this->getUser(), LogEntry::INFO, PSCShopOrderBundle::class, $order->getUuid(), "Order Status Detail Changed To: " . $data['status']); - }else{ + } else { $this->logService->createLogEntry($selectedShop, $this->getUser(), LogEntry::INFO, PSCShopOrderBundle::class, $order->getUuid(), "Order Status Not Changed But Rest Saved Current Status: " . $order->getStatus()); } @@ -238,19 +221,19 @@ class DetailController extends AbstractController $positions = array(); /** - * @var Orderpos $pos + * @var Orderpos $pos */ foreach ($order->getPositions() as $pos) { if ($pos->getProduct()->getOriginalProduct() != 0) { /** - * @var Product $objProduct + * @var Product $objProduct */ $objProduct = $mongoService ->getRepository(Product::class) ->findOneBy(['uid' => (string)$pos->getProduct()->getOriginalProduct()]); } else { /** - * @var Product $objProduct + * @var Product $objProduct */ $objProduct = $mongoService ->getRepository(Product::class) @@ -260,7 +243,7 @@ class DetailController extends AbstractController $count = $pos->getCount(); /** - * @var Position $objDoc + * @var Position $objDoc */ $objDoc = $mongoService ->getRepository(Position::class) @@ -286,7 +269,7 @@ class DetailController extends AbstractController if(isset($objDoc->getSpecialProductTypeObject()['kalk_artikel'])) { $engine->setActiveArticle($objDoc->getSpecialProductTypeObject()['kalk_artikel']); } - }else{ + } else { $objPosition = unserialize($pos->getData()); $engine->setVariables($objPosition->getOptions()); if(isset($objPosition->getOptions()['kalk_artikel'])) { @@ -345,6 +328,7 @@ class DetailController extends AbstractController return array( 'order' => $order, 'orderObj' => $orderObj, + 'orderModel' => $orderService->getOrderByUuid($uuid), 'positions' => $positions, 'formInvoice' => $formInvoice->createView(), 'formDelivery' => $formDelivery->createView(), @@ -354,7 +338,8 @@ class DetailController extends AbstractController 'shop' => $shop, 'customFields' => $customFields, 'customGroups' => $customGroups, - 'customSections' => $customSections + 'customSections' => $customSections, + 'customPositionDetailSections' => $customPositionDetailSections, ); } @@ -376,7 +361,7 @@ class DetailController extends AbstractController public function switchPosStatusAction(EntityManagerInterface $entityManagerService, Manager $eventManagerService, Shop $shopService, $order = "", $pos = "", $status = 10) { /** - * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); /** @@ -408,11 +393,11 @@ class DetailController extends AbstractController public function setPackageExportedAction(DocumentManager $mongoService, EntityManagerInterface $entityManagerService, Manager $eventManagerService, Shop $shopService, $uuid = "") { /** - * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); /** - * @var Order $order + * @var Order $order */ $order = $entityManagerService ->getRepository('PSC\Shop\EntityBundle\Entity\Order') @@ -426,7 +411,7 @@ class DetailController extends AbstractController ->getQuery(); $q->execute(); /** - * @var \PSC\Shop\EntityBundle\Document\Order $orderObj + * @var \PSC\Shop\EntityBundle\Document\Order $orderObj */ $orderObj = $mongoService ->getRepository('PSC\Shop\EntityBundle\Document\Order') @@ -452,11 +437,11 @@ class DetailController extends AbstractController public function createNewOrderStatus(DocumentManager $mongoService, EntityManagerInterface $entityManagerService, Manager $eventManagerService, Shop $shopService, $uuid = "") { /** - * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); /** - * @var Order $order + * @var Order $order */ $order = $entityManagerService ->getRepository('PSC\Shop\EntityBundle\Entity\Order') @@ -470,7 +455,7 @@ class DetailController extends AbstractController ->getQuery(); $q->execute(); /** - * @var \PSC\Shop\EntityBundle\Document\Order $orderObj + * @var \PSC\Shop\EntityBundle\Document\Order $orderObj */ $orderObj = $mongoService ->getRepository('PSC\Shop\EntityBundle\Document\Order') @@ -497,21 +482,21 @@ class DetailController extends AbstractController public function deleteOrder(DocumentManager $mongoService, EntityManagerInterface $entityManagerService, Manager $eventManagerService, Shop $shopService, $uuid = "") { /** - * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); /** - * @var Order $order + * @var Order $order */ $order = $entityManagerService ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->findOneBy(array('shop' => $selectedShop, 'uuid' => $uuid)); /** - * @var Orderpos $pos + * @var Orderpos $pos */ foreach ($order->getPositions() as $pos) { /** - * @var Upload $upload + * @var Upload $upload */ foreach ($pos->getUploads() as $upload) { $entityManagerService->remove($upload); diff --git a/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/PrintController.php b/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/PrintController.php index 084f6fbff..d53e15487 100755 --- a/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/PrintController.php +++ b/src/new/src/PSC/Shop/OrderBundle/Controller/Backend/PrintController.php @@ -44,15 +44,8 @@ use Symfony\Component\HttpFoundation\Request; require_once(__DIR__ . '/../../../EntityBundle/Lagacy/TP_Basket_Item.php'); -/** - * DetailController fürs Backend - * - * @package PSC\Shop\Order\Backend - * @subpackage Controller - */ class PrintController extends AbstractController { - #[Route(path: '/detail/print/{type}/{uuid}', name: 'psc_shop_order_backend_detail_print')] #[Template] public function printAction( @@ -66,7 +59,7 @@ class PrintController extends AbstractController if ($uuid == 'last') { $selectedShop = $shopService->getSelectedShop(); -/** @var Order $order */ + /** @var Order $order */ $order = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->createQueryBuilder('orders') @@ -76,7 +69,7 @@ class PrintController extends AbstractController ->orderBy('orders.uid', 'DESC') ->getQuery()->getSingleResult(); } else { - /** @var Order $order */ + /** @var Order $order */ $order = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->findOneBy(array('uuid' => $uuid)); @@ -84,7 +77,7 @@ class PrintController extends AbstractController $content = $printingService->generateOrder($order, $type); $response = new StreamedResponse(function () use ($content) { - echo $content; + echo $content; }); $response->headers->set('Content-Type', 'application/pdf'); $response->headers->set('Cache-Control', ''); @@ -110,7 +103,7 @@ class PrintController extends AbstractController if ($uuid == 'last') { $selectedShop = $shopService->getSelectedShop(); -/** @var Order $order */ + /** @var Order $order */ $order = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->createQueryBuilder('orders') @@ -120,14 +113,14 @@ class PrintController extends AbstractController ->orderBy('orders.uid', 'DESC') ->getQuery()->getSingleResult(); } else { - /** @var Order $order */ + /** @var Order $order */ $order = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Order') ->findOneBy(array('uuid' => $uuid)); } $content = ""; -/** @var Orderpos $position */ + /** @var Orderpos $position */ foreach ($order->getPositions() as $position) { if ($position->getUuid() == $posuuid) { $content = $printingService->generatePosition($position, $type); @@ -140,7 +133,7 @@ class PrintController extends AbstractController $response = new StreamedResponse(function () use ($content) { - echo $content; + echo $content; }); $response->headers->set('Content-Type', 'application/pdf'); $response->headers->set('Cache-Control', ''); @@ -148,35 +141,35 @@ class PrintController extends AbstractController $response->headers->set('Last-Modified', gmdate('D, d M Y H:i:s')); switch ($type) { case Printing::INVOICE: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'invoice_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'invoice_' . $order->getAlias() . '.pdf'); break; case Printing::DELIVERY: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'delivery_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'delivery_' . $order->getAlias() . '.pdf'); break; case Printing::LABEL: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'label_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'label_' . $order->getAlias() . '.pdf'); break; case Printing::ORDER: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'order_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'order_' . $order->getAlias() . '.pdf'); break; case Printing::OFFER: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'offer_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'offer_' . $order->getAlias() . '.pdf'); break; case Printing::STORNO: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'storno_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'storno_' . $order->getAlias() . '.pdf'); break; case Printing::JOBTICKET: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'jobticket_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'jobticket_' . $order->getAlias() . '.pdf'); break; case Printing::JOBTICKET_PRINTPARTNER: - $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'jobticket_pp_' . $order->getAlias() . '.pdf'); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'jobticket_pp_' . $order->getAlias() . '.pdf'); break; } @@ -186,4 +179,46 @@ class PrintController extends AbstractController $response->prepare($request); return $response; } + + #[Route(path: '/detail/xrechnung/{uuid}', name: 'psc_shop_order_backend_detail_xrechnung')] + #[Template] + public function xrechnung( + Request $request, + Printing $printingService, + \PSC\System\SettingsBundle\Service\Shop $shopService, + EntityManagerInterface $entityManager, + $uuid = "" + ) { + + if ($uuid == 'last') { + $selectedShop = $shopService->getSelectedShop(); + /** @var Order $order */ + $order = $entityManager + ->getRepository('PSC\Shop\EntityBundle\Entity\Order') + ->createQueryBuilder('orders') + ->andWhere('orders.shop = :shop_id') + ->setParameter("shop_id", $selectedShop->getUid()) + ->setMaxResults(1) + ->orderBy('orders.uid', 'DESC') + ->getQuery()->getSingleResult(); + } else { + /** @var Order $order */ + $order = $entityManager + ->getRepository('PSC\Shop\EntityBundle\Entity\Order') + ->findOneBy(array('uuid' => $uuid)); + } + $content = $printingService->generateXRechnung($order); + $response = new StreamedResponse(function () use ($content) { + + echo $content; + }); + $response->headers->set('Content-Type', 'application/xml'); + $response->headers->set('Cache-Control', ''); + $response->headers->set('Content-Length', strlen($content)); + $response->headers->set('Last-Modified', gmdate('D, d M Y H:i:s')); + $contentDisposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, "xrechnung.xml"); + $response->headers->set('Content-Disposition', $contentDisposition); + $response->prepare($request); + return $response; + } } diff --git a/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig b/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig index 84d209fbd..d0d198a1b 100755 --- a/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig +++ b/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig @@ -35,6 +35,7 @@ span.row { {% if shop.docLabelJasperXml != "" %} {{'labels'|trans}}{% endif %} {% if shop.docJobticketJasperXml != "" %} {{'jobticket'|trans}}{% endif %} {% if shop.docStornoJasperXml != "" %} {{'cancel'|trans}}{% endif %} + {{'XRechnung'|trans}}
+ @@ -43,9 +87,11 @@ var productUUId = "{{product.uuid}}"; var contactUuid = "{{contactUuid}}"; var continueOnlyValidated = {% if settings.continueOnlyValidated %}true{% else %}false{% endif %}; - + var cropper = null; + var cropElementId = null; + var cropMode = 1; var ref = ""; - + var actModalId = ""; $(function() { buildCustomerForm(); @@ -76,7 +122,9 @@ $('.finish').click(function() { if(continueOnlyValidated) { const form = document.querySelector('.needs-validation'); + document.querySelectorAll('input:invalid').forEach(function(item) { $(item).addClass('border-red-500') }) if (!form.checkValidity()) { + document.querySelectorAll('input:invalid').forEach(function(item) { $(item).addClass('border-red-500') }) $('.finish').prop('disabled', true); $('.save').prop('disabled', true); form.classList.add('was-validated'); @@ -151,36 +199,67 @@ data: JSON.stringify({}), success: function(result) { $.each(result, function(i, element) { - var $label = $('
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/deldomain.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/deldomain.phtml index cff6cc0b9..cbe32af8c 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/deldomain.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/deldomain.phtml @@ -1,13 +1,13 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - - Zurück

Domain löschen

-

domain->name ?>

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> -
-
+partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

Domain löschen

+

domain->name ?>

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delmotiv.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delmotiv.phtml index 5f90c8b35..df8b500d3 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delmotiv.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delmotiv.phtml @@ -1,15 +1,15 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - -Zurück

"motiv->title ?>" translate('Motiv löschen')?>

- -motiv_in_use > 0): ?> -

translate("Motiv ist in Benutzung, löschen nicht möglich"); ?>

- - -
- -
- -
-
+partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +Zurück

"motiv->title ?>" translate('Motiv löschen')?>

+ +motiv_in_use > 0): ?> +

translate("Motiv ist in Benutzung, löschen nicht möglich"); ?>

+ + +
+ +
+ +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delslide.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delslide.phtml index 8b3a02d58..ac830d02b 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delslide.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delslide.phtml @@ -1,12 +1,12 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - - Zurück

Slide löschen

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

Slide löschen

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthemearticle.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthemearticle.phtml index 82fdc3da6..0376d95ab 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthemearticle.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthemearticle.phtml @@ -1,13 +1,13 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - - Zurück

Produktthema löschen

-

theme->title ?>

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

Produktthema löschen

+

theme->title ?>

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthememotiv.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthememotiv.phtml index 96261b05e..f2e016bee 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthememotiv.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/delthememotiv.phtml @@ -1,13 +1,13 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - - Zurück

Motivthema löschen

-

theme->title ?>

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

Motivthema löschen

+

theme->title ?>

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/design.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/design.phtml index f126e95c0..ee049385e 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/design.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/design.phtml @@ -1,15 +1,15 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -

Konfigurieren Sie Ihr Design.

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - -
- - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

Konfigurieren Sie Ihr Design.

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + +
+ + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/domains.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/domains.phtml index 19acb684e..10389f4da 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/domains.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/domains.phtml @@ -1,17 +1,17 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - -

Domains.

- Neue Domain anlegen - - - - domains as $domain): ?> - - - -
Domain
- -
- - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +

Domains.

+ Neue Domain anlegen + + + + domains as $domain): ?> + + + +
Domain
+ +
+ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticle.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticle.phtml index b7794865d..5fbe0b80b 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticle.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticle.phtml @@ -1,15 +1,15 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> -headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); - $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); -?> - -Zurück

Produkt bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> +headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); +?> + +Zurück

Produkt bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticlegroup.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticlegroup.phtml index a92a9bf0d..9e62a740d 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticlegroup.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editarticlegroup.phtml @@ -1,12 +1,12 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -Zurück

Produktgruppen bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

Produktgruppen bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editdomain.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editdomain.phtml index aa395fa8b..c0472bf19 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editdomain.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editdomain.phtml @@ -1,12 +1,12 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -Zurück

Domain bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

Domain bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editmotiv.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editmotiv.phtml index fadea31ef..8e9215bba 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editmotiv.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editmotiv.phtml @@ -1,15 +1,15 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - -headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); - $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); -?> -Zurück

Motiv bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); +?> +Zurück

Motiv bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editslide.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editslide.phtml index ec01a2178..b8572bfbe 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editslide.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editslide.phtml @@ -1,13 +1,13 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -Zurück

Slide bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->text->setAttrib('style','height: 440px;width: 440px;'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

Slide bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->text->setAttrib('style','height: 440px;width: 440px;'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthemearticle.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthemearticle.phtml index 171e3a110..94cab88b7 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthemearticle.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthemearticle.phtml @@ -1,12 +1,12 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -Zurück

Produktthema bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

Produktthema bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthememotiv.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthememotiv.phtml index a4afd5704..c5c451d63 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthememotiv.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/editthememotiv.phtml @@ -1,13 +1,13 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -Zurück

Motivthema bearbeiten

- form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); - $this->form->setAttrib('class', 'form-horizontal'); - $this->form->save->setAttrib('class', 'btn-success btn-large'); - - echo $this->form; ?> - - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

Motivthema bearbeiten

+ form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/index.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/index.phtml index 650ed7205..2a61c711d 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/index.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/index.phtml @@ -1,8 +1,8 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - - -

Shopübersicht

- -
+partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + +

Shopübersicht

+ +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/motive.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/motive.phtml index a5370f5e9..8b3914aa8 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/motive.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/motive.phtml @@ -1,20 +1,20 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -

Motive

- Neues Motiv hochladen - - - - motive as $motiv): ?> - - - -
Title
image()->thumbnailMotiv($motiv->title, 'motivelist', $motiv->file_thumb, false, $motiv); ?>title ?>
- UUID: uuid ?>
- - -
- - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

Motive

+ Neues Motiv hochladen + + + + motive as $motiv): ?> + + + +
Title
image()->thumbnailMotiv($motiv->title, 'motivelist', $motiv->file_thumb, false, $motiv); ?>title ?>
+ UUID: uuid ?>
+ + +
+ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/orders.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/orders.phtml index 7c8c5e1dd..19e027898 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/orders.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/orders.phtml @@ -1,8 +1,8 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -

Aufträge

- - -
+partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

Aufträge

+ + +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesarticles.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesarticles.phtml index 83a832869..68a368eb9 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesarticles.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesarticles.phtml @@ -1,18 +1,18 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -

Produktthemen

- Neues Thema anlegen - - - - themes as $theme): ?> - - - -
Title
title ?> - -
- -
+partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

Produktthemen

+ Neues Thema anlegen + + + + themes as $theme): ?> + + + +
Title
title ?> + +
+ +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesmotive.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesmotive.phtml index 1b7686883..5e12ba4b9 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesmotive.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/myshop/themesmotive.phtml @@ -1,18 +1,18 @@ -partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> - - -

Motivthemen

- Neues Thema anlegen - - - - themes as $theme): ?> - - - -
Title
title ?> - -
- - +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

Motivthemen

+ Neues Thema anlegen + + + + themes as $theme): ?> + + + +
Title
title ?> + +
+ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/news/index.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/news/index.phtml index c6799ce5d..bdb161264 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/news/index.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/news/index.phtml @@ -1,6 +1,6 @@ - - -news as $news): ?> - - + +
date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?> title ?>

einleitung ?> [translate('mehr')?>...]

+news as $news): ?> + +
date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?> title ?>

einleitung ?> [translate('mehr')?>...]

\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/news/show.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/news/show.phtml index 9d7e23130..b93bff6a4 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/news/show.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/news/show.phtml @@ -1,4 +1,4 @@ - -

news->text ?>

-Zurück + +

news->text ?>

+Zurück



\ No newline at end of file diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/overview/index.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/overview/index.phtml index 28a4b6f2f..a4cd8a60e 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/overview/index.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/overview/index.phtml @@ -35,7 +35,7 @@ articlegroupss as $articlegroup): ?> @@ -49,7 +49,7 @@ articles as $article): ?> diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/pagination.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/pagination.phtml index 0cdc552f3..d69941be2 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/pagination.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/pagination.phtml @@ -1,39 +1,39 @@ -pagesInRange) > 1): - -?> -
- -
- - +pagesInRange) > 1): + +?> +
+ +
+ + diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/product_tabs.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/product_tabs.phtml index 755f48b82..264e083ee 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/product_tabs.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/product_tabs.phtml @@ -1,22 +1,22 @@ -