From 784d0c9feeee646ab72924dcabd5795e1dabb6c4 Mon Sep 17 00:00:00 2001 From: Carmine Savino Date: Thu, 22 Jan 2026 23:27:16 +0100 Subject: [PATCH] aggiunto supporto per il ridimensionamento della finestra e configurazione Docker per il deployment --- .gitea/workflows/deploy.yaml | 18 ++++++++++++++++++ Dockerfile | 17 +++++++++++++++++ docker-compose.yml | 19 +++++++++++++++++++ src/assets/style.css | 2 +- src/js/menu_builder.js | 9 +++++++-- 5 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 .gitea/workflows/deploy.yaml create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..9ebe663 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,18 @@ +name: Deploy in Produzione +on: [push] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout del codice + uses: actions/checkout@v3 + + - name: Deploy con Docker Compose + run: | + # Spegne i container vecchi e riaccende i nuovi (ricreandoli se l'immagine è cambiata) + docker compose down --remove-orphans + docker compose up -d --build + + - name: Pulizia + run: docker system prune -f # Rimuove immagini vecchie per non riempire il disco \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7925098 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# FASE 1: Build (Node.js) +FROM node:lts-alpine as build-stage +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +# Verifica che il comando nel package.json sia "build" +RUN npm run build + +# FASE 2: Produzione (Nginx) +FROM nginx:stable-alpine as production-stage +# Copia la configurazione custom di Nginx (vedi file successivo) +COPY nginx.conf /etc/nginx/conf.d/default.conf +# Copia i file compilati dalla cartella dist (di solito è /dist) +COPY --from=build-stage /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9ef2e6d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3" + +services: + webapp: + image: nginx:alpine # O la tua immagine custom + container_name: infissionline_webapp + restart: always + labels: + - "traefik.enable=true" + # Qui definisci il dominio! + - "traefik.http.routers.infissionline.rule=Host(`infissionline-test.com`)" + - "traefik.http.routers.infissionline.entrypoints=websecure" + - "traefik.http.routers.infissionline.tls.certresolver=myresolver" + networks: + - web_proxy + +networks: + web_proxy: + external: true \ No newline at end of file diff --git a/src/assets/style.css b/src/assets/style.css index a0815ce..8073a6a 100644 --- a/src/assets/style.css +++ b/src/assets/style.css @@ -531,7 +531,7 @@ body { } } -@media (max-width: 666px) { +@media (max-width: 1108px) { .mobile-popup { display: block; diff --git a/src/js/menu_builder.js b/src/js/menu_builder.js index 374e8e8..2f8ad4d 100644 --- a/src/js/menu_builder.js +++ b/src/js/menu_builder.js @@ -27,6 +27,9 @@ const MenuBuilder = { vetri: data_vetri } + window.addEventListener('orientationchange', () => { + location.reload(); + }); PriceCalculator.init(price_data); let template_file = params.template != null ? params.template : 'menu.html'; let template = await fetch(`./assets/_${template_file}?rnd=${Math.random()}`); @@ -39,8 +42,9 @@ const MenuBuilder = { container.innerHTML = template; let isMobile = window.innerWidth <= 1108; - + console.log("is mobile", isMobile); if (isMobile && window.innerWidth < window.innerHeight) { + console.log('Mobile portrait mode setup'); const menuHeader = $('.menu-categorie').html(); const opzioniMenu = $('.opzioni-mobile-menu').html(); $('#menu-mobile').append(menuHeader); @@ -110,7 +114,8 @@ const MenuBuilder = { $('.menu-scroll').height(window.innerHeight - hMisure); } else { - container = document.querySelector('.mobile-popup'); + if(window.innerWidth < window.innerHeight) + container = document.querySelector('.mobile-popup'); }