Skip to content
This repository has been archived by the owner on Feb 4, 2024. It is now read-only.

Flask #1

Merged
merged 365 commits into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
365 commits
Select commit Hold shift + click to select a range
63a9000
balise a oups
elouanjef Jan 26, 2024
631c63c
navbar bug
elouanjef Jan 26, 2024
ba4ab95
a -> button
elouanjef Jan 26, 2024
850ad14
je prie
elouanjef Jan 26, 2024
ef2386a
inshallah
elouanjef Jan 26, 2024
96f2210
c bon mais c moche
elouanjef Jan 26, 2024
31dc3c5
recuperation id de la vm + status
elouanjef Jan 26, 2024
f4a9aa7
autre design userinfo
elouanjef Jan 26, 2024
36959cd
li -> div
elouanjef Jan 26, 2024
fed903d
essai
elouanjef Jan 26, 2024
e7fb3d2
add bootstrap icons
elouanjef Jan 26, 2024
10fe1b3
c'est plus beau normalement
elouanjef Jan 26, 2024
dc2b3bc
logo
elouanjef Jan 26, 2024
cf07ea0
taille logo
elouanjef Jan 26, 2024
30d23c3
taille logo
elouanjef Jan 26, 2024
0c030e9
taille logo login
elouanjef Jan 26, 2024
f0eeaf8
width container
elouanjef Jan 26, 2024
c9e694c
navbar
elouanjef Jan 26, 2024
2bdace4
c'était blanc je suis con
elouanjef Jan 26, 2024
d29333a
dropleft ?
elouanjef Jan 26, 2024
3ea0dc5
fix
elouanjef Jan 26, 2024
8a86498
dropdown right
elouanjef Jan 26, 2024
09811ec
au secours
elouanjef Jan 26, 2024
f0f7cfe
dropdown new
elouanjef Jan 26, 2024
1d3bbcc
left
elouanjef Jan 26, 2024
91e0488
aled
elouanjef Jan 26, 2024
3c306b8
aled2
elouanjef Jan 26, 2024
94df27d
ptn
elouanjef Jan 26, 2024
642dfe3
aaa
elouanjef Jan 26, 2024
5b12b91
j'en ai marre
elouanjef Jan 26, 2024
8d38b83
eho
elouanjef Jan 26, 2024
cb19913
colors essai
elouanjef Jan 26, 2024
20b5396
test border nav
elouanjef Jan 26, 2024
2576488
dashboard nav
elouanjef Jan 26, 2024
c9d529e
align nav
elouanjef Jan 26, 2024
dbbbff0
test autre navbar
elouanjef Jan 26, 2024
a0b9042
test
elouanjef Jan 26, 2024
323e3c9
test2
elouanjef Jan 26, 2024
397df85
rubriques test
elouanjef Jan 26, 2024
b9b1f3b
retour c nul
elouanjef Jan 26, 2024
76b1ecb
essai barre laterale
elouanjef Jan 27, 2024
9f5b3a0
shrink
elouanjef Jan 27, 2024
fa8333d
aled
elouanjef Jan 27, 2024
32dbda6
essai
elouanjef Jan 27, 2024
d833cd9
help
elouanjef Jan 27, 2024
bda3de9
navbars
elouanjef Jan 27, 2024
0b0cda5
oubli
elouanjef Jan 27, 2024
839269f
500 internal
elouanjef Jan 27, 2024
6e48f04
essai belle card
elouanjef Jan 27, 2024
0768112
oups
elouanjef Jan 27, 2024
8ea3aec
mieux ?
elouanjef Jan 27, 2024
53cd358
aled
elouanjef Jan 27, 2024
ff9a265
mise en forme
elouanjef Jan 27, 2024
871f621
fix taille et liste
elouanjef Jan 27, 2024
702e5e0
le centrage ca va pas
elouanjef Jan 27, 2024
85c76a0
modif style
elouanjef Jan 27, 2024
4b28181
bg dark et margin
elouanjef Jan 27, 2024
1c88c02
card
elouanjef Jan 27, 2024
eb42961
deck
elouanjef Jan 27, 2024
5389a27
essai div
elouanjef Jan 27, 2024
4a4fdb8
revient a l'origine flex cards
elouanjef Jan 27, 2024
2c09f36
c'est peut etre mieux
elouanjef Jan 27, 2024
b1f8221
gras
elouanjef Jan 27, 2024
bebc3fc
italique
elouanjef Jan 27, 2024
f121d41
visuel
elouanjef Jan 27, 2024
50efa6f
template name
elouanjef Jan 27, 2024
f6bd9d8
buttons
elouanjef Jan 27, 2024
fb84f7b
modif bouton vm
elouanjef Jan 27, 2024
fa5e6b4
c plus beau
elouanjef Jan 27, 2024
6c3b892
center
elouanjef Jan 27, 2024
c69317c
professsor et text center
elouanjef Jan 27, 2024
69db609
comptes prof
elouanjef Jan 27, 2024
09f436e
deleteuser admin
elouanjef Jan 27, 2024
b9fb4a9
test modal
elouanjef Jan 28, 2024
d5dd0ff
modaux
elouanjef Jan 28, 2024
e14342c
opti
elouanjef Jan 28, 2024
da6532c
oups
elouanjef Jan 28, 2024
7acb756
oups les boutons
elouanjef Jan 28, 2024
f7c2835
oubli id form create user
elouanjef Jan 28, 2024
712b0f3
vms card opti
elouanjef Jan 28, 2024
442bdca
plus belle table
elouanjef Jan 28, 2024
9342a2c
plus belle table 2
elouanjef Jan 28, 2024
a90a1c5
oubli
elouanjef Jan 28, 2024
794b80c
essai couleur tableau
elouanjef Jan 28, 2024
7bb913a
essai
elouanjef Jan 28, 2024
e70c284
plus beau ?
elouanjef Jan 28, 2024
23848a2
headers
elouanjef Jan 28, 2024
af62e75
affichage des headers
elouanjef Jan 28, 2024
70157da
center
elouanjef Jan 28, 2024
0861783
essai nav plus belle
elouanjef Jan 28, 2024
377b80b
essai style
elouanjef Jan 28, 2024
00aeb09
plus de changement de couleur de police?
elouanjef Jan 28, 2024
c49e4d4
surbrillance
elouanjef Jan 28, 2024
47223d3
? ça marche pas
elouanjef Jan 28, 2024
f628503
au secours
elouanjef Jan 28, 2024
75b5d01
tant pis
elouanjef Jan 28, 2024
b353332
login page mieux
elouanjef Jan 28, 2024
46b30e0
login
elouanjef Jan 28, 2024
21631b7
essai welcome
elouanjef Jan 28, 2024
65e1abb
navbar center
elouanjef Jan 28, 2024
e0dbe3c
non j'y arrive pas
elouanjef Jan 28, 2024
8aec69b
navbar
elouanjef Jan 28, 2024
37d607b
evenly
elouanjef Jan 28, 2024
91d7a13
aled
elouanjef Jan 28, 2024
97645eb
welcome name
elouanjef Jan 28, 2024
20131a9
flelx
elouanjef Jan 28, 2024
a513e13
flex
elouanjef Jan 28, 2024
c0f8454
annulation
elouanjef Jan 28, 2024
d14b3d3
infos en fr
elouanjef Jan 28, 2024
5905ac5
test open vm
elouanjef Jan 29, 2024
8559168
guillemets
elouanjef Jan 29, 2024
f9b44fc
debug
elouanjef Jan 29, 2024
0365c94
undefined url ?
elouanjef Jan 29, 2024
5012591
solution
elouanjef Jan 29, 2024
fa58ff1
async
elouanjef Jan 29, 2024
5533935
c'est bon ?
elouanjef Jan 29, 2024
dbba99b
aled??
elouanjef Jan 29, 2024
1c8a2ba
italie footer
elouanjef Jan 31, 2024
62ed6d3
c bon ?
elouanjef Jan 31, 2024
8d559ab
footer
elouanjef Jan 31, 2024
66e374f
footer?
elouanjef Jan 31, 2024
342699a
footers
elouanjef Jan 31, 2024
314d820
modif role
elouanjef Jan 31, 2024
3ec928f
mauvais appel
elouanjef Jan 31, 2024
963a7fd
toujours le mauvais
elouanjef Jan 31, 2024
04b9230
essai change role
elouanjef Jan 31, 2024
dcfce2f
appel api
elouanjef Jan 31, 2024
1a8c68d
surbrillance a
elouanjef Jan 31, 2024
195b6ed
creer vm impossible de cliquer
elouanjef Jan 31, 2024
10f1625
anti actualiser
elouanjef Jan 31, 2024
444536f
enlever anti actualiser
elouanjef Jan 31, 2024
ff21123
no border nav tabs
elouanjef Jan 31, 2024
8681389
no color hover
elouanjef Jan 31, 2024
524cded
a color
elouanjef Jan 31, 2024
f586a23
a essai
elouanjef Jan 31, 2024
7c3725d
margin nav item
elouanjef Jan 31, 2024
ca3628a
border plus grosse ?
elouanjef Jan 31, 2024
edf0062
oups
elouanjef Jan 31, 2024
dfba860
new tab btn open vm
elouanjef Jan 31, 2024
5a27576
allo
elouanjef Jan 31, 2024
98a9e24
c bo ?
elouanjef Jan 31, 2024
8a8ac55
insane
elouanjef Jan 31, 2024
a5b04e6
open vnc new tab
elouanjef Jan 31, 2024
eda7bc0
modif plus beau
elouanjef Jan 31, 2024
62db978
plein ecran btn
elouanjef Jan 31, 2024
5963ef0
plus que toi alexis
elouanjef Jan 31, 2024
c5956c8
oups le onclick
elouanjef Jan 31, 2024
c5eb44c
id tmeplate
elouanjef Jan 31, 2024
09795cf
templateid
elouanjef Jan 31, 2024
79d4353
oups
elouanjef Jan 31, 2024
7de890f
icone
elouanjef Jan 31, 2024
167668e
footer en bas de la page et pas de l'écran
elouanjef Jan 31, 2024
56312ac
relative
elouanjef Jan 31, 2024
0e4c222
?
elouanjef Jan 31, 2024
4820e49
essai footer
elouanjef Jan 31, 2024
09eb6f5
test
elouanjef Jan 31, 2024
eb251bc
allo
elouanjef Jan 31, 2024
fa025cd
footer en dehors du footer
elouanjef Jan 31, 2024
b8b1548
scroll
elouanjef Jan 31, 2024
eacd518
aled j'y arrive pas
elouanjef Jan 31, 2024
30f6a2d
footer aled
elouanjef Jan 31, 2024
78ceae3
height
elouanjef Jan 31, 2024
6e19b0e
footer inshallah
elouanjef Jan 31, 2024
92352ac
fck
elouanjef Jan 31, 2024
932a38f
mouais
elouanjef Jan 31, 2024
2093410
styles
elouanjef Jan 31, 2024
21517c8
css
elouanjef Jan 31, 2024
9bbe51f
wtf
elouanjef Jan 31, 2024
18b5017
euh ouais ?
elouanjef Jan 31, 2024
f9dd977
c bon??
elouanjef Jan 31, 2024
cf2a5e3
js login
elouanjef Jan 31, 2024
b25eb02
js login
elouanjef Jan 31, 2024
fa7d9de
on tente hein
elouanjef Jan 31, 2024
d24257b
merde trompé de fichier
elouanjef Jan 31, 2024
03a3314
là ?
elouanjef Jan 31, 2024
5994860
c'était moche le blanc
elouanjef Jan 31, 2024
5db4010
dashboard.js
elouanjef Jan 31, 2024
77b1fa6
oubli src
elouanjef Jan 31, 2024
6416346
oups
elouanjef Jan 31, 2024
b0762de
ptn de bordel
elouanjef Jan 31, 2024
1c2107f
au secours j'en ai marre
elouanjef Jan 31, 2024
da7bf02
c'est mieux p-e?
elouanjef Jan 31, 2024
a2f3325
c bon ?
elouanjef Jan 31, 2024
869db71
pk ça marche pas zebi
elouanjef Jan 31, 2024
71ddbf1
clean
elouanjef Jan 31, 2024
545be69
c'est chiant quand meme
elouanjef Jan 31, 2024
7f0d606
dashboard js enfin?????
elouanjef Jan 31, 2024
5b55ea5
debug
elouanjef Jan 31, 2024
7902ec6
fallait peutetre le mettre ici ???
elouanjef Jan 31, 2024
a2cd599
corriger dashboard.js
elouanjef Jan 31, 2024
90e6712
?
elouanjef Jan 31, 2024
4cc518c
c'est le promise ?
elouanjef Jan 31, 2024
1a19b74
et là ?
elouanjef Jan 31, 2024
181628f
au secours
elouanjef Jan 31, 2024
2579c9f
insh
elouanjef Jan 31, 2024
3e14c5e
ça doit marcher là
elouanjef Jan 31, 2024
b15421c
prof je crois que c'est bon
elouanjef Jan 31, 2024
359df55
oups
elouanjef Jan 31, 2024
6c8100b
oui ?
elouanjef Jan 31, 2024
58e1db1
et là
elouanjef Jan 31, 2024
93785a9
debug
elouanjef Jan 31, 2024
01077b7
debug
elouanjef Jan 31, 2024
4045b27
prof fini
elouanjef Jan 31, 2024
62b4ca2
admin js file ?
elouanjef Jan 31, 2024
8d3d16d
opti blockquote
elouanjef Jan 31, 2024
95dbf7b
oubli lettre + mauvais id
elouanjef Jan 31, 2024
5c99ea3
viewer ?
elouanjef Jan 31, 2024
34cfa9a
jsuis con
elouanjef Jan 31, 2024
dd64605
oups
elouanjef Jan 31, 2024
0785e3a
stp marche
elouanjef Jan 31, 2024
aca8c9b
ah c ca
elouanjef Jan 31, 2024
90ccd41
ah non c'était pas ça
elouanjef Jan 31, 2024
c3c57d5
eh oh
elouanjef Jan 31, 2024
2bc30ad
c'est good pour moi
elouanjef Jan 31, 2024
a4998c0
oups la balise script vide
elouanjef Jan 31, 2024
d4b9773
Docker WIP
AlexTheGeek Feb 1, 2024
9a6cdc1
docker first try
AlexTheGeek Feb 1, 2024
068ae04
Fix image
AlexTheGeek Feb 1, 2024
fb84e8b
je suis trop con
AlexTheGeek Feb 1, 2024
b6c860f
Changement du FQDN docker
AlexTheGeek Feb 1, 2024
f129d95
test call flask env
loimax Feb 1, 2024
cf0b4dc
test 2
loimax Feb 1, 2024
5a55d0b
correct
loimax Feb 1, 2024
ec0c637
autre test
AlexTheGeek Feb 1, 2024
a15734d
fds
AlexTheGeek Feb 1, 2024
51b6241
test 15
loimax Feb 1, 2024
800b49e
test11
loimax Feb 1, 2024
a300a8a
test100000
AlexTheGeek Feb 1, 2024
f885f01
euh ???
AlexTheGeek Feb 1, 2024
e0c26b0
gdhfghfghd
AlexTheGeek Feb 1, 2024
c1335c1
ça me soule
AlexTheGeek Feb 1, 2024
0a4a022
fdsfsd
AlexTheGeek Feb 1, 2024
903fbd6
nouveau test
AlexTheGeek Feb 1, 2024
7f55608
mieux ?
AlexTheGeek Feb 1, 2024
93f2943
alors ?
AlexTheGeek Feb 1, 2024
c7ea2e7
ça va rien changer
AlexTheGeek Feb 1, 2024
790d563
ça marche normalement
AlexTheGeek Feb 1, 2024
3237707
test login
elouanjef Feb 1, 2024
c536129
log
elouanjef Feb 1, 2024
d82deac
=
elouanjef Feb 1, 2024
9422494
prière
loimax Feb 1, 2024
faa208a
fixed
loimax Feb 1, 2024
6cb999b
docker rdy
AlexTheGeek Feb 1, 2024
95a2619
better
AlexTheGeek Feb 1, 2024
9a20044
better
AlexTheGeek Feb 1, 2024
a02d37d
mieux
AlexTheGeek Feb 1, 2024
809ad9f
better docker
AlexTheGeek Feb 1, 2024
536f238
object -> reject
elouanjef Feb 1, 2024
c96a9aa
Merge branch 'flask' of github.com:loimax/VDI into flask
elouanjef Feb 1, 2024
3a2b262
Merge branch 'main' into flask
loimax Feb 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Deploy

