summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-03-24 19:30:30 +0100
committerDebulois <quentin@debulois.fr>2022-03-24 19:30:30 +0100
commitc9d4c87b21f1050a780f5296961d24bd17c9cdc8 (patch)
tree38f8b221d21ec7642ee031c906599058a75e5fac
parentf66e40340d62b5c694093bc6d10f99337382d12a (diff)
Grosse mise à jour, principalement changement du système des missions et de "mes missions".
-rw-r--r--Anciennes_versions_de_l_exercice.zipbin0 -> 1217591 bytes
-rw-r--r--Database/dbmain.php17
-rw-r--r--Database/meth_dbadmin.php56
-rw-r--r--Database/meth_dbmission.php147
-rw-r--r--Database/meth_dbsearch.php104
-rw-r--r--Database/meth_dbuser.php90
-rw-r--r--Documents_et_infos/Bdd_mysql/mld_bdd_original.pngbin41354 -> 0 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwbbin13705 -> 13489 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bakbin13611 -> 13654 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.pngbin48598 -> 46231 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.sql1
-rw-r--r--Statics/Css/main.css30
-rw-r--r--Statics/Js/index.js22
-rw-r--r--Statics/Js/message.js4
-rw-r--r--Statics/Js/myMission.js11
-rw-r--r--Views/Includes/en/message.php281
-rw-r--r--Views/Includes/en/table.php91
-rw-r--r--Views/Includes/en/text.php38
-rw-r--r--Views/Includes/fr/message.php281
-rw-r--r--Views/Includes/fr/table.php91
-rw-r--r--Views/Includes/fr/text.php40
-rw-r--r--Views/Includes/incl_form_admin.php26
-rw-r--r--Views/Includes/incl_form_mission.php89
-rw-r--r--Views/Includes/incl_form_register.php6
-rw-r--r--Views/Includes/incl_form_userInfo.php12
-rw-r--r--Views/Includes/incl_global_message.php13
-rw-r--r--Views/Includes/incl_global_navbar.php35
-rw-r--r--Views/Includes/incl_index_search.php129
-rw-r--r--Views/Includes/incl_index_slideshow.php16
-rw-r--r--Views/Includes/incl_table_myMission.php147
-rw-r--r--Views/admin.php4
-rw-r--r--Views/message.php2
-rw-r--r--Views/mission.php8
-rw-r--r--Views/myMission.php10
-rw-r--r--Wrapper/Functions/func_admin.php18
-rw-r--r--Wrapper/Functions/func_info.php20
-rw-r--r--Wrapper/Functions/func_login.php10
-rw-r--r--Wrapper/Functions/func_logout.php4
-rw-r--r--Wrapper/Functions/func_mission.php40
-rw-r--r--Wrapper/Functions/func_myMission.php47
-rw-r--r--Wrapper/Functions/func_register.php12
-rw-r--r--Wrapper/Functions/func_search.php42
-rw-r--r--Wrapper/wrapper.php279
-rw-r--r--index.php2
-rw-r--r--todo.txt6
45 files changed, 1546 insertions, 735 deletions
diff --git a/Anciennes_versions_de_l_exercice.zip b/Anciennes_versions_de_l_exercice.zip
new file mode 100644
index 0000000..4f69087
--- /dev/null
+++ b/Anciennes_versions_de_l_exercice.zip
Binary files differ
diff --git a/Database/dbmain.php b/Database/dbmain.php
index 262c55a..1f1ac24 100644
--- a/Database/dbmain.php
+++ b/Database/dbmain.php
@@ -32,9 +32,7 @@ class DbMain {
`password` VARCHAR(128) NOT NULL,
`tokenAutoLogin` VARCHAR(128) NULL DEFAULT NULL,
`inscriptionDate` TIMESTAMP NOT NULL,
- `isClient` TINYINT(1) NOT NULL,
- `isPro` TINYINT(1) NOT NULL,
- `isAdmin` TINYINT(1) NOT NULL,
+ `userStatus` TINYINT(1) UNSIGNED NOT NULL,
PRIMARY KEY (`userId`)
)
ENGINE = InnoDB
@@ -48,7 +46,6 @@ class DbMain {
`adress` VARCHAR(128) NOT NULL,
`zipCode` VARCHAR(6) NOT NULL,
`city` VARCHAR(128) NOT NULL,
- `job` VARCHAR(128) NULL DEFAULT NULL,
`degree` VARCHAR(128) NULL DEFAULT NULL,
`capability` TEXT NULL DEFAULT NULL,
`description` TEXT NULL DEFAULT NULL,
@@ -83,12 +80,12 @@ class DbMain {
CONSTRAINT `fk_userJob_userId`
FOREIGN KEY (`userId`)
REFERENCES `alphajob`.`userAccount` (`userId`)
- ON DELETE NO ACTION
+ ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_userJob_jobCategoryId`
FOREIGN KEY (`jobCategoryId`)
REFERENCES `alphajob`.`jobCategory` (`jobCategoryId`)
- ON DELETE NO ACTION
+ ON DELETE CASCADE
ON UPDATE CASCADE
)
ENGINE = InnoDB
@@ -99,7 +96,7 @@ class DbMain {
`missionId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`date` TIMESTAMP NOT NULL,
`subject` VARCHAR(128) NULL DEFAULT NULL,
- `note` INT UNSIGNED NULL DEFAULT NULL,
+ `note` TINYINT(1) UNSIGNED NULL DEFAULT NULL,
`review` TEXT NULL DEFAULT NULL,
`acceptedByPro` TIMESTAMP NULL DEFAULT NULL,
`validatedByClient` TIMESTAMP NULL DEFAULT NULL,
@@ -114,17 +111,17 @@ class DbMain {
CONSTRAINT `fk_mission_clientId`
FOREIGN KEY (`clientId`)
REFERENCES `alphajob`.`userAccount` (`userId`)
- ON DELETE NO ACTION
+ ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_mission_proId`
FOREIGN KEY (`proId`)
REFERENCES `alphajob`.`userAccount` (`userId`)
- ON DELETE NO ACTION
+ ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_mission_jobCategoryId`
FOREIGN KEY (`jobCategoryId`)
REFERENCES `alphajob`.`jobCategory` (`jobCategoryId`)
- ON DELETE NO ACTION
+ ON DELETE CASCADE
ON UPDATE CASCADE
)
ENGINE = InnoDB
diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php
index 883063b..112bce1 100644
--- a/Database/meth_dbadmin.php
+++ b/Database/meth_dbadmin.php
@@ -11,7 +11,11 @@ class DbAdmin extends DbMain {
// Récupérer toutes les infos de la table userAccount
final public function get_all_users_account() {
- $reqGetAll = "SELECT * FROM ".$this->tableUserAccount;
+ $reqGetAll = "
+ SELECT
+ *
+ FROM
+ ".$this->tableUserAccount;
// https://www.php.net/manual/fr/pdostatement.fetch.php
// "PDO::FETCH_ASSOC: retourne un tableau indexé
// par le nom de la colonne comme retourné dans le jeu de résultats"
@@ -24,7 +28,14 @@ class DbAdmin extends DbMain {
final public function user_del($userId) {
// Préparation de la requète pour voir si l'utilisateur existe
// https://stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table
- $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableUserAccount." WHERE userId = ? LIMIT 1)";
+ $reqCheckExistId = "
+ SELECT EXISTS(
+ SELECT 1 FROM
+ ".$this->tableUserAccount."
+ WHERE
+ userId = ?
+ LIMIT 1
+ )";
// Exécution de la requète, fetchall pour avoir le résultat
// https://www.php.net/manual/fr/pdostatement.fetch.php
// struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
@@ -48,20 +59,36 @@ class DbAdmin extends DbMain {
// Ajout d'une categorie
final public function job_category_register($jobCategoryNameEn, $jobCategoryNameFr) {
// Préparation et execution de la requète pour voir si la categorie existe en anglais
- $reqCheckjobCategoryNameEn = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameEn = ? LIMIT 1)";
+ $reqCheckjobCategoryNameEn = "
+ SELECT EXISTS(
+ SELECT 1 FROM
+ ".$this->tableJobCategory."
+ WHERE
+ jobCategoryNameEn = ?
+ LIMIT 1
+ )";
$reqResultEn = $this->exec_cmd($reqCheckjobCategoryNameEn, array($jobCategoryNameEn))->fetchAll(PDO::FETCH_NUM);
// Si il n'existe pas en anglais
if (!$reqResultEn[0][0]) {
// Préparation et execution de la requète pour voir si la categorie existe en Français
- $reqCheckjobCategoryNameFr = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameFr = ? LIMIT 1)";
+ $reqCheckjobCategoryNameFr = "
+ SELECT EXISTS(
+ SELECT 1 FROM
+ ".$this->tableJobCategory."
+ WHERE
+ jobCategoryNameFr = ?
+ LIMIT 1
+ )";
$reqResultFr = $this->exec_cmd($reqCheckjobCategoryNameFr, array($jobCategoryNameFr))->fetchAll(PDO::FETCH_NUM);
// Si il n'existe pas en Français non plus
if (!$reqResultFr[0][0]) {
// Préparation de la requète pour l'ajout
- $reqjobCategoryNameAdd = "INSERT INTO ".$this->tableJobCategory."
- (jobCategoryNameEn, jobCategoryNameFr)
+ $reqjobCategoryNameAdd = "
+ INSERT INTO
+ ".$this->tableJobCategory."
+ (jobCategoryNameEn, jobCategoryNameFr)
VALUES
- (? ,?)";
+ (? ,?)";
// Exécution de la requète
$this->exec_cmd($reqjobCategoryNameAdd, array($jobCategoryNameEn, $jobCategoryNameFr));
// Retourne 1 pour réussite
@@ -79,7 +106,14 @@ class DbAdmin extends DbMain {
// Suppresion d'un utilisateur
final public function job_category_del($jobCategoryId) {
// Préparation de la requète pour voir si l'utilisateur existe
- $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryId = ? LIMIT 1)";
+ $reqCheckExistId = "
+ SELECT EXISTS(
+ SELECT 1 FROM
+ ".$this->tableJobCategory."
+ WHERE
+ jobCategoryId = ?
+ LIMIT 1
+ )";
// Exécution de la requète, fetchall pour avoir le résultat
// struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
// fetch_num pour casser l'index "req" en chiffre, dict -> list
@@ -87,7 +121,11 @@ class DbAdmin extends DbMain {
// Si il existe
if ($reqResult[0][0]) {
// Préparation de la requète pour suppression
- $reqDelJobCategory = "DELETE FROM ".$this->tableJobCategory." WHERE jobCategoryId = ?";
+ $reqDelJobCategory = "
+ DELETE FROM
+ ".$this->tableJobCategory."
+ WHERE
+ jobCategoryId = ?";
// Exécution de la requète
$this->exec_cmd($reqDelJobCategory, array($jobCategoryId));
// Retourne 1 pour réussite
diff --git a/Database/meth_dbmission.php b/Database/meth_dbmission.php
index f39f0b6..92f8690 100644
--- a/Database/meth_dbmission.php
+++ b/Database/meth_dbmission.php
@@ -12,48 +12,125 @@ require_once(dirname( __FILE__ )."/dbmain.php");
class DbMission extends DbMain {
// Enregistrement d'une mission
- final public function register_mission($subject, $note, $review, $clientId, $proId) {
- // Vérification de l'existance de l'id de consultant
- $exist = $this->check_exist_pro($proId);
- // Si il existe
- if ($exist) {
- // Préparation de la requète pour enregistrement de la mission
- $reqAddMission = "INSERT INTO ".$this->tableMission."
- (date, subject, note, review, clientId, proId)
- VALUES (?, ?, ?, ?, ?, ?)";
- // Exécution de la requète
- $this->exec_cmd($reqAddMission,
- array(date("Y-m-d H:i:s"), $subject,
- $note, $review,
- $clientId, $proId
- )
- );
- // Retourne 1 pour réussite
- return 1;
- } else {
- // Retourne 0 pour échec
- return 0;
- }
+ final public function register_mission($subject, $clientId, $proId, $jobId) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "
+ INSERT INTO ".$this->tableMission."
+ (date, subject, clientId, proId, jobCategoryId)
+ VALUES
+ (?, ?, ?, ?, ?)";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $subject, $clientId, $proId, $jobId));
+ return 1;
+ }
+
+ // Enregistrement d'une mission
+ final public function accept_mission($missionId) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "
+ UPDATE
+ ".$this->tableMission."
+ SET
+ acceptedByPro = ?
+ WHERE
+ missionId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
+ return 1;
+ }
+
+ final public function validate_mission_by_pro($missionId) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "
+ UPDATE
+ ".$this->tableMission."
+ SET
+ validatedByPro = ?
+ WHERE
+ missionId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
+ return 1;
+ }
+
+ final public function validate_mission_by_client($missionId) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "
+ UPDATE
+ ".$this->tableMission."
+ SET
+ validatedByClient = ?
+ WHERE
+ missionId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
+ return 1;
+ }
+
+ final public function review_mission($missionId, $review, $note) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "
+ UPDATE
+ ".$this->tableMission."
+ SET
+ review = ?, note = ?
+ WHERE
+ missionId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission, array($review, $note, $missionId));
+ return 1;
}
// Récupérations des missions d'un pro par son id
- final public function get_mission_by_id($id) {
- $reqGetAllMission = "SELECT subject, note, review, lastname FROM ".$this->tableMission."
- LEFT JOIN ".$this->tableUserInfo."
- ON ".$this->tableMission.".missionId = ".$this->tableUserInfo.".userId
- WHERE proId = ?";
- $result = $this->exec_cmd($reqGetAllMission, array($id))->fetchAll(PDO::FETCH_ASSOC);
+ final public function get_mission_by_pro_id($proId) {
+ $reqGetAllMission = "
+ SELECT
+ missionId, date, subject, note, review,
+ acceptedByPro, validatedByClient,
+ validatedByPro, jobCategoryId, proId, lastname
+ FROM
+ ".$this->tableMission."
+ LEFT JOIN
+ ".$this->tableUserInfo."
+ ON
+ ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
+ WHERE
+ proId = ?";
+ $result = $this->exec_cmd($reqGetAllMission, array($proId))->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
- // Compte le nombre de mission d'un consultant par son nom
- final public function count_pro_missions_by_lastname($name) {
- $reqCountMission = "SELECT COUNT(*) FROM ".$this->tableMission."
- INNER JOIN ".$this->tableUserInfo."
- ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
- WHERE lastname = ?";
- $result = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
+ // Récupérations des missions d'un client par son id
+ final public function get_mission_by_client_id($clientId) {
+ $reqGetAllMission = "
+ SELECT
+ missionId, date, subject, note, review,
+ acceptedByPro, validatedByClient,
+ validatedByPro, jobCategoryId, lastname
+ FROM
+ ".$this->tableMission."
+ LEFT JOIN
+ ".$this->tableUserInfo."
+ ON
+ ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
+ WHERE
+ clientId = ?";
+ $result = $this->exec_cmd($reqGetAllMission, array($clientId))->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
+ // Compte le nombre de mission d'un consultant par son nom
+ final public function count_pro_missions_by_id($proId) {
+ $reqCountMission = "
+ SELECT COUNT(*) FROM
+ ".$this->tableMission."
+ INNER JOIN
+ ".$this->tableUserInfo."
+ ON
+ ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
+ WHERE
+ proId = ?";
+ $result = $this->exec_cmd($reqCountMission, array($proId))->fetchAll(PDO::FETCH_NUM);
+ return $result;
+ }
} \ No newline at end of file
diff --git a/Database/meth_dbsearch.php b/Database/meth_dbsearch.php
index 5104d15..7557583 100644
--- a/Database/meth_dbsearch.php
+++ b/Database/meth_dbsearch.php
@@ -13,58 +13,108 @@ class DbSearch extends DbMain {
// Récupération des infos d'un compte par son id
final public function get_user_account_by_id($id) {
- $reqSearchUser = "SELECT userId, email, inscriptionDate, isClient, isPro, isAdmin
- FROM ".$this->tableUserAccount." WHERE userId = ?";
+ $reqSearchUser = "
+ SELECT
+ userId, email, inscriptionDate, userStatus
+ FROM
+ ".$this->tableUserAccount."
+ WHERE
+ userId = ?";
$result = $this->exec_cmd($reqSearchUser, array($id))->fetch(PDO::FETCH_ASSOC);
return $result;
}
// Récupération des infos d'un utilisateur par son id
final public function get_user_info_by_id($id) {
- $reqGetUserInfo = "SELECT lastname, firstname, job, degree,
- capability, description, phoneNumber,
- adress, zipCode, city
- FROM ".$this->tableUserInfo." WHERE userId = ?";
+ $reqGetUserInfo = "
+ SELECT
+ userId, lastname, firstname, degree,
+ capability, description, phoneNumber,
+ adress, zipCode, city
+ FROM
+ ".$this->tableUserInfo."
+ WHERE
+ userId = ?";
$result = $this->exec_cmd($reqGetUserInfo, array($id))->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
// Récupération des infos d'un pro par son nom
final public function get_pro_info_by_lastname($research) {
- $reqSearchConsultant = "SELECT ".$this->tableUserInfo.".userId, lastname, firstname, job, capability
- FROM ".$this->tableUserInfo."
- INNER JOIN ".$this->tableUserAccount."
- ON ".$this->tableUserInfo.".userId = ".$this->tableUserAccount.".userId
- WHERE isPro = '1' AND lastname LIKE CONCAT('%', ?, '%')";
+ $reqSearchConsultant = "
+ SELECT
+ ".$this->tableUserInfo.".userId,
+ lastname, firstname, capability
+ FROM
+ ".$this->tableUserInfo."
+ INNER JOIN
+ ".$this->tableUserAccount."
+ ON
+ ".$this->tableUserInfo.".userId = ".$this->tableUserAccount.".userId
+ WHERE
+ userStatus = '1'
+ AND
+ lastname LIKE CONCAT('%', ?, '%')";
$result = $this->exec_cmd($reqSearchConsultant, array($research))->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
// Récupération des emploies associés à un pro
- final public function get_pro_job_category($id) {
- $reqGetAll = "SELECT jobCategoryId FROM ".$this->tableUserJob." WHERE userId = ?";
- $result = $this->exec_cmd($reqGetAll, array($id))->fetchAll(PDO::FETCH_NUM);
- $proJobs = [];
- for ($i = 0; $i < count($result); $i++) {
- array_push($proJobs, $result[$i][0]);
- }
- return $proJobs;
+ final public function get_pro_job_category($proId) {
+ $reqGetAll = "
+ SELECT
+ ".$this->tableUserJob.".jobCategoryId,
+ jobCategoryNameEn, jobCategoryNameFr
+ FROM
+ ".$this->tableUserJob."
+ INNER JOIN
+ ".$this->tableJobCategory."
+ ON
+ ".$this->tableUserJob.".jobCategoryId = ".$this->tableJobCategory.".jobCategoryId
+ WHERE
+ userId = ?";
+ $result = $this->exec_cmd($reqGetAll, array($proId))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
// Récupération des notes d'un consultant par son nom
- final public function get_pro_note_by_lastname($name) {
- $reqCountMission = "SELECT note FROM ".$this->tableMission."
- INNER JOIN ".$this->tableUserInfo."
- ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
- WHERE lastname = ?";
- $result = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
+ final public function get_pro_note_by_id($proId) {
+ $reqCountMission = "
+ SELECT
+ note
+ FROM
+ ".$this->tableMission."
+ INNER JOIN
+ ".$this->tableUserInfo."
+ ON
+ ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
+ WHERE
+ proId = ?";
+ $result = $this->exec_cmd($reqCountMission, array($proId))->fetchAll(PDO::FETCH_NUM);
return $result;
}
// Récupérer toutes les infos de la table jobCategory
final public function get_job_category_all() {
- $reqGetAll = "SELECT * FROM ".$this->tableJobCategory;
- $result = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ $reqGetAllJobs = "
+ SELECT
+ *
+ FROM
+ ".$this->tableJobCategory;
+ $result = $this->exec_cmd($reqGetAllJobs, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
+ }
+
+ // Récupérer toutes les infos de la table jobCategory
+ final public function get_job_category_by_id($jobId) {
+ $reqGetJobinfo = "
+ SELECT
+ *
+ FROM
+ ".$this->tableJobCategory."
+ WHERE
+ jobCategoryId = ?";
+ $result = $this->exec_cmd($reqGetJobinfo, array($jobId))->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
}
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php
index 1b62b46..ea5c66e 100644
--- a/Database/meth_dbuser.php
+++ b/Database/meth_dbuser.php
@@ -12,9 +12,8 @@ class DbUser extends DbMain {
// ****************************************************************************
// Gestion d'un utilisateur
// ****************************************************************************
-
// Enregistrement d'un nouvel utilisateur
- final public function user_register($email, $pass, $is_client, $is_pro, $is_admin) {
+ final public function user_register($email, $pass, $userStatus) {
// On vérifie si l'email existe deja dans la bdd
$exist = $this->check_exist_email($email);
// Si non
@@ -22,18 +21,18 @@ class DbUser extends DbMain {
// Chiffrement du pass
$crypt = $this->crypt_pass($pass);
// Préparation de la requète
- $reqAddUser = "INSERT INTO ".$this->tableUserAccount."
- (email, password, inscriptionDate, isClient, isPro, isAdmin)
+ $reqAddUser = "
+ INSERT INTO
+ ".$this->tableUserAccount."
+ (email, password, inscriptionDate, userStatus)
VALUES
- (?, ?, ?, ?, ?, ?)";
+ (?, ?, ?, ?)";
// Execution de la requète
$this->exec_cmd($reqAddUser,
array($email,
$crypt,
date("Y-m-d H:i:s"),
- $is_client,
- $is_pro,
- $is_admin
+ $userStatus
)
);
// Retourne 1 pour réussite
@@ -47,8 +46,13 @@ class DbUser extends DbMain {
// Vérification de la combinaison email - pass pour authentification
final public function user_check_credential($email, $pass) {
// Préparation de la requète pour récupérer les infos ou l'email est présent
- $reqCheckCredential = "SELECT userId, password
- FROM ".$this->tableUserAccount." WHERE email = ? ";
+ $reqCheckCredential = "
+ SELECT
+ userId, password
+ FROM
+ ".$this->tableUserAccount."
+ WHERE
+ email = ? ";
// Chiffrement du mot de passe
$crypt = $this->crypt_pass($pass);
// Execution de la requète
@@ -67,24 +71,30 @@ class DbUser extends DbMain {
// J'ai préféré faire deux requètes distinctes et ne pas utiliser des valeurs
// passées par $POST ($key => $value) pour gérer les noms des colonnes
// car je préfère les passer en "dur" dans mes requêtes (risque d'injection SQL?).
- $reqAddInfoClient = "UPDATE ".$this->tableUserInfo."
- SET
- lastname = ?, firstname = ?, phoneNumber = ?,
- adress = ?, zipCode = ?, city = ?
- WHERE
- userId = ?";
- $reqAddInfoPro = "UPDATE ".$this->tableUserInfo."
- SET
- lastname = ?, firstname = ?, phoneNumber = ?,
- adress = ?, zipCode = ?, city = ?,
- degree = ?, capability = ?, description = ?
- WHERE
- userId = ?";
- $reqAddInfoProJobs = "INSERT INTO ".$this->tableUserJob."
+ $reqAddInfoClient = "
+ REPLACE INTO
+ ".$this->tableUserInfo."
+ (lastname, firstname, phoneNumber,
+ adress, zipCode, city, userId)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?)";
+ $reqAddInfoPro = "
+ REPLACE INTO
+ ".$this->tableUserInfo."
+ (lastname, firstname, phoneNumber,
+ adress, zipCode, city, degree,
+ capability, description, userId)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ $reqAddInfoProJobs = "
+ INSERT INTO
+ ".$this->tableUserJob."
(jobCategoryId, userId)
VALUES
(?, ?)";
- $reqRemoveInfoProJobs = "DELETE FROM ".$this->tableUserJob."
+ $reqRemoveInfoProJobs = "
+ DELETE FROM
+ ".$this->tableUserJob."
WHERE
jobCategoryId = ?
AND
@@ -95,7 +105,7 @@ class DbUser extends DbMain {
// Pour passer de dict a list -> array_values()
$args = array_values($userInfos);
array_push($args, $userId);
- $this->exec_cmd($reqAddInfoClient, array_push($args, $userId));
+ $this->exec_cmd($reqAddInfoClient, $args);
} else {
// TODO: Commenter
// https://stackoverflow.com/questions/15986235/how-to-use-json-stringify-and-json-decode-properly
@@ -118,12 +128,16 @@ class DbUser extends DbMain {
// ****************************************************************************
// Gestion du token-autologin
// ****************************************************************************
-
// Vérification de la combinaison email - jeton d'auto-login pour authentification
final public function autologin_token_check($email, $token) {
// Préparation de la requète pour récupérer les infos ou l'email est présent
- $reqCheckToken = "SELECT userId, tokenAutoLogin
- FROM ".$this->tableUserAccount." WHERE email = ?";
+ $reqCheckToken = "
+ SELECT
+ userId, tokenAutoLogin
+ FROM
+ ".$this->tableUserAccount."
+ WHERE
+ email = ?";
// Exécution de la requète
$result = $this->exec_cmd($reqCheckToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & jeton d'auto-connection
@@ -137,8 +151,13 @@ class DbUser extends DbMain {
// Mise à jour du jeton d'auto-login
final public function autologin_token_update($email, $token) {
// Préparation de la requète pour mise à jour du jeton d'auto-connection
- $reqUpdateToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = ?
- WHERE email = ?";
+ $reqUpdateToken = "
+ UPDATE
+ ".$this->tableUserAccount."
+ SET
+ tokenAutoLogin = ?
+ WHERE
+ email = ?";
// Execution de la requète
$this->exec_cmd($reqUpdateToken, array($token, $email))->fetchAll(PDO::FETCH_ASSOC);
}
@@ -146,8 +165,13 @@ class DbUser extends DbMain {
// Supression du jeton d'auto-login
final public function autologin_token_delete($email) {
// Préparation de la requète pour supression du jeton d'auto-connection
- $reqDeleteToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = NULL
- WHERE email = ?";
+ $reqDeleteToken = "
+ UPDATE
+ ".$this->tableUserAccount."
+ SET
+ tokenAutoLogin = NULL
+ WHERE
+ email = ?";
// Execution de la requète
$this->exec_cmd($reqDeleteToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
}
diff --git a/Documents_et_infos/Bdd_mysql/mld_bdd_original.png b/Documents_et_infos/Bdd_mysql/mld_bdd_original.png
deleted file mode 100644
index 228e677..0000000
--- a/Documents_et_infos/Bdd_mysql/mld_bdd_original.png
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
index 6d49548..570f173 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
index 7a6e7a2..fe7c98e 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
index ea9e271..d28858b 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
index dc0d445..1189648 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
@@ -93,7 +93,6 @@ CREATE TABLE IF NOT EXISTS `exophp`.`userInfo` (
`adress` VARCHAR(128) NOT NULL,
`zipCode` VARCHAR(6) NOT NULL,
`city` VARCHAR(128) NOT NULL,
- `job` VARCHAR(128) NULL DEFAULT NULL,
`degree` VARCHAR(128) NULL DEFAULT NULL,
`capability` TEXT NULL DEFAULT NULL,
`description` TEXT NULL DEFAULT NULL,
diff --git a/Statics/Css/main.css b/Statics/Css/main.css
index c3fe421..12e84e0 100644
--- a/Statics/Css/main.css
+++ b/Statics/Css/main.css
@@ -105,9 +105,9 @@ sur mon instance SearX https://searx.debulois.fr
transform: scale(1.3);
}
-.show {
+.show_slide {
/* Opacité de l'élément 0=transparent 1=opaque */
- opacity: 1 !important;
+ display: block !important;
}
/* FIN SLIDER */
@@ -130,6 +130,11 @@ sur mon instance SearX https://searx.debulois.fr
/* FIN MESSAGE */
/* TABLEAU */
+.show_table {
+ /* Opacité de l'élément 0=transparent 1=opaque */
+ display: table !important;
+}
+
.star {
/* !important prend le dessus sur tout type de déclaration précédente */
font-size: 20px !important;
@@ -248,7 +253,7 @@ pre {
/* FIN NAVBAR */
/* SLIDER */
-#slideshow {
+#slides {
width: 100%;
height: 70vh;
background-color: var(--navbarBg);
@@ -264,7 +269,7 @@ pre {
transition: background-image 0.3s linear;
}
-#slideshow p {
+#slides p {
position: absolute;
display: inline-block;
left: 0;
@@ -274,7 +279,8 @@ pre {
max-width: 80%;
font-size: 48px;
color: var(--slideText);
- opacity: 0;
+ /* opacity: 0; */
+ display: none;
/* Aniamtion liée */
animation-name: textSlide;
/* Durée de l'animation */
@@ -283,7 +289,7 @@ pre {
animation-iteration-count: infinite;
}
-#slideshow p span {
+#slides p span {
font-family: akira;
color: var(--mainSiteColor);
/* Ombre du texte: positionX, positionY, Etendue, Fondue */
@@ -296,12 +302,12 @@ pre {
/* Etapes de l'animation */
@keyframes textSlide {
- 0% {top: 30%}
+ 0% {top: 29%}
35% {top: 18%}
100% {top: 18%}
}
-#slideIndicator {
+#slideDots {
position: absolute;
/* Centrer un élément absolu, gauche moitié puis droite (moins moitié) */
left: 50%;
@@ -309,11 +315,11 @@ pre {
margin: 0 auto;
bottom: 10%;
}
-#slideIndicator i {
+#slideDots i {
margin-right: 1em;
}
-#slideIndicator i:last-child {
+#slideDots i:last-child {
margin-right: none;
}
/* FIN SLIDER */
@@ -412,6 +418,10 @@ pre {
margin: 1em auto;
}
+#myMission table {
+ display: none;
+}
+
#myMission th,
#admin th,
#search th {
diff --git a/Statics/Js/index.js b/Statics/Js/index.js
index 1c89567..805b53e 100644
--- a/Statics/Js/index.js
+++ b/Statics/Js/index.js
@@ -4,8 +4,8 @@
// ****************************************************************************
// Slideshow
-function start_slideshow() {
- let imageNumber = 1;
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
+function slideshow_start(slideNumber = 1) {
let images = [
"/Medias/Images/slide0.jpg",
"/Medias/Images/slide1.jpg",
@@ -14,20 +14,20 @@ function start_slideshow() {
setInterval(() => {
// Changement del'image de fond de de la div
- document.getElementById("slideshow").style.backgroundImage = `url("${images[imageNumber]}")`;
+ document.getElementById("slides").style.backgroundImage = `url("${images[slideNumber]}")`;
// Untoggle les précedents
// Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux
- document.getElementById(`textSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("show");
- document.getElementById(`indicatorSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("slideSelected");
+ document.getElementById(`slide_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("show_slide");
+ document.getElementById(`slideDot_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("slideSelected");
// Toggle le nouveau texte & selecteur
- document.getElementById(`textSlide${imageNumber}`).classList.toggle("show");
- document.getElementById(`indicatorSlide${imageNumber}`).classList.toggle("slideSelected")
+ document.getElementById(`slide_${slideNumber}`).classList.toggle("show_slide");
+ document.getElementById(`slideDot_${slideNumber}`).classList.toggle("slideSelected")
// +1 sauf si fin
- if(imageNumber < images.length - 1) {
- imageNumber++;
+ if (slideNumber < images.length - 1) {
+ slideNumber++;
} else {
- imageNumber = 0;
+ slideNumber = 0;
}
}
- ,5000);
+ , 3000);
}
diff --git a/Statics/Js/message.js b/Statics/Js/message.js
index 55eff48..fa8e675 100644
--- a/Statics/Js/message.js
+++ b/Statics/Js/message.js
@@ -15,10 +15,10 @@ function start_timer(page) {
let text = document.getElementById("redirect").innerHTML;
setInterval(() => {
if (seconds > 0) {
- document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
+ document.getElementById("redirect").innerHTML = `${text} ${seconds} .`;
seconds --;
} else {
- document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
+ document.getElementById("redirect").innerHTML = `${text} ${seconds} .`;
redirect(page);
}
},
diff --git a/Statics/Js/myMission.js b/Statics/Js/myMission.js
new file mode 100644
index 0000000..36c2648
--- /dev/null
+++ b/Statics/Js/myMission.js
@@ -0,0 +1,11 @@
+
+//table id pendingTable, ongoingTable, completedTable
+function show(tableId) {
+ let tables = document.getElementById("myMission").getElementsByTagName("table");
+ tables[tableId].classList.add("show_table");
+ for (i = 0; i < tables.length; i++) {
+ if (tables[i].id !== tableId) {
+ tables[i].classList.remove("show_table");
+ }
+ }
+} \ No newline at end of file
diff --git a/Views/Includes/en/message.php b/Views/Includes/en/message.php
index 50417a3..344b0b8 100644
--- a/Views/Includes/en/message.php
+++ b/Views/Includes/en/message.php
@@ -5,111 +5,196 @@
$success = "Success";
$error = "Error";
$redirect = "Redirecting in ";
-$message = [
- // Delete
- // 0 Message réussitee
- ["success" => true,
- "title" => "Delete an user.",
- "info" => "User deleted !",
- "timer" => true,
- "toSrc" => true],
- // 1 Message échec
- ["success" => false,
- "title" => "Delete an user.",
- "info" => "No user was deleted.",
- "timer" => true,
- "toSrc" => true],
+$messageText = [
// Informations de l'utilisateur
- // 2 Message réussitee
- ["success" => true,
- "title" => "Update user information.",
- "info" => "User informations updated !",
- "timer" => true,
- "toSrc" => true],
+ "infosUpdate" => [
+ "success" => [
+ "success" => true,
+ "title" => "Update user information.",
+ "info" => "User informations updated !",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Login sans cookie
- // 3 Message réussitee
- ["success" => true,
- "title" => "Login.",
- "info" => "Successfully logged in!",
- "timer" => true,
- "toSrc" => false],
- // 4 Message échec
- ["success" => false,
- "title" => "Login.",
- "info" => "Error bad credentials.",
- "timer" => true,
- "toSrc" => true],
+ "login" => [
+ "success" => [
+ "success" => true,
+ "title" => "Login.",
+ "info" => "Successfully logged in!",
+ "timer" => true,
+ "toSrc" => false
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Login.",
+ "info" => "Error bad credentials.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Login avec cookie
- // 5 Message réussitee
- ["success" => true,
- "title" => "",
- "info" => "",
- "timer" => false,
- "toSrc" => false],
- // 6 Message échec
- ["success" => false,
- "title" => "Login cookie.",
- "info" => "Error with the cookie auto-login.",
- "timer" => true,
- "toSrc" => false],
+ "loginCookie" => [
+ "success" => [
+ "success" => true,
+ "title" => "",
+ "info" => "",
+ "timer" => false,
+ "toSrc" => false
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Login cookie.",
+ "info" => "Error with the cookie auto-login.",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
// Log out
- // 7 Message global
- ["success" => true,
- "title" => "Log out.",
- "info" => "Successefuly logged out!",
- "timer" => true,
- "toSrc" => false],
+ "logout" => [
+ "success" => [
+ "success" => true,
+ "title" => "Log out.",
+ "info" => "Successefuly logged out!",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
// Ajout mission
- // 8 Message réussitee
- ["success" => true,
- "title" => "Register a mission.",
- "info" => "Mission registered !",
- "timer" => true,
- "toSrc" => true],
- // 9 Message échec
- ["success" => false,
- "title" => "Register a mission.",
- "info" => "Error, probably wrong consultant ID.",
- "timer" => true,
- "toSrc" => true],
+ "missionRegister" => [
+ "success" => [
+ "success" => true,
+ "title" => "Register a mission.",
+ "info" => "Mission registered !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mandate a mission.",
+ "info" => "Error, please sign-in before.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Acceptation d'une mission
+ "missionAccepted" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mission info.",
+ "info" => "Mission accepted !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mandate infos.",
+ "info" => "Error, mission not accepted.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Validation d'une mission
+ "missionValidated" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mission info.",
+ "info" => "Mission completed!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mandate info.",
+ "info" => "Error, mission not marked as completed.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Ajout d'un commentaire & note
+ "missionReview" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mission review.",
+ "info" => "Your review has been registered!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mission review.",
+ "info" => "Error, your review has not been resgistered.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Ajout utilisateur
- // 10 Message réussitee
- ["success" => true,
- "title" => "Register an user.",
- "info" => "User successfully registered !",
- "timer" => true,
- "toSrc" => true],
- // 11 Message échec
- ["success" => false,
- "title" => "Register an user.",
- "info" => "Error, user not registered.",
- "timer" => true,
- "toSrc" => true],
+ "userAdd" => [
+ "success" => [
+ "success" => true,
+ "title" => "Register an user.",
+ "info" => "User successfully registered !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Register an user.",
+ "info" => "Error, user not registered.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Delete utilisateur
+ "adminDelUser" => [
+ "success" => [
+ "success" => true,
+ "title" => "Delete an user.",
+ "info" => "User deleted !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Delete an user.",
+ "info" => "No user was deleted.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Ajout categorie
- // 12 Message réussitee
- ["success" => true,
- "title" => "Add a job category.",
- "info" => "Category added !",
- "timer" => true,
- "toSrc" => true],
- // 13 Message échec
- ["success" => false,
- "title" => "Add a job category.",
- "info" => "Category not added.",
- "timer" => true,
- "toSrc" => true],
+ "adminAddJob" => [
+ "success" => [
+ "success" => true,
+ "title" => "Add a job category.",
+ "info" => "Category added !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Add a job category.",
+ "info" => "Category not added.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Suppression categorie
- // 14 Message réussitee
- ["success" => true,
- "title" => "Deletion of a job category.",
- "info" => "Category deleted !",
- "timer" => true,
- "toSrc" => true],
- // 15 Message échec
- ["success" => false,
- "title" => "Deletion of a job category.",
- "info" => "Category not deleted !",
- "timer" => true,
- "toSrc" => true],
+ "adminDelJob" => [
+ "success" => [
+ "success" => true,
+ "title" => "Deletion of a job category.",
+ "info" => "Category deleted !",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "delete" => [
+ "success" => false,
+ "title" => "Deletion of a job category.",
+ "info" => "Category not deleted !",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
];
?> \ No newline at end of file
diff --git a/Views/Includes/en/table.php b/Views/Includes/en/table.php
index 0b778af..93a0e86 100644
--- a/Views/Includes/en/table.php
+++ b/Views/Includes/en/table.php
@@ -4,43 +4,64 @@
// ****************************************************************************
$header = [
// En-tête des colonnes du tableau Delete de l'admin.
- // 0
- ["ID Number",
- "Email",
- "Crypted Password",
- "Token for auto-login",
- "Inscription date",
- "Is user?",
- "Is consultant?",
- "Is admin?"],
+ "adminDel" => [
+ "ID Number",
+ "Email",
+ "Crypted Password",
+ "Token for auto-login",
+ "Inscription date",
+ "User status"
+ ],
// En-tête des colonnes du tableau Search de l'index.
- // 1
- ["Last name",
- "First name",
- "Job",
- "Capabilities",
- "Number of missions",
- "Note",
- "Stars"],
+ "search" => [
+ "Last name",
+ "First name",
+ "Job",
+ "Capabilities",
+ "Number of missions",
+ "Note",
+ "Stars"
+ ],
// En-tête des colonnes du tableau More infos de l'index.
- // 2
- ["Last name",
- "First name",
- "Job",
- "Degree",
- "Capabilities",
- "Description",
- "Phone number",
- "Adress",
- "Zip code",
- "City"],
+ "moreInfos" => [
+ "Last name",
+ "First name",
+ "Job",
+ "Degree",
+ "Capabilities",
+ "Description",
+ "Phone number",
+ "Adress",
+ "Zip code",
+ "City"
+ ],
// En-tête des colonnes du tableau mes missions.
- // 3
- ["Subject",
- "Note",
- "Review",
- "Client Lastname"]
+ "pendingMissions" => [
+ "Request date",
+ "Pro name",
+ "Job",
+ "Subject"
+ ],
+ // En-tête des colonnes du tableau mes missions.
+ "ongoingMissions" => [
+ "Accpeted by pro date",
+ "Pro name",
+ "Job",
+ "Subject",
+ "Validated by client date",
+ "Validated by pro date"
+ ],
+ // En-tête des colonnes du tableau mes missions.
+ "completedMissions" => [
+ "Request date",
+ "Started date",
+ "Validation by client date",
+ "Validation by pro date",
+ "Pro name",
+ "job",
+ "Subject",
+ "Review",
+ "Note"
+ ]
];
-$yes = "Yes";
-$no = "No";
?> \ No newline at end of file
diff --git a/Views/Includes/en/text.php b/Views/Includes/en/text.php
index 73aa268..21e273b 100644
--- a/Views/Includes/en/text.php
+++ b/Views/Includes/en/text.php
@@ -40,14 +40,19 @@ $text = [
"submit" => "Sign-in"
],
"incl_form_mission" => [
- "h2" => "Form to register a mission",
- "subject" => "Subject",
- "review" => "Review",
- "consultantId" => "Consultant ID",
- "submit" => "Register"
+ "h2" => "Form to register a mission",
+ "subject" => "Subject",
+ "review" => "Review",
+ "proId" => "Pro ID",
+ "submit" => "Register",
+ "jobsSel" => "Jobs"
],
"incl_table_myMission" => [
- "h2" => "My missions"
+ "pendingMission" => "Pending missions",
+ "ongoingMission" => "Ongoing missions",
+ "completedMission" => "Completed missions",
+ "accept" => "Accept",
+ "validate" => "Validate"
],
"incl_global_navbar" => [
"h2" => "AlphaJob",
@@ -63,23 +68,24 @@ $text = [
"btnLang" => "Select"
],
"incl_form_register" => [
- "h2" => "Form to sign-in",
- "email" => "Email",
- "password" => "Password",
- "notice" => "For the purpose of the exam only:",
- "isUser" => "Is user?",
- "isConsultant" => "Is consultant?",
- "isAdmin" => "Is admin?",
- "submit" => "Sign-up"
+ "h2" => "Form to sign-in",
+ "email" => "Email",
+ "password" => "Password",
+ "notice" => "Admin is here for the purpose of the exam only:",
+ "isAdmin" => "Is admin?",
+ "isPro" => "Is pro?",
+ "isClient" => "Is client?",
+ "submit" => "Sign-up"
],
"incl_index_search" => [
"h2" => "Search by lastname",
"searchBar" => "Lastname",
"submit" => "Search",
- "moreInfo" => "More info"
+ "moreInfo" => "More info",
+ "mandate" => "Mandate"
],
"incl_index_slideshow" => [
- "slide1" => "Find the right consultant for you.<br><br>For all your needs.<br><br><span>AlphaJob</span>",
+ "slide1" => "Find the right proffessional for you.<br><br>For all your needs.<br><br><span>AlphaJob</span>",
"slide2" => "Only the bests proffessionals can register!<br><br>Quality of work guarantee!<br><br><span>AlphaJob</span>",
"slide3" => "Find the bests offers for your website today.<br><br>Discover our ready to use solutions.<br><br><span>AlphaJob</span>"
]
diff --git a/Views/Includes/fr/message.php b/Views/Includes/fr/message.php
index dbf66f9..e9de43d 100644
--- a/Views/Includes/fr/message.php
+++ b/Views/Includes/fr/message.php
@@ -5,111 +5,196 @@
$success = "Réussite";
$error = "Erreur";
$redirect = "Redirection dans ";
-$message = [
- // Delete
- // 0 Message réussitee
- ["success" => true,
- "title" => "Supprimer un utilisateur.",
- "info" => "Utilisateur Supprimé !",
- "timer" => true,
- "toSrc" => true],
- // 1 Message échec
- ["success" => false,
- "title" => "Supprimer un utilisateur.",
- "info" => "Aucun utilisateur supprimé.",
- "timer" => true,
- "toSrc" => true],
+$messageText = [
// Informations de l'utilisateur
- // 2 Message réussitee
- ["success" => true,
- "title" => "Modification des infos de l'utilisateur.",
- "info" => "Informations mises à jour !",
- "timer" => true,
- "toSrc" => true],
+ "infosUpdate" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mise à jour des informations.",
+ "info" => "Informations mise à jour!",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Login sans cookie
- // 3 Message réussitee
- ["success" => true,
- "title" => "Connection.",
- "info" => "Connection réussie !",
- "timer" => true,
- "toSrc" => false],
- // 4 Message échec
- ["success" => false,
- "title" => "Connection.",
- "info" => "Erreur, mauvais email / mot de passe.",
- "timer" => true,
- "toSrc" => true],
+ "login" => [
+ "success" => [
+ "success" => true,
+ "title" => "Connection.",
+ "info" => "Connection réussie!",
+ "timer" => true,
+ "toSrc" => false
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Connection.",
+ "info" => "Erreur, connection échouée.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Login avec cookie
- // 5 Message réussitee
- ["success" => true,
- "title" => "",
- "info" => "",
- "timer" => false,
- "toSrc" => false],
- // 6 Message échec
- ["success" => false,
- "title" => "Connection avec cookie.",
- "info" => "Erreur lors de la connection automatique.",
- "timer" => true,
- "toSrc" => false],
+ "loginCookie" => [
+ "success" => [
+ "success" => true,
+ "title" => "",
+ "info" => "",
+ "timer" => false,
+ "toSrc" => false
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Connection avec auto-connection.",
+ "info" => "Erreur, connection échouée.",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
// Log out
- // 7 Message global
- ["success" => true,
- "title" => "Déconnection.",
- "info" => "Vous êtes déconnecté!",
- "timer" => true,
- "toSrc" => false],
+ "logout" => [
+ "success" => [
+ "success" => true,
+ "title" => "Déconnection.",
+ "info" => "Vous êtes déconnecté!",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
// Ajout mission
- // 8 Message réussitee
- ["success" => true,
- "title" => "Enregistrement d'une mission.",
- "info" => "Mission enregistrée !",
- "timer" => true,
- "toSrc" => true],
- // 9 Message échec
- ["success" => false,
- "title" => "Enregistrement d'une mission.",
- "info" => "Erreur, l'ID du consultant est probablement faux.",
- "timer" => true,
- "toSrc" => true],
+ "missionRegister" => [
+ "success" => [
+ "success" => true,
+ "title" => "Requête de mission.",
+ "info" => "La requete a été émise!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Requête de mission.",
+ "info" => "Erreur lors de la requête.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Acceptation d'une mission
+ "missionAccepted" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mission info.",
+ "info" => "Mission acceptée!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mission info.",
+ "info" => "Erreur, mission non acceptée.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Validation d'une mission
+ "missionValidated" => [
+ "success" => [
+ "success" => true,
+ "title" => "Mission info.",
+ "info" => "Mission completée!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Mandate info.",
+ "info" => "Erreur, mission non enregistrée comme completée.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Ajout d'un commentaire & note
+ "missionReview" => [
+ "success" => [
+ "success" => true,
+ "title" => "Avis sur la mission.",
+ "info" => "Votre avis a bien été enregistré!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Avis sur la mission.",
+ "info" => "Erreur, votre avis n'a pas été enregistré.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Ajout utilisateur
- // 10 Message réussitee
- ["success" => true,
- "title" => "Inscription",
- "info" => "Utilisateur inscrit !",
- "timer" => true,
- "toSrc" => true],
- // 11 Message échec
- ["success" => false,
- "title" => "Inscription.",
- "info" => "Erreur, utilisateur non enregistré.",
- "timer" => true,
- "toSrc" => true],
+ "userAdd" => [
+ "success" => [
+ "success" => true,
+ "title" => "Enregistrement d'un utilisateur.",
+ "info" => "Utilisateur enregustré!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Enregistrement d'un utilisateur.",
+ "info" => "Erreur, l'utilisateur n'a pas été enregistré.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
+ // Delete utilisateur
+ "adminDelete" => [
+ "success" => [
+ "success" => true,
+ "title" => "Suppression d'un utilisateur.",
+ "info" => "Utilisateur supprimé!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Suppression d'un utilisateur.",
+ "info" => "Erreur, l'utilisateur n'a pas été supprimé.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Ajout categorie
- // 12 Message réussitee
- ["success" => true,
- "title" => "Ajout d'une categorie.",
- "info" => "Categorie ajoutée !",
- "timer" => true,
- "toSrc" => true],
- // 13 Message échec
- ["success" => false,
- "title" => "Ajout d'une categorie.",
- "info" => "Categorie non ajoutée.",
- "timer" => true,
- "toSrc" => true],
+ "adminAddJob" => [
+ "success" => [
+ "success" => true,
+ "title" => "Ajout d'une catégorie d'emploi.",
+ "info" => "La catégorie a bien été ajoutée!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "fail" => [
+ "success" => false,
+ "title" => "Ajout d'une catégorie d'emploi.",
+ "info" => "Erreur, la catégorie n'a pas été ajoutée.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
// Suppression categorie
- // 14 Message réussitee
- ["success" => true,
- "title" => "Suppression d'une categorie.",
- "info" => "Categorie supprimée !",
- "timer" => true,
- "toSrc" => true],
- // 15 Message échec
- ["success" => false,
- "title" => "Suppression d'une categorie.",
- "info" => "Categorie non supprimée.",
- "timer" => true,
- "toSrc" => true],
+ "adminDelJob" => [
+ "success" => [
+ "success" => true,
+ "title" => "Suppression d'une catégorie.",
+ "info" => "Categorie supprimée!",
+ "timer" => true,
+ "toSrc" => true
+ ],
+ "delete" => [
+ "success" => false,
+ "title" => "Suppression d'une catégorie.",
+ "info" => "Erreur, la catégorie n'a pas été supprimée.",
+ "timer" => true,
+ "toSrc" => true
+ ]
+ ],
];
?> \ No newline at end of file
diff --git a/Views/Includes/fr/table.php b/Views/Includes/fr/table.php
index 2eeb389..90fb806 100644
--- a/Views/Includes/fr/table.php
+++ b/Views/Includes/fr/table.php
@@ -4,43 +4,64 @@
// ****************************************************************************
$header = [
// En-tête des colonnes du tableau Delete de l'admin.
- // 0
- ["Numéro ID",
- "Email",
- "Mot de passe chiffré",
- "Jeton d'auto-connection",
- "Date d'inscription",
- "Est utilisateur?",
- "Est consultant?",
- "Est admin?"],
+ "adminDel" => [
+ "Numéro ID",
+ "Email",
+ "Mot de passe chiffré",
+ "Jeton d'auto-connection",
+ "Date d'inscription",
+ "Status de l'utilisateur"
+ ],
// En-tête des colonnes du tableau Search de l'index.
- // 1
- ["Nom",
- "Prénom",
- "Emploi",
- "Capacités",
- "Nombre de mission",
- "Note",
- "Etoile"],
+ "search" => [
+ "Nom",
+ "Prénom",
+ "Emploi",
+ "Capacités",
+ "Nombre de mission",
+ "Note",
+ "Etoile"
+ ],
// En-tête des colonnes du tableau More infos de l'index.
- // 2
- ["Nom",
- "Prénom",
- "Emploi",
- "Diplôme",
- "Capacités",
- "Description",
- "Numéro de téléphone",
- "Adresse",
- "Code postal",
- "Ville"],
+ "moreInfos" => [
+ "Nom",
+ "Prénom",
+ "Emploi",
+ "Diplôme",
+ "Capacités",
+ "Description",
+ "Numéro de téléphone",
+ "Adresse",
+ "Code postal",
+ "Ville"
+ ],
// En-tête des colonnes du tableau mes missions.
- // 3
- ["Sujet",
- "Note",
- "Commentaire",
- "Nom du client"]
+ "pendingMissions" => [
+ "Requete emise le",
+ "Nom du pro",
+ "Emploi",
+ "Sujet"
+ ],
+ // En-tête des colonnes du tableau mes missions.
+ "ongoingMissions" => [
+ "Accpeté par le pro le",
+ "Nom du pro",
+ "Emploi",
+ "Sujet",
+ "Date de validation du client",
+ "Date de validation du pro"
+ ],
+ // En-tête des colonnes du tableau mes missions.
+ "completedMissions" => [
+ "Requete emise le",
+ "Débuté le",
+ "Validé par le client le",
+ "Validé par le pro le",
+ "Nom du pro",
+ "Emploi",
+ "Sujet",
+ "Avis",
+ "Note"
+ ]
];
-$yes = "Oui";
-$no = "Non";
?> \ No newline at end of file
diff --git a/Views/Includes/fr/text.php b/Views/Includes/fr/text.php
index dd6d655..85814e0 100644
--- a/Views/Includes/fr/text.php
+++ b/Views/Includes/fr/text.php
@@ -40,14 +40,19 @@ $text = [
"submit" => "Connection"
],
"incl_form_mission" => [
- "h2" => "Formulaire pour enregistrer une mission",
- "subject" => "Sujet",
- "review" => "Commentaire",
- "consultantId" => "ID du consultant",
- "submit" => "Enregistrer"
+ "h2" => "Formulaire pour enregistrer une mission",
+ "subject" => "Sujet",
+ "review" => "Commentaire",
+ "proId" => "ID du pro",
+ "submit" => "Enregistrer",
+ "jobsSel" => "Emplois"
],
"incl_table_myMission" => [
- "h2" => "Mes missions"
+ "pendingMission" => "Missions en attente",
+ "ongoingMission" => "Missions en cours",
+ "completedMission" => "Missions terminées",
+ "accept" => "Accepter",
+ "validate" => "Valider"
],
"incl_global_navbar" => [
"h2" => "AlphaJob",
@@ -63,23 +68,24 @@ $text = [
"btnLang" => "Sélectionner"
],
"incl_form_register" => [
- "h2" => "Formulaire d'inscription",
- "email" => "Email",
- "password" => "Mot de passe",
- "notice" => "Pour les besoins de l'examen seulement:",
- "isUser" => "Est utilisateur?",
- "isConsultant" => "Est consultant?",
- "isAdmin" => "Est admin?",
- "submit" => "S'inscrire"
+ "h2" => "Formulaire d'inscription",
+ "email" => "Email",
+ "password" => "Mot de passe",
+ "notice" => "Admin est présent pour les besoins de l'examen uniquement:",
+ "isClient" => "Est client?",
+ "isPro" => "Est pro?",
+ "isAdmin" => "Est admin?",
+ "submit" => "S'inscrire"
],
"incl_index_search" => [
- "h2" => "Recherche de consultant par nom",
+ "h2" => "Recherche de pro par nom",
"searchBar" => "Nom",
"submit" => "Rechercher",
- "moreInfo" => "Plus d'infos"
+ "moreInfo" => "Plus d'infos",
+ "mandate" => "Mandater"
],
"incl_index_slideshow" => [
- "slide1" => "Trouvez le consultant idéal proche de chez vous.<br><br>Pour tous vos besoins.<br><br><span>AlphaJob</span>",
+ "slide1" => "Trouvez le proffessionel idéal proche de chez vous.<br><br>Pour tous vos besoins.<br><br><span>AlphaJob</span>",
"slide2" => "Seuls les meilleurs professionnels sont acceptés.<br><br>Qualité guarantie.<br><br><span>AlphaJob</span>",
"slide3" => "Les meilleurs offres pour créer votre site Web.<br><br>Découvrez nos solutions clefs en main.<br><br><span>AlphaJob</span>"
]
diff --git a/Views/Includes/incl_form_admin.php b/Views/Includes/incl_form_admin.php
index 7f7963d..6176bc4 100644
--- a/Views/Includes/incl_form_admin.php
+++ b/Views/Includes/incl_form_admin.php
@@ -64,7 +64,7 @@ echo(" <!-- Tableau des utilisateurs-->
<!-- En-tête -->
<tr>".PHP_EOL);
// Affichage des en-tête de colonne.
-foreach($header[0] as $header) {
+foreach($header["adminDel"] as $header) {
echo(" <th>".$header."</th>".PHP_EOL);
}
echo(" </tr>".PHP_EOL);
@@ -73,13 +73,23 @@ foreach ($result as $rows) {
echo(" <!-- Utilisateurs -->
<tr>".PHP_EOL);
foreach ($rows as $key => $value) {
- // Traduction du résultat si reponse binaire en Oui / Non.
- if (($key == "isClient" || $key == "isPro" || $key == "isAdmin") && $value == "1") {
- echo(" <td><pre>".$yes."<prepre></td>".PHP_EOL);
- } elseif (($key == "isClient" || $key == "isPro" || $key == "isAdmin") && $value == "0") {
- echo(" <td><pre>".$no."<prepre></td>".PHP_EOL);
- } else {
- echo(" <td><pre>".$value."</pre></td>".PHP_EOL);
+ switch ($key) {
+ case "userStatus":
+ switch ($value) {
+ case 0:
+ echo(" <td><pre>Admin<pre></td>".PHP_EOL);
+ break;
+ case 1:
+ echo(" <td><pre>Pro<pre></td>".PHP_EOL);
+ break;
+ case 2:
+ echo(" <td><pre>Client<pre></td>".PHP_EOL);
+ break;
+ }
+ break;
+ default:
+ echo(" <td><pre>".$value."</pre></td>".PHP_EOL);
+ break;
}
}
echo(" </tr>".PHP_EOL);
diff --git a/Views/Includes/incl_form_mission.php b/Views/Includes/incl_form_mission.php
index 4d6d311..345dca2 100644
--- a/Views/Includes/incl_form_mission.php
+++ b/Views/Includes/incl_form_mission.php
@@ -4,35 +4,62 @@
// ****************************************************************************
// Import des textes en fonction de la langue définie dans la variable "lang" de la session.
require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
-echo(' <div class="separator"></div>
- <div id="mission">
- <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
- <form id="missionForm" action="/../Wrapper/wrapper.php" method="post">
- <label>
- <i class="fas fa-edit"></i>
- <input type="text" name="subject" placeholder="'.$text[basename(__FILE__, ".php")]["subject"].'" maxlength="128" required>
- </label>
- <label class="flex-start">
- <i class="far fa-star"></i>
- <select name="note" required>
- <option value="" selected disabled hidden>Note</option>
- <option value="5">5</option>
- <option value="4">4</option>
- <option value="3">3</option>
- <option value="2">2</option>
- <option value="1">1</option>
- <option value="0">0</option>
- </select>
- </label>
- <label>
- <i class="far fa-comment-alt"></i>
- <textarea name="review" placeholder="'.$text[basename(__FILE__, ".php")]["review"].'" required></textarea>
- </label>
- <label>
- <i class="fas fa-user-cog"></i>
- <input type="text" name="proId" placeholder="'.$text[basename(__FILE__, ".php")]["consultantId"].'" maxlength="10" required>
- </label>
- <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
- </form>
- </div>'.PHP_EOL);
+// Import des méthodes de la base de donnée pour les recherches.
+require_once(dirname( __FILE__ )."/../../Database/meth_dbsearch.php");
+if (isset($_SESSION["missionInitiate"])
+ && count($_SESSION["missionInitiate"]) > 0
+) {
+ echo(' <div class="separator"></div>
+ <div id="mission">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <form id="missionForm" action="/../Wrapper/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-edit"></i>
+ <input type="text" name="missionSubject" placeholder="'.$text[basename(__FILE__, ".php")]["subject"].'" maxlength="128" required>
+ </label>
+ <select name="missionJob">
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["jobsSel"].'</option>'.PHP_EOL);
+ for ($i = 0; $i < count($_SESSION["missionInitiate"]["proJobs"]); $i++) {
+ echo(' <option value="'.$_SESSION["missionInitiate"]["proJobs"][$i]["jobCategoryId"].'">'.$_SESSION["missionInitiate"]["proJobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
+ }
+ echo(' </select>
+ <input type="hidden" name="missionProId" value="'.$_SESSION["missionInitiate"]["proId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ </div>'.PHP_EOL);
+ unset($_SESSION["missionInitiate"]);
+
+} elseif (isset($_SESSION["missionCompleted"])
+ && count($_SESSION["missionCompleted"]) > 0
+) {
+ echo('<div class="separator"></div>
+ <div id="mission">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <form id="missionForm" action="/../Wrapper/wrapper.php" method="post">
+ <label class="flex-start">
+ <i class="far fa-star"></i>
+ <select name="note" required>
+ <option value="" selected disabled hidden>Note</option>
+ <option value="5">5</option>
+ <option value="4">4</option>
+ <option value="3">3</option>
+ <option value="2">2</option>
+ <option value="1">1</option>
+ <option value="0">0</option>
+ </select>
+ </label>
+ <label>
+ <i class="far fa-comment-alt"></i>
+ <textarea name="review" placeholder="'.$text[basename(__FILE__, ".php")]["review"].'" required></textarea>
+ </label>');
+ echo(' <input type="hidden" name="missionCompletedId" value="'.$_SESSION["missionCompleted"]["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ </div>'.PHP_EOL);
+ unset($_SESSION["missionCompleted"]);
+
+} else {
+ header("Location: /Views/myMission.php");
+ die();
+}
?> \ No newline at end of file
diff --git a/Views/Includes/incl_form_register.php b/Views/Includes/incl_form_register.php
index bb046ce..b98365b 100644
--- a/Views/Includes/incl_form_register.php
+++ b/Views/Includes/incl_form_register.php
@@ -19,9 +19,9 @@ echo(' <!-- Separateur -->
<input type="password" name="password" id="password" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["password"].'" maxlength="128" required>
</label>
<label class="info flex-center">'.$text[basename(__FILE__, ".php")]["notice"].'</label>
- <label for="is_user" class="flex-center"><input type="checkbox" name="is_client" id="is_user">'.$text[basename(__FILE__, ".php")]["isUser"].'</label>
- <label for="is_consultant" class="flex-center"><input type="checkbox" name="is_pro" id="is_consultant">'.$text[basename(__FILE__, ".php")]["isConsultant"].'</label>
- <label for="is_admin" class="flex-center"><input type="checkbox" name="is_admin" id="is_admin">'.$text[basename(__FILE__, ".php")]["isAdmin"].'</label>
+ <label for="isAdmin" class="flex-center"><input type="radio" id="isAdmin" name="userStatus" value="0">'.$text[basename(__FILE__, ".php")]["isAdmin"].'</label>
+ <label for="isPro" class="flex-center"><input type="radio" id="isPro" name="userStatus" value="1">'.$text[basename(__FILE__, ".php")]["isPro"].'</label>
+ <label for="isClient" class="flex-center"><input type="radio" id="isClient" name="userStatus" value="2">'.$text[basename(__FILE__, ".php")]["isClient"].'</label>
<input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
</form>
</div>'.PHP_EOL);
diff --git a/Views/Includes/incl_form_userInfo.php b/Views/Includes/incl_form_userInfo.php
index 80d61ad..c79e687 100644
--- a/Views/Includes/incl_form_userInfo.php
+++ b/Views/Includes/incl_form_userInfo.php
@@ -54,21 +54,17 @@ echo(' <!-- Separateur -->
<input type="text" name="city" id="city" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["city"].'" value="'.$info[0]["city"].'" required>
</label>'.PHP_EOL);
// TODO : Commenter
-if ($_SESSION["isPro"]) {
+if ($_SESSION["userStatus"] == 1) {
$allJobs = $dbsearch->get_job_category_all();
$proJobs = $dbsearch->get_pro_job_category($_SESSION["userId"]);
- $dictJobs = [];
- for ($i = 0; $i < count($allJobs); $i++) {
- $dictJobs[$allJobs[$i]["jobCategoryId"]] = $allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])];
- }
echo(' <label>
<i class="fas fa-wrench"></i>
Add a job:'.PHP_EOL);
// Select
echo(' <select id="jobsSel">
<option value="" selected>'.$text[basename(__FILE__, ".php")]["jobsSel"].'</option>'.PHP_EOL);
- foreach ($dictJobs as $jobId => $jobName) {
- echo(' <option value="'.$jobId.'">'.$jobName.'</option>'.PHP_EOL);
+ for ($i = 0; $i < count($allJobs); $i++) {
+ echo(' <option value="'.$allJobs[$i]["jobCategoryId"].'">'.$allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
}
echo(' </select>
<button type="button" onclick="add()">'.$text[basename(__FILE__, ".php")]["jobsAdd"].'</button>
@@ -77,7 +73,7 @@ if ($_SESSION["isPro"]) {
echo(' Mes jobs
<ul id="jobsList">'.PHP_EOL);
for ($i = 0; $i < count($proJobs); $i++) {
- echo(' <li>'.$dictJobs[$proJobs[$i]].'</li>'.PHP_EOL);
+ echo(' <li>'.$proJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</li>'.PHP_EOL);
}
echo(' </ul>
<input type="hidden" name="jobs" id="jobs" value="">'.PHP_EOL);
diff --git a/Views/Includes/incl_global_message.php b/Views/Includes/incl_global_message.php
index b15d00e..304e906 100644
--- a/Views/Includes/incl_global_message.php
+++ b/Views/Includes/incl_global_message.php
@@ -4,18 +4,19 @@
// ****************************************************************************
// Import des différents messages possibles.
require_once(dirname( __FILE__ )."/".$_SESSION["lang"]."/message.php");
+$name = $_SESSION["message"][0];
+$status = $_SESSION["message"][1];
echo('<div class="separator"></div>');
-echo('<div id="message"><h2>'.$message[$_SESSION["messageNumber"]]["title"].'</h3>');
-if ($message[$_SESSION["messageNumber"]]["success"]) {
+echo('<div id="message"><h2>'.$messageText[$name][$status]["title"].'</h3>');
+if ($messageText[$name][$status]["success"]) {
echo('<h3 class="success">'.$success.'</h3>');
} else {
echo('<h3 class="error">'.$error.'</h3>');
}
-echo("<p>".$message[$_SESSION["messageNumber"]]["info"]."</p>");
+echo("<p>".$messageText[$name][$status]["info"]."</p>");
echo('<p id="redirect" class="info">'.$redirect.'</p></div>');
-echo('<script src="/Statics/Js/main.js"></script>');
echo('<script src="/Statics/Js/message.js"></script>');
-if ($message[$_SESSION["messageNumber"]]["toSrc"]) {
+if ($messageText[$name][$status]["toSrc"]) {
if ($_SESSION["src"] !== "index") {
$dest = "Views/".$_SESSION["src"];
} else {
@@ -24,7 +25,7 @@ if ($message[$_SESSION["messageNumber"]]["toSrc"]) {
} else {
$dest = "index";
}
-if ($message[$_SESSION["messageNumber"]]["timer"]) {
+if ($messageText[$name][$status]["timer"]) {
echo('<script>start_timer("'.$dest.'");</script>');
} else {
echo('<script>redirect("'.$dest.'")</script>');
diff --git a/Views/Includes/incl_global_navbar.php b/Views/Includes/incl_global_navbar.php
index 1572fa6..664d6ff 100644
--- a/Views/Includes/incl_global_navbar.php
+++ b/Views/Includes/incl_global_navbar.php
@@ -14,26 +14,29 @@ echo(' <!-- Navbar -->
<ul class="userManager">
<a href="/index.php#separator2"><li><i class="fas fa-search"></i> '.$text[basename(__FILE__, ".php")]["btnSearch"].'</li></a>'.PHP_EOL);
// Affichage des éléments en fonction de si l'utilisateur est connecté ou non et de ses fonctions.
-if (isset($_SESSION["loggedIn"])
+if (isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
&& $_SESSION["loggedIn"] == "1"
- ) {
- if (isset($_SESSION["isClient"])
- && $_SESSION["isClient"] == "1"
- ) {
- echo(' <a href="/Views/mission.php"><li><i class="fas fa-plus-square"></i> '.$text[basename(__FILE__, ".php")]["btnMission"].'</li></a>'.PHP_EOL);
+) {
+ // Switch -> https://www.php.net/manual/fr/control-structures.switch.php
+ // https://stackoverflow.com/questions/6330114/do-you-need-break-in-switch-when-return-is-used
+ switch ($_SESSION["userStatus"]) {
+ case 0:
+ $status = 'Admin';
+ echo(' <a href="/Views/admin.php"><li><i class="fas fa-cog"></i> '.$text[basename(__FILE__, ".php")]["btnAdmin"].'</li></a>'.PHP_EOL);
+ break;
+ case 1:
+ $status = 'Pro';
+ echo(' <a href="/Views/myMission.php"><li><i class="fas fa-tasks"></i> '.$text[basename(__FILE__, ".php")]["btnMyMission"].'</li></a>'.PHP_EOL);
+ break;
+ case 2:
+ $status = 'Client';
+ echo(' <a href="/Views/myMission.php"><li><i class="fas fa-tasks"></i> '.$text[basename(__FILE__, ".php")]["btnMyMission"].'</li></a>'.PHP_EOL);
+ break;
}
- if (isset($_SESSION["isPro"])
- && $_SESSION["isPro"] == "1"
- ) {
- echo(' <a href="/Views/myMission.php"><li><i class="fas fa-tasks"></i> '.$text[basename(__FILE__, ".php")]["btnMyMission"].'</li></a>'.PHP_EOL);
- }
- if (isset($_SESSION["isAdmin"])
- && $_SESSION["isAdmin"] == "1"
- ) {
- echo(' <a href="/Views/admin.php"><li><i class="fas fa-cog"></i> '.$text[basename(__FILE__, ".php")]["btnAdmin"].'</li></a>'.PHP_EOL);
- }
echo(' <a href="/Views/userInfo.php"><li><i class="fas fa-user"></i> '.$text[basename(__FILE__, ".php")]["btnInfos"].'</li></a>
<a href="/Views/logout.php"><li><i class="fas fa-sign-out-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogout"].'</li></a>'.PHP_EOL);
+
+ echo('<li>'.$_SESSION["email"].'<br>'.$status.'</li>'.PHP_EOL);
} else {
echo(' <a href="/Views/login.php"><li><i class="fas fa-sign-in-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogin"].'</li></a>
<a href="/Views/register.php"><li><i class="fas fa-user-plus"></i> '.$text[basename(__FILE__, ".php")]["btnRegister"].'</li></a>'.PHP_EOL);
diff --git a/Views/Includes/incl_index_search.php b/Views/Includes/incl_index_search.php
index a0e0be4..ac107b7 100644
--- a/Views/Includes/incl_index_search.php
+++ b/Views/Includes/incl_index_search.php
@@ -23,65 +23,96 @@ echo(' <!-- Form de recherche -->
// Si l'index est chargé avec des données dans la variable "search" de la session,
// c'est qu'une recherche à été effectuée, on affiche alors le contenu de cette recherche en tableau.
if (isset($_SESSION["search"])) {
- echo("<table><tr>");
+ echo("<table>");
// Si la variable isResearch est vrai, c'est une rechreche.
if ($_SESSION["search"]["isResearch"]) {
- foreach ($header[1] as $header) {
- echo("<th><pre>".$header."</pre></th>");
- }
- // Sinon c'est un "Plus d'info".
- } else {
- foreach ($header[2] as $header) {
- echo("<th><pre>".$header."</pre></th>");
- }
- }
- // On affiche le résultat de la recherche ou du "Plus d'info".
- echo("</tr>");
- foreach ($_SESSION["search"]["result"] as $rows) {
echo("<tr>");
- foreach ($rows as $key => $value) {
- if ($key !== "id") {
- if ($key !== "star") {
- echo("<td><pre>".$value."</pre></td>");
- } else {
- if ($value) {
- echo('<td>');
- $missingStar = 5 - $value;
- for ($i = 0; $i < $value; $i++) {
- echo('<i class="fa fa-star star checked"></i>');
- }
- if ($missingStar) {
- for ($i = 0; $i < $missingStar; $i++) {
- echo('<i class="fa fa-star star unchecked"></i>');
- }
- }
- } else {
- echo('<td>N/A');
+ for ($i = 0; $i < count($header["search"]); $i++) {
+ echo("<th><pre>".$header["search"][$i]."</pre></th>");
+ }
+ echo("</tr>");
+ foreach ($_SESSION["search"]["result"] as $result) {
+ echo("<tr>");
+ echo("<td><pre>".$result["lastname"]."</pre></td>");
+ echo("<td><pre>".$result["firstname"]."</pre></td>");
+ // jobs
+ if (count($result["jobs"]) > 0) {
+ $jobsName = array();
+ for ($i = 0; $i < count($result["jobs"]); $i++) {
+ array_push($jobsName, $result["jobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])]);
+ }
+ echo("<td><pre>".join(", ", $jobsName)."</pre></td>");
+ } else {
+ echo('<td>N/A</td>');
+ }
+ echo("<td><pre>".$result["capability"]."</pre></td>");
+ echo("<td><pre>".$result["numberOfMissions"]."</pre></td>");
+ echo("<td><pre>".$result["note"]."</pre></td>");
+ // I'm a star !!
+ if ($result["star"]) {
+ echo('<td>');
+ $missingStar = 5 - $result["star"];
+ for ($i = 0; $i < $result["star"]; $i++) {
+ echo('<i class="fa fa-star star checked"></i>');
+ }
+ if ($missingStar) {
+ for ($i = 0; $i < $missingStar; $i++) {
+ echo('<i class="fa fa-star star unchecked"></i>');
}
- echo("</td>");
}
+ echo("</td>");
+ } else {
+ echo('<td>N/A</td>');
}
- }
- // Si c'est une recherche on ajoute le bouton plus d'info,
- // pour plus d'info avec une recherche par ID.
- if ($_SESSION["search"]["isResearch"]) {
+ // Si c'est une recherche on ajoute le bouton plus d'info,
+ // pour plus d'info avec une recherche par Id.
echo('<td class="noBorder" >
- <form action="/Wrapper/wrapper.php" method="post">
- <input type="hidden" name="searchInfo" value="'.$rows["userId"].'">
- <input type="submit" value="'.$text[basename(__FILE__, ".php")]["moreInfo"].'">
- </form>
- </td>');
+ <form action="/Wrapper/wrapper.php" method="post">
+ <input type="hidden" name="moreInfoProId" value="'.$result["userId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["moreInfo"].'">
+ </form>
+ </td>');
+ echo("</tr>");
}
- echo("</tr>");
+ echo("</table>");
+ // Sinon c'est un "Plus d'info".
+ } else {
+ echo("<tr>");
+ for ($i = 0; $i < count($header["moreInfos"]); $i++) {
+ echo("<th><pre>".$header["moreInfos"][$i]."</pre></th>");
+ }
+ echo('</tr>
+ <tr>
+ <td><pre>'.$_SESSION["search"]["result"][0]["lastname"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["firstname"].'</pre></td>');
+ // jobs
+ if (count($_SESSION["search"]["result"][0]["jobs"]) > 0) {
+ $jobsName = array();
+ for ($i = 0; $i < count($_SESSION["search"]["result"][0]["jobs"]); $i++) {
+ array_push($jobsName, $_SESSION["search"]["result"][0]["jobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])]);
+ }
+ echo("<td><pre>".join(", ", $jobsName)."</pre></td>");
+ } else {
+ echo('<td>N/A</td>');
+ }
+ echo(' <td><pre>'.$_SESSION["search"]["result"][0]["degree"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["capability"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["description"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["phoneNumber"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["adress"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["zipCode"].'</pre></td>
+ <td><pre>'.$_SESSION["search"]["result"][0]["city"].'</pre></td>
+ </tr>
+ </table>
+ <form action="/Wrapper/wrapper.php" method="post">
+ <input type="hidden" name="mandateProId" value="'.$_SESSION["search"]["result"][0]["userId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["mandate"].'">
+ </form>');
}
- echo('<!-- Espace vide si le tableau est petit -->
-</table>
-<div class="spacer"></div>'.PHP_EOL);
-} else {
- echo(' <!-- Espace vide -->
- <div class="spacer"></div>'.PHP_EOL);
}
-echo(' </div>');
+echo(' <!-- Espace vide si le tableau est petit -->
+ <div class="spacer"></div>
+ </div>');
// On supprime la variable de recherche si elle existe.
unset($_SESSION["search"]);
?> \ No newline at end of file
diff --git a/Views/Includes/incl_index_slideshow.php b/Views/Includes/incl_index_slideshow.php
index d632bbc..1a7790e 100644
--- a/Views/Includes/incl_index_slideshow.php
+++ b/Views/Includes/incl_index_slideshow.php
@@ -7,15 +7,15 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
echo(' <!-- Separateur -->
<div id="separator1" class="separator"></div>
<!-- Slideshow -->
- <div id="slideshow">
- <p id="textSlide0" class="show">'.$text[basename(__FILE__, ".php")]["slide1"].'</p>
- <p id="textSlide1">'.$text[basename(__FILE__, ".php")]["slide2"].'</p>
- <p id="textSlide2">'.$text[basename(__FILE__, ".php")]["slide3"].'</p>
+ <div id="slides">
+ <p id="slide_0" class="show_slide">'.$text[basename(__FILE__, ".php")]["slide1"].'</p>
+ <p id="slide_1">'.$text[basename(__FILE__, ".php")]["slide2"].'</p>
+ <p id="slide_2">'.$text[basename(__FILE__, ".php")]["slide3"].'</p>
<!-- Indicateur de slide actuellement en cour -->
- <div id="slideIndicator">
- <i id="indicatorSlide0" class="fas fa-circle slideSelected"></i>
- <i id="indicatorSlide1" class="fas fa-circle"></i>
- <i id="indicatorSlide2" class="fas fa-circle"></i>
+ <div id="slideDots">
+ <i id="slideDot_0" class="fas fa-circle slideSelected"></i>
+ <i id="slideDot_1" class="fas fa-circle"></i>
+ <i id="slideDot_2" class="fas fa-circle"></i>
</div>
</div>'.PHP_EOL);
?> \ No newline at end of file
diff --git a/Views/Includes/incl_table_myMission.php b/Views/Includes/incl_table_myMission.php
index b4c7e04..de071b1 100644
--- a/Views/Includes/incl_table_myMission.php
+++ b/Views/Includes/incl_table_myMission.php
@@ -7,33 +7,152 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
// Import des en-tête des tables.
require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/table.php");
// Import des metodes de la base de donnée pour les recherches.
+require_once(dirname(__FILE__)."/../../Database/meth_dbsearch.php");
require_once(dirname(__FILE__)."/../../Database/meth_dbmission.php");
// Instanciation de la bdd avec les méthodes de recherche.
+$dbsearch = new DbSearch;
$dbmission = new DbMission;
+
+// TODO: commenter
// Recherches des missions avec l'id de l'utilisateur actuellement connecté.
-$result = $dbmission->get_mission_by_id($_SESSION["userId"]);
+switch ($_SESSION["userStatus"]) {
+ case 1:
+ $result = $dbmission->get_mission_by_pro_id($_SESSION["userId"]);
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobCategoryId"] = $dbsearch->get_job_category_by_id($result[$i]["jobCategoryId"]);
+ }
+ break;
+ case 2:
+ $result = $dbmission->get_mission_by_client_id($_SESSION["userId"]);
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobCategoryId"] = $dbsearch->get_job_category_by_id($result[$i]["jobCategoryId"]);
+ }
+ break;
+ default:
+ break;
+}
+
+$missionStatus = [
+ "pending" => [],
+ "ongoing" => [],
+ "completed" => []
+];
+
+for ($i = 0; $i < count($result); $i++) {
+ if (!$result[$i]["acceptedByPro"]
+ ) {
+ array_push($missionStatus["pending"], $result[$i]);
+ } elseif (!$result[$i]["validatedByPro"]
+ || !$result[$i]["validatedByClient"]
+ ) {
+ array_push($missionStatus["ongoing"], $result[$i]);
+ } else {
+ array_push($missionStatus["completed"], $result[$i]);
+ }
+}
+
echo(' <!-- Separateur -->
<div class="separator"></div>
<!-- Mes missions -->
<div id="myMission">
- <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
- <table>
+ <div id="missionButtons">
+ <button onclick="show(\'pendingTable\')"><h2>'.$text[basename(__FILE__, ".php")]["pendingMission"].'</h2></button>
+ <button onclick="show(\'ongoingTable\')"><h2>'.$text[basename(__FILE__, ".php")]["ongoingMission"].'</h2></button>
+ <button onclick="show(\'completedTable\')"><h2>'.$text[basename(__FILE__, ".php")]["completedMission"].'</h2></button>
+ </div>'.PHP_EOL);
+
+// tableau 3 pending
+echo(' <table id="pendingTable">
+ <!-- En-tête -->
+ <tr>'.PHP_EOL);
+foreach($header["pendingMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
+}
+echo(" </tr>".PHP_EOL);
+foreach ($missionStatus["pending"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["date"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>');
+ if ($_SESSION["userId"] == $rows["proId"]) {
+ echo(' <td class="noBorder" >
+ <form action="/Wrapper/wrapper.php" method="post">
+ <input type="hidden" name="acceptedMissionId" value="'.$rows["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["accept"].'">
+ </form>
+ </td>');
+ }
+ echo(' </tr>'.PHP_EOL);
+}
+echo(' </table>');
+
+// tableau 4 ongoing
+echo(' <table id="ongoingTable">
<!-- En-tête -->
<tr>'.PHP_EOL);
-foreach($header[3] as $header) {
- echo(" <th>".$header."</th>".PHP_EOL);
+foreach($header["ongoingMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
}
echo(" </tr>".PHP_EOL);
-foreach ($result as $rows) {
- echo(" <!-- Missions -->
- <tr>".PHP_EOL);
- foreach ($rows as $value) {
- echo(" <td><pre>".$value."</pre></td>".PHP_EOL);
+foreach ($missionStatus["ongoing"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["acceptedByPro"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>
+ <td><pre>'.$rows["validatedByClient"].'</pre></td>
+ <td><pre>'.$rows["validatedByPro"].'</pre></td>');
+ if (!$rows["validatedByClient"] && $_SESSION["userStatus"] == 2
+ || (!$rows["validatedByPro"] && $_SESSION["userStatus"] == 1)
+ ) {
+ echo(' <td class="noBorder" >
+ <form action="/Wrapper/wrapper.php" method="post">
+ <input type="hidden" name="validatedMissionId" value="'.$rows["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["validate"].'">
+ </form>
+ </td>');
}
- echo(" </tr>".PHP_EOL);
+ echo(' </tr>'.PHP_EOL);
+}
+echo(' </table>');
+
+// tableau 5 completed
+echo(' <table id="completedTable">
+ <!-- En-tête -->
+ <tr>'.PHP_EOL);
+foreach($header["completedMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
+}
+echo(" </tr>".PHP_EOL);
+foreach ($missionStatus["completed"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["date"].'</pre></td>
+ <td><pre>'.$rows["acceptedByPro"].'</pre></td>
+ <td><pre>'.$rows["validatedByClient"].'</pre></td>
+ <td><pre>'.$rows["validatedByPro"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>');
+ if ($rows["review"]) {
+ echo('<td><pre>'.$rows["review"].'</pre></td>');
+ } else {
+ echo('<td><pre>N/A</pre></td>');
+ }
+ if ($rows["note"]) {
+ echo('<td><pre>'.$rows["note"].'</pre></td>');
+ } else {
+ echo('<td><pre>N/A</pre></td>');
+ }
+ echo('</tr>'.PHP_EOL);
}
echo(' </table>
- <!-- Espace vide si le tableau est petit -->
- <div class="spacer"></div>
- </div>'.PHP_EOL);
+<!-- Espace vide si le tableau est petit -->
+<div class="spacer"></div>');
+
+// fin
+echo(' </div>'.PHP_EOL);
?> \ No newline at end of file
diff --git a/Views/admin.php b/Views/admin.php
index 6af1c7c..67398fd 100644
--- a/Views/admin.php
+++ b/Views/admin.php
@@ -5,9 +5,9 @@
// Démarrage de la session.
session_start();
// Vérification si l'utilisateur est admin et connecté sinon: raise 404.
-if (!isset($_SESSION["loggedIn"], $_SESSION["isAdmin"])
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
|| $_SESSION["loggedIn"] == false
- || $_SESSION["isAdmin"] == false
+ || $_SESSION["userStatus"] != 0
) {
http_response_code(404);
die();
diff --git a/Views/message.php b/Views/message.php
index f2a93a5..b324f51 100644
--- a/Views/message.php
+++ b/Views/message.php
@@ -5,7 +5,7 @@
// Démarrage de la session.
session_start();
// Si pas de message (variable messageNumber de la session): raise 404.
-if (!isset($_SESSION["messageNumber"])) {
+if (!isset($_SESSION["message"])) {
http_response_code(404);
die();
}
diff --git a/Views/mission.php b/Views/mission.php
index 4d84777..fde7289 100644
--- a/Views/mission.php
+++ b/Views/mission.php
@@ -5,11 +5,13 @@
// Démarrage de la session.
session_start();
// Vérification si connecté et si a le statut utilisateur sinon: raise 404
-if (!isset($_SESSION["loggedIn"], $_SESSION["isClient"])
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
|| $_SESSION["loggedIn"] == false
- || $_SESSION["isClient"] == false
+ || $_SESSION["userStatus"] != 2
) {
- http_response_code(404);
+ $messageNumber = 9;
+ $_SESSION["messageNumber"] = $messageNumber;
+ header("Location: /Views/message.php");
die();
}
// Définition de la variable src de la session avec le nom du fichier.
diff --git a/Views/myMission.php b/Views/myMission.php
index 49d7107..2f575ba 100644
--- a/Views/myMission.php
+++ b/Views/myMission.php
@@ -5,9 +5,11 @@
// Démarrage de la session.
session_start();
// Si n'est pas connecté ou n'est pas consultant: raise 404.
-if (!isset($_SESSION["loggedIn"], $_SESSION["isPro"])
- || $_SESSION["loggedIn"] == false
- || $_SESSION["isPro"] == false
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ || $_SESSION["loggedIn"] == false
+ || ($_SESSION["userStatus"] != 1
+ && $_SESSION["userStatus"] != 2
+ )
) {
http_response_code(404);
die();
@@ -30,5 +32,7 @@ $_SESSION["src"] = basename(__FILE__, ".php");
<?php require_once(dirname( __FILE__ )."/Includes/incl_table_myMission.php"); ?>
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_footer.php"); ?>
<script src="/Statics/Js/main.js"></script>
+ <script src="/Statics/Js/myMission.js"></script>
+ <script>show('pendingTable')</script>
</body>
</html> \ No newline at end of file
diff --git a/Wrapper/Functions/func_admin.php b/Wrapper/Functions/func_admin.php
index 05ad337..86a750f 100644
--- a/Wrapper/Functions/func_admin.php
+++ b/Wrapper/Functions/func_admin.php
@@ -7,12 +7,12 @@ function delete ($userId) {
$deleted = $dbadmin->user_del($userId);
// Sélection du message à affiché en fonction de réussite ou pas.
if ($deleted) {
- $messageNumber = 0;
+ $message = ["adminDelUser", "success"];
} else {
- $messageNumber = 1;
+ $message = ["adminDelUser", "fail"];
}
// Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
@@ -26,12 +26,12 @@ function job_category_add($jobCategoryNameEn, $jobCategoryNameFr) {
);
// Sélection du message à affiché en fonction de réussite ou pas.
if ($added) {
- $messageNumber = 12;
+ $message = ["adminAddJob", "success"];
} else {
- $messageNumber = 13;
+ $message = ["adminAddJob", "fail"];
}
// Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
@@ -41,12 +41,12 @@ function job_category_del($jobCategoryId) {
$deleted = $dbadmin->job_category_del($jobCategoryId);
// Sélection du message à affiché en fonction de réussite ou pas.
if ($deleted) {
- $messageNumber = 14;
+ $message = ["adminDelJob", "success"];
} else {
- $messageNumber = 15;
+ $message = ["adminDelJob", "fail"];
}
// Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_info.php b/Wrapper/Functions/func_info.php
index b5013e2..ca97bc0 100644
--- a/Wrapper/Functions/func_info.php
+++ b/Wrapper/Functions/func_info.php
@@ -2,18 +2,30 @@
// ****************************************************************************
// Description: Fonction de modifications des informations de l'utilisateur par ID
// ****************************************************************************
-function modify_user_info($userInfos, $userId, $isPro) {
+function modify_user_info($userInfos, $userId, $userStatus) {
$dbuser = new DbUser;
$dbsearch = new DbSearch;
+ switch ($userStatus) {
+ case 1:
+ $isPro = true;
+ break;
+ default:
+ $isPro = false;
+ break;
+ }
if ($isPro) {
$userJobs = $dbsearch->get_pro_job_category($userId);
- $dbuser->user_infos_update($userInfos, $userId, $isPro, $userJobs);
+ $userJobsId = [];
+ for ($i = 0; $i < count($userJobs); $i++) {
+ array_push($userJobsId, $userJobs[$i]["jobCategoryId"]);
+ }
+ $dbuser->user_infos_update($userInfos, $userId, $isPro, $userJobsId);
} else {
$dbuser->user_infos_update($userInfos, $userId, $isPro);
}
// Redirection vers message avec l'index du message à afficher.
- $messageNumber = 2;
- $_SESSION["messageNumber"] = $messageNumber;
+ $message = ["infosUpdate", "success"];
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_login.php b/Wrapper/Functions/func_login.php
index 488f592..165c2cd 100644
--- a/Wrapper/Functions/func_login.php
+++ b/Wrapper/Functions/func_login.php
@@ -44,24 +44,24 @@ function login($cookie, $email = null, $pass = null, $remember = 0) {
}
// On sélectionne le bon message en fonction du type de connection.
if (!$cookie) {
- $messageNumber = 3;
+ $message = ["login", "success"];
} else {
- $messageNumber = 5;
+ $message = ["loginCookie", "success"];
}
} else {
// Si la connection a échoué.
if (!$cookie) {
- $messageNumber = 4;
+ $message = ["login", "fail"];
// Si la connection à échoué par cookie.
} else {
// Suppression du cookie.
unset($_COOKIE["autoLogin"]);
setcookie("autoLogin", "", time() - 3600, "/");
- $messageNumber = 6;
+ $message = ["loginCookie", "fail"];
}
}
// On redirige vers message.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_logout.php b/Wrapper/Functions/func_logout.php
index 1a40235..975f90b 100644
--- a/Wrapper/Functions/func_logout.php
+++ b/Wrapper/Functions/func_logout.php
@@ -22,8 +22,8 @@ function logout() {
$_SESSION["loggedIn"] = "0";
$_SESSION["lang"] = $lang;
// Enfin on redirige avec le bon message.
- $messageNumber = 7;
- $_SESSION["messageNumber"] = $messageNumber;
+ $message = ["logout", "success"];
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_mission.php b/Wrapper/Functions/func_mission.php
index 07879be..4162e73 100644
--- a/Wrapper/Functions/func_mission.php
+++ b/Wrapper/Functions/func_mission.php
@@ -2,22 +2,42 @@
// ****************************************************************************
// Description: Fonction d'enregistrement d'une mission
// ****************************************************************************
-function register_mission($subject, $note, $review, $clientId, $proId) {
+function mission_initiate($proId) {
+ $dbsearch = new DbSearch;
+ $_SESSION["missionInitiate"] = [
+ "proId" => $proId,
+ "proJobs" => $dbsearch->get_pro_job_category($proId)
+ ];
+ header("Location: /Views/mission.php");
+ die();
+}
+
+function mission_register($subject, $clientId, $proId, $jobId) {
$dbmission = new DbMission;
- $registered = $dbmission->register_mission($subject,
- $note,
- $review,
- $clientId,
- $proId
- );
+ $registered = $dbmission->register_mission($subject, $clientId, $proId, $jobId);
// Sélection du message à afficher en fonction de réussite ou pas.
if ($registered) {
- $messageNumber = 8;
+ $message = ["missionRegister", "success"];
+ } else {
+ $message = ["missionRegister", "fail"];
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Views/message.php");
+ die();
+}
+
+function mission_review($missionId, $review, $note) {
+ $dbmission = new DbMission;
+ $reviewed = $dbmission->review_mission($missionId, $review, $note);
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($reviewed) {
+ $message = ["missionReview", "success"];
} else {
- $messageNumber = 9;
+ $message = ["missionReview", "fail"];
}
// Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["message"] = $message;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_myMission.php b/Wrapper/Functions/func_myMission.php
new file mode 100644
index 0000000..c461e5a
--- /dev/null
+++ b/Wrapper/Functions/func_myMission.php
@@ -0,0 +1,47 @@
+<?php
+// ****************************************************************************
+// Description: Fonction de gesrtion de ses missions
+// ****************************************************************************
+function accept_mission($missionId) {
+ $dbmission = new DbMission;
+ $accepted = $dbmission->accept_mission($missionId);
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($accepted) {
+ $message = ["missionAccepted", "success"];
+ } else {
+ $message = ["missionAccepted", "fail"];
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Views/message.php");
+ die();
+}
+
+function validate_mission($missionId, $userStatus) {
+ $dbmission = new DbMission;
+ switch ($userStatus) {
+ case 1:
+ $validated = $dbmission->validate_mission_by_pro($missionId);
+ break;
+ case 2:
+ $validated = $dbmission->validate_mission_by_client($missionId);
+ $_SESSION["missionCompleted"] = [
+ "missionId" => $missionId
+ ];
+ header("Location: /Views/mission.php");
+ die();
+ default:
+ break;
+ }
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($validated) {
+ $message = ["missionValidated", "success"];
+ } else {
+ $message = ["missionValidated", "fail"];
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Views/message.php");
+ die();
+}
+?> \ No newline at end of file
diff --git a/Wrapper/Functions/func_register.php b/Wrapper/Functions/func_register.php
index 8482752..e6757e2 100644
--- a/Wrapper/Functions/func_register.php
+++ b/Wrapper/Functions/func_register.php
@@ -2,22 +2,20 @@
// ****************************************************************************
// Description: Fonction d'inscription d'un nouvel utilisateur
// ****************************************************************************
-function register($email, $password, $is_client, $is_pro, $is_admin) {
+function register($email, $password, $userStatus) {
$dbuser = new DbUser;
$registered = $dbuser->user_register($email,
$password,
- $is_client,
- $is_pro,
- $is_admin
+ $userStatus
);
// Sélection du message à afficher en fonction de la réussite de l'inscription.
if ($registered) {
- $messageNumber = 10;
+ $mission = ["userAdd", "success"];
} else {
- $messageNumber = 11;
+ $mission = ["userAdd", "fail"];
}
// Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
+ $_SESSION["mission"] = $mission;
header("Location: /Views/message.php");
die();
}
diff --git a/Wrapper/Functions/func_search.php b/Wrapper/Functions/func_search.php
index d6cbfb2..6736a06 100644
--- a/Wrapper/Functions/func_search.php
+++ b/Wrapper/Functions/func_search.php
@@ -10,40 +10,50 @@ function search($request, $isResearch) {
if ($isResearch) {
$result = $dbsearch->get_pro_info_by_lastname($request);
// Pour chaque utilisateur avec un nom qui "match".
- foreach ($result as $key => $value) {
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_category($result[$i]["userId"]);
// récupération du nombre de mission effectué.
- $numberMission = $dbmission->count_pro_missions_by_lastname($value["lastname"]);
- $result[$key]["numberOfMissions"] = $numberMission[0]["COUNT(*)"];
+ $numberMission = $dbmission->count_pro_missions_by_id($result[$i]["userId"]);
+ $result[$i]["numberOfMissions"] = $numberMission[0][0];
// récupération des notes de l'utilisateur.
- $allNotes = $dbsearch->get_pro_note_by_lastname($value["lastname"]);
+ $allNotes = $dbsearch->get_pro_note_by_id($result[$i]["userId"]);
// Pour chaque note on la "push" (ajoute) dans une liste.
$notes = array();
- foreach ($allNotes as $value) {
- array_push($notes, $value["note"]);
+ for ($j = 0; $j < count($allNotes); $j++) {
+ if ($allNotes[$j][0]) {
+ array_push($notes, $allNotes[$j][0]);
+ }
}
// On fait la moyenne des notes,
// et pour les étoiles on "coupe" tout ce qui est après la virgule en castant en "int".
if ($notes) {
$average = array_sum($notes) / count($notes);
- $result[$key]["note"] = round($average, 2);
- $result[$key]["star"] = (int)$average;
+ $result[$i]["note"] = round($average, 2);
+ $result[$i]["star"] = (int)$average;
// Si il n'y a pas encore de note.
} else {
- $result[$key]["note"] = 0;
- $result[$key]["star"] = 0;
+ $result[$i]["note"] = 0;
+ $result[$i]["star"] = 0;
}
}
// Si c'est "plus d'info" et non une recherche.
} else {
$result = $dbsearch->get_user_info_by_id($request);
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_category($request);
+ }
}
// Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche.
- $search = array(
- "result" => $result,
- "isResearch" => true
- );
- if (!$isResearch) {
- $search["isResearch"] = false;
+ if ($isResearch) {
+ $search = array(
+ "result" => $result,
+ "isResearch" => true
+ );
+ } else {
+ $search = array(
+ "result" => $result,
+ "isResearch" => false
+ );
}
$_SESSION["search"] = $search;
header("Location: /index.php#separator2");
diff --git a/Wrapper/wrapper.php b/Wrapper/wrapper.php
index 13e0713..2645896 100644
--- a/Wrapper/wrapper.php
+++ b/Wrapper/wrapper.php
@@ -1,11 +1,11 @@
<?php
-// ****************************************************************************
-// Description: Le wrapper est le fichier qui fait le joint avec les
-// fonctions PHP .Son role est de filtrer les données recus et de
-// déclencher la bonne fonction. Selon la page qui l'appelle, j'ai
-// voulu créer ce système car c'est une solution que j'ai imaginé
-// pour rediréger tout mes formulaires vers une page unique.
-// ****************************************************************************
+// ################################################################################
+// # Description: Le wrapper est le fichier qui fait le joint avec les #
+// # fonctions PHP .Son role est de filtrer les données recus et de #
+// # déclencher la bonne fonction. Selon la page qui l'appelle, j'ai #
+// # voulu créer ce système car c'est une solution que j'ai imaginé #
+// # pour rediréger tout mes formulaires vers une page unique. #
+// ################################################################################
// Import de toutes les fonctions et des méthodes pour gérer la BDD.
require_once(dirname( __FILE__ )."/../Database/meth_dbuser.php");
@@ -21,6 +21,7 @@ require_once(dirname( __FILE__ )."/Functions/func_mission.php");
require_once(dirname( __FILE__ )."/Functions/func_register.php");
require_once(dirname( __FILE__ )."/Functions/func_language.php");
require_once(dirname( __FILE__ )."/Functions/func_sanitize.php");
+require_once(dirname( __FILE__ )."/Functions/func_myMission.php");
session_start();
// Si la session existe et que la variable src est bien présente.
@@ -28,6 +29,9 @@ session_start();
// et on vérifie que la data nécessaire est bien présente.
// Sinon: raise 404
if (isset($_SESSION["src"])) {
+// ****************************************************************************
+// SANITIZE
+// ****************************************************************************
// Avant toutes choses, on nettoie la data reçue.
if (isset($_POST)) {
foreach ($_POST as $key => $value) {
@@ -37,8 +41,61 @@ if (isset($_SESSION["src"])) {
}
}
- // Condition pour une connection
- if ($_SESSION["src"] == "login"
+
+// ****************************************************************************
+// LANGUE
+// ****************************************************************************
+ // Condition pour le changement de la langue
+ if (isset($_POST["langSel"])
+ && ($_POST["langSel"] == "en"
+ || $_POST["langSel"] == "fr")
+ ) {
+ set_language($_POST["langSel"]);
+
+
+// ****************************************************************************
+// RECHERCHE
+// ****************************************************************************
+ // Condition pour une recherche
+} elseif ($_SESSION["src"] == "index"
+ && (isset($_POST["search"]) && $_POST["search"] !== "")
+ || (isset($_POST["moreInfoProId"]) && $_POST["moreInfoProId"] !== "")
+ ) {
+
+ if ($_POST["search"]) {
+ search($_POST["search"], 1);
+
+ } elseif ($_POST["moreInfoProId"]) {
+ search($_POST["moreInfoProId"], 0);
+
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// INSCRIPTION
+// ****************************************************************************
+ // Condition pour une inscription
+ } elseif ($_SESSION["src"] == "register"
+ && isset($_POST["email"],
+ $_POST["password"],
+ $_POST["userStatus"]
+ )
+ && $_POST["email"] !== ""
+ && $_POST["password"] !== ""
+ ) {
+ register($_POST["email"],
+ $_POST["password"],
+ $_POST["userStatus"]
+ );
+
+
+// ****************************************************************************
+// CONNECTION
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "login"
&& isset($_POST["email"], $_POST["password"])
&& $_POST["email"] !== ""
&& $_POST["password"] !== ""
@@ -50,7 +107,10 @@ if (isset($_SESSION["src"])) {
}
login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]);
- // Condition pour une connection auto
+
+// ****************************************************************************
+// CONNECTION AVEC COOKIE
+// ****************************************************************************
} elseif ($_SESSION["src"] == "autoLogin"
&& isset($_COOKIE["autoLogin"])
&& $_SESSION["loggedIn"]
@@ -58,61 +118,38 @@ if (isset($_SESSION["src"])) {
// Si connection par cookie, on le décode avant de le passer à la fonction.
login(json_decode(base64_decode($_COOKIE["autoLogin"])));
- // Condition pour une déconnection
+
+// ****************************************************************************
+// DECONNECTION
+// ****************************************************************************
} elseif ($_SESSION["src"] == "logout"
&& isset($_SESSION["loggedIn"])
&& $_SESSION["loggedIn"]
) {
logout();
- // Condition pour une inscription
- } elseif ($_SESSION["src"] == "register"
- && isset($_POST["email"],
- $_POST["password"]
- )
- && $_POST["email"] !== ""
- && $_POST["password"] !== ""
- ) {
- if (isset($_POST["is_client"]) && $_POST["is_client"] == "on") {
- $_POST["is_client"] = 1;
- } else {
- $_POST["is_client"] = 0;
- }
- if (isset($_POST["is_pro"]) && $_POST["is_pro"] == "on") {
- $_POST["is_pro"] = 1;
- } else {
- $_POST["is_pro"] = 0;
- }
- if (isset($_POST["is_admin"]) && $_POST["is_admin"] == "on") {
- $_POST["is_admin"] = 1;
- } else {
- $_POST["is_admin"] = 0;
- }
- register($_POST["email"],
- $_POST["password"],
- $_POST["is_client"],
- $_POST["is_pro"],
- $_POST["is_admin"]
- );
+// ****************************************************************************
+// MODIFICATION DES INFOS UTILISATEUR
+// ****************************************************************************
// Condition pour une modification des infos
} elseif ($_SESSION["src"] == "userInfo"
// Vérification des données si client
- && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["isClient"],
+ && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"],
$_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
$_POST["adress"], $_POST["zipCode"], $_POST["city"]
)
- && $_SESSION["isClient"]
+ && $_SESSION["userStatus"] == 2
&& $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
&& $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
&& $_POST["zipCode"] !== "" && $_POST["city"] !== ""
// Ou si pro
- || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["isPro"],
+ || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"],
$_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
$_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"],
$_POST["degree"], $_POST["capability"], $_POST["description"]
)
- && $_SESSION["isPro"]
+ && $_SESSION["userStatus"] == 1
&& $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
&& $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
&& $_POST["zipCode"] !== "" && $_POST["city"] !== ""
@@ -120,27 +157,114 @@ if (isset($_SESSION["src"])) {
&& $_POST["description"] !== ""
)
) {
- modify_user_info($_POST, $_SESSION["userId"], $_SESSION["isPro"]);
+ modify_user_info($_POST, $_SESSION["userId"], $_SESSION["userStatus"]);
+
+
+// ****************************************************************************
+// MISSION - MANDATER
+// ****************************************************************************
+ // mandater une mission
+ } elseif ($_SESSION["src"] == "index"
+ && (isset($_POST["mandateProId"]) && $_POST["mandateProId"] !== "")
+ ) {
+ mission_initiate($_POST["mandateProId"]);
+
+// ****************************************************************************
+// MISSION - ENREGISTRER UNE REQUETE
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "mission"
+ && isset($_SESSION["loggedIn"], $_SESSION["userStatus"],
+ $_POST["missionSubject"], $_POST["missionJob"],
+ $_POST["missionProId"]
+ )
+ && $_SESSION["loggedIn"]
+ && $_SESSION["userStatus"] == 2
+ && $_POST["missionSubject"] !== ""
+ && $_POST["missionJob"] !== ""
+ && $_POST["missionProId"] !== ""
+ ) {
+ mission_register($_POST["missionSubject"],
+ $_SESSION["userId"],
+ $_POST["missionProId"],
+ $_POST["missionJob"]
+ );
+
+
+// ****************************************************************************
+// MISSION - VALIDER ET REVIEW
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "mission"
+ && isset($_SESSION["loggedIn"], $_SESSION["userStatus"],
+ $_POST["missionCompletedId"], $_POST["review"],
+ $_POST["note"]
+ )
+ && $_SESSION["loggedIn"]
+ && $_SESSION["userStatus"] == 2
+ && $_POST["missionCompletedId"] !== ""
+ && $_POST["review"] !== ""
+ && $_POST["note"] !== ""
+ ) {
+ mission_review($_POST["missionCompletedId"],
+ $_POST["review"],
+ $_POST["note"]
+ );
+
+
+// ****************************************************************************
+// GESTION DE SES MISSIONS
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "myMission"
+ && isset($_SESSION["loggedIn"],
+ $_SESSION["userStatus"],
+ )
+ && ($_SESSION["userStatus"] == 1
+ || $_SESSION["userStatus"] == 2
+ )
+ ) {
+ if (isset($_POST["acceptedMissionId"])
+ && $_POST["acceptedMissionId"] !== ""
+ ) {
+ accept_mission($_POST["acceptedMissionId"]);
+
+ } elseif (isset($_POST["validatedMissionId"], $_SESSION["userStatus"])
+ && $_POST["validatedMissionId"] !== ""
+ && ($_SESSION["userStatus"] == 1
+ ||$_SESSION["userStatus"] == 2
+ )
+ ) {
+ validate_mission($_POST["validatedMissionId"], $_SESSION["userStatus"]);
+
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// ADMINISTRATION
+// ****************************************************************************
// Condition pour l'administration du site
} elseif ($_SESSION["src"] == "admin"
&& isset($_SESSION["loggedIn"],
- $_SESSION["isAdmin"],
+ $_SESSION["userStatus"],
)
&& $_SESSION["loggedIn"]
- && $_SESSION["isAdmin"]
+ && $_SESSION["userStatus"] == 0
&& (isset($_POST["userId"])
- || isset($_POST["addCategoryNameEn"],
- $_POST["addCategoryNameFr"]
- )
- || isset($_POST["delCategoryId"])
- )
+ || isset($_POST["addCategoryNameEn"],
+ $_POST["addCategoryNameFr"]
+ )
+ || isset($_POST["delCategoryId"])
+ )
) {
+
// Suppression d'un utilisateur
if (isset($_POST["userId"])
- && $_POST["userId"] !== ""
+ && $_POST["userId"] !== ""
) {
delete($_POST["userId"]);
+
// Ajout d'un catégorie d'emploi
} elseif (isset($_POST["addCategoryNameEn"])
&& isset($_POST["addCategoryNameFr"])
@@ -148,56 +272,33 @@ if (isset($_SESSION["src"])) {
&& $_POST["addCategoryNameFr"] !== ""
) {
job_category_add($_POST["addCategoryNameEn"], $_POST["addCategoryNameFr"]);
+
// Suppression d'une categorie d'emploi
- }elseif (isset($_POST["delCategoryId"])
- && $_POST["delCategoryId"] !== ""
+ } elseif (isset($_POST["delCategoryId"])
+ && $_POST["delCategoryId"] !== ""
) {
job_category_del($_POST["delCategoryId"]);
- }
- // Condition pour un enregistrement d'une mission
- } elseif ($_SESSION["src"] == "mission"
- && isset($_SESSION["loggedIn"], $_SESSION["isClient"],
- $_POST["subject"], $_POST["note"],
- $_POST["review"], $_POST["proId"]
- )
- && $_SESSION["loggedIn"]
- && $_SESSION["isClient"]
- && $_POST["subject"] !== ""
- && $_POST["note"] !== ""
- && $_POST["review"] !== ""
- && $_POST["proId"] !== ""
- ) {
- register_mission($_POST["subject"],
- $_POST["note"],
- $_POST["review"],
- $_SESSION["userId"],
- $_POST["proId"]
- );
-
- // Condition pour une recherche
- } elseif ($_SESSION["src"] == "index"
- && (isset($_POST["search"]) && $_POST["search"] !== "")
- || (isset($_POST["searchInfo"]) && $_POST["searchInfo"] !== "")
- ) {
- if (isset($_POST["search"])) {
- search($_POST["search"], true);
+ // sinon
} else {
- search($_POST["searchInfo"], false);
+ http_response_code(404);
+ die();
}
- // Condition pour le changement de la langue
- } elseif (isset($_SESSION["src"], $_POST["langSel"])
- && ($_POST["langSel"] == "en" || $_POST["langSel"] == "fr")
- ) {
- set_language($_POST["langSel"]);
+// ****************************************************************************
+// SI ERREUR DANS $_SESSION ou $_POST
+// ****************************************************************************
// Enfin, si requete invalide
} else {
http_response_code(404);
die();
}
+
+// ****************************************************************************
+// SI "src" N'EST PAS DEFINI DANS $_SESSION
+// ****************************************************************************
} else {
http_response_code(404);
die();
diff --git a/index.php b/index.php
index 704a40b..a8995be 100644
--- a/index.php
+++ b/index.php
@@ -46,6 +46,6 @@ if (isset($_COOKIE["autoLogin"]) && $_SESSION["loggedIn"] == false) {
<script src="/Statics/Js/main.js"></script>
<script src="/Statics/Js/index.js"></script>
<!-- Activation du slider -->
- <script>start_slideshow();</script>
+ <script>slideshow_start();</script>
</body>
</html> \ No newline at end of file
diff --git a/todo.txt b/todo.txt
index f117a58..938a5eb 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,12 +1,12 @@
#################################################
-- Global
+- Global front
- Système de notification ? (5)
- Revoir front Client & Pro
- - Requète de mission pour un pro sur le moteur de recherche. (3)
- - Page mes missions, passés, en cours, terminées. (3)
+ - Requète de mission pour un pro sur le moteur de recherche. (DONE)
+ - Page mes missions, passés, en cours, terminées. (DONE)
- Revoir mes infos pour adapter aux clients & pros. (DONE)
- Revoir front Admin