16 Commits

Author SHA1 Message Date
Torsten Schulz (local)
ee2b12f6d0 feat(diary): enhance predefined activities management and socket event handling
- Added new API endpoints for managing predefined activities, including retrieval, creation, updating, merging, and deduplication.
- Updated socket event handling to improve the mapping of socket events to domain events, ensuring better integration with the diary service.
- Enhanced repository mappers to support detailed mapping of predefined activities and training statistics, including images and member participation data.
- Introduced new UI strings for managing predefined activities, improving user experience in the diary section.
2026-03-06 10:02:50 +01:00
Torsten Schulz (local)
436973e47e Diary: verbessere Socket-getriggerte Reloads für Gruppen/Unfälle 2026-03-05 23:54:22 +01:00
Torsten Schulz (local)
05ab872f77 Diary: ergänze Mapper-Tests für Assignments und Predefined Activities 2026-03-05 23:54:00 +01:00
Torsten Schulz (local)
e4e7f521e2 Diary: erweitere Plan/Assignments, QuickAdd, Accident und Stats 2026-03-05 23:50:10 +01:00
Torsten Schulz (local)
dd93755e6b refactor(myTischtennis): streamline session management and enhance login flow
- Updated AutoFetchMatchResultsService to utilize verifyLogin for session re-establishment, improving reliability and handling of CAPTCHA challenges.
- Refactored MyTischtennisService to save Playwright storage state separately, ensuring robustness in session persistence and preventing failures due to missing DB columns.
- Minor adjustments in TeamManagementView to enhance async data fetching logic.
2026-03-05 10:02:43 +01:00
Torsten Schulz (local)
27665a45df feat(myTischtennis): implement session restoration for browser automation login
- Enhanced the loginWithBrowserAutomation method to accept an options parameter for restoring a saved Playwright session, allowing users to bypass CAPTCHA if the session is still valid.
- Added a new playwrightStorageState field in the MyTischtennis model to store the encrypted browser storage state, facilitating session persistence.
- Updated myTischtennisService to utilize the saved storage state during login attempts, improving user experience by reducing unnecessary CAPTCHA challenges.
2026-03-04 14:26:27 +01:00
Torsten Schulz (local)
637bacf70f fix(myTischtennis): improve consent dialog handling during login flow
- Refactored consent dialog handling to first visit the homepage, ensuring correct cookie storage for CMP consent.
- Enhanced the acceptConsentDialog function to handle multiple selectors and added logging for better visibility.
- Implemented a second consent attempt on the login page to address potential reappearance of the consent banner.
2026-03-04 08:39:14 +01:00
Torsten Schulz (local)
d5fe531664 fix(myTischtennis): enhance consent dialog handling during login process
- Refactored consent dialog handling to improve reliability by implementing a dedicated function that attempts to dismiss the dialog with multiple selectors.
- Added a delay mechanism to account for asynchronous rendering of the consent dialog, ensuring it is accepted promptly.
- Improved logging to provide clearer feedback on which selector was used to accept the consent dialog.
2026-03-04 08:29:18 +01:00
Torsten Schulz (local)
3df8f6fd81 feat(myTischtennis): implement asynchronous team data fetching and job status tracking
- Added a new endpoint to start an asynchronous job for fetching team data, allowing for non-blocking operations.
- Implemented job status tracking to retrieve the status of ongoing fetch jobs, enhancing user experience with real-time updates.
- Updated the frontend to initiate async fetch requests and poll for job completion, improving data retrieval efficiency and user feedback.
2026-03-02 13:32:57 +01:00
Torsten Schulz (local)
e26bc22e19 fix(myTischtennis): ensure login intent handling and improve form submission logic
- Added logic to ensure the presence of a login intent field in the login form, enhancing the reliability of the login process.
- Updated the form submission mechanism to prioritize the explicit login submit button, falling back to a generic submit button if necessary.
- Improved overall interaction flow during the login process, ensuring a smoother user experience.
2026-03-02 11:55:15 +01:00
Torsten Schulz (local)
985c9074bd fix(myTischtennis): add detailed diagnostics for login failures
- Introduced failure diagnostics logging during the login process to capture URL, cookie names, and body preview on errors.
- Enhanced error handling to provide clearer insights into login issues, particularly related to CAPTCHA and password failures.
- Improved console warnings for better visibility into authentication problems encountered during login attempts.
2026-03-02 11:46:19 +01:00
Torsten Schulz (local)
d33e9a94cf fix(myTischtennis): improve error detection during login process
- Introduced enhanced error detection for CAPTCHA and login failures by probing page text during cookie retrieval attempts.
- Reduced maximum polling attempts and adjusted polling interval for better performance and responsiveness.
- Updated error handling to provide clearer feedback on specific login issues encountered during the authentication process.
2026-03-02 11:40:49 +01:00
Torsten Schulz (local)
6ab6319256 fix(myTischtennis): refine CAPTCHA readiness checks and improve interaction flow
- Introduced a new mechanism to detect CAPTCHA readiness before form submission, enhancing login reliability.
- Adjusted timeout settings for CAPTCHA field checks to optimize performance during login attempts.
- Added diagnostic logging for better visibility into CAPTCHA state changes and interaction outcomes.
2026-03-02 11:17:26 +01:00
Torsten Schulz (local)
e1e8b5f4a4 fix(myTischtennis): enhance CAPTCHA handling and login reliability
- Improved CAPTCHA interaction by adding checks for readiness before form submission, ensuring smoother login processes.
- Increased the maximum attempts for cookie retrieval to enhance reliability in detecting authentication tokens.
- Updated error messages to provide clearer feedback on login failures related to CAPTCHA and password issues.
2026-03-02 10:40:50 +01:00
Torsten Schulz (local)
cf8cf17dc7 feat(myTischtennis): enhance CAPTCHA handling and refactor controller logic
- Added visual state tracking for CAPTCHA elements in MyTischtennisClient to improve interaction reliability.
- Increased timeout for CAPTCHA field population to ensure proper handling during login.
- Refactored MyTischtennisController to utilize myTischtennisProxyService for content rewriting and session management, streamlining the login process.
- Removed deprecated content rewriting logic, enhancing code maintainability and clarity.
2026-03-02 09:05:43 +01:00
Torsten Schulz (local)
12bba26ff1 fix(myTischtennis): improve error handling for Playwright login and account verification
- Enhanced error handling in MyTischtennisClient and MyTischtennisService to provide clearer feedback when browser executables are missing.
- Updated responses to include specific error messages and status codes, improving user guidance for setup requirements.
- Refactored MyTischtennisDialog and MyTischtennisAccount components to handle API response errors more effectively, ensuring robust login and account management processes.
2026-02-27 17:23:03 +01:00
2983 changed files with 43988 additions and 911 deletions

0
CODEx_MIGRATION_RULES.md Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1,2 @@
#Thu Mar 05 14:01:17 CET 2026
gradle.version=8.7

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1,92 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.serialization")
id("org.jetbrains.kotlin.plugin.compose")
}
android {
namespace = "de.trainingstagebuch.app"
compileSdk = 34
defaultConfig {
applicationId = "de.trainingstagebuch.app"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
tasks.register<Exec>("checkI18nHardcodedUiStrings") {
workingDir = rootProject.projectDir
commandLine("bash", "scripts/check_no_hardcoded_ui_strings.sh")
}
tasks.named("preBuild").configure {
dependsOn("checkI18nHardcodedUiStrings")
}
dependencies {
val composeBom = platform("androidx.compose:compose-bom:2024.10.01")
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
implementation("androidx.activity:activity-compose:1.9.3")
implementation(composeBom)
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
implementation("androidx.navigation:navigation-compose:2.8.3")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
implementation("androidx.datastore:datastore-preferences:1.1.1")
implementation("com.squareup.retrofit2:retrofit:2.11.0")
implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
testImplementation("junit:junit:4.13.2")
debugImplementation(composeBom)
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}

View File

@@ -0,0 +1,2 @@
#- File Locator -
listingFile=../../../../outputs/apk/debug/output-metadata.json

View File

@@ -0,0 +1,2 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.5.2

View File

@@ -0,0 +1,10 @@
{
"version": 3,
"artifactType": {
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "de.trainingstagebuch.app",
"variantName": "debug",
"elements": []
}

Some files were not shown because too many files have changed in this diff Show More