Hotfix: Organisation fonctions annexes/ variables
This commit is contained in:
parent
f43158c773
commit
c9706d5cd1
@ -26,8 +26,6 @@
|
||||
<script defer src="/scripts/libs/jquery-ui-min.js"></script>
|
||||
<script defer src="/scripts/libs/bootstrap-datepicker-min.js"></script>
|
||||
<script defer src="/scripts/libs/marked.min.js"></script>
|
||||
<script defer src="/scripts/variables.js"></script>
|
||||
<script defer src="/scripts/fonctions_annexes.js"></script>
|
||||
<script defer src="/scripts/main.js"></script>
|
||||
<?php
|
||||
// Ajouts des scripts personnalisés pour chaque page
|
||||
|
@ -14,21 +14,21 @@ switch ($currentpage) {
|
||||
$description = 'FunctionProject est un projet créé par Divlo qui a pour but de rassembler plein de mini-programme permettant de faire plusieurs choses comme savoir la météo, générer un nombre aléatoire, etc.';
|
||||
$image = 'https://function.divlo.fr/img/FunctionProject_icon.png';
|
||||
$indexActive = 'active';
|
||||
$scripts = array('<script defer src="/scripts/pagesJS/home-page.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/pagesJS/home-page.js"></script>');
|
||||
break;
|
||||
case '/views/function-list.php':
|
||||
$title = 'Liste des fonctions';
|
||||
$description = 'La liste des mini-programmes.';
|
||||
$image = 'https://function.divlo.fr/img/FunctionProject_icon.png';
|
||||
$functionlistActive = 'active';
|
||||
$scripts = array('<script defer src="/scripts/pagesJS/functions-list.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/pagesJS/functions-list.js"></script>');
|
||||
break;
|
||||
case '/views/feedback-form_view.php':
|
||||
$title = 'Feedback Formulaire';
|
||||
$description = "Vous pouvez m'envoyer votre avis sur le projet grâce à ce formulaire 📝.";
|
||||
$image = 'https://function.divlo.fr/img/Feedback-Formulaire.png';
|
||||
$feedbackActive = 'active';
|
||||
$scripts = array('<script defer src="/scripts/execute-function/feedbackForm_DOM.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/execute-function/feedbackForm_DOM.js"></script>');
|
||||
break;
|
||||
case '/views/feedback-list.php':
|
||||
$title = 'Liste des feedback';
|
||||
@ -81,7 +81,7 @@ switch ($currentpage) {
|
||||
$title = 'Liste des citations';
|
||||
$description = "La liste de toutes les citations ou proverbes (aimé par Divlo).";
|
||||
$image = 'https://function.divlo.fr/img/function-image/randomQuote.png';
|
||||
$scripts = array('<script defer src="/scripts/pagesJS/quote-list.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/pagesJS/quote-list.js"></script>');
|
||||
break;
|
||||
case '/views/function-views/convertCurrency.php':
|
||||
$title = 'Conversion de devise';
|
||||
@ -123,20 +123,20 @@ switch ($currentpage) {
|
||||
$title = "Raccourcisseurs de liens";
|
||||
$description = "Une URL trop longue ? Raccourcissez-là !";
|
||||
$image = 'https://function.divlo.fr/img/function-image/linkShortener.png';
|
||||
$scripts = array('<script defer src="/scripts/execute-function/linkShortener_DOM.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/execute-function/linkShortener_DOM.js"></script>');
|
||||
break;
|
||||
case '/views/short_links-list.php':
|
||||
$title = 'Liste des liens récemment raccourcit';
|
||||
$description = "La liste de vos liens raccourcit les plus récents.";
|
||||
$image = 'https://function.divlo.fr/img/function-image/linkShortener.png';
|
||||
$scripts = array('<script defer src="/scripts/pagesJS/short_links-list.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/pagesJS/short_links-list.js"></script>');
|
||||
break;
|
||||
case '/views/function-views/toDoList.php':
|
||||
$title = 'Liste de choses à faire';
|
||||
$description = "La liste des choses à faire.";
|
||||
$image = 'https://function.divlo.fr/img/function-image/toDoList.png';
|
||||
$toDoListCSS = true;
|
||||
$scripts = array('<script defer src="/scripts/execute-function/toDoList_DOM.js"></script>');
|
||||
$scripts = array('<script type="module" defer src="/scripts/execute-function/toDoList_DOM.js"></script>');
|
||||
break;
|
||||
default:
|
||||
$title = 'Erreur 404';
|
||||
|
@ -0,0 +1,20 @@
|
||||
import { convertCurrency } from '../functions/fonctions_principales/convertCurrency_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#convertCurrencyForm").submit(() => {
|
||||
event.preventDefault();
|
||||
let value = $('#value').val();
|
||||
const currencyOfTheValue = $("#currencyOfTheValue option:selected").val();
|
||||
const currencyAfter = $("#currencyAfter option:selected").val();
|
||||
if(isEmptyValue(value) || isNaN(parseFloat(value))) {
|
||||
$('.rateDate').html('');
|
||||
$('.results').html(emptyMessageError);
|
||||
}
|
||||
else {
|
||||
const url = 'https://api.exchangeratesapi.io/latest?base=' + currencyOfTheValue;
|
||||
value = parseFloat(value);
|
||||
convertCurrency(value, currencyAfter, url);
|
||||
}
|
||||
});
|
||||
});
|
@ -1,4 +1,5 @@
|
||||
import { convertDistance } from '../functions/fonctions_principales/convertDistance_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#convertDistanceForm").submit((event) => {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { decimalToBinary, binaryToDecimal, decimalToHexadecimal, hexadecimalToDecimal, binaryToHexadecimal, hexadecimalToBinary, textToNumberUnicode, numberUnicodeToText, textToBinary, binaryToText, textToHexadecimal, hexadecimalToText } from '../functions/fonctions_principales/convertEncoding_Functions.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#convertEncodingForm").submit((event) => {
|
||||
|
@ -1,4 +1,7 @@
|
||||
import { convertArabicToRoman, convertRomanToArabic } from '../functions/fonctions_principales/convertRomanArabicNumbers_Functions.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
import { formatNumberResult } from '../functions/fonctions_annexes/formatNumberResult_Function.js';
|
||||
import { isFloat } from '../functions/fonctions_annexes/isFloat_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#convertRomanArabicNumbersForm").submit((event) => {
|
||||
@ -13,7 +16,7 @@ $(function () {
|
||||
if (convertNumberType === "Nombre Romain") {
|
||||
const result = convertArabicToRoman(parseInt(numbersValue));
|
||||
let numbersValueFormat = formatNumberResult(numbersValue);
|
||||
if (result === messageError || isFloat(numbersValue)) {
|
||||
if (result === '' || isFloat(numbersValue)) {
|
||||
$('.results').html(messageError);
|
||||
} else {
|
||||
$('.results').html(`<b>${numbersValueFormat}</b> s'écrit <b>${result}</b> en chiffres romains.`);
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { convertTemperature } from '../functions/fonctions_principales/convertTemperature_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#convertTemperatureForm").submit((event) => {
|
||||
@ -8,6 +9,8 @@ $(function () {
|
||||
const unit = temperatureValue.slice(temperatureValue.length - 2);
|
||||
if(isEmptyValue(temperatureValue)) {
|
||||
$('.results').html(emptyMessageError);
|
||||
} else if (isNaN(degree) && (!unit === "°C" || !unit === "°F")) {
|
||||
$('.results').html(messageError);
|
||||
}
|
||||
else {
|
||||
$('.results').html(convertTemperature(degree, unit));
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { filterStudents } from '../functions/fonctions_principales/filterStudents_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
import { capitalize } from '../functions/fonctions_annexes/capitalize_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#filterStudentsForm").submit((event) => {
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { heapAlgorithm } from '../functions/fonctions_principales/heapAlgorithm_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
import { formatNumberResult } from '../functions/fonctions_annexes/formatNumberResult_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#heapAlgorithmForm").submit((event) => {
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { randomNumber } from '../functions/fonctions_principales/randomNumber_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
import { formatNumberResult } from '../functions/fonctions_annexes/formatNumberResult_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#randomNumberForm").submit((event) => {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { weatherRequest } from '../functions/fonctions_principales/weatherRequest_Function.js';
|
||||
import { isEmptyValue } from '../functions/fonctions_annexes/isEmptyValue_Function.js';
|
||||
|
||||
$(function () {
|
||||
$("#weatherForm").submit((event) => {
|
||||
|
@ -1,183 +0,0 @@
|
||||
/* Fonctions Annexes */
|
||||
|
||||
/**
|
||||
* @function isEmptyValue
|
||||
* @description Vérifie si une valeur est vide.
|
||||
* @param {string} value
|
||||
* @returns {boolean}
|
||||
* @example isEmptyValue(null) → true
|
||||
*/
|
||||
function isEmptyValue(value) {
|
||||
return value === '' || value === null || value === undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* @function formatNumberResult
|
||||
* @description Formate un nombre avec des espaces.
|
||||
* @param {number} num
|
||||
* @returns {(number|string)} - Le nombre formaté soit en nombre ou soit en string si supérieur à 1000 car pour 1000 par exemple formatNumberResult renvoie '1 000'
|
||||
* @example formatNumberResult(76120) → '76 120'
|
||||
*/
|
||||
function formatNumberResult(num) {
|
||||
if(!isNaN(num) && num >= 1000) {
|
||||
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ');
|
||||
}
|
||||
else {
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @function isFloat
|
||||
* @description Vérifie si un nombre est un float (integer exclu).
|
||||
* @param {number} value
|
||||
* @returns {boolean}
|
||||
* @example isFloat(76120.474) → true
|
||||
*/
|
||||
function isFloat(value) {
|
||||
return !isNaN(value) && value.toString().includes('.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @function capitalize
|
||||
* @description Majuscule à la 1ère lettre d'une string.
|
||||
* @param {string} s
|
||||
* @returns {string}
|
||||
* @example capitalize('hello world!') → 'Hello world!'
|
||||
*/
|
||||
function capitalize(s) {
|
||||
if (typeof s !== 'string') return ''
|
||||
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||
}
|
||||
|
||||
/**
|
||||
* @function dateTimeUTC
|
||||
* @description Donne la date et l'heure selon l'UTC (Universal Time Coordinated).
|
||||
* @requires {@link fonctions_annexes.js: showDateTime}
|
||||
* @requires {@link variables.js: timeNow, utcOffset, timeNow.setMinutes(timeNow.getMinutes() + utcOffset)}
|
||||
* @param {string} utc Heure de décalage par rapport à l'UTC
|
||||
* @returns {function} → showDateTime(enteredOffset) → Retourne l'exécution de la fonction showDateTime
|
||||
* @example dateTimeUTC('0')
|
||||
*/
|
||||
function dateTimeUTC(utc) {
|
||||
const enteredOffset = parseFloat(utc)*60;
|
||||
timeNow.setMinutes(timeNow.getMinutes() + enteredOffset);
|
||||
return showDateTime(enteredOffset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @function showDateTime
|
||||
* @description Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00).
|
||||
* @requires {@link fonctions_annexes.js: showDateTime}
|
||||
* @param {string} utc Heure de décalage par rapport à l'UTC
|
||||
* @returns {object} Retourne un objet contenant l'année, le mois, le jour, l'heure, les minutes, les secondes et la date formaté
|
||||
* @example dateTimeUTC('0') → dateTimeUTC vous renvoie l'exécution de showDateTime
|
||||
*/
|
||||
function showDateTime(enteredOffset) {
|
||||
const year = timeNow.getFullYear();
|
||||
const month = ('0'+(timeNow.getMonth()+1)).slice(-2);
|
||||
const day = ('0'+timeNow.getDate()).slice(-2);
|
||||
const hour = ('0'+timeNow.getHours()).slice(-2);
|
||||
const minute = ('0'+timeNow.getMinutes()).slice(-2);
|
||||
const second = ('0'+timeNow.getSeconds()).slice(-2);
|
||||
|
||||
const showDateTimeValue = day + "/" + month + "/" + year + " - " + hour + ":" + minute + ":" + second;
|
||||
const objectDateTime = {
|
||||
year: year,
|
||||
month: month,
|
||||
day: day,
|
||||
hour: hour,
|
||||
minute: minute,
|
||||
second: second,
|
||||
showDateTimeValue: showDateTimeValue
|
||||
};
|
||||
timeNow.setMinutes(timeNow.getMinutes() - enteredOffset)
|
||||
|
||||
return objectDateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @function realDateTime
|
||||
* @description Affiche l'heure en temps réel.
|
||||
* @param {string} id
|
||||
* @returns {boolean} true → Toujours true
|
||||
* @example window.onload = realDateTime('realDateTime') → va afficher l'heure en temps réel au chargement de la page dans la balise avec l'id realDateTime
|
||||
*/
|
||||
function realDateTime(id) {
|
||||
const realDateTimeNow = new Date;
|
||||
// const year = realDateTimeNow.getFullYear();
|
||||
// const month = ('0'+(realDateTimeNow.getMonth()+1)).slice(-2);
|
||||
// const day = ('0'+realDateTimeNow.getDate()).slice(-2);
|
||||
const hour = ('0'+realDateTimeNow.getHours()).slice(-2);
|
||||
const minute = ('0'+realDateTimeNow.getMinutes()).slice(-2);
|
||||
const second = ('0'+realDateTimeNow.getSeconds()).slice(-2);
|
||||
|
||||
const resultat = hour + ":" + minute + ":" + second;
|
||||
|
||||
document.getElementById(id).innerHTML = resultat;
|
||||
setTimeout('realDateTime("'+id+'");','1000');
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @function isValidDate
|
||||
* @description Vérifie si une date est valide (si la variable verifyDate a déjà exister avant la variable currentDate).
|
||||
* @param {string} verifyDate (format : dd/mm/yyyy) sachant qu'il faut faire -1 au mois car de 0 à 11 donc par exemple 14/12/2019 sera le 14 novembre 2019
|
||||
* @param {string} currentDate (format : dd/mm/yyyy) pas besoin de faire -1 au mois donc par exemple 14/12/2019 sera le 14 décembre 2019
|
||||
* @returns {boolean}
|
||||
* @example
|
||||
* isValidDate('10/11/2019', '11/11/2019') → false → Comparaison entre le 10 décembre 2019 et le 11 novembre 2019
|
||||
* isValidDate('10/10/2019', '11/11/2019') → true → Comparison entre le 10 novembre 2019 et le 11 novembre 2019
|
||||
*/
|
||||
function isValidDate(verifyDate, currentDate) {
|
||||
// Date à vérifier
|
||||
const toVerifyDate = verifyDate.split('/');
|
||||
const splitedToVerifyDate = toVerifyDate[2] + '-' + (parseInt(toVerifyDate[1]) + 1) + '-' + toVerifyDate[0];
|
||||
const msToVerifyDate = Date.parse(splitedToVerifyDate);
|
||||
|
||||
// Date courante
|
||||
currentDate = currentDate.substr(0,10);
|
||||
const currentDateSplited = currentDate.split('/');
|
||||
const currentDateFormat = currentDateSplited[2] + '-' + currentDateSplited[1] + '-' + currentDateSplited[0];
|
||||
const msCurrentDate = Date.parse(currentDateFormat);
|
||||
|
||||
if(msToVerifyDate <= msCurrentDate) {
|
||||
return true;
|
||||
} else if(msToVerifyDate > msCurrentDate) {
|
||||
return false;
|
||||
} else {
|
||||
return messageError;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @function createSessionCookie
|
||||
* @description Créer un cookie de session.
|
||||
* @param {string} name Nom du cookie
|
||||
* @param {string} value Valeur du cookie
|
||||
*/
|
||||
function createSessionCookie(name, value) {
|
||||
document.cookie = escape(name) + "=" + escape(value) + " ; path=/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @function getCookieValue
|
||||
* @description Récupère la valeur d'un cookie.
|
||||
* @param {string} name Nom du cookie
|
||||
* @param {string} value Valeur du cookie
|
||||
*/
|
||||
function getCookieValue(cname) {
|
||||
const name = cname + "=";
|
||||
const decodedCookie = decodeURIComponent(document.cookie);
|
||||
const ca = decodedCookie.split(';');
|
||||
for(let i = 0; i < ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
14
scripts/functions/fonctions_annexes/capitalize_Function.js
Normal file
14
scripts/functions/fonctions_annexes/capitalize_Function.js
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* @function capitalize
|
||||
* @description Majuscule à la 1ère lettre d'une string.
|
||||
* @param {string} s
|
||||
* @returns {string}
|
||||
* @example capitalize('hello world!') → 'Hello world!'
|
||||
*/
|
||||
function capitalize(s) {
|
||||
if (typeof s !== 'string') return ''
|
||||
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { capitalize };
|
@ -0,0 +1,34 @@
|
||||
/**
|
||||
* @function createSessionCookie
|
||||
* @description Créer un cookie de session.
|
||||
* @param {string} name Nom du cookie
|
||||
* @param {string} value Valeur du cookie
|
||||
*/
|
||||
function createSessionCookie(name, value) {
|
||||
document.cookie = escape(name) + "=" + escape(value) + " ; path=/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @function getCookieValue
|
||||
* @description Récupère la valeur d'un cookie.
|
||||
* @param {string} name Nom du cookie
|
||||
* @param {string} value Valeur du cookie
|
||||
*/
|
||||
function getCookieValue(cname) {
|
||||
const name = cname + "=";
|
||||
const decodedCookie = decodeURIComponent(document.cookie);
|
||||
const ca = decodedCookie.split(';');
|
||||
for(let i = 0; i < ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { createSessionCookie, getCookieValue };
|
@ -0,0 +1,50 @@
|
||||
import { timeNow, utcOffset } from '../../variables/timesVariables.js';
|
||||
|
||||
/**
|
||||
* @function dateTimeUTC
|
||||
* @description Donne la date et l'heure selon l'UTC (Universal Time Coordinated).
|
||||
* @requires {@link fonctions_annexes.js: showDateTime}
|
||||
* @requires {@link variables.js: timeNow, utcOffset, timeNow.setMinutes(timeNow.getMinutes() + utcOffset)}
|
||||
* @param {string} utc Heure de décalage par rapport à l'UTC
|
||||
* @returns {function} → showDateTime(enteredOffset) → Retourne l'exécution de la fonction showDateTime
|
||||
* @example dateTimeUTC('0')
|
||||
*/
|
||||
function dateTimeUTC(utc) {
|
||||
const enteredOffset = parseFloat(utc)*60;
|
||||
timeNow.setMinutes(timeNow.getMinutes() + enteredOffset);
|
||||
return showDateTime(enteredOffset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @function showDateTime
|
||||
* @description Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00).
|
||||
* @requires {@link fonctions_annexes.js: showDateTime}
|
||||
* @param {string} utc Heure de décalage par rapport à l'UTC
|
||||
* @returns {object} Retourne un objet contenant l'année, le mois, le jour, l'heure, les minutes, les secondes et la date formaté
|
||||
* @example dateTimeUTC('0') → dateTimeUTC vous renvoie l'exécution de showDateTime
|
||||
*/
|
||||
function showDateTime(enteredOffset) {
|
||||
const year = timeNow.getFullYear();
|
||||
const month = ('0'+(timeNow.getMonth()+1)).slice(-2);
|
||||
const day = ('0'+timeNow.getDate()).slice(-2);
|
||||
const hour = ('0'+timeNow.getHours()).slice(-2);
|
||||
const minute = ('0'+timeNow.getMinutes()).slice(-2);
|
||||
const second = ('0'+timeNow.getSeconds()).slice(-2);
|
||||
|
||||
const showDateTimeValue = day + "/" + month + "/" + year + " - " + hour + ":" + minute + ":" + second;
|
||||
const objectDateTime = {
|
||||
year: year,
|
||||
month: month,
|
||||
day: day,
|
||||
hour: hour,
|
||||
minute: minute,
|
||||
second: second,
|
||||
showDateTimeValue: showDateTimeValue
|
||||
};
|
||||
timeNow.setMinutes(timeNow.getMinutes() - enteredOffset)
|
||||
|
||||
return objectDateTime;
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { dateTimeUTC, showDateTime };
|
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @function formatNumberResult
|
||||
* @description Formate un nombre avec des espaces.
|
||||
* @param {number} num
|
||||
* @returns {(number|string)} - Le nombre formaté soit en nombre ou soit en string si supérieur à 1000 car pour 1000 par exemple formatNumberResult renvoie '1 000'
|
||||
* @example formatNumberResult(76120) → '76 120'
|
||||
*/
|
||||
function formatNumberResult(num) {
|
||||
if(!isNaN(num) && num >= 1000) {
|
||||
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ');
|
||||
}
|
||||
else {
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { formatNumberResult };
|
13
scripts/functions/fonctions_annexes/isEmptyValue_Function.js
Normal file
13
scripts/functions/fonctions_annexes/isEmptyValue_Function.js
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @function isEmptyValue
|
||||
* @description Vérifie si une valeur est vide.
|
||||
* @param {string} value
|
||||
* @returns {boolean}
|
||||
* @example isEmptyValue(null) → true
|
||||
*/
|
||||
function isEmptyValue(value) {
|
||||
return value === '' || value === null || value === undefined;
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { isEmptyValue };
|
13
scripts/functions/fonctions_annexes/isFloat_Function.js
Normal file
13
scripts/functions/fonctions_annexes/isFloat_Function.js
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @function isFloat
|
||||
* @description Vérifie si un nombre est un float (integer exclu).
|
||||
* @param {number} value
|
||||
* @returns {boolean}
|
||||
* @example isFloat(76120.474) → true
|
||||
*/
|
||||
function isFloat(value) {
|
||||
return !isNaN(value) && value.toString().includes('.');
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { isFloat };
|
33
scripts/functions/fonctions_annexes/isValidDate_Function.js
Normal file
33
scripts/functions/fonctions_annexes/isValidDate_Function.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @function isValidDate
|
||||
* @description Vérifie si une date est valide (si la variable verifyDate a déjà exister avant la variable currentDate).
|
||||
* @param {string} verifyDate (format : dd/mm/yyyy) sachant qu'il faut faire -1 au mois car de 0 à 11 donc par exemple 14/12/2019 sera le 14 novembre 2019
|
||||
* @param {string} currentDate (format : dd/mm/yyyy) pas besoin de faire -1 au mois donc par exemple 14/12/2019 sera le 14 décembre 2019
|
||||
* @returns {boolean}
|
||||
* @example
|
||||
* isValidDate('10/11/2019', '11/11/2019') → false → Comparaison entre le 10 décembre 2019 et le 11 novembre 2019
|
||||
* isValidDate('10/10/2019', '11/11/2019') → true → Comparison entre le 10 novembre 2019 et le 11 novembre 2019
|
||||
*/
|
||||
function isValidDate(verifyDate, currentDate) {
|
||||
// Date à vérifier
|
||||
const toVerifyDate = verifyDate.split('/');
|
||||
const splitedToVerifyDate = toVerifyDate[2] + '-' + (parseInt(toVerifyDate[1]) + 1) + '-' + toVerifyDate[0];
|
||||
const msToVerifyDate = Date.parse(splitedToVerifyDate);
|
||||
|
||||
// Date courante
|
||||
currentDate = currentDate.substr(0,10);
|
||||
const currentDateSplited = currentDate.split('/');
|
||||
const currentDateFormat = currentDateSplited[2] + '-' + currentDateSplited[1] + '-' + currentDateSplited[0];
|
||||
const msCurrentDate = Date.parse(currentDateFormat);
|
||||
|
||||
if(msToVerifyDate <= msCurrentDate) {
|
||||
return true;
|
||||
} else if(msToVerifyDate > msCurrentDate) {
|
||||
return false;
|
||||
} else {
|
||||
return messageError;
|
||||
}
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
export { isValidDate };
|
@ -1,3 +1,5 @@
|
||||
import { formatNumberResult } from '../fonctions_annexes/formatNumberResult_Function.js';
|
||||
|
||||
/**
|
||||
* @function armstrongNumber
|
||||
* @description Vérifie si un nombre fait partie des nombres d'Armstrong.
|
||||
|
@ -1,7 +1,12 @@
|
||||
import { formatNumberResult } from '../fonctions_annexes/formatNumberResult_Function.js';
|
||||
import { isValidDate } from '../fonctions_annexes/isValidDate_Function.js';
|
||||
import { dateTimeUTC } from '../fonctions_annexes/dateTimeManagement_Functions.js';
|
||||
|
||||
/**
|
||||
* @function calculateAge
|
||||
* @description Calcule l'âge de quelqu'un selon ça date de naissance.
|
||||
* @requires {@link fonctions_annexes.js: formatNumberResult, isValidDate}
|
||||
* @requires {@link fonctions_annexes.js: formatNumberResult, isValidDate, dateTimeUTC}
|
||||
* @requires {@link main.js: messageError}
|
||||
* @requires {@link "external:moment.js"}
|
||||
* @see {@link https://momentjs.com/}
|
||||
* @param {string} birthDateEntered - Date de naissance (dd/mm/yyyy)
|
||||
|
@ -1,3 +1,6 @@
|
||||
import { formatNumberResult } from '../fonctions_annexes/formatNumberResult_Function.js';
|
||||
import { correspondancesMonnaie } from '../../variables/currencyReference.js';
|
||||
|
||||
/**
|
||||
* @function convertCurrency
|
||||
* @description Convertis une valeur dans une devise dans une autre devise grâce à l'API exchangeratesapi.io.
|
||||
|
@ -1,6 +1,9 @@
|
||||
import { formatNumberResult } from '../fonctions_annexes/formatNumberResult_Function.js';
|
||||
|
||||
/**
|
||||
* @function convertDistance
|
||||
* @description Convertis la longueur (distance) avec les unités allant de picomètre au Téramètre.
|
||||
* @requires {@link fonctions_annexes.js: formatNumberResult}
|
||||
* @param {number} firstValue - Le nombre que vous voulez convertir
|
||||
* @param {string} unitFirstValue - L'unité du nombre que vous voulez convertir
|
||||
* @param {string} unitFinalValue - L'unité de votre nombre après la conversion
|
||||
@ -14,7 +17,7 @@ function convertDistance (firstValue, unitFirstValue, unitFinalValue) {
|
||||
const index2 = reference.indexOf(unitFinalValue);
|
||||
|
||||
// Condition qui vérifie si les valeurs entrées sont justes
|
||||
if (!isNaN(firstValue) && typeof unitFirstValue === 'string' && typeof unitFinalValue === 'string' && (index1.toString() && index2.toString()) != '-1') {
|
||||
if ((index1.toString() && index2.toString()) !== '-1') {
|
||||
// Conversion des longueurs :
|
||||
const difference = index1 - index2;
|
||||
const result = firstValue*Math.pow(10,difference);
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { correspondancesRomainArabe } from '../../variables/romanArabicNumbersReference.js';
|
||||
|
||||
/**
|
||||
* @function convertArabicToRoman
|
||||
* @description Convertis un nombre arabe en nombre romain.
|
||||
@ -35,11 +37,7 @@ function convertArabicToRoman(nombre) {
|
||||
extraireChiffreRomain(correspondance[0], correspondance[1]);
|
||||
});
|
||||
|
||||
if (chiffresRomains === '') {
|
||||
return messageError;
|
||||
} else {
|
||||
return chiffresRomains;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7,17 +7,14 @@
|
||||
* @example convertTemperature(23, '°C') → 23 °C = 73.4 °F
|
||||
*/
|
||||
function convertTemperature(degree, unit) {
|
||||
if (!isNaN(degree) && unit === "°C") {
|
||||
if (unit === "°C") {
|
||||
const temperatureValue = ((degree * 9/5) + 32) + " °F";
|
||||
return degree + " " + unit + " = " + temperatureValue;
|
||||
}
|
||||
else if (!isNaN(degree) && unit === "°F") {
|
||||
else if (unit === "°F") {
|
||||
const temperatureValue = (degree - 32) * 5/9 + " °C";
|
||||
return degree + " " + unit + " = " + temperatureValue;
|
||||
}
|
||||
else {
|
||||
return messageError;
|
||||
}
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
|
@ -1,6 +1,9 @@
|
||||
import { capitalize } from '../fonctions_annexes/capitalize_Function.js';
|
||||
|
||||
/**
|
||||
* @function filterStudents
|
||||
* @description Affiche uniquement les prénoms (qui sont dans la liste) qui commencent par la lettre souhaitée.
|
||||
* @requires {@link fonctions_annexes.js: capitalize}
|
||||
* @param {string} filteredLetter - La lettre à filtré
|
||||
* @param {array} students - La liste des prénoms
|
||||
* @returns {string} - Prénoms qui commence par filteredLetter (totalfilteredLetterStudents) : filteredStudents
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { randomNumber } from './randomNumber_Function.js';
|
||||
import { quotes } from '../../variables/listQuotes.js';
|
||||
|
||||
/**
|
||||
* @function randomQuote
|
||||
|
@ -1,10 +1,13 @@
|
||||
import { dateTimeUTC } from '../fonctions_annexes/dateTimeManagement_Functions.js';
|
||||
import { capitalize } from '../fonctions_annexes/capitalize_Function.js';
|
||||
|
||||
/**
|
||||
* @function weatherRequest
|
||||
* @description Affiche la météo et l'heure locale grâce à l'API : openweathermap.org.
|
||||
* Le nom de la ville se récupère en Javascript qui créé un cookie pour récupérer cette variable en php.
|
||||
* Ainsi PHP va récupérer le JSON de l'api openweathermap.org puis ajax va se charger d'afficher le résultat.
|
||||
* Plus d'informations : {@link /php/getWeatherJson.php}
|
||||
* @requires {@link fonctions_annexes.js: formatNumberResult, dateTimeUTC, showDateTime, capitalize}
|
||||
* @requires {@link fonctions_annexes.js: dateTimeUTC, showDateTime, capitalize}
|
||||
* @see {@link https://jquery.com/} Requête en AJAX avec jQuery
|
||||
* @see {@link https://openweathermap.org/} API de météo
|
||||
* @example
|
||||
|
@ -16,13 +16,40 @@ $(function () {
|
||||
$(window).resize(widthWindowChange);
|
||||
widthWindowChange();
|
||||
|
||||
/* Permet d'afficher l'heure en temps réel sur le footer */
|
||||
realDateTime('realDateTime');
|
||||
/**
|
||||
* @function realDateTime
|
||||
* @description Affiche l'heure en temps réel.
|
||||
* @param {HTMLElement} htmlElement
|
||||
* @returns {boolean} true → Toujours true
|
||||
*/
|
||||
function realDateTime(htmlElement) {
|
||||
const realDateTimeNow = new Date;
|
||||
// const year = realDateTimeNow.getFullYear();
|
||||
// const month = ('0'+(realDateTimeNow.getMonth()+1)).slice(-2);
|
||||
// const day = ('0'+realDateTimeNow.getDate()).slice(-2);
|
||||
const hour = ('0'+realDateTimeNow.getHours()).slice(-2);
|
||||
const minute = ('0'+realDateTimeNow.getMinutes()).slice(-2);
|
||||
const second = ('0'+realDateTimeNow.getSeconds()).slice(-2);
|
||||
|
||||
/* Window Scroll Top Button */
|
||||
const resultat = hour + ":" + minute + ":" + second;
|
||||
|
||||
htmlElement.innerHTML = resultat;
|
||||
setTimeout(() => {
|
||||
realDateTime(htmlElement);
|
||||
}, 1000);
|
||||
return true;
|
||||
}
|
||||
/* Permet d'afficher l'heure en temps réel sur le footer */
|
||||
realDateTime(document.getElementById('realDateTime'));
|
||||
|
||||
/* Scroll agréable (flèche footer) */
|
||||
const $btnScrollTop = $('.scroll-top-arrow');
|
||||
$btnScrollTop.on('click', function () {
|
||||
$('html, body').animate({scrollTop: 0}, 800);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
/* Messages d'erreur */
|
||||
const emptyMessageError = "Vous ne pouvez pas rentré de valeur vide.";
|
||||
const messageError = "Vous n'avez pas rentré de valeur valide.";
|
@ -1,3 +1,5 @@
|
||||
import { texteFonctionChange } from '../variables/homeFunctionExample.js';
|
||||
|
||||
$(function () {
|
||||
/* Changement du texte accueil (exemples de fonction) */
|
||||
let index=-1;
|
||||
|
@ -1,8 +1,10 @@
|
||||
import { quotes } from '../variables/listQuotes.js';
|
||||
|
||||
$(function () {
|
||||
/* Permet d'afficher la liste des citations/proverbes */
|
||||
$('.totalLengthQuote').html('Total de ' + quotes.length + ' citations.');
|
||||
let resultat = "";
|
||||
for (index in quotes) {
|
||||
for (let index in quotes) {
|
||||
resultat = resultat + `<tr> <td class="quote-element-list important">${quotes[index]["source"]}</td> <td class="quote-element-list">${quotes[index]["quote"]}</td> </tr>`;
|
||||
}
|
||||
$(".quote-list").append(resultat);
|
||||
|
@ -1,10 +1,12 @@
|
||||
import { getCookieValue } from '../functions/fonctions_annexes/cookiesManagement_Functions.js';
|
||||
|
||||
$(function () {
|
||||
/* Permet d'afficher la liste des liens récemment raccourcit */
|
||||
try {
|
||||
const shortcuts = JSON.parse(getCookieValue("shortcuts"));
|
||||
window.onload = $('.totalLengthLinksList').html(`Total de ${shortcuts.length} lien(s) raccourcit récemment.`);
|
||||
$('.totalLengthLinksList').html(`Total de ${shortcuts.length} lien(s) raccourcit récemment.`);
|
||||
let resultat = "";
|
||||
for (element of shortcuts) {
|
||||
for (let element of shortcuts) {
|
||||
resultat += `<tr> <td class="original-link-list"><a href="${element["url"]}" target="_blank">${element["url"]}</a></td> <td class="link-list"><a href="${element["shortcut"]}" target="_blank">${element["shortcut"]}</a></td> </tr>`;
|
||||
}
|
||||
$(".links-list").append(resultat);
|
||||
|
46
scripts/variables/currencyReference.js
Normal file
46
scripts/variables/currencyReference.js
Normal file
@ -0,0 +1,46 @@
|
||||
/* Variable pour convertCurrency */
|
||||
const correspondancesMonnaie = [
|
||||
{
|
||||
currency:"£",
|
||||
symbol:"GBP"
|
||||
},
|
||||
{
|
||||
currency: "$ Américain",
|
||||
symbol: "USD"
|
||||
},
|
||||
{
|
||||
currency: "$ Canadien",
|
||||
symbol: "CAD"
|
||||
},
|
||||
{
|
||||
currency: "$ Australien",
|
||||
symbol: "AUD"
|
||||
},
|
||||
{
|
||||
currency: "$ Mexicain",
|
||||
symbol: "MXN"
|
||||
},
|
||||
{
|
||||
currency: "CHF",
|
||||
symbol: "CHF"
|
||||
},
|
||||
{
|
||||
currency: "₽",
|
||||
symbol: "RUB"
|
||||
},
|
||||
{
|
||||
currency: "R$",
|
||||
symbol: "BRL"
|
||||
},
|
||||
{
|
||||
currency: "¥",
|
||||
symbol: "JPY"
|
||||
},
|
||||
{
|
||||
currency: "€",
|
||||
symbol: "EUR"
|
||||
},
|
||||
];
|
||||
|
||||
/* Exports */
|
||||
export { correspondancesMonnaie };
|
21
scripts/variables/homeFunctionExample.js
Normal file
21
scripts/variables/homeFunctionExample.js
Normal file
@ -0,0 +1,21 @@
|
||||
/* Variable du texte accueil (exemples de fonction) */
|
||||
const texteFonctionChange = [
|
||||
'<a href="/views/function-views/randomNumber.php">générer des nombres aléatoires</a>',
|
||||
`<a href="/views/function-views/calculateAge.php">calculer votre âge</a>`,
|
||||
'<a href="/views/function-views/convertTemperature.php">convertir des températures</a>',
|
||||
'<a href="/views/function-views/convertDistance.php">convertir des distances</a>',
|
||||
'<a href="/views/function-views/filterStudents.php">trier des prénoms par leur première lettre</a>',
|
||||
'<a href="/views/function-views/randomQuote.php">générer des citations</a>',
|
||||
'<a href="/views/function-views/convertCurrency.php">convertir des devises</a>',
|
||||
'<a href="/views/function-views/convertEncoding.php">convertir des nombres de différentes bases.</a>',
|
||||
'<a href="/views/function-views/convertRomanArabicNumbers.php">convertir des nombres arabes en nombres romains</a>',
|
||||
`<a href="/views/function-views/armstrongNumber.php">vérifier si un nombre fait partie des nombres d'Armstrong</a>`,
|
||||
`<a href="/views/function-views/heapAlgorithm.php">génèrer toutes les permutations uniques possibles d'une chaîne de caractère</a>`,
|
||||
'<a href="/views/function-views/convertMarkdown.php">convertir du Markdown en HTML</a>',
|
||||
'<a href="/views/function-views/linkShortener.php">raccourcir les liens trop longs</a>',
|
||||
'<a href="/views/function-views/toDoList.php">faire une liste de choses à faire</a>',
|
||||
'<a href="/views/function-views/weatherRequest.php">connaître la météo</a>'
|
||||
];
|
||||
|
||||
/* Exports */
|
||||
export { texteFonctionChange };
|
@ -1,99 +1,4 @@
|
||||
/* LES VARIABLES */
|
||||
|
||||
let chemin = window.location.pathname;
|
||||
|
||||
/* Messages d'erreur */
|
||||
const emptyMessageError = "Vous ne pouvez pas rentré de valeur vide.";
|
||||
const messageError = "Vous n'avez pas rentré de valeur valide.";
|
||||
|
||||
/* Variable du texte accueil (exemples de fonction) */
|
||||
texteFonctionChange = [
|
||||
'<a href="/views/function-views/randomNumber.php">générer des nombres aléatoires</a>',
|
||||
`<a href="/views/function-views/calculateAge.php">calculer votre âge</a>`,
|
||||
'<a href="/views/function-views/convertTemperature.php">convertir des températures</a>',
|
||||
'<a href="/views/function-views/convertDistance.php">convertir des distances</a>',
|
||||
'<a href="/views/function-views/filterStudents.php">trier des prénoms par leur première lettre</a>',
|
||||
'<a href="/views/function-views/randomQuote.php">générer des citations</a>',
|
||||
'<a href="/views/function-views/convertCurrency.php">convertir des devises</a>',
|
||||
'<a href="/views/function-views/convertEncoding.php">convertir des nombres de différentes bases.</a>',
|
||||
'<a href="/views/function-views/convertRomanArabicNumbers.php">convertir des nombres arabes en nombres romains</a>',
|
||||
`<a href="/views/function-views/armstrongNumber.php">vérifier si un nombre fait partie des nombres d'Armstrong</a>`,
|
||||
`<a href="/views/function-views/heapAlgorithm.php">génèrer toutes les permutations uniques possibles d'une chaîne de caractère</a>`,
|
||||
'<a href="/views/function-views/convertMarkdown.php">convertir du Markdown en HTML</a>',
|
||||
'<a href="/views/function-views/linkShortener.php">raccourcir les liens trop longs</a>',
|
||||
'<a href="/views/function-views/toDoList.php">faire une liste de choses à faire</a>',
|
||||
'<a href="/views/function-views/weatherRequest.php">connaître la météo</a>'
|
||||
];
|
||||
|
||||
/* Variables pour les fonctions */
|
||||
let timeNow = new Date();
|
||||
let utcOffset = timeNow.getTimezoneOffset();
|
||||
timeNow.setMinutes(timeNow.getMinutes() + utcOffset);
|
||||
|
||||
// Variable pour convertRomanArabicNumbers
|
||||
const correspondancesRomainArabe =
|
||||
[
|
||||
[1000, "M"],
|
||||
[900, "CM"],
|
||||
[500, "D"],
|
||||
[400, "CD"],
|
||||
[100, "C"],
|
||||
[90, "XC"],
|
||||
[50, "L"],
|
||||
[40, "XL"],
|
||||
[10, "X"],
|
||||
[9, "IX"],
|
||||
[5, "V"],
|
||||
[4, "IV"],
|
||||
[1, "I"],
|
||||
];
|
||||
|
||||
// Variable pour convertCurrency
|
||||
const correspondancesMonnaie =
|
||||
[
|
||||
{
|
||||
currency:"£",
|
||||
symbol:"GBP"
|
||||
},
|
||||
{
|
||||
currency: "$ Américain",
|
||||
symbol: "USD"
|
||||
},
|
||||
{
|
||||
currency: "$ Canadien",
|
||||
symbol: "CAD"
|
||||
},
|
||||
{
|
||||
currency: "$ Australien",
|
||||
symbol: "AUD"
|
||||
},
|
||||
{
|
||||
currency: "$ Mexicain",
|
||||
symbol: "MXN"
|
||||
},
|
||||
{
|
||||
currency: "CHF",
|
||||
symbol: "CHF"
|
||||
},
|
||||
{
|
||||
currency: "₽",
|
||||
symbol: "RUB"
|
||||
},
|
||||
{
|
||||
currency: "R$",
|
||||
symbol: "BRL"
|
||||
},
|
||||
{
|
||||
currency: "¥",
|
||||
symbol: "JPY"
|
||||
},
|
||||
{
|
||||
currency: "€",
|
||||
symbol: "EUR"
|
||||
},
|
||||
];
|
||||
|
||||
// Variable pour randomQuote
|
||||
/* Variable pour randomQuote */
|
||||
const quotes =
|
||||
[
|
||||
{
|
||||
@ -289,3 +194,6 @@ const quotes =
|
||||
source:"Victor Hugo"
|
||||
}
|
||||
];
|
||||
|
||||
/* Exports */
|
||||
export { quotes };
|
19
scripts/variables/romanArabicNumbersReference.js
Normal file
19
scripts/variables/romanArabicNumbersReference.js
Normal file
@ -0,0 +1,19 @@
|
||||
/* Variable pour convertRomanArabicNumbers */
|
||||
const correspondancesRomainArabe = [
|
||||
[1000, "M"],
|
||||
[900, "CM"],
|
||||
[500, "D"],
|
||||
[400, "CD"],
|
||||
[100, "C"],
|
||||
[90, "XC"],
|
||||
[50, "L"],
|
||||
[40, "XL"],
|
||||
[10, "X"],
|
||||
[9, "IX"],
|
||||
[5, "V"],
|
||||
[4, "IV"],
|
||||
[1, "I"],
|
||||
];
|
||||
|
||||
/* Exports */
|
||||
export { correspondancesRomainArabe };
|
8
scripts/variables/timesVariables.js
Normal file
8
scripts/variables/timesVariables.js
Normal file
@ -0,0 +1,8 @@
|
||||
/* Variables de temps */
|
||||
let timeNow = new Date();
|
||||
let utcOffset = timeNow.getTimezoneOffset();
|
||||
timeNow.setMinutes(timeNow.getMinutes() + utcOffset);
|
||||
|
||||
|
||||
/* Exports */
|
||||
export { timeNow, utcOffset };
|
Reference in New Issue
Block a user