on:
push:
branches: [ "flask" ]
pull_request:
branches: [ "flask" ]

permissions:
contents: read

jobs:
deploy:

runs-on: self-hosted

steps:
- uses: actions/checkout@v4
- name: LS command
run: ls
- name: PWD command
run: pwd
- name: cp command
run: cp -r * /home/alex/VDI-APP-INSA
- name: api-service restart
run: sudo systemctl restart app-vdi
- name: api-service status
run: sudo systemctl status app-vdi
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
*.sec
*.sec
*.key
*.pyc
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM python:3.11.2-bullseye

RUN apt update

RUN pip install Flask==3.0.0 gunicorn==20.1.0

RUN mkdir /app
WORKDIR /app

COPY . /app

# Partie variable d'environnement URLs
ENV URL_API=https://api.insa-cvl.com


EXPOSE 5000

CMD ["/bin/bash", "entrypoint.sh"]
60 changes: 59 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,59 @@
# VDI
# APP VDI

## Description
This the fronted of the APP VDI. You can find the API [here](https://github.com/AlexTheGeek/api-vdi).

## Installation
### Requirements
1. Linux : Ubuntu 20.04, Debian 11,12
2. Python 3.11.2
3. Pip or Pipx : you can even create a virtual environment to run those scripts
4. Create a user vdi with the home directory `/home/vdi`
5. Create a folder `/home/vdi/VDI-APP` for the API and and clone this repository in it
5.1. `mkdir -p /home/vdi/VDI-APP`
5.2. `cd /home/vdi/VDI-APP`
5.3. `git clone https://github.com/loimax/vdi.git`
6. Install the requirements : `pip install -r requirements.txt`
7. Create a folder /var/log/VDI/API for the logs of the API : `mkdir -p /var/log/VDI/APP`
7.1. Set the rights of the user who runs the API (here vdi) on this folder : `chown -R vdi:vdi /var/log/VDI/APP`

### Docker
1. build the image : `docker build -t vdi-app .` or `docker-compose build` with the docker-compose.yml file
2. run the container : `docker run -it -d -p 5000:5000 --name vdi-app vdi-app` or `docker-compose up -d` with the docker-compose.yml file
```yaml
version: "3.9"
services:
vdi-app:
#build: .
image: vdi-app
container_name: vdi-app
ports:
- "5000:5000"
environment:
- URL_API=https://api.insa-cvl.com
restart: always
```
3. check the logs : `docker logs vdi-app` or `docker-compose logs -f`


### Systemd
1. Create a file `/etc/systemd/system/vdi-app.service` with the following content :
```
[Unit]
Description=Gunicorn instance to serve APP VDI
After=network.target

[Service]
User=vdi
Group=vdi
WorkingDirectory=/home/vdi/VDI-APP
Environment="PATH=/home/vdi/.local/bin"
ExecStart=/home/vdi/.local/bin/gunicorn --access-logfile /var/log/VDI/APP/access.log --error-logfile /var/log/VDI/APP/error.log --workers 3 --bind 0.0.0.0:5000 app:app

[Install]
WantedBy=multi-user.target
```
2. Reload the systemd daemon : `systemctl daemon-reload`
3. Enable the service : `systemctl enable vdi-app.service`
4. Start the service : `systemctl start vdi-app.service`
5. Check the status of the service : `systemctl status vdi-app.service`
13 changes: 13 additions & 0 deletions app-vdi.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Unit]
Description=Gunicorn instance to serve APP VDI
After=network.target

