diff --git a/.gitattributes b/.gitattributes
index 67d8112..787d112 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -8,3 +8,8 @@
/Tests/ export-ignore
/codeception.yml export-ignore
/phpcs.xml export-ignore
+/Resources/Private/.eslintignore export-ignore
+/Resources/Private/.eslintrc.json export-ignore
+/Resources/Private/.prettierrc.js export-ignore
+/Resources/Private/package.json export-ignore
+/Resources/Private/stylelint.config.js export-ignore
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 095d6cb..0275717 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -62,6 +62,26 @@ jobs:
- "php:codestyle"
php-version:
- 7.4
+ code-quality-frontend:
+ name: "Code quality frontend checks"
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ command:
+ - "style"
+ - "js"
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v2
+ -
+ name: "Install modules"
+ working-directory: ./Resources/Private
+ run: yarn
+ -
+ name: "Run command"
+ working-directory: ./Resources/Private
+ run: "yarn lint:${{ matrix.command }}"
xliff-lint:
name: "Xliff linter"
runs-on: ubuntu-latest
diff --git a/.gitignore b/.gitignore
index 3366010..faf4896 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,7 @@
/composer.lock
/nbproject
/var
+/Resources/Private/node_modules/
+/Resources/Private/yarn.lock
+/Resources/Private/yarn-error.log
+/Resources/Private/package-lock.json
diff --git a/Configuration/TCA/Overrides/sys_template.php b/Configuration/TCA/Overrides/sys_template.php
index d45a3e1..1bb8d7b 100644
--- a/Configuration/TCA/Overrides/sys_template.php
+++ b/Configuration/TCA/Overrides/sys_template.php
@@ -3,3 +3,4 @@
defined('TYPO3_MODE') || die('Access denied.');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('tea', 'Configuration/TypoScript', 'Tea');
+\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('tea', 'Configuration/TypoScript/Frontend/', 'Tea frontend (optional)');
diff --git a/Configuration/TypoScript/Frontend/setup.typoscript b/Configuration/TypoScript/Frontend/setup.typoscript
new file mode 100644
index 0000000..3ffbbef
--- /dev/null
+++ b/Configuration/TypoScript/Frontend/setup.typoscript
@@ -0,0 +1,8 @@
+page {
+ includeCSS {
+ tea = EXT:tea/Resources/Public/Css/Main.css
+ }
+ includeJSFooter {
+ tea = EXT:tea/Resources/Public/JavaScript/Main.js
+ }
+}
diff --git a/Resources/Private/.eslintignore b/Resources/Private/.eslintignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/Resources/Private/.eslintignore
@@ -0,0 +1 @@
+node_modules
diff --git a/Resources/Private/.eslintrc.json b/Resources/Private/.eslintrc.json
new file mode 100644
index 0000000..c81af52
--- /dev/null
+++ b/Resources/Private/.eslintrc.json
@@ -0,0 +1,10 @@
+{
+ "root": true,
+ "extends": [
+ "eslint:recommended",
+ "plugin:prettier/recommended"
+ ],
+ "env": {
+ "browser": true
+ }
+}
diff --git a/Resources/Private/.prettierrc.js b/Resources/Private/.prettierrc.js
new file mode 100644
index 0000000..20bf3f3
--- /dev/null
+++ b/Resources/Private/.prettierrc.js
@@ -0,0 +1,7 @@
+module.exports = {
+ semi: true,
+ trailingComma: "all",
+ singleQuote: true,
+ printWidth: 120,
+ tabWidth: 4
+};
diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf
index 0931930..370de29 100644
--- a/Resources/Private/Language/de.locallang.xlf
+++ b/Resources/Private/Language/de.locallang.xlf
@@ -23,6 +23,14 @@
Unsere Auswahl an erlesenen Tees
+
+
+ UID
+
+
+
+ Titel
+