commit
28c2d704c8
@ -0,0 +1,479 @@
|
|||||||
|
##### Windows
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
##### Linux
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
##### MacOS
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
##### Backup
|
||||||
|
*.bak
|
||||||
|
*.gho
|
||||||
|
*.ori
|
||||||
|
*.orig
|
||||||
|
*.tmp
|
||||||
|
|
||||||
|
##### GPG
|
||||||
|
secring.*
|
||||||
|
|
||||||
|
##### Dropbox
|
||||||
|
# Dropbox settings and caches
|
||||||
|
.dropbox
|
||||||
|
.dropbox.attr
|
||||||
|
.dropbox.cache
|
||||||
|
|
||||||
|
##### SynopsysVCS
|
||||||
|
# Waveform formats
|
||||||
|
*.vcd
|
||||||
|
*.vpd
|
||||||
|
*.evcd
|
||||||
|
*.fsdb
|
||||||
|
|
||||||
|
# Default name of the simulation executable. A different name can be
|
||||||
|
# specified with this switch (the associated daidir database name is
|
||||||
|
# also taken from here): -o <path>/<filename>
|
||||||
|
simv
|
||||||
|
|
||||||
|
# Generated for Verilog and VHDL top configs
|
||||||
|
simv.daidir/
|
||||||
|
simv.db.dir/
|
||||||
|
|
||||||
|
# Infrastructure necessary to co-simulate SystemC models with
|
||||||
|
# Verilog/VHDL models. An alternate directory may be specified with this
|
||||||
|
# switch: -Mdir=<directory_path>
|
||||||
|
csrc/
|
||||||
|
|
||||||
|
# Log file - the following switch allows to specify the file that will be
|
||||||
|
# used to write all messages from simulation: -l <filename>
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Coverage results (generated with urg) and database location. The
|
||||||
|
# following switch can also be used: urg -dir <coverage_directory>.vdb
|
||||||
|
simv.vdb/
|
||||||
|
urgReport/
|
||||||
|
|
||||||
|
# DVE and UCLI related files.
|
||||||
|
DVEfiles/
|
||||||
|
ucli.key
|
||||||
|
|
||||||
|
# When the design is elaborated for DirectC, the following file is created
|
||||||
|
# with declarations for C/C++ functions.
|
||||||
|
vc_hdrs.h
|
||||||
|
|
||||||
|
##### SVN
|
||||||
|
.svn/
|
||||||
|
|
||||||
|
##### Mercurial
|
||||||
|
.hg/
|
||||||
|
.hgignore
|
||||||
|
.hgsigs
|
||||||
|
.hgsub
|
||||||
|
.hgsubstate
|
||||||
|
.hgtags
|
||||||
|
|
||||||
|
##### Bazaar
|
||||||
|
.bzr/
|
||||||
|
.bzrignore
|
||||||
|
|
||||||
|
##### CVS
|
||||||
|
/CVS/*
|
||||||
|
**/CVS/*
|
||||||
|
.cvsignore
|
||||||
|
*/.cvsignore
|
||||||
|
|
||||||
|
##### TortoiseGit
|
||||||
|
# Project-level settings
|
||||||
|
/.tgitconfig
|
||||||
|
|
||||||
|
##### PuTTY
|
||||||
|
# Private key
|
||||||
|
*.ppk
|
||||||
|
|
||||||
|
##### Vim
|
||||||
|
# Swap
|
||||||
|
[._]*.s[a-v][a-z]
|
||||||
|
!*.svg # comment out if you don't need vector files
|
||||||
|
[._]*.sw[a-p]
|
||||||
|
[._]s[a-rt-v][a-z]
|
||||||
|
[._]ss[a-gi-z]
|
||||||
|
[._]sw[a-p]
|
||||||
|
|
||||||
|
# Session
|
||||||
|
Session.vim
|
||||||
|
Sessionx.vim
|
||||||
|
|
||||||
|
# Temporary
|
||||||
|
.netrwhist
|
||||||
|
*~
|
||||||
|
# Auto-generated tag files
|
||||||
|
tags
|
||||||
|
# Persistent undo
|
||||||
|
[._]*.un~
|
||||||
|
|
||||||
|
##### Emacs
|
||||||
|
# -*- mode: gitignore; -*-
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
|
||||||
|
# Org-mode
|
||||||
|
.org-id-locations
|
||||||
|
*_archive
|
||||||
|
|
||||||
|
# flymake-mode
|
||||||
|
*_flymake.*
|
||||||
|
|
||||||
|
# eshell files
|
||||||
|
/eshell/history
|
||||||
|
/eshell/lastdir
|
||||||
|
|
||||||
|
# elpa packages
|
||||||
|
/elpa/
|
||||||
|
|
||||||
|
# reftex files
|
||||||
|
*.rel
|
||||||
|
|
||||||
|
# AUCTeX auto folder
|
||||||
|
/auto/
|
||||||
|
|
||||||
|
# cask packages
|
||||||
|
.cask/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Flycheck
|
||||||
|
flycheck_*.el
|
||||||
|
|
||||||
|
# server auth directory
|
||||||
|
/server/
|
||||||
|
|
||||||
|
# projectiles files
|
||||||
|
.projectile
|
||||||
|
|
||||||
|
# directory configuration
|
||||||
|
.dir-locals.el
|
||||||
|
|
||||||
|
# network security
|
||||||
|
/network-security.data
|
||||||
|
|
||||||
|
##### SublimeText
|
||||||
|
# Cache files for Sublime Text
|
||||||
|
*.tmlanguage.cache
|
||||||
|
*.tmPreferences.cache
|
||||||
|
*.stTheme.cache
|
||||||
|
|
||||||
|
# Workspace files are user-specific
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# Project files should be checked into the repository, unless a significant
|
||||||
|
# proportion of contributors will probably not be using Sublime Text
|
||||||
|
# *.sublime-project
|
||||||
|
|
||||||
|
# SFTP configuration file
|
||||||
|
sftp-config.json
|
||||||
|
sftp-config-alt*.json
|
||||||
|
|
||||||
|
# Package control specific files
|
||||||
|
Package Control.last-run
|
||||||
|
Package Control.ca-list
|
||||||
|
Package Control.ca-bundle
|
||||||
|
Package Control.system-ca-bundle
|
||||||
|
Package Control.cache/
|
||||||
|
Package Control.ca-certs/
|
||||||
|
Package Control.merged-ca-bundle
|
||||||
|
Package Control.user-ca-bundle
|
||||||
|
oscrypto-ca-bundle.crt
|
||||||
|
bh_unicode_properties.cache
|
||||||
|
|
||||||
|
# Sublime-github package stores a github token in this file
|
||||||
|
# https://packagecontrol.io/packages/sublime-github
|
||||||
|
GitHub.sublime-settings
|
||||||
|
|
||||||
|
##### Notepad++
|
||||||
|
# Notepad++ backups #
|
||||||
|
*.bak
|
||||||
|
|
||||||
|
##### TextMate
|
||||||
|
*.tmproj
|
||||||
|
*.tmproject
|
||||||
|
tmtags
|
||||||
|
|
||||||
|
##### VisualStudioCode
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
|
||||||
|
##### NetBeans
|
||||||
|
**/nbproject/private/
|
||||||
|
**/nbproject/Makefile-*.mk
|
||||||
|
**/nbproject/Package-*.bash
|
||||||
|
build/
|
||||||
|
nbbuild/
|
||||||
|
dist/
|
||||||
|
nbdist/
|
||||||
|
.nb-gradle/
|
||||||
|
|
||||||
|
##### JetBrains
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
##### Eclipse
|
||||||
|
.metadata
|
||||||
|
bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
.recommenders
|
||||||
|
|
||||||
|
# External tool builders
|
||||||
|
.externalToolBuilders/
|
||||||
|
|
||||||
|
# Locally stored "Eclipse launch configurations"
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
# PyDev specific (Python IDE for Eclipse)
|
||||||
|
*.pydevproject
|
||||||
|
|
||||||
|
# CDT-specific (C/C++ Development Tooling)
|
||||||
|
.cproject
|
||||||
|
|
||||||
|
# CDT- autotools
|
||||||
|
.autotools
|
||||||
|
|
||||||
|
# Java annotation processor (APT)
|
||||||
|
.factorypath
|
||||||
|
|
||||||
|
# PDT-specific (PHP Development Tools)
|
||||||
|
.buildpath
|
||||||
|
|
||||||
|
# sbteclipse plugin
|
||||||
|
.target
|
||||||
|
|
||||||
|
# Tern plugin
|
||||||
|
.tern-project
|
||||||
|
|
||||||
|
# TeXlipse plugin
|
||||||
|
.texlipse
|
||||||
|
|
||||||
|
# STS (Spring Tool Suite)
|
||||||
|
.springBeans
|
||||||
|
|
||||||
|
# Code Recommenders
|
||||||
|
.recommenders/
|
||||||
|
|
||||||
|
# Annotation Processing
|
||||||
|
.apt_generated/
|
||||||
|
.apt_generated_test/
|
||||||
|
|
||||||
|
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||||
|
.cache-main
|
||||||
|
.scala_dependencies
|
||||||
|
.worksheet
|
||||||
|
|
||||||
|
# Uncomment this line if you wish to ignore the project description file.
|
||||||
|
# Typically, this file would be tracked if it contains build/dependency configurations:
|
||||||
|
#.project
|
||||||
|
|
||||||
|
##### Dreamweaver
|
||||||
|
# DW Dreamweaver added files
|
||||||
|
_notes
|
||||||
|
_compareTemp
|
||||||
|
configs/
|
||||||
|
dwsync.xml
|
||||||
|
dw_php_codehinting.config
|
||||||
|
*.mno
|
||||||
|
|
||||||
|
##### CodeKit
|
||||||
|
# General CodeKit files to ignore
|
||||||
|
config.codekit
|
||||||
|
config.codekit3
|
||||||
|
/min
|
||||||
|
|
||||||
|
##### Gradle
|
||||||
|
.gradle
|
||||||
|
**/build/
|
||||||
|
!src/**/build/
|
||||||
|
|
||||||
|
# Ignore Gradle GUI config
|
||||||
|
gradle-app.setting
|
||||||
|
|
||||||
|
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||||
|
!gradle-wrapper.jar
|
||||||
|
|
||||||
|
# Cache of project
|
||||||
|
.gradletasknamecache
|
||||||
|
|
||||||
|
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
||||||
|
# gradle/wrapper/gradle-wrapper.properties
|
||||||
|
|
||||||
|
##### Composer
|
||||||
|
composer.phar
|
||||||
|
/vendor/
|
||||||
|
|
||||||
|
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
|
||||||
|
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
||||||
|
composer.lock
|
||||||
|
|
||||||
|
##### PHP CodeSniffer
|
||||||
|
# gitignore for the PHP Codesniffer framework
|
||||||
|
# website: https://github.com/squizlabs/PHP_CodeSniffer
|
||||||
|
#
|
||||||
|
# Recommended template: PHP.gitignore
|
||||||
|
|
||||||
|
/wpcs/*
|
||||||
|
|
||||||
|
##### SASS
|
||||||
|
.sass-cache/
|
||||||
|
*.css.map
|
||||||
|
*.sass.map
|
||||||
|
*.scss.map
|
||||||
|
|
||||||
|
php/.idea/
|
||||||
|
|
||||||
|
##### Images :
|
||||||
|
php/public/uploads/
|
Binary file not shown.
After Width: | Height: | Size: 226 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 515 B |
After Width: | Height: | Size: 58 KiB |
@ -0,0 +1,102 @@
|
|||||||
|
.three-body {
|
||||||
|
--uib-size: 500px;
|
||||||
|
--uib-speed: 0.8s;
|
||||||
|
--uib-color: #00DBFF;
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
height: var(--uib-size);
|
||||||
|
width: var(--uib-size);
|
||||||
|
animation: spin78236 calc(var(--uib-speed) * 2.5) infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot {
|
||||||
|
position: absolute;
|
||||||
|
height: 100%;
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
height: 0;
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 100%;
|
||||||
|
background-color: var(--uib-color);
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(1) {
|
||||||
|
bottom: 5%;
|
||||||
|
left: 0;
|
||||||
|
transform: rotate(60deg);
|
||||||
|
transform-origin: 50% 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(1)::after {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: wobble1 var(--uib-speed) infinite ease-in-out;
|
||||||
|
animation-delay: calc(var(--uib-speed) * -0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(2) {
|
||||||
|
bottom: 5%;
|
||||||
|
right: 0;
|
||||||
|
transform: rotate(-60deg);
|
||||||
|
transform-origin: 50% 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(2)::after {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: wobble1 var(--uib-speed) infinite
|
||||||
|
calc(var(--uib-speed) * -0.15) ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(3) {
|
||||||
|
bottom: -5%;
|
||||||
|
left: 0;
|
||||||
|
transform: translateX(116.666%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.three-body__dot:nth-child(3)::after {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: wobble2 var(--uib-speed) infinite ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin78236 {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes wobble1 {
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
transform: translateY(0%) scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translateY(-66%) scale(0.65);
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes wobble2 {
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
transform: translateY(0%) scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translateY(66%) scale(0.65);
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
img
|
||||||
|
{
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body{
|
||||||
|
margin: 0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#titleDiv
|
||||||
|
{
|
||||||
|
background-image:url('../assets/deb.webp');
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
background-position: center;
|
||||||
|
color :white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title p
|
||||||
|
{
|
||||||
|
background-color: grey;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title
|
||||||
|
{
|
||||||
|
font-size: 20px;
|
||||||
|
padding: 20px;
|
||||||
|
height: 70%;
|
||||||
|
align-items: center;
|
||||||
|
color: white;
|
||||||
|
background-color: #00DBFF;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#key {
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
#key p
|
||||||
|
{
|
||||||
|
background-color: grey;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding:10%;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
.offre-container {
|
||||||
|
margin-bottom: 5%;
|
||||||
|
}
|
||||||
|
.offre-img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#titrePrincipal {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-button {
|
||||||
|
background-color: #00DBFF;
|
||||||
|
border-color: #00DBFF;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row1
|
||||||
|
{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.row1 h4
|
||||||
|
{
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.row1 img
|
||||||
|
{
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authorDate
|
||||||
|
{
|
||||||
|
color: #00DBFF;
|
||||||
|
margin: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row3 {
|
||||||
|
width: 30%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row3 img {
|
||||||
|
align-self: flex-start;
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\gateway;
|
||||||
|
use PDO;
|
||||||
|
class ProfilGateway
|
||||||
|
{
|
||||||
|
private \App\gateway\Connection $con;
|
||||||
|
/**
|
||||||
|
* @param Connection $con
|
||||||
|
*/
|
||||||
|
public function __construct(\App\gateway\Connection $con)
|
||||||
|
{
|
||||||
|
$this->con = $con;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert(int $alumni,string $nom, string $prenom, string $email)
|
||||||
|
{
|
||||||
|
$query = 'INSERT INTO Profil (alumni,nom, prenom,email) VALUES (:alumni,:nom, :prenom,:email)';
|
||||||
|
return $this->con->executeQuery($query, array(
|
||||||
|
':alumni' => array($alumni, PDO::PARAM_INT),
|
||||||
|
':nom' => array($nom, PDO::PARAM_STR),
|
||||||
|
':prenom' => array($prenom, PDO::PARAM_STR),
|
||||||
|
':email' => array($email, PDO::PARAM_STR)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getProfilById($id)
|
||||||
|
{
|
||||||
|
$query = 'SELECT * FROM Profil WHERE Alumni=:i';
|
||||||
|
$this->con->executeQuery($query, array(
|
||||||
|
':i' => array($id, PDO::PARAM_INT)
|
||||||
|
));
|
||||||
|
return $this->con->getResults();
|
||||||
|
}
|
||||||
|
}
|
@ -1,53 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\modele;
|
|
||||||
|
|
||||||
use App\gateway\Connection;
|
|
||||||
use App\metier\Image;
|
|
||||||
use App\gateway\ImageGateway;
|
|
||||||
class ImageModele
|
|
||||||
{
|
|
||||||
private ImageGateway $gw;
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->gw = new ImageGateway(new Connection("mysql:host=localhost;dbname=dbAlica","test","test"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function publierImage() : Image
|
|
||||||
{
|
|
||||||
$img = new Image($this->gw->getNewId(),
|
|
||||||
$_FILES["image"]["name"],
|
|
||||||
$_FILES["image"]["size"],
|
|
||||||
$_FILES["image"]["type"],
|
|
||||||
file_get_contents($_FILES["image"]["tmp_name"]));
|
|
||||||
|
|
||||||
$this->gw->insertImage($img);
|
|
||||||
|
|
||||||
return $img;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function insertImage(Image $img)
|
|
||||||
{
|
|
||||||
$this->gw->insertImage($img);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function obtenirParId(int $id)
|
|
||||||
{
|
|
||||||
$this->gw->obtenirParId($id);
|
|
||||||
$res = $this->gw->obtenirToutesImages();
|
|
||||||
return new Image($id ,$res[0]['nom'], $res[0]['taille'], $res[0]['type'], $res[0]['blob']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function obtenirToutesImages() : array
|
|
||||||
{
|
|
||||||
$this->gw->obtenirToutesImages();
|
|
||||||
$res = $this->gw->obtenirToutesImages();
|
|
||||||
|
|
||||||
foreach ($res as $r) {
|
|
||||||
$array[] = new Image($this->gw->getNewId(),$r['nom'], $r['taille'], $r['type'], $r['blob']);
|
|
||||||
}
|
|
||||||
return $array;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,125 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" xmlns="http://www.w3.org/1999/html">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Publier une Offre</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
{% include "menu.html" %}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mt-4">
|
||||||
|
<h1>Publier Une Offre</h1>
|
||||||
|
|
||||||
|
<form style="background-color: #00DBFF" class="p-4" enctype="multipart/form-data" action="index.php?action=createOffer" method="post">
|
||||||
|
|
||||||
|
{% if tabError is defined %}
|
||||||
|
{% for error in tabError %}
|
||||||
|
<p style="color: red">{{ error }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
<p>Les champs contenant des astrérisques * sont obligatoires.</p>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Intitulé de l'offre*</label>
|
||||||
|
<input type="text" class="form-control" id="name" name="name" placeholder="Intitulé" maxlength="128" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="entreprise">Nom de l'entreprise :*</label>
|
||||||
|
<input type="text" class="form-control" id="entreprise" name="entreprise" placeholder="Entreprise" maxlength="64" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="description">Amorce :*</label>
|
||||||
|
<textarea class="form-control" id="description" name="description" placeholder="Description rapide" maxlength="200" required></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
<input type="checkbox" class="form-check-input" id="fullRemote" name="fullRemote" >
|
||||||
|
<label class="form-check-label" for="fullRemote">Full Remote</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="ville">Ville</label>
|
||||||
|
<input type="text" class="form-control" id="ville" name="ville" placeholder="Ville" required maxlength="100">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="choixContrat">Choisissez un type de contrat :*</label>
|
||||||
|
<select class="form-control" id="choixContrat" name="typeContrat">
|
||||||
|
<option value="CDI" selected>CDI</option>
|
||||||
|
<option value="CDD">CDD</option>
|
||||||
|
<option value="Alternance">Alternance</option>
|
||||||
|
<option value="Stage">Stage</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="descriptPoste">Descriptif du Poste :*</label>
|
||||||
|
<textarea class="form-control" id="descriptPoste" name="descriptPoste" placeholder="Description du Poste" required maxlength="2028"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="profilRecherche">Profil Recherché :*</label>
|
||||||
|
<textarea class="form-control" id="profilRecherche" name="profilRecherche" placeholder="Profil recherché" required maxlength="2028"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="choixExp">Experience Recherchée :*</label>
|
||||||
|
<select class="form-control" id="choixExp" name="choixExp" required>
|
||||||
|
<option value="Indifférent" selected>Indifferent</option>
|
||||||
|
<option value="Junior">Junior</option>
|
||||||
|
<option value="Senior">Senior</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="nivEtudes">Niveau d'études :*</label>
|
||||||
|
<select class="form-control" id="nivEtudes" name="education" required>
|
||||||
|
<option value="Indifférent" selected>Indifferent</option>
|
||||||
|
<option value="Bac+2">Bac+2</option>
|
||||||
|
<option value="Bac+3">Bac+3</option>
|
||||||
|
<option value="Bac+5">Bac+5</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="mail">Email de contact :*</label>
|
||||||
|
<input type="text" class="form-control" id="mail" name="mail" placeholder="Adresse de contact" maxlength="30" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="num">Numero de contact :*</label>
|
||||||
|
<input type="text" class="form-control" id="num" name="num" placeholder="Numéro de contact" required maxlength="10">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="site">Site web de l'annonce ou entreprise :</label>
|
||||||
|
<input type="text" class="form-control" id="site" name="site" placeholder="Adresse web" maxlength="40" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="image">Image*</label>
|
||||||
|
<input type="file" name="image" id="image" required>
|
||||||
|
<label for="logo">Logo d'entreprise*</label>
|
||||||
|
<input type="file" name="logo" id="logo" required>
|
||||||
|
<input type="submit" value="Publier L'annonce" name="submit" id="submit">
|
||||||
|
<p><i>Les images doivent être de type png, jpg, jpeg, bmp, webp & inférieures à 10MB</i></p>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- scripts : -->
|
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,145 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" xmlns="http://www.w3.org/1999/html">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Alica - Offres</title>
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="css/offres.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
{% include "menu.html" %}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="container mt-4 d-flex align-content-center ">
|
||||||
|
<div>
|
||||||
|
<a href="index.php?action=createOfferForm" type="button" class="btn btn-outline-success mb-4">Publier une offre</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container mt-4">
|
||||||
|
|
||||||
|
<div class="d-flex flex-column align-items-center">
|
||||||
|
<form action="index.php" method="get" class="form-inline flex-wrap mb-4">
|
||||||
|
<h2 class="mr-3">Filtrer les offres</h2>
|
||||||
|
|
||||||
|
<div class="form-group mr-3 flex-column justify-content-left">
|
||||||
|
<label for="typeContrat" class="text-left">Type de contrat :</label>
|
||||||
|
<div class="form-check ml-0">
|
||||||
|
<input class="form-check-input" type="radio" name="typeContrat" id="cdd" value="CDD" {% if typeContrat == "CDD" %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="cdd">CDD</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check ml-0">
|
||||||
|
<input class="form-check-input" type="radio" name="typeContrat" id="cdi" value="CDI" {% if typeContrat == "CDI" %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="cdi">CDI</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check ml-0">
|
||||||
|
<input class="form-check-input" type="radio" name="typeContrat" id="alternance" value="Alternance" {% if "Alternance" == typeContrat %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="alternance">Alternance</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check ml-0">
|
||||||
|
<input class="form-check-input" type="radio" name="typeContrat" id="stage" value="Stage" {% if "Stage" == typeContrat %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="stage">Stage</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group mr-3 flex-column">
|
||||||
|
<label for="experience">Expérience :</label>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="experience" id="junior" value="Junior" {% if "Junior" == experience %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="junior">Junior</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="experience" id="senior" value="Senior" {% if "Senior" == experience %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="senior">Senior</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group flex-column">
|
||||||
|
|
||||||
|
<label for="niveauEtudes">Niveau d'études :</label>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac2" value="Bac+2" {% if "Bac+2" == niveauEtudes %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="bac2">Bac+2</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac3" value="Bac+3" {% if "Bac+3" == niveauEtudes %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="bac3">Bac+3</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="niveauEtudes" id="bac5" value="Bac+5" {% if "Bac+5" == niveauEtudes %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="bac5">Bac+5</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Filtrer</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href="index.php?action=consultOffers" class="btn btn-info">Réinitialiser les filtres</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="titrePrincipal">Offres d'emploi</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-8 offset-md-2">
|
||||||
|
|
||||||
|
{% for offre in offres %}
|
||||||
|
<article class="mb-4">
|
||||||
|
<div class="row1">
|
||||||
|
<img src="uploads/{{offre.getLogo()}}" class="img-fluid rounded" alt="logo"> <!-- Ajoutez la classe "rounded" pour arrondir les coins -->
|
||||||
|
<h4>{{ offre.getNom() }}</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row2">
|
||||||
|
<p class="authorDate"><strong>Julien Martin | {{ offre.getDateStringFr()}}</strong></p>
|
||||||
|
<p>{{ offre.getDescription() }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row3">
|
||||||
|
<img src="assets/location.png" alt="location">
|
||||||
|
<p>{{offre.getVille()}}</p>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-outline-primary btn-sm mb-2 custom-button"
|
||||||
|
onclick="window.location.href = 'index.php?action=displayOffer&id={{offre.getId()}}';">En savoir plus >
|
||||||
|
</button>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<nav style="text-align: center;">
|
||||||
|
<nav style="text-align: center;">
|
||||||
|
{% if numberPages is defined %}
|
||||||
|
{% if currentPage is defined %}
|
||||||
|
{% for i in 1..numberPages %}
|
||||||
|
{% if i == currentPage %}
|
||||||
|
<!--
|
||||||
|
index.php?action=consultOffers&page={{ i }}&typeContrat={{ typeContrat }}&experience={{ experience }}&niveauEtudes={{ niveauEtudes }}
|
||||||
|
-->
|
||||||
|
<a href="index.php?action=consultOffers&page={{ i }}&{{valContrat}}{{valExp}}{{ValEtudes}}" class="active bg-danger">{{ i }}</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="index.php?action=consultOffers&page={{ i }}&{{valContrat}}{{valExp}}{{ValEtudes}}">{{ i }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Offre {{ offre.getNom() }}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,54 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Détails de l'Offre {{ offre.getNom() }}</title>
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<!-- Add your logo here -->
|
||||||
|
|
||||||
|
{% include "menu.html" %}
|
||||||
|
</header>
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1 class="display-4">Détails de l'Offre</h1>
|
||||||
|
<ul class="list-group">
|
||||||
|
<!-- Add an image related to the offer -->
|
||||||
|
|
||||||
|
<li class="list-group-item"></li><img src="uploads/{{offre.getLogo()}}" alt="Logo" class="img-thumbnail" style="max-height: 50px; max-width: 50px;"</li>
|
||||||
|
<li class="list-group-item"><img src="uploads/{{offre.getImg()}}" alt="Offer Image" class="img-fluid"></li>
|
||||||
|
<!--<li class="list-group-item"><strong>ID:</strong> {{ offre.getId() }}</li> -->
|
||||||
|
<li class="list-group-item"><strong>Offreur:</strong> {{ offre.getOffreur().getNom() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Nom de l'offre:</strong> {{ offre.getNom() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Entreprise :</strong> {{ offre.getEntreprise() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Description:</strong> {{ offre.getDescription() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Type de contrat:</strong> {{ offre.getTypeContrat() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Niveau d'études :</strong> {{ offre.getNiveauEtudes() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Ville:</strong> {{ offre.getVille() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Date de publication:</strong> {{ offre.getDateStringFr() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Descriptif Poste :</strong> {{ offre.getDescriptifPoste() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Profil recherché :</strong> {{ offre.getProfilSearched() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Site de L'annonce :</strong> {{ offre.getSiteUrl() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Mail de Contact : :</strong> {{ offre.getMailContact() }}</li>
|
||||||
|
<li class="list-group-item"><strong>Numéro de Contact :</strong> {{ offre.getNumero() }}</li>
|
||||||
|
|
||||||
|
<li class="list-group-item">
|
||||||
|
<strong>Full Remote :</strong>
|
||||||
|
{% if offre.isRemote() %}
|
||||||
|
Oui
|
||||||
|
{% else %}
|
||||||
|
Non
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Footer</title>
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-around">
|
||||||
|
|
||||||
|
<div style="background-color:#00DBFF">div 1</div>
|
||||||
|
|
||||||
|
<div style="background-color:#00DBFF">
|
||||||
|
<h3>Association</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="background-color:#00DBFF">
|
||||||
|
<h3>Aide</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="text-center">© Copyright 2023, All Rights Reserved by Alica</p>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Success</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../public/css/inscription_success.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Inscription effectuée avec succès, vous pouvez désormais vous connecter</h1>
|
||||||
|
<p>Vous allez être redirigé vers la page de connexion dans 5 secondes</p>
|
||||||
|
<div class="three-body">
|
||||||
|
<div class="three-body__dot"></div>
|
||||||
|
<div class="three-body__dot"></div>
|
||||||
|
<div class="three-body__dot"></div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function () {
|
||||||
|
window.location.href = "../public/index.php?action=connection";
|
||||||
|
}, 5000);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Alica - Offres</title>
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||||
|
<style>
|
||||||
|
.offre-container {
|
||||||
|
margin-bottom: 5%;
|
||||||
|
}
|
||||||
|
.offre-img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#titrePrincipal {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-button {
|
||||||
|
background-color: #00DBFF;
|
||||||
|
border-color: #00DBFF;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
{% include "menu.html" %}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="container mt-4">
|
||||||
|
<h1 id="titrePrincipal">Offres d'emploi</h1>
|
||||||
|
|
||||||
|
{% for offre in offers %}
|
||||||
|
<div class="offre-container">
|
||||||
|
<div class="row">
|
||||||
|
<!-- Première ligne -->
|
||||||
|
<div class="col-12 col-md-3">
|
||||||
|
<img src="data:image/png;base64,{{ offre.getImg().getBlob() | base64 }}" class="offre-img">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-9">
|
||||||
|
<h3>{{ offre.getNom() }}</h3>
|
||||||
|
<p>Julien Martin</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<p class="text-left">{{ offre.getDescription() }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Quatrième ligne (Localisation) -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1">
|
||||||
|
<img src="assets/location.png" class="img-fluid" title="ville">
|
||||||
|
</div>
|
||||||
|
<div class="col-11">
|
||||||
|
<p>{{ offre.getVille() }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-outline-primary btn-sm mb-2 custom-button"
|
||||||
|
onclick="window.location.href = 'index.php?action=displayOffer&id={{offre.getId()}}';">En savoir plus ></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if pages is defined %}
|
||||||
|
|
||||||
|
{% for page in pages %}
|
||||||
|
<a href="index.php?action=displayOffers&page={{page}}">{{page}}</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Test Img</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form name="form" action="index.php?action=publierOffre" method="post" enctype="multipart/form-data">
|
||||||
|
|
||||||
|
<label>Image:</label>
|
||||||
|
<input type="file" name="image" id="image">
|
||||||
|
<input type="submit" value="Publier L'annonce" name="submit">
|
||||||
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in new issue