Compare commits

..

39 Commits

Author SHA1 Message Date
philipp lang 2310f4b22f Fix: Dont send yearly mail when yearly prevention is inactive
continuous-integration/drone/push Build is passing Details
2025-05-30 19:13:38 +02:00
philipp lang 176ea3e569 Lint
continuous-integration/drone/push Build is passing Details
2025-05-30 12:03:23 +02:00
philipp lang 55f68c2c05 Fix Member IndexTest
continuous-integration/drone/push Build is failing Details
2025-05-30 11:45:04 +02:00
philipp lang 80e9cb3881 Add filter for preventions to yearly mail
continuous-integration/drone/push Build is failing Details
2025-05-30 02:02:32 +02:00
philipp lang 57e0278bd2 Add preventAgainst to frontend 2025-05-30 01:46:46 +02:00
philipp lang e55603e9ee Fix: Dont send yearly prevention mail when user has no email address
continuous-integration/drone/push Build is failing Details
2025-05-30 01:15:00 +02:00
philipp lang 4d4705d92f Move PreventionTest to EndToEnd 2025-05-30 01:15:00 +02:00
philipp lang 2ad97bcfa9 Exit 0 when copying db 2025-05-30 00:44:04 +02:00
philipp lang 138335b10c Apply yearlyMemberFilter to Remember Action 2025-05-30 00:42:44 +02:00
philipp lang 6e8fddbe72 Add Member filter to prevention settings 2025-05-30 00:32:34 +02:00
philipp lang b62b44d575 Add form component to filter members 2025-05-30 00:09:34 +02:00
philipp lang 8ff2cf76a1 Load MemberFilter meta via backend 2025-05-29 23:59:08 +02:00
philipp lang 080e60bbd8 Move FilterSidebar to ui components 2025-05-29 23:17:10 +02:00
philipp lang 39d64df1de Extract FilterSidebar component 2025-05-29 23:16:06 +02:00
philipp lang cc93e6c006 Add sidebar for page filter 2025-05-29 23:13:26 +02:00
philipp lang 43be5c3a79 Change layout of memberFilter 2025-05-29 22:48:01 +02:00
philipp lang e09e7f4827 Add MemberFilter internal model 2025-05-29 22:31:17 +02:00
philipp lang 3423dcabb8 Move member filter to separate component 2025-05-29 22:17:50 +02:00
philipp lang 210a8bdb13 Update npm packages 2025-05-29 01:38:29 +02:00
philipp lang 94297723a5 Lint 2025-05-29 01:36:13 +02:00
philipp lang 1a4aeb73a1 Add variable width to sidebar 2025-05-29 01:35:07 +02:00
philipp lang 13f2ada2ee Add non-popup styling for tabs component
continuous-integration/drone/push Build is passing Details
2025-05-29 01:24:09 +02:00
philipp lang 1cbdcc893c Remove breakpoints from page filter 2025-05-29 01:15:39 +02:00
philipp lang 898ce2e0c0 Add new prevention settings to frontend
continuous-integration/drone/push Build is passing Details
2025-05-29 01:06:09 +02:00
philipp lang 7b5a1fc332 Lint
continuous-integration/drone/push Build is passing Details
2025-05-29 00:35:18 +02:00
philipp lang 1ee04edfc9 Cache Remember fresh interval
continuous-integration/drone/push Build is failing Details
2025-05-29 00:33:43 +02:00
philipp lang 9a270405c9 Add Cache for yearly remember 2025-05-29 00:22:38 +02:00
philipp lang 45f12492b3 Lint 2025-05-29 00:12:59 +02:00
philipp lang 388c33d102 Add Remember action to kernel 2025-05-28 23:49:07 +02:00
philipp lang b05d4529b4 Add expires year to mail
continuous-integration/drone/push Build is failing Details
2025-05-28 23:22:19 +02:00
philipp lang 3ae33a84bb Fix tests
continuous-integration/drone/push Build is passing Details
2025-05-28 22:34:13 +02:00
philipp lang 4d46de2763 Lint
continuous-integration/drone/push Build is failing Details
2025-05-28 21:58:54 +02:00
philipp lang edf836235b Add yearly mail 2025-05-28 21:57:31 +02:00
philipp lang 67e50709c0 Mod mailRecipient in template 2025-05-28 19:00:04 +02:00
philipp lang 4ba13a6c42 Make mailRecipient optional 2025-05-28 18:46:12 +02:00
philipp lang a8bdc2c4b2 Lint 2025-05-28 18:40:53 +02:00
philipp lang aa7cdb3fa3 Mod signature for Prevention remember forms command 2025-05-27 20:07:35 +02:00
philipp lang c6c01a3e24 Add setting for yearly prevention mail 2025-05-27 19:33:35 +02:00
philipp lang 7c656afce8 Lint PreventionTest
continuous-integration/drone/push Build is passing Details
2025-05-26 14:20:18 +02:00
7 changed files with 427 additions and 737 deletions

28
.eslintrc.json Normal file
View File

@ -0,0 +1,28 @@
{
"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,14 +210,6 @@ class MemberResource extends JsonResource
'multiply_pv' => false, 'multiply_pv' => false,
'multiply_more_pv' => false, 'multiply_more_pv' => false,
'keepdata' => false, 'keepdata' => false,
'bank_account' => [
'iban' => '',
'bic' => '',
'blz' => '',
'bank_name' => '',
'person' => '',
'account_number' => '',
]
] ]
]; ];
} }

View File

@ -1,43 +0,0 @@
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': ['/^\\$/']
}]
},
},
);

1014
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,59 +0,0 @@
{
"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"]
}
}