[Service]
User=alex
Group=alex
WorkingDirectory=/home/alex/VDI-APP-INSA
Environment="PATH=/home/alex/.local/bin"
ExecStart=/home/alex/.local/bin/gunicorn --access-logfile /var/log/VDI/APP/access.log --error-logfile /var/log/VDI/APP/error.log --workers 3 --bind 0.0.0.0:5000 app:app

[Install]
WantedBy=multi-user.target
36 changes: 36 additions & 0 deletions app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from flask import Flask, render_template, redirect, url_for, send_from_directory, request

app = Flask(__name__, static_folder='static')

app.config['URL_API']="https://api.insa-cvl.com"

@app.route('/robots.txt')
def static_from_root():
return send_from_directory(app.static_folder, request.path[1:])

@app.route('/')
def home():
return redirect(url_for('login'))

@app.route('/login', methods=['GET', 'POST'])
def login():
return render_template('login.html', URL_API=app.config['URL_API'])

@app.route('/admin', methods=['GET', 'POST'])
def admin():
return render_template('admin.html', URL_API=app.config['URL_API'])

@app.route('/professor', methods=['GET', 'POST'])
def professor():
return render_template('professor.html', URL_API=app.config['URL_API'])

@app.route('/dashboard', methods=['GET', 'POST'])
def dashboard():
return render_template('dashboard.html', URL_API=app.config['URL_API'])

