Compare commits

..

41 Commits

Author SHA1 Message Date
philipp lang 9d41cdb010 Fix: Dont send yearly mail when yearly prevention is inactive
continuous-integration/drone/push Build is passing Details
2025-06-11 18:17:02 +02:00
philipp lang e429d7de76 Lint 2025-06-11 18:17:02 +02:00
philipp lang 52a6491488 Fix Member IndexTest 2025-06-11 18:17:02 +02:00
philipp lang 9628ba34d2 Add filter for preventions to yearly mail 2025-06-11 18:17:02 +02:00
philipp lang 5361c3930f Add preventAgainst to frontend 2025-06-11 18:17:02 +02:00
philipp lang e97d39abd7 Fix: Dont send yearly prevention mail when user has no email address 2025-06-11 18:17:02 +02:00
philipp lang 419b4227eb Move PreventionTest to EndToEnd 2025-06-11 18:17:02 +02:00
philipp lang 63b57f3da7 Exit 0 when copying db 2025-06-11 18:17:02 +02:00
philipp lang 0ea3f4adce Apply yearlyMemberFilter to Remember Action 2025-06-11 18:17:02 +02:00
philipp lang 363c4360b8 Add Member filter to prevention settings 2025-06-11 18:17:02 +02:00
philipp lang 3182dc7edd Add form component to filter members 2025-06-11 18:17:02 +02:00
philipp lang 7346c2da47 Load MemberFilter meta via backend 2025-06-11 18:17:02 +02:00
philipp lang 95a466ff22 Move FilterSidebar to ui components 2025-06-11 18:17:02 +02:00
philipp lang e047b9a4f2 Extract FilterSidebar component 2025-06-11 18:17:02 +02:00
philipp lang 0311787eec Add sidebar for page filter 2025-06-11 18:17:02 +02:00
philipp lang fba42fa1d8 Change layout of memberFilter 2025-06-11 18:17:02 +02:00
philipp lang fe50cf129f Add MemberFilter internal model 2025-06-11 18:17:02 +02:00
philipp lang 27f805700e Move member filter to separate component 2025-06-11 18:17:02 +02:00
philipp lang f33a23ecc3 Update npm packages 2025-06-11 18:17:00 +02:00
philipp lang 103e13966f Lint 2025-06-11 18:14:47 +02:00
philipp lang b2117cdecf Add variable width to sidebar 2025-06-11 18:14:47 +02:00
philipp lang 177b661d50 Add non-popup styling for tabs component 2025-06-11 18:14:47 +02:00
philipp lang 1c0a2361d6 Remove breakpoints from page filter 2025-06-11 18:14:47 +02:00
philipp lang 4ed6375202 Add new prevention settings to frontend 2025-06-11 18:14:47 +02:00
philipp lang f9c4e32ba2 Lint 2025-06-11 18:14:47 +02:00
philipp lang 1780e3bce8 Cache Remember fresh interval 2025-06-11 18:14:47 +02:00
philipp lang bf4cfdf7fd Add Cache for yearly remember 2025-06-11 18:14:47 +02:00
philipp lang 057002b8e8 Lint 2025-06-11 18:14:47 +02:00
philipp lang 99731fd08f Add Remember action to kernel 2025-06-11 18:14:47 +02:00
philipp lang 919041d2cf Add expires year to mail 2025-06-11 18:14:47 +02:00
philipp lang 47b5abc0f1 Fix tests 2025-06-11 18:14:47 +02:00
philipp lang ea79290435 Lint 2025-06-11 18:14:47 +02:00
philipp lang 4f21dfceee Add yearly mail 2025-06-11 18:14:47 +02:00
philipp lang 196b81a82d Mod mailRecipient in template 2025-06-11 18:14:47 +02:00
philipp lang 83d721c1ca Make mailRecipient optional 2025-06-11 18:14:47 +02:00
philipp lang 027a159a1c Lint 2025-06-11 18:14:47 +02:00
philipp lang da8dd12dad Mod signature for Prevention remember forms command 2025-06-11 18:14:47 +02:00
philipp lang a482e16739 Add setting for yearly prevention mail 2025-06-11 18:14:47 +02:00
philipp lang 010ad80793 Lint PreventionTest 2025-06-11 18:14:47 +02:00
philipp lang 741a4a24b7 Update eslint
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is failing Details
2025-06-11 17:43:20 +02:00
philipp lang 4ecf2f4483 Add default bank account to member
continuous-integration/drone/push Build is passing Details
2025-06-08 15:28:41 +02:00
7 changed files with 733 additions and 423 deletions

View File

@ -1,28 +0,0 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:vue/vue3-recommended",
"prettier"
],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": [
"vue"
],
"overrides": [
{
"files": [
"*.vue"
],
"rules": {
"vue/multi-word-component-names": "off"
}
}
]
}

View File

@ -210,6 +210,14 @@ class MemberResource extends JsonResource
'multiply_pv' => false,
'multiply_more_pv' => false,
'keepdata' => false,
'bank_account' => [
'iban' => '',
'bic' => '',
'blz' => '',
'bank_name' => '',
'person' => '',
'account_number' => '',
]
]
];
}

43
eslint.config.mjs Normal file
View File

