Commit Graph

36 Commits

Author SHA1 Message Date
b630296b8c Add message system (inbox, read view, dropdown) and truncate helper
Implemented message retrieval and read logic in storage layer

Added handlers for inbox and individual message view

Integrated messages into topbar dropdown with unread badge

Added truncate helper to template functions

Created new templates: messages/index.html and messages/read.html

Fixed missing template function error in topbar rendering
2025-04-02 11:56:11 +01:00
ab1d9abc72 Refactor: Recover middleware now uses RenderError + add full notifications view
- Replaced http.Error with helpers.RenderError in Recover middleware
- Custom 500.html now rendered with layout and topbar on panic
- RenderError gracefully checks template existence and falls back to plain response
- Added /account/notifications full view page (index)
- Linked "Back to notifications" from notification read view
- Fixed typo in template path for notifications/index.html
- Improved layout consistency across error and account pages
2025-04-02 09:54:20 +01:00
2498b33a9c Refactor: Centralize template loading and improve error handling
- Introduced helpers.LoadTemplateFiles() for consistent layout + topbar rendering
- Replaced repeated template.ParseFiles() calls across handlers
- Created generic RenderError(w, r, statusCode) helper
- Replaced old Render403 with flexible RenderError
- Updated AdminOnly middleware to render 403 errors with context
- Added 500.html template for graceful panic fallback
- Prepared structure for future error codes (404, 429, etc.)
2025-04-02 09:12:13 +01:00
e5bf12ad77 Feature: Full notification read view with conditional mark-as-read logic
- Added dedicated route and view for reading individual notifications (/account/notifications/read)
- Ensured notification is only marked as read if it hasn't already been
- Updated Notification model to use Subject and Body fields
- Fixed field references in templates (Title → Subject, Message → Body)
- Updated topbar dropdown to use correct field names and display logic
- Gracefully handle "notification not found" cases in template output
- Ensured consistent template parsing with layout and topbar inclusion
- Improved error logging for better diagnosis
2025-04-01 23:08:58 +01:00
06e647d00f Feature: Add account-protected route to mark notifications as read
- Created /account/notifications/read endpoint secured by session middleware
- Ensured users can only mark their own notifications as read
- Updated dropdown links to point to /account/notifications/read?id={id}
- Improved notification security by matching user_id in DB update
- Added redirect flow to full notifications page after marking read
- Logged DB errors to assist debugging
2025-04-01 22:12:41 +01:00
5ea780fcab Cleanup: Finalize template context integration and remove legacy code
- Replaced legacy TemplateContext calls with structured TemplateData usage
- Removed unused variables and redundant storage calls in notifications handler
- Ensured consistent use of BuildTemplateData across user-facing handlers
- Resolved all compile-time errors from refactor
- Ready for runtime testing and further layout integration
2025-04-01 21:20:05 +01:00
03b1e095ce Refactor: Centralize template context using unified TemplateData struct
- Introduced models.TemplateData for shared user/context state
- Moved context construction logic into handlers/template_context.go
- Simplified helpers.TemplateContext to accept structured data
- Restored and organized template helper functions
- Updated affected handlers (main.go, draw_handler.go, notifications.go)
- Improved scalability and separation of concerns in template rendering
2025-04-01 21:08:00 +01:00
6dbac8ab14 Already exists in helpers. 2025-04-01 16:02:59 +01:00
b79621cf9f Should not be in template.go should be template functions. 2025-04-01 16:01:33 +01:00
e68559ad3d thing this are broken but checking in so i have a state to revert too. 2025-04-01 15:52:31 +01:00
0e20cc023c more changes but unsure of state had to trash last set fof changes and try repair. 2025-04-01 15:50:15 +01:00
5aaddf16f1 More layout and customisations. 2025-04-01 10:19:56 +01:00
aaf90b55da Lots of UI and admin changes, need to clean up the three audit log tables and a few other niggles. 2025-04-01 00:05:48 +01:00
7eefb9ced0 Additional security and hardening. 2025-03-31 15:14:16 +01:00
c3a7480c65 expand on admin functionality, hardening still needs to be implemented. 2025-03-31 10:52:12 +01:00
b466c351da Fixzed display of prize tiers on tickets 2025-03-30 23:51:27 +01:00
f8dab97a54 Working through issue where prizes are incorrect and need updating. 2025-03-29 15:42:14 +00:00
322b4877ed New admin triggers for db maintenance, updating display of prize results and logic fix 2025-03-28 22:52:54 +00:00
cabc283673 madness continues 2025-03-28 13:04:53 +00:00
23e0208317 Lots of changes around viewing tickets from css perspective logic changes nwe handlers and service triggers... just lots of stuff... 2025-03-28 10:05:54 +00:00
e13b375af7 Lots of changes, still more to do 2025-03-27 15:03:43 +00:00
f3949717b8 Can't remember why i added this lol 2025-03-27 10:43:45 +00:00
f7b54db7c1 Get ticket functionality. 2025-03-26 15:33:40 +00:00
66abdbdd4d Add tickets to db. 2025-03-26 13:26:43 +00:00
f001cfe35e update ticket handler 2025-03-26 10:09:31 +00:00
eae4561e1f new ticket functions 2025-03-26 09:41:22 +00:00
e3f3d73fdd Finally get login working. 2025-03-26 08:36:11 +00:00
11f031ff54 AuThEnTiCaTiOn and clean up.... 2025-03-25 21:39:48 +00:00
b58a8bdb82 Circular dependancy issue when working on hardening 2025-03-25 16:43:16 +00:00
1ee4ceba0e ip based rate limiting and max cap avoiding negatives. 2025-03-25 14:57:17 +00:00
0b93fd75dd add and refine thunderball results page 2025-03-25 14:47:41 +00:00
f1ad9757ba added authentication among other things. considered working at this point. 2025-03-25 11:27:21 +00:00
3598cb5fd9 Update 2025-03-25 09:11:23 +00:00
d2013ec5c5 Lots of changes and fixes 2025-03-24 23:23:29 +00:00
2eb04d6ffa new ticket handler and move common variables 2025-03-24 22:01:25 +00:00
cf8cd691dc init 2025-03-24 19:17:39 +00:00