Hotfix: Organisation fonctions annexes/ variables

This commit is contained in:
Divlo
2020-01-01 16:56:52 +01:00
parent f43158c773
commit c9706d5cd1
39 changed files with 384 additions and 309 deletions

View 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 };

View File

@ -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 };

View File

@ -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 };

View File

@ -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 };

View 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 };

View 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 };

View 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 };

View File

@ -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.

View File

@ -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)

View File

@ -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.

View File

@ -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);

View File

@ -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;
}
}
/**

View File

@ -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 */

View File

@ -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

View File

@ -1,4 +1,5 @@
import { randomNumber } from './randomNumber_Function.js';
import { quotes } from '../../variables/listQuotes.js';
/**
* @function randomQuote

View File

@ -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