@app.route('/viewer', methods=['GET'])
def viewer():
return render_template('viewer.html', URL_API=app.config['URL_API'])

if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=5001)
11 changes: 11 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "3.9"
services:
vdi-app:
#build: .
image: vdi-app
container_name: vdi-app
ports:
- "5000:5000"
environment:
- URL_API=https://api.insa-cvl.com
restart: always
37 changes: 37 additions & 0 deletions docker.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from flask import Flask, render_template, redirect, url_for, send_from_directory, request
import os

app = Flask(__name__, static_folder='static')

app.config['URL_API']=os.getenv('URL_API')

@app.route('/robots.txt')
def static_from_root():
return send_from_directory(app.static_folder, request.path[1:])

@app.route('/')
def home():
return redirect(url_for('login'))

@app.route('/login', methods=['GET', 'POST'])
def login():
return render_template('login.html', URL_API=app.config['URL_API'])

@app.route('/admin', methods=['GET', 'POST'])
def admin():
return render_template('admin.html', URL_API=app.config['URL_API'])

@app.route('/professor', methods=['GET', 'POST'])
def professor():
return render_template('professor.html', URL_API=app.config['URL_API'])

@app.route('/dashboard', methods=['GET', 'POST'])
def dashboard():
return render_template('dashboard.html', URL_API=app.config['URL_API'])

