Merge branch 'teamdepts' into 'master'

Allow categorizing team members by category

See merge request dreipunktnull/ep-reisen-web!1
This commit is contained in:
Björn Fromme
2018-06-13 09:45:31 +00:00
11 changed files with 2214 additions and 1986 deletions
+15
View File
@@ -0,0 +1,15 @@
image: node:10.4.1
cache:
paths:
- node_modules/
stages:
- build
build:
stage: build
before_script:
- npm install
script:
- node node_modules/.bin/encore production
Generated
+24 -24
View File
@@ -761,22 +761,22 @@
},
{
"name": "helhum/typo3-console",
"version": "4.9.3",
"version": "4.9.4",
"source": {
"type": "git",
"url": "https://github.com/TYPO3-Console/TYPO3-Console.git",
"reference": "cd5d9e2545484339e7f766bc2527721b6f476e0f"
"reference": "f190a3acd39bea6449741e13fdc3f03d360a17b3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/TYPO3-Console/TYPO3-Console/zipball/cd5d9e2545484339e7f766bc2527721b6f476e0f",
"reference": "cd5d9e2545484339e7f766bc2527721b6f476e0f",
"url": "https://api.github.com/repos/TYPO3-Console/TYPO3-Console/zipball/f190a3acd39bea6449741e13fdc3f03d360a17b3",
"reference": "f190a3acd39bea6449741e13fdc3f03d360a17b3",
"shasum": ""
},
"require": {
"ext-phar": "*",
"helhum/typo3-console-plugin": "^1.7.5 || ^2.0.2",
"php": ">=5.5.0 <7.2",
"php": ">=5.5.0 <7.3",
"symfony/console": "^2.7 || ^3.0",
"symfony/process": "^2.7 || ^3.0",
"typo3/cms-backend": "^7.6 || ^8.7",
@@ -793,7 +793,7 @@
},
"require-dev": {
"mikey179/vfsstream": "~1.6.0",
"nimut/testing-framework": "^1.0",
"nimut/testing-framework": "^2.0 || ^3.0",
"symfony/filesystem": "^3.2",
"typo3-console/create-reference-command": "^1.0",
"typo3/cms": "^8.7"
@@ -824,7 +824,7 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0+"
"GPL-2.0-or-later"
],
"authors": [
{
@@ -843,7 +843,7 @@
"console",
"typo3"
],
"time": "2017-12-15T14:46:54+00:00"
"time": "2018-06-05T11:37:47+00:00"
},
{
"name": "helhum/typo3-console-plugin",
@@ -2452,16 +2452,16 @@
},
{
"name": "typo3/cms",
"version": "v7.6.28",
"version": "v7.6.29",
"source": {
"type": "git",
"url": "https://github.com/TYPO3/TYPO3.CMS.git",
"reference": "0c885e11d2f847ca98b5740857e86a21f8cbd3b5"
"reference": "1f403428aeaa2a82ed84db0df249e80d335f0ca4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/TYPO3/TYPO3.CMS/zipball/0c885e11d2f847ca98b5740857e86a21f8cbd3b5",
"reference": "0c885e11d2f847ca98b5740857e86a21f8cbd3b5",
"url": "https://api.github.com/repos/TYPO3/TYPO3.CMS/zipball/1f403428aeaa2a82ed84db0df249e80d335f0ca4",
"reference": "1f403428aeaa2a82ed84db0df249e80d335f0ca4",
"shasum": ""
},
"require": {
@@ -2661,7 +2661,7 @@
"extbase",
"typo3"
],
"time": "2018-05-22T13:52:43+00:00"
"time": "2018-06-11T17:20:39+00:00"
},
{
"name": "typo3/cms-composer-installers",
@@ -3733,16 +3733,16 @@
},
{
"name": "react/promise",
"version": "v2.5.1",
"version": "v2.6.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
"reference": "62785ae604c8d69725d693eb370e1d67e94c4053"
"reference": "5e60e5596a5422287f9d2205f405bef2ae0cef4b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/62785ae604c8d69725d693eb370e1d67e94c4053",
"reference": "62785ae604c8d69725d693eb370e1d67e94c4053",
"url": "https://api.github.com/repos/reactphp/promise/zipball/5e60e5596a5422287f9d2205f405bef2ae0cef4b",
"reference": "5e60e5596a5422287f9d2205f405bef2ae0cef4b",
"shasum": ""
},
"require": {
@@ -3775,26 +3775,26 @@
"promise",
"promises"
],
"time": "2017-03-25T12:08:31+00:00"
"time": "2018-06-11T11:05:43+00:00"
},
{
"name": "react/promise-timer",
"version": "v1.3.0",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise-timer.git",
"reference": "604513e33feb96ffb0dfb3d25233d3f9f0dce356"
"reference": "c21781145955892900efba366ec236eb66e3ee35"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/604513e33feb96ffb0dfb3d25233d3f9f0dce356",
"reference": "604513e33feb96ffb0dfb3d25233d3f9f0dce356",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/c21781145955892900efba366ec236eb66e3ee35",
"reference": "c21781145955892900efba366ec236eb66e3ee35",
"shasum": ""
},
"require": {
"php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "~2.1|~1.2"
"react/promise": "^2.6.0 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
@@ -3828,7 +3828,7 @@
"timeout",
"timer"
],
"time": "2018-04-24T14:19:26+00:00"
"time": "2018-06-11T14:11:05+00:00"
},
{
"name": "react/react",
+2079 -1949
View File
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -16,11 +16,11 @@
"bourbon": "^4.3.2",
"cookieconsent": "^3.0.4",
"font-awesome": "^4.7.0",
"iframe-resizer": "^3.5.5",
"iframe-resizer": "^3.6.1",
"jquery": "^2.2.4",
"jquery-lazy": "^1.7.4",
"jquery-lazy": "^1.7.9",
"load-google-maps-api": "^1.3.2",
"moment": "^2.19.4",
"moment": "^2.22.2",
"normalize.css": "^7.0.0",
"picturefill": "^3.0.2",
"sass-mq": "^3.3.2",
@@ -31,11 +31,11 @@
},
"devDependencies": {
"@symfony/webpack-encore": "^0.19.0",
"autoprefixer": "^8.2.0",
"node-sass": "^4.8.3",
"postcss-loader": "^2.1.3",
"autoprefixer": "^8.6.2",
"node-sass": "^4.9.0",
"postcss-loader": "^2.1.5",
"sass-loader": "^6.0.7",
"vue-loader": "^14.2.2",
"vue-loader": "^14.2.3",
"vue-template-compiler": "^2.5.16",
"webpack-notifier": "^1.6.0"
},
@@ -29,6 +29,7 @@ namespace EP\EpProducts\Controller;
use EP\EpProducts\Domain\Model\Teammember;
use EP\EpProducts\Domain\Repository\TeammemberRepository;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
class TeamController extends ActionController
@@ -44,12 +45,18 @@ class TeamController extends ActionController
public function __construct(TeammemberRepository $teammemberRepository)
{
parent::__construct();
$this->teammemberRepository = $teammemberRepository;
}
public function listAction()
{
$members = $this->teammemberRepository->findAll();
if (isset($this->settings['teamCategories']) && count($this->settings['teamCategories'])) {
$members = $this->teammemberRepository->findByCategories(GeneralUtility::trimExplode(',', $this->settings['teamCategories'], true));
} else {
$members = $this->teammemberRepository->findAll();
}
$this->view->assign('members', $members);
}
@@ -2,6 +2,8 @@
namespace EP\EpProducts\Domain\Model;
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
/***************************************************************
*
* Copyright notice
@@ -60,6 +62,16 @@ class Teammember extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
*/
protected $description = '';
/**
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
*/
protected $categories;
public function __construct()
{
$this->categories = new ObjectStorage();
}
/**
* @return string $name
*/
@@ -156,4 +168,20 @@ class Teammember extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
$this->description = $description;
}
/**
* @return ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
*/
public function getCategories()
{
return $this->categories;
}
/**
* @param ObjectStorage $categories
*/
public function setCategories($categories)
{
$this->categories = $categories;
}
}
@@ -35,4 +35,12 @@ class TeammemberRepository extends AbstractRepository
protected $defaultOrderings = [
'sorting' => 'ASC',
];
public function findByCategories(array $categories = [])
{
$qb = $this->createQuery();
$qb->matching($qb->in('categories', $categories));
return $qb->execute();
}
}
@@ -0,0 +1,31 @@
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Konfiguration</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.teamCategories>
<TCEforms>
<exclude>0</exclude>
<label>Auf Kategorie beschränken</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<enableMultiSelectFilterTextfield>1</enableMultiSelectFilterTextfield>
<foreign_table>sys_category</foreign_table>
<minitems>0</minitems>
<maxitems>99</maxitems>
</config>
</TCEforms>
</settings.teamCategories>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
@@ -15,19 +15,19 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers']['ep_p
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['extbase']['commandControllers']['ep_products_contingent'] =
\EP\EpProducts\Command\ContingentCommandController::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['EP\EpProducts\Task\ImportProductsTask'] = [
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportProductsTask::class] = [
'extension' => $_EXTKEY,
'title' => 'EP Produkt Import',
'description' => 'Importiert Reisedaten aus busProNet',
];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['EP\EpProducts\Task\ImportContingentsTask'] = [
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportContingentsTask::class] = [
'extension' => $_EXTKEY,
'title' => 'EP Kontingent Import',
'description' => 'Importiert Kontingentdaten aus busProNet',
];
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['EP\EpProducts\Task\ImportSnowreportTask'] = [
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\Task\ImportSnowreportTask::class] = [
'extension' => $_EXTKEY,
'title' => 'EP Schneehöhen Import',
'description' => 'Importiert Schneehöhen',
@@ -331,7 +331,7 @@ $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epp
$GLOBALS['TYPO3_CONF_VARS']['LOG']['EP']['EpProducts']['Controller']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::INFO => [
'TYPO3\\CMS\\Core\\Log\\Writer\\DatabaseWriter' => [
TYPO3\CMS\Core\Log\Writer\DatabaseWriter::class => [
'logTable' => 'tx_epproducts_log'
],
],
@@ -207,6 +207,10 @@ $pluginSignature = str_replace('_', '', $_EXTKEY) . '_snowreport_list';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_snowreport.xml');
$pluginSignature = str_replace('_', '', $_EXTKEY) . '_teammembers';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_teammembers.xml');
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'EP.' . $_EXTKEY,
'web',
@@ -221,3 +225,8 @@ $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignat
'icon' => 'EXT:ep_products/Resources/Public/Icons/logo.svg'
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
'epproducts',
'tx_epproducts_domain_model_teammember'
);
@@ -65,7 +65,7 @@
<script>
import $ from 'jquery'
import DatePicker from './DatePicker.vue'
import DatePicker from './Datepicker.vue'
import moment from 'moment'
export default {