215 Commits

Author SHA1 Message Date
962201975b fix: Resolve CORS issue for photo uploads
- Forces frontend to use HTTP for backend requests to prevent mixed content errors.
- Tightens backend CORS policy to a whitelist of allowed origins.
2025-11-24 16:39:19 -05:00
5053cbcf44 refactor: Reorganize project structure and clean up repository
This commit reflects an intentional reorganization of the project.

- Deletes obsolete root-level files.
- Restructures the admin and gallery components.
- Tracks previously untracked application modules.
2025-11-24 15:15:35 -05:00
e4240d3f02 feat: Implement UI/UX and code efficiency improvements for gallery and admin pages
This commit includes the following changes:

Gallery Page (gallery.html):
- Moved inline CSS to gallery.css for better organization and caching.
- Implemented a skeleton loader to improve perceived loading performance.
- Added a 'No results' message when search/filter yields no photos.
- Enhanced responsive image handling in the modal to load full-resolution images.

Admin Page (admin/index.html):
- Moved inline CSS to admin.css for better organization and caching.
- Fixed an aesthetic issue with the hover style on the 'Clear selection' button.
- Introduced a confirmation modal for bulk delete operations to prevent accidental data loss.
- Implemented a progress bar for file uploads, providing better user feedback.
2025-11-24 15:14:00 -05:00
cdd8ccb0e5 feat: Add docker-compose for easier application management
This commit introduces a `docker-compose.yml` file to simplify the
process of building, running, and managing the application.

- Defines the `bpb-website` service with build context, port mapping,
  and environment variables.
- Mounts a volume for `update.json` to ensure data persistence across
  container restarts.
- Sets `restart: always` to ensure the service is automatically
  restarted if it goes down.
2025-11-13 12:14:34 -05:00
72e9de96e4 feat: Containerize application with Docker and improve admin error handling
This commit introduces Docker support for the application to ensure a consistent
and reproducible environment across different deployment targets.

- Added  for building a Docker image of the application.
- Added  to exclude unnecessary files from the Docker image.
- Improved error handling in  to provide more descriptive messages
  when the server returns an unexpected response, aiding in debugging.
- Included  changes, likely from local testing.
2025-11-13 11:31:58 -05:00
91885d5ff5 Fix: Use relative URL for API requests in admin UI
Changed the  request URL in  from an absolute path
() to a relative path
().

This ensures that the API request is always sent to the same domain
that the admin page is loaded from, resolving CORS and NetworkError
issues when accessing the UI from a production FQDN or a live server
with a different port. This change relies on a correctly configured
reverse proxy in the production environment.
2025-11-12 15:07:05 -05:00
b8c8a1a45f Fix: Admin UI communication and security issues resolved 2025-11-12 14:52:35 -05:00
74aa30636c Refactor: Harden for Production
This commit refactors the Node.js server to be production-ready.

- **Strict Production Environment:** The server now checks for . If it is set, the server will refuse to start unless a secure  is provided as an environment variable. This prevents running with the insecure default password in production.
- **Logging:** Added basic logging for successful status updates and failed login attempts.
- **NPM Scripts:** Added a  script to  for starting the server in production mode ().
2025-11-12 14:26:11 -05:00
07b83c7ae8 Feature: Create Admin UI with Node.js Backend
This commit introduces a web-based admin UI to manage the store's status, backed by a simple Node.js/Express server for file writing.

Key features:
- **Admin UI (, ):** A form to update the scrolling message and closed status. It provides a user-friendly experience with loading states, in-page feedback, and change detection.
- **Node.js Backend ():** A simple Express server that serves the static site and provides a  endpoint. This endpoint receives data from the admin UI, authenticates it, and writes it to .
- **Enhanced Security:** The password is no longer hardcoded in the client-side JavaScript. Authentication is handled server-side, and the password is read from a  file for local development or an environment variable in production.
- **Project Setup (, ):** The project is now a formal Node.js project with dependencies (, , ) and a  file to exclude .
2025-11-12 14:19:34 -05:00
721bf65ed3 Feature: Implement store open/closed status with override
This commit introduces functionality to display the store's open/closed status based on a schedule, with an override mechanism for holidays or emergencies.