@app.route('/viewer', methods=['GET'])
def viewer():
return render_template('viewer.html', URL_API=app.config['URL_API'])

if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=5001)
11 changes: 11 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

if [[ ! -d "/var/log/VDI/APP" ]]; then
mkdir -p /var/log/VDI/APP
touch /var/log/VDI/APP/access.log
touch /var/log/VDI/APP/error.log
touch /var/log/VDI/APP/app-flask.log
fi


gunicorn --access-logfile /var/log/VDI/APP/access.log --error-logfile /var/log/VDI/APP/error.log --workers 3 --bind 0.0.0.0:5000 docker:app
6 changes: 6 additions & 0 deletions logo.colors
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#B61900 rouge foncé
#E52100 rouge moyen foncé
#E22700 rouge
#FFFFFF blanc
#001014 noir
#869CA2 gris
87 changes: 87 additions & 0 deletions static/css/base.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
footer {
font-size: 10px;
line-height: 0px;
}

.border-bottom-nav {
border-bottom: 2px solid #FFF;
}

.dropdown-menu-right {
right: 0;
left: auto;
}

.lds-default-container {
display: flex;
justify-content: center;
align-items: center;
}

.cards {
display: flex;
flex-wrap: wrap;
list-style: none;
padding: 0;
margin: 20px;
}

.card {
margin-left: 20px;
margin-right: 20px;
}

body {
background-color: #343A40;
color: white;
margin-bottom: 20px;
overflow-y: scroll;
}

.blockquote-footer {
color: white;
}

h1 {
margin: 20px;
font-size: 24px;
text-align: center;
}

h2 {
font-size: 20px;
text-align: center;
}

#addUserCard, #addVMOutCard, #addTemplateCard, a:hover {
cursor: pointer;
}

.navbar {
background-color: #343A40;
}

.navbar-dark .navbar-nav .nav-link {
color: white;
}

.nav-tabs .nav-item {
transition: transform 0.3s ease-in-out;
margin-bottom: 1px;
}

.nav-tabs .nav-item:hover {
transform: scale(1.1);
}

.nav-tabs {
border-bottom: none;
}

.nav-item {
padding: 0 20px;
}

a, a:hover {
color: inherit;
}
Loading