diff --git a/composer.lock b/composer.lock index 3e4b5ff2..38db6a3c 100644 --- a/composer.lock +++ b/composer.lock @@ -8857,23 +8857,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.15", + "version": "9.2.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" + "reference": "2593003befdcc10db5e213f9f28814f5aa8ac073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2593003befdcc10db5e213f9f28814f5aa8ac073", + "reference": "2593003befdcc10db5e213f9f28814f5aa8ac073", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -8922,7 +8922,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.16" }, "funding": [ { @@ -8930,7 +8930,7 @@ "type": "github" } ], - "time": "2022-03-07T09:28:20+00:00" + "time": "2022-08-20T05:26:47+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9175,16 +9175,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.21", + "version": "9.5.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" + "reference": "e329ac6e8744f461518272612a479fde958752fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e329ac6e8744f461518272612a479fde958752fe", + "reference": "e329ac6e8744f461518272612a479fde958752fe", "shasum": "" }, "require": { @@ -9261,7 +9261,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.22" }, "funding": [ { @@ -9273,7 +9273,7 @@ "type": "github" } ], - "time": "2022-06-19T12:14:25+00:00" + "time": "2022-08-20T08:25:46+00:00" }, { "name": "pimple/pimple", diff --git a/package-lock.json b/package-lock.json index 69b1c1cd..705b6cb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,6 @@ "stimulus-use": "^0.25.4", "vue": "^2.6.14", "vue-router": "^3.5.2", - "vue-scrollto": "^2.20.0", "vue-session": "^1.0.0", "vuex": "^3.6.2", "whatwg-fetch": "^3.6.2" @@ -2773,11 +2772,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/bezier-easing": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz", - "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==" - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -8175,14 +8169,6 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.4.tgz", "integrity": "sha512-x+/DLAJZv2mcQ7glH2oV9ze8uPwcI+H+GgTgTmb5I55bCgY3+vXWIsqbYUzbBSZnwFHEJku4eoaH/x98veyymQ==" }, - "node_modules/vue-scrollto": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/vue-scrollto/-/vue-scrollto-2.20.0.tgz", - "integrity": "sha512-7i+AGKJTThZnMEkhIPgrZjyAX+fXV7/rGdg+CV283uZZwCxwiMXaBLTmIc5RTA4uwGnT+E6eJle3mXQfM2OD3A==", - "dependencies": { - "bezier-easing": "2.1.0" - } - }, "node_modules/vue-session": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/vue-session/-/vue-session-1.0.0.tgz", @@ -10777,11 +10763,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "bezier-easing": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz", - "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==" - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -14702,14 +14683,6 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.4.tgz", "integrity": "sha512-x+/DLAJZv2mcQ7glH2oV9ze8uPwcI+H+GgTgTmb5I55bCgY3+vXWIsqbYUzbBSZnwFHEJku4eoaH/x98veyymQ==" }, - "vue-scrollto": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/vue-scrollto/-/vue-scrollto-2.20.0.tgz", - "integrity": "sha512-7i+AGKJTThZnMEkhIPgrZjyAX+fXV7/rGdg+CV283uZZwCxwiMXaBLTmIc5RTA4uwGnT+E6eJle3mXQfM2OD3A==", - "requires": { - "bezier-easing": "2.1.0" - } - }, "vue-session": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/vue-session/-/vue-session-1.0.0.tgz", diff --git a/package.json b/package.json index ef6d3edf..9306efc4 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "stimulus-use": "^0.25.4", "vue": "^2.6.14", "vue-router": "^3.5.2", - "vue-scrollto": "^2.20.0", "vue-session": "^1.0.0", "vuex": "^3.6.2", "whatwg-fetch": "^3.6.2" diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php b/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php index c9cf2b6c..ad640849 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php @@ -83,7 +83,7 @@ class ConceptController extends ActionController $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids'], true); $limit = $this->settings['showMoreLink'] ? 4 : 0; $teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit); - $pages = $this->pageRepository->findPagesByPid($this->settings['conceptsPageUid']); + $pages = $this->pageRepository->findPagesByPid((int)$this->settings['conceptsPageUid']); $data = $this->configurationManager->getContentObject()->data; $this->view->assignMultiple([ diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/GroupsPriceController.php b/public/typo3conf/ext/ep_products/Classes/Controller/GroupsPriceController.php index 3d64017c..c3213fe0 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/GroupsPriceController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/GroupsPriceController.php @@ -41,6 +41,7 @@ class GroupsPriceController extends ActionController }); $this->view->assign('hotel', $hotel); + $this->view->assign('runningCosts', $this->settings['runningCosts']); $this->view->assign('configs', json_encode(array_values($configs), JSON_HEX_APOS)); $this->view->assign('boards', json_encode($hotel->getGroupsPriceBoards()->toArray(), JSON_HEX_APOS)); $this->view->assign('options', json_encode($hotel->getGroupsPriceOptions()->toArray(), JSON_HEX_APOS)); diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Concept.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Concept.php index 5f553407..3eee78bd 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Concept.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Concept.php @@ -90,6 +90,11 @@ class Concept extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements */ protected $headerImages; + /** + * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> + */ + protected $images; + /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\EP\EpProducts\Domain\Model\Product> */ @@ -110,6 +115,7 @@ class Concept extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements $this->products = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); $this->teaserImages = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); $this->headerImages = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); + $this->images = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); } /** @@ -326,6 +332,22 @@ class Concept extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements $this->headerImages = $headerImages; } + /** + * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage + */ + public function getImages() + { + return $this->images; + } + + /** + * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage $images + */ + public function setImages($images) + { + $this->images = $images; + } + /** * @param \EP\EpProducts\Domain\Model\Product $product */ diff --git a/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_groups_price_calculator.xml b/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_groups_price_calculator.xml new file mode 100644 index 00000000..9e172992 --- /dev/null +++ b/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_groups_price_calculator.xml @@ -0,0 +1,28 @@ + + + 1 + + + + + + Konfiguration + + array + + + + 0 + + + input + 1.7 + double2,required + + + + + + + + diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php index cbe627a4..0fb45fe2 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php @@ -262,4 +262,10 @@ call_user_func(function () { 'FILE:EXT:ep_products/Configuration/FlexForms/flexform_teammembers.xml' ); + $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['epproducts_hotel_groups_price'] = 'pi_flexform'; + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + 'epproducts_hotel_groups_price', + 'FILE:EXT:ep_products/Configuration/FlexForms/flexform_groups_price_calculator.xml' + ); + }); diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_concept.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_concept.php index 9e6905a2..57204032 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_concept.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_concept.php @@ -24,8 +24,8 @@ return [ ], 'types' => [ '1' => [ - 'showitem' => '--palette--;;top, --palette--;;naming, --palette--;;header, teaser, description, description_extended, - --div--;Bilder/Dateien, teaser_images, header_images', + 'showitem' => '--palette--;;top, --palette--;;naming, --palette--;;header, teaser, description, description_extended, + --div--;Bilder/Dateien, teaser_images, header_images, images', ], ], 'palettes' => [ @@ -310,6 +310,55 @@ return [ ], $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] ), + ], + 'images' => [ + 'exclude' => 0, + 'label' => 'Galeriebilder', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'images', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette', + ], + ], + 'columns' => [ + 'crop' => [ + 'config' => [ + 'cropVariants' => [ + 'default' => [ + 'title' => 'Preview', + 'allowedAspectRatios' => [ + 'preview' => [ + 'title' => 'Standard', + 'value' => 1.8, + ], + ], + ], + 'zoom' => [ + 'title' => 'Zoom', + 'allowedAspectRatios' => [ + 'free' => [ + 'title' => 'frei', + 'value' => 'NaN', + ], + ], + ], + ], + ], + ], + ], + ], + 'maxitems' => 10 + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), ], 'products' => [ 'exclude' => 0, diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql index fdb72387..98f46684 100644 --- a/public/typo3conf/ext/ep_products/ext_tables.sql +++ b/public/typo3conf/ext/ep_products/ext_tables.sql @@ -529,6 +529,7 @@ CREATE TABLE tx_epproducts_domain_model_concept header_subtitle varchar(255) DEFAULT '' NOT NULL, teaser_images int(11) unsigned NOT NULL default '0', header_images int(11) unsigned NOT NULL default '0', + images int(11) unsigned NOT NULL default '0', tstamp int(11) unsigned DEFAULT '0' NOT NULL, crdate int(11) unsigned DEFAULT '0' NOT NULL, diff --git a/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php index e7225f41..151b4be4 100644 --- a/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php +++ b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php @@ -69,14 +69,14 @@ class BackendController extends ActionController public function initializeAction() { - $this->pageUid = (integer)GeneralUtility::_GET('id'); + $this->pageUid = (int)GeneralUtility::_GET('id'); parent::initializeAction(); } public function listPagesAction() { - $pages = $this->pageRepository->findPagesByPid($this->pageUid); + $pages = $this->pageRepository->findPagesByPid($this->pageUid, true); $this->view->assign('pages', $pages); } diff --git a/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php index 32c4f64e..f764de12 100644 --- a/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php +++ b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php @@ -2,6 +2,7 @@ namespace EP\EpTheme\Domain\Repository; +use TYPO3\CMS\Core\Domain\Repository\PageRepository as CorePageRepository; use TYPO3\CMS\Extbase\Persistence\Repository; class PageRepository extends Repository @@ -13,23 +14,20 @@ class PageRepository extends Repository 'sorting' => 'ASC', ]; - /** - * @param int $pid - * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface - */ - public function findPagesByPid($pid) + public function findPagesByPid(int $pid, bool $includeDisabled = false) { $query = $this->createQuery(); $query ->getQuerySettings() ->setRespectStoragePage(false) - ->setIgnoreEnableFields(true) + ->setIgnoreEnableFields($includeDisabled) ->setIncludeDeleted(false) ->setRespectSysLanguage(false) ; $query->matching($query->logicalAnd([ $query->equals('pid', $pid), - $query->equals('doktype', \TYPO3\CMS\Core\Domain\Repository\PageRepository::DOKTYPE_DEFAULT) + $query->equals('doktype', CorePageRepository::DOKTYPE_DEFAULT), + $query->equals('navHide', false), ])); return $query->execute(); diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Address.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Address.vue index 196f4868..f903dc6c 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Address.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Address.vue @@ -62,13 +62,12 @@ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/App.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/App.vue index 6a7cf4cc..bdf3f0cf 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/App.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/App.vue @@ -1,8 +1,9 @@ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/BookingEdit.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/BookingEdit.vue index 0dbfa8da..30eb77c1 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/BookingEdit.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/BookingEdit.vue @@ -158,7 +158,6 @@ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/CrmData.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/CrmData.vue index c5df36ef..9b2d4675 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/CrmData.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/CrmData.vue @@ -51,7 +51,7 @@ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Events.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Events.vue index 1d07c175..a7a99865 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Events.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Events.vue @@ -75,10 +75,10 @@ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Teamer.vue b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Teamer.vue index dd6a48a8..95cde61e 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Teamer.vue +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/Teamer.vue @@ -1,81 +1,77 @@