Commit cc27cf89 authored by Siddharth Sheth's avatar Siddharth Sheth
Browse files

[EXT:t3o_mom complete]

parent 23d7ba07
Pipeline #6835 failed with stages
in 13 seconds
/vendor/
\ No newline at end of file
<?php
namespace T3o\T3oMom\Controller;
/***
*
* This file is part of the "MOM" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* (c) 2019
*
***/
/**
* T3MomController
*/
class T3MomController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* t3MomRepository
*
* @var \T3o\T3oMom\Domain\Repository\T3MomRepository
* @inject
*/
protected $t3MomRepository = null;
/**
* t3teamsRepository
*
* @var \T3o\T3oJobs\Domain\Repository\T3teamsRepository
* @inject
*/
protected $t3teamsRepository = null;
/**
* action list
* @param array $result
*/
public function listAction($result = null) {
$this->view->assign('isDefaultListing', 'Yes');
// Is it calling team filter?
if (!is_null($result['teamid']) && $result['teamid'] >= 0) {
$selTeam = $this->t3teamsRepository->findByUid($result['teamid']);
$t3Moms = $this->t3MomRepository->filterByTeam($selTeam);
$this->view->assign('t3Moms', $t3Moms);
$this->view->assign('isDefaultListing', 'No');
}
// Let's just display default listing screen
else {
$allTeam = $this->t3teamsRepository->findAll();
$t3Moms = $this->t3MomRepository->findAll();
$this->view->assign('t3Moms', $t3Moms);
$this->view->assign('allTeam', $allTeam);
}
}
/**
* action show
*
* @param \T3o\T3oMom\Domain\Model\T3Mom $t3Mom
*/
public function showAction(\T3o\T3oMom\Domain\Model\T3Mom $t3Mom) {
$this->view->assign('t3Mom', $t3Mom);
}
}
<?php
namespace T3o\T3oMom\Domain\Model;
/***
*
* This file is part of the "MOM" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* (c) 2019
*
***/
/**
* T3Mom
*/
class T3Mom extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
/**
* title
*
* @var string
*/
protected $title = '';
/**
* momdate
*
* @var \DateTime
*/
protected $momdate = null;
/**
* text
*
* @var string
*/
protected $text = '';
/**
* momauthor
*
* @var string
*/
protected $momauthor = '';
/**
* t3teams
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\T3o\T3oJobs\Domain\Model\T3teams>
*/
protected $t3teams = null;
/**
* __construct
*/
public function __construct() {
//Do not remove the next line: It would break the functionality
$this->initStorageObjects();
}
/**
* Initializes all ObjectStorage properties
* Do not modify this method!
* It will be rewritten on each save in the extension builder
* You may modify the constructor of this class instead
*
* @return void
*/
protected function initStorageObjects() {
$this->t3teams = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
}
/**
* Returns the title
*
* @return string $title
*/
public function getTitle() {
return $this->title;
}
/**
* Sets the title
*
* @param string $title
* @return void
*/
public function setTitle($title) {
$this->title = $title;
}
/**
* Returns the momdate
*
* @return \DateTime $momdate
*/
public function getMomdate() {
return $this->momdate;
}
/**
* Sets the momdate
*
* @param \DateTime $momdate
* @return void
*/
public function setMomdate(\DateTime $momdate) {
$this->momdate = $momdate;
}
/**
* Returns the text
*
* @return string $text
*/
public function getText() {
return $this->text;
}
/**
* Sets the text
*
* @param string $text
* @return void
*/
public function setText($text) {
$this->text = $text;
}
/**
* Returns the momauthor
*
* @return string $momauthor
*/
public function getMomauthor() {
return $this->momauthor;
}
/**
* Sets the momauthor
*
* @param string $momauthor
* @return void
*/
public function setMomauthor($momauthor) {
$this->momauthor = $momauthor;
}
/**
* Adds a T3teams
*
* @param \T3o\T3oJobs\Domain\Model\T3teams $t3team
* @return void
*/
public function addT3team(\T3o\T3oJobs\Domain\Model\T3teams $t3team) {
$this->t3teams->attach($t3team);
}
/**
* Removes a T3teams
*
* @param \T3o\T3oJobs\Domain\Model\T3teams $t3teamToRemove The T3teams to be removed
* @return void
*/
public function removeT3team(\T3o\T3oJobs\Domain\Model\T3teams $t3teamToRemove) {
$this->t3teams->detach($t3teamToRemove);
}
/**
* Returns the t3teams
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\T3o\T3oJobs\Domain\Model\T3teams> $t3teams
*/
public function getT3teams() {
return $this->t3teams;
}
/**
* Sets the t3teams
*
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\T3o\T3oJobs\Domain\Model\T3teams> $t3teams
* @return void
*/
public function setT3teams(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $t3teams) {
$this->t3teams = $t3teams;
}
}
<?php
namespace T3o\T3oMom\Domain\Repository;
/***
*
* This file is part of the "MOM" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* (c) 2019
*
***/
/**
* The repository for T3Moms
*/
class T3MomRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
public function filterByTeam($team = null) {
$main = [];
$query = $this->createQuery();
if ($team == 0) {
} else {
$main[] = $query->contains('t3teams', $team);
$query->matching(
$query->logicalAnd(
$main
)
);
}
$result = $query->execute();
//debug::var_dump($result);die;
return $result;
}
}
<?php
defined('TYPO3_MODE') || die('Access denied.');
$extKey = 't3o_mom';
// Adding fields to the tt_content table definition in TCA
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($extKey, 'Configuration/TypoScript', 'Typo3 meetingMinutes');
\ No newline at end of file
<?php
defined('TYPO3_MODE') or die();
$_EXTKEY = 't3o_mom';
/***************
* Plugin
*/
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'T3o.T3oMom',
'T3mom',
'Meeting'
);
/* Flexform setting */
$pluginSignature = 't3omom_t3mom';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature] = 'recursive,select_key,pages';
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3omom_domain_model_t3mom',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title,momdate,text,momauthor, t3teams',
'iconfile' => 'EXT:t3o_mom/Resources/Public/Icons/tx_t3omom_domain_model_t3mom.gif'
],
'interface' => [
'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title,t3teams, momdate, text, momauthor',
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, t3teams,momdate, text, momauthor, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
],
'columns' => [
'sys_language_uid' => [
'exclude' => true,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'special' => 'languages',
'items' => [
[
'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
-1,
'flags-multiple'
]
],
'default' => 0,
],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
'exclude' => true,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.l18n_parent',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'default' => 0,
'items' => [
['', 0],
],
'foreign_table' => 'tx_t3omom_domain_model_t3mom',
'foreign_table_where' => 'AND tx_t3omom_domain_model_t3mom.pid=###CURRENT_PID### AND tx_t3omom_domain_model_t3mom.sys_language_uid IN (-1,0)',
],
],
'l10n_diffsource' => [
'config' => [
'type' => 'passthrough',
],
],
't3ver_label' => [
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.versionLabel',
'config' => [
'type' => 'input',
'size' => 30,
'max' => 255,
],
],
'hidden' => [
'exclude' => true,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden',
'config' => [
'type' => 'check',
'items' => [
'1' => [
'0' => 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.enabled'
]
],
],
],
'starttime' => [
'exclude' => true,
'behaviour' => [
'allowLanguageSynchronization' => true
],
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime',
'config' => [
'type' => 'input',
'renderType' => 'inputDateTime',
'size' => 13,
'eval' => 'datetime',
'default' => 0,
],
],
'endtime' => [
'exclude' => true,
'behaviour' => [
'allowLanguageSynchronization' => true
],
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime',
'config' => [
'type' => 'input',
'renderType' => 'inputDateTime',
'size' => 13,
'eval' => 'datetime',
'default' => 0,
'range' => [
'upper' => mktime(0, 0, 0, 1, 1, 2038)
],
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3omom_domain_model_t3mom.title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim,required'
],
],
't3teams' => [
'exclude' => true,
'label' => 'LLL:EXT:t3o_jobs/Resources/Private/Language/locallang_db.xlf:tx_t3ojobs_domain_model_t3jobs.t3teams',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_t3ojobs_domain_model_t3teams',
'MM' => 'tx_t3omom_t3mom_t3teams_mm',
'size' => 3,
'autoSizeMax' => 30,
'minitems' => 1,
'maxitems' => 1,
'multiple' => 0,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'momdate' => [
'exclude' => true,
'label' => 'LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3omom_domain_model_t3mom.momdate',
'config' => [
'dbType' => 'date',
'type' => 'input',
'renderType' => 'inputDateTime',
'size' => 7,
'eval' => 'date, required',
'default' => null,
],
],
'text' => [
'exclude' => true,
'label' => 'LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3omom_domain_model_t3mom.text',
'config' => [
'type' => 'text',
'enableRichtext' => true,
'richtextConfiguration' => 'default',
'fieldControl' => [
'fullScreenRichtext' => [
'disabled' => false,
],
],
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
],
],
'momauthor' => [
'exclude' => true,
'label' => 'LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3omom_domain_model_t3mom.momauthor',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim'
],
],
],
];
mod.wizards.newContentElement.wizardItems.plugins {
elements{
t3mom{
icon = ../typo3conf/ext/t3o_mom/Resources/Public/Icons/t3o_mom-plugin-t3mom.svg
iconIdentifier = t3o_mom-plugin-t3mom
title = LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3o_mom_t3mom.name
description = LLL:EXT:t3o_mom/Resources/Private/Language/locallang_db.xlf:tx_t3o_mom_t3mom.description
tt_content_defValues {
CType = list
list_type = t3omom_t3mom
}
}
}
}
\ No newline at end of file
plugin.tx_t3omom_t3mom {
view {
# cat=plugin.tx_t3omom_t3mom/file; type=string; label=Path to template root (FE)
templateRootPath = EXT:t3o_mom/Resources/Private/Templates/
# cat=plugin.tx_t3omom_t3mom/file; type=string; label=Path to template partials (FE)
partialRootPath = EXT:t3o_mom/Resources/Private/Partials/
# cat=plugin.tx_t3omom_t3mom/file; type=string; label=Path to template layouts (FE)
layoutRootPath = EXT:t3o_mom/Resources/Private/Layouts/
}
persistence {
# cat=plugin.tx_t3omom_t3mom//a; type=string; label=Default storage PID
storagePid =
}
}
plugin.tx_t3omom_t3mom {
view {
templateRootPaths.0 = EXT:t3o_mom/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_t3omom_t3mom.view.templateRootPath}
partialRootPaths.0 = EXT:t3o_mom/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_t3omom_t3mom.view.partialRootPath}
layoutRootPaths.0 = EXT:t3o_mom/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_t3omom_t3mom.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_t3omom_t3mom.persistence.storagePid}
#recursive = 1
}
features {
#skipDefaultArguments = 1
# if set to 1, the enable fields are ignored in BE context
ignoreAllEnableFieldsInBe = 0
# Should be on by default, but can be disabled if all action in the plugin are uncached
requireCHashArgumentForActionArguments = 1
}
mvc {
#callDefaultActionIfActionCantBeResolved = 1
}
}
page.includeJS{
mom = typo3conf/ext/t3o_mom/Resources/Public/mom.js
}