diff --git a/.env-dist b/.env-dist index 5f3aa6e..4ed77c0 100644 --- a/.env-dist +++ b/.env-dist @@ -1,2 +1,3 @@ VITE_API_URL= VITE_API_URL_IDREF= +VITE_MAINTENANCE=0 diff --git a/README-developpement.md b/README-developpement.md new file mode 100644 index 0000000..7954997 --- /dev/null +++ b/README-developpement.md @@ -0,0 +1,58 @@ +# item-client + +Le langage utilisé est JavaScript, avec le framework VueJs 3. + +Ce dépôt héberge le code source de l'interface utilisateur de Item (développée en VueJS) codée en VueJs 3. +Cette interface utilisateur fonctionne en lien avec son API développée en Java : https://github.com/abes-esr/item-api/ +L'application Item complète peut être déployée via Docker à l'aide de ce +dépôt : https://github.com/abes-esr/item-docker/ . +Les principaux plugins installés dans ce projet sont : Vite, Pinia, Vue-router, Vuetify et Axios. + +## Installation du projet et démarrage + +### Installation du projet + +``` +npm install +``` + +Une fois installé, il faut dupliquer le ``.env-dist`` puis renommer le duplicata en ``.env``. Completer ensuite les +variables d'environnement dans le ``.env``. + +### Compilation et rechargement à chaud pour le développement + +``` +npm run dev +``` + +Une fois cette commande lancée, l'url de l'application sera affichée (dans le terminal ou dans les logs, selon +l'environnement de déploiement). + +### Compilation complète + +``` +npm run build +``` + +### Compilation pour prévisualisation + +``` +npm run preview +``` + +### Compilation "prettier" + +``` +npm run prettier +``` + +### Configurations personnalisées + +See [Configuration Reference](https://cli.vuejs.org/config/). + +## Maintenance + +Pour passer l'application en mode maintenance il suffit de passer la variable d'environement `VITE_MAINTENANCE` à +`1`. +Sinon pour passer en mode maintenance sur les serveurs, il suffit de passer la variable `ITEM_FRONT_MAINTENANCE` à `1` +du projet [Item-docker](https://github.com/abes-esr/item-docker). diff --git a/README.md b/README.md index b2cab61..e1e7407 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,28 @@ -# Vuetify (Default) +# item-client -## Icons links +Vous êtes sur le README usager. Si vous souhaitez accéder au README développement, veuillez suivre ce lien : [README-developpement](README-developpement.md) -https://pictogrammers.com/library/mdi/ +[![build-test-pubtodockerhub](https://github.com/abes-esr/item-client/actions/workflows/build-test-pubtodockerhub.yml/badge.svg)](https://github.com/abes-esr/item-client/actions/workflows/build-test-pubtodockerhub.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/abesesr/item.svg)](https://hub.docker.com/r/abesesr/item/) -This is the official scaffolding tool for Vuetify, designed to give you a head start in building your new Vuetify application. It sets up a base template with all the necessary configurations and standard directory structure, enabling you to begin development without the hassle of setting up the project from scratch. +**I**nterface de **T**raitement des **E**xemplaires en **M**asse dans le Sudoc (partie client). -## ❗️ Important Links +- URL de production : https://item.sudoc.fr +- Documentation utilisateur : http://documentation.abes.fr/aideitem/index.html -- 📄 [Docs](https://vuetifyjs.com/) -- 🚨 [Issues](https://issues.vuetifyjs.com/) -- 🏬 [Store](https://store.vuetifyjs.com/) -- 🎮 [Playground](https://play.vuetifyjs.com/) -- 💬 [Discord](https://community.vuetifyjs.com) +Item nécessite de se logger. Vous devrez donc disposer d'un droit d'accès à l'application pour pouvoir l'utiliser. -## 💿 Install +## Usage -Set up your project using your preferred package manager. Use the corresponding command to install the dependencies: +Item permet de : +* Calculer ses taux de recouvrement +* Gérer ses taux de recouvrement +* Créer des exemplaires +* Gérer ses créations d'exemplaires +* Modifier des exemplaires +* Gérer ses modifications d'exemplaires +* Supprimer des exemplaires +* Gérer ses suppressions d'exemplaires -| Package Manager | Command | -| --------------------------------------------------------- | -------------- | -| [yarn](https://yarnpkg.com/getting-started) | `yarn install` | -| [npm](https://docs.npmjs.com/cli/v7/commands/npm-install) | `npm install` | -| [pnpm](https://pnpm.io/installation) | `pnpm install` | -| [bun](https://bun.sh/#getting-started) | `bun install` | +Chacune de ces demandes sera envoyée à item-back qui effectuera les traitements demandés. -After completing the installation, your environment is ready for Vuetify development. - -## ✨ Features - -- 🖼️ **Optimized Front-End Stack**: Leverage the latest Vue 3 and Vuetify 3 for a modern, reactive UI development experience. [Vue 3](https://v3.vuejs.org/) | [Vuetify 3](https://vuetifyjs.com/en/) -- 🗃️ **State Management**: Integrated with [Pinia](https://pinia.vuejs.org/), the intuitive, modular state management solution for Vue. -- 🚦 **Routing and Layouts**: Utilizes Vue Router for SPA navigation and vite-plugin-vue-layouts for organizing Vue file layouts. [Vue Router](https://router.vuejs.org/) | [vite-plugin-vue-layouts](https://github.com/JohnCampionJr/vite-plugin-vue-layouts) -- ⚡ **Next-Gen Tooling**: Powered by Vite, experience fast cold starts and instant HMR (Hot Module Replacement). [Vite](https://vitejs.dev/) -- 🧩 **Automated Component Importing**: Streamline your workflow with unplugin-vue-components, automatically importing components as you use them. [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) - -These features are curated to provide a seamless development experience from setup to deployment, ensuring that your Vuetify application is both powerful and maintainable. - -## 💡 Usage - -This section covers how to start the development server and build your project for production. - -### Starting the Development Server - -To start the development server with hot-reload, run the following command. The server will be accessible at [http://localhost:3000](http://localhost:3000): - -```bash -yarn dev -``` - -(Repeat for npm, pnpm, and bun with respective commands.) - -> Add NODE_OPTIONS='--no-warnings' to suppress the JSON import warnings that happen as part of the Vuetify import mapping. If you are on Node [v21.3.0](https://nodejs.org/en/blog/release/v21.3.0) or higher, you can change this to NODE_OPTIONS='--disable-warning=5401'. If you don't mind the warning, you can remove this from your package.json dev script. - -### Building for Production - -To build your project for production, use: - -```bash -yarn build -``` - -(Repeat for npm, pnpm, and bun with respective commands.) - -Once the build process is completed, your application will be ready for deployment in a production environment. - -## 💪 Support Vuetify Development - -This project is built with [Vuetify](https://vuetifyjs.com/en/), a UI Library with a comprehensive collection of Vue components. Vuetify is an MIT licensed Open Source project that has been made possible due to the generous contributions by our [sponsors and backers](https://vuetifyjs.com/introduction/sponsors-and-backers/). If you are interested in supporting this project, please consider: - -- [Requesting Enterprise Support](https://support.vuetifyjs.com/) -- [Sponsoring John on Github](https://github.com/users/johnleider/sponsorship) -- [Sponsoring Kael on Github](https://github.com/users/kaelwd/sponsorship) -- [Supporting the team on Open Collective](https://opencollective.com/vuetify) -- [Becoming a sponsor on Patreon](https://www.patreon.com/vuetify) -- [Becoming a subscriber on Tidelift](https://tidelift.com/subscription/npm/vuetify) -- [Making a one-time donation with Paypal](https://paypal.me/vuetify) - -## 📑 License - -[MIT](http://opensource.org/licenses/MIT) - -Copyright (c) 2016-present Vuetify, LLC - -## Prettier - -To indent code fo the project, use: - -```bash -npm run prettier -``` +Des emails récapitulatifs seront envoyés durant les traitements afin d'informer sur l'état de leur réalisation. Un email valide est donc nécessaire. diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index ad5a62b..72d317d 100644 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -3,6 +3,7 @@ # Paramètres par défaut du conteneur export ITEM_FRONT_API_BASEURL=${ITEM_FRONT_API_BASEURL:='http://localhost:8081/'} export ITEM_FRONT_IDREF_API_URL=${ITEM_FRONT_IDREF_API_URL:='http://localhost:8081/'} +export ITEM_FRONT_MAINTENANCE=${ITEM_FRONT_MAINTENANCE:='0'} # Remplace les placeholders dans le code généré en prod @@ -11,6 +12,7 @@ export ITEM_FRONT_IDREF_API_URL=${ITEM_FRONT_IDREF_API_URL:='http://localhost:80 echo "-> Remplacement des placeholders venant du .env de vuejs dans la destination /usr/share/nginx/html/" echo "-> ITEM_FRONT_API_BASEURL=${ITEM_FRONT_API_BASEURL}" echo "-> ITEM_PLACEHOLDER_VITE_IDREF_API_URL=${ITEM_FRONT_IDREF_API_URL}" +echo "-> ITEM_PLACEHOLDER_VITE_MAINTENANCE=${ITEM_FRONT_MAINTENANCE}" rm -rf /usr/share/nginx/html/ cp -rf /usr/share/nginx/html.orig/ /usr/share/nginx/html/ sed -i \ @@ -19,6 +21,9 @@ sed -i \ sed -i \ "s#ITEM_PLACEHOLDER_VITE_IDREF_API_URL#${ITEM_FRONT_IDREF_API_URL}#g" \ /usr/share/nginx/html/assets/* +sed -i \ + "s#ITEM_PLACEHOLDER_VITE_MAINTENANCE#${ITEM_FRONT_MAINTENANCE}#g" \ + /usr/share/nginx/html/assets/* # execute nginx (cf CMD dans Dockerfile) exec "$@" diff --git a/docker/vuejs_env_placeholder b/docker/vuejs_env_placeholder index a194ddd..0c3ff3d 100644 --- a/docker/vuejs_env_placeholder +++ b/docker/vuejs_env_placeholder @@ -4,3 +4,4 @@ # et éviter ainsi d'avoir une URL de l'API en static dans l'image docker VITE_API_URL=ITEM_PLACEHOLDER_VITE_API_URL VITE_API_URL_IDREF=ITEM_PLACEHOLDER_VITE_IDREF_API_URL +VITE_MAINTENANCE=ITEM_PLACEHOLDER_VITE_MAINTENANCE diff --git a/src/App.vue b/src/App.vue index 7f4da05..0108a96 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,61 +1,62 @@ diff --git a/src/components/Structure/Maintenance.vue b/src/components/Structure/Maintenance.vue new file mode 100644 index 0000000..721a557 --- /dev/null +++ b/src/components/Structure/Maintenance.vue @@ -0,0 +1,31 @@ + + +