@ -0,0 +1,43 @@
import eslint from '@eslint/js';
import eslintPluginVue from 'eslint-plugin-vue';
import typescriptEslint from 'typescript-eslint';
import globals from 'globals';
export default typescriptEslint.config(
{ ignores: ['*.d.ts', '**/coverage', '**/dist'] },
{
extends: [
eslint.configs.recommended,
...typescriptEslint.configs.recommended,
...eslintPluginVue.configs['flat/recommended'],
],
files: ['**/*.{ts,vue}'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: globals.browser,
parserOptions: {
parser: typescriptEslint.parser,
},
},
rules: {
'indent': ['error', 4],
'vue/html-indent': ['error', 4],
'linebreak-style': ['error', 'unix'],
'quotes': ['error', 'single'],
'semi': ['error', 'always'],
'vue/no-reserved-component-names': 'off',
'vue/multi-word-component-names': 'off',
'vue/max-attributes-per-line': 'off',
'vue/singleline-html-element-content-newline': 'off',
"vue/first-attribute-linebreak": ["error", {
"singleline": "beside",
"multiline": "beside"
}],
'vue/no-undef-properties': ['error', {
'ignores': ['/^\\$/']
}]
},
},
);

1006
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -16,9 +16,6 @@
"autoprefixer": "^10.4.17",
"axios": "^1.6.6",
"dayjs": "^1.11.10",
"eslint": "^8.56.0",
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-vue": "^8.7.1",
"postcss": "^8.4.33",
"tailwindcss": "^3.4.1",
"vue-axios": "^3.5.2"
@ -34,6 +31,8 @@
"@vitejs/plugin-vue": "^4.6.2",
"change-case": "^4.1.2",
"editorjs-alert": "^1.1.3",
"eslint": "^9.28.0",
"eslint-plugin-vue": "^10.2.0",
"floating-vue": "^2.0.0",
"laravel-echo": "^1.15.3",
"laravel-vite-plugin": "^0.7.8",
@ -41,9 +40,9 @@
"merge": "^2.1.1",
"pinia": "^2.1.7",
"postcss-import": "^14.1.0",
"prettier": "^2.8.8",
"pusher-js": "^8.3.0",
"svg-sprite": "^2.0.2",
"typescript-eslint": "^8.34.0",
"vite": "^4.5.2",
"vue": "^3.3.4",
"vue-toastification": "^2.0.0-rc.5",

View File

@ -41,6 +41,11 @@ class MemberIndexTest extends EndToEndTestCase
$this->callFilter('member.index', [])->assertInertiaPath('data.meta.default.country_id', Country::firstWhere('name', 'Deutschland')->id);
}
public function testItGetsDefaultBankAccount(): void
{
$this->callFilter('member.index', [])->assertInertiaPath('data.meta.default.bank_account.bic', '');
}
public function testItHandlesAddress(): void
{
Member::factory()->defaults()->create(['address' => '']);

59
tsconfig.json Normal file
View File

@ -0,0 +1,59 @@
{
"compilerOptions": {
// Most non-library projects don't need to emit declarations.
// So we add this option by default to make the config more friendly to most users.
"noEmit": true,
// As long as you are using a build tool, we recommend you to author and ship in ES modules.
// Even if you are targeting Node.js, because
// - `CommonJS` is too outdated
// - the ecosystem hasn't fully caught up with `Node16`/`NodeNext`
// This recommendation includes environments like Vitest, Vite Config File, Vite SSR, etc.
"module": "ESNext",
// We expect users to use bundlers.
// So here we enable some resolution features that are only available in bundlers.
"moduleResolution": "bundler",
"resolveJsonModule": true,
"allowImportingTsExtensions": true,
// Even files without `import` or `export` are treated as modules.
// It helps to avoid mysterious errors such as `Cannot redeclare block-scoped variable 'name`.
// https://www.totaltypescript.com/cannot-redeclare-block-scoped-variable#solution-3-your-module-isnt-a-module
"moduleDetection": "force",
// Required in Vue projects
"jsx": "preserve",
"jsxImportSource": "vue",
// `"noImplicitThis": true` is part of `strict`
// Added again here in case some users decide to disable `strict`.
// This enables stricter inference for data properties on `this`.
"noImplicitThis": true,
"strict": true,
// <https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#verbatimmodulesyntax>
// Any imports or exports without a type modifier are left around. This is important for `<script setup>`.
// Anything that uses the type modifier is dropped entirely.
"verbatimModuleSyntax": true,
// A few notes:
// - Vue 3 supports ES2016+
// - For Vite, the actual compilation target is determined by the
// `build.target` option in the Vite config.
// So don't change the `target` field here. It has to be
// at least `ES2020` for dynamic `import()`s and `import.meta` to work correctly.
// - If you are not using Vite, feel free to overwrite the `target` field.
"target": "ESNext",
// For spec compliance.
// `true` by default if the `target` is `ES2020` or higher.
// Explicitly set it to `true` here in case some users want to overwrite the `target`.
"useDefineForClassFields": true,
// Recommended
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
// See <https://github.com/vuejs/vue-cli/pull/5688>
"skipLibCheck": true,
"types": ["vite/client"]
}
}