Commit Graph

55 Commits

Author SHA1 Message Date
Stefan Hardegger
1d14d3d7aa Fix for Random Story Function 2025-08-14 13:14:46 +02:00
Stefan Hardegger
4357351ec8 randomized 2025-08-13 14:49:57 +02:00
Stefan Hardegger
4ab03953ae random story selector 2025-08-13 14:48:40 +02:00
Stefan Hardegger
142d8328c2 revert security config 2025-08-12 15:14:14 +02:00
Stefan Hardegger
c46108c317 various improvements and performance enhancements 2025-08-12 14:55:51 +02:00
Stefan Hardegger
75c207970d Changing Authors 2025-08-12 12:57:34 +02:00
Stefan Hardegger
3b22d155db restructuring 2025-08-11 14:40:56 +02:00
Stefan Hardegger
51e3d20c24 various fixes 2025-08-11 08:15:20 +02:00
Stefan Hardegger
5d195b63ef Fix dead links 2025-08-08 15:05:10 +02:00
Stefan Hardegger
5b3a9d183e Image Handling in Epub Import/export 2025-08-08 14:50:49 +02:00
Stefan Hardegger
379c8c170f Various improvements & Epub support 2025-08-08 14:09:14 +02:00
Stefan Hardegger
090b858a54 Bugfix 2025-07-31 13:43:23 +02:00
Stefan Hardegger
b0c14d4b37 DB Backup Bugfix 2025-07-31 08:36:33 +02:00
Stefan Hardegger
7227061d25 DB Backup Bugfix 2025-07-31 08:25:47 +02:00
Stefan Hardegger
415eab07de DB Backup Bugfix 2025-07-31 07:54:43 +02:00
Stefan Hardegger
e89331e059 DB Backup Bugfix 2025-07-31 07:46:14 +02:00
Stefan Hardegger
370bef2f07 DB Backup Bug 2025-07-31 07:38:05 +02:00
Stefan Hardegger
9e788c2018 bugfix DB Backup 2025-07-31 07:30:23 +02:00
Stefan Hardegger
590e2590d6 DB Backup and Restore 2025-07-31 07:12:12 +02:00
Stefan Hardegger
57859d7a84 Reading Progress 2025-07-29 14:53:44 +02:00
Stefan Hardegger
5746001c4a Bugfixes 2025-07-29 11:02:46 +02:00
Stefan Hardegger
c08082c0d6 Correct tag facets handling 2025-07-28 14:37:58 +02:00
Stefan Hardegger
860bf02d56 Dockerfile improvement 2025-07-28 14:28:01 +02:00
Stefan Hardegger
a501b27169 Saving reading position 2025-07-28 14:09:19 +02:00
Stefan Hardegger
fcad028959 scraping and improvements 2025-07-28 13:52:09 +02:00
Stefan Hardegger
f95d7aa8bb Various Fixes and QoL enhancements. 2025-07-26 12:05:54 +02:00
5e8164c6a4 Merge pull request 'feature/collections' (#1) from feature/collections into main
Reviewed-on: #1
2025-07-25 14:22:57 +02:00
5e6236548d Merge branch 'main' into feature/collections 2025-07-25 14:22:42 +02:00
Stefan Hardegger
f068a6eb6f Adjust sanitation setting 2025-07-25 14:21:25 +02:00
Stefan Hardegger
312093ae2e Story Collections Feature 2025-07-25 14:15:23 +02:00
Stefan Hardegger
9dd8855914 Specification 2025-07-25 08:00:22 +02:00
Stefan Hardegger
6f478ab97a Fix Tag Filtering 2025-07-25 07:49:07 +02:00
Stefan Hardegger
12a8f2ee27 Bugfixes 2025-07-24 16:25:23 +02:00
Stefan Hardegger
a38812877a Fix order on pasting story 2025-07-24 14:51:20 +02:00
Stefan Hardegger
d48e217cbb Enhance Richtext editor 2025-07-24 13:35:47 +02:00
Stefan Hardegger
aae6091ef4 Enhance Richtext editor 2025-07-24 13:15:31 +02:00
Stefan Hardegger
131e2e8c25 Bugfixes 2025-07-24 13:07:36 +02:00
Stefan Hardegger
90428894b4 Improve Richtext Editor 2025-07-24 12:34:27 +02:00
Stefan Hardegger
a3f2801696 Fix author URL saving issue in multipart form submission
Changed frontend to send multiple URL parameters with same name ('urls')
instead of indexed parameters ('urls[0]', 'urls[1]'). Spring Boot expects
list parameters in multipart forms to use the same parameter name, not
array-style indexed naming.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 09:45:57 +02:00
Stefan Hardegger
8580d660e9 Update of documentation 2025-07-24 08:51:45 +02:00
Stefan Hardegger
77ad643eac configurable url 2025-07-24 08:03:56 +02:00
Stefan Hardegger
4bbc14d165 html sanitation adjustment 2025-07-23 16:52:19 +02:00
Stefan Hardegger
d489078721 Improve RichTextEditor to preserve formatting on paste
**Enhanced Visual Mode:**
- Add paste event handler that preserves HTML formatting when pasting
- Integrate with shared sanitization configuration for consistent filtering
- Preload sanitization config for optimal performance
- Support for bold, italic, and other basic formatting in visual mode

**Updated Sanitization Config:**
- Add more useful HTML tags: kbd, samp, var, details, summary, colgroup, col
- Add attributes for better table support: start, type for ol
- Add style attributes for more elements: table, ul, ol, li, blockquote, pre, code
- Maintain security while allowing richer content formatting

**User Experience:**
- Users can now paste formatted content (bold, italic, lists, etc.) in visual mode
- Content is automatically sanitized using backend configuration
- Updated help text to reflect new capabilities
- Maintains backward compatibility with plain text input

**Technical Improvements:**
- Async clipboard API support with fallbacks
- Error handling for paste operations
- Consistent sanitization between manual input and paste operations

Resolves issue where pasted formatted content was stripped to plain text in visual mode.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 16:51:50 +02:00
Stefan Hardegger
030aac7846 j 2025-07-23 16:21:39 +02:00
Stefan Hardegger
5a48ebcfeb Implement shared HTML sanitization configuration
**Backend Changes:**
- Add html-sanitization-config.json with allowedTags, allowedAttributes, and allowedCssProperties
- Create HtmlSanitizationConfigDto for configuration data transfer
- Update HtmlSanitizationService to load configuration from JSON file with fallback
- Add HtmlSanitizationController with public API endpoint at /api/config/html-sanitization
- Update SecurityConfig to allow public access to /api/config/** endpoints

**Frontend Changes:**
- Add configApi.getHtmlSanitizationConfig() to fetch backend configuration
- Create sanitization.ts utility with sanitizeHtml() and sanitizeHtmlSync() functions
- Update story reading page to use shared sanitization configuration
- Add preloadSanitizationConfig() for early configuration loading
- Handle TrustedHTML type conversion and DOMPurify config compatibility

**Benefits:**
- Consistent HTML sanitization rules between frontend and backend
- Centralized configuration in JSON file for easy maintenance
- Automatic fallback to safe defaults if configuration loading fails
- API-driven approach allows runtime configuration updates
- Maintains security while providing flexibility for content formatting

Resolves HTML sanitization inconsistencies and provides foundation for configurable content safety rules.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 16:18:03 +02:00
Stefan Hardegger
f2001e0d0c Add CORS support for production domain
- Add STORYCOVE_CORS_ALLOWED_ORIGINS environment variable to docker-compose.yml
- Include production domain https://storycove.sharyavin.synology.me in allowed origins
- Update SecurityConfig to read from environment variable with fallback
- Maintains localhost support for development while enabling production access
- Fixes "Invalid CORS request" error on deployed application

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:58:59 +02:00
Stefan Hardegger
23f31defde Escape nginx variables in docker-compose.yml for Portainer
- Double all $ characters in nginx config ($$host, $$http_upgrade, etc.)
- Prevents Docker Compose from interpreting nginx vars as environment variables
- Fixes "invalid number of arguments in proxy_set_header directive" error
- Ensures proper nginx variable passing in embedded config

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:44:55 +02:00
Stefan Hardegger
9f3bee826b Fix nginx configuration for Portainer deployment
- Remove quotes from Connection header value to fix nginx parsing error
- Simplify Cache-Control header to avoid argument parsing issues
- Clean up embedded nginx config formatting for better compatibility
- Resolves "invalid number of arguments in proxy_set_header directive" error

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:38:50 +02:00
Stefan Hardegger
c0a2c68d94 trying to fix the nginx config in docker 2025-07-23 14:24:22 +02:00
Stefan Hardegger
f86fbc39d8 isolate network in docker 2025-07-23 14:15:09 +02:00