diff --git a/airwatch/src/app/chatbot/feedback-button/feedback-button.scss b/airwatch/src/app/chatbot/feedback-button/feedback-button.scss index db05b31..b3d64b8 100644 --- a/airwatch/src/app/chatbot/feedback-button/feedback-button.scss +++ b/airwatch/src/app/chatbot/feedback-button/feedback-button.scss @@ -1,179 +1,184 @@ -.feedback-button { - background: #ecf3fa; - color: #083b7d; - padding: 12px; - border-radius: 8px; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - transform: rotate(270deg); - cursor: pointer; - display: flex; - align-items: center; - gap: 8px; +@use 'sae-lib/src/styles/variables' as variables; - margin-right: -35px; - position: fixed; - right: 0; - top: 197px; - z-index: 100; +:host { - &:hover { - background: #d9e8f6; - } - - i { - font-size: 16px; - } -} - -// Modal styles -.feedback-modal-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; -} - -.feedback-modal { - background: white; - border-radius: 8px; - width: 90%; - max-width: 500px; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); - display: flex; - flex-direction: column; - max-height: 90vh; - overflow: hidden; -} - -.modal-header { - display: flex; - justify-content: space-between; - align-items: center; - padding: 16px 20px; - border-bottom: 1px solid #eee; - - h3 { - margin: 0; - font-size: 18px; - font-weight: 600; + .feedback-button { + background: #ecf3fa; color: #083b7d; - } - - .close-button { - background: none; - border: none; + padding: 12px; + border-radius: 8px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + transform: rotate(270deg); cursor: pointer; - font-size: 20px; - color: #666; - padding: 4px; + display: flex; + align-items: center; + gap: 8px; + + margin-right: -35px; + position: fixed; + right: 0; + top: 197px; + z-index: 100; &:hover { - color: #333; + background: #d9e8f6; } - } -} - -.modal-body { - padding: 20px; - overflow-y: auto; - - .modal-description { - margin-bottom: 16px; - color: #555; - } - - textarea { - width: 100%; - padding: 12px; - border: 1px solid #ddd; - border-radius: 4px; - resize: vertical; - font-family: inherit; - font-size: 14px; - - &:focus { - outline: none; - border-color: #083b7d; - } - - &:disabled { - background-color: #f5f5f5; - cursor: not-allowed; - } - } - - .success-message, .error-message { - margin-top: 16px; - padding: 10px; - border-radius: 4px; - display: flex; - align-items: center; - gap: 8px; i { - font-size: 18px; + font-size: 16px; } } - .success-message { - background-color: #e6f7e6; - color: #2e7d32; - } - - .error-message { - background-color: #fdecea; - color: #d32f2f; - } -} - -.modal-footer { - padding: 16px 20px; - border-top: 1px solid #eee; - display: flex; - justify-content: flex-end; - gap: 12px; - - button { - padding: 8px 16px; - border-radius: 4px; - font-weight: 500; - cursor: pointer; - - &:disabled { - opacity: 0.6; - cursor: not-allowed; - } - } - - .cancel-button { - background: none; - border: 1px solid #ddd; - color: #555; - - &:hover:not(:disabled) { - background-color: #f5f5f5; - } - } - - .submit-button { - background-color: #083b7d; - color: white; - border: none; + // Modal styles + .feedback-modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); display: flex; + justify-content: center; align-items: center; - gap: 8px; + z-index: 1000; + } - &:hover:not(:disabled) { - background-color: #062c5e; + .feedback-modal { + background: white; + border-radius: 8px; + width: 90%; + max-width: 500px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + display: flex; + flex-direction: column; + max-height: 90vh; + overflow: hidden; + } + + .modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px 20px; + border-bottom: 1px solid #eee; + + h3 { + margin: 0; + font-size: 18px; + font-weight: 600; + color: #083b7d; + } + + .close-button { + background: none; + border: none; + cursor: pointer; + font-size: 20px; + color: #666; + padding: 4px; + + &:hover { + color: #333; + } } } + + .modal-body { + padding: 20px; + overflow-y: auto; + + .modal-description { + margin-bottom: 16px; + color: #555; + } + + textarea { + width: 100%; + padding: 12px; + border: 1px solid #ddd; + border-radius: 4px; + resize: vertical; + font-family: inherit; + font-size: 14px; + + &:focus { + outline: none; + border-color: #083b7d; + } + + &:disabled { + background-color: #f5f5f5; + cursor: not-allowed; + } + } + + .success-message, .error-message { + margin-top: 16px; + padding: 10px; + border-radius: 4px; + display: flex; + align-items: center; + gap: 8px; + + i { + font-size: 18px; + } + } + + .success-message { + background-color: #e6f7e6; + color: #2e7d32; + } + + .error-message { + background-color: #fdecea; + color: #d32f2f; + } + } + + .modal-footer { + padding: 16px 20px; + border-top: 1px solid #eee; + display: flex; + justify-content: flex-end; + gap: 12px; + + button { + padding: 8px 16px; + border-radius: 4px; + font-weight: 500; + cursor: pointer; + + &:disabled { + opacity: 0.6; + cursor: not-allowed; + } + } + + .cancel-button { + background: none; + border: 1px solid #ddd; + color: #555; + + &:hover:not(:disabled) { + background-color: #f5f5f5; + } + } + + .submit-button { + background-color: #083b7d; + color: white; + border: none; + display: flex; + align-items: center; + gap: 8px; + + &:hover:not(:disabled) { + background-color: #062c5e; + } + } + } + + } - - diff --git a/blueprint/src/app/nav/main-nav/main-nav.html b/blueprint/src/app/nav/main-nav/main-nav.html index cc8b9c6..998dc59 100644 --- a/blueprint/src/app/nav/main-nav/main-nav.html +++ b/blueprint/src/app/nav/main-nav/main-nav.html @@ -30,7 +30,6 @@
diff --git a/devops/docker-compose.yml b/devops/docker-compose.yml index 6d657ea..a144755 100644 --- a/devops/docker-compose.yml +++ b/devops/docker-compose.yml @@ -6,7 +6,7 @@ services: context: ./frontend dockerfile: ./frontend-dockerfile.yml ports: - - "4200:4200" + - "80:80" restart: unless-stopped container_name: frontend-app diff --git a/devops/frontend-dockerfile.yml b/devops/frontend-dockerfile.yml index ae11e55..2768847 100644 --- a/devops/frontend-dockerfile.yml +++ b/devops/frontend-dockerfile.yml @@ -1,30 +1,26 @@ # dockerfile FROM node:24 - -# Définir le répertoire de travail + + # Définir le répertoire de travail WORKDIR /app - - -# Définir une variable d'environnement pour le chemin de la librairie Angular + + + # Définir une variable d'environnement pour le chemin de la librairie Angular ENV LIB_PATH=../sae-csc - -# Copier les fichiers package.json et package-lock.json de la librairie + # Copier les fichiers package.json et package-lock.json de la librairie COPY ${LIB_PATH}/package*.json ./ - -# Installer les dépendances npm + + # Installer les dépendances npm RUN npm install - -# Copier le reste des sources (lib Angular + config Storybook) + + # Copier le reste des sources (lib Angular + config Storybook) COPY ${LIB_PATH}/ . - -# Construire l'application Angular + + # Construire l'application Angular RUN npm run build -- --configuration=production -# Installer un serveur HTTP pour servir l'application (par exemple, serve) -RUN npm install -g serve - -# Exposer le port 4200 (ou 80 si vous préférez) -EXPOSE 4200 - -# Commande pour servir l'application Angular buildée -CMD ["serve", "-s", "dist", "-l", "4200"] +from nginx:1.27-alpine +RUN rm -rf /usr/share/nginx/html/* +COPY --from=build /app/dist/implem /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx","-g","daemon off;"] diff --git a/my-workspace/projects/sae-lib/buttons/feedback-button/feedback-button.html b/my-workspace/projects/sae-lib/buttons/feedback-button/feedback-button.html index 0e08552..0cad88f 100644 --- a/my-workspace/projects/sae-lib/buttons/feedback-button/feedback-button.html +++ b/my-workspace/projects/sae-lib/buttons/feedback-button/feedback-button.html @@ -1,4 +1,6 @@ -