Changes include:
- : Added IDs to hours paragraphs for easier manipulation.
- : Refactored  to be more robust and moved its logic to  to prevent race conditions. Removed  for status updates from . Fixed lightbox navigation.
- : Added  (boolean) and  (string) fields to allow overriding the default status.
- : Consolidated all status logic. It now acts as a gatekeeper:
  - If  in  is , it displays  and ensures hours are visible.
  - If  is , it runs the scheduled open/closed logic (originally from ) and updates the status every minute, ensuring hours are always visible.
- : Reverted accidental changes and ensured only necessary status-related styles were added.

This ensures:
- The store's current open/closed status is always displayed.
- An override message can be shown for special closures.
- Store hours are always visible.
2025-11-12 13:57:52 -05:00
0505f0a641 add url for eshop 2025-10-15 14:22:43 -04:00
5c936b2b53 Merge branch 'main' of https://gitea.chrisedwards.tech/chris/bpb-website 2025-10-14 16:23:07 -04:00
29b1e92ea9 update color url 2025-10-14 16:23:04 -04:00
a0a184236c add url generator 2025-10-04 18:52:18 -04:00
c02e7fb4b6 add plausible script injector 2025-09-19 10:08:28 -04:00
1da82489c6 Uncomment logo 2025-09-07 16:55:42 -04:00
ce6f48f5a4 Rearrange colors 2025-09-07 16:51:59 -04:00
ae529862e6 fix link share logic 2025-09-07 20:28:47 +00:00
5011812385 fix mobile layout, update icons, fix colors 2025-09-07 16:12:39 -04:00
33a665294c update stone color 2025-09-04 16:43:38 -04:00
be017ded2b fix nav active 2025-08-30 18:04:17 -04:00
9951904e6d fix galery color links 2025-08-30 18:00:20 -04:00
b4da98f40d add plausible link 2025-08-30 17:55:37 -04:00
5cbc7c1190 add color to menu 2025-08-30 17:48:58 -04:00
c2476135ff comment out metrics - until fix 2025-08-23 06:33:24 -04:00
f7dab87c76 fixed body padding css 2025-07-25 22:33:01 -04:00
d444bbb49a updated links for prod 2025-07-25 22:27:57 -04:00
8253b53b6f added main script and pastel magenta 2025-07-17 10:38:00 -04:00
eaf3bd55f0 added missing colors and fixed crop on a few 2025-07-16 16:46:03 -04:00
ad6effd470 move color order 2025-07-16 15:22:15 -04:00
507d085093 fixed chrome and added pearl colors 2025-07-16 15:11:01 -04:00
9aa20b0da0 main site css link 2025-07-15 14:09:24 -04:00
2a07aca10a fixed mobile button layout 2025-07-14 13:14:24 -04:00
3b52b90e5c fixed drop shadows, and shine 2025-07-14 12:43:56 -04:00
861d281db4 added sharing and local storage 2025-07-13 23:00:19 -04:00
278d152fc1 new balloon mask 2025-07-13 20:55:58 -04:00
2532f69e74 added all colors but pearl 2025-07-01 21:27:20 -04:00
17388229b4 fixed shine on chrome based browsers 2025-07-01 19:23:36 -04:00
e53040d55f shorter string 2025-06-30 21:04:45 -04:00
f2f6397deb balloon svg 2025-06-30 20:31:52 -04:00
0560db4318 new balloon shape 2025-06-30 20:30:57 -04:00
f21e29dd2a space grey 2025-06-30 18:58:51 -04:00
4c81c904b1 mask 2025-06-30 18:44:54 -04:00
6769af994f pics 2025-06-30 18:43:03 -04:00
f433386f6a pics 2025-06-30 18:42:56 -04:00
e6b2014783 pictures 2025-06-30 18:30:24 -04:00
0f8383f0a3 added and fixed chrome. updated animations and string 2025-06-30 18:06:18 -04:00
126f7b05f1 added chrome and balloon strings. updated colors 2025-06-29 23:57:17 -04:00
ac2e0b75b2 updated colors 2025-06-29 21:39:57 -04:00
637242021f added background and animation 2025-06-29 08:23:22